@nuskin/marketing-components 1.1.1 → 1.2.0-text-updates.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/text/CsText.d.ts +5 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(e,t
|
|
1
|
+
"use strict";function e(e,n,t){if(n in e){Object.defineProperty(e,n,{value:t,enumerable:true,configurable:true,writable:true})}else{e[n]=t}return e}function n(n){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var i=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){i=i.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}i.forEach(function(t){e(n,t,r[t])})}return n}function t(e,n){if(e==null)return{};var t=r(e,n);var i,o;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++){i=l[o];if(n.indexOf(i)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,i))continue;t[i]=e[i]}}return t}function r(e,n){if(e==null)return{};var t={};var r=Object.keys(e);var i,o;for(o=0;o<r.length;o++){i=r[o];if(n.indexOf(i)>=0)continue;t[i]=e[i]}return t}function i(e,n){if(!n){n=e.slice(0)}return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}function o(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function l(){var e=i(["\n width: ",";\n background-color: ",";\n text-align: ",";\n color: ",";\n padding: 16px 32px;\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: 'Lora', serif;\n }\n h1 {\n font-size: 42px;\n line-height: 48px;\n }\n h2 {\n font-size: 36px;\n line-height: 42px;\n }\n h3 {\n font-size: 32px;\n line-height: 38px;\n }\n h4 {\n font-size: 26px;\n line-height: 34px;\n }\n h5 {\n font-size: 22px;\n line-height: 28px;\n }\n h6 {\n font-size: 18px;\n line-height: 24px;\n }\n p {\n margin: 0;\n padding: 0;\n }\n"]);l=function n(){return e};return e}var u=Object.create;var a=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var s=function(e,n){for(var t in n)a(e,t,{get:n[t],enumerable:!0})},h=function(e,n,t,r){var i=true,l=false,u=undefined;if(n&&(typeof n==="undefined"?"undefined":o(n))=="object"||typeof n=="function")try{var d=function(){var i=h.value;!v.call(e,i)&&i!==t&&a(e,i,{get:function(){return n[i]},enumerable:!(r=c(n,i))||r.enumerable})};for(var s=f(n)[Symbol.iterator](),h;!(i=(h=s.next()).done);i=true)d()}catch(e){l=true;u=e}finally{try{if(!i&&s.return!=null){s.return()}}finally{if(l){throw u}}}return e};var p=function(e,n,t){return t=e!=null?u(d(e)):{},h(n||!e||!e.__esModule?a(t,"default",{value:e,enumerable:!0}):t,e)},g=function(e){return h(a({},"__esModule",{value:!0}),e)};var m={};s(m,{CsImage:function(){return I},CsTextComponent:function(){return P}});module.exports=g(m);var b=require("react"),y=require("@nuskin/foundation-core-app/common/hooks"),x=p(require("@emotion/styled")),O=require("react/jsx-runtime"),j=function(e,n){var t=new DOMParser().parseFromString(e,"text/html");return t.querySelectorAll("a").forEach(function(e){var t;var r=(t=e.getAttribute("href"))!==null&&t!==void 0?t:"",i=n(r),o=i.url,l=o===void 0?"":o;e.setAttribute("href",l.startsWith("http")?l:"https://".concat(l))}),t.body.innerHTML},w=x.default.div(l(),function(e){var n=e.fullWidth;return n?"100%":"auto"},function(e){var n=e.bgColor;return n},function(e){var n=e.alignment;return n},function(e){var n=e.color;return n}),_=function(e){var n=e.full_width,t=n===void 0?!1:n,r=e.container_background_color,i=r===void 0?"":r,l=e.alignment,u=l===void 0?"left":l,a=e.text_editor,c=e.font_color,f=c===void 0?!1:c;var d=(0,y.useToggleFontColor)(f),v=(0,y.useRouteReplacer)(),s=function(e){var n;var t;return typeof v=="function"?{url:(t=(n=v(e))===null||n===void 0?void 0:n.url)!==null&&t!==void 0?t:""}:{url:e}},h=(0,b.useMemo)(function(){try{var e,n,t;if(i)return((t=JSON.parse(i))===null||t===void 0?void 0:(n=t.brandColor)===null||n===void 0?void 0:(e=n.colorObj)===null||e===void 0?void 0:e.light)||"transparent"}catch(e){return"transparent"}return"transparent"},[i]),p=(0,b.useMemo)(function(){return(typeof window==="undefined"?"undefined":o(window))>"u"?a:j(a,s)},[a,v]);return(0,O.jsx)(w,{color:d,fullWidth:t,bgColor:h,alignment:u,children:(0,O.jsx)("div",{dangerouslySetInnerHTML:{__html:p}})})},P=_;var S=require("@nuskin/foundation-ui-components");var C=require("@nuskin/foundation-theme"),k=(0,C.styled)("div")(function(e){var n=e.image_alignment,t=n===void 0?"center":n,r=e.width,i=e.height;return{display:"flex",justifyContent:({left:"flex-start",right:"flex-end",center:"center"})[t],"& img":{maxWidth:"fit-content",objectFit:"contain",objectPosition:"center"}}});var q=require("react/jsx-runtime"),z=["alt","className","fill","height","id","src","variant","width"],M=function(e){var r;var i=e.image_alignment,o=i===void 0?"center":i,l=e.image,u=t(e,["image_alignment","image"]),a=null,c=null;try{var f,d;var v=(d=typeof l=="string"?JSON.parse(l):l)===null||d===void 0?void 0:(f=d.image)===null||f===void 0?void 0:f[0];a=v===null||v===void 0?void 0:v.selected,c=v===null||v===void 0?void 0:v.files}catch(e){console.warn("[CsImage] Failed to parse image prop:",e)}var s,h;var p=(a===null||a===void 0?void 0:a.imageType)||"transformBaseUrl",g={src:(c===null||c===void 0?void 0:(r=c[p])===null||r===void 0?void 0:r.url)||"",alt:(a===null||a===void 0?void 0:a.altText)||"Image not available",width:(s=a===null||a===void 0?void 0:a.width)!==null&&s!==void 0?s:"100%",height:(h=a===null||a===void 0?void 0:a.height)!==null&&h!==void 0?h:"100%"};z.forEach(function(e){u[e]!==void 0&&(g[e]=u[e])});var m=(u===null||u===void 0?void 0:u.full_width)?"container !p-0":"";return(0,q.jsx)(k,{image_alignment:o,width:g.width,height:g.height,className:m,children:(0,q.jsx)(S.NsImage,n({},g))})},I=M;//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/gitlab-runner-data/builds/ns-am/content-foundation/marketing-components/dist/index.js","../src/index.ts","../src/text/CsText.tsx","../src/image/CsImage.tsx","../src/image/CsImage.styled.tsx"],"names":["m","Object","defineProperty","b","getOwnPropertyDescriptor","N","getOwnPropertyNames","T","prototype","hasOwnProperty","S","e","a","t","get","enumerable","v","n","r","call","_","value","index_exports","__export","CsImage","CsImage_default","CsTextComponent","CsText_default","module","exports","__toCommonJS","import_foundation_ui_components","require","import_react","import_hooks","import_jsx_runtime","getResolvedVariant","variant","rewriteLinks","html","doc","DOMParser","parseFromString","querySelectorAll","forEach","link","href","getAttribute","y","useRouteReplacer","url","setAttribute","startsWith","body","innerHTML","CsText","show","full_width","container_background_color","include_gap","alignment","header_variants","text_editor","backgroundColor","g","useMemo","JSON","parse","brandColor","colorObj","light","updatedHtml","window","p","jsxs","style","width","textAlign","padding","children","jsx","u","NsTypography","renderHTMLNode","dangerouslySetInnerHTML","__html","className","import_foundation_theme","StyledCsImageWrapper","C","styled","image_alignment","height","display","justifyContent","left","right","center","maxWidth","objectFit","objectPosition","allowedImageProps","props","fileMeta","align","image","rest","selectedImage","entry","selected","files","err","console","warn","imageType","imageProps","src","alt","altText","key","containerClassForNSImage","c","w","NsImage"],"mappings":"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","sourcesContent":["\"use strict\";var m=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var S=(e,a)=>{for(var t in a)m(e,t,{get:a[t],enumerable:!0})},v=(e,a,t,n)=>{if(a&&typeof a==\"object\"||typeof a==\"function\")for(let r of N(a))!T.call(e,r)&&r!==t&&m(e,r,{get:()=>a[r],enumerable:!(n=b(a,r))||n.enumerable});return e};var _=e=>v(m({},\"__esModule\",{value:!0}),e);var F={};S(F,{CsImage:()=>P,CsTextComponent:()=>x});module.exports=_(F);var u=require(\"@nuskin/foundation-ui-components\"),g=require(\"react\"),y=require(\"@nuskin/foundation-core-app/common/hooks\"),p=require(\"react/jsx-runtime\"),M=e=>e===\"p\"?\"body-l\":e??\"h2\",R=e=>{let t=new DOMParser().parseFromString(e,\"text/html\");return t.querySelectorAll(\"a\").forEach(r=>{let o=r.getAttribute(\"href\")??\"\",{url:s}=(0,y.useRouteReplacer)(o);s&&r.setAttribute(\"href\",s?.startsWith(\"http\")?s:`https://${s}`)}),t.body.innerHTML},W=({show:e,full_width:a=!1,container_background_color:t=\"\",include_gap:n=!1,alignment:r=\"left\",header_variants:o=\"h2\",text_editor:s})=>{let h=(0,g.useMemo)(()=>{try{if(t)return JSON.parse(t)?.brandColor?.colorObj?.light||\"transparent\"}catch{return\"transparent\"}return\"transparent\"},[t]),i=(0,g.useMemo)(()=>typeof window>\"u\"?s:R(s),[s]);return e?(0,p.jsxs)(\"div\",{style:{width:a?\"100%\":\"auto\",backgroundColor:h,textAlign:r,padding:\"16px 32px\"},children:[(0,p.jsx)(u.NsTypography,{variant:M(o),renderHTMLNode:!0,children:(0,p.jsx)(\"div\",{dangerouslySetInnerHTML:{__html:i},className:\"cs-text-html\"})}),(0,p.jsx)(\"style\",{children:`\n .cs-text-html {\n display: block;\n }\n\n .cs-text-html p {\n margin: 0;\n }\n `})]}):null},x=W;var w=require(\"@nuskin/foundation-ui-components\");var C=require(\"@nuskin/foundation-theme\"),I=(0,C.styled)(\"div\")(({image_alignment:e=\"center\",width:a,height:t})=>({display:\"flex\",justifyContent:{left:\"flex-start\",right:\"flex-end\",center:\"center\"}[e],\"& img\":{maxWidth:\"fit-content\",objectFit:\"contain\",objectPosition:\"center\"}}));var c=require(\"react/jsx-runtime\"),A=[\"alt\",\"className\",\"fill\",\"height\",\"id\",\"src\",\"variant\",\"width\"],E=e=>{let{image_alignment:a=\"center\",image:t,...n}=e,r=null,o=null;try{let f=(typeof t==\"string\"?JSON.parse(t):t)?.image?.[0];r=f?.selected,o=f?.files}catch(l){console.warn(\"[CsImage] Failed to parse image prop:\",l)}let s=r?.imageType||\"transformBaseUrl\",i={src:o?.[s]?.url||\"\",alt:r?.altText||\"Image not available\",width:r?.width??\"100%\",height:r?.height??\"100%\"};A.forEach(l=>{n[l]!==void 0&&(i[l]=n[l])});let d=n?.full_width?\"container !p-0\":\"\";return(0,c.jsx)(I,{image_alignment:a,width:i.width,height:i.height,className:d,children:(0,c.jsx)(w.NsImage,{...i})})},P=E;\n","export * from './text';\nexport * from './image';\n","import { NsTypography } from '@nuskin/foundation-ui-components';\nimport { ReactElement, useMemo } from 'react';\nimport { useRouteReplacer } from '@nuskin/foundation-core-app/common/hooks';\n\ninterface CsTextProps {\n show: boolean;\n full_width?: boolean;\n container_background_color?: string;\n include_gap?: boolean;\n alignment?: 'left' | 'center' | 'right';\n header_variants?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p';\n text_editor: string;\n}\n\nconst getResolvedVariant = (variant: CsTextProps['header_variants']): Parameters<typeof NsTypography>[0]['variant'] => {\n return variant === 'p' ? 'body-l' : (variant ?? 'h2');\n};\n\nexport const rewriteLinks = (html: string): string => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n const links = doc.querySelectorAll('a');\n\n links.forEach((link) => {\n const href = link.getAttribute('href') ?? '';\n const { url } = useRouteReplacer(href);\n\n if (url) {\n link.setAttribute('href', url?.startsWith('http') ? url : `https://${url}`);\n }\n });\n\n return doc.body.innerHTML;\n};\n\nconst CsText = ({\n show,\n full_width = false,\n container_background_color = '',\n include_gap = false,\n alignment = 'left',\n header_variants = 'h2',\n text_editor\n}: CsTextProps): ReactElement | null => {\n const backgroundColor = useMemo(() => {\n try {\n if (container_background_color) {\n const parsed = JSON.parse(container_background_color);\n return parsed?.brandColor?.colorObj?.light || 'transparent';\n }\n } catch {\n return 'transparent';\n }\n return 'transparent';\n }, [container_background_color]);\n\n const updatedHtml = useMemo(() => {\n if (typeof window === 'undefined') return text_editor;\n return rewriteLinks(text_editor);\n }, [text_editor]);\n\n if (!show) return null;\n\n return (\n <div\n style={{\n width: full_width ? '100%' : 'auto',\n backgroundColor,\n textAlign: alignment,\n padding: '16px 32px'\n }}\n >\n <NsTypography variant={getResolvedVariant(header_variants)} renderHTMLNode>\n <div dangerouslySetInnerHTML={{ __html: updatedHtml }} className=\"cs-text-html\" />\n </NsTypography>\n\n <style>\n {`\n .cs-text-html {\n display: block;\n }\n\n .cs-text-html p {\n margin: 0;\n }\n `}\n </style>\n </div>\n );\n};\n\nexport default CsText;\n","import { NsImage } from '@nuskin/foundation-ui-components';\nimport { StyledCsImageWrapper } from './CsImage.styled';\nimport type { CsImageProps, NsImageProps } from './types';\n\nconst allowedImageProps: (keyof NsImageProps)[] = [\n 'alt',\n 'className',\n 'fill',\n 'height',\n 'id',\n 'src',\n 'variant',\n 'width'\n];\n\nconst CsImage = (props: CsImageProps) => {\n const { image_alignment: align = 'center', image, ...rest } = props;\n\n let selectedImage: any = null;\n let fileMeta: any = null;\n\n try {\n const parsed = typeof image === 'string' ? JSON.parse(image) : image;\n const entry = parsed?.image?.[0];\n selectedImage = entry?.selected;\n fileMeta = entry?.files;\n } catch (err) {\n console.warn('[CsImage] Failed to parse image prop:', err);\n }\n\n const imageType = selectedImage?.imageType || 'transformBaseUrl';\n const fileSource = fileMeta?.[imageType];\n\n const imageProps: NsImageProps = {\n src: fileSource?.url || '',\n alt: selectedImage?.altText || 'Image not available',\n width: selectedImage?.width ?? '100%',\n height: selectedImage?.height ?? '100%'\n };\n\n // Add any other valid props from rest\n allowedImageProps.forEach((key) => {\n if (rest[key] !== undefined) {\n (imageProps as any)[key] = rest[key];\n }\n });\n const containerClassForNSImage = rest?.full_width ? 'container !p-0' : '';\n\n return (\n <StyledCsImageWrapper\n image_alignment={align}\n width={imageProps.width}\n height={imageProps.height}\n className={containerClassForNSImage}\n >\n <NsImage {...imageProps} />\n </StyledCsImageWrapper>\n );\n};\n\nexport default CsImage;\n","import { styled } from '@nuskin/foundation-theme';\nimport type { CsImageProps } from './types';\n\nexport const StyledCsImageWrapper = styled('div')<\n Pick<CsImageProps, 'image_alignment'> & { width?: string | number; height?: string | number }\n>(({ image_alignment = 'center', width, height }) => ({\n display: 'flex',\n justifyContent: {\n left: 'flex-start',\n right: 'flex-end',\n center: 'center'\n }[image_alignment],\n '& img': {\n maxWidth: 'fit-content',\n objectFit: 'contain',\n objectPosition: 'center'\n }\n}));\n"]}
|
|
1
|
+
{"version":3,"sources":["/gitlab-runner-data/builds/ns-am/content-foundation/marketing-components/dist/index.js","../src/index.ts","../src/text/CsText.tsx","../src/image/CsImage.tsx","../src/image/CsImage.styled.tsx"],"names":["S","Object","create","g","defineProperty","T","getOwnPropertyDescriptor","N","getOwnPropertyNames","z","getPrototypeOf","R","prototype","hasOwnProperty","W","e","t","r","get","enumerable","x","o","n","call","v","__esModule","value","F","index_exports","__export","CsImage","CsImage_default","CsTextComponent","CsText_default","module","exports","__toCommonJS","import_react","require","import_hooks","import_styled","import_jsx_runtime","rewriteLinks","html","replacer","doc","DOMParser","parseFromString","querySelectorAll","forEach","link","href","getAttribute","sanitizedUrl","url","setAttribute","startsWith","body","innerHTML","Container","y","styled","div","fullWidth","bgColor","alignment","color","CsText","full_width","container_background_color","text_editor","font_color","resolvedFontColor","m","useToggleFontColor","routeReplacer","useRouteReplacer","safeRouteReplacer","backgroundColor","f","useMemo","JSON","parse","brandColor","colorObj","light","updatedHtml","window","d","jsx","children","dangerouslySetInnerHTML","__html","import_foundation_ui_components","import_foundation_theme","StyledCsImageWrapper","I","image_alignment","width","height","display","justifyContent","left","right","center","maxWidth","objectFit","objectPosition","allowedImageProps","props","fileMeta","align","image","rest","selectedImage","entry","selected","files","err","console","warn","imageType","imageProps","src","alt","altText","key","containerClassForNSImage","u","className","b","NsImage"],"mappings":"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","sourcesContent":["\"use strict\";var S=Object.create;var g=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var z=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var W=(e,t)=>{for(var r in t)g(e,r,{get:t[r],enumerable:!0})},x=(e,t,r,o)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let n of N(t))!R.call(e,n)&&n!==r&&g(e,n,{get:()=>t[n],enumerable:!(o=T(t,n))||o.enumerable});return e};var v=(e,t,r)=>(r=e!=null?S(z(e)):{},x(t||!e||!e.__esModule?g(r,\"default\",{value:e,enumerable:!0}):r,e)),F=e=>x(g({},\"__esModule\",{value:!0}),e);var L={};W(L,{CsImage:()=>P,CsTextComponent:()=>C});module.exports=F(L);var f=require(\"react\"),m=require(\"@nuskin/foundation-core-app/common/hooks\"),y=v(require(\"@emotion/styled\")),d=require(\"react/jsx-runtime\"),M=(e,t)=>{let o=new DOMParser().parseFromString(e,\"text/html\");return o.querySelectorAll(\"a\").forEach(i=>{let a=i.getAttribute(\"href\")??\"\",{url:l=\"\"}=t(a);i.setAttribute(\"href\",l.startsWith(\"http\")?l:`https://${l}`)}),o.body.innerHTML},_=y.default.div`\n width: ${({fullWidth:e})=>e?\"100%\":\"auto\"};\n background-color: ${({bgColor:e})=>e};\n text-align: ${({alignment:e})=>e};\n color: ${({color:e})=>e};\n padding: 16px 32px;\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: 'Lora', serif;\n }\n h1 {\n font-size: 42px;\n line-height: 48px;\n }\n h2 {\n font-size: 36px;\n line-height: 42px;\n }\n h3 {\n font-size: 32px;\n line-height: 38px;\n }\n h4 {\n font-size: 26px;\n line-height: 34px;\n }\n h5 {\n font-size: 22px;\n line-height: 28px;\n }\n h6 {\n font-size: 18px;\n line-height: 24px;\n }\n p {\n margin: 0;\n padding: 0;\n }\n`,$=({full_width:e=!1,container_background_color:t=\"\",alignment:r=\"left\",text_editor:o,font_color:n=!1})=>{let i=(0,m.useToggleFontColor)(n),a=(0,m.useRouteReplacer)(),l=s=>typeof a==\"function\"?{url:a(s)?.url??\"\"}:{url:s},p=(0,f.useMemo)(()=>{try{if(t)return JSON.parse(t)?.brandColor?.colorObj?.light||\"transparent\"}catch{return\"transparent\"}return\"transparent\"},[t]),h=(0,f.useMemo)(()=>typeof window>\"u\"?o:M(o,l),[o,a]);return(0,d.jsx)(_,{color:i,fullWidth:e,bgColor:p,alignment:r,children:(0,d.jsx)(\"div\",{dangerouslySetInnerHTML:{__html:h}})})},C=$;var b=require(\"@nuskin/foundation-ui-components\");var I=require(\"@nuskin/foundation-theme\"),w=(0,I.styled)(\"div\")(({image_alignment:e=\"center\",width:t,height:r})=>({display:\"flex\",justifyContent:{left:\"flex-start\",right:\"flex-end\",center:\"center\"}[e],\"& img\":{maxWidth:\"fit-content\",objectFit:\"contain\",objectPosition:\"center\"}}));var u=require(\"react/jsx-runtime\"),k=[\"alt\",\"className\",\"fill\",\"height\",\"id\",\"src\",\"variant\",\"width\"],E=e=>{let{image_alignment:t=\"center\",image:r,...o}=e,n=null,i=null;try{let c=(typeof r==\"string\"?JSON.parse(r):r)?.image?.[0];n=c?.selected,i=c?.files}catch(s){console.warn(\"[CsImage] Failed to parse image prop:\",s)}let a=n?.imageType||\"transformBaseUrl\",p={src:i?.[a]?.url||\"\",alt:n?.altText||\"Image not available\",width:n?.width??\"100%\",height:n?.height??\"100%\"};k.forEach(s=>{o[s]!==void 0&&(p[s]=o[s])});let h=o?.full_width?\"container !p-0\":\"\";return(0,u.jsx)(w,{image_alignment:t,width:p.width,height:p.height,className:h,children:(0,u.jsx)(b.NsImage,{...p})})},P=E;\n","export * from './text';\nexport * from './image';\n","import { ReactElement, useMemo } from 'react';\nimport { useRouteReplacer, useToggleFontColor } from '@nuskin/foundation-core-app/common/hooks';\nimport styled from '@emotion/styled';\n\ninterface CsTextProps {\n full_width?: boolean;\n container_background_color?: string;\n alignment?: 'left' | 'center' | 'right';\n text_editor: string;\n font_color?: boolean;\n}\n\nexport const rewriteLinks = (html: string, replacer: (url: string) => { url: string }): string => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n const links = doc.querySelectorAll('a');\n\n links.forEach((link) => {\n const href = link.getAttribute('href') ?? '';\n const { url: sanitizedUrl = '' } = replacer(href);\n\n link.setAttribute('href', sanitizedUrl.startsWith('http') ? sanitizedUrl : `https://${sanitizedUrl}`);\n });\n\n return doc.body.innerHTML;\n};\n\n// Emotion styled container\nconst Container = styled.div<{ fullWidth: boolean; bgColor: string; alignment: string; color: string }>`\n width: ${({ fullWidth }) => (fullWidth ? '100%' : 'auto')};\n background-color: ${({ bgColor }) => bgColor};\n text-align: ${({ alignment }) => alignment};\n color: ${({ color }) => color};\n padding: 16px 32px;\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: 'Lora', serif;\n }\n h1 {\n font-size: 42px;\n line-height: 48px;\n }\n h2 {\n font-size: 36px;\n line-height: 42px;\n }\n h3 {\n font-size: 32px;\n line-height: 38px;\n }\n h4 {\n font-size: 26px;\n line-height: 34px;\n }\n h5 {\n font-size: 22px;\n line-height: 28px;\n }\n h6 {\n font-size: 18px;\n line-height: 24px;\n }\n p {\n margin: 0;\n padding: 0;\n }\n`;\n\nconst CsText = ({\n full_width = false,\n container_background_color = '',\n alignment = 'left',\n text_editor,\n font_color = false\n}: CsTextProps): ReactElement | null => {\n const resolvedFontColor = useToggleFontColor(font_color);\n const routeReplacer = useRouteReplacer() as unknown as ((url: string) => { url: string }) | undefined;\n\n const safeRouteReplacer = (url: string) => {\n if (typeof routeReplacer === 'function') {\n const result = routeReplacer(url);\n return { url: result?.url ?? '' };\n }\n return { url };\n };\n\n const backgroundColor = useMemo(() => {\n try {\n if (container_background_color) {\n const parsed = JSON.parse(container_background_color);\n return parsed?.brandColor?.colorObj?.light || 'transparent';\n }\n } catch {\n return 'transparent';\n }\n return 'transparent';\n }, [container_background_color]);\n\n const updatedHtml = useMemo(() => {\n if (typeof window === 'undefined') return text_editor;\n return rewriteLinks(text_editor, safeRouteReplacer);\n }, [text_editor, routeReplacer]);\n\n return (\n <Container color={resolvedFontColor} fullWidth={full_width} bgColor={backgroundColor} alignment={alignment}>\n <div dangerouslySetInnerHTML={{ __html: updatedHtml }} />\n </Container>\n );\n};\n\nexport default CsText;\n","import { NsImage } from '@nuskin/foundation-ui-components';\nimport { StyledCsImageWrapper } from './CsImage.styled';\nimport type { CsImageProps, NsImageProps } from './types';\n\nconst allowedImageProps: (keyof NsImageProps)[] = [\n 'alt',\n 'className',\n 'fill',\n 'height',\n 'id',\n 'src',\n 'variant',\n 'width'\n];\n\nconst CsImage = (props: CsImageProps) => {\n const { image_alignment: align = 'center', image, ...rest } = props;\n\n let selectedImage: any = null;\n let fileMeta: any = null;\n\n try {\n const parsed = typeof image === 'string' ? JSON.parse(image) : image;\n const entry = parsed?.image?.[0];\n selectedImage = entry?.selected;\n fileMeta = entry?.files;\n } catch (err) {\n console.warn('[CsImage] Failed to parse image prop:', err);\n }\n\n const imageType = selectedImage?.imageType || 'transformBaseUrl';\n const fileSource = fileMeta?.[imageType];\n\n const imageProps: NsImageProps = {\n src: fileSource?.url || '',\n alt: selectedImage?.altText || 'Image not available',\n width: selectedImage?.width ?? '100%',\n height: selectedImage?.height ?? '100%'\n };\n\n // Add any other valid props from rest\n allowedImageProps.forEach((key) => {\n if (rest[key] !== undefined) {\n (imageProps as any)[key] = rest[key];\n }\n });\n const containerClassForNSImage = rest?.full_width ? 'container !p-0' : '';\n\n return (\n <StyledCsImageWrapper\n image_alignment={align}\n width={imageProps.width}\n height={imageProps.height}\n className={containerClassForNSImage}\n >\n <NsImage {...imageProps} />\n </StyledCsImageWrapper>\n );\n};\n\nexport default CsImage;\n","import { styled } from '@nuskin/foundation-theme';\nimport type { CsImageProps } from './types';\n\nexport const StyledCsImageWrapper = styled('div')<\n Pick<CsImageProps, 'image_alignment'> & { width?: string | number; height?: string | number }\n>(({ image_alignment = 'center', width, height }) => ({\n display: 'flex',\n justifyContent: {\n left: 'flex-start',\n right: 'flex-end',\n center: 'center'\n }[image_alignment],\n '& img': {\n maxWidth: 'fit-content',\n objectFit: 'contain',\n objectPosition: 'center'\n }\n}));\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function n(n,e,t){if(e in n){Object.defineProperty(n,e,{value:t,enumerable:true,configurable:true,writable:true})}else{n[e]=t}return n}function e(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var i=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){i=i.concat(Object.getOwnPropertySymbols(r).filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable}))}i.forEach(function(t){n(e,t,r[t])})}return e}function t(n,e){if(n==null)return{};var t=r(n,e);var i,o;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(n);for(o=0;o<l.length;o++){i=l[o];if(e.indexOf(i)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(n,i))continue;t[i]=n[i]}}return t}function r(n,e){if(n==null)return{};var t={};var r=Object.keys(n);var i,o;for(o=0;o<r.length;o++){i=r[o];if(e.indexOf(i)>=0)continue;t[i]=n[i]}return t}function i(n,e){if(!e){e=n.slice(0)}return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}function o(n){"@swc/helpers - typeof";return n&&typeof Symbol!=="undefined"&&n.constructor===Symbol?"symbol":typeof n}function l(){var n=i(["\n width: ",";\n background-color: ",";\n text-align: ",";\n color: ",";\n padding: 16px 32px;\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: 'Lora', serif;\n }\n h1 {\n font-size: 42px;\n line-height: 48px;\n }\n h2 {\n font-size: 36px;\n line-height: 42px;\n }\n h3 {\n font-size: 32px;\n line-height: 38px;\n }\n h4 {\n font-size: 26px;\n line-height: 34px;\n }\n h5 {\n font-size: 22px;\n line-height: 28px;\n }\n h6 {\n font-size: 18px;\n line-height: 24px;\n }\n p {\n margin: 0;\n padding: 0;\n }\n"]);l=function e(){return n};return n}import{useMemo as a}from"react";import{useRouteReplacer as u,useToggleFontColor as f}from"@nuskin/foundation-core-app/common/hooks";import c from"@emotion/styled";import{jsx as d}from"react/jsx-runtime";var v=function(n,e){var t=new DOMParser().parseFromString(n,"text/html");return t.querySelectorAll("a").forEach(function(n){var t;var r=(t=n.getAttribute("href"))!==null&&t!==void 0?t:"",i=e(r),o=i.url,l=o===void 0?"":o;n.setAttribute("href",l.startsWith("http")?l:"https://".concat(l))}),t.body.innerHTML},s=c.div(l(),function(n){var e=n.fullWidth;return e?"100%":"auto"},function(n){var e=n.bgColor;return e},function(n){var e=n.alignment;return e},function(n){var e=n.color;return e}),h=function(n){var e=n.full_width,t=e===void 0?!1:e,r=n.container_background_color,i=r===void 0?"":r,l=n.alignment,c=l===void 0?"left":l,h=n.text_editor,p=n.font_color,m=p===void 0?!1:p;var g=f(m),b=u(),y=function(n){var e;var t;return typeof b=="function"?{url:(t=(e=b(n))===null||e===void 0?void 0:e.url)!==null&&t!==void 0?t:""}:{url:n}},x=a(function(){try{var n,e,t;if(i)return((t=JSON.parse(i))===null||t===void 0?void 0:(e=t.brandColor)===null||e===void 0?void 0:(n=e.colorObj)===null||n===void 0?void 0:n.light)||"transparent"}catch(n){return"transparent"}return"transparent"},[i]),w=a(function(){return(typeof window==="undefined"?"undefined":o(window))>"u"?h:v(h,y)},[h,b]);return d(s,{color:g,fullWidth:t,bgColor:x,alignment:c,children:d("div",{dangerouslySetInnerHTML:{__html:w}})})},p=h;import{NsImage as m}from"@nuskin/foundation-ui-components";import{styled as g}from"@nuskin/foundation-theme";var b=g("div")(function(n){var e=n.image_alignment,t=e===void 0?"center":e,r=n.width,i=n.height;return{display:"flex",justifyContent:({left:"flex-start",right:"flex-end",center:"center"})[t],"& img":{maxWidth:"fit-content",objectFit:"contain",objectPosition:"center"}}});import{jsx as y}from"react/jsx-runtime";var x=["alt","className","fill","height","id","src","variant","width"],w=function(n){var r;var i=n.image_alignment,o=i===void 0?"center":i,l=n.image,a=t(n,["image_alignment","image"]),u=null,f=null;try{var c,d;var v=(d=typeof l=="string"?JSON.parse(l):l)===null||d===void 0?void 0:(c=d.image)===null||c===void 0?void 0:c[0];u=v===null||v===void 0?void 0:v.selected,f=v===null||v===void 0?void 0:v.files}catch(n){console.warn("[CsImage] Failed to parse image prop:",n)}var s,h;var p=(u===null||u===void 0?void 0:u.imageType)||"transformBaseUrl",g={src:(f===null||f===void 0?void 0:(r=f[p])===null||r===void 0?void 0:r.url)||"",alt:(u===null||u===void 0?void 0:u.altText)||"Image not available",width:(s=u===null||u===void 0?void 0:u.width)!==null&&s!==void 0?s:"100%",height:(h=u===null||u===void 0?void 0:u.height)!==null&&h!==void 0?h:"100%"};x.forEach(function(n){a[n]!==void 0&&(g[n]=a[n])});var w=(a===null||a===void 0?void 0:a.full_width)?"container !p-0":"";return y(b,{image_alignment:o,width:g.width,height:g.height,className:w,children:y(m,e({},g))})},O=w;export{O as CsImage,p as CsTextComponent};//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/text/CsText.tsx","../src/image/CsImage.tsx","../src/image/CsImage.styled.tsx"],"names":["NsTypography","useMemo","useRouteReplacer","jsx","jsxs","getResolvedVariant","variant","rewriteLinks","html","doc","DOMParser","parseFromString","querySelectorAll","forEach","link","href","getAttribute","url","setAttribute","startsWith","body","innerHTML","CsText","show","full_width","container_background_color","include_gap","alignment","header_variants","text_editor","backgroundColor","JSON","parse","brandColor","colorObj","light","updatedHtml","window","style","width","textAlign","padding","children","renderHTMLNode","dangerouslySetInnerHTML","__html","className","CsText_default","NsImage","styled","StyledCsImageWrapper","image_alignment","height","display","justifyContent","left","right","center","maxWidth","objectFit","objectPosition","allowedImageProps","CsImage","props","fileMeta","align","image","rest","selectedImage","entry","selected","files","err","console","warn","imageType","imageProps","src","alt","altText","key","containerClassForNSImage","CsImage_default"],"mappings":"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","sourcesContent":["import { NsTypography } from '@nuskin/foundation-ui-components';\nimport { ReactElement, useMemo } from 'react';\nimport { useRouteReplacer } from '@nuskin/foundation-core-app/common/hooks';\n\ninterface CsTextProps {\n show: boolean;\n full_width?: boolean;\n container_background_color?: string;\n include_gap?: boolean;\n alignment?: 'left' | 'center' | 'right';\n header_variants?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p';\n text_editor: string;\n}\n\nconst getResolvedVariant = (variant: CsTextProps['header_variants']): Parameters<typeof NsTypography>[0]['variant'] => {\n return variant === 'p' ? 'body-l' : (variant ?? 'h2');\n};\n\nexport const rewriteLinks = (html: string): string => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n const links = doc.querySelectorAll('a');\n\n links.forEach((link) => {\n const href = link.getAttribute('href') ?? '';\n const { url } = useRouteReplacer(href);\n\n if (url) {\n link.setAttribute('href', url?.startsWith('http') ? url : `https://${url}`);\n }\n });\n\n return doc.body.innerHTML;\n};\n\nconst CsText = ({\n show,\n full_width = false,\n container_background_color = '',\n include_gap = false,\n alignment = 'left',\n header_variants = 'h2',\n text_editor\n}: CsTextProps): ReactElement | null => {\n const backgroundColor = useMemo(() => {\n try {\n if (container_background_color) {\n const parsed = JSON.parse(container_background_color);\n return parsed?.brandColor?.colorObj?.light || 'transparent';\n }\n } catch {\n return 'transparent';\n }\n return 'transparent';\n }, [container_background_color]);\n\n const updatedHtml = useMemo(() => {\n if (typeof window === 'undefined') return text_editor;\n return rewriteLinks(text_editor);\n }, [text_editor]);\n\n if (!show) return null;\n\n return (\n <div\n style={{\n width: full_width ? '100%' : 'auto',\n backgroundColor,\n textAlign: alignment,\n padding: '16px 32px'\n }}\n >\n <NsTypography variant={getResolvedVariant(header_variants)} renderHTMLNode>\n <div dangerouslySetInnerHTML={{ __html: updatedHtml }} className=\"cs-text-html\" />\n </NsTypography>\n\n <style>\n {`\n .cs-text-html {\n display: block;\n }\n\n .cs-text-html p {\n margin: 0;\n }\n `}\n </style>\n </div>\n );\n};\n\nexport default CsText;\n","import { NsImage } from '@nuskin/foundation-ui-components';\nimport { StyledCsImageWrapper } from './CsImage.styled';\nimport type { CsImageProps, NsImageProps } from './types';\n\nconst allowedImageProps: (keyof NsImageProps)[] = [\n 'alt',\n 'className',\n 'fill',\n 'height',\n 'id',\n 'src',\n 'variant',\n 'width'\n];\n\nconst CsImage = (props: CsImageProps) => {\n const { image_alignment: align = 'center', image, ...rest } = props;\n\n let selectedImage: any = null;\n let fileMeta: any = null;\n\n try {\n const parsed = typeof image === 'string' ? JSON.parse(image) : image;\n const entry = parsed?.image?.[0];\n selectedImage = entry?.selected;\n fileMeta = entry?.files;\n } catch (err) {\n console.warn('[CsImage] Failed to parse image prop:', err);\n }\n\n const imageType = selectedImage?.imageType || 'transformBaseUrl';\n const fileSource = fileMeta?.[imageType];\n\n const imageProps: NsImageProps = {\n src: fileSource?.url || '',\n alt: selectedImage?.altText || 'Image not available',\n width: selectedImage?.width ?? '100%',\n height: selectedImage?.height ?? '100%'\n };\n\n // Add any other valid props from rest\n allowedImageProps.forEach((key) => {\n if (rest[key] !== undefined) {\n (imageProps as any)[key] = rest[key];\n }\n });\n const containerClassForNSImage = rest?.full_width ? 'container !p-0' : '';\n\n return (\n <StyledCsImageWrapper\n image_alignment={align}\n width={imageProps.width}\n height={imageProps.height}\n className={containerClassForNSImage}\n >\n <NsImage {...imageProps} />\n </StyledCsImageWrapper>\n );\n};\n\nexport default CsImage;\n","import { styled } from '@nuskin/foundation-theme';\nimport type { CsImageProps } from './types';\n\nexport const StyledCsImageWrapper = styled('div')<\n Pick<CsImageProps, 'image_alignment'> & { width?: string | number; height?: string | number }\n>(({ image_alignment = 'center', width, height }) => ({\n display: 'flex',\n justifyContent: {\n left: 'flex-start',\n right: 'flex-end',\n center: 'center'\n }[image_alignment],\n '& img': {\n maxWidth: 'fit-content',\n objectFit: 'contain',\n objectPosition: 'center'\n }\n}));\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/text/CsText.tsx","../src/image/CsImage.tsx","../src/image/CsImage.styled.tsx"],"names":["useMemo","useRouteReplacer","useToggleFontColor","styled","jsx","rewriteLinks","html","replacer","doc","DOMParser","parseFromString","querySelectorAll","forEach","link","href","getAttribute","sanitizedUrl","url","setAttribute","startsWith","body","innerHTML","Container","div","fullWidth","bgColor","alignment","color","CsText","full_width","container_background_color","text_editor","font_color","resolvedFontColor","routeReplacer","safeRouteReplacer","backgroundColor","JSON","parse","brandColor","colorObj","light","updatedHtml","window","children","dangerouslySetInnerHTML","__html","CsText_default","NsImage","StyledCsImageWrapper","image_alignment","width","height","display","justifyContent","left","right","center","maxWidth","objectFit","objectPosition","allowedImageProps","CsImage","props","fileMeta","align","image","rest","selectedImage","entry","selected","files","err","console","warn","imageType","imageProps","src","alt","altText","key","containerClassForNSImage","className","CsImage_default"],"mappings":"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","sourcesContent":["import { ReactElement, useMemo } from 'react';\nimport { useRouteReplacer, useToggleFontColor } from '@nuskin/foundation-core-app/common/hooks';\nimport styled from '@emotion/styled';\n\ninterface CsTextProps {\n full_width?: boolean;\n container_background_color?: string;\n alignment?: 'left' | 'center' | 'right';\n text_editor: string;\n font_color?: boolean;\n}\n\nexport const rewriteLinks = (html: string, replacer: (url: string) => { url: string }): string => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n const links = doc.querySelectorAll('a');\n\n links.forEach((link) => {\n const href = link.getAttribute('href') ?? '';\n const { url: sanitizedUrl = '' } = replacer(href);\n\n link.setAttribute('href', sanitizedUrl.startsWith('http') ? sanitizedUrl : `https://${sanitizedUrl}`);\n });\n\n return doc.body.innerHTML;\n};\n\n// Emotion styled container\nconst Container = styled.div<{ fullWidth: boolean; bgColor: string; alignment: string; color: string }>`\n width: ${({ fullWidth }) => (fullWidth ? '100%' : 'auto')};\n background-color: ${({ bgColor }) => bgColor};\n text-align: ${({ alignment }) => alignment};\n color: ${({ color }) => color};\n padding: 16px 32px;\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: 'Lora', serif;\n }\n h1 {\n font-size: 42px;\n line-height: 48px;\n }\n h2 {\n font-size: 36px;\n line-height: 42px;\n }\n h3 {\n font-size: 32px;\n line-height: 38px;\n }\n h4 {\n font-size: 26px;\n line-height: 34px;\n }\n h5 {\n font-size: 22px;\n line-height: 28px;\n }\n h6 {\n font-size: 18px;\n line-height: 24px;\n }\n p {\n margin: 0;\n padding: 0;\n }\n`;\n\nconst CsText = ({\n full_width = false,\n container_background_color = '',\n alignment = 'left',\n text_editor,\n font_color = false\n}: CsTextProps): ReactElement | null => {\n const resolvedFontColor = useToggleFontColor(font_color);\n const routeReplacer = useRouteReplacer() as unknown as ((url: string) => { url: string }) | undefined;\n\n const safeRouteReplacer = (url: string) => {\n if (typeof routeReplacer === 'function') {\n const result = routeReplacer(url);\n return { url: result?.url ?? '' };\n }\n return { url };\n };\n\n const backgroundColor = useMemo(() => {\n try {\n if (container_background_color) {\n const parsed = JSON.parse(container_background_color);\n return parsed?.brandColor?.colorObj?.light || 'transparent';\n }\n } catch {\n return 'transparent';\n }\n return 'transparent';\n }, [container_background_color]);\n\n const updatedHtml = useMemo(() => {\n if (typeof window === 'undefined') return text_editor;\n return rewriteLinks(text_editor, safeRouteReplacer);\n }, [text_editor, routeReplacer]);\n\n return (\n <Container color={resolvedFontColor} fullWidth={full_width} bgColor={backgroundColor} alignment={alignment}>\n <div dangerouslySetInnerHTML={{ __html: updatedHtml }} />\n </Container>\n );\n};\n\nexport default CsText;\n","import { NsImage } from '@nuskin/foundation-ui-components';\nimport { StyledCsImageWrapper } from './CsImage.styled';\nimport type { CsImageProps, NsImageProps } from './types';\n\nconst allowedImageProps: (keyof NsImageProps)[] = [\n 'alt',\n 'className',\n 'fill',\n 'height',\n 'id',\n 'src',\n 'variant',\n 'width'\n];\n\nconst CsImage = (props: CsImageProps) => {\n const { image_alignment: align = 'center', image, ...rest } = props;\n\n let selectedImage: any = null;\n let fileMeta: any = null;\n\n try {\n const parsed = typeof image === 'string' ? JSON.parse(image) : image;\n const entry = parsed?.image?.[0];\n selectedImage = entry?.selected;\n fileMeta = entry?.files;\n } catch (err) {\n console.warn('[CsImage] Failed to parse image prop:', err);\n }\n\n const imageType = selectedImage?.imageType || 'transformBaseUrl';\n const fileSource = fileMeta?.[imageType];\n\n const imageProps: NsImageProps = {\n src: fileSource?.url || '',\n alt: selectedImage?.altText || 'Image not available',\n width: selectedImage?.width ?? '100%',\n height: selectedImage?.height ?? '100%'\n };\n\n // Add any other valid props from rest\n allowedImageProps.forEach((key) => {\n if (rest[key] !== undefined) {\n (imageProps as any)[key] = rest[key];\n }\n });\n const containerClassForNSImage = rest?.full_width ? 'container !p-0' : '';\n\n return (\n <StyledCsImageWrapper\n image_alignment={align}\n width={imageProps.width}\n height={imageProps.height}\n className={containerClassForNSImage}\n >\n <NsImage {...imageProps} />\n </StyledCsImageWrapper>\n );\n};\n\nexport default CsImage;\n","import { styled } from '@nuskin/foundation-theme';\nimport type { CsImageProps } from './types';\n\nexport const StyledCsImageWrapper = styled('div')<\n Pick<CsImageProps, 'image_alignment'> & { width?: string | number; height?: string | number }\n>(({ image_alignment = 'center', width, height }) => ({\n display: 'flex',\n justifyContent: {\n left: 'flex-start',\n right: 'flex-end',\n center: 'center'\n }[image_alignment],\n '& img': {\n maxWidth: 'fit-content',\n objectFit: 'contain',\n objectPosition: 'center'\n }\n}));\n"]}
|
package/dist/text/CsText.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ReactElement } from 'react';
|
|
2
2
|
interface CsTextProps {
|
|
3
|
-
show: boolean;
|
|
4
3
|
full_width?: boolean;
|
|
5
4
|
container_background_color?: string;
|
|
6
|
-
include_gap?: boolean;
|
|
7
5
|
alignment?: 'left' | 'center' | 'right';
|
|
8
|
-
header_variants?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p';
|
|
9
6
|
text_editor: string;
|
|
7
|
+
font_color?: boolean;
|
|
10
8
|
}
|
|
11
|
-
export declare const rewriteLinks: (html: string) =>
|
|
12
|
-
|
|
9
|
+
export declare const rewriteLinks: (html: string, replacer: (url: string) => {
|
|
10
|
+
url: string;
|
|
11
|
+
}) => string;
|
|
12
|
+
declare const CsText: ({ full_width, container_background_color, alignment, text_editor, font_color }: CsTextProps) => ReactElement | null;
|
|
13
13
|
export default CsText;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuskin/marketing-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-text-updates.2",
|
|
4
4
|
"description": "A React based component library for marketing components to use with content stack pagebuilding",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"main": "dist/index.js",
|