@nuskin/marketing-components 1.0.2 → 1.1.0-text-updates.1

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 CHANGED
@@ -1 +1 @@
1
- "use strict";function e(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}var r=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var u=function(e,n){for(var t in n)r(e,t,{get:n[t],enumerable:!0})},i=function(u,i,a,l){var d=true,c=false,s=undefined;if(i&&(typeof i==="undefined"?"undefined":e(i))=="object"||typeof i=="function")try{var f=function(){var e=p.value;!o.call(u,e)&&e!==a&&r(u,e,{get:function(){return i[e]},enumerable:!(l=n(i,e))||l.enumerable})};for(var v=t(i)[Symbol.iterator](),p;!(d=(p=v.next()).done);d=true)f()}catch(e){c=true;s=e}finally{try{if(!d&&v.return!=null){v.return()}}finally{if(c){throw s}}}return u};var a=function(e){return i(r({},"__esModule",{value:!0}),e)};var l={};u(l,{CsTextComponent:function(){return h}});module.exports=a(l);var d=require("@nuskin/foundation-ui-components"),c=require("react"),s=require("@nuskin/foundation-core-app/common/hooks"),f=require("react/jsx-runtime"),v=function(e){return e==="p"?"body-l":e!==null&&e!==void 0?e:"h2"},p=function(e,r){var n=new DOMParser().parseFromString(e,"text/html");return n.querySelectorAll("a").forEach(function(e){var n;var t=(n=e.getAttribute("href"))!==null&&n!==void 0?n:"",o=r(t),u=o.url,i=u===void 0?"":u;e.setAttribute("href",i.startsWith("http")?i:"https://".concat(i))}),n.body.innerHTML},y=function(r){var n=r.show,t=r.full_width,o=t===void 0?!1:t,u=r.container_background_color,i=u===void 0?"":u,a=r.include_gap,l=a===void 0?!1:a,y=r.alignment,h=y===void 0?"left":y,m=r.header_variants,b=m===void 0?"h2":m,g=r.text_editor;var x=(0,s.useRouteReplacer)(),w=function(e){var r;var n;return typeof x=="function"?{url:(n=(r=x(e))===null||r===void 0?void 0:r.url)!==null&&n!==void 0?n:""}:{url:e}},j=(0,c.useMemo)(function(){try{var e,r,n;if(i)return((n=JSON.parse(i))===null||n===void 0?void 0:(r=n.brandColor)===null||r===void 0?void 0:(e=r.colorObj)===null||e===void 0?void 0:e.light)||"transparent"}catch(e){return"transparent"}return"transparent"},[i]),O=(0,c.useMemo)(function(){return(typeof window==="undefined"?"undefined":e(window))>"u"?g:p(g,w)},[g,x]);return n?(0,f.jsxs)("div",{style:{width:o?"100%":"auto",backgroundColor:j,textAlign:h,padding:"16px 32px"},children:[(0,f.jsx)(d.NsTypography,{variant:v(b),renderHTMLNode:!0,children:(0,f.jsx)("div",{dangerouslySetInnerHTML:{__html:O},className:"cs-text-html"})}),(0,f.jsx)("style",{children:"\n .cs-text-html {\n display: block;\n }\n\n .cs-text-html p {\n margin: 0;\n }\n "})]}):null},h=y;//# sourceMappingURL=index.js.map
1
+ "use strict";function e(e,r){if(!r){r=e.slice(0)}return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}function r(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function n(){var r=e(["\n width: ",";\n background-color: ",";\n text-align: ",";\n color: ",";\n padding: 16px 32px;\n p {\n margin: 0;\n padding: 0;\n }\n"]);n=function e(){return r};return r}var t=Object.create;var o=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var c=function(e,r){for(var n in r)o(e,n,{get:r[n],enumerable:!0})},f=function(e,n,t,a){var c=true,f=false,d=undefined;if(n&&(typeof n==="undefined"?"undefined":r(n))=="object"||typeof n=="function")try{var v=function(){var r=p.value;!l.call(e,r)&&r!==t&&o(e,r,{get:function(){return n[r]},enumerable:!(a=u(n,r))||a.enumerable})};for(var s=i(n)[Symbol.iterator](),p;!(c=(p=s.next()).done);c=true)v()}catch(e){f=true;d=e}finally{try{if(!c&&s.return!=null){s.return()}}finally{if(f){throw d}}}return e};var d=function(e,r,n){return n=e!=null?t(a(e)):{},f(r||!e||!e.__esModule?o(n,"default",{value:e,enumerable:!0}):n,e)},v=function(e){return f(o({},"__esModule",{value:!0}),e)};var s={};c(s,{CsTextComponent:function(){return j}});module.exports=v(s);var p=require("react"),b=require("@nuskin/foundation-core-app/common/hooks"),y=d(require("@emotion/styled")),m=require("react/jsx-runtime"),g=function(e,r){var n=new DOMParser().parseFromString(e,"text/html");return n.querySelectorAll("a").forEach(function(e){var n;var t=(n=e.getAttribute("href"))!==null&&n!==void 0?n:"",o=r(t),u=o.url,i=u===void 0?"":u;e.setAttribute("href",i.startsWith("http")?i:"https://".concat(i))}),n.body.innerHTML},h=y.default.div(n(),function(e){var r=e.fullWidth;return r?"100%":"auto"},function(e){var r=e.bgColor;return r},function(e){var r=e.alignment;return r},function(e){var r=e.color;return r}),O=function(e){var n=e.full_width,t=n===void 0?!1:n,o=e.container_background_color,u=o===void 0?"":o,i=e.alignment,a=i===void 0?"left":i,l=e.text_editor,c=e.font_color,f=c===void 0?!1:c;var d=(0,b.useToggleFontColor)(f),v=(0,b.useRouteReplacer)(),s=function(e){var r;var n;return typeof v=="function"?{url:(n=(r=v(e))===null||r===void 0?void 0:r.url)!==null&&n!==void 0?n:""}:{url:e}},y=(0,p.useMemo)(function(){try{var e,r,n;if(u)return((n=JSON.parse(u))===null||n===void 0?void 0:(r=n.brandColor)===null||r===void 0?void 0:(e=r.colorObj)===null||e===void 0?void 0:e.light)||"transparent"}catch(e){return"transparent"}return"transparent"},[u]),O=(0,p.useMemo)(function(){return(typeof window==="undefined"?"undefined":r(window))>"u"?l:g(l,s)},[l,v]);return(0,m.jsx)(h,{color:d,fullWidth:t,bgColor:y,alignment:a,children:(0,m.jsx)("div",{dangerouslySetInnerHTML:{__html:O}})})},j=O;//# 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"],"names":["u","Object","defineProperty","x","getOwnPropertyDescriptor","T","getOwnPropertyNames","b","prototype","hasOwnProperty","w","t","e","r","get","enumerable","C","o","n","call","R","value","index_exports","__export","CsTextComponent","CsText_default","module","exports","__toCommonJS","import_foundation_ui_components","require","import_react","import_hooks","import_jsx_runtime","getResolvedVariant","variant","rewriteLinks","html","replacer","doc","DOMParser","parseFromString","querySelectorAll","forEach","link","href","getAttribute","sanitizedUrl","url","setAttribute","startsWith","body","innerHTML","CsText","show","full_width","container_background_color","include_gap","alignment","header_variants","text_editor","routeReplacer","h","useRouteReplacer","safeRouteReplacer","backgroundColor","c","useMemo","JSON","parse","brandColor","colorObj","light","updatedHtml","window","a","jsxs","style","width","textAlign","padding","children","jsx","d","NsTypography","renderHTMLNode","dangerouslySetInnerHTML","__html","className"],"mappings":"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","sourcesContent":["\"use strict\";var u=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var w=(t,e)=>{for(var r in e)u(t,r,{get:e[r],enumerable:!0})},C=(t,e,r,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of T(e))!b.call(t,n)&&n!==r&&u(t,n,{get:()=>e[n],enumerable:!(o=x(e,n))||o.enumerable});return t};var R=t=>C(u({},\"__esModule\",{value:!0}),t);var P={};w(P,{CsTextComponent:()=>f});module.exports=R(P);var d=require(\"@nuskin/foundation-ui-components\"),c=require(\"react\"),h=require(\"@nuskin/foundation-core-app/common/hooks\"),a=require(\"react/jsx-runtime\"),v=t=>t===\"p\"?\"body-l\":t??\"h2\",N=(t,e)=>{let o=new DOMParser().parseFromString(t,\"text/html\");return o.querySelectorAll(\"a\").forEach(i=>{let l=i.getAttribute(\"href\")??\"\",{url:s=\"\"}=e(l);i.setAttribute(\"href\",s.startsWith(\"http\")?s:`https://${s}`)}),o.body.innerHTML},M=({show:t,full_width:e=!1,container_background_color:r=\"\",include_gap:o=!1,alignment:n=\"left\",header_variants:i=\"h2\",text_editor:l})=>{let s=(0,h.useRouteReplacer)(),g=p=>typeof s==\"function\"?{url:s(p)?.url??\"\"}:{url:p},m=(0,c.useMemo)(()=>{try{if(r)return JSON.parse(r)?.brandColor?.colorObj?.light||\"transparent\"}catch{return\"transparent\"}return\"transparent\"},[r]),y=(0,c.useMemo)(()=>typeof window>\"u\"?l:N(l,g),[l,s]);return t?(0,a.jsxs)(\"div\",{style:{width:e?\"100%\":\"auto\",backgroundColor:m,textAlign:n,padding:\"16px 32px\"},children:[(0,a.jsx)(d.NsTypography,{variant:v(i),renderHTMLNode:!0,children:(0,a.jsx)(\"div\",{dangerouslySetInnerHTML:{__html:y},className:\"cs-text-html\"})}),(0,a.jsx)(\"style\",{children:`\n .cs-text-html {\n display: block;\n }\n\n .cs-text-html p {\n margin: 0;\n }\n `})]}):null},f=M;\n","export * from './text';\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 = (\n variant: CsTextProps['header_variants']\n): Parameters<typeof NsTypography>[0]['variant'] => {\n return variant === 'p' ? 'body-l' : variant ?? 'h2';\n};\n\nexport const rewriteLinks = (\n html: string,\n replacer: (url: string) => { url: string }\n): 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(\n 'href',\n sanitizedUrl.startsWith('http') ? sanitizedUrl : `https://${sanitizedUrl}`\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 routeReplacer = useRouteReplacer() as unknown as\n | ((url: string) => { url: string })\n | 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 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\n dangerouslySetInnerHTML={{ __html: updatedHtml }}\n className=\"cs-text-html\"\n />\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"]}
1
+ {"version":3,"sources":["/gitlab-runner-data/builds/ns-am/content-foundation/marketing-components/dist/index.js","../src/index.ts","../src/text/CsText.tsx"],"names":["b","Object","create","i","defineProperty","x","getOwnPropertyDescriptor","w","getOwnPropertyNames","y","getPrototypeOf","R","prototype","hasOwnProperty","T","t","r","e","get","enumerable","g","n","o","call","$","__esModule","value","k","index_exports","__export","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","d","styled","div","fullWidth","bgColor","alignment","color","CsText","full_width","container_background_color","text_editor","font_color","resolvedFontColor","u","useToggleFontColor","routeReplacer","useRouteReplacer","safeRouteReplacer","backgroundColor","p","useMemo","JSON","parse","brandColor","colorObj","light","updatedHtml","window","f","jsx","children","dangerouslySetInnerHTML","__html"],"mappings":"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","sourcesContent":["\"use strict\";var b=Object.create;var i=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var T=(t,r)=>{for(var e in r)i(t,e,{get:r[e],enumerable:!0})},g=(t,r,e,n)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let o of w(r))!R.call(t,o)&&o!==e&&i(t,o,{get:()=>r[o],enumerable:!(n=x(r,o))||n.enumerable});return t};var $=(t,r,e)=>(e=t!=null?b(y(t)):{},g(r||!t||!t.__esModule?i(e,\"default\",{value:t,enumerable:!0}):e,t)),k=t=>g(i({},\"__esModule\",{value:!0}),t);var A={};T(A,{CsTextComponent:()=>m});module.exports=k(A);var p=require(\"react\"),u=require(\"@nuskin/foundation-core-app/common/hooks\"),d=$(require(\"@emotion/styled\")),f=require(\"react/jsx-runtime\"),M=(t,r)=>{let n=new DOMParser().parseFromString(t,\"text/html\");return n.querySelectorAll(\"a\").forEach(a=>{let s=a.getAttribute(\"href\")??\"\",{url:l=\"\"}=r(s);a.setAttribute(\"href\",l.startsWith(\"http\")?l:`https://${l}`)}),n.body.innerHTML},S=d.default.div`\n width: ${({fullWidth:t})=>t?\"100%\":\"auto\"};\n background-color: ${({bgColor:t})=>t};\n text-align: ${({alignment:t})=>t};\n color: ${({color:t})=>t};\n padding: 16px 32px;\n p {\n margin: 0;\n padding: 0;\n }\n`,v=({full_width:t=!1,container_background_color:r=\"\",alignment:e=\"left\",text_editor:n,font_color:o=!1})=>{let a=(0,u.useToggleFontColor)(o),s=(0,u.useRouteReplacer)(),l=c=>typeof s==\"function\"?{url:s(c)?.url??\"\"}:{url:c},h=(0,p.useMemo)(()=>{try{if(r)return JSON.parse(r)?.brandColor?.colorObj?.light||\"transparent\"}catch{return\"transparent\"}return\"transparent\"},[r]),C=(0,p.useMemo)(()=>typeof window>\"u\"?n:M(n,l),[n,s]);return(0,f.jsx)(S,{color:a,fullWidth:t,bgColor:h,alignment:e,children:(0,f.jsx)(\"div\",{dangerouslySetInnerHTML:{__html:C}})})},m=v;\n","export * from './text';\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 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"]}
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- function n(n){"@swc/helpers - typeof";return n&&typeof Symbol!=="undefined"&&n.constructor===Symbol?"symbol":typeof n}import{NsTypography as t}from"@nuskin/foundation-ui-components";import{useMemo as r}from"react";import{useRouteReplacer as o}from"@nuskin/foundation-core-app/common/hooks";import{jsx as e,jsxs as i}from"react/jsx-runtime";var a=function(n){return n==="p"?"body-l":n!==null&&n!==void 0?n:"h2"},l=function(n,t){var r=new DOMParser().parseFromString(n,"text/html");return r.querySelectorAll("a").forEach(function(n){var r;var o=(r=n.getAttribute("href"))!==null&&r!==void 0?r:"",e=t(o),i=e.url,a=i===void 0?"":i;n.setAttribute("href",a.startsWith("http")?a:"https://".concat(a))}),r.body.innerHTML},u=function(u){var d=u.show,s=u.full_width,c=s===void 0?!1:s,p=u.container_background_color,v=p===void 0?"":p,f=u.include_gap,m=f===void 0?!1:f,h=u.alignment,y=h===void 0?"left":h,x=u.header_variants,b=x===void 0?"h2":x,g=u.text_editor;var w=o(),_=function(n){var t;var r;return typeof w=="function"?{url:(r=(t=w(n))===null||t===void 0?void 0:t.url)!==null&&r!==void 0?r:""}:{url:n}},k=r(function(){try{var n,t,r;if(v)return((r=JSON.parse(v))===null||r===void 0?void 0:(t=r.brandColor)===null||t===void 0?void 0:(n=t.colorObj)===null||n===void 0?void 0:n.light)||"transparent"}catch(n){return"transparent"}return"transparent"},[v]),S=r(function(){return(typeof window==="undefined"?"undefined":n(window))>"u"?g:l(g,_)},[g,w]);return d?i("div",{style:{width:c?"100%":"auto",backgroundColor:k,textAlign:y,padding:"16px 32px"},children:[e(t,{variant:a(b),renderHTMLNode:!0,children:e("div",{dangerouslySetInnerHTML:{__html:S},className:"cs-text-html"})}),e("style",{children:"\n .cs-text-html {\n display: block;\n }\n\n .cs-text-html p {\n margin: 0;\n }\n "})]}):null},d=u;export{d as CsTextComponent};//# sourceMappingURL=index.mjs.map
1
+ function n(n,r){if(!r){r=n.slice(0)}return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(r)}}))}function r(n){"@swc/helpers - typeof";return n&&typeof Symbol!=="undefined"&&n.constructor===Symbol?"symbol":typeof n}function t(){var r=n(["\n width: ",";\n background-color: ",";\n text-align: ",";\n color: ",";\n padding: 16px 32px;\n p {\n margin: 0;\n padding: 0;\n }\n"]);t=function n(){return r};return r}import{useMemo as o}from"react";import{useRouteReplacer as e,useToggleFontColor as i}from"@nuskin/foundation-core-app/common/hooks";import u from"@emotion/styled";import{jsx as l}from"react/jsx-runtime";var a=function(n,r){var t=new DOMParser().parseFromString(n,"text/html");return t.querySelectorAll("a").forEach(function(n){var t;var o=(t=n.getAttribute("href"))!==null&&t!==void 0?t:"",e=r(o),i=e.url,u=i===void 0?"":i;n.setAttribute("href",u.startsWith("http")?u:"https://".concat(u))}),t.body.innerHTML},c=u.div(t(),function(n){var r=n.fullWidth;return r?"100%":"auto"},function(n){var r=n.bgColor;return r},function(n){var r=n.alignment;return r},function(n){var r=n.color;return r}),d=function(n){var t=n.full_width,u=t===void 0?!1:t,d=n.container_background_color,f=d===void 0?"":d,v=n.alignment,s=v===void 0?"left":v,p=n.text_editor,m=n.font_color,g=m===void 0?!1:m;var h=i(g),b=e(),y=function(n){var r;var t;return typeof b=="function"?{url:(t=(r=b(n))===null||r===void 0?void 0:r.url)!==null&&t!==void 0?t:""}:{url:n}},x=o(function(){try{var n,r,t;if(f)return((t=JSON.parse(f))===null||t===void 0?void 0:(r=t.brandColor)===null||r===void 0?void 0:(n=r.colorObj)===null||n===void 0?void 0:n.light)||"transparent"}catch(n){return"transparent"}return"transparent"},[f]),w=o(function(){return(typeof window==="undefined"?"undefined":r(window))>"u"?p:a(p,y)},[p,b]);return l(c,{color:h,fullWidth:u,bgColor:x,alignment:s,children:l("div",{dangerouslySetInnerHTML:{__html:w}})})},f=d;export{f as CsTextComponent};//# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/text/CsText.tsx"],"names":["NsTypography","useMemo","useRouteReplacer","jsx","jsxs","getResolvedVariant","variant","rewriteLinks","html","replacer","doc","DOMParser","parseFromString","querySelectorAll","forEach","link","href","getAttribute","sanitizedUrl","url","setAttribute","startsWith","body","innerHTML","CsText","show","full_width","container_background_color","include_gap","alignment","header_variants","text_editor","routeReplacer","safeRouteReplacer","backgroundColor","JSON","parse","brandColor","colorObj","light","updatedHtml","window","style","width","textAlign","padding","children","renderHTMLNode","dangerouslySetInnerHTML","__html","className","CsText_default"],"mappings":"sHAAA,OAASA,gBAAAA,CAAAA,KAAoB,kCAC7B,QAAuBC,WAAAA,CAAAA,KAAe,OACtC,QAASC,oBAAAA,CAAAA,KAAwB,0CAgFzB,QASQC,OAAAA,CAAAA,CATRC,QAAAA,CAAAA,KAAA,mBApER,CAAA,IAAMC,EACFC,SAAAA,UAEOA,IAAY,IAAM,SAAWA,UAAAA,WAAAA,EAAW,MAGtCC,EAAe,SACxBC,EACAC,GAGA,IAAMC,EADS,IAAIC,YACAC,eAAA,CAAgBJ,EAAM,aAGzC,OAFcE,EAAIG,gBAAA,CAAiB,KAE7BC,OAAA,CAASC,SAAAA,OACEA,EAAb,IAAMC,EAAOD,CAAAA,EAAAA,EAAKE,YAAA,CAAa,iBAAlBF,WAAAA,EAA6B,GACPN,EAAAA,EAASO,GAA/BE,EAAsBT,EAA3BU,IAAKD,EAAAA,WAAe,GAAfA,EAEbH,EAAKK,YAAA,CACD,OACAF,EAAaG,UAAA,CAAW,QAAUH,EAAe,WAAuB,OAAZA,GAEpE,GAEOR,EAAIY,IAAA,CAAKC,SACpB,EAEMC,EAAS,gBACXC,IAAAA,KACAC,IAAAA,WAAAA,EAAAA,WAAa,CAAA,EAAbA,EACAC,IAAAA,2BAAAA,EAAAA,WAA6B,GAA7BA,EACAC,IAAAA,YAAAA,EAAAA,WAAc,CAAA,EAAdA,EACAC,IAAAA,UAAAA,EAAAA,WAAY,OAAZA,EACAC,IAAAA,gBAAAA,EAAAA,WAAkB,KAAlBA,EACAC,IAAAA,YAEA,IAAMC,EAAgB9B,IAIhB+B,EAAqBd,SAAAA,OAEJa,MAAAA,SADf,OAAOA,GAAkB,WAElB,CAAEb,IADMa,CAAAA,GAAAA,EAAAA,EAAcb,YAAda,kBAAAA,EACOb,GAAA,UADPa,WAAAA,EACc,EAAG,EAE7B,CAAEb,IAAAA,CAAI,GAGXe,EAAkBjC,EAAQ,WAC5B,GAAI,KAEmBkC,EAAAA,EAAAA,EADnB,GAAIR,EAEA,MADeQ,EAAAA,EAAAA,KAAKC,KAAA,CAAMT,YAAXQ,mBAAAA,EAAAA,EACAE,UAAA,UADAF,mBAAAA,EAAAA,EACYG,QAAA,UADZH,kBAAAA,EACsBI,KAAA,GAAS,aAEtD,CAAA,QAAQ,CACJ,MAAO,aACX,CACA,MAAO,aACX,EAAG,CAACZ,EAA2B,EAEzBa,EAAcvC,EAAQ,iBACpB,CAAA,OAAOwC,iCAAP,EAAOA,OAAA,EAAW,IAAoBV,EACnCxB,EAAawB,EAAaE,IAClC,CAACF,EAAaC,EAAc,EAE/B,OAAKP,EAGDrB,EAAC,MAAA,CACGsC,MAAO,CACHC,MAAOjB,EAAa,OAAS,OAC7BQ,gBAAAA,EACAU,UAAWf,EACXgB,QAAS,WACb,EAEAC,SAAA,CAAA3C,EAACH,EAAA,CAAaM,QAASD,EAAmByB,GAAkBiB,eAAc,CAAA,EACtED,SAAA3C,EAAC,MAAA,CACG6C,wBAAyB,CAAEC,OAAQT,CAAY,EAC/CU,UAAU,cAAA,EACd,GAGJ/C,EAAC,QAAA,CACI2C,SAAA,yIAAA,GASL,GA5BU,IA+BtB,EAEOK,EAAQ3B,SAAAA,KAAAA,eAAAA","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 = (\n variant: CsTextProps['header_variants']\n): Parameters<typeof NsTypography>[0]['variant'] => {\n return variant === 'p' ? 'body-l' : variant ?? 'h2';\n};\n\nexport const rewriteLinks = (\n html: string,\n replacer: (url: string) => { url: string }\n): 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(\n 'href',\n sanitizedUrl.startsWith('http') ? sanitizedUrl : `https://${sanitizedUrl}`\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 routeReplacer = useRouteReplacer() as unknown as\n | ((url: string) => { url: string })\n | 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 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\n dangerouslySetInnerHTML={{ __html: updatedHtml }}\n className=\"cs-text-html\"\n />\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"]}
1
+ {"version":3,"sources":["../src/text/CsText.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"],"mappings":"+cAAA,OAAuBA,WAAAA,CAAAA,KAAe,OACtC,QAASC,oBAAAA,CAAAA,CAAkBC,sBAAAA,CAAAA,KAA0B,0CACrD,QAAOC,MAAY,iBA2EP,QAAAC,OAAAA,CAAAA,KAAA,mBAjEL,CAAA,IAAMC,EAAe,SAACC,EAAcC,GAEvC,IAAMC,EADS,IAAIC,YACAC,eAAA,CAAgBJ,EAAM,aAGzC,OAFcE,EAAIG,gBAAA,CAAiB,KAE7BC,OAAA,CAASC,SAAAA,OACEA,EAAb,IAAMC,EAAOD,CAAAA,EAAAA,EAAKE,YAAA,CAAa,iBAAlBF,WAAAA,EAA6B,GACPN,EAAAA,EAASO,GAA/BE,EAAsBT,EAA3BU,IAAKD,EAAAA,WAAe,GAAfA,EAEbH,EAAKK,YAAA,CAAa,OAAQF,EAAaG,UAAA,CAAW,QAAUH,EAAe,WAAuB,OAAZA,GAC1F,GAEOR,EAAIY,IAAA,CAAKC,SACpB,EAGMC,EAAYnB,EAAOoB,GAAA,KACZ,gBAAGC,IAAAA,iBAAiBA,EAAY,OAAS,QAC9B,gBAAGC,IAAAA,eAAcA,GACvB,gBAAGC,IAAAA,iBAAgBA,GACxB,gBAAGC,IAAAA,aAAYA,IAQtBC,EAAS,gBACXC,IAAAA,WAAAA,EAAAA,WAAa,CAAA,EAAbA,EACAC,IAAAA,2BAAAA,EAAAA,WAA6B,GAA7BA,EACAJ,IAAAA,UAAAA,EAAAA,WAAY,OAAZA,EACAK,IAAAA,YACAC,IAAAA,WAAAA,EAAAA,WAAa,CAAA,EAAbA,EAEA,IAAMC,EAAoB/B,EAAmB8B,GACvCE,EAAgBjC,IAEhBkC,EAAqBlB,SAAAA,OAEJiB,MAAAA,SADf,OAAOA,GAAkB,WAElB,CAAEjB,IADMiB,CAAAA,GAAAA,EAAAA,EAAcjB,YAAdiB,kBAAAA,EACOjB,GAAA,UADPiB,WAAAA,EACc,EAAG,EAE7B,CAAEjB,IAAAA,CAAI,GAGXmB,EAAkBpC,EAAQ,WAC5B,GAAI,KAEmBqC,EAAAA,EAAAA,EADnB,GAAIP,EAEA,MADeO,EAAAA,EAAAA,KAAKC,KAAA,CAAMR,YAAXO,mBAAAA,EAAAA,EACAE,UAAA,UADAF,mBAAAA,EAAAA,EACYG,QAAA,UADZH,kBAAAA,EACsBI,KAAA,GAAS,aAEtD,CAAA,QAAQ,CACJ,MAAO,aACX,CACA,MAAO,aACX,EAAG,CAACX,EAA2B,EAEzBY,EAAc1C,EAAQ,iBACpB,CAAA,OAAO2C,iCAAP,EAAOA,OAAA,EAAW,IAAoBZ,EACnC1B,EAAa0B,EAAaI,IAClC,CAACJ,EAAaG,EAAc,EAE/B,OACI9B,EAACkB,EAAA,CAAUK,MAAOM,EAAmBT,UAAWK,EAAYJ,QAASW,EAAiBV,UAAWA,EAC7FkB,SAAAxC,EAAC,MAAA,CAAIyC,wBAAyB,CAAEC,OAAQJ,CAAY,CAAA,EAAG,EAGnE,EAEOK,EAAQnB,SAAAA,KAAAA,eAAAA","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 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"]}
@@ -1,15 +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
9
  export declare const rewriteLinks: (html: string, replacer: (url: string) => {
12
10
  url: string;
13
11
  }) => string;
14
- declare const CsText: ({ show, full_width, container_background_color, include_gap, alignment, header_variants, text_editor }: CsTextProps) => ReactElement | null;
12
+ declare const CsText: ({ full_width, container_background_color, alignment, text_editor, font_color }: CsTextProps) => ReactElement | null;
15
13
  export default CsText;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuskin/marketing-components",
3
- "version": "1.0.2",
3
+ "version": "1.1.0-text-updates.1",
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",