@gem-sdk/components 17.1.0 → 17.1.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.
@@ -1,6 +1,7 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),Text_liquid=require("../../text/components/Text.liquid.js"),Button_liquid=require("../../button/components/Button.liquid.js"),translate=require("../settings/configs/translate.js");const ArticleReadMore=({setting:e,styles:t,builderAttrs:l,builderProps:r,advanced:o,style:a})=>{let{readMoreType:i,label:n}=e??{},{typoBtn:s,typoText:u,globalSizeText:c,globalSizeBtn:d,textColorTextState:p,alignBtn:g,alignText:x,enableHoverEffectText:b}=t??{};return core.template`
3
- ${core.RenderIf("text"===i,Text_liquid.default({builderAttrs:l,builderProps:r,advanced:o,styles:{...t,color:p,typo:u,spacing:"0px",align:x,textColor:void 0,enableHoverEffect:b},style:a??{},setting:{...e,text:n,globalSize:c,excludeFlex:!0},translateSetting:translate.ArticleReadMore?.label?.id}))}
4
- ${core.RenderIf("text"!==i,core.template`<a href="{{article.url}}" target="_blank" class="gp-cursor-auto gp-pointer-events-none [&_button]:gp-pointer-events-auto">
5
- ${Button_liquid.default({builderAttrs:l,builderProps:r,advanced:o,styles:{...t,typo:s,globalSize:d,align:g},style:a??{},setting:{...e,label:n,htmlType:"button"},translateSetting:translate.ArticleReadMore?.label?.id})}</a>`)}
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),Text_liquid=require("../../text/components/Text.liquid.js"),Button_liquid=require("../../button/components/Button.liquid.js"),translate=require("../settings/configs/translate.js");const ArticleReadMore=({setting:e,styles:t,builderAttrs:l,builderProps:r,advanced:a,style:o,pageContext:i})=>{let{readMoreType:n,label:s}=e??{},{typoBtn:u,typoText:c,globalSizeText:d,globalSizeBtn:p,textColorTextState:g,alignBtn:x,alignText:b,enableHoverEffectText:f}=t??{};return core.template`
3
+ ${core.RenderIf("text"===n,core.template`<a href="{{article.url}}" target="_blank">
4
+ ${Text_liquid.default({builderAttrs:l,builderProps:r,advanced:a,styles:{...t,color:g,typo:c,spacing:"0px",align:b,textColor:void 0,enableHoverEffect:f},style:o??{},setting:{...e,text:s,globalSize:d,excludeFlex:!0},pageContext:i,translateSetting:translate.ArticleReadMore?.label?.id})}</a>`)}
5
+ ${core.RenderIf("text"!==n,core.template`<a href="{{article.url}}" target="_blank" class="gp-cursor-auto gp-pointer-events-none [&_button]:gp-pointer-events-auto">
6
+ ${Button_liquid.default({builderAttrs:l,builderProps:r,advanced:a,styles:{...t,typo:u,globalSize:p,align:x},style:o??{},setting:{...e,label:s,htmlType:"button"},translateSetting:translate.ArticleReadMore?.label?.id,pageContext:i})}</a>`)}
6
7
  `};exports.default=ArticleReadMore;
@@ -1,4 +1,4 @@
1
- "use strict";var core=require("@gem-sdk/core"),helpers=require("../../helpers.js"),Link=require("../../link/components/Link.js"),constant=require("../../constant.js"),styles=require("./styles.js"),translate=require("../settings/configs/translate.js");const getCleanedStyles=(e,t)=>{if(!t)return e;let l={...e},a=["hover","focus"];return a.forEach(e=>{delete l?.backgroundColorV2?.[e]}),l},handleGetLabelToDisplay=({label:e,translateSetting:t,styles:l,pageContext:a,isUseTranslatedValue:s,builderProps:r,isLiquid:o=!1,isForceValue:n})=>{let i=!s||n?e:helpers.getDynamicSourceLocales({val:e,pageContext:a,settingId:helpers.createSettingId({id:t??translate.Button?.label?.id}),uid:r?.uidTranslate??r?.uid,isCapitalize:l?.typo?.attrs?.transform==="capitalize"});return o?i?.toString()??"":core.convertHTML(e)},checkIsShowIcon=(e,t)=>!!e&&t,handleCheckIsShowLabel=(e,t)=>!!e||!t,handleCheckIsEditableLabel=({mode:e,options:t,isLiquid:l=!1})=>l?!t?.isCannotEditing:"edit"===e&&!t?.isCannotEditing,checkIsScrollToElement=e=>!!e?.link?.startsWith("#")&&("_self"===e.target||"scroll-to"===e.type),getSplitStyles=e=>core.splitStyle(["pos","top","left","bottom","right","z"],e),getDataState=e=>e?"loading":"idle",getDataId=(e,t,l)=>e??(t||l)??"",handleGetArialLabel=({label:e,isLiquid:t=!1})=>t?e?.toString().replaceAll("'","&#039;").replaceAll('"',"'")??"":e?.toString()??"",getInsertLinkData=({setting:e,htmlType:t,defaultTag:l,enableBtnLink:a,isLiquid:s=!1,pageType:r})=>{let o=["product.url"],n=["#","mailto:","tel:"],i=e?.link??"",c="/"===i,p=e?.link!==void 0&&""!==e.link,h=new RegExp(/^https?:\/\//i),g=p&&h.test(i);p&&i.toLowerCase().startsWith("mailto:")&&i.includes("+")&&(i=helpers.normalizeMailto(i));let d=()=>{if(o.find(e=>i.includes(e)))return!0;let t=n.find(e=>i.startsWith(e));return!(!t||helpers.checkIsScrollToTop(e)||"STATIC"===r&&helpers.checkIsOpenPopup(e))},u=helpers.isLinkedToSalesPage(e?.type),I=!!a&&(g||helpers.isShopifyDomain(p,i)||d()||c||u),S=i;s&&(helpers.isShopifyDomain(p,i)||c)&&(S=e?.isTranslate?"$locationOrigin"+i:"{{ request.origin }}{{ routes.root_url | split: '/' | join: '/' }}"+i);let k=I?s?"a":Link.default:l,y={href:S,target:e?.target,...e?.noFollow&&{rel:"nofollow"}},L=I?y:p?{...y,type:t}:{type:t};return u&&(L={href:constant.HREF_TO_SALES_PAGE,target:"_self"}),{HTMLTag:k,urlData:L,shouldRenderLink:I}},getData=e=>{let{style:t,dataId:l,pageContext:a,styles:s={},setting:r={},builderProps:o,builderAttrs:n,isUseTranslatedValue:i=!0}=e,{label:c,iconSvg:p,btnLink:h,loading:g,options:d,disabled:u,iconVisible:I,shouldClearSpace:S}=r,[k,y]=getSplitStyles(t),L=getCleanedStyles(s,u),b=styles.getCustomCssStyles({styles:s,uid:o?.uid,builderAttrs:n,enableHoverEffect:r.enableHoverEffect??!0}),C=getDataState(g),D=getDataId(o?.uidInteraction,l,o?.uid),f=e=>{let{isLiquid:t}=e??{};return handleGetArialLabel({label:c,isLiquid:t})},T=e=>{let{isLiquid:t,translateSetting:l,isForceValue:s}=e??{};return handleGetLabelToDisplay({pageContext:a??{},label:c,translateSetting:l,isForceValue:s,builderProps:o,styles:L,isLiquid:t,...t&&{pageContext:a},...t&&{isUseTranslatedValue:i}})},w=e=>{let{isLiquid:t}=e??{},l=T({isLiquid:t});return handleCheckIsShowLabel(l,S)},m=e=>{let{isLiquid:t,mode:l}=e??{};return handleCheckIsEditableLabel({options:d,isLiquid:t,...!t&&l&&{mode:l}})},x=checkIsShowIcon(p,I),E=checkIsScrollToElement(h);return{customCss:b,wrapStyle:k,restStyle:y,dataState:C,dataIdAttr:D,isShowIcon:x,isScrollToElement:E,getArialLabel:f,getLabelToDisplay:T,checkIsShowLabel:w,checkIsEditableLabel:m}},LOADING_INDICATOR=`
1
+ "use strict";var core=require("@gem-sdk/core"),helpers=require("../../helpers.js"),Link=require("../../link/components/Link.js"),constant=require("../../constant.js"),styles=require("./styles.js"),translate=require("../settings/configs/translate.js");const getCleanedStyles=(e,t)=>{if(!t)return e;let l={...e},a=["hover","focus"];return a.forEach(e=>{delete l?.backgroundColorV2?.[e]}),l},handleGetLabelToDisplay=({label:e,translateSetting:t,styles:l,pageContext:a,isUseTranslatedValue:s,builderProps:r,isLiquid:o=!1,isForceValue:n})=>{let i=!s||n?e:helpers.getDynamicSourceLocales({val:e,pageContext:a,settingId:helpers.createSettingId({id:t??translate.Button?.label?.id}),uid:r?.uidTranslate??r?.uid,isCapitalize:l?.typo?.attrs?.transform==="capitalize"});return o?i?.toString()??"":core.convertHTML(e)},checkIsShowIcon=(e,t)=>!!e&&t,handleCheckIsShowLabel=(e,t)=>!!e||!t,handleCheckIsEditableLabel=({mode:e,options:t,isLiquid:l=!1})=>l?!t?.isCannotEditing:"edit"===e&&!t?.isCannotEditing,checkIsScrollToElement=e=>!!e?.link?.startsWith("#")&&("_self"===e.target||"scroll-to"===e.type),getSplitStyles=e=>core.splitStyle(["pos","top","left","bottom","right","z"],e),getDataState=e=>e?"loading":"idle",getDataId=(e,t,l)=>e??(t||l)??"",handleGetArialLabel=({label:e,isLiquid:t=!1})=>t?e?.toString().replaceAll("'","&#039;").replaceAll('"',"'")??"":e?.toString()??"",getInsertLinkData=({setting:e,htmlType:t,defaultTag:l,enableBtnLink:a,isLiquid:s=!1,pageType:r})=>{let o=["product.url"],n=["#","mailto:","tel:"],i=e?.link??"",c="/"===i,p=e?.link!==void 0&&""!==e.link,h=new RegExp(/^https?:\/\//i),g=p&&h.test(i);p&&i.toLowerCase().startsWith("mailto:")&&i.includes("+")&&(i=helpers.normalizeMailto(i));let d=()=>{if(o.find(e=>i.includes(e)))return!0;let t=n.find(e=>i.startsWith(e));return!(!t||helpers.checkIsScrollToTop(e)||"STATIC"===r&&helpers.checkIsOpenPopup(e))},u=helpers.isLinkedToSalesPage(e?.type),I=!!a&&(g||helpers.isShopifyDomain(p,i)||d()||c||u),S=i;s&&(helpers.isShopifyDomain(p,i)||c)&&(S=e?.isTranslate?"$locationOrigin"+i:"{{ request.origin }}{{ routes.root_url | split: '/' | join: '/' }}"+i);let k=I?s?"a":Link.default:l,y={href:S,target:e?.target,...e?.noFollow&&{rel:"nofollow"}},L=I?y:p?{...y,type:t}:{type:t};return u&&(L={href:constant.HREF_TO_SALES_PAGE,target:"_self"}),{HTMLTag:k,urlData:L,shouldRenderLink:I}},getData=e=>{let{style:t,dataId:l,pageContext:a,styles:s={},setting:r={},builderProps:o,builderAttrs:n,isUseTranslatedValue:i=!0}=e,{label:c,iconSvg:p,btnLink:h,loading:g,options:d,disabled:u,iconVisible:I,shouldClearSpace:S}=r,[k,y]=getSplitStyles(t),L=getCleanedStyles(s,u),C=styles.getCustomCssStyles({styles:s,uid:o?.uid,builderAttrs:n,enableHoverEffect:r.enableHoverEffect??!0}),b=getDataState(g),D=getDataId(o?.uidInteraction,l,o?.uid),f=e=>{let{isLiquid:t}=e??{};return handleGetArialLabel({label:c,isLiquid:t})},x=e=>{let{isLiquid:t,translateSetting:l,isForceValue:s,pageContext:r}=e??{};return handleGetLabelToDisplay({pageContext:r??a??{},label:c,translateSetting:l,isForceValue:s,builderProps:o,styles:L,isLiquid:t,...t&&{isUseTranslatedValue:i}})},T=e=>{let{isLiquid:t,translateSetting:l,isForceValue:s,pageContext:r}=e??{},o=x({isLiquid:t,translateSetting:l,isForceValue:s,pageContext:r??a??{}});return handleCheckIsShowLabel(o,S)},w=e=>{let{isLiquid:t,mode:l}=e??{};return handleCheckIsEditableLabel({options:d,isLiquid:t,...!t&&l&&{mode:l}})},m=checkIsShowIcon(p,I),E=checkIsScrollToElement(h);return{customCss:C,wrapStyle:k,restStyle:y,dataState:b,dataIdAttr:D,isShowIcon:m,isScrollToElement:E,getArialLabel:f,getLabelToDisplay:x,checkIsShowLabel:T,checkIsEditableLabel:w}},LOADING_INDICATOR=`
2
2
  <svg
3
3
  class="gp-invisible gp-absolute gp-h-5 gp-w-5 group-data-[state=loading]:gp-animate-spin group-data-[state=loading]:gp-visible"
4
4
  xmlns="http://www.w3.org/2000/svg"
@@ -1,27 +1,27 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),system=require("@gem-sdk/system"),attrs=require("../common/attrs.js"),styles=require("../common/styles.js"),classes=require("../common/classes.js"),helpers$1=require("../../helpers.js"),ButtonIcon_liquid=require("./ButtonIcon.liquid.js"),ButtonLabel_liquid=require("./ButtonLabel.liquid.js"),ButtonLoadingIndicator_liquid=require("./ButtonLoadingIndicator.liquid.js"),helpers=require("../common/helpers.js");const Button=e=>{let{advanced:s,className:t,nodePrice:a,customAttrs:l,styles:r={},setting:i={},builderProps:o,wrapClassName:n="",translateSetting:u,isForceValue:c}=e,{iconSvg:d,btnLink:y,htmlType:g,disabled:p,enableBtnLink:m,shouldClearSpace:$,disabledLoading:q=!0}=i,{enableTextStyle:f=!0}=r,{customCss:B,wrapStyle:L,restStyle:S,dataState:b,dataIdAttr:I,isShowIcon:C,isScrollToElement:v,getArialLabel:h,getLabelToDisplay:j,checkIsShowLabel:_,checkIsEditableLabel:k}=helpers.getData(e),{HTMLTag:E,urlData:T,shouldRenderLink:A}=helpers.getInsertLinkData({enableBtnLink:m,htmlType:g,setting:y,defaultTag:"button",isLiquid:!0}),D=system.createStyle({...styles.getButtonStyles(r,i?.enableHoverEffect)}),P=system.createStyle({...styles.getTypoStyles(r)}),x=system.createStyle({...styles.getTypoStyles(r),...styles.getButtonIconStyles(r,i)}),M=system.createStyle({...styles.getButtonWrapperStyles(S,r)}),O=system.createClass({...classes.getButtonClasses({styles:r,className:t,shouldRenderLink:A,uid:o?.uid,advanced:s})}),W=system.createClass({...classes.getButtonIconClasses(j({isLiquid:!0,translateSetting:u,isForceValue:c}),$,f)}),G=system.createClass({...classes.getButtonLabelClasses(r,k({isLiquid:!0}))}),H=system.createClass({...classes.getButtonWrapperClasses(n,t,s?.cssClass)}),R=system.createClass({...classes.getButtonContentWrapperClasses(i)}),N=system.createClass({...classes.getButtonContainerClasses()}),U=system.createAttr({...attrs.getButtonAttributes({disabled:p,dataState:b,dataId:I,arialLabel:h({isLiquid:!0})})}),V=system.createStateOrContext({btnLink:i?.btnLink});return system.Liquid(core.template`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),system=require("@gem-sdk/system"),attrs=require("../common/attrs.js"),styles=require("../common/styles.js"),classes=require("../common/classes.js"),helpers$1=require("../../helpers.js"),ButtonIcon_liquid=require("./ButtonIcon.liquid.js"),ButtonLabel_liquid=require("./ButtonLabel.liquid.js"),ButtonLoadingIndicator_liquid=require("./ButtonLoadingIndicator.liquid.js"),helpers=require("../common/helpers.js");const Button=e=>{let{advanced:s,className:t,nodePrice:a,customAttrs:l,styles:r={},setting:i={},builderProps:o,wrapClassName:n="",translateSetting:u,isForceValue:c,pageContext:d}=e,{iconSvg:y,btnLink:g,htmlType:p,disabled:m,enableBtnLink:$,shouldClearSpace:q,disabledLoading:f=!0}=i,{enableTextStyle:B=!0}=r,{customCss:L,wrapStyle:S,restStyle:C,dataState:b,dataIdAttr:I,isShowIcon:v,isScrollToElement:h,getArialLabel:j,getLabelToDisplay:_,checkIsShowLabel:k,checkIsEditableLabel:x}=helpers.getData(e),{HTMLTag:E,urlData:T,shouldRenderLink:A}=helpers.getInsertLinkData({enableBtnLink:$,htmlType:p,setting:g,defaultTag:"button",isLiquid:!0}),D=system.createStyle({...styles.getButtonStyles(r,i?.enableHoverEffect)}),P=system.createStyle({...styles.getTypoStyles(r)}),M=system.createStyle({...styles.getTypoStyles(r),...styles.getButtonIconStyles(r,i)}),O=system.createStyle({...styles.getButtonWrapperStyles(C,r)}),W=system.createClass({...classes.getButtonClasses({styles:r,className:t,shouldRenderLink:A,uid:o?.uid,advanced:s})}),G=system.createClass({...classes.getButtonIconClasses(_({isLiquid:!0,translateSetting:u,isForceValue:c,pageContext:d??{}}),q,B)}),H=system.createClass({...classes.getButtonLabelClasses(r,x({isLiquid:!0}))}),R=system.createClass({...classes.getButtonWrapperClasses(n,t,s?.cssClass)}),N=system.createClass({...classes.getButtonContentWrapperClasses(i)}),U=system.createClass({...classes.getButtonContainerClasses()}),V=system.createAttr({...attrs.getButtonAttributes({disabled:m,dataState:b,dataId:I,arialLabel:j({isLiquid:!0})})}),w=system.createStateOrContext({btnLink:i?.btnLink});return system.Liquid(core.template`
2
2
  <gp-button
3
- gp-data='${core.dataStringify(V)}'
4
- style="${{...L}}"
5
- class="${N}"
3
+ gp-data='${core.dataStringify(w)}'
4
+ style="${{...S}}"
5
+ class="${U}"
6
6
  >
7
- <div style="${M}" class="${H}">
8
- <style>${B}</style>
9
- ${system.If(v,`<a
7
+ <div style="${O}" class="${R}">
8
+ <style>${L}</style>
9
+ ${system.If(h,`<a
10
10
  class="gp-trigger-button-link gp-hidden"
11
11
  href=${T.href}
12
12
  target=${T.target}
13
13
  ></a>`)}
14
14
  <${E}
15
- ${{...U}}
15
+ ${{...V}}
16
16
  ${{...l}}
17
17
  ${{...T}}
18
18
  style="${D}"
19
- class="${O}"
19
+ class="${W}"
20
20
  >
21
- ${system.If(!q,ButtonLoadingIndicator_liquid.default(),"")}
22
- <div class="${R}">
23
- ${system.If(C,ButtonIcon_liquid.default({iconSvg:d??"",styles:x,classes:W}))}
24
- ${system.If(f&&_({isLiquid:!0}),ButtonLabel_liquid.default({label:j({isLiquid:!0,translateSetting:u,isForceValue:c}),styles:P,classes:G}))}
21
+ ${system.If(!f,ButtonLoadingIndicator_liquid.default(),"")}
22
+ <div class="${N}">
23
+ ${system.If(v,ButtonIcon_liquid.default({iconSvg:y??"",styles:M,classes:G}))}
24
+ ${system.If(B&&k({isLiquid:!0,translateSetting:u,isForceValue:c,pageContext:d??{}}),ButtonLabel_liquid.default({label:_({isLiquid:!0,translateSetting:u,isForceValue:c,pageContext:d??{}}),styles:P,classes:H}))}
25
25
  </div>
26
26
  ${system.If(!!a,a?.toString()??"","")}
27
27
  </${E}>
@@ -1,6 +1,7 @@
1
1
  'use client';
2
- import{template as t,RenderIf as e}from"@gem-sdk/core";import o from"../../text/components/Text.liquid.js";import l from"../../button/components/Button.liquid.js";import{ArticleReadMore as r}from"../settings/configs/translate.js";let ArticleReadMore=({setting:a,styles:n,builderAttrs:i,builderProps:s,advanced:p,style:g})=>{let{readMoreType:c,label:u}=a??{},{typoBtn:m,typoText:d,globalSizeText:b,globalSizeBtn:x,textColorTextState:f,alignBtn:y,alignText:v,enableHoverEffectText:S}=n??{};return t`
3
- ${e("text"===c,o({builderAttrs:i,builderProps:s,advanced:p,styles:{...n,color:f,typo:d,spacing:"0px",align:v,textColor:void 0,enableHoverEffect:S},style:g??{},setting:{...a,text:u,globalSize:b,excludeFlex:!0},translateSetting:r?.label?.id}))}
4
- ${e("text"!==c,t`<a href="{{article.url}}" target="_blank" class="gp-cursor-auto gp-pointer-events-none [&_button]:gp-pointer-events-auto">
5
- ${l({builderAttrs:i,builderProps:s,advanced:p,styles:{...n,typo:m,globalSize:x,align:y},style:g??{},setting:{...a,label:u,htmlType:"button"},translateSetting:r?.label?.id})}</a>`)}
2
+ import{template as t,RenderIf as e}from"@gem-sdk/core";import l from"../../text/components/Text.liquid.js";import o from"../../button/components/Button.liquid.js";import{ArticleReadMore as r}from"../settings/configs/translate.js";let ArticleReadMore=({setting:a,styles:n,builderAttrs:i,builderProps:s,advanced:g,style:p,pageContext:c})=>{let{readMoreType:u,label:m}=a??{},{typoBtn:b,typoText:d,globalSizeText:f,globalSizeBtn:x,textColorTextState:y,alignBtn:v,alignText:S,enableHoverEffectText:$}=n??{};return t`
3
+ ${e("text"===u,t`<a href="{{article.url}}" target="_blank">
4
+ ${l({builderAttrs:i,builderProps:s,advanced:g,styles:{...n,color:y,typo:d,spacing:"0px",align:S,textColor:void 0,enableHoverEffect:$},style:p??{},setting:{...a,text:m,globalSize:f,excludeFlex:!0},pageContext:c,translateSetting:r?.label?.id})}</a>`)}
5
+ ${e("text"!==u,t`<a href="{{article.url}}" target="_blank" class="gp-cursor-auto gp-pointer-events-none [&_button]:gp-pointer-events-auto">
6
+ ${o({builderAttrs:i,builderProps:s,advanced:g,styles:{...n,typo:b,globalSize:x,align:v},style:p??{},setting:{...a,label:m,htmlType:"button"},translateSetting:r?.label?.id,pageContext:c})}</a>`)}
6
7
  `};export{ArticleReadMore as default};
@@ -1,4 +1,4 @@
1
- import{splitStyle as e,convertHTML as t}from"@gem-sdk/core";import{normalizeMailto as l,isShopifyDomain as a,checkIsScrollToTop as r,checkIsOpenPopup as i,isLinkedToSalesPage as o,getDynamicSourceLocales as n,createSettingId as s}from"../../helpers.js";import c from"../../link/components/Link.js";import{HREF_TO_SALES_PAGE as g}from"../../constant.js";import{getCustomCssStyles as d}from"./styles.js";import{Button as p}from"../settings/configs/translate.js";let getCleanedStyles=(e,t)=>{if(!t)return e;let l={...e},a=["hover","focus"];return a.forEach(e=>{delete l?.backgroundColorV2?.[e]}),l},handleGetLabelToDisplay=({label:e,translateSetting:l,styles:a,pageContext:r,isUseTranslatedValue:i,builderProps:o,isLiquid:c=!1,isForceValue:g})=>{let d=!i||g?e:n({val:e,pageContext:r,settingId:s({id:l??p?.label?.id}),uid:o?.uidTranslate??o?.uid,isCapitalize:a?.typo?.attrs?.transform==="capitalize"});return c?d?.toString()??"":t(e)},checkIsShowIcon=(e,t)=>!!e&&t,handleCheckIsShowLabel=(e,t)=>!!e||!t,handleCheckIsEditableLabel=({mode:e,options:t,isLiquid:l=!1})=>l?!t?.isCannotEditing:"edit"===e&&!t?.isCannotEditing,checkIsScrollToElement=e=>!!e?.link?.startsWith("#")&&("_self"===e.target||"scroll-to"===e.type),getSplitStyles=t=>e(["pos","top","left","bottom","right","z"],t),getDataState=e=>e?"loading":"idle",getDataId=(e,t,l)=>e??(t||l)??"",handleGetArialLabel=({label:e,isLiquid:t=!1})=>t?e?.toString().replaceAll("'","&#039;").replaceAll('"',"'")??"":e?.toString()??"",getInsertLinkData=({setting:e,htmlType:t,defaultTag:n,enableBtnLink:s,isLiquid:d=!1,pageType:p})=>{let h=["product.url"],u=["#","mailto:","tel:"],I=e?.link??"",f="/"===I,S=e?.link!==void 0&&""!==e.link,k=new RegExp(/^https?:\/\//i),m=S&&k.test(I);S&&I.toLowerCase().startsWith("mailto:")&&I.includes("+")&&(I=l(I));let b=()=>{if(h.find(e=>I.includes(e)))return!0;let t=u.find(e=>I.startsWith(e));return!(!t||r(e)||"STATIC"===p&&i(e))},C=o(e?.type),y=!!s&&(m||a(S,I)||b()||f||C),L=I;d&&(a(S,I)||f)&&(L=e?.isTranslate?"$locationOrigin"+I:"{{ request.origin }}{{ routes.root_url | split: '/' | join: '/' }}"+I);let w=y?d?"a":c:n,D={href:L,target:e?.target,...e?.noFollow&&{rel:"nofollow"}},E=y?D:S?{...D,type:t}:{type:t};return C&&(E={href:g,target:"_self"}),{HTMLTag:w,urlData:E,shouldRenderLink:y}},getData=e=>{let{style:t,dataId:l,pageContext:a,styles:r={},setting:i={},builderProps:o,builderAttrs:n,isUseTranslatedValue:s=!0}=e,{label:c,iconSvg:g,btnLink:p,loading:h,options:u,disabled:I,iconVisible:f,shouldClearSpace:S}=i,[k,m]=getSplitStyles(t),b=getCleanedStyles(r,I),C=d({styles:r,uid:o?.uid,builderAttrs:n,enableHoverEffect:i.enableHoverEffect??!0}),y=getDataState(h),L=getDataId(o?.uidInteraction,l,o?.uid),w=e=>{let{isLiquid:t}=e??{};return handleGetArialLabel({label:c,isLiquid:t})},D=e=>{let{isLiquid:t,translateSetting:l,isForceValue:r}=e??{};return handleGetLabelToDisplay({pageContext:a??{},label:c,translateSetting:l,isForceValue:r,builderProps:o,styles:b,isLiquid:t,...t&&{pageContext:a},...t&&{isUseTranslatedValue:s}})},E=e=>{let{isLiquid:t}=e??{},l=D({isLiquid:t});return handleCheckIsShowLabel(l,S)},T=e=>{let{isLiquid:t,mode:l}=e??{};return handleCheckIsEditableLabel({options:u,isLiquid:t,...!t&&l&&{mode:l}})},v=checkIsShowIcon(g,f),A=checkIsScrollToElement(p);return{customCss:C,wrapStyle:k,restStyle:m,dataState:y,dataIdAttr:L,isShowIcon:v,isScrollToElement:A,getArialLabel:w,getLabelToDisplay:D,checkIsShowLabel:E,checkIsEditableLabel:T}},LOADING_INDICATOR=`
1
+ import{splitStyle as e,convertHTML as t}from"@gem-sdk/core";import{normalizeMailto as l,isShopifyDomain as a,checkIsScrollToTop as r,checkIsOpenPopup as o,isLinkedToSalesPage as i,getDynamicSourceLocales as n,createSettingId as s}from"../../helpers.js";import c from"../../link/components/Link.js";import{HREF_TO_SALES_PAGE as g}from"../../constant.js";import{getCustomCssStyles as d}from"./styles.js";import{Button as p}from"../settings/configs/translate.js";let getCleanedStyles=(e,t)=>{if(!t)return e;let l={...e},a=["hover","focus"];return a.forEach(e=>{delete l?.backgroundColorV2?.[e]}),l},handleGetLabelToDisplay=({label:e,translateSetting:l,styles:a,pageContext:r,isUseTranslatedValue:o,builderProps:i,isLiquid:c=!1,isForceValue:g})=>{let d=!o||g?e:n({val:e,pageContext:r,settingId:s({id:l??p?.label?.id}),uid:i?.uidTranslate??i?.uid,isCapitalize:a?.typo?.attrs?.transform==="capitalize"});return c?d?.toString()??"":t(e)},checkIsShowIcon=(e,t)=>!!e&&t,handleCheckIsShowLabel=(e,t)=>!!e||!t,handleCheckIsEditableLabel=({mode:e,options:t,isLiquid:l=!1})=>l?!t?.isCannotEditing:"edit"===e&&!t?.isCannotEditing,checkIsScrollToElement=e=>!!e?.link?.startsWith("#")&&("_self"===e.target||"scroll-to"===e.type),getSplitStyles=t=>e(["pos","top","left","bottom","right","z"],t),getDataState=e=>e?"loading":"idle",getDataId=(e,t,l)=>e??(t||l)??"",handleGetArialLabel=({label:e,isLiquid:t=!1})=>t?e?.toString().replaceAll("'","&#039;").replaceAll('"',"'")??"":e?.toString()??"",getInsertLinkData=({setting:e,htmlType:t,defaultTag:n,enableBtnLink:s,isLiquid:d=!1,pageType:p})=>{let h=["product.url"],u=["#","mailto:","tel:"],I=e?.link??"",f="/"===I,S=e?.link!==void 0&&""!==e.link,k=new RegExp(/^https?:\/\//i),m=S&&k.test(I);S&&I.toLowerCase().startsWith("mailto:")&&I.includes("+")&&(I=l(I));let b=()=>{if(h.find(e=>I.includes(e)))return!0;let t=u.find(e=>I.startsWith(e));return!(!t||r(e)||"STATIC"===p&&o(e))},C=i(e?.type),y=!!s&&(m||a(S,I)||b()||f||C),L=I;d&&(a(S,I)||f)&&(L=e?.isTranslate?"$locationOrigin"+I:"{{ request.origin }}{{ routes.root_url | split: '/' | join: '/' }}"+I);let w=y?d?"a":c:n,D={href:L,target:e?.target,...e?.noFollow&&{rel:"nofollow"}},E=y?D:S?{...D,type:t}:{type:t};return C&&(E={href:g,target:"_self"}),{HTMLTag:w,urlData:E,shouldRenderLink:y}},getData=e=>{let{style:t,dataId:l,pageContext:a,styles:r={},setting:o={},builderProps:i,builderAttrs:n,isUseTranslatedValue:s=!0}=e,{label:c,iconSvg:g,btnLink:p,loading:h,options:u,disabled:I,iconVisible:f,shouldClearSpace:S}=o,[k,m]=getSplitStyles(t),b=getCleanedStyles(r,I),C=d({styles:r,uid:i?.uid,builderAttrs:n,enableHoverEffect:o.enableHoverEffect??!0}),y=getDataState(h),L=getDataId(i?.uidInteraction,l,i?.uid),w=e=>{let{isLiquid:t}=e??{};return handleGetArialLabel({label:c,isLiquid:t})},D=e=>{let{isLiquid:t,translateSetting:l,isForceValue:r,pageContext:o}=e??{};return handleGetLabelToDisplay({pageContext:o??a??{},label:c,translateSetting:l,isForceValue:r,builderProps:i,styles:b,isLiquid:t,...t&&{isUseTranslatedValue:s}})},E=e=>{let{isLiquid:t,translateSetting:l,isForceValue:r,pageContext:o}=e??{},i=D({isLiquid:t,translateSetting:l,isForceValue:r,pageContext:o??a??{}});return handleCheckIsShowLabel(i,S)},T=e=>{let{isLiquid:t,mode:l}=e??{};return handleCheckIsEditableLabel({options:u,isLiquid:t,...!t&&l&&{mode:l}})},v=checkIsShowIcon(g,f),A=checkIsScrollToElement(p);return{customCss:C,wrapStyle:k,restStyle:m,dataState:y,dataIdAttr:L,isShowIcon:v,isScrollToElement:A,getArialLabel:w,getLabelToDisplay:D,checkIsShowLabel:E,checkIsEditableLabel:T}},LOADING_INDICATOR=`
2
2
  <svg
3
3
  class="gp-invisible gp-absolute gp-h-5 gp-w-5 group-data-[state=loading]:gp-animate-spin group-data-[state=loading]:gp-visible"
4
4
  xmlns="http://www.w3.org/2000/svg"
@@ -1,31 +1,31 @@
1
- import{template as s,dataStringify as t,isLocalEnv as i,baseAssetURL as e}from"@gem-sdk/core";import{createStyle as o,createClass as r,createAttr as l,createStateOrContext as a,Liquid as d,If as m}from"@gem-sdk/system";import{getButtonAttributes as n}from"../common/attrs.js";import{getButtonStyles as p,getTypoStyles as c,getButtonIconStyles as u,getButtonWrapperStyles as $}from"../common/styles.js";import{getButtonClasses as f,getButtonIconClasses as g,getButtonLabelClasses as b,getButtonWrapperClasses as L,getButtonContentWrapperClasses as y,getButtonContainerClasses as j}from"../common/classes.js";import{getSettingPreloadData as v}from"../../helpers.js";import q from"./ButtonIcon.liquid.js";import k from"./ButtonLabel.liquid.js";import S from"./ButtonLoadingIndicator.liquid.js";import{getData as h,getInsertLinkData as B}from"../common/helpers.js";let Button=E=>{let{advanced:I,className:T,nodePrice:A,customAttrs:G,styles:H={},setting:M={},builderProps:_,wrapClassName:x="",translateSetting:C,isForceValue:N}=E,{iconSvg:O,btnLink:P,htmlType:R,disabled:V,enableBtnLink:w,shouldClearSpace:z,disabledLoading:D=!0}=M,{enableTextStyle:F=!0}=H,{customCss:J,wrapStyle:K,restStyle:Q,dataState:U,dataIdAttr:W,isShowIcon:X,isScrollToElement:Y,getArialLabel:Z,getLabelToDisplay:ss,checkIsShowLabel:st,checkIsEditableLabel:si}=h(E),{HTMLTag:se,urlData:so,shouldRenderLink:sr}=B({enableBtnLink:w,htmlType:R,setting:P,defaultTag:"button",isLiquid:!0}),sl=o({...p(H,M?.enableHoverEffect)}),sa=o({...c(H)}),sd=o({...c(H),...u(H,M)}),sm=o({...$(Q,H)}),sn=r({...f({styles:H,className:T,shouldRenderLink:sr,uid:_?.uid,advanced:I})}),sp=r({...g(ss({isLiquid:!0,translateSetting:C,isForceValue:N}),z,F)}),sc=r({...b(H,si({isLiquid:!0}))}),su=r({...L(x,T,I?.cssClass)}),s$=r({...y(M)}),sf=r({...j()}),sg=l({...n({disabled:V,dataState:U,dataId:W,arialLabel:Z({isLiquid:!0})})}),sb=a({btnLink:M?.btnLink});return d(s`
1
+ import{template as s,dataStringify as t,isLocalEnv as e,baseAssetURL as i}from"@gem-sdk/core";import{createStyle as o,createClass as r,createAttr as a,createStateOrContext as l,Liquid as n,If as d}from"@gem-sdk/system";import{getButtonAttributes as m}from"../common/attrs.js";import{getButtonStyles as p,getTypoStyles as c,getButtonIconStyles as u,getButtonWrapperStyles as $}from"../common/styles.js";import{getButtonClasses as g,getButtonIconClasses as f,getButtonLabelClasses as b,getButtonWrapperClasses as L,getButtonContentWrapperClasses as y,getButtonContainerClasses as j}from"../common/classes.js";import{getSettingPreloadData as v}from"../../helpers.js";import q from"./ButtonIcon.liquid.js";import k from"./ButtonLabel.liquid.js";import S from"./ButtonLoadingIndicator.liquid.js";import{getData as h,getInsertLinkData as B}from"../common/helpers.js";let Button=E=>{let{advanced:x,className:C,nodePrice:I,customAttrs:T,styles:A={},setting:G={},builderProps:H,wrapClassName:M="",translateSetting:_,isForceValue:N,pageContext:O}=E,{iconSvg:P,btnLink:R,htmlType:V,disabled:w,enableBtnLink:z,shouldClearSpace:D,disabledLoading:F=!0}=G,{enableTextStyle:J=!0}=A,{customCss:K,wrapStyle:Q,restStyle:U,dataState:W,dataIdAttr:X,isShowIcon:Y,isScrollToElement:Z,getArialLabel:ss,getLabelToDisplay:st,checkIsShowLabel:se,checkIsEditableLabel:si}=h(E),{HTMLTag:so,urlData:sr,shouldRenderLink:sa}=B({enableBtnLink:z,htmlType:V,setting:R,defaultTag:"button",isLiquid:!0}),sl=o({...p(A,G?.enableHoverEffect)}),sn=o({...c(A)}),sd=o({...c(A),...u(A,G)}),sm=o({...$(U,A)}),sp=r({...g({styles:A,className:C,shouldRenderLink:sa,uid:H?.uid,advanced:x})}),sc=r({...f(st({isLiquid:!0,translateSetting:_,isForceValue:N,pageContext:O??{}}),D,J)}),su=r({...b(A,si({isLiquid:!0}))}),s$=r({...L(M,C,x?.cssClass)}),sg=r({...y(G)}),sf=r({...j()}),sb=a({...m({disabled:w,dataState:W,dataId:X,arialLabel:ss({isLiquid:!0})})}),sL=l({btnLink:G?.btnLink});return n(s`
2
2
  <gp-button
3
- gp-data='${t(sb)}'
4
- style="${{...K}}"
3
+ gp-data='${t(sL)}'
4
+ style="${{...Q}}"
5
5
  class="${sf}"
6
6
  >
7
- <div style="${sm}" class="${su}">
8
- <style>${J}</style>
9
- ${m(Y,`<a
7
+ <div style="${sm}" class="${s$}">
8
+ <style>${K}</style>
9
+ ${d(Z,`<a
10
10
  class="gp-trigger-button-link gp-hidden"
11
- href=${so.href}
12
- target=${so.target}
11
+ href=${sr.href}
12
+ target=${sr.target}
13
13
  ></a>`)}
14
- <${se}
15
- ${{...sg}}
16
- ${{...G}}
17
- ${{...so}}
14
+ <${so}
15
+ ${{...sb}}
16
+ ${{...T}}
17
+ ${{...sr}}
18
18
  style="${sl}"
19
- class="${sn}"
19
+ class="${sp}"
20
20
  >
21
- ${m(!D,S(),"")}
22
- <div class="${s$}">
23
- ${m(X,q({iconSvg:O??"",styles:sd,classes:sp}))}
24
- ${m(F&&st({isLiquid:!0}),k({label:ss({isLiquid:!0,translateSetting:C,isForceValue:N}),styles:sa,classes:sc}))}
21
+ ${d(!F,S(),"")}
22
+ <div class="${sg}">
23
+ ${d(Y,q({iconSvg:P??"",styles:sd,classes:sc}))}
24
+ ${d(J&&se({isLiquid:!0,translateSetting:_,isForceValue:N,pageContext:O??{}}),k({label:st({isLiquid:!0,translateSetting:_,isForceValue:N,pageContext:O??{}}),styles:sn,classes:su}))}
25
25
  </div>
26
- ${m(!!A,A?.toString()??"","")}
27
- </${se}>
26
+ ${d(!!I,I?.toString()??"","")}
27
+ </${so}>
28
28
  </div>
29
- ${m(i,`<script ${v('class="gps-link" delay',"src")}="{{ 'gp-button-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${v('class="gps-link" delay',"src")}="${e}/assets-v2/gp-button-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
29
+ ${d(e,`<script ${v('class="gps-link" delay',"src")}="{{ 'gp-button-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${v('class="gps-link" delay',"src")}="${i}/assets-v2/gp-button-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
30
30
  </gp-button>
31
31
  `)};export{Button as default};
@@ -425,6 +425,7 @@ type ArticleReadMoreTranslateKeys = Extract<keyof ArticleReadMoreSettingProps, '
425
425
  type ArticlePaginationTranslateKeys = 'previousText' | 'nextText';
426
426
  type ArticleReadMoreProps = BasePropsWrap<ArticleReadMoreSettingProps, ArticleReadMoreStyleProps> & {
427
427
  className?: string;
428
+ pageContext?: PageContext;
428
429
  };
429
430
 
430
431
  declare const ArticleList$1: React.FC<ArticleListProps>;
@@ -6515,7 +6516,7 @@ declare const ArticleCategory: ({ setting, styles, advanced, builderProps }: Art
6515
6516
 
6516
6517
  declare const ArticleDate: ({ setting, styles, advanced, builderProps }: ArticleDateProps) => string;
6517
6518
 
6518
- declare const ArticleReadMore$1: ({ setting, styles, builderAttrs, builderProps, advanced, style, }: ArticleReadMoreProps) => string;
6519
+ declare const ArticleReadMore$1: ({ setting, styles, builderAttrs, builderProps, advanced, style, pageContext, }: ArticleReadMoreProps) => string;
6519
6520
 
6520
6521
  declare const HeroBanner$1: (props: HeroBannerProps) => string;
6521
6522
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "17.1.0",
3
+ "version": "17.1.2",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",