@gem-sdk/components 17.0.0-dev.51 → 17.0.0-dev.52

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,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("@gem-sdk/core"),t=require("./common/styles.js"),r=require("./common/classes.js"),l=require("@gem-sdk/system"),a=require("./common/helpers.js"),i=require("../../hooks/useDescription.js");exports.default=({setting:o,builderProps:n,pageContext:c,advanced:m})=>{let{isPreviewSharePageMode:d}=s.useRenderMode(),u=s.useCollection(),{ref:C,open:p,isShowViewMore:g,handleToggleShowMore:y,hasLineClamp:x}=i.useGpDescription(o),h=u?.descriptionHtml,j=l.createClass(r.getClassContainerCollectionDes({setting:o})),S=l.createClass(r.getClassEmptyCollectionDes()),M=l.createClass(r.getClassButtonViewMore({setting:o})),I=l.createClass(r.getDescriptionClasses({advanced:m})),f=l.createClass({...r.getShowMoreIconClasses(),...p?{"gp-rotate-180":!0}:{}}),_=l.createClass(r.getShowMoreTextClasses()),v=l.createClass(r.getClassPreBuilt()),D=l.createStyle({...t.getDefaultStyleCollectionDes({setting:o}),...p?{}:s.makeStyleResponsive("line-clamp",s.makeLineClamp(o?.lineClamp,o?.hasLineClamp))}),N=l.createStyle({...t.getStyleDefaultViewMore(o)}),q=a.getViewLessText({setting:o,builderProps:n,pageContext:c,type:"react"}),w=a.getViewMoreText({setting:o,builderProps:n,pageContext:c,type:"react"}),T=l.createAttr({"data-id":`${n?.uid}`}),k=l.createAttr({"data-gp-text":""}),{gpDescriptionCss:L,textDescriptionCss:V}=t.getStaticCss(),H=d?"":e.jsx("div",{className:S,dangerouslySetInnerHTML:{__html:"This collection does not have a description"}});return e.jsx(e.Fragment,{children:l.If(!h,H,e.jsxs("div",{...T,className:I,children:[e.jsx("style",{children:V}),e.jsx("style",{children:L}),e.jsx("div",{className:v}),e.jsx("div",{ref:C,className:j,style:D,dangerouslySetInnerHTML:{__html:u?.descriptionHtml??""},...k}),l.If(x&&g,e.jsxs("button",{type:"button",className:M,style:N,onClick:y,children:[e.jsx("span",{className:_,children:l.If(p,q?.toString()??"",w?.toString()??"")}),l.If(o?.enableViewMoreIcon,e.jsx("span",{className:f,dangerouslySetInnerHTML:{__html:a.ICON_SVG}}),"")]}),"")]}))})};
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("@gem-sdk/core"),t=require("./common/styles.js"),r=require("./common/classes.js"),l=require("@gem-sdk/system"),a=require("./common/helpers.js"),i=require("../../hooks/useDescription.js");exports.default=({setting:o,builderProps:n,pageContext:c,advanced:m})=>{let{isPreviewSharePageMode:d}=s.useRenderMode(),u=s.useCollection(),{ref:C,open:p,isShowViewMore:g,handleToggleShowMore:y,hasLineClamp:x}=i.useGpDescription(o),h=s.t("This collection does not have a description"),j=u?.descriptionHtml,S=l.createClass(r.getClassContainerCollectionDes({setting:o})),M=l.createClass(r.getClassEmptyCollectionDes()),I=l.createClass(r.getClassButtonViewMore({setting:o})),f=l.createClass(r.getDescriptionClasses({advanced:m})),_=l.createClass({...r.getShowMoreIconClasses(),...p?{"gp-rotate-180":!0}:{}}),v=l.createClass(r.getShowMoreTextClasses()),D=l.createClass(r.getClassPreBuilt()),N=l.createStyle({...t.getDefaultStyleCollectionDes({setting:o}),...p?{}:s.makeStyleResponsive("line-clamp",s.makeLineClamp(o?.lineClamp,o?.hasLineClamp))}),q=l.createStyle({...t.getStyleDefaultViewMore(o)}),w=a.getViewLessText({setting:o,builderProps:n,pageContext:c,type:"react"}),T=a.getViewMoreText({setting:o,builderProps:n,pageContext:c,type:"react"}),k=l.createAttr({"data-id":`${n?.uid}`}),L=l.createAttr({"data-gp-text":""}),{gpDescriptionCss:V,textDescriptionCss:H}=t.getStaticCss(),b=d?"":e.jsx("div",{className:M,dangerouslySetInnerHTML:{__html:h}});return e.jsx(e.Fragment,{children:l.If(!j,b,e.jsxs("div",{...k,className:f,children:[e.jsx("style",{children:H}),e.jsx("style",{children:V}),e.jsx("div",{className:D}),e.jsx("div",{ref:C,className:S,style:N,dangerouslySetInnerHTML:{__html:u?.descriptionHtml??""},...L}),l.If(x&&g,e.jsxs("button",{type:"button",className:I,style:q,onClick:y,children:[e.jsx("span",{className:v,children:l.If(p,w?.toString()??"",T?.toString()??"")}),l.If(o?.enableViewMoreIcon,e.jsx("span",{className:_,dangerouslySetInnerHTML:{__html:a.ICON_SVG}}),"")]}),"")]}))})};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("./variants/VariantGroup.js"),s=require("@gem-sdk/system"),r=require("../common/classes.js"),i=require("../common/styles.js"),a=require("./ProductOption.js"),n=require("@gem-sdk/core"),o=require("../hooks/useTransition.js"),l=require("react"),d=require("../../../../../product/helpers/product.js");exports.default=({builderProps:u,style:c,styles:p,setting:f})=>{let{hasPreSelected:h}=f??{},m="variant",w=!1,{dropdownItemWidth:g}=p??{},{optionType:v,variantPresets:j}=f??{},S=n.useVariants(),y=n.useProduct(),x=n.useIsSyncProduct(),{selectedOptions:C,setSelectedOption:E,forceSelectedOption:O}=n.useSelectedOption(),[q,V]=l.useState(""),P=n.useEditorMode();l.useEffect(()=>{let e=new URL(window.location.href),t=e.searchParams.get(m);t&&V(t)},[]);let L=()=>{let e=new URL(window.location.href),t=e.searchParams.get(m);if(t){let e=S.find(e=>e?.id===t);return e}return null};l.useEffect(()=>{let e=L();if(e){let t=e?.selectedOptions.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{})??{};O(t,y?.id,!0)}},[]);let b=y?.options;n.useInitialSwatchesOptions(b);let k=n.useSwatchesOptions(b),[N,I]=l.useState(!1),D=d.checkDefaultVariant(y),M=l.useMemo(()=>"groupOption"===v,[v]),R=()=>{let e={};return n.DEVICES.forEach(t=>{e[t]=g?.[t]==="fill"}),e},T=l.useCallback(e=>{let t=j?.find(t=>t.optionName===e);return t||j?.find(e=>"base"===e.optionName)},[j]),U=l.useCallback(e=>{let t=e.detail,s=y?.id;I(!0),x&&t&&s==t.productId&&E(t.optionId,t.optionValue,s,!0)},[x,y?.id,E]),W=l.useCallback(e=>{let t=e.detail,s=y?.id;I(!0),x&&t&&s==t.productId&&O(t.selectedOption,s,!0)},[O,x,y?.id]),G=e=>{let t=new URL(window.location.href);e?t.searchParams.set(m,e):t.searchParams.delete(m),history.replaceState(null,"",t.toString())};l.useEffect(()=>(window.addEventListener("set-selected-option",U),window.addEventListener("force-selected-option",W),()=>{window.removeEventListener("set-selected-option",U),window.removeEventListener("force-selected-option",W)}),[W,U]),o.useTransition(e=>{if(!w){w=!0;return}let t=JSON.stringify(e),s=JSON.stringify(C);if(e&&t!==s){let e=n.getSelectedVariant(S,C);G(e?.id||"")}},[C]);let J=s.createClass({...r.getDefaultVariantClasses()}),_=s.createClass({...r.getContainerClasses()}),A=s.createClass({...r.getDropdownVariantWrapperClasses(p,M)}),F=s.createStyle({...i.getWrapperStyles({setting:f,styles:p,style:c})});return e.jsx(e.Fragment,{children:D?e.jsx("div",{children:"edit"===P&&e.jsx("p",{className:J,children:"This product has only default variant"})}):e.jsxs("div",{className:_,style:F,children:[!M&&k?.map((t,s)=>e.jsx(a.default,{option:t,indexOption:s,productVariantSettings:{getVariantConfiguration:T,getSwatchDropdownAutoWidth:R,hasPreSelected:h,variantId:q,selectedOptions:C,isChangeVariant:N},setting:f,styles:p,builderProps:u,optionLength:k.length},t.id)),M&&e.jsx("div",{className:A,children:e.jsx(t.default,{...p,...f,variantGroup:!0,label:"Variants",swatchAutoWidth:R()})})]})})};
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("./variants/VariantGroup.js"),s=require("@gem-sdk/system"),r=require("../common/classes.js"),i=require("../common/styles.js"),a=require("./ProductOption.js"),n=require("@gem-sdk/core"),o=require("../hooks/useTransition.js"),l=require("react"),d=require("../../../../../product/helpers/product.js");exports.default=({builderProps:u,style:c,styles:p,setting:f})=>{let{hasPreSelected:h}=f??{},m="variant",w=!1,{dropdownItemWidth:g}=p??{},{optionType:v,variantPresets:j}=f??{},S=n.useVariants(),y=n.useProduct(),x=n.useIsSyncProduct(),{selectedOptions:C,setSelectedOption:E,forceSelectedOption:O}=n.useSelectedOption(),[q,V]=l.useState(""),P=n.useEditorMode();l.useEffect(()=>{let e=new URL(window.location.href),t=e.searchParams.get(m);t&&V(t)},[]);let L=()=>{let e=new URL(window.location.href),t=e.searchParams.get(m);if(t){let e=S.find(e=>e?.id===t);return e}return null};l.useEffect(()=>{let e=L();if(e){let t=e?.selectedOptions.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{})??{};O(t,y?.id,!0)}},[]);let b=y?.options;n.useInitialSwatchesOptions(b);let k=n.useSwatchesOptions(b),[N,I]=l.useState(!1),D=d.checkDefaultVariant(y),M=l.useMemo(()=>"groupOption"===v,[v]),R=()=>{let e={};return n.DEVICES.forEach(t=>{e[t]=g?.[t]==="fill"}),e},T=l.useCallback(e=>{let t=j?.find(t=>t.optionName===e);return t||j?.find(e=>"base"===e.optionName)},[j]),U=l.useCallback(e=>{let t=e.detail,s=y?.id;I(!0),x&&t&&s==t.productId&&E(t.optionId,t.optionValue,s,!0)},[x,y?.id,E]),W=l.useCallback(e=>{let t=e.detail,s=y?.id;I(!0),x&&t&&s==t.productId&&O(t.selectedOption,s,!0)},[O,x,y?.id]),G=e=>{let t=new URL(window.location.href);e?t.searchParams.set(m,e):t.searchParams.delete(m),history.replaceState(null,"",t.toString())};l.useEffect(()=>(window.addEventListener("set-selected-option",U),window.addEventListener("force-selected-option",W),()=>{window.removeEventListener("set-selected-option",U),window.removeEventListener("force-selected-option",W)}),[W,U]),o.useTransition(e=>{if(!w){w=!0;return}let t=JSON.stringify(e),s=JSON.stringify(C);if(e&&t!==s){let e=n.getSelectedVariant(S,C);G(e?.id||"")}},[C]);let J=s.createClass({...r.getDefaultVariantClasses()}),_=s.createClass({...r.getContainerClasses()}),A=s.createClass({...r.getDropdownVariantWrapperClasses(p,M)}),F=s.createStyle({...i.getWrapperStyles({setting:f,styles:p,style:c})});return e.jsx(e.Fragment,{children:D?e.jsx("div",{children:"edit"===P&&e.jsx("p",{className:J,children:n.t("This product has only default variant")})}):e.jsxs("div",{className:_,style:F,children:[!M&&k?.map((t,s)=>e.jsx(a.default,{option:t,indexOption:s,productVariantSettings:{getVariantConfiguration:T,getSwatchDropdownAutoWidth:R,hasPreSelected:h,variantId:q,selectedOptions:C,isChangeVariant:N},setting:f,styles:p,builderProps:u,optionLength:k.length},t.id)),M&&e.jsx("div",{className:A,children:e.jsx(t.default,{...p,...f,variantGroup:!0,label:"Variants",swatchAutoWidth:R()})})]})})};
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("../common/classes.js"),s=require("../common/styles.js"),r=require("@gem-sdk/system"),a=require("../common/helpers.js"),l=require("react"),o=require("../common/attrs.js");exports.default=({styles:n,builderAttrs:c,style:i,setting:u,advanced:m,builderProps:x,className:y,children:d,textClassWrapper:p,textClass:g,...C})=>{let{text:h,options:j}=u??{},{textAlign:q,typo:S,align:f,direction:T}=n??{},v=l.useMemo(()=>a.createContent(h,S?.textTransform,S?.textColor),[h,S?.textTransform,S?.textColor]),_=r.createClass({...t.getContainerClasses({className:y,uid:x?.uid,align:f})}),b=r.createClass({...t.getWrapperClasses({textClassWrapper:p})}),A=r.createClass({...t.getTextClasses({textClass:g})}),M=r.createStyle({...s.getContainerStyles({style:i})}),N=r.createStyle({...s.getWrapperStyles({styles:n})}),w=r.createStyle({...s.getTextStyles({textAlign:q,typo:S})}),W=r.createAttr({...c}),$=r.createAttr({...o.getTextAttrs({options:j})});return e.jsx("div",{...C,...W,className:_,style:{...M},children:e.jsx("div",{className:b,style:{...N},children:e.jsx("div",{className:A,...$,style:{...w},dangerouslySetInnerHTML:{__html:v?`<bdo dir="${T}" >${v}</bdo>`:`<span style="color: #9e9e9e; font-size: 12.28px; font-weight: 400; line-height: 18px;
3
- text-decoration: unset;">Replace this text with your content</span>`}})})})};
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("../common/classes.js"),s=require("../common/styles.js"),r=require("@gem-sdk/system"),a=require("../common/helpers.js"),l=require("react"),o=require("../common/attrs.js"),n=require("@gem-sdk/core");exports.default=({styles:c,builderAttrs:i,style:u,setting:d,advanced:m,builderProps:x,className:y,children:p,textClassWrapper:g,textClass:C,...h})=>{let{text:j,options:q}=d??{},{textAlign:S,typo:f,align:T,direction:v}=c??{},{t:M}=n.useI18nStore(),{isEditMode:_}=n.useRenderMode(),b=l.useMemo(()=>a.createContent(j,f?.textTransform,f?.textColor),[j,f?.textTransform,f?.textColor]),A=r.createClass({...t.getContainerClasses({className:y,uid:x?.uid,align:T})}),N=r.createClass({...t.getWrapperClasses({textClassWrapper:g})}),$=r.createClass({...t.getTextClasses({textClass:C})}),k=r.createStyle({...s.getContainerStyles({style:u})}),w=r.createStyle({...s.getWrapperStyles({styles:c})}),I=r.createStyle({...s.getTextStyles({textAlign:S,typo:f})}),R=r.createAttr({...i}),W=r.createAttr({...o.getTextAttrs({options:q})}),z=_?M("Replace this text with your content"):"";return e.jsx("div",{...h,...R,className:A,style:{...k},children:e.jsx("div",{className:N,style:{...w},children:e.jsx("div",{className:$,...W,style:{...I},dangerouslySetInnerHTML:{__html:b?`<bdo dir="${v}" >${b}</bdo>`:`<span style="color: #9e9e9e; font-size: 12.28px; font-weight: 400; line-height: 18px;
3
+ text-decoration: unset;">${z}</span>`}})})})};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@gem-sdk/core"),s=require("react"),r=require("../../../common/components/NoDataState.js"),l=require("@gem-sdk/system"),n=require("./common/styles.js"),i=require("./common/classes.js"),u=require("./hooks/useProductBundleDataState.js"),a=require("./hooks/useProductBundleDiscountState.js"),d=require("./ProductBundleDiscountChildrenItem.js");exports.default=({builderAttrs:o,style:c,children:m,setting:y,styles:h,advanced:p})=>{let{isEditMode:g,isPreviewSharePageMode:j}=t.useRenderMode(),{isSelected:S,setSelected:q}=a.default(y),{emitRedirectSetupPage:b,redirectGuideline:f,svgVertical:x,svgHorizontal:I}=u.default(),{t:C}=t.useI18nStore(),k=l.createClass(i.getContainerClasses(y,p?.cssClass)),D=l.createClass(i.getNoDiscountClasses),N=l.createStyle(n.getSizeSettings(h)?.gap),v=l.createStyle(n.getContainerStyles(N,h,c));if(!y?.bundleItems?.length&&g)return e.jsx(r.default,{elementType:"secondary",description:C("Increase AOV with bundle quantity."),descriptionActions:[{text:C("Setup bundle discount"),callback:b},{text:C("read guideline"),callback:f}],additionalMedia:y?.layout=="horizontal-layout"?I:x});let P=(t,r)=>{if(y?.hideNoDiscountItem&&t?.discountType==="no_discount")return null;let l=m?.[r];if(s.isValidElement(l))return e.jsx(d.default,{index:r,childItem:l,setting:y,styles:h,isSelected:S(r),setSelected:q,bundleItem:t},r)},B=(t.isEmptyChildren(m)||y?.bundleItems?.length==0)&&!j;return e.jsxs("div",{...o,className:k,style:v,children:[l.If(B,e.jsx("div",{className:D,children:"This product has no bundle discount"})),y?.bundleItems?.map((e,t)=>P(e,t))]})};
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@gem-sdk/core"),s=require("react"),r=require("../../../common/components/NoDataState.js"),l=require("@gem-sdk/system"),n=require("./common/styles.js"),i=require("./common/classes.js"),u=require("./hooks/useProductBundleDataState.js"),a=require("./hooks/useProductBundleDiscountState.js"),d=require("./ProductBundleDiscountChildrenItem.js");exports.default=({builderAttrs:o,style:c,children:m,setting:y,styles:h,advanced:p})=>{let{isEditMode:g,isPreviewSharePageMode:j}=t.useRenderMode(),{isSelected:S,setSelected:q}=a.default(y),{emitRedirectSetupPage:b,redirectGuideline:f,svgVertical:x,svgHorizontal:I}=u.default(),{t:C}=t.useI18nStore(),k=l.createClass(i.getContainerClasses(y,p?.cssClass)),D=l.createClass(i.getNoDiscountClasses),N=l.createStyle(n.getSizeSettings(h)?.gap),v=l.createStyle(n.getContainerStyles(N,h,c));if(!y?.bundleItems?.length&&g)return e.jsx(r.default,{elementType:"secondary",description:C("Increase AOV with bundle quantity."),descriptionActions:[{text:C("Setup bundle discount"),callback:b},{text:C("read guideline"),callback:f}],additionalMedia:y?.layout=="horizontal-layout"?I:x});let P=(t,r)=>{if(y?.hideNoDiscountItem&&t?.discountType==="no_discount")return null;let l=m?.[r];if(s.isValidElement(l))return e.jsx(d.default,{index:r,childItem:l,setting:y,styles:h,isSelected:S(r),setSelected:q,bundleItem:t},r)},B=(t.isEmptyChildren(m)||y?.bundleItems?.length==0)&&!j;return e.jsxs("div",{...o,className:k,style:v,children:[l.If(B,e.jsx("div",{className:D,children:C("This product has no bundle discount")})),y?.bundleItems?.map((e,t)=>P(e,t))]})};
@@ -60,7 +60,7 @@
60
60
 
61
61
  ${i.LiquidIf("media.media_type == 'external_video' or media.media_type == 'video'","{% assign isVideo = true %}")}
62
62
 
63
- <div class="gp-h-full gp-w-full" style="${i.LiquidIf("media == null or media.media_type == 'image'","display: block !important;")} ${i.LiquidIf("isVideo == true",d.getStyleOfObject({...b()}))}">
63
+ <div class="gp-w-full" style="${i.LiquidIf("media == null or media.media_type == 'image'","display: block !important;")} ${i.LiquidIf("isVideo == true",d.getStyleOfObject({...b()}))}">
64
64
  ${i.LiquidIf("media != null",F(),V())}
65
65
  </div>
66
66
 
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@gem-sdk/core"),r=require("../../../text/components/Text.js"),s=require("@gem-sdk/system");exports.default=({setting:l,builderProps:u,styles:d})=>{let i=t.useCurrentVariant(),{isPreviewSharePageMode:n}=t.useRenderMode();d?.disableHoverColor&&delete d.underlineLink;let o=l?.label&&l.label.trim().length?`${l.label} ${i?.sku??""}`:`${i?.sku??""}`,a=n?"":e.jsx("p",{className:"gp-p-2 gp-text-center gp-text-sm gp-font-semibold gp-text-gray-500",children:"This product does not have a SKU 123"});return e.jsx("div",{id:`sku-${u?.uid}`,children:s.If(!i?.sku,a,e.jsx(r.default,{builderProps:u,styles:d,setting:{...l,text:o,excludeFlex:!0}}))})};
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@gem-sdk/core"),r=require("../../../text/components/Text.js"),s=require("@gem-sdk/system");exports.default=({setting:l,builderProps:u,styles:d})=>{let i=t.useCurrentVariant(),{isPreviewSharePageMode:o,isEditMode:n}=t.useRenderMode();d?.disableHoverColor&&delete d.underlineLink;let a=l?.label&&l.label.trim().length?`${l.label} ${i?.sku??""}`:`${i?.sku??""}`,p=o?"":e.jsx("p",{className:"gp-p-2 gp-text-center gp-text-sm gp-font-semibold gp-text-gray-500",children:n?t.t("This product does not have a SKU 123"):"This product does not have a SKU 123"});return e.jsx("div",{id:`sku-${u?.uid}`,children:s.If(!i?.sku,p,e.jsx(r.default,{builderProps:u,styles:d,setting:{...l,text:a,excludeFlex:!0}}))})};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e,Fragment as t,jsxs as s}from"react/jsx-runtime";import{useRenderMode as o,useCollection as r,makeStyleResponsive as l,makeLineClamp as i}from"@gem-sdk/core";import{getDefaultStyleCollectionDes as n,getStyleDefaultViewMore as m,getStaticCss as a}from"./common/styles.js";import{getClassContainerCollectionDes as c,getClassEmptyCollectionDes as d,getClassButtonViewMore as p,getDescriptionClasses as h,getShowMoreIconClasses as y,getShowMoreTextClasses as u,getClassPreBuilt as f}from"./common/classes.js";import{createClass as g,createStyle as N,createAttr as _,If as j}from"@gem-sdk/system";import{ICON_SVG as v,getViewLessText as H,getViewMoreText as S}from"./common/helpers.js";import{useGpDescription as k}from"../../hooks/useDescription.js";let C=({setting:C,builderProps:I,pageContext:L,advanced:M})=>{let{isPreviewSharePageMode:T}=o(),b=r(),{ref:x,open:D,isShowViewMore:w,handleToggleShowMore:V,hasLineClamp:$}=k(C),q=b?.descriptionHtml,z=g(c({setting:C})),A=g(d()),B=g(p({setting:C})),E=g(h({advanced:M})),F=g({...y(),...D?{"gp-rotate-180":!0}:{}}),G=g(u()),J=g(f()),K=N({...n({setting:C}),...D?{}:l("line-clamp",i(C?.lineClamp,C?.hasLineClamp))}),O=N({...m(C)}),P=H({setting:C,builderProps:I,pageContext:L,type:"react"}),Q=S({setting:C,builderProps:I,pageContext:L,type:"react"}),R=_({"data-id":`${I?.uid}`}),U=_({"data-gp-text":""}),{gpDescriptionCss:W,textDescriptionCss:X}=a(),Y=T?"":e("div",{className:A,dangerouslySetInnerHTML:{__html:"This collection does not have a description"}});return e(t,{children:j(!q,Y,s("div",{...R,className:E,children:[e("style",{children:X}),e("style",{children:W}),e("div",{className:J}),e("div",{ref:x,className:z,style:K,dangerouslySetInnerHTML:{__html:b?.descriptionHtml??""},...U}),j($&&w,s("button",{type:"button",className:B,style:O,onClick:V,children:[e("span",{className:G,children:j(D,P?.toString()??"",Q?.toString()??"")}),j(C?.enableViewMoreIcon,e("span",{className:F,dangerouslySetInnerHTML:{__html:v}}),"")]}),"")]}))})};export{C as default};
2
+ import{jsx as e,Fragment as t,jsxs as s}from"react/jsx-runtime";import{useRenderMode as o,useCollection as r,t as l,makeStyleResponsive as i,makeLineClamp as n}from"@gem-sdk/core";import{getDefaultStyleCollectionDes as m,getStyleDefaultViewMore as a,getStaticCss as c}from"./common/styles.js";import{getClassContainerCollectionDes as d,getClassEmptyCollectionDes as p,getClassButtonViewMore as h,getDescriptionClasses as y,getShowMoreIconClasses as u,getShowMoreTextClasses as f,getClassPreBuilt as g}from"./common/classes.js";import{createClass as N,createStyle as _,createAttr as j,If as v}from"@gem-sdk/system";import{ICON_SVG as H,getViewLessText as S,getViewMoreText as k}from"./common/helpers.js";import{useGpDescription as C}from"../../hooks/useDescription.js";let I=({setting:I,builderProps:L,pageContext:M,advanced:T})=>{let{isPreviewSharePageMode:b}=o(),x=r(),{ref:D,open:w,isShowViewMore:V,handleToggleShowMore:$,hasLineClamp:q}=C(I),z=l("This collection does not have a description"),A=x?.descriptionHtml,B=N(d({setting:I})),E=N(p()),F=N(h({setting:I})),G=N(y({advanced:T})),J=N({...u(),...w?{"gp-rotate-180":!0}:{}}),K=N(f()),O=N(g()),P=_({...m({setting:I}),...w?{}:i("line-clamp",n(I?.lineClamp,I?.hasLineClamp))}),Q=_({...a(I)}),R=S({setting:I,builderProps:L,pageContext:M,type:"react"}),U=k({setting:I,builderProps:L,pageContext:M,type:"react"}),W=j({"data-id":`${L?.uid}`}),X=j({"data-gp-text":""}),{gpDescriptionCss:Y,textDescriptionCss:Z}=c(),ee=b?"":e("div",{className:E,dangerouslySetInnerHTML:{__html:z}});return e(t,{children:v(!A,ee,s("div",{...W,className:G,children:[e("style",{children:Z}),e("style",{children:Y}),e("div",{className:O}),e("div",{ref:D,className:B,style:P,dangerouslySetInnerHTML:{__html:x?.descriptionHtml??""},...X}),v(q&&V,s("button",{type:"button",className:F,style:Q,onClick:$,children:[e("span",{className:K,children:v(w,R?.toString()??"",U?.toString()??"")}),v(I?.enableViewMoreIcon,e("span",{className:J,dangerouslySetInnerHTML:{__html:H}}),"")]}),"")]}))})};export{I as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import o from"./variants/VariantGroup.js";import{createClass as i,createStyle as n}from"@gem-sdk/system";import{getDefaultVariantClasses as s,getContainerClasses as a,getDropdownVariantWrapperClasses as d}from"../common/classes.js";import{getWrapperStyles as l}from"../common/styles.js";import c from"./ProductOption.js";import{useVariants as m,useProduct as p,useIsSyncProduct as u,useSelectedOption as f,useEditorMode as h,useInitialSwatchesOptions as w,useSwatchesOptions as v,DEVICES as g,getSelectedVariant as P}from"@gem-sdk/core";import{useTransition as y}from"../hooks/useTransition.js";import{useState as L,useEffect as j,useMemo as N,useCallback as O}from"react";import{checkDefaultVariant as E}from"../../../../../product/helpers/product.js";let S=({builderProps:S,style:V,styles:b,setting:k})=>{let{hasPreSelected:x}=k??{},I="variant",R=!1,{dropdownItemWidth:U}=b??{},{optionType:G,variantPresets:J}=k??{},T=m(),A=p(),W=u(),{selectedOptions:q,setSelectedOption:z,forceSelectedOption:B}=f(),[C,D]=L(""),F=h();j(()=>{let e=new URL(window.location.href),t=e.searchParams.get(I);t&&D(t)},[]);let H=()=>{let e=new URL(window.location.href),t=e.searchParams.get(I);if(t){let e=T.find(e=>e?.id===t);return e}return null};j(()=>{let e=H();if(e){let t=e?.selectedOptions.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{})??{};B(t,A?.id,!0)}},[]);let K=A?.options;w(K);let M=v(K),[Q,X]=L(!1),Y=E(A),Z=N(()=>"groupOption"===G,[G]),$=()=>{let e={};return g.forEach(t=>{e[t]=U?.[t]==="fill"}),e},_=O(e=>{let t=J?.find(t=>t.optionName===e);return t||J?.find(e=>"base"===e.optionName)},[J]),ee=O(e=>{let t=e.detail,r=A?.id;X(!0),W&&t&&r==t.productId&&z(t.optionId,t.optionValue,r,!0)},[W,A?.id,z]),et=O(e=>{let t=e.detail,r=A?.id;X(!0),W&&t&&r==t.productId&&B(t.selectedOption,r,!0)},[B,W,A?.id]),er=e=>{let t=new URL(window.location.href);e?t.searchParams.set(I,e):t.searchParams.delete(I),history.replaceState(null,"",t.toString())};j(()=>(window.addEventListener("set-selected-option",ee),window.addEventListener("force-selected-option",et),()=>{window.removeEventListener("set-selected-option",ee),window.removeEventListener("force-selected-option",et)}),[et,ee]),y(e=>{if(!R){R=!0;return}let t=JSON.stringify(e),r=JSON.stringify(q);if(e&&t!==r){let e=P(T,q);er(e?.id||"")}},[q]);let eo=i({...s()}),ei=i({...a()}),en=i({...d(b,Z)}),es=n({...l({setting:k,styles:b,style:V})});return e(t,{children:Y?e("div",{children:"edit"===F&&e("p",{className:eo,children:"This product has only default variant"})}):r("div",{className:ei,style:es,children:[!Z&&M?.map((t,r)=>e(c,{option:t,indexOption:r,productVariantSettings:{getVariantConfiguration:_,getSwatchDropdownAutoWidth:$,hasPreSelected:x,variantId:C,selectedOptions:q,isChangeVariant:Q},setting:k,styles:b,builderProps:S,optionLength:M.length},t.id)),Z&&e("div",{className:en,children:e(o,{...b,...k,variantGroup:!0,label:"Variants",swatchAutoWidth:$()})})]})})};export{S as default};
2
+ import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import o from"./variants/VariantGroup.js";import{createClass as i,createStyle as n}from"@gem-sdk/system";import{getDefaultVariantClasses as s,getContainerClasses as a,getDropdownVariantWrapperClasses as d}from"../common/classes.js";import{getWrapperStyles as l}from"../common/styles.js";import c from"./ProductOption.js";import{useVariants as m,useProduct as p,useIsSyncProduct as u,useSelectedOption as f,useEditorMode as h,useInitialSwatchesOptions as w,useSwatchesOptions as v,t as g,DEVICES as P,getSelectedVariant as y}from"@gem-sdk/core";import{useTransition as L}from"../hooks/useTransition.js";import{useState as j,useEffect as N,useMemo as O,useCallback as E}from"react";import{checkDefaultVariant as S}from"../../../../../product/helpers/product.js";let V=({builderProps:V,style:b,styles:k,setting:x})=>{let{hasPreSelected:I}=x??{},R="variant",U=!1,{dropdownItemWidth:G}=k??{},{optionType:J,variantPresets:T}=x??{},A=m(),W=p(),q=u(),{selectedOptions:z,setSelectedOption:B,forceSelectedOption:C}=f(),[D,F]=j(""),H=h();N(()=>{let e=new URL(window.location.href),t=e.searchParams.get(R);t&&F(t)},[]);let K=()=>{let e=new URL(window.location.href),t=e.searchParams.get(R);if(t){let e=A.find(e=>e?.id===t);return e}return null};N(()=>{let e=K();if(e){let t=e?.selectedOptions.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{})??{};C(t,W?.id,!0)}},[]);let M=W?.options;w(M);let Q=v(M),[X,Y]=j(!1),Z=S(W),$=O(()=>"groupOption"===J,[J]),_=()=>{let e={};return P.forEach(t=>{e[t]=G?.[t]==="fill"}),e},ee=E(e=>{let t=T?.find(t=>t.optionName===e);return t||T?.find(e=>"base"===e.optionName)},[T]),et=E(e=>{let t=e.detail,r=W?.id;Y(!0),q&&t&&r==t.productId&&B(t.optionId,t.optionValue,r,!0)},[q,W?.id,B]),er=E(e=>{let t=e.detail,r=W?.id;Y(!0),q&&t&&r==t.productId&&C(t.selectedOption,r,!0)},[C,q,W?.id]),eo=e=>{let t=new URL(window.location.href);e?t.searchParams.set(R,e):t.searchParams.delete(R),history.replaceState(null,"",t.toString())};N(()=>(window.addEventListener("set-selected-option",et),window.addEventListener("force-selected-option",er),()=>{window.removeEventListener("set-selected-option",et),window.removeEventListener("force-selected-option",er)}),[er,et]),L(e=>{if(!U){U=!0;return}let t=JSON.stringify(e),r=JSON.stringify(z);if(e&&t!==r){let e=y(A,z);eo(e?.id||"")}},[z]);let ei=i({...s()}),en=i({...a()}),es=i({...d(k,$)}),ea=n({...l({setting:x,styles:k,style:b})});return e(t,{children:Z?e("div",{children:"edit"===H&&e("p",{className:ei,children:g("This product has only default variant")})}):r("div",{className:en,style:ea,children:[!$&&Q?.map((t,r)=>e(c,{option:t,indexOption:r,productVariantSettings:{getVariantConfiguration:ee,getSwatchDropdownAutoWidth:_,hasPreSelected:I,variantId:D,selectedOptions:z,isChangeVariant:X},setting:x,styles:k,builderProps:V,optionLength:Q.length},t.id)),$&&e("div",{className:es,children:e(o,{...k,...x,variantGroup:!0,label:"Variants",swatchAutoWidth:_()})})]})})};export{V as default};
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import{jsx as t}from"react/jsx-runtime";import{getContainerClasses as e,getWrapperClasses as o,getTextClasses as r}from"../common/classes.js";import{getContainerStyles as s,getWrapperStyles as m,getTextStyles as i}from"../common/styles.js";import{createClass as l,createStyle as n,createAttr as a}from"@gem-sdk/system";import{createContent as c}from"../common/helpers.js";import{useMemo as d}from"react";import{getTextAttrs as p}from"../common/attrs.js";let f=({styles:f,builderAttrs:x,style:h,setting:u,advanced:y,builderProps:j,className:g,children:T,textClassWrapper:v,textClass:N,...b})=>{let{text:w,options:C}=u??{},{textAlign:$,typo:_,align:k,direction:z}=f??{},H=d(()=>c(w,_?.textTransform,_?.textColor),[w,_?.textTransform,_?.textColor]),I=l({...e({className:g,uid:j?.uid,align:k})}),L=l({...o({textClassWrapper:v})}),M=l({...r({textClass:N})}),R=n({...s({style:h})}),S=n({...m({styles:f})}),q=n({...i({textAlign:$,typo:_})}),A=a({...x}),B=a({...p({options:C})});return t("div",{...b,...A,className:I,style:{...R},children:t("div",{className:L,style:{...S},children:t("div",{className:M,...B,style:{...q},dangerouslySetInnerHTML:{__html:H?`<bdo dir="${z}" >${H}</bdo>`:`<span style="color: #9e9e9e; font-size: 12.28px; font-weight: 400; line-height: 18px;
3
- text-decoration: unset;">Replace this text with your content</span>`}})})})};export{f as default};
2
+ import{jsx as t}from"react/jsx-runtime";import{getContainerClasses as e,getWrapperClasses as o,getTextClasses as r}from"../common/classes.js";import{getContainerStyles as s,getWrapperStyles as m,getTextStyles as i}from"../common/styles.js";import{createClass as l,createStyle as n,createAttr as a}from"@gem-sdk/system";import{createContent as c}from"../common/helpers.js";import{useMemo as d}from"react";import{getTextAttrs as p}from"../common/attrs.js";import{useI18nStore as f,useRenderMode as x}from"@gem-sdk/core";let h=({styles:h,builderAttrs:u,style:y,setting:g,advanced:j,builderProps:T,className:v,children:N,textClassWrapper:$,textClass:b,...k})=>{let{text:w,options:C}=g??{},{textAlign:_,typo:z,align:H,direction:I}=h??{},{t:L}=f(),{isEditMode:M}=x(),R=d(()=>c(w,z?.textTransform,z?.textColor),[w,z?.textTransform,z?.textColor]),S=l({...e({className:v,uid:T?.uid,align:H})}),q=l({...o({textClassWrapper:$})}),A=l({...r({textClass:b})}),B=n({...s({style:y})}),D=n({...m({styles:h})}),E=n({...i({textAlign:_,typo:z})}),F=a({...u}),G=a({...p({options:C})}),J=M?L("Replace this text with your content"):"";return t("div",{...k,...F,className:S,style:{...B},children:t("div",{className:q,style:{...D},children:t("div",{className:A,...G,style:{...E},dangerouslySetInnerHTML:{__html:R?`<bdo dir="${I}" >${R}</bdo>`:`<span style="color: #9e9e9e; font-size: 12.28px; font-weight: 400; line-height: 18px;
3
+ text-decoration: unset;">${J}</span>`}})})})};export{h as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useRenderMode as o,useI18nStore as s,isEmptyChildren as n}from"@gem-sdk/core";import{isValidElement as r}from"react";import i from"../../../common/components/NoDataState.js";import{createClass as l,createStyle as m,If as d}from"@gem-sdk/system";import{getSizeSettings as c,getContainerStyles as u}from"./common/styles.js";import{getContainerClasses as a,getNoDiscountClasses as p}from"./common/classes.js";import f from"./hooks/useProductBundleDataState.js";import h from"./hooks/useProductBundleDiscountState.js";import y from"./ProductBundleDiscountChildrenItem.js";let b=({builderAttrs:b,style:I,children:g,setting:j,styles:k,advanced:D})=>{let{isEditMode:S,isPreviewSharePageMode:x}=o(),{isSelected:B,setSelected:N}=h(j),{emitRedirectSetupPage:P,redirectGuideline:T,svgVertical:v,svgHorizontal:A}=f(),{t:C}=s(),q=l(a(j,D?.cssClass)),w=l(p),z=m(c(k)?.gap),M=m(u(z,k,I));if(!j?.bundleItems?.length&&S)return e(i,{elementType:"secondary",description:C("Increase AOV with bundle quantity."),descriptionActions:[{text:C("Setup bundle discount"),callback:P},{text:C("read guideline"),callback:T}],additionalMedia:j?.layout=="horizontal-layout"?A:v});let O=(t,o)=>{if(j?.hideNoDiscountItem&&t?.discountType==="no_discount")return null;let s=g?.[o];if(r(s))return e(y,{index:o,childItem:s,setting:j,styles:k,isSelected:B(o),setSelected:N,bundleItem:t},o)},V=(n(g)||j?.bundleItems?.length==0)&&!x;return t("div",{...b,className:q,style:M,children:[d(V,e("div",{className:w,children:"This product has no bundle discount"})),j?.bundleItems?.map((e,t)=>O(e,t))]})};export{b as default};
2
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useRenderMode as o,useI18nStore as s,isEmptyChildren as n}from"@gem-sdk/core";import{isValidElement as r}from"react";import i from"../../../common/components/NoDataState.js";import{createClass as l,createStyle as m,If as d}from"@gem-sdk/system";import{getSizeSettings as c,getContainerStyles as u}from"./common/styles.js";import{getContainerClasses as a,getNoDiscountClasses as p}from"./common/classes.js";import f from"./hooks/useProductBundleDataState.js";import h from"./hooks/useProductBundleDiscountState.js";import y from"./ProductBundleDiscountChildrenItem.js";let b=({builderAttrs:b,style:I,children:g,setting:j,styles:k,advanced:D})=>{let{isEditMode:S,isPreviewSharePageMode:x}=o(),{isSelected:B,setSelected:N}=h(j),{emitRedirectSetupPage:P,redirectGuideline:T,svgVertical:v,svgHorizontal:A}=f(),{t:C}=s(),q=l(a(j,D?.cssClass)),w=l(p),z=m(c(k)?.gap),M=m(u(z,k,I));if(!j?.bundleItems?.length&&S)return e(i,{elementType:"secondary",description:C("Increase AOV with bundle quantity."),descriptionActions:[{text:C("Setup bundle discount"),callback:P},{text:C("read guideline"),callback:T}],additionalMedia:j?.layout=="horizontal-layout"?A:v});let O=(t,o)=>{if(j?.hideNoDiscountItem&&t?.discountType==="no_discount")return null;let s=g?.[o];if(r(s))return e(y,{index:o,childItem:s,setting:j,styles:k,isSelected:B(o),setSelected:N,bundleItem:t},o)},V=(n(g)||j?.bundleItems?.length==0)&&!x;return t("div",{...b,className:q,style:M,children:[d(V,e("div",{className:w,children:C("This product has no bundle discount")})),j?.bundleItems?.map((e,t)=>O(e,t))]})};export{b as default};
@@ -60,7 +60,7 @@ import{makeStyleResponsive as e,template as i,getResponsiveValueByScreen as a,cl
60
60
 
61
61
  ${d("media.media_type == 'external_video' or media.media_type == 'video'","{% assign isVideo = true %}")}
62
62
 
63
- <div class="gp-h-full gp-w-full" style="${d("media == null or media.media_type == 'image'","display: block !important;")} ${d("isVideo == true",g({...S()}))}">
63
+ <div class="gp-w-full" style="${d("media == null or media.media_type == 'image'","display: block !important;")} ${d("isVideo == true",g({...S()}))}">
64
64
  ${d("media != null",P(),T())}
65
65
  </div>
66
66
 
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e}from"react/jsx-runtime";import{useCurrentVariant as t,useRenderMode as r}from"@gem-sdk/core";import l from"../../../text/components/Text.js";import{If as s}from"@gem-sdk/system";let o=({setting:o,builderProps:i,styles:d})=>{let m=t(),{isPreviewSharePageMode:p}=r();d?.disableHoverColor&&delete d.underlineLink;let n=o?.label&&o.label.trim().length?`${o.label} ${m?.sku??""}`:`${m?.sku??""}`,u=p?"":e("p",{className:"gp-p-2 gp-text-center gp-text-sm gp-font-semibold gp-text-gray-500",children:"This product does not have a SKU 123"});return e("div",{id:`sku-${i?.uid}`,children:s(!m?.sku,u,e(l,{builderProps:i,styles:d,setting:{...o,text:n,excludeFlex:!0}}))})};export{o as default};
2
+ import{jsx as e}from"react/jsx-runtime";import{useCurrentVariant as t,useRenderMode as r,t as o}from"@gem-sdk/core";import s from"../../../text/components/Text.js";import{If as l}from"@gem-sdk/system";let d=({setting:d,builderProps:i,styles:m})=>{let p=t(),{isPreviewSharePageMode:n,isEditMode:u}=r();m?.disableHoverColor&&delete m.underlineLink;let a=d?.label&&d.label.trim().length?`${d.label} ${p?.sku??""}`:`${p?.sku??""}`,c=n?"":e("p",{className:"gp-p-2 gp-text-center gp-text-sm gp-font-semibold gp-text-gray-500",children:u?o("This product does not have a SKU 123"):"This product does not have a SKU 123"});return e("div",{id:`sku-${i?.uid}`,children:l(!p?.sku,c,e(s,{builderProps:i,styles:m,setting:{...d,text:a,excludeFlex:!0}}))})};export{d as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "17.0.0-dev.51",
3
+ "version": "17.0.0-dev.52",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",