@gem-sdk/core 12.0.0-dev.46 → 12.0.0-dev.53

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.
Files changed (44) hide show
  1. package/dist/cjs/components/InteractionSuffix.js +1 -1
  2. package/dist/cjs/components/Render.liquid.js +1 -1
  3. package/dist/cjs/components/RenderCustomCode.js +1 -1
  4. package/dist/cjs/components/ai-generator/AIContentGenerator.js +1 -1
  5. package/dist/cjs/components/ai-generator/components/PickProduct.js +1 -1
  6. package/dist/cjs/components/resize/Spacing.js +1 -1
  7. package/dist/cjs/components/theme-section/ThemeSectionTooltip.js +1 -2
  8. package/dist/cjs/contexts/ProductContext.js +1 -1
  9. package/dist/cjs/graphql/fragments/media.generated.js +1 -0
  10. package/dist/cjs/graphql/fragments/preview-theme-page.generated.js +0 -4
  11. package/dist/cjs/graphql/fragments/product-little.generated.js +1 -1
  12. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +11 -2
  13. package/dist/cjs/graphql/queries/product-value-label.generated.js +4 -6
  14. package/dist/cjs/graphql/queries/published-theme-pages.generated.js +5 -2
  15. package/dist/cjs/helpers/interaction/index.js +1 -1
  16. package/dist/cjs/helpers/queries/get-products.js +1 -1
  17. package/dist/cjs/hooks/animation/animations.js +0 -1
  18. package/dist/cjs/hooks/shop/use-products-query.js +0 -1
  19. package/dist/cjs/hooks/useAnimations.js +1 -1
  20. package/dist/cjs/hooks/useInitialSwatchesOptions.js +1 -2
  21. package/dist/cjs/hooks/useProduct.js +1 -1
  22. package/dist/esm/components/InteractionSuffix.js +1 -1
  23. package/dist/esm/components/Render.liquid.js +1 -1
  24. package/dist/esm/components/RenderCustomCode.js +2 -2
  25. package/dist/esm/components/ai-generator/AIContentGenerator.js +1 -1
  26. package/dist/esm/components/ai-generator/components/PickProduct.js +1 -1
  27. package/dist/esm/components/resize/Spacing.js +1 -1
  28. package/dist/esm/components/theme-section/ThemeSectionTooltip.js +1 -2
  29. package/dist/esm/contexts/ProductContext.js +1 -1
  30. package/dist/esm/graphql/fragments/media.generated.js +1 -0
  31. package/dist/esm/graphql/fragments/preview-theme-page.generated.js +0 -4
  32. package/dist/esm/graphql/fragments/product-little.generated.js +1 -1
  33. package/dist/esm/graphql/fragments/published-theme-page.generated.js +11 -2
  34. package/dist/esm/graphql/queries/product-value-label.generated.js +4 -6
  35. package/dist/esm/graphql/queries/published-theme-pages.generated.js +5 -2
  36. package/dist/esm/helpers/interaction/index.js +1 -1
  37. package/dist/esm/helpers/queries/get-products.js +1 -1
  38. package/dist/esm/hooks/animation/animations.js +0 -1
  39. package/dist/esm/hooks/shop/use-products-query.js +0 -1
  40. package/dist/esm/hooks/useAnimations.js +1 -1
  41. package/dist/esm/hooks/useInitialSwatchesOptions.js +1 -2
  42. package/dist/esm/hooks/useProduct.js +1 -1
  43. package/dist/types/index.d.ts +9811 -2212
  44. package/package.json +3 -3
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var jsxRuntime=require("react/jsx-runtime");require("zustand"),require("react");var PageContext=require("../contexts/PageContext.js");require("react-transition-group"),require("@gem-sdk/core"),require("swr"),require("swr/infinite"),require("classnames"),require("dayjs");var index=require("../helpers/interaction/index.js");require("../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js");const InteractionSuffix=({uid:e})=>{let{closeSelectOnPage:t,selectInteractionElement:r}=index.useInteraction(),i=PageContext.usePageStore(e=>e.interactionData?.settingType||""),n=PageContext.usePageStore(e=>e.interactionData?.isSelectOnPage),s=n=>{r({$target:n.target,componentUid:e,settingType:i}),t()};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:n&&jsxRuntime.jsx("button",{className:"gp-bg-[#F4F4F4] gp-px-2 gp-h-[24px] gp-py-0.5 gp-rounded-lg gp-text-[#212121] gp-text-xs gp-font-medium gp-hidden interaction-use-custom-element ",onClick:s,"data-setup-interaction":!0,children:"TRIGGER"===i?"Set as trigger":"Set as target"})})};exports.InteractionSuffix=InteractionSuffix;
2
+ "use strict";var jsxRuntime=require("react/jsx-runtime");require("zustand"),require("react");var PageContext=require("../contexts/PageContext.js");require("react-transition-group"),require("swr"),require("swr/infinite"),require("classnames"),require("dayjs");var index=require("../helpers/interaction/index.js");require("../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js");const InteractionSuffix=({uid:e})=>{let{closeSelectOnPage:t,selectInteractionElement:r}=index.useInteraction(),i=PageContext.usePageStore(e=>e.interactionData?.settingType||""),n=PageContext.usePageStore(e=>e.interactionData?.isSelectOnPage),s=n=>{r({$target:n.target,componentUid:e,settingType:i}),t()};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:n&&jsxRuntime.jsx("button",{className:"gp-bg-[#F4F4F4] gp-px-2 gp-h-[24px] gp-py-0.5 gp-rounded-lg gp-text-[#212121] gp-text-xs gp-font-medium gp-hidden interaction-use-custom-element ",onClick:s,"data-setup-interaction":!0,children:"TRIGGER"===i?"Set as trigger":"Set as target"})})};exports.InteractionSuffix=InteractionSuffix;
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var makeStyle=require("../helpers/make-style.js");require("react"),require("react/jsx-runtime"),require("zustand"),require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group"),require("@gem-sdk/core");var constant=require("./constant.js");require("classnames"),require("dayjs");var composeAdvanceStyle=require("../helpers/compose-advance-style.js"),convert=require("../helpers/convert.js"),render=require("../helpers/render.js");const componentsRenderWithParentId=["CarouselItem","CarouselItemV3"],componentTexts=["Text","Heading"],componentIconList=["IconListV2","IconList"],componentUsingAdvanced=["IconList","ProductVariants"],Render=({uid:e,builder:t,components:r,parentId:n,extraFiles:s={},pageContext:i,additionalSettings:d,...a})=>{let l=t[e],o=r[l?.tag];if(!o||!l||l?.type==="section")return{liquid:"",extraFiles:s};{let s={extraFiles:{}},c=composeAdvanceStyle.composeAdvanceStyle(l.advanced,l.tag),p="";p=constant.disableWrap.includes(l.tag)?render.RenderIf(l?.childrens?.length,()=>o({builderProps:{uid:e,builderData:l},styles:l.styles,setting:l.settings,style:c,advanced:l.advanced,parentId:componentsRenderWithParentId.includes(l.tag)?n:null,pageContext:i,...d,...a,builderAttrs:{...a.builderAttrs},rawChildren:l.childrens.map(e=>({...t[e],uid:e,builder:t,components:r,customProps:s,pageContext:i,...d})),children:constant.customRenderChildren.includes(l.tag)?"":WrapRenderChildren({uid:e,customProps:s},l.childrens.map(e=>RenderChildren({uid:e,builder:t,components:r,customProps:s,parentTag:l.tag,pageContext:i,...d})))}),()=>o({builderProps:{uid:e,builderData:l},styles:l.styles,setting:l.settings,advanced:l.advanced,style:c,isText:!!componentTexts.includes(l.tag)||null,parentId:componentsRenderWithParentId.includes(l.tag)?n:null,pageContext:i,...a,builderAttrs:{...a.builderAttrs}})):render.template`<div gp-el-wrapper style="${componentIconList.includes(l.tag)?"":c}" class="${l.uid} ${l?.childrens?.length||"IconListItemHoz"!==l.tag?"":"hidden"}">
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var makeStyle=require("../helpers/make-style.js");require("react"),require("react/jsx-runtime"),require("zustand"),require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group");var constant=require("./constant.js");require("classnames"),require("dayjs");var composeAdvanceStyle=require("../helpers/compose-advance-style.js"),convert=require("../helpers/convert.js"),render=require("../helpers/render.js");const componentsRenderWithParentId=["CarouselItem","CarouselItemV3"],componentTexts=["Text","Heading"],componentIconList=["IconListV2","IconList"],componentUsingAdvanced=["IconList","ProductVariants"],Render=({uid:e,builder:t,components:r,parentId:n,extraFiles:s={},pageContext:i,additionalSettings:d,...a})=>{let l=t[e],o=r[l?.tag];if(!o||!l||l?.type==="section")return{liquid:"",extraFiles:s};{let s={extraFiles:{}},c=composeAdvanceStyle.composeAdvanceStyle(l.advanced,l.tag),p="";p=constant.disableWrap.includes(l.tag)?render.RenderIf(l?.childrens?.length,()=>o({builderProps:{uid:e,builderData:l},styles:l.styles,setting:l.settings,style:c,advanced:l.advanced,parentId:componentsRenderWithParentId.includes(l.tag)?n:null,pageContext:i,...d,...a,builderAttrs:{...a.builderAttrs},rawChildren:l.childrens.map(e=>({...t[e],uid:e,builder:t,components:r,customProps:s,pageContext:i,...d})),children:constant.customRenderChildren.includes(l.tag)?"":WrapRenderChildren({uid:e,customProps:s},l.childrens.map(e=>RenderChildren({uid:e,builder:t,components:r,customProps:s,parentTag:l.tag,pageContext:i,...d})))}),()=>o({builderProps:{uid:e,builderData:l},styles:l.styles,setting:l.settings,advanced:l.advanced,style:c,isText:!!componentTexts.includes(l.tag)||null,parentId:componentsRenderWithParentId.includes(l.tag)?n:null,pageContext:i,...a,builderAttrs:{...a.builderAttrs}})):render.template`<div gp-el-wrapper style="${componentIconList.includes(l.tag)?"":c}" class="${l.uid} ${l?.childrens?.length||"IconListItemHoz"!==l.tag?"":"hidden"}">
3
3
  ${render.RenderIf(l?.childrens?.length,()=>o({builderProps:{uid:e,builderData:l},styles:l.styles,setting:l.settings,advanced:{...componentUsingAdvanced.includes(l.tag)?l?.advanced:{},cssClass:l?.advanced?.cssClass},pageContext:i,...d,...a,builderAttrs:{...a.builderAttrs},rawChildren:l.childrens.map(e=>({...t[e],uid:e,builder:t,components:r,customProps:s,pageContext:i,...d})),children:constant.customRenderChildren.includes(l.tag)?"":WrapRenderChildren({uid:e,customProps:s},l.childrens.map(e=>RenderChildren({uid:e,builder:t,components:r,customProps:s,parentTag:l.tag,pageContext:i,...d})))}),()=>o({builderProps:{uid:e,builderData:l},styles:l.styles,setting:l.settings,advanced:{...componentUsingAdvanced.includes(l.tag)?l?.advanced:{},cssClass:l?.advanced?.cssClass},pageContext:i,...d,isText:!!componentTexts.includes(l.tag)||null,style:componentIconList.includes(l.tag)?c:null,...a,builderAttrs:{...a.builderAttrs}}))}
4
4
  </div>`;let{cssCode:u,jsCode:m}=RenderCustomCode(l);return u&&(p+=u),m&&(p+=m),{liquid:p=appendAnimation(l,p),extraFiles:s.extraFiles}}},RenderCustomCode=e=>{let{css:t,javascript:r,rootClassName:n}=e.advanced?.editorData||{},s=t?.replaceAll(n,e.uid),i=r?.replaceAll(n,e.uid),d=render.RenderIf(!!t,render.template`
5
5
  <style id="${`custom-css-${e?.uid}`}">
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),Head=require("next/head"),Script=require("next/script"),react=require("react");require("zustand"),require("react-transition-group"),require("@gem-sdk/core"),require("swr"),require("swr/infinite");var shop=require("../hooks/shop.js");require("classnames"),require("dayjs"),require("../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js");const RenderCustomCode=({uid:e,advanced:r})=>{let s=shop.useEditorMode(),{css:t,javascript:i,rootClassName:u}=r?.editorData||{},a=t?.replaceAll(u,e),o=i?.replaceAll(u,e),n={css:`custom-css-${e}`,javascript:`custom-js-${e}`},c=react.useMemo(()=>`
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),Head=require("next/head"),Script=require("next/script"),react=require("react");require("zustand"),require("react-transition-group"),require("swr"),require("swr/infinite");var shop=require("../hooks/shop.js");require("classnames"),require("dayjs"),require("../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js");const RenderCustomCode=({uid:e,advanced:r})=>{let s=shop.useEditorMode(),{css:t,javascript:i,rootClassName:u}=r?.editorData||{},a=t?.replaceAll(u,e),o=i?.replaceAll(u,e),n={css:`custom-css-${e}`,javascript:`custom-js-${e}`},c=react.useMemo(()=>`
3
3
  try {
4
4
  ${o}
5
5
  } catch(err){}
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),AIIcon=require("./icons/AIIcon.js"),CloseIcon=require("./icons/CloseIcon.js"),ShowMoreIcon=require("./icons/ShowMoreIcon.js"),WarningIcon=require("./icons/WarningIcon.js"),UpgradeIcon=require("./icons/UpgradeIcon.js"),PickProduct=require("./components/PickProduct.js"),ToneAndVoice=require("./components/ToneAndVoice.js"),classNames=require("classnames"),useListenEventGenerate=require("./hooks/useListenEventGenerate.js"),useGettingGenerateRequest=require("./hooks/useGettingGenerateRequest.js"),useFlipPopup=require("./hooks/useFlipPopup.js"),useCheckingProductInside=require("./hooks/useCheckingProductInside.js");require("zustand");var I18nContext=require("../../contexts/I18nContext.js");require("react-transition-group"),require("@gem-sdk/core");var ShopContext=require("../../contexts/ShopContext.js"),dayjs=require("dayjs");require("swr"),require("../../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("../../hooks/useCartUI.js"),require("../../hooks/useStickyStore.js"),require("../../types/builder.js"),require("../../types/custom.js"),require("../../types/animations.js");const AIContentGenerator=({...e})=>{let[t,s]=react.useState(!1),[n,r]=react.useState(!1),i=react.useRef(null),o=react.useRef(null),u=react.useRef(null),a=react.useRef(null),p=dayjs().add(1,"month").startOf("month").format("DD MMM"),{t:g}=I18nContext.useI18nStore(),{popupPositionX:c,popupPositionY:l,isValidating:d,bodyMaxHeight:x}=useFlipPopup.useFlipPopup(t,{genTool:i,genPopup:o,genPopupHeader:u,genButtonWrapper:a}),{isGenerating:m,onGenerate:j,onOpenProductElementSettings:h,goToPricing:f}=useListenEventGenerate.useListenEventGenerate({uid:e.uid,tag:String(e.tag)}),{getRequestBody:I,prompt:R,changeProductName:b,changePrompt:v,changeTone:q}=useGettingGenerateRequest.useGettingGenerateRequest(),{productElement:C,checkSectionHasProduct:w}=useCheckingProductInside.useCheckingProductInside(i),N=ShopContext.useShopStore(e=>e.generateContentLimitation),k=()=>{s(!t)},A=()=>{s(!1)},y=e=>{v(e.target.value)},G=react.useCallback(t=>{let s=t.detail;if(s?.componentUid!==e.uid){A();return}w()},[e.uid,w]),S=()=>{r(!n)},P=()=>{let e=I();j(e),A()},E=()=>{h(C.uid??"")};return react.useEffect(()=>{m||A()},[m]),react.useEffect(()=>{if(C.productId){r(!1);return}r(!0)},[C]),react.useEffect(()=>(window.addEventListener("editor:active-component",G),()=>{window.removeEventListener("editor:active-component",G)}),[G]),jsxRuntime.jsxs("div",{className:"gp-gen-content-toolbar-wrapper gp-relative",ref:i,children:[jsxRuntime.jsx("div",{className:"gp-gen-content-btn gp-border-r gp-pr-1 gp-mr-1",children:jsxRuntime.jsxs("button",{className:classNames({"gp-toolbar-ai-active":t},"gp-p-1 gp-text-xs gp-flex gp-gap-1 gp-items-center gp-rounded-md hover:gp-bg-[#3B3B3B] gp-font-medium"),onClick:k,children:[jsxRuntime.jsx(AIIcon.AIIcon,{}),g("AI Content")]})}),jsxRuntime.jsxs("div",{className:classNames({"gp-hidden":!t,"gp-right-0":"Section"===e.tag||"right"===c,"gp-left-0":"left"===c&&"Section"!==e.tag,"gp-top-8":"top"===l,"gp-bottom-8":"bottom"===l,"!gp-visible":!d},"gp-absolute gp-invisible gp-rounded-lg gp-bg-[#151515] gp-w-[312px] !gp-max-w-[312px] !gp-cursor-default"),ref:o,children:[jsxRuntime.jsxs("div",{className:"gp-flex gp-items-center gp-justify-between gp-px-4 gp-py-[10px]",ref:u,children:[jsxRuntime.jsx("span",{className:"gp-font-medium gp-text-sm",children:"Write with GemAI"}),jsxRuntime.jsx("button",{className:"gp-p-2 gp-cursor-pointer hover:gp-bg-[#3B3B3B] gp-rounded-md",onClick:A,children:jsxRuntime.jsx(CloseIcon.CloseIcon,{})})]}),jsxRuntime.jsx("div",{className:classNames({"gp-overflow-auto":null!==x},"gp-pt-2 gp-text-left gp-px-4 scrollbar:gp-w-1 scrollbar-thumb:gp-bg-[#999] scrollbar-thumb:gp-rounded-xl"),style:{maxHeight:null!==x?`${x}px`:"auto"},children:N?.isAllow?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:"gp-mb-4",children:jsxRuntime.jsx("span",{className:"gp-text-xs",children:"What would you like to describe here?"})}),jsxRuntime.jsx("div",{className:"gp-mb-4 gp-flex",children:jsxRuntime.jsx("textarea",{className:"gp-p-2 gp-bg-[#333333] gp-rounded-lg gp-w-full gp-text-xs gp-text-white placeholder:gp-text-[#AAAAAA] gp-resize-none focus-visible:gp-outline-none",placeholder:"e.g: generate feature benefits",rows:4,value:R,onChange:y})}),jsxRuntime.jsxs("div",{className:classNames({"gp-hidden":!n},"gp-mb-4 gp-gap-4 gp-flex gp-flex-col"),children:[jsxRuntime.jsx(ToneAndVoice.ToneAndVoice,{changeToneAndVoice:q}),jsxRuntime.jsx(PickProduct.PickProduct,{changeProductName:b,openProductSetting:E,productId:C.productId})]}),jsxRuntime.jsx("div",{children:jsxRuntime.jsxs("button",{className:"gp-flex gp-justify-center gp-items-center gp-w-full gp-bg-[#333333] gp-py-2 gp-rounded-lg gp-gap-2 gp-text-xs gp-font-medium",onClick:S,children:["Show more",jsxRuntime.jsx("span",{className:classNames({"gp-rotate-180":n}),children:jsxRuntime.jsx(ShowMoreIcon.ShowMoreIcon,{})})]})})]}):jsxRuntime.jsxs("div",{className:"gp-flex gp-gap-2 gp-p-3 gp-rounded-xl gp-bg-[#FDB913] gp-bg-opacity-20",children:[jsxRuntime.jsx("div",{className:"gp-flex-none gp-w-7 gp-h-7 gp-rounded-lg gp-bg-[#FFB800] gp-flex gp-justify-center gp-items-center",children:jsxRuntime.jsx(WarningIcon.WarningIcon,{})}),jsxRuntime.jsxs("p",{className:"gp-text-xs gp-whitespace-normal",children:["You've reached ",N?.maxGenerateCount,"/",N?.maxGenerateCount," rewrites of your AI generative this month.",jsxRuntime.jsx("br",{}),"Resets on ",p,"."]})]})}),jsxRuntime.jsx("div",{className:"gp-p-4",ref:a,children:N?.isAllow?jsxRuntime.jsx("button",{className:"gp-rounded-lg gp-w-full gp-text-xs gp-font-medium gp-bg-gradient-to-tl gp-from-[#3C38E1] gp-to-[#874CFD] gp-py-2",onClick:P,children:m?"Generating...":"Generate"}):jsxRuntime.jsxs("button",{className:"gp-flex gp-items-center gp-gap-2 gp-justify-center gp-rounded-lg gp-w-full gp-text-xs gp-font-medium gp-bg-gradient-to-tl gp-from-[#3C38E1] gp-to-[#874CFD] gp-py-2",onClick:f,children:[jsxRuntime.jsx(UpgradeIcon.UpgradeIcon,{}),N?.nextQuota?`Upgrade to generate ${N?.nextQuota} rewrites`:"You have reached limit this month"]})})]})]})};exports.AIContentGenerator=AIContentGenerator;
2
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),AIIcon=require("./icons/AIIcon.js"),CloseIcon=require("./icons/CloseIcon.js"),ShowMoreIcon=require("./icons/ShowMoreIcon.js"),WarningIcon=require("./icons/WarningIcon.js"),UpgradeIcon=require("./icons/UpgradeIcon.js"),PickProduct=require("./components/PickProduct.js"),ToneAndVoice=require("./components/ToneAndVoice.js"),classNames=require("classnames"),useListenEventGenerate=require("./hooks/useListenEventGenerate.js"),useGettingGenerateRequest=require("./hooks/useGettingGenerateRequest.js"),useFlipPopup=require("./hooks/useFlipPopup.js"),useCheckingProductInside=require("./hooks/useCheckingProductInside.js");require("zustand");var I18nContext=require("../../contexts/I18nContext.js");require("react-transition-group");var ShopContext=require("../../contexts/ShopContext.js"),dayjs=require("dayjs");require("swr"),require("../../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("../../hooks/useCartUI.js"),require("../../hooks/useStickyStore.js"),require("../../types/builder.js"),require("../../types/custom.js"),require("../../types/animations.js");const AIContentGenerator=({...e})=>{let[t,s]=react.useState(!1),[n,r]=react.useState(!1),i=react.useRef(null),o=react.useRef(null),a=react.useRef(null),p=react.useRef(null),u=dayjs().add(1,"month").startOf("month").format("DD MMM"),{t:g}=I18nContext.useI18nStore(),{popupPositionX:c,popupPositionY:l,isValidating:d,bodyMaxHeight:x}=useFlipPopup.useFlipPopup(t,{genTool:i,genPopup:o,genPopupHeader:a,genButtonWrapper:p}),{isGenerating:m,onGenerate:j,onOpenProductElementSettings:h,goToPricing:f}=useListenEventGenerate.useListenEventGenerate({uid:e.uid,tag:String(e.tag)}),{getRequestBody:I,prompt:R,changeProductName:b,changePrompt:v,changeTone:q}=useGettingGenerateRequest.useGettingGenerateRequest(),{productElement:C,checkSectionHasProduct:w}=useCheckingProductInside.useCheckingProductInside(i),N=ShopContext.useShopStore(e=>e.generateContentLimitation),k=()=>{s(!t)},A=()=>{s(!1)},y=e=>{v(e.target.value)},G=react.useCallback(t=>{let s=t.detail;if(s?.componentUid!==e.uid){A();return}w()},[e.uid,w]),S=()=>{r(!n)},P=()=>{let e=I();j(e),A()},E=()=>{h(C.uid??"")};return react.useEffect(()=>{m||A()},[m]),react.useEffect(()=>{if(C.productId){r(!1);return}r(!0)},[C]),react.useEffect(()=>(window.addEventListener("editor:active-component",G),()=>{window.removeEventListener("editor:active-component",G)}),[G]),jsxRuntime.jsxs("div",{className:"gp-gen-content-toolbar-wrapper gp-relative",ref:i,children:[jsxRuntime.jsx("div",{className:"gp-gen-content-btn gp-border-r gp-pr-1 gp-mr-1",children:jsxRuntime.jsxs("button",{className:classNames({"gp-toolbar-ai-active":t},"gp-p-1 gp-text-xs gp-flex gp-gap-1 gp-items-center gp-rounded-md hover:gp-bg-[#3B3B3B] gp-font-medium"),onClick:k,children:[jsxRuntime.jsx(AIIcon.AIIcon,{}),g("AI Content")]})}),jsxRuntime.jsxs("div",{className:classNames({"gp-hidden":!t,"gp-right-0":"Section"===e.tag||"right"===c,"gp-left-0":"left"===c&&"Section"!==e.tag,"gp-top-8":"top"===l,"gp-bottom-8":"bottom"===l,"!gp-visible":!d},"gp-absolute gp-invisible gp-rounded-lg gp-bg-[#151515] gp-w-[312px] !gp-max-w-[312px] !gp-cursor-default"),ref:o,children:[jsxRuntime.jsxs("div",{className:"gp-flex gp-items-center gp-justify-between gp-px-4 gp-py-[10px]",ref:a,children:[jsxRuntime.jsx("span",{className:"gp-font-medium gp-text-sm",children:"Write with GemAI"}),jsxRuntime.jsx("button",{className:"gp-p-2 gp-cursor-pointer hover:gp-bg-[#3B3B3B] gp-rounded-md",onClick:A,children:jsxRuntime.jsx(CloseIcon.CloseIcon,{})})]}),jsxRuntime.jsx("div",{className:classNames({"gp-overflow-auto":null!==x},"gp-pt-2 gp-text-left gp-px-4 scrollbar:gp-w-1 scrollbar-thumb:gp-bg-[#999] scrollbar-thumb:gp-rounded-xl"),style:{maxHeight:null!==x?`${x}px`:"auto"},children:N?.isAllow?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:"gp-mb-4",children:jsxRuntime.jsx("span",{className:"gp-text-xs",children:"What would you like to describe here?"})}),jsxRuntime.jsx("div",{className:"gp-mb-4 gp-flex",children:jsxRuntime.jsx("textarea",{className:"gp-p-2 gp-bg-[#333333] gp-rounded-lg gp-w-full gp-text-xs gp-text-white placeholder:gp-text-[#AAAAAA] gp-resize-none focus-visible:gp-outline-none",placeholder:"e.g: generate feature benefits",rows:4,value:R,onChange:y})}),jsxRuntime.jsxs("div",{className:classNames({"gp-hidden":!n},"gp-mb-4 gp-gap-4 gp-flex gp-flex-col"),children:[jsxRuntime.jsx(ToneAndVoice.ToneAndVoice,{changeToneAndVoice:q}),jsxRuntime.jsx(PickProduct.PickProduct,{changeProductName:b,openProductSetting:E,productId:C.productId})]}),jsxRuntime.jsx("div",{children:jsxRuntime.jsxs("button",{className:"gp-flex gp-justify-center gp-items-center gp-w-full gp-bg-[#333333] gp-py-2 gp-rounded-lg gp-gap-2 gp-text-xs gp-font-medium",onClick:S,children:["Show more",jsxRuntime.jsx("span",{className:classNames({"gp-rotate-180":n}),children:jsxRuntime.jsx(ShowMoreIcon.ShowMoreIcon,{})})]})})]}):jsxRuntime.jsxs("div",{className:"gp-flex gp-gap-2 gp-p-3 gp-rounded-xl gp-bg-[#FDB913] gp-bg-opacity-20",children:[jsxRuntime.jsx("div",{className:"gp-flex-none gp-w-7 gp-h-7 gp-rounded-lg gp-bg-[#FFB800] gp-flex gp-justify-center gp-items-center",children:jsxRuntime.jsx(WarningIcon.WarningIcon,{})}),jsxRuntime.jsxs("p",{className:"gp-text-xs gp-whitespace-normal",children:["You've reached ",N?.maxGenerateCount,"/",N?.maxGenerateCount," rewrites of your AI generative this month.",jsxRuntime.jsx("br",{}),"Resets on ",u,"."]})]})}),jsxRuntime.jsx("div",{className:"gp-p-4",ref:p,children:N?.isAllow?jsxRuntime.jsx("button",{className:"gp-rounded-lg gp-w-full gp-text-xs gp-font-medium gp-bg-gradient-to-tl gp-from-[#3C38E1] gp-to-[#874CFD] gp-py-2",onClick:P,children:m?"Generating...":"Generate"}):jsxRuntime.jsxs("button",{className:"gp-flex gp-items-center gp-gap-2 gp-justify-center gp-rounded-lg gp-w-full gp-text-xs gp-font-medium gp-bg-gradient-to-tl gp-from-[#3C38E1] gp-to-[#874CFD] gp-py-2",onClick:f,children:[jsxRuntime.jsx(UpgradeIcon.UpgradeIcon,{}),N?.nextQuota?`Upgrade to generate ${N?.nextQuota} rewrites`:"You have reached limit this month"]})})]})]})};exports.AIContentGenerator=AIContentGenerator;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),SearchIcon=require("../icons/SearchIcon.js"),useProductsQuery=require("../../../hooks/shop/use-products-query.js"),classNames=require("classnames");require("zustand"),require("react-transition-group"),require("@gem-sdk/core"),require("swr"),require("dayjs"),require("../../../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation");var useProductQuery=require("../../../hooks/shop/use-product-query.js");require("vanilla-lazyload"),require("../../../hooks/useCartUI.js"),require("../../../hooks/useStickyStore.js"),require("../../../types/builder.js"),require("../../../types/custom.js"),require("../../../types/animations.js");const PickProduct=e=>{let[s,t]=react.useState(e.productId?void 0:{first:8}),{data:r,isLoading:a,isValidating:u,size:i,setSize:c}=useProductsQuery.useListProductQuery(s,{revalidateFirstPage:!1}),{data:n}=useProductQuery.useProductQuery(e.productId),[p,l]=react.useState(),[o,g]=react.useState(!1),d=react.useRef(null),m=react.useRef(null),x=()=>{e.productId||g(!o)},j=e=>{l(e),g(!1)},h=e=>{d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{let s=e.target.value??"";if(s){t({first:8,where:{titleContainsFold:s}});return}t({first:8})},200)},f=()=>{e.openProductSetting()},b=e=>{let s=e.target;s.scrollHeight-s.scrollTop===s.clientHeight&&(m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{c(i+1)},50))},R=react.useMemo(()=>r?.reduce((e,s)=>[...e,...s.products?.edges??[]],[])??[],[r]);react.useEffect(()=>{if(R.length&&!p&&!e.productId){let e=R[0]?.node;e&&l({id:e?.id,name:e?.title,image:e.featuredImage?.src})}},[R,p,e.productId]),react.useEffect(()=>{p&&p.name&&e.changeProductName(p.name)},[p,e]),react.useEffect(()=>{n&&l({id:n.id,name:n.title,image:n.featuredImage?.src})},[n]);let q="https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif";return jsxRuntime.jsxs("div",{className:"gp-flex gp-flex-col gp-gap-2",children:[jsxRuntime.jsx("p",{className:"gp-py-2 gp-text-xs",children:"Product"}),jsxRuntime.jsxs("div",{className:"gp-relative",children:[!a||p?jsxRuntime.jsxs("button",{className:classNames({"gp-cursor-default":e.productId},"gp-flex gp-gap-2 gp-items-center gp-w-full gp-p-2 gp-rounded-lg gp-bg-[#333333] gp-text-xs"),onClick:x,children:[jsxRuntime.jsx("img",{className:"gp-rounded-lg gp-w-10 gp-h-10",src:p?.image||q,alt:"product_image"}),jsxRuntime.jsx("span",{className:"gp-truncate gp-max-w-[210px]",children:p?.name})]}):jsxRuntime.jsx("div",{children:jsxRuntime.jsx("span",{className:"gp-text-xs",children:"Getting products..."})}),e.productId&&jsxRuntime.jsx("div",{className:"gp-mt-2 gp-text-xs",children:jsxRuntime.jsxs("p",{children:["You can manage it in"," ",jsxRuntime.jsx("button",{className:"gp-text-[#8AA4FF] gp-cursor-pointer hover:gp-underline",onClick:f,children:"Product element"})]})}),o&&jsxRuntime.jsxs("div",{className:"gp-absolute gp-w-full gp-top-16 gp-left-0 gp-rounded-lg gp-bg-[#333333] gp-p-2 gp-flex gp-flex-col gp-gap-2 gp-z-10",children:[jsxRuntime.jsxs("div",{className:"gp-flex gp-items-center gp-gap-2 gp-p-2",children:[jsxRuntime.jsx(SearchIcon.SearchIcon,{}),jsxRuntime.jsx("input",{className:"gp-bg-transparent gp-w-full focus-visible:!gp-outline-none gp-text-xs",placeholder:"Search product...",onChange:h})]}),jsxRuntime.jsxs("div",{className:"gp-max-h-[168px] gp-overflow-auto scrollbar:gp-w-1 scrollbar-thumb:gp-bg-[#999] scrollbar-thumb:gp-rounded-xl",onScroll:b,children:[R?.map(e=>jsxRuntime.jsxs("button",{className:"gp-flex gp-p-2 hover:gp-bg-[#3B3B3B] gp-rounded-lg gp-cursor-pointer gp-gap-2 gp-items-center",onClick:()=>{j({id:e.node?.id,name:e.node?.title,image:e.node?.featuredImage?.src})},children:[jsxRuntime.jsx("img",{className:"gp-rounded-lg gp-w-10 gp-h-10",src:e.node?.featuredImage?.src||q,alt:"product_image"}),jsxRuntime.jsx("span",{className:"gp-truncate gp-max-w-[210px] gp-text-xs",children:e.node?.title})]},e.node?.id)),a||u&&jsxRuntime.jsx("div",{className:"gp-p-2",children:jsxRuntime.jsx("span",{className:"gp-text-xs",children:"Getting products..."})})]})]})]})]})};exports.PickProduct=PickProduct;
2
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),SearchIcon=require("../icons/SearchIcon.js"),useProductsQuery=require("../../../hooks/shop/use-products-query.js"),classNames=require("classnames");require("zustand"),require("react-transition-group"),require("swr"),require("dayjs"),require("../../../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation");var useProductQuery=require("../../../hooks/shop/use-product-query.js");require("vanilla-lazyload"),require("../../../hooks/useCartUI.js"),require("../../../hooks/useStickyStore.js"),require("../../../types/builder.js"),require("../../../types/custom.js"),require("../../../types/animations.js");const PickProduct=e=>{let[s,t]=react.useState(e.productId?void 0:{first:8}),{data:r,isLoading:a,isValidating:u,size:i,setSize:c}=useProductsQuery.useListProductQuery(s,{revalidateFirstPage:!1}),{data:n}=useProductQuery.useProductQuery(e.productId),[p,l]=react.useState(),[o,g]=react.useState(!1),d=react.useRef(null),m=react.useRef(null),x=()=>{e.productId||g(!o)},j=e=>{l(e),g(!1)},h=e=>{d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{let s=e.target.value??"";if(s){t({first:8,where:{titleContainsFold:s}});return}t({first:8})},200)},f=()=>{e.openProductSetting()},b=e=>{let s=e.target;s.scrollHeight-s.scrollTop===s.clientHeight&&(m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{c(i+1)},50))},R=react.useMemo(()=>r?.reduce((e,s)=>[...e,...s.products?.edges??[]],[])??[],[r]);react.useEffect(()=>{if(R.length&&!p&&!e.productId){let e=R[0]?.node;e&&l({id:e?.id,name:e?.title,image:e.featuredImage?.src})}},[R,p,e.productId]),react.useEffect(()=>{p&&p.name&&e.changeProductName(p.name)},[p,e]),react.useEffect(()=>{n&&l({id:n.id,name:n.title,image:n.featuredImage?.src})},[n]);let q="https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif";return jsxRuntime.jsxs("div",{className:"gp-flex gp-flex-col gp-gap-2",children:[jsxRuntime.jsx("p",{className:"gp-py-2 gp-text-xs",children:"Product"}),jsxRuntime.jsxs("div",{className:"gp-relative",children:[!a||p?jsxRuntime.jsxs("button",{className:classNames({"gp-cursor-default":e.productId},"gp-flex gp-gap-2 gp-items-center gp-w-full gp-p-2 gp-rounded-lg gp-bg-[#333333] gp-text-xs"),onClick:x,children:[jsxRuntime.jsx("img",{className:"gp-rounded-lg gp-w-10 gp-h-10",src:p?.image||q,alt:"product_image"}),jsxRuntime.jsx("span",{className:"gp-truncate gp-max-w-[210px]",children:p?.name})]}):jsxRuntime.jsx("div",{children:jsxRuntime.jsx("span",{className:"gp-text-xs",children:"Getting products..."})}),e.productId&&jsxRuntime.jsx("div",{className:"gp-mt-2 gp-text-xs",children:jsxRuntime.jsxs("p",{children:["You can manage it in"," ",jsxRuntime.jsx("button",{className:"gp-text-[#8AA4FF] gp-cursor-pointer hover:gp-underline",onClick:f,children:"Product element"})]})}),o&&jsxRuntime.jsxs("div",{className:"gp-absolute gp-w-full gp-top-16 gp-left-0 gp-rounded-lg gp-bg-[#333333] gp-p-2 gp-flex gp-flex-col gp-gap-2 gp-z-10",children:[jsxRuntime.jsxs("div",{className:"gp-flex gp-items-center gp-gap-2 gp-p-2",children:[jsxRuntime.jsx(SearchIcon.SearchIcon,{}),jsxRuntime.jsx("input",{className:"gp-bg-transparent gp-w-full focus-visible:!gp-outline-none gp-text-xs",placeholder:"Search product...",onChange:h})]}),jsxRuntime.jsxs("div",{className:"gp-max-h-[168px] gp-overflow-auto scrollbar:gp-w-1 scrollbar-thumb:gp-bg-[#999] scrollbar-thumb:gp-rounded-xl",onScroll:b,children:[R?.map(e=>jsxRuntime.jsxs("button",{className:"gp-flex gp-p-2 hover:gp-bg-[#3B3B3B] gp-rounded-lg gp-cursor-pointer gp-gap-2 gp-items-center",onClick:()=>{j({id:e.node?.id,name:e.node?.title,image:e.node?.featuredImage?.src})},children:[jsxRuntime.jsx("img",{className:"gp-rounded-lg gp-w-10 gp-h-10",src:e.node?.featuredImage?.src||q,alt:"product_image"}),jsxRuntime.jsx("span",{className:"gp-truncate gp-max-w-[210px] gp-text-xs",children:e.node?.title})]},e.node?.id)),a||u&&jsxRuntime.jsx("div",{className:"gp-p-2",children:jsxRuntime.jsx("span",{className:"gp-text-xs",children:"Getting products..."})})]})]})]})]})};exports.PickProduct=PickProduct;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),react=require("react");require("zustand");var BuilderPreviewContext=require("../../contexts/BuilderPreviewContext.js"),device=require("../../constants/device.js");require("react-transition-group"),require("@gem-sdk/core"),require("swr"),require("swr/infinite");var shop=require("../../hooks/shop.js");function Spacing(e){let t=BuilderPreviewContext.useBuilderPreviewStore(e=>e.isThemeSectionEditor),r=shop.usePageType(),n=react.useRef(null),a=react.useRef(null),i=react.useRef(null),s=react.useRef(!1),u=react.useRef(0),o=react.useRef(0),c=react.useRef(null),[l,d]=react.useState(0),[m,p]=react.useState(!1),g=react.useRef(null),v=e=>{let t=e.clientY,r=Math.ceil(t-u.current),n=o.current||0,a=n+r>=0?`${n+r}px`:"0px";return{newValue:a}},f=e=>{if(n.current&&a.current){let{newValue:t}=v(e);a.current.style.height=t,n.current.style.top=t;let r=n.current.closest("[data-toolbar-wrap]");r&&(r.style.marginBottom=t,E(t))}},b=()=>{j()},w=()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{s.current=!0;let e=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!0}});window.dispatchEvent(e),document.addEventListener("mousemove",f),document.addEventListener("mouseup",b)},100)},j=()=>{i.current&&clearTimeout(i.current),s.current=!1;let t=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!1}});if(window.dispatchEvent(t),n.current){let t=getComputedStyle(n.current),r=t.top,a=new CustomEvent("editor:toolbar:change-margin-bottom",{bubbles:!0,detail:{componentUid:e.uid,marginBottom:r}});window.dispatchEvent(a)}let r=n.current?.closest("[data-toolbar-wrap]");r&&(r.style.marginBottom=""),document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",b)},h=(e,t)=>{let r=e.children.length;if(r)for(let n=0;n<r;n++){let r=e.children[n];if(r){let e=r.getAttribute(t);if(e)return r}}},x=e=>{let t=e.getAttribute("data-component-tag");return"Row"===t||"Product"===t},y=react.useCallback(e=>{let t=n.current?.closest("[data-toolbar-wrap]");if(!t)return;let r=h(t,"data-toolbar");if(!r)return;let i=r.getAttribute("data-toolbar-active");if(!i)return;let s=getComputedStyle(t),u=h(t,"data-spacing"),o=u?.querySelector("[data-spacing-margin-bottom]")||null;if(o&&a.current&&n.current){let r=s.marginBottom;if(e&&E(r),0>parseFloat(r)&&(r="0"),a.current.style.height=r,n.current.style.top=r,o.setAttribute("data-spacing-margin-bottom-active","true"),x(t))a.current.style.left="0";else{let e=s.paddingLeft,t=`-${e}`,r=`translate(${t}, -100%)`;a.current.style.left=t,n.current.style.transform=r}}},[]),E=e=>{let t=parseFloat(e);d(t),p(!0),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{p(!1)},2e3);let r=t<=28&&t>=0?t/2+16:t>28?0:16;c.current&&(c.current.style.transform=`translateY(${r}px)`)},q=usePrevious(e.advanced?.["spacing-setting"]);react.useEffect(()=>{let t=R(q,e.advanced?.["spacing-setting"]);y(t)},[q,e.advanced,y]);let R=(e,t)=>device.DEVICES.some(r=>JSON.stringify(e?.[r]?.margin?.bottom)!==JSON.stringify(t?.[r]?.margin?.bottom)),S=react.useCallback(()=>{y()},[y]);return react.useEffect(()=>(window.addEventListener("editor:toolbar:update-margin-bottom",()=>y),window.addEventListener("editor:toolbar:update-padding-left",()=>y),window.addEventListener("resize",S),()=>{window.removeEventListener("editor:toolbar:update-margin-bottom",()=>y),window.removeEventListener("editor:toolbar:update-padding-left",()=>y),window.removeEventListener("resize",S)}),[S,y]),jsxRuntime.jsx(jsxRuntime.Fragment,{children:"Section"!==e.tag&&"POST_PURCHASE"!==r&&jsxRuntime.jsx("div",{"data-spacing":!0,"data-spacing-theme-section":t,className:"gp-absolute gp-w-full gp-bottom-0",children:jsxRuntime.jsxs("div",{"data-spacing-margin-bottom":!0,children:[jsxRuntime.jsxs("div",{"data-spacing-margin-bottom-bg":!0,ref:a,children:[jsxRuntime.jsx("div",{"data-spacing-margin-bottom-value":!0}),jsxRuntime.jsx("div",{"data-active":m,"data-value-number":!0,ref:c,children:l})]}),jsxRuntime.jsx("div",{ref:n,"data-spacing-margin-bottom-drag":!0,onMouseDown:e=>{if(n.current){let t=getComputedStyle(n.current);u.current=e.clientY,o.current=parseFloat(t.top),w()}},onMouseUp:()=>{j()},role:"presentation"})]})})})}require("classnames"),require("dayjs"),require("../../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../../hooks/useCartUI.js"),require("../../hooks/useStickyStore.js"),require("../../types/builder.js"),require("../../types/custom.js"),require("../../types/animations.js");const usePrevious=e=>{let t=react.useRef();return react.useEffect(()=>{t.current=e},[e]),t.current};exports.default=Spacing;
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),react=require("react");require("zustand");var BuilderPreviewContext=require("../../contexts/BuilderPreviewContext.js"),device=require("../../constants/device.js");require("react-transition-group"),require("swr"),require("swr/infinite");var shop=require("../../hooks/shop.js");function Spacing(e){let t=BuilderPreviewContext.useBuilderPreviewStore(e=>e.isThemeSectionEditor),r=shop.usePageType(),n=react.useRef(null),a=react.useRef(null),i=react.useRef(null),s=react.useRef(!1),u=react.useRef(0),o=react.useRef(0),c=react.useRef(null),[l,d]=react.useState(0),[m,p]=react.useState(!1),g=react.useRef(null),v=e=>{let t=e.clientY,r=Math.ceil(t-u.current),n=o.current||0,a=n+r>=0?`${n+r}px`:"0px";return{newValue:a}},f=e=>{if(n.current&&a.current){let{newValue:t}=v(e);a.current.style.height=t,n.current.style.top=t;let r=n.current.closest("[data-toolbar-wrap]");r&&(r.style.marginBottom=t,E(t))}},b=()=>{j()},w=()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{s.current=!0;let e=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!0}});window.dispatchEvent(e),document.addEventListener("mousemove",f),document.addEventListener("mouseup",b)},100)},j=()=>{i.current&&clearTimeout(i.current),s.current=!1;let t=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!1}});if(window.dispatchEvent(t),n.current){let t=getComputedStyle(n.current),r=t.top,a=new CustomEvent("editor:toolbar:change-margin-bottom",{bubbles:!0,detail:{componentUid:e.uid,marginBottom:r}});window.dispatchEvent(a)}let r=n.current?.closest("[data-toolbar-wrap]");r&&(r.style.marginBottom=""),document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",b)},h=(e,t)=>{let r=e.children.length;if(r)for(let n=0;n<r;n++){let r=e.children[n];if(r){let e=r.getAttribute(t);if(e)return r}}},x=e=>{let t=e.getAttribute("data-component-tag");return"Row"===t||"Product"===t},y=react.useCallback(e=>{let t=n.current?.closest("[data-toolbar-wrap]");if(!t)return;let r=h(t,"data-toolbar");if(!r)return;let i=r.getAttribute("data-toolbar-active");if(!i)return;let s=getComputedStyle(t),u=h(t,"data-spacing"),o=u?.querySelector("[data-spacing-margin-bottom]")||null;if(o&&a.current&&n.current){let r=s.marginBottom;if(e&&E(r),0>parseFloat(r)&&(r="0"),a.current.style.height=r,n.current.style.top=r,o.setAttribute("data-spacing-margin-bottom-active","true"),x(t))a.current.style.left="0";else{let e=s.paddingLeft,t=`-${e}`,r=`translate(${t}, -100%)`;a.current.style.left=t,n.current.style.transform=r}}},[]),E=e=>{let t=parseFloat(e);d(t),p(!0),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{p(!1)},2e3);let r=t<=28&&t>=0?t/2+16:t>28?0:16;c.current&&(c.current.style.transform=`translateY(${r}px)`)},q=usePrevious(e.advanced?.["spacing-setting"]);react.useEffect(()=>{let t=R(q,e.advanced?.["spacing-setting"]);y(t)},[q,e.advanced,y]);let R=(e,t)=>device.DEVICES.some(r=>JSON.stringify(e?.[r]?.margin?.bottom)!==JSON.stringify(t?.[r]?.margin?.bottom)),S=react.useCallback(()=>{y()},[y]);return react.useEffect(()=>(window.addEventListener("editor:toolbar:update-margin-bottom",()=>y),window.addEventListener("editor:toolbar:update-padding-left",()=>y),window.addEventListener("resize",S),()=>{window.removeEventListener("editor:toolbar:update-margin-bottom",()=>y),window.removeEventListener("editor:toolbar:update-padding-left",()=>y),window.removeEventListener("resize",S)}),[S,y]),jsxRuntime.jsx(jsxRuntime.Fragment,{children:"Section"!==e.tag&&"POST_PURCHASE"!==r&&jsxRuntime.jsx("div",{"data-spacing":!0,"data-spacing-theme-section":t,className:"gp-absolute gp-w-full gp-bottom-0",children:jsxRuntime.jsxs("div",{"data-spacing-margin-bottom":!0,children:[jsxRuntime.jsxs("div",{"data-spacing-margin-bottom-bg":!0,ref:a,children:[jsxRuntime.jsx("div",{"data-spacing-margin-bottom-value":!0}),jsxRuntime.jsx("div",{"data-active":m,"data-value-number":!0,ref:c,children:l})]}),jsxRuntime.jsx("div",{ref:n,"data-spacing-margin-bottom-drag":!0,onMouseDown:e=>{if(n.current){let t=getComputedStyle(n.current);u.current=e.clientY,o.current=parseFloat(t.top),w()}},onMouseUp:()=>{j()},role:"presentation"})]})})})}require("classnames"),require("dayjs"),require("../../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../../hooks/useCartUI.js"),require("../../hooks/useStickyStore.js"),require("../../types/builder.js"),require("../../types/custom.js"),require("../../types/animations.js");const usePrevious=e=>{let t=react.useRef();return react.useEffect(()=>{t.current=e},[e]),t.current};exports.default=Spacing;
@@ -1,2 +1 @@
1
- 'use client';
2
- "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),reactTransitionGroup=require("react-transition-group"),core=require("@gem-sdk/core");const TRANSITION_DURATION=350,defaultStyles={transition:"opacity 350ms ease-out",opacity:0},transitions={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0},unmounted:{opacity:0}},ThemeSectionTooltip=({isShow:e,isFreeLimit:t,isRender:i,children:o,limitCreateThemeSection:s,onMouseEnter:n,onMouseLeave:a,onActions:c})=>{let{t:r}=core.useI18nStore(),m=react.useRef(null),l=t?"Upgrade to create Theme Section":"Create Theme Section",u=()=>{window.open("https://help.gempages.net/articles/theme-section","_blank")};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsxs("div",{className:"theme-section-tooltip-wrapper",onMouseEnter:n,onMouseLeave:a,children:[o,i&&jsxRuntime.jsx(reactTransitionGroup.Transition,{in:e,timeout:350,nodeRef:m,unmountOnExit:!0,children:e=>jsxRuntime.jsx("div",{className:"theme-section-tooltip",ref:m,style:{...defaultStyles,...transitions[e]},children:s?.isLimit&&!t?jsxRuntime.jsxs("div",{className:"theme-section-tooltip__body theme-section-tooltip__body-limit",children:[jsxRuntime.jsx("div",{className:"theme-section-tooltip__body-title theme-section-tooltip__body-limit__title",children:"Upgrade plan"}),jsxRuntime.jsxs("div",{className:"theme-section-tooltip__body-desc theme-section-tooltip__body-limit__desc",children:["You’ve reached the maximum number of theme sections on your plan (",s.total,"/",s.limit,")"]}),jsxRuntime.jsx("button",{onClick:e=>c(e),children:"Upgrade plan to create more"})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:"theme-section-tooltip__image",children:jsxRuntime.jsx("img",{src:"https://ucarecdn.com/6a9f408a-aa8c-434a-890b-81067a14aceb/-/format/auto/-/preview/1920x1920/-/quality/lighter/theme-section-illustration.png",alt:""})}),jsxRuntime.jsxs("div",{className:"theme-section-tooltip__body",children:[jsxRuntime.jsx("div",{className:"theme-section-tooltip__body-title",children:"Create once, use everywhere with Theme Section"}),jsxRuntime.jsx("div",{className:"theme-section-tooltip__body-desc",children:"A global section that can be used on all your GemPages & Shopify pages."})]}),jsxRuntime.jsxs("div",{className:core.cls("theme-section-tooltip__action",{"theme-section-tooltip__action-limit":t}),children:[jsxRuntime.jsx("button",{onClick:e=>c(e),children:r(l)}),t&&jsxRuntime.jsx("div",{onClick:u,"aria-hidden":!0,className:"theme-section-tooltip__action-learn-more",children:"Learn more about Theme Section"})]})]})})})]})})};exports.ThemeSectionTooltip=ThemeSectionTooltip;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),reactTransitionGroup=require("react-transition-group");require("zustand");var I18nContext=require("../../contexts/I18nContext.js"),cls=require("../../helpers/cls.js");require("swr"),require("swr/infinite"),require("classnames"),require("dayjs"),require("../../helpers/convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../../hooks/useCartUI.js"),require("../../hooks/useStickyStore.js"),require("../../types/builder.js"),require("../../types/custom.js"),require("../../types/animations.js");const TRANSITION_DURATION=350,defaultStyles={transition:"opacity 350ms ease-out",opacity:0},transitions={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0},unmounted:{opacity:0}},ThemeSectionTooltip=({isShow:e,isFreeLimit:t,isRender:i,children:s,limitCreateThemeSection:o,onMouseEnter:n,onMouseLeave:r,onActions:a})=>{let{t:c}=I18nContext.useI18nStore(),l=react.useRef(null),m=t?"Upgrade to create Theme Section":"Create Theme Section",u=()=>{window.open("https://help.gempages.net/articles/theme-section","_blank")};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsxs("div",{className:"theme-section-tooltip-wrapper",onMouseEnter:n,onMouseLeave:r,children:[s,i&&jsxRuntime.jsx(reactTransitionGroup.Transition,{in:e,timeout:350,nodeRef:l,unmountOnExit:!0,children:e=>jsxRuntime.jsx("div",{className:"theme-section-tooltip",ref:l,style:{...defaultStyles,...transitions[e]},children:o?.isLimit&&!t?jsxRuntime.jsxs("div",{className:"theme-section-tooltip__body theme-section-tooltip__body-limit",children:[jsxRuntime.jsx("div",{className:"theme-section-tooltip__body-title theme-section-tooltip__body-limit__title",children:"Upgrade plan"}),jsxRuntime.jsxs("div",{className:"theme-section-tooltip__body-desc theme-section-tooltip__body-limit__desc",children:["You’ve reached the maximum number of theme sections on your plan (",o.total,"/",o.limit,")"]}),jsxRuntime.jsx("button",{onClick:e=>a(e),children:"Upgrade plan to create more"})]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:"theme-section-tooltip__image",children:jsxRuntime.jsx("img",{src:"https://ucarecdn.com/6a9f408a-aa8c-434a-890b-81067a14aceb/-/format/auto/-/preview/1920x1920/-/quality/lighter/theme-section-illustration.png",alt:""})}),jsxRuntime.jsxs("div",{className:"theme-section-tooltip__body",children:[jsxRuntime.jsx("div",{className:"theme-section-tooltip__body-title",children:"Create once, use everywhere with Theme Section"}),jsxRuntime.jsx("div",{className:"theme-section-tooltip__body-desc",children:"A global section that can be used on all your GemPages & Shopify pages."})]}),jsxRuntime.jsxs("div",{className:cls.cls("theme-section-tooltip__action",{"theme-section-tooltip__action-limit":t}),children:[jsxRuntime.jsx("button",{onClick:e=>a(e),children:c(m)}),t&&jsxRuntime.jsx("div",{onClick:u,"aria-hidden":!0,className:"theme-section-tooltip__action-learn-more",children:"Learn more about Theme Section"})]})]})})})]})})};exports.ThemeSectionTooltip=ThemeSectionTooltip;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js");var variant=require("../helpers/variant.js");require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group"),require("@gem-sdk/core"),require("classnames"),require("dayjs");var flattenConnection=require("../helpers/flatten-connection.js");require("../helpers/convert.js");const ProductContext=react.createContext(null),createProductStoreProvider=e=>zustand.createStore((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let i=r().properties;i?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})},setIsAgreeBuyWithSubscription:e=>{t({isAgreeBuyWithSubscription:e})},setSubscriptionSellingType:e=>{t({subscriptionSellingType:e})},setSelectedSellingPlan:e=>{t({selectedSellingPlan:e})}})),ProductProvider=({children:e,product:t,initialVariantId:r,initialVariantBaseId:i,quantity:s=1,isSyncProduct:o,hasPreSelected:u})=>{let n=react.useId(),a=react.useMemo(()=>{let e,a={};if(t){let s=flattenConnection.flattenConnection(t.variants),o=s[0],u=s.find(e=>variant.checkInStock(e)),n=s.find(e=>e?.id===r||e?.baseID===i)??u??o;a=n?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=t.medias?.edges.find(e=>e.node?.id===n?.mediaId)?.node??t.featuredImage}return createProductStoreProvider({product:t,quantity:s,selectedOptions:a,uiqueId:n,featuredImageGlobal:e,isSyncProduct:o,hasPreSelected:u,isAgreeBuyWithSubscription:!0})},[t,s,n,o,u,r]);return jsxRuntime.jsx(ProductContext.Provider,{value:a,children:jsxRuntime.jsx(jsxRuntime.Fragment,{children:e})})},useProductStore=(e,t)=>{let r=react.useContext(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return zustand.useStore(r,e,t)};exports.ProductProvider=ProductProvider,exports.useProductStore=useProductStore;
2
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js");var variant=require("../helpers/variant.js");require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group"),require("classnames"),require("dayjs");var flattenConnection=require("../helpers/flatten-connection.js");require("../helpers/convert.js");const ProductContext=react.createContext(null),createProductStoreProvider=e=>zustand.createStore((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let i=r().properties;i?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})},setIsAgreeBuyWithSubscription:e=>{t({isAgreeBuyWithSubscription:e})},setSubscriptionSellingType:e=>{t({subscriptionSellingType:e})},setSelectedSellingPlan:e=>{t({selectedSellingPlan:e})}})),ProductProvider=({children:e,product:t,initialVariantId:r,initialVariantBaseId:i,quantity:s=1,isSyncProduct:o,hasPreSelected:u})=>{let n=react.useId(),a=react.useMemo(()=>{let e,a={};if(t){let s=flattenConnection.flattenConnection(t.variants),o=s[0],u=s.find(e=>variant.checkInStock(e)),n=s.find(e=>e?.id===r||e?.baseID===i)??u??o;a=n?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=t.medias?.edges.find(e=>e.node?.id===n?.mediaId)?.node??t.featuredImage}return createProductStoreProvider({product:t,quantity:s,selectedOptions:a,uiqueId:n,featuredImageGlobal:e,isSyncProduct:o,hasPreSelected:u,isAgreeBuyWithSubscription:!0})},[t,s,n,o,u,r]);return jsxRuntime.jsx(ProductContext.Provider,{value:a,children:jsxRuntime.jsx(jsxRuntime.Fragment,{children:e})})},useProductStore=(e,t)=>{let r=react.useContext(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return zustand.useStore(r,e,t)};exports.ProductProvider=ProductProvider,exports.useProductStore=useProductStore;
@@ -1,6 +1,7 @@
1
1
  "use strict";const MediaSelect=`
2
2
  fragment MediaSelect on Media {
3
3
  id
4
+ baseID
4
5
  contentType
5
6
  previewImage
6
7
  src
@@ -31,9 +31,5 @@
31
31
  id
32
32
  value
33
33
  }
34
- metafields {
35
- key
36
- value
37
- }
38
34
  }
39
35
  `;exports.PreviewThemePageSelect=PreviewThemePageSelect;
@@ -2,9 +2,9 @@
2
2
  fragment ProductLittleSelect on Product {
3
3
  id
4
4
  title
5
+ createdAt
5
6
  description
6
7
  descriptionHtml
7
- createdAt
8
8
  handle
9
9
  averageRating
10
10
  isStorefront
@@ -5,15 +5,24 @@
5
5
  handle
6
6
  isMobile
7
7
  sectionPosition
8
+ pageSections {
9
+ ...PublishedPageSectionSelect
10
+ }
8
11
  themePageCustomSections {
9
12
  ...PublishedCustomSectionSelect
10
13
  }
11
- pageSections {
12
- ...PublishedPageSectionSelect
14
+ themePageDataSEO {
15
+ ...DataSEOSelect
13
16
  }
14
17
  pageStyle {
15
18
  ...PublishedThemeStyleSelect
16
19
  }
20
+ themePageAnalytic {
21
+ ...AnalyticSelect
22
+ }
23
+ themePageCustomCode {
24
+ ...CustomCodeSelect
25
+ }
17
26
  themePageCustomFonts {
18
27
  ...CustomFontSelect
19
28
  }
@@ -1,7 +1,5 @@
1
1
  "use strict";const ProductOptionNameDocument=`
2
- query productOptionName($limit: Int, $offset: Int) {
3
- productOptionName(
4
- limit: $limit,
5
- offset: $offset
6
- )
7
- }`;exports.ProductOptionNameDocument=ProductOptionNameDocument;
2
+ query productOptionName($limit: Int, $offset: Int) {
3
+ productOptionName(limit: $limit, offset: $offset)
4
+ }
5
+ `;exports.ProductOptionNameDocument=ProductOptionNameDocument;
@@ -1,11 +1,14 @@
1
- "use strict";var publishedThemePage_generated=require("../fragments/published-theme-page.generated.js"),publishedCustomSection_generated=require("../fragments/published-custom-section.generated.js"),publishedPageSection_generated=require("../fragments/published-page-section.generated.js"),publishedThemeStyle_generated=require("../fragments/published-theme-style.generated.js"),customFont_generated=require("../fragments/custom-font.generated.js");const PublishedThemePagesDocument=`
1
+ "use strict";var publishedThemePage_generated=require("../fragments/published-theme-page.generated.js"),publishedPageSection_generated=require("../fragments/published-page-section.generated.js"),publishedCustomSection_generated=require("../fragments/published-custom-section.generated.js"),dataSeo_generated=require("../fragments/data-seo.generated.js"),publishedThemeStyle_generated=require("../fragments/published-theme-style.generated.js"),analytic_generated=require("../fragments/analytic.generated.js"),customCode_generated=require("../fragments/custom-code.generated.js"),customFont_generated=require("../fragments/custom-font.generated.js");const PublishedThemePagesDocument=`
2
2
  query publishedThemePages($slug: String, $slugType: PublishedThemePageType!) {
3
3
  publishedThemePages(slug: $slug, slugType: $slugType) {
4
4
  ...PublishedThemePageSelect
5
5
  }
6
6
  }
7
7
  ${publishedThemePage_generated.PublishedThemePageSelect}
8
- ${publishedCustomSection_generated.PublishedCustomSectionSelect}
9
8
  ${publishedPageSection_generated.PublishedPageSectionSelect}
9
+ ${publishedCustomSection_generated.PublishedCustomSectionSelect}
10
+ ${dataSeo_generated.DataSeoSelect}
10
11
  ${publishedThemeStyle_generated.PublishedThemeStyleSelect}
12
+ ${analytic_generated.AnalyticSelect}
13
+ ${customCode_generated.CustomCodeSelect}
11
14
  ${customFont_generated.CustomFontSelect}`;exports.PublishedThemePagesDocument=PublishedThemePagesDocument;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var react=require("react");require("react/jsx-runtime"),require("zustand");var PageContext=require("../../contexts/PageContext.js");require("react-transition-group"),require("@gem-sdk/core"),require("swr"),require("swr/infinite"),require("classnames"),require("dayjs"),require("../convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../../hooks/useCartUI.js"),require("../../hooks/useStickyStore.js"),require("../../types/builder.js"),require("../../types/custom.js"),require("../../types/animations.js");const useInteraction=()=>{let e=react.useRef(),t=PageContext.usePageStore(e=>e.setInteractionIsSelectOnPage),r=PageContext.usePageStore(e=>e.sidebarMode),n=PageContext.usePageStore(e=>e.interactionData?.selectType),i=PageContext.usePageStore(e=>e.interactionData);function a(e,t){return!(e instanceof Document)&&e?.matches(t)?e:e?.querySelector(t)}let s=(e,t,r)=>{let n=e=>{let t=e.detail;r&&r(t)};return e.addEventListener(t,n),()=>e.removeEventListener(t,n)},o=({event:t,selector:r,elementRef:n},i)=>{let o=a(n?.current||e.current||document,r);if(o)return s(o,t,i)},u=({event:e,data:t,selector:r,element:n})=>{let i=n||document.body?.querySelector(r);if(!i)return;let a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:{data:t}});i.dispatchEvent(a)},c=(e,t,r)=>{if(!e)return;let n=e.getAttribute("gp-data-interaction"),i=JSON.parse(n||"{}");e.setAttribute("gp-data-interaction",JSON.stringify({...i,[t]:r}))},l=(e,t)=>{let r=e.getAttribute("gp-data-interaction"),n=JSON.parse(r||"{}");return{previousData:n[t],interactionDataJson:n}},d=()=>{t(!1);let e=new CustomEvent("editor:interaction:change-select-on-page",{bubbles:!0,detail:!1});window.dispatchEvent(e)},g=e=>{let t=new CustomEvent("editor:interaction:change-select-mode",{bubbles:!0,detail:e});window.dispatchEvent(t)},m=({componentUid:e,settingType:t,$target:r})=>{let n=new CustomEvent("editor:interaction:select-element",{bubbles:!0,detail:{componentUid:e,settingType:t,$target:r}});window.dispatchEvent(n)},q=react.useMemo(()=>"interaction"===r&&(!i?.isSelectOnPage||"PAGE"===n),[r,i?.isSelectOnPage,n]),b=react.useMemo(()=>i?.isSelectOnPage,[i?.isSelectOnPage]),p=react.useCallback(e=>{if(window.interactionLoaded){e();return}window.addEventListener("gp:flow-actions-loaded",()=>{e()})},[]);return{onListener:o,trigger:u,saveToElementInteractionData:c,closeSelectOnPage:d,ref:e,findElementIncludingSelf:a,getInteractionPreviousData:l,changeSelectMode:g,selectInteractionElement:m,isInteractionMode:q,isSelectOnPage:b,interactionListenerLoaded:p}};exports.useInteraction=useInteraction;
2
+ "use strict";var react=require("react");require("react/jsx-runtime"),require("zustand");var PageContext=require("../../contexts/PageContext.js");require("react-transition-group"),require("swr"),require("swr/infinite"),require("classnames"),require("dayjs"),require("../convert.js"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../../hooks/useCartUI.js"),require("../../hooks/useStickyStore.js"),require("../../types/builder.js"),require("../../types/custom.js"),require("../../types/animations.js");const useInteraction=()=>{let e=react.useRef(),t=PageContext.usePageStore(e=>e.setInteractionIsSelectOnPage),r=PageContext.usePageStore(e=>e.sidebarMode),n=PageContext.usePageStore(e=>e.interactionData?.selectType),i=PageContext.usePageStore(e=>e.interactionData);function a(e,t){return!(e instanceof Document)&&e?.matches(t)?e:e?.querySelector(t)}let s=(e,t,r)=>{let n=e=>{let t=e.detail;r&&r(t)};return e.addEventListener(t,n),()=>e.removeEventListener(t,n)},o=({event:t,selector:r,elementRef:n},i)=>{let o=a(n?.current||e.current||document,r);if(o)return s(o,t,i)},u=({event:e,data:t,selector:r,element:n})=>{let i=n||document.body?.querySelector(r);if(!i)return;let a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:{data:t}});i.dispatchEvent(a)},c=(e,t,r)=>{if(!e)return;let n=e.getAttribute("gp-data-interaction"),i=JSON.parse(n||"{}");e.setAttribute("gp-data-interaction",JSON.stringify({...i,[t]:r}))},l=(e,t)=>{let r=e.getAttribute("gp-data-interaction"),n=JSON.parse(r||"{}");return{previousData:n[t],interactionDataJson:n}},d=()=>{t(!1);let e=new CustomEvent("editor:interaction:change-select-on-page",{bubbles:!0,detail:!1});window.dispatchEvent(e)},g=e=>{let t=new CustomEvent("editor:interaction:change-select-mode",{bubbles:!0,detail:e});window.dispatchEvent(t)},b=({componentUid:e,settingType:t,$target:r})=>{let n=new CustomEvent("editor:interaction:select-element",{bubbles:!0,detail:{componentUid:e,settingType:t,$target:r}});window.dispatchEvent(n)},m=react.useMemo(()=>"interaction"===r&&(!i?.isSelectOnPage||"PAGE"===n),[r,i?.isSelectOnPage,n]),p=react.useMemo(()=>i?.isSelectOnPage,[i?.isSelectOnPage]),q=react.useCallback(e=>{if(window.interactionLoaded){e();return}window.addEventListener("gp:flow-actions-loaded",()=>{e()})},[]);return{onListener:o,trigger:u,saveToElementInteractionData:c,closeSelectOnPage:d,ref:e,findElementIncludingSelf:a,getInteractionPreviousData:l,changeSelectMode:g,selectInteractionElement:b,isInteractionMode:m,isSelectOnPage:p,interactionListenerLoaded:q}};exports.useInteraction=useInteraction;
@@ -1 +1 @@
1
- "use strict";var products_generated=require("../../graphql/queries/products.generated.js"),getCollection=require("./get-collection.js"),getProduct=require("./get-product.js");const getProducts=async(e,{ids:t,isSample:r,isStorefront:d,defaultSelectedProductCount:s,allStatus:o})=>{let a=await loopFetchProducts(e,{ids:t,isSample:r,isStorefront:d,defaultSelectedProductCount:s,allStatus:o});if(!a)throw Error("Product not found");let[i,c]=await Promise.all([mergeVariantsToProducts({fetcher:e,products:a,isSample:r,isStorefront:d}),mergeMediasToProducts({fetcher:e,products:a,isSample:r,isStorefront:d})]);return{...a,products:{...a.products,edges:a.products?.edges.map(e=>{let t=c.find(t=>t.productId===e.node?.baseID),r=i.find(t=>t.productId===e.node?.baseID);return e.node?{...e,node:{...e.node,variants:{...e.node?.variants,edges:r?.items??[]},medias:{...e.node?.medias,edges:t?.items??[]}}}:e})??[]}}},getProductQueryAll=async(e,t)=>{let r=t?.limit||4;delete t.limit;let d={first:r,firstMedia:1,firstVariant:1,orderBy:{field:"PLATFORM_CREATED_AT",direction:"DESC"},orderByMedia:{field:"POSITION",direction:"ASC"},where:{status:"ACTIVE",...t}},s=await fetchProducts(e,d);return s},getListProductByVariables=async(e,t)=>{let r={first:t.first||8,firstMedia:1,firstVariant:1,orderBy:{field:"PLATFORM_CREATED_AT",direction:"DESC"},orderByMedia:{field:"POSITION",direction:"ASC"},where:{status:"ACTIVE",...t.where},after:t.after},d=await fetchProducts(e,r);return d},fetchProducts=async(e,t)=>e([products_generated.ProductsDocument,t]),loopFetchProducts=async(e,{ids:t,isSample:r,isStorefront:d,defaultSelectedProductCount:s,allStatus:o})=>{let a,i,c,u,n;let l=s||4,g=(t?.length==0?l:t?.length)??l,f=1,P=Math.ceil(g/8);for(;f<=P&&!1!==u;){let s=o?{}:{status:"ACTIVE"};a={first:getCollection.calculateFirstProduct(g,f,8),firstMedia:1,firstVariant:1,orderBy:{field:"PLATFORM_CREATED_AT",direction:"DESC"},orderByMedia:{field:"POSITION",direction:"ASC"},where:{...s,isSample:r,...d&&{isStorefront:d},...t?.length?{baseIDIn:t}:{}},after:i};let l=await fetchProducts(e,a);if(i=l?.products?.pageInfo?.endCursor,1===f?(c=l,n=l):n?.products&&l?.products?.edges.length&&(n.products={edges:n.products.edges.concat(l?.products?.edges),pageInfo:l?.products?.pageInfo}),f++,!n){u=!1;break}}return c},mergeVariantsToProducts=async({fetcher:e,products:t,isSample:r,isStorefront:d})=>{let s=await Promise.all(t?.products?.edges?.map(async t=>{let s=await getProduct.fetchVariants(e,{id:t?.node?.baseID,isSample:r,isStorefront:d});return{productId:t?.node?.baseID,items:s}})??[]);return s},mergeMediasToProducts=async({fetcher:e,products:t,isSample:r,isStorefront:d})=>{let s=await Promise.all(t?.products?.edges?.map(async t=>{let s=await getProduct.fetchMedias(e,{id:t?.node?.baseID,isSample:r,isStorefront:d});return{productId:t?.node?.baseID,items:s}})??[]);return s};exports.getListProductByVariables=getListProductByVariables,exports.getProductQueryAll=getProductQueryAll,exports.getProducts=getProducts;
1
+ "use strict";var products_generated=require("../../graphql/queries/products.generated.js"),getCollection=require("./get-collection.js"),getProduct=require("./get-product.js");const getProducts=async(e,{ids:t,isSample:r,isStorefront:d,defaultSelectedProductCount:s,allStatus:o})=>{let a=await loopFetchProducts(e,{ids:t,isSample:r,isStorefront:d,defaultSelectedProductCount:s,allStatus:o});if(!a)throw Error("Product not found");let[i,c]=await Promise.all([mergeVariantsToProducts({fetcher:e,products:a,isSample:r,isStorefront:d}),mergeMediasToProducts({fetcher:e,products:a,isSample:r,isStorefront:d})]);return{...a,products:{...a.products,edges:a.products?.edges.map(e=>{let t=c.find(t=>t.productId===e.node?.baseID),r=i.find(t=>t.productId===e.node?.baseID);return e.node?{...e,node:{...e.node,variants:{...e.node?.variants,edges:r?.items??[]},medias:{...e.node?.medias,edges:t?.items??[]}}}:e})??[]}}},getProductQueryAll=async(e,t)=>{let r={first:t.first||4,firstMedia:1,firstVariant:1,orderBy:{field:"PLATFORM_CREATED_AT",direction:"DESC"},orderByMedia:{field:"POSITION",direction:"ASC"},where:{status:"ACTIVE",...t}},d=await fetchProducts(e,r);return d},getListProductByVariables=async(e,t)=>{let r={first:t.first||8,firstMedia:1,firstVariant:1,orderBy:{field:"PLATFORM_CREATED_AT",direction:"DESC"},orderByMedia:{field:"POSITION",direction:"ASC"},where:{status:"ACTIVE",...t.where},after:t.after},d=await fetchProducts(e,r);return d},fetchProducts=async(e,t)=>e([products_generated.ProductsDocument,t]),loopFetchProducts=async(e,{ids:t,isSample:r,isStorefront:d,defaultSelectedProductCount:s,allStatus:o})=>{let a,i,c,u,n;let l=s||4,g=(t?.length==0?l:t?.length)??l,f=1,P=Math.ceil(g/8);for(;f<=P&&!1!==u;){let s=o?{}:{status:"ACTIVE"};a={first:getCollection.calculateFirstProduct(g,f,8),firstMedia:1,firstVariant:1,orderBy:{field:"PLATFORM_CREATED_AT",direction:"DESC"},orderByMedia:{field:"POSITION",direction:"ASC"},where:{...s,isSample:r,...d&&{isStorefront:d},...t?.length?{baseIDIn:t}:{}},after:i};let l=await fetchProducts(e,a);if(i=l?.products?.pageInfo?.endCursor,1===f?(c=l,n=l):n?.products&&l?.products?.edges.length&&(n.products={edges:n.products.edges.concat(l?.products?.edges),pageInfo:l?.products?.pageInfo}),f++,!n){u=!1;break}}return c},mergeVariantsToProducts=async({fetcher:e,products:t,isSample:r,isStorefront:d})=>{let s=await Promise.all(t?.products?.edges?.map(async t=>{let s=await getProduct.fetchVariants(e,{id:t?.node?.baseID,isSample:r,isStorefront:d});return{productId:t?.node?.baseID,items:s}})??[]);return s},mergeMediasToProducts=async({fetcher:e,products:t,isSample:r,isStorefront:d})=>{let s=await Promise.all(t?.products?.edges?.map(async t=>{let s=await getProduct.fetchMedias(e,{id:t?.node?.baseID,isSample:r,isStorefront:d});return{productId:t?.node?.baseID,items:s}})??[]);return s};exports.getListProductByVariables=getListProductByVariables,exports.getProductQueryAll=getProductQueryAll,exports.getProducts=getProducts;
@@ -1,2 +1 @@
1
- 'use client';
2
1
  "use strict";const EASING={ease:"cubic-bezier(0.46,0.03,0.52,0.96)","ease-in":"cubic-bezier(0.55,0.08,0.68,0.53)","ease-out":"cubic-bezier(0.46,0.03,0.52,0.96)",linear:"linear"},animations=()=>{let t=t=>{let r=JSON.parse(JSON.stringify(t)),e=["delay","speed","scale","intensity"];return e.forEach(t=>{if(!r?.[t])return;if("scale"===t){if(!r?.zoomDirection)throw TypeError("zoomDirection not found on zoom preset");let[e,a]=r?.scale?.in??[1,1],[n,o]=r?.scale?.out??[1,1];r[t]={in:[Number(e)/100,Number(a)/100],out:[Number(n)/100,Number(o)/100]};return}let e=Number(r?.[t]);if("delay"===t?r[t]=1e3*e:r[t]=e,!isFinite(e))throw TypeError(`${t} must be a number`)}),r},r=(r,e)=>{let n=t(e),{direction:s,distance:l}=n,p=["left","right"].includes(s??"")?"X":"Y",u=["left","down"].includes(s??"")?"-":"",f=o(r),m=[{display:f,opacity:0,transform:`translate${p}(${u}${l??50}%)`},{display:f,opacity:i(r),transform:`translate${p}(0)`}];return c(r,m,{...a(n,500),fill:"forwards"})},e=(r,e)=>{let n=t(e),o=[{opacity:0},{opacity:i(r)}];return c(r,o,{...a(n,500)})},a=(t,r)=>{let e=t=>t?1.5/t*1e3:r,{loop:a,delay:n,speed:o,easing:i}=t??{},s=e(o),l=n??0,c=a?s+l:s;return{iterations:a?1/0:1,duration:c,delay:l,easing:EASING[i??"linear"]}},n=(r,e)=>{let n=t(e),{scale:s,zoomDirection:l,isFade:p}=n,[u,f]=s.in,[m,y]=s.out,d=o(r),b=i(r),$=[{display:d,transform:`scale(${u}, ${u})`,opacity:p?0:1},{display:d,transform:`scale(${f??1.2}, ${f??1.2})`,opacity:b}],w=[{display:d,transform:`scale(${m}, ${m})`,opacity:p?0:1},{display:d,transform:`scale(${y??.8}, ${y??.8})`,opacity:b}],x="in"===l?$:w;return c(r,x,{...a(n,700),fill:"forwards"})},o=t=>{let r="inline"===window.getComputedStyle(t,null).getPropertyValue("display");return r?"block":void 0},i=t=>window.getComputedStyle(t,null).getPropertyValue("opacity"),s=(t,r,e)=>{if(!r)return t;let a=r/e,n=[...t].pop();return[...t,{...n,offset:1-a}]},l=(r,e)=>{let n=t(e),{intensity:s}=n??{},l=o(r),p=i(r),u=[{transform:"translate3d(0, 0, 0)",opacity:p,display:l}],f=[{transform:"translate3d(4px, 0, 0)",opacity:p,display:l},{transform:"translate3d(-4px, 0, 0)",opacity:p,display:l},{transform:"translate3d(4px, 0, 0)",opacity:p,display:l}],m=[];Array.from(Array(s??1).keys()).forEach(()=>{m=[...m,...f]});let y=[{transform:"translate3d(-1px, 0, 0)",opacity:p,display:l},{transform:"translate3d(2px, 0, 0)",opacity:p,display:l},{transform:"translate3d(-4px, 0, 0)",opacity:p,display:l},...m,{transform:"translate3d(-4px, 0, 0)",opacity:p,display:l},{transform:"translate3d(2px, 0, 0)",opacity:p,display:l},{transform:"translate3d(-1px, 0, 0)",opacity:p,display:l}];return c(r,s?y:u,{...a(n??{},820)})},c=(t,r,e)=>{let a=new KeyframeEffect(t,e.iterations&&1===e.iterations?r:s(r,e?.delay??0,e?.duration??0),{...e});return new Animation(a,document.timeline)};return{zoom:n,shake:l,fade:e,slide:r}};exports.animations=animations;
@@ -1,2 +1 @@
1
- 'use client';
2
1
  "use strict";var useSWR=require("swr"),useSWRInfinite=require("swr/infinite"),getProducts=require("../../helpers/queries/get-products.js"),query=require("../../helpers/query.js"),shop=require("../shop.js"),useFetchHandle=require("../useFetchHandle.js"),react=require("react"),PageContext=require("../../contexts/PageContext.js"),createStoreFrontFetcher=require("../../helpers/create-store-front-fetcher.js");const useProductsQuery=(e,t,r)=>{let u=useFetchHandle.useFetchHandle(),s=PageContext.usePageStore(e=>e.publicStoreFrontData),o=react.useMemo(()=>createStoreFrontFetcher.hasPublicStoreFrontData(s)?createStoreFrontFetcher.createStoreFrontFetcher(s):u,[s]),c=shop.useIsSampleProduct(),a=shop.useIsStorefrontProduct();return useSWR(e?query.generateProductsQueryKey({ids:e,isSample:c,isStorefront:a,defaultSelectedProductCount:r?.defaultSelectedProductCount,allStatus:r?.allStatus}):null,async([,e])=>getProducts.getProducts(r?.fetcher||o,e),t)},getKey=e=>(t,r)=>e&&(!r||r.products?.pageInfo?.hasNextPage)?0===t?["query/products",e]:["query/products",{...e,after:r.products?.pageInfo?.endCursor}]:null,useListProductQuery=(e,t)=>{let r=useFetchHandle.useFetchHandle(),u=useSWRInfinite(getKey(e),async([,e])=>getProducts.getListProductByVariables(r,e),t);return u},useProductsQueryAll=(e,t,r)=>{let u=useFetchHandle.useFetchHandle();return useSWR(e?["query/products",e]:null,async([,e])=>getProducts.getProductQueryAll(r||u,e),t)};exports.useListProductQuery=useListProductQuery,exports.useProductsQuery=useProductsQuery,exports.useProductsQueryAll=useProductsQueryAll;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var animations=require("../helpers/animations.js");require("react"),require("react/jsx-runtime"),require("zustand"),require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("./useCartUI.js"),require("./useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group"),require("@gem-sdk/core"),require("classnames"),require("dayjs"),require("../helpers/convert.js");const useAnimations=()=>{let{zoom:e,shake:r,fade:i,slide:s}=animations.animations();return{zoom:e,shake:r,fade:i,slide:s}};exports.useAnimations=useAnimations;
2
+ "use strict";var animations=require("../helpers/animations.js");require("react"),require("react/jsx-runtime"),require("zustand"),require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("./useCartUI.js"),require("./useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group"),require("classnames"),require("dayjs"),require("../helpers/convert.js");const useAnimations=()=>{let{zoom:e,shake:r,fade:i,slide:s}=animations.animations();return{zoom:e,shake:r,fade:i,slide:s}};exports.useAnimations=useAnimations;
@@ -1,2 +1 @@
1
- 'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var useSWR=require("swr"),productValueLabel_generated=require("../graphql/queries/product-value-label.generated.js"),variantPresets=require("../components/src/product/helpers/variant-presets.js"),shop=require("./shop.js"),useFetchHandle=require("./useFetchHandle.js"),ShopContext=require("../contexts/ShopContext.js");require("react"),require("react/jsx-runtime"),require("zustand"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("./useCartUI.js"),require("./useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group"),require("@gem-sdk/core"),require("classnames"),require("dayjs");var isBrowser=require("../helpers/is-browser.js");require("../helpers/convert.js");let swatchChange=!1,colorChange=!1;const useInitialSwatchesOptions=e=>{let t=useFetchHandle.useFetchHandle(),r=ShopContext.useShopStore(e=>e.changeSwatches),{swatches:a}=shop.useSwatches(),{data:s}=useSWR(["/query/productOptionName",{}],async()=>fetchProductValueLabel(t),{revalidateOnMount:!0}),o=[];if(a?.forEach(e=>{o.push(e.optionTitle)}),s?.productOptionName?.forEach(e=>{o.includes(e)||(swatchChange=!0,a?.push({optionTitle:e,optionType:"rectangle_list",optionValues:[]}))}),!e)return[];setDefaultSwatches(a,e),isBrowser.default()&&a?.length&&(swatchChange||colorChange)&&(window?.parent?.postMessage?.(JSON.stringify({type:"update-swatches",swatches:a}),"*"),r(a)),swatchChange=!1},getColorDefault=(e,t)=>{let r=e?variantPresets.colorPreset[e.toLocaleLowerCase()]:void 0,a=r?[r]:[],s=t?.[0];return!s&&a.length&&(colorChange=!0),s?[s]:a},getProductOptionsLabelByName=(e,t)=>{let r=[],a=e.find(e=>e.name===t);return a?.values.forEach(e=>{e.label&&!r.includes(e.label)&&r.push(e.label)}),r},getSwatchesOptionsLabel=e=>{let t=[];return e.forEach(e=>{e.label&&!t.includes(e.label)&&t.push(e.label)}),t},setDefaultSwatches=(e,t)=>(e&&e?.map(e=>{let r=getProductOptionsLabelByName(t,e.optionTitle),a=getSwatchesOptionsLabel(e.optionValues);r.forEach(t=>{a.includes(t)||e.optionValues.push({label:t,colors:getColorDefault(t),imageUrl:""})}),e.optionValues=e.optionValues.map(e=>(void 0===e.imageUrl&&(swatchChange=!0),{label:e.label??"",colors:getColorDefault(e.label,e.colors),imageUrl:e.imageUrl??""}))}),e),fetchProductValueLabel=async e=>{let t={},r=async t=>{let r=await e([productValueLabel_generated.ProductOptionNameDocument,t]);return r};return r(t)};exports.default=useInitialSwatchesOptions;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var useSWR=require("swr"),productValueLabel_generated=require("../graphql/queries/product-value-label.generated.js"),variantPresets=require("../components/src/product/helpers/variant-presets.js"),shop=require("./shop.js"),useFetchHandle=require("./useFetchHandle.js"),ShopContext=require("../contexts/ShopContext.js");require("react"),require("react/jsx-runtime"),require("zustand"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("./useCartUI.js"),require("./useStickyStore.js"),require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group"),require("classnames"),require("dayjs");var isBrowser=require("../helpers/is-browser.js");require("../helpers/convert.js");let swatchChange=!1,colorChange=!1;const useInitialSwatchesOptions=e=>{let t=useFetchHandle.useFetchHandle(),r=ShopContext.useShopStore(e=>e.changeSwatches),{swatches:a}=shop.useSwatches(),{data:s}=useSWR(["/query/productOptionName",{productOptionName:[]}],async()=>fetchProductValueLabel(t),{revalidateOnMount:!0}),o=[];if(a?.forEach(e=>{o.push(e.optionTitle)}),s?.productOptionName?.forEach(e=>{o.includes(e)||(swatchChange=!0,a?.push({optionTitle:e,optionType:"rectangle_list",optionValues:[]}))}),!e)return[];setDefaultSwatches(a,e),isBrowser.default()&&a?.length&&(swatchChange||colorChange)&&(window?.parent?.postMessage?.(JSON.stringify({type:"update-swatches",swatches:a}),"*"),r(a)),swatchChange=!1},getColorDefault=(e,t)=>{let r=e?variantPresets.colorPreset[e.toLocaleLowerCase()]:void 0,a=r?[r]:[],s=t?.[0];return!s&&a.length&&(colorChange=!0),s?[s]:a},getProductOptionsLabelByName=(e,t)=>{let r=[],a=e.find(e=>e.name===t);return a?.values.forEach(e=>{e.label&&!r.includes(e.label)&&r.push(e.label)}),r},getSwatchesOptionsLabel=e=>{let t=[];return e.forEach(e=>{e.label&&!t.includes(e.label)&&t.push(e.label)}),t},setDefaultSwatches=(e,t)=>(e&&e?.map(e=>{let r=getProductOptionsLabelByName(t,e.optionTitle),a=getSwatchesOptionsLabel(e.optionValues);r.forEach(t=>{a.includes(t)||e.optionValues.push({label:t,colors:getColorDefault(t),imageUrl:""})}),e.optionValues=e.optionValues.map(e=>(void 0===e.imageUrl&&(swatchChange=!0),{label:e.label??"",colors:getColorDefault(e.label,e.colors),imageUrl:e.imageUrl??""}))}),e),fetchProductValueLabel=async e=>{let t={},r=async t=>{let r=await e([productValueLabel_generated.ProductOptionNameDocument,t]);return r};return r(t)};exports.default=useInitialSwatchesOptions;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var react=require("react"),ProductContext=require("../contexts/ProductContext.js");require("react/jsx-runtime"),require("zustand");var PageContext=require("../contexts/PageContext.js");require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("./useCartUI.js");var useFormatMoney=require("./useFormatMoney.js");require("./useStickyStore.js");var variant=require("../helpers/variant.js"),useShopifyLink=require("./shop/useShopifyLink.js");require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group"),require("@gem-sdk/core"),require("classnames"),require("dayjs");var flattenConnection=require("../helpers/flatten-connection.js");require("../helpers/convert.js");var product=require("../helpers/product.js");const useUniqProductID=()=>ProductContext.useProductStore(e=>e.uiqueId),useProduct=()=>ProductContext.useProductStore(e=>e.product),useFeaturedImageGlobal=()=>ProductContext.useProductStore(e=>e.featuredImageGlobal),useProductProperties=()=>ProductContext.useProductStore(e=>e.properties),useIsSyncProduct=()=>ProductContext.useProductStore(e=>e.isSyncProduct),useProductBundleDiscount=()=>{let e=ProductContext.useProductStore(e=>e.useProductCompareAtPrice),t=ProductContext.useProductStore(e=>e.setUseProductCompareAtPrice);return{useProductCompareAtPrice:e,seUseProductCompareAtPrice:t}},useProductShopifyEditLink=()=>{let e=ProductContext.useProductStore(e=>e.product),t=e?.baseID?.replace("gid://shopify/Product/",""),{linkEditProduct:r}=useShopifyLink.useShopifyLink({productId:t}),u=()=>{r&&window.open(r,"_blank")};return{linkEditProduct:r,redirectProductShopifyLink:u}},useQuantity=()=>{let e=ProductContext.useProductStore(e=>e.quantity),t=ProductContext.useProductStore(e=>e.updatePrice),r=ProductContext.useProductStore(e=>e.decrementQuantity),u=ProductContext.useProductStore(e=>e.incrementQuantity),o=ProductContext.useProductStore(e=>e.setQuantity),s=ProductContext.useProductStore(e=>e.setHasUpdatePriceFollowQuantity),n=ProductContext.useProductStore(e=>e.isSyncProduct),c=ProductContext.useProductStore(e=>e.product),a=c?.id,i=react.useCallback(()=>{o(1)},[o]);return react.useEffect(()=>{if(n){let t=new CustomEvent("set-product-quantity",{bubbles:!0,cancelable:!0,composed:!0,detail:{quantity:e,productId:a}});window.dispatchEvent(t)}},[e,n,a]),react.useMemo(()=>({quantity:e,hasUpdatePrice:t,increment:u,decrement:r,reset:i,setQuantity:o,setUpdatePrice:s}),[r,u,e,i,o,s,t])},useHasPreSelected=()=>{let e=ProductContext.useProductStore(e=>e.hasPreSelected),t=ProductContext.useProductStore(e=>e.setHasPreSelected);return react.useMemo(()=>({hasPreSelected:e,setHasPreSelected:t}),[e,t])},useSelectedOption=()=>{let e=ProductContext.useProductStore(e=>e.setSelectedOption),t=ProductContext.useProductStore(e=>e.selectedOptions),r=ProductContext.useProductStore(e=>e.forceSelectedOption),u=ProductContext.useProductStore(e=>e.isSyncProduct),o=ProductContext.useProductStore(e=>e.isChangeSelectedOption),s=ProductContext.useProductStore(e=>e.setIsChangeSelectedOption),n=react.useCallback((t,r,o,n)=>{if(!n&&u){let e=new CustomEvent("set-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{optionId:t,optionValue:r,productId:o,isManualChange:!0}});window.dispatchEvent(e)}e(t,r),s(!0)},[u,e,s]),c=react.useCallback((e,t,o,s)=>{if(!o&&u){let r=new CustomEvent("force-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{selectedOption:e,productId:t,isManualChange:s}});window.dispatchEvent(r)}r(e)},[r,u]);return react.useMemo(()=>({isChangeSelectedOption:o,selectedOptions:t,setSelectedOption:n,forceSelectedOption:c}),[t,n,c])},useVariants=()=>{let e=ProductContext.useProductStore(e=>e.product?.variants);return flattenConnection.flattenConnection(e)},useVariant=e=>{let t=useVariants();return react.useMemo(()=>t?.find(t=>t?.id===e),[e,t])},useCurrentVariant=()=>{let{selectedOptions:e}=useSelectedOption(),t=useVariants();return react.useMemo(()=>product.getSelectedVariant(t,e),[e,t])},useCurrentVariantInStock=()=>{let e=useCurrentVariant(),t=useProduct();return variant.checkInStock(e,t)},useVariantOutStock=(e,t,r)=>{let{selectedOptions:u}=useSelectedOption(),o=useVariants(),s=r.optionNumber-1;if(r.position<s)return o.some(r=>{if(r){let{selectedOptions:u}=r,o=u?.some(r=>r?.name===e&&r.value===t),s=variant.checkInStock(r);return o&&s}});let n=product.getSelectedVariant(o,{...u,[e]:t});return variant.checkInStock(n)},useCheckAvailableVariantInStock=(e,t)=>{let r=useVariants();return!!r&&r.some(r=>{if(r){let{selectedOptions:u}=r,o=u?.some(r=>r?.name===e&&r.value===t),s=variant.checkInStock(r);return o&&s}return!1})},useProductOfferDiscount=()=>{let e=PageContext.usePageStore(e=>e.productOffers),t=useProduct(),r=useCurrentVariant(),u=e?.find(e=>e?.node?.objectBaseID===t?.baseID)?.node;if(!u||!u.isEnabled)return 0;let o=u?.value;if(u&&"PERCENTAGE"===u.valueType&&o){let e=useFormatMoney.convertDecimalToNumber(r?.price)??0;o=o*e/100}return o||0};exports.useCheckAvailableVariantInStock=useCheckAvailableVariantInStock,exports.useCurrentVariant=useCurrentVariant,exports.useCurrentVariantInStock=useCurrentVariantInStock,exports.useFeaturedImageGlobal=useFeaturedImageGlobal,exports.useHasPreSelected=useHasPreSelected,exports.useIsSyncProduct=useIsSyncProduct,exports.useProduct=useProduct,exports.useProductBundleDiscount=useProductBundleDiscount,exports.useProductOfferDiscount=useProductOfferDiscount,exports.useProductProperties=useProductProperties,exports.useProductShopifyEditLink=useProductShopifyEditLink,exports.useQuantity=useQuantity,exports.useSelectedOption=useSelectedOption,exports.useUniqProductID=useUniqProductID,exports.useVariant=useVariant,exports.useVariantOutStock=useVariantOutStock,exports.useVariants=useVariants;
2
+ "use strict";var react=require("react"),ProductContext=require("../contexts/ProductContext.js");require("react/jsx-runtime"),require("zustand");var PageContext=require("../contexts/PageContext.js");require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("./useCartUI.js");var useFormatMoney=require("./useFormatMoney.js");require("./useStickyStore.js");var variant=require("../helpers/variant.js"),useShopifyLink=require("./shop/useShopifyLink.js");require("../types/builder.js"),require("../types/custom.js"),require("../types/animations.js"),require("react-transition-group"),require("classnames"),require("dayjs");var flattenConnection=require("../helpers/flatten-connection.js");require("../helpers/convert.js");var product=require("../helpers/product.js");const useUniqProductID=()=>ProductContext.useProductStore(e=>e.uiqueId),useProduct=()=>ProductContext.useProductStore(e=>e.product),useFeaturedImageGlobal=()=>ProductContext.useProductStore(e=>e.featuredImageGlobal),useProductProperties=()=>ProductContext.useProductStore(e=>e.properties),useIsSyncProduct=()=>ProductContext.useProductStore(e=>e.isSyncProduct),useProductBundleDiscount=()=>{let e=ProductContext.useProductStore(e=>e.useProductCompareAtPrice),t=ProductContext.useProductStore(e=>e.setUseProductCompareAtPrice);return{useProductCompareAtPrice:e,seUseProductCompareAtPrice:t}},useProductShopifyEditLink=()=>{let e=ProductContext.useProductStore(e=>e.product),t=e?.baseID?.replace("gid://shopify/Product/",""),{linkEditProduct:r}=useShopifyLink.useShopifyLink({productId:t}),u=()=>{r&&window.open(r,"_blank")};return{linkEditProduct:r,redirectProductShopifyLink:u}},useQuantity=()=>{let e=ProductContext.useProductStore(e=>e.quantity),t=ProductContext.useProductStore(e=>e.updatePrice),r=ProductContext.useProductStore(e=>e.decrementQuantity),u=ProductContext.useProductStore(e=>e.incrementQuantity),o=ProductContext.useProductStore(e=>e.setQuantity),s=ProductContext.useProductStore(e=>e.setHasUpdatePriceFollowQuantity),n=ProductContext.useProductStore(e=>e.isSyncProduct),c=ProductContext.useProductStore(e=>e.product),a=c?.id,i=react.useCallback(()=>{o(1)},[o]);return react.useEffect(()=>{if(n){let t=new CustomEvent("set-product-quantity",{bubbles:!0,cancelable:!0,composed:!0,detail:{quantity:e,productId:a}});window.dispatchEvent(t)}},[e,n,a]),react.useMemo(()=>({quantity:e,hasUpdatePrice:t,increment:u,decrement:r,reset:i,setQuantity:o,setUpdatePrice:s}),[r,u,e,i,o,s,t])},useHasPreSelected=()=>{let e=ProductContext.useProductStore(e=>e.hasPreSelected),t=ProductContext.useProductStore(e=>e.setHasPreSelected);return react.useMemo(()=>({hasPreSelected:e,setHasPreSelected:t}),[e,t])},useSelectedOption=()=>{let e=ProductContext.useProductStore(e=>e.setSelectedOption),t=ProductContext.useProductStore(e=>e.selectedOptions),r=ProductContext.useProductStore(e=>e.forceSelectedOption),u=ProductContext.useProductStore(e=>e.isSyncProduct),o=ProductContext.useProductStore(e=>e.isChangeSelectedOption),s=ProductContext.useProductStore(e=>e.setIsChangeSelectedOption),n=react.useCallback((t,r,o,n)=>{if(!n&&u){let e=new CustomEvent("set-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{optionId:t,optionValue:r,productId:o,isManualChange:!0}});window.dispatchEvent(e)}e(t,r),s(!0)},[u,e,s]),c=react.useCallback((e,t,o,s)=>{if(!o&&u){let r=new CustomEvent("force-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{selectedOption:e,productId:t,isManualChange:s}});window.dispatchEvent(r)}r(e)},[r,u]);return react.useMemo(()=>({isChangeSelectedOption:o,selectedOptions:t,setSelectedOption:n,forceSelectedOption:c}),[t,n,c])},useVariants=()=>{let e=ProductContext.useProductStore(e=>e.product?.variants);return flattenConnection.flattenConnection(e)},useVariant=e=>{let t=useVariants();return react.useMemo(()=>t?.find(t=>t?.id===e),[e,t])},useCurrentVariant=()=>{let{selectedOptions:e}=useSelectedOption(),t=useVariants();return react.useMemo(()=>product.getSelectedVariant(t,e),[e,t])},useCurrentVariantInStock=()=>{let e=useCurrentVariant(),t=useProduct();return variant.checkInStock(e,t)},useVariantOutStock=(e,t,r)=>{let{selectedOptions:u}=useSelectedOption(),o=useVariants(),s=r.optionNumber-1;if(r.position<s)return o.some(r=>{if(r){let{selectedOptions:u}=r,o=u?.some(r=>r?.name===e&&r.value===t),s=variant.checkInStock(r);return o&&s}});let n=product.getSelectedVariant(o,{...u,[e]:t});return variant.checkInStock(n)},useCheckAvailableVariantInStock=(e,t)=>{let r=useVariants();return!!r&&r.some(r=>{if(r){let{selectedOptions:u}=r,o=u?.some(r=>r?.name===e&&r.value===t),s=variant.checkInStock(r);return o&&s}return!1})},useProductOfferDiscount=()=>{let e=PageContext.usePageStore(e=>e.productOffers),t=useProduct(),r=useCurrentVariant(),u=e?.find(e=>e?.node?.objectBaseID===t?.baseID)?.node;if(!u||!u.isEnabled)return 0;let o=u?.value;if(u&&"PERCENTAGE"===u.valueType&&o){let e=useFormatMoney.convertDecimalToNumber(r?.price)??0;o=o*e/100}return o||0};exports.useCheckAvailableVariantInStock=useCheckAvailableVariantInStock,exports.useCurrentVariant=useCurrentVariant,exports.useCurrentVariantInStock=useCurrentVariantInStock,exports.useFeaturedImageGlobal=useFeaturedImageGlobal,exports.useHasPreSelected=useHasPreSelected,exports.useIsSyncProduct=useIsSyncProduct,exports.useProduct=useProduct,exports.useProductBundleDiscount=useProductBundleDiscount,exports.useProductOfferDiscount=useProductOfferDiscount,exports.useProductProperties=useProductProperties,exports.useProductShopifyEditLink=useProductShopifyEditLink,exports.useQuantity=useQuantity,exports.useSelectedOption=useSelectedOption,exports.useUniqProductID=useUniqProductID,exports.useVariant=useVariant,exports.useVariantOutStock=useVariantOutStock,exports.useVariants=useVariants;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as t,Fragment as e}from"react/jsx-runtime";import"zustand";import"react";import{usePageStore as r}from"../contexts/PageContext.js";import"react-transition-group";import"@gem-sdk/core";import"swr";import"swr/infinite";import"classnames";import"dayjs";import{useInteraction as i}from"../helpers/interaction/index.js";import"../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";let InteractionSuffix=({uid:o})=>{let{closeSelectOnPage:p,selectInteractionElement:s}=i(),n=r(t=>t.interactionData?.settingType||""),a=r(t=>t.interactionData?.isSelectOnPage),m=t=>{s({$target:t.target,componentUid:o,settingType:n}),p()};return t(e,{children:a&&t("button",{className:"gp-bg-[#F4F4F4] gp-px-2 gp-h-[24px] gp-py-0.5 gp-rounded-lg gp-text-[#212121] gp-text-xs gp-font-medium gp-hidden interaction-use-custom-element ",onClick:m,"data-setup-interaction":!0,children:"TRIGGER"===n?"Set as trigger":"Set as target"})})};export{InteractionSuffix};
2
+ import{jsx as t,Fragment as e}from"react/jsx-runtime";import"zustand";import"react";import{usePageStore as i}from"../contexts/PageContext.js";import"react-transition-group";import"swr";import"swr/infinite";import"classnames";import"dayjs";import{useInteraction as r}from"../helpers/interaction/index.js";import"../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";let InteractionSuffix=({uid:o})=>{let{closeSelectOnPage:p,selectInteractionElement:n}=r(),s=i(t=>t.interactionData?.settingType||""),a=i(t=>t.interactionData?.isSelectOnPage),m=t=>{n({$target:t.target,componentUid:o,settingType:s}),p()};return t(e,{children:a&&t("button",{className:"gp-bg-[#F4F4F4] gp-px-2 gp-h-[24px] gp-py-0.5 gp-rounded-lg gp-text-[#212121] gp-text-xs gp-font-medium gp-hidden interaction-use-custom-element ",onClick:m,"data-setup-interaction":!0,children:"TRIGGER"===s?"Set as trigger":"Set as target"})})};export{InteractionSuffix};
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import{makeStyleResponsive as e}from"../helpers/make-style.js";import"react";import"react/jsx-runtime";import"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"@gem-sdk/core";import{disableWrap as t,customRenderChildren as n}from"./constant.js";import"classnames";import"dayjs";import{composeAdvanceStyle as r}from"../helpers/compose-advance-style.js";import{baseAssetURL as i,isLocalEnv as s}from"../helpers/convert.js";import{RenderIf as d,template as a}from"../helpers/render.js";let componentsRenderWithParentId=["CarouselItem","CarouselItemV3"],componentTexts=["Text","Heading"],componentIconList=["IconListV2","IconList"],componentUsingAdvanced=["IconList","ProductVariants"],Render=({uid:e,builder:i,components:s,parentId:l,extraFiles:o={},pageContext:p,additionalSettings:c,...u})=>{let m=i[e],g=s[m?.tag];if(!g||!m||m?.type==="section")return{liquid:"",extraFiles:o};{let o={extraFiles:{}},h=r(m.advanced,m.tag),b="";b=t.includes(m.tag)?d(m?.childrens?.length,()=>g({builderProps:{uid:e,builderData:m},styles:m.styles,setting:m.settings,style:h,advanced:m.advanced,parentId:componentsRenderWithParentId.includes(m.tag)?l:null,pageContext:p,...c,...u,builderAttrs:{...u.builderAttrs},rawChildren:m.childrens.map(e=>({...i[e],uid:e,builder:i,components:s,customProps:o,pageContext:p,...c})),children:n.includes(m.tag)?"":WrapRenderChildren({uid:e,customProps:o},m.childrens.map(e=>RenderChildren({uid:e,builder:i,components:s,customProps:o,parentTag:m.tag,pageContext:p,...c})))}),()=>g({builderProps:{uid:e,builderData:m},styles:m.styles,setting:m.settings,advanced:m.advanced,style:h,isText:!!componentTexts.includes(m.tag)||null,parentId:componentsRenderWithParentId.includes(m.tag)?l:null,pageContext:p,...u,builderAttrs:{...u.builderAttrs}})):a`<div gp-el-wrapper style="${componentIconList.includes(m.tag)?"":h}" class="${m.uid} ${m?.childrens?.length||"IconListItemHoz"!==m.tag?"":"hidden"}">
2
+ import{makeStyleResponsive as e}from"../helpers/make-style.js";import"react";import"react/jsx-runtime";import"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import{disableWrap as t,customRenderChildren as n}from"./constant.js";import"classnames";import"dayjs";import{composeAdvanceStyle as r}from"../helpers/compose-advance-style.js";import{baseAssetURL as i,isLocalEnv as s}from"../helpers/convert.js";import{RenderIf as d,template as a}from"../helpers/render.js";let componentsRenderWithParentId=["CarouselItem","CarouselItemV3"],componentTexts=["Text","Heading"],componentIconList=["IconListV2","IconList"],componentUsingAdvanced=["IconList","ProductVariants"],Render=({uid:e,builder:i,components:s,parentId:l,extraFiles:o={},pageContext:p,additionalSettings:c,...u})=>{let m=i[e],g=s[m?.tag];if(!g||!m||m?.type==="section")return{liquid:"",extraFiles:o};{let o={extraFiles:{}},h=r(m.advanced,m.tag),b="";b=t.includes(m.tag)?d(m?.childrens?.length,()=>g({builderProps:{uid:e,builderData:m},styles:m.styles,setting:m.settings,style:h,advanced:m.advanced,parentId:componentsRenderWithParentId.includes(m.tag)?l:null,pageContext:p,...c,...u,builderAttrs:{...u.builderAttrs},rawChildren:m.childrens.map(e=>({...i[e],uid:e,builder:i,components:s,customProps:o,pageContext:p,...c})),children:n.includes(m.tag)?"":WrapRenderChildren({uid:e,customProps:o},m.childrens.map(e=>RenderChildren({uid:e,builder:i,components:s,customProps:o,parentTag:m.tag,pageContext:p,...c})))}),()=>g({builderProps:{uid:e,builderData:m},styles:m.styles,setting:m.settings,advanced:m.advanced,style:h,isText:!!componentTexts.includes(m.tag)||null,parentId:componentsRenderWithParentId.includes(m.tag)?l:null,pageContext:p,...u,builderAttrs:{...u.builderAttrs}})):a`<div gp-el-wrapper style="${componentIconList.includes(m.tag)?"":h}" class="${m.uid} ${m?.childrens?.length||"IconListItemHoz"!==m.tag?"":"hidden"}">
3
3
  ${d(m?.childrens?.length,()=>g({builderProps:{uid:e,builderData:m},styles:m.styles,setting:m.settings,advanced:{...componentUsingAdvanced.includes(m.tag)?m?.advanced:{},cssClass:m?.advanced?.cssClass},pageContext:p,...c,...u,builderAttrs:{...u.builderAttrs},rawChildren:m.childrens.map(e=>({...i[e],uid:e,builder:i,components:s,customProps:o,pageContext:p,...c})),children:n.includes(m.tag)?"":WrapRenderChildren({uid:e,customProps:o},m.childrens.map(e=>RenderChildren({uid:e,builder:i,components:s,customProps:o,parentTag:m.tag,pageContext:p,...c})))}),()=>g({builderProps:{uid:e,builderData:m},styles:m.styles,setting:m.settings,advanced:{...componentUsingAdvanced.includes(m.tag)?m?.advanced:{},cssClass:m?.advanced?.cssClass},pageContext:p,...c,isText:!!componentTexts.includes(m.tag)||null,style:componentIconList.includes(m.tag)?h:null,...u,builderAttrs:{...u.builderAttrs}}))}
4
4
  </div>`;let{cssCode:f,jsCode:v}=RenderCustomCode(m);return f&&(b+=f),v&&(b+=v),{liquid:b=appendAnimation(m,b),extraFiles:o.extraFiles}}},RenderCustomCode=e=>{let{css:t,javascript:n,rootClassName:r}=e.advanced?.editorData||{},i=t?.replaceAll(r,e.uid),s=n?.replaceAll(r,e.uid),l=d(!!t,a`
5
5
  <style id="${`custom-css-${e?.uid}`}">
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- import{jsxs as t,Fragment as r,jsx as o}from"react/jsx-runtime";import e from"next/head";import s from"next/script";import{useMemo as i}from"react";import"zustand";import"react-transition-group";import"@gem-sdk/core";import"swr";import"swr/infinite";import{useEditorMode as m}from"../hooks/shop.js";import"classnames";import"dayjs";import"../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";let RenderCustomCode=({uid:p,advanced:a})=>{let n=m(),{css:l,javascript:c,rootClassName:d}=a?.editorData||{},u=l?.replaceAll(d,p),h=c?.replaceAll(d,p),j={css:`custom-css-${p}`,javascript:`custom-js-${p}`},y=i(()=>`
2
+ import{jsxs as t,Fragment as r,jsx as o}from"react/jsx-runtime";import s from"next/head";import e from"next/script";import{useMemo as i}from"react";import"zustand";import"react-transition-group";import"swr";import"swr/infinite";import{useEditorMode as m}from"../hooks/shop.js";import"classnames";import"dayjs";import"../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";let RenderCustomCode=({uid:p,advanced:a})=>{let n=m(),{css:l,javascript:c,rootClassName:d}=a?.editorData||{},u=l?.replaceAll(d,p),h=c?.replaceAll(d,p),j={css:`custom-css-${p}`,javascript:`custom-js-${p}`},y=i(()=>`
3
3
  try {
4
4
  ${h}
5
5
  } catch(err){}
6
- `,[h]);return t(r,{children:[o(e,{children:!!l&&o("style",{id:j.css,dangerouslySetInnerHTML:{__html:u}})}),!!c&&"edit"!==n&&o(s,{id:j.javascript,dangerouslySetInnerHTML:{__html:y}})]})};export{RenderCustomCode as default};
6
+ `,[h]);return t(r,{children:[o(s,{children:!!l&&o("style",{id:j.css,dangerouslySetInnerHTML:{__html:u}})}),!!c&&"edit"!==n&&o(e,{id:j.javascript,dangerouslySetInnerHTML:{__html:y}})]})};export{RenderCustomCode as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsxs as e,jsx as t,Fragment as o}from"react/jsx-runtime";import{useState as p,useRef as r,useCallback as n,useEffect as i}from"react";import{AIIcon as g}from"./icons/AIIcon.js";import{CloseIcon as s}from"./icons/CloseIcon.js";import{ShowMoreIcon as a}from"./icons/ShowMoreIcon.js";import{WarningIcon as l}from"./icons/WarningIcon.js";import{UpgradeIcon as m}from"./icons/UpgradeIcon.js";import{PickProduct as c}from"./components/PickProduct.js";import{ToneAndVoice as d}from"./components/ToneAndVoice.js";import u from"classnames";import{useListenEventGenerate as h}from"./hooks/useListenEventGenerate.js";import{useGettingGenerateRequest as f}from"./hooks/useGettingGenerateRequest.js";import{useFlipPopup as x}from"./hooks/useFlipPopup.js";import{useCheckingProductInside as b}from"./hooks/useCheckingProductInside.js";import"zustand";import{useI18nStore as v}from"../../contexts/I18nContext.js";import"react-transition-group";import"@gem-sdk/core";import{useShopStore as w}from"../../contexts/ShopContext.js";import j from"dayjs";import"swr";import"../../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let AIContentGenerator=({...N})=>{let[C,y]=p(!1),[k,I]=p(!1),A=r(null),G=r(null),S=r(null),B=r(null),F=j().add(1,"month").startOf("month").format("DD MMM"),{t:P}=v(),{popupPositionX:D,popupPositionY:E,isValidating:M,bodyMaxHeight:L}=x(C,{genTool:A,genPopup:G,genPopupHeader:S,genButtonWrapper:B}),{isGenerating:U,onGenerate:z,onOpenProductElementSettings:V,goToPricing:W}=h({uid:N.uid,tag:String(N.tag)}),{getRequestBody:H,prompt:Q,changeProductName:R,changePrompt:T,changeTone:Y}=f(),{productElement:$,checkSectionHasProduct:q}=b(A),O=w(e=>e.generateContentLimitation),J=()=>{y(!C)},K=()=>{y(!1)},X=e=>{T(e.target.value)},Z=n(e=>{let t=e.detail;if(t?.componentUid!==N.uid){K();return}q()},[N.uid,q]),_=()=>{I(!k)},ee=()=>{let e=H();z(e),K()},et=()=>{V($.uid??"")};return i(()=>{U||K()},[U]),i(()=>{if($.productId){I(!1);return}I(!0)},[$]),i(()=>(window.addEventListener("editor:active-component",Z),()=>{window.removeEventListener("editor:active-component",Z)}),[Z]),e("div",{className:"gp-gen-content-toolbar-wrapper gp-relative",ref:A,children:[t("div",{className:"gp-gen-content-btn gp-border-r gp-pr-1 gp-mr-1",children:e("button",{className:u({"gp-toolbar-ai-active":C},"gp-p-1 gp-text-xs gp-flex gp-gap-1 gp-items-center gp-rounded-md hover:gp-bg-[#3B3B3B] gp-font-medium"),onClick:J,children:[t(g,{}),P("AI Content")]})}),e("div",{className:u({"gp-hidden":!C,"gp-right-0":"Section"===N.tag||"right"===D,"gp-left-0":"left"===D&&"Section"!==N.tag,"gp-top-8":"top"===E,"gp-bottom-8":"bottom"===E,"!gp-visible":!M},"gp-absolute gp-invisible gp-rounded-lg gp-bg-[#151515] gp-w-[312px] !gp-max-w-[312px] !gp-cursor-default"),ref:G,children:[e("div",{className:"gp-flex gp-items-center gp-justify-between gp-px-4 gp-py-[10px]",ref:S,children:[t("span",{className:"gp-font-medium gp-text-sm",children:"Write with GemAI"}),t("button",{className:"gp-p-2 gp-cursor-pointer hover:gp-bg-[#3B3B3B] gp-rounded-md",onClick:K,children:t(s,{})})]}),t("div",{className:u({"gp-overflow-auto":null!==L},"gp-pt-2 gp-text-left gp-px-4 scrollbar:gp-w-1 scrollbar-thumb:gp-bg-[#999] scrollbar-thumb:gp-rounded-xl"),style:{maxHeight:null!==L?`${L}px`:"auto"},children:O?.isAllow?e(o,{children:[t("div",{className:"gp-mb-4",children:t("span",{className:"gp-text-xs",children:"What would you like to describe here?"})}),t("div",{className:"gp-mb-4 gp-flex",children:t("textarea",{className:"gp-p-2 gp-bg-[#333333] gp-rounded-lg gp-w-full gp-text-xs gp-text-white placeholder:gp-text-[#AAAAAA] gp-resize-none focus-visible:gp-outline-none",placeholder:"e.g: generate feature benefits",rows:4,value:Q,onChange:X})}),e("div",{className:u({"gp-hidden":!k},"gp-mb-4 gp-gap-4 gp-flex gp-flex-col"),children:[t(d,{changeToneAndVoice:Y}),t(c,{changeProductName:R,openProductSetting:et,productId:$.productId})]}),t("div",{children:e("button",{className:"gp-flex gp-justify-center gp-items-center gp-w-full gp-bg-[#333333] gp-py-2 gp-rounded-lg gp-gap-2 gp-text-xs gp-font-medium",onClick:_,children:["Show more",t("span",{className:u({"gp-rotate-180":k}),children:t(a,{})})]})})]}):e("div",{className:"gp-flex gp-gap-2 gp-p-3 gp-rounded-xl gp-bg-[#FDB913] gp-bg-opacity-20",children:[t("div",{className:"gp-flex-none gp-w-7 gp-h-7 gp-rounded-lg gp-bg-[#FFB800] gp-flex gp-justify-center gp-items-center",children:t(l,{})}),e("p",{className:"gp-text-xs gp-whitespace-normal",children:["You've reached ",O?.maxGenerateCount,"/",O?.maxGenerateCount," rewrites of your AI generative this month.",t("br",{}),"Resets on ",F,"."]})]})}),t("div",{className:"gp-p-4",ref:B,children:O?.isAllow?t("button",{className:"gp-rounded-lg gp-w-full gp-text-xs gp-font-medium gp-bg-gradient-to-tl gp-from-[#3C38E1] gp-to-[#874CFD] gp-py-2",onClick:ee,children:U?"Generating...":"Generate"}):e("button",{className:"gp-flex gp-items-center gp-gap-2 gp-justify-center gp-rounded-lg gp-w-full gp-text-xs gp-font-medium gp-bg-gradient-to-tl gp-from-[#3C38E1] gp-to-[#874CFD] gp-py-2",onClick:W,children:[t(m,{}),O?.nextQuota?`Upgrade to generate ${O?.nextQuota} rewrites`:"You have reached limit this month"]})})]})]})};export{AIContentGenerator};
2
+ import{jsxs as e,jsx as t,Fragment as o}from"react/jsx-runtime";import{useState as p,useRef as r,useCallback as n,useEffect as i}from"react";import{AIIcon as g}from"./icons/AIIcon.js";import{CloseIcon as s}from"./icons/CloseIcon.js";import{ShowMoreIcon as a}from"./icons/ShowMoreIcon.js";import{WarningIcon as l}from"./icons/WarningIcon.js";import{UpgradeIcon as m}from"./icons/UpgradeIcon.js";import{PickProduct as c}from"./components/PickProduct.js";import{ToneAndVoice as d}from"./components/ToneAndVoice.js";import u from"classnames";import{useListenEventGenerate as h}from"./hooks/useListenEventGenerate.js";import{useGettingGenerateRequest as f}from"./hooks/useGettingGenerateRequest.js";import{useFlipPopup as x}from"./hooks/useFlipPopup.js";import{useCheckingProductInside as b}from"./hooks/useCheckingProductInside.js";import"zustand";import{useI18nStore as v}from"../../contexts/I18nContext.js";import"react-transition-group";import{useShopStore as w}from"../../contexts/ShopContext.js";import j from"dayjs";import"swr";import"../../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let AIContentGenerator=({...N})=>{let[C,y]=p(!1),[I,k]=p(!1),A=r(null),G=r(null),S=r(null),B=r(null),F=j().add(1,"month").startOf("month").format("DD MMM"),{t:P}=v(),{popupPositionX:D,popupPositionY:E,isValidating:M,bodyMaxHeight:L}=x(C,{genTool:A,genPopup:G,genPopupHeader:S,genButtonWrapper:B}),{isGenerating:U,onGenerate:z,onOpenProductElementSettings:V,goToPricing:W}=h({uid:N.uid,tag:String(N.tag)}),{getRequestBody:H,prompt:Q,changeProductName:R,changePrompt:T,changeTone:Y}=f(),{productElement:$,checkSectionHasProduct:q}=b(A),O=w(e=>e.generateContentLimitation),J=()=>{y(!C)},K=()=>{y(!1)},X=e=>{T(e.target.value)},Z=n(e=>{let t=e.detail;if(t?.componentUid!==N.uid){K();return}q()},[N.uid,q]),_=()=>{k(!I)},ee=()=>{let e=H();z(e),K()},et=()=>{V($.uid??"")};return i(()=>{U||K()},[U]),i(()=>{if($.productId){k(!1);return}k(!0)},[$]),i(()=>(window.addEventListener("editor:active-component",Z),()=>{window.removeEventListener("editor:active-component",Z)}),[Z]),e("div",{className:"gp-gen-content-toolbar-wrapper gp-relative",ref:A,children:[t("div",{className:"gp-gen-content-btn gp-border-r gp-pr-1 gp-mr-1",children:e("button",{className:u({"gp-toolbar-ai-active":C},"gp-p-1 gp-text-xs gp-flex gp-gap-1 gp-items-center gp-rounded-md hover:gp-bg-[#3B3B3B] gp-font-medium"),onClick:J,children:[t(g,{}),P("AI Content")]})}),e("div",{className:u({"gp-hidden":!C,"gp-right-0":"Section"===N.tag||"right"===D,"gp-left-0":"left"===D&&"Section"!==N.tag,"gp-top-8":"top"===E,"gp-bottom-8":"bottom"===E,"!gp-visible":!M},"gp-absolute gp-invisible gp-rounded-lg gp-bg-[#151515] gp-w-[312px] !gp-max-w-[312px] !gp-cursor-default"),ref:G,children:[e("div",{className:"gp-flex gp-items-center gp-justify-between gp-px-4 gp-py-[10px]",ref:S,children:[t("span",{className:"gp-font-medium gp-text-sm",children:"Write with GemAI"}),t("button",{className:"gp-p-2 gp-cursor-pointer hover:gp-bg-[#3B3B3B] gp-rounded-md",onClick:K,children:t(s,{})})]}),t("div",{className:u({"gp-overflow-auto":null!==L},"gp-pt-2 gp-text-left gp-px-4 scrollbar:gp-w-1 scrollbar-thumb:gp-bg-[#999] scrollbar-thumb:gp-rounded-xl"),style:{maxHeight:null!==L?`${L}px`:"auto"},children:O?.isAllow?e(o,{children:[t("div",{className:"gp-mb-4",children:t("span",{className:"gp-text-xs",children:"What would you like to describe here?"})}),t("div",{className:"gp-mb-4 gp-flex",children:t("textarea",{className:"gp-p-2 gp-bg-[#333333] gp-rounded-lg gp-w-full gp-text-xs gp-text-white placeholder:gp-text-[#AAAAAA] gp-resize-none focus-visible:gp-outline-none",placeholder:"e.g: generate feature benefits",rows:4,value:Q,onChange:X})}),e("div",{className:u({"gp-hidden":!I},"gp-mb-4 gp-gap-4 gp-flex gp-flex-col"),children:[t(d,{changeToneAndVoice:Y}),t(c,{changeProductName:R,openProductSetting:et,productId:$.productId})]}),t("div",{children:e("button",{className:"gp-flex gp-justify-center gp-items-center gp-w-full gp-bg-[#333333] gp-py-2 gp-rounded-lg gp-gap-2 gp-text-xs gp-font-medium",onClick:_,children:["Show more",t("span",{className:u({"gp-rotate-180":I}),children:t(a,{})})]})})]}):e("div",{className:"gp-flex gp-gap-2 gp-p-3 gp-rounded-xl gp-bg-[#FDB913] gp-bg-opacity-20",children:[t("div",{className:"gp-flex-none gp-w-7 gp-h-7 gp-rounded-lg gp-bg-[#FFB800] gp-flex gp-justify-center gp-items-center",children:t(l,{})}),e("p",{className:"gp-text-xs gp-whitespace-normal",children:["You've reached ",O?.maxGenerateCount,"/",O?.maxGenerateCount," rewrites of your AI generative this month.",t("br",{}),"Resets on ",F,"."]})]})}),t("div",{className:"gp-p-4",ref:B,children:O?.isAllow?t("button",{className:"gp-rounded-lg gp-w-full gp-text-xs gp-font-medium gp-bg-gradient-to-tl gp-from-[#3C38E1] gp-to-[#874CFD] gp-py-2",onClick:ee,children:U?"Generating...":"Generate"}):e("button",{className:"gp-flex gp-items-center gp-gap-2 gp-justify-center gp-rounded-lg gp-w-full gp-text-xs gp-font-medium gp-bg-gradient-to-tl gp-from-[#3C38E1] gp-to-[#874CFD] gp-py-2",onClick:W,children:[t(m,{}),O?.nextQuota?`Upgrade to generate ${O?.nextQuota} rewrites`:"You have reached limit this month"]})})]})]})};export{AIContentGenerator};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as r,useRef as p,useMemo as a,useEffect as o}from"react";import{SearchIcon as s}from"../icons/SearchIcon.js";import{useListProductQuery as i}from"../../../hooks/shop/use-products-query.js";import l from"classnames";import"zustand";import"react-transition-group";import"@gem-sdk/core";import"swr";import"dayjs";import"../../../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import{useProductQuery as c}from"../../../hooks/shop/use-product-query.js";import"vanilla-lazyload";import"../../../hooks/useCartUI.js";import"../../../hooks/useStickyStore.js";import"../../../types/builder.js";import"../../../types/custom.js";import"../../../types/animations.js";let PickProduct=g=>{let[d,n]=r(g.productId?void 0:{first:8}),{data:m,isLoading:u,isValidating:h,size:f,setSize:x}=i(d,{revalidateFirstPage:!1}),{data:b}=c(g.productId),[N,v]=r(),[I,k]=r(!1),w=p(null),j=p(null),y=()=>{g.productId||k(!I)},P=e=>{v(e),k(!1)},S=e=>{w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{let t=e.target.value??"";if(t){n({first:8,where:{titleContainsFold:t}});return}n({first:8})},200)},C=()=>{g.openProductSetting()},z=e=>{let t=e.target;t.scrollHeight-t.scrollTop===t.clientHeight&&(j.current&&clearTimeout(j.current),j.current=setTimeout(()=>{x(f+1)},50))},T=a(()=>m?.reduce((e,t)=>[...e,...t.products?.edges??[]],[])??[],[m]);o(()=>{if(T.length&&!N&&!g.productId){let e=T[0]?.node;e&&v({id:e?.id,name:e?.title,image:e.featuredImage?.src})}},[T,N,g.productId]),o(()=>{N&&N.name&&g.changeProductName(N.name)},[N,g]),o(()=>{b&&v({id:b.id,name:b.title,image:b.featuredImage?.src})},[b]);let F="https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif";return e("div",{className:"gp-flex gp-flex-col gp-gap-2",children:[t("p",{className:"gp-py-2 gp-text-xs",children:"Product"}),e("div",{className:"gp-relative",children:[!u||N?e("button",{className:l({"gp-cursor-default":g.productId},"gp-flex gp-gap-2 gp-items-center gp-w-full gp-p-2 gp-rounded-lg gp-bg-[#333333] gp-text-xs"),onClick:y,children:[t("img",{className:"gp-rounded-lg gp-w-10 gp-h-10",src:N?.image||F,alt:"product_image"}),t("span",{className:"gp-truncate gp-max-w-[210px]",children:N?.name})]}):t("div",{children:t("span",{className:"gp-text-xs",children:"Getting products..."})}),g.productId&&t("div",{className:"gp-mt-2 gp-text-xs",children:e("p",{children:["You can manage it in"," ",t("button",{className:"gp-text-[#8AA4FF] gp-cursor-pointer hover:gp-underline",onClick:C,children:"Product element"})]})}),I&&e("div",{className:"gp-absolute gp-w-full gp-top-16 gp-left-0 gp-rounded-lg gp-bg-[#333333] gp-p-2 gp-flex gp-flex-col gp-gap-2 gp-z-10",children:[e("div",{className:"gp-flex gp-items-center gp-gap-2 gp-p-2",children:[t(s,{}),t("input",{className:"gp-bg-transparent gp-w-full focus-visible:!gp-outline-none gp-text-xs",placeholder:"Search product...",onChange:S})]}),e("div",{className:"gp-max-h-[168px] gp-overflow-auto scrollbar:gp-w-1 scrollbar-thumb:gp-bg-[#999] scrollbar-thumb:gp-rounded-xl",onScroll:z,children:[T?.map(r=>e("button",{className:"gp-flex gp-p-2 hover:gp-bg-[#3B3B3B] gp-rounded-lg gp-cursor-pointer gp-gap-2 gp-items-center",onClick:()=>{P({id:r.node?.id,name:r.node?.title,image:r.node?.featuredImage?.src})},children:[t("img",{className:"gp-rounded-lg gp-w-10 gp-h-10",src:r.node?.featuredImage?.src||F,alt:"product_image"}),t("span",{className:"gp-truncate gp-max-w-[210px] gp-text-xs",children:r.node?.title})]},r.node?.id)),u||h&&t("div",{className:"gp-p-2",children:t("span",{className:"gp-text-xs",children:"Getting products..."})})]})]})]})]})};export{PickProduct};
2
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as r,useRef as p,useMemo as a,useEffect as o}from"react";import{SearchIcon as s}from"../icons/SearchIcon.js";import{useListProductQuery as i}from"../../../hooks/shop/use-products-query.js";import l from"classnames";import"zustand";import"react-transition-group";import"swr";import"dayjs";import"../../../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import{useProductQuery as c}from"../../../hooks/shop/use-product-query.js";import"vanilla-lazyload";import"../../../hooks/useCartUI.js";import"../../../hooks/useStickyStore.js";import"../../../types/builder.js";import"../../../types/custom.js";import"../../../types/animations.js";let PickProduct=g=>{let[n,d]=r(g.productId?void 0:{first:8}),{data:m,isLoading:u,isValidating:h,size:f,setSize:x}=i(n,{revalidateFirstPage:!1}),{data:b}=c(g.productId),[N,v]=r(),[I,w]=r(!1),j=p(null),k=p(null),y=()=>{g.productId||w(!I)},P=e=>{v(e),w(!1)},S=e=>{j.current&&clearTimeout(j.current),j.current=setTimeout(()=>{let t=e.target.value??"";if(t){d({first:8,where:{titleContainsFold:t}});return}d({first:8})},200)},C=()=>{g.openProductSetting()},z=e=>{let t=e.target;t.scrollHeight-t.scrollTop===t.clientHeight&&(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{x(f+1)},50))},T=a(()=>m?.reduce((e,t)=>[...e,...t.products?.edges??[]],[])??[],[m]);o(()=>{if(T.length&&!N&&!g.productId){let e=T[0]?.node;e&&v({id:e?.id,name:e?.title,image:e.featuredImage?.src})}},[T,N,g.productId]),o(()=>{N&&N.name&&g.changeProductName(N.name)},[N,g]),o(()=>{b&&v({id:b.id,name:b.title,image:b.featuredImage?.src})},[b]);let F="https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif";return e("div",{className:"gp-flex gp-flex-col gp-gap-2",children:[t("p",{className:"gp-py-2 gp-text-xs",children:"Product"}),e("div",{className:"gp-relative",children:[!u||N?e("button",{className:l({"gp-cursor-default":g.productId},"gp-flex gp-gap-2 gp-items-center gp-w-full gp-p-2 gp-rounded-lg gp-bg-[#333333] gp-text-xs"),onClick:y,children:[t("img",{className:"gp-rounded-lg gp-w-10 gp-h-10",src:N?.image||F,alt:"product_image"}),t("span",{className:"gp-truncate gp-max-w-[210px]",children:N?.name})]}):t("div",{children:t("span",{className:"gp-text-xs",children:"Getting products..."})}),g.productId&&t("div",{className:"gp-mt-2 gp-text-xs",children:e("p",{children:["You can manage it in"," ",t("button",{className:"gp-text-[#8AA4FF] gp-cursor-pointer hover:gp-underline",onClick:C,children:"Product element"})]})}),I&&e("div",{className:"gp-absolute gp-w-full gp-top-16 gp-left-0 gp-rounded-lg gp-bg-[#333333] gp-p-2 gp-flex gp-flex-col gp-gap-2 gp-z-10",children:[e("div",{className:"gp-flex gp-items-center gp-gap-2 gp-p-2",children:[t(s,{}),t("input",{className:"gp-bg-transparent gp-w-full focus-visible:!gp-outline-none gp-text-xs",placeholder:"Search product...",onChange:S})]}),e("div",{className:"gp-max-h-[168px] gp-overflow-auto scrollbar:gp-w-1 scrollbar-thumb:gp-bg-[#999] scrollbar-thumb:gp-rounded-xl",onScroll:z,children:[T?.map(r=>e("button",{className:"gp-flex gp-p-2 hover:gp-bg-[#3B3B3B] gp-rounded-lg gp-cursor-pointer gp-gap-2 gp-items-center",onClick:()=>{P({id:r.node?.id,name:r.node?.title,image:r.node?.featuredImage?.src})},children:[t("img",{className:"gp-rounded-lg gp-w-10 gp-h-10",src:r.node?.featuredImage?.src||F,alt:"product_image"}),t("span",{className:"gp-truncate gp-max-w-[210px] gp-text-xs",children:r.node?.title})]},r.node?.id)),u||h&&t("div",{className:"gp-p-2",children:t("span",{className:"gp-text-xs",children:"Getting products..."})})]})]})]})]})};export{PickProduct};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as t,Fragment as e,jsxs as r}from"react/jsx-runtime";import{useRef as o,useState as n,useCallback as i,useEffect as a}from"react";import"zustand";import{useBuilderPreviewStore as s}from"../../contexts/BuilderPreviewContext.js";import{DEVICES as l}from"../../constants/device.js";import"react-transition-group";import"@gem-sdk/core";import"swr";import"swr/infinite";import{usePageType as u}from"../../hooks/shop.js";import"classnames";import"dayjs";import"../../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";function Spacing(c){let d=s(t=>t.isThemeSectionEditor),m=u(),p=o(null),g=o(null),v=o(null),b=o(!1),f=o(0),w=o(0),h=o(null),[y,E]=n(0),[S,j]=n(!1),L=o(null),C=t=>{let e=t.clientY,r=Math.ceil(e-f.current),o=w.current||0,n=o+r>=0?`${o+r}px`:"0px";return{newValue:n}},x=t=>{if(p.current&&g.current){let{newValue:e}=C(t);g.current.style.height=e,p.current.style.top=e;let r=p.current.closest("[data-toolbar-wrap]");r&&(r.style.marginBottom=e,U(e))}},T=()=>{z()},k=()=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{b.current=!0;let t=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!0}});window.dispatchEvent(t),document.addEventListener("mousemove",x),document.addEventListener("mouseup",T)},100)},z=()=>{v.current&&clearTimeout(v.current),b.current=!1;let t=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!1}});if(window.dispatchEvent(t),p.current){let t=getComputedStyle(p.current),e=t.top,r=new CustomEvent("editor:toolbar:change-margin-bottom",{bubbles:!0,detail:{componentUid:c.uid,marginBottom:e}});window.dispatchEvent(r)}let e=p.current?.closest("[data-toolbar-wrap]");e&&(e.style.marginBottom=""),document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",T)},P=(t,e)=>{let r=t.children.length;if(r)for(let o=0;o<r;o++){let r=t.children[o];if(r){let t=r.getAttribute(e);if(t)return r}}},A=t=>{let e=t.getAttribute("data-component-tag");return"Row"===e||"Product"===e},B=i(t=>{let e=p.current?.closest("[data-toolbar-wrap]");if(!e)return;let r=P(e,"data-toolbar");if(!r)return;let o=r.getAttribute("data-toolbar-active");if(!o)return;let n=getComputedStyle(e),i=P(e,"data-spacing"),a=i?.querySelector("[data-spacing-margin-bottom]")||null;if(a&&g.current&&p.current){let r=n.marginBottom;if(t&&U(r),0>parseFloat(r)&&(r="0"),g.current.style.height=r,p.current.style.top=r,a.setAttribute("data-spacing-margin-bottom-active","true"),A(e))g.current.style.left="0";else{let t=n.paddingLeft,e=`-${t}`,r=`translate(${e}, -100%)`;g.current.style.left=e,p.current.style.transform=r}}},[]),U=t=>{let e=parseFloat(t);E(e),j(!0),L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{j(!1)},2e3);let r=e<=28&&e>=0?e/2+16:e>28?0:16;h.current&&(h.current.style.transform=`translateY(${r}px)`)},$=usePrevious(c.advanced?.["spacing-setting"]);a(()=>{let t=F($,c.advanced?.["spacing-setting"]);B(t)},[$,c.advanced,B]);let F=(t,e)=>l.some(r=>JSON.stringify(t?.[r]?.margin?.bottom)!==JSON.stringify(e?.[r]?.margin?.bottom)),M=i(()=>{B()},[B]);return a(()=>(window.addEventListener("editor:toolbar:update-margin-bottom",()=>B),window.addEventListener("editor:toolbar:update-padding-left",()=>B),window.addEventListener("resize",M),()=>{window.removeEventListener("editor:toolbar:update-margin-bottom",()=>B),window.removeEventListener("editor:toolbar:update-padding-left",()=>B),window.removeEventListener("resize",M)}),[M,B]),t(e,{children:"Section"!==c.tag&&"POST_PURCHASE"!==m&&t("div",{"data-spacing":!0,"data-spacing-theme-section":d,className:"gp-absolute gp-w-full gp-bottom-0",children:r("div",{"data-spacing-margin-bottom":!0,children:[r("div",{"data-spacing-margin-bottom-bg":!0,ref:g,children:[t("div",{"data-spacing-margin-bottom-value":!0}),t("div",{"data-active":S,"data-value-number":!0,ref:h,children:y})]}),t("div",{ref:p,"data-spacing-margin-bottom-drag":!0,onMouseDown:t=>{if(p.current){let e=getComputedStyle(p.current);f.current=t.clientY,w.current=parseFloat(e.top),k()}},onMouseUp:()=>{z()},role:"presentation"})]})})})}let usePrevious=t=>{let e=o();return a(()=>{e.current=t},[t]),e.current};export{Spacing as default};
2
+ import{jsx as t,Fragment as e,jsxs as r}from"react/jsx-runtime";import{useRef as n,useState as o,useCallback as i,useEffect as a}from"react";import"zustand";import{useBuilderPreviewStore as s}from"../../contexts/BuilderPreviewContext.js";import{DEVICES as l}from"../../constants/device.js";import"react-transition-group";import"swr";import"swr/infinite";import{usePageType as u}from"../../hooks/shop.js";import"classnames";import"dayjs";import"../../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";function Spacing(c){let d=s(t=>t.isThemeSectionEditor),m=u(),p=n(null),g=n(null),v=n(null),b=n(!1),f=n(0),w=n(0),h=n(null),[y,E]=o(0),[S,j]=o(!1),L=n(null),C=t=>{let e=t.clientY,r=Math.ceil(e-f.current),n=w.current||0,o=n+r>=0?`${n+r}px`:"0px";return{newValue:o}},x=t=>{if(p.current&&g.current){let{newValue:e}=C(t);g.current.style.height=e,p.current.style.top=e;let r=p.current.closest("[data-toolbar-wrap]");r&&(r.style.marginBottom=e,U(e))}},T=()=>{P()},z=()=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{b.current=!0;let t=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!0}});window.dispatchEvent(t),document.addEventListener("mousemove",x),document.addEventListener("mouseup",T)},100)},P=()=>{v.current&&clearTimeout(v.current),b.current=!1;let t=new CustomEvent("editor:toolbar:resize-spacing",{bubbles:!0,detail:{value:!1}});if(window.dispatchEvent(t),p.current){let t=getComputedStyle(p.current),e=t.top,r=new CustomEvent("editor:toolbar:change-margin-bottom",{bubbles:!0,detail:{componentUid:c.uid,marginBottom:e}});window.dispatchEvent(r)}let e=p.current?.closest("[data-toolbar-wrap]");e&&(e.style.marginBottom=""),document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",T)},k=(t,e)=>{let r=t.children.length;if(r)for(let n=0;n<r;n++){let r=t.children[n];if(r){let t=r.getAttribute(e);if(t)return r}}},A=t=>{let e=t.getAttribute("data-component-tag");return"Row"===e||"Product"===e},B=i(t=>{let e=p.current?.closest("[data-toolbar-wrap]");if(!e)return;let r=k(e,"data-toolbar");if(!r)return;let n=r.getAttribute("data-toolbar-active");if(!n)return;let o=getComputedStyle(e),i=k(e,"data-spacing"),a=i?.querySelector("[data-spacing-margin-bottom]")||null;if(a&&g.current&&p.current){let r=o.marginBottom;if(t&&U(r),0>parseFloat(r)&&(r="0"),g.current.style.height=r,p.current.style.top=r,a.setAttribute("data-spacing-margin-bottom-active","true"),A(e))g.current.style.left="0";else{let t=o.paddingLeft,e=`-${t}`,r=`translate(${e}, -100%)`;g.current.style.left=e,p.current.style.transform=r}}},[]),U=t=>{let e=parseFloat(t);E(e),j(!0),L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{j(!1)},2e3);let r=e<=28&&e>=0?e/2+16:e>28?0:16;h.current&&(h.current.style.transform=`translateY(${r}px)`)},$=usePrevious(c.advanced?.["spacing-setting"]);a(()=>{let t=F($,c.advanced?.["spacing-setting"]);B(t)},[$,c.advanced,B]);let F=(t,e)=>l.some(r=>JSON.stringify(t?.[r]?.margin?.bottom)!==JSON.stringify(e?.[r]?.margin?.bottom)),M=i(()=>{B()},[B]);return a(()=>(window.addEventListener("editor:toolbar:update-margin-bottom",()=>B),window.addEventListener("editor:toolbar:update-padding-left",()=>B),window.addEventListener("resize",M),()=>{window.removeEventListener("editor:toolbar:update-margin-bottom",()=>B),window.removeEventListener("editor:toolbar:update-padding-left",()=>B),window.removeEventListener("resize",M)}),[M,B]),t(e,{children:"Section"!==c.tag&&"POST_PURCHASE"!==m&&t("div",{"data-spacing":!0,"data-spacing-theme-section":d,className:"gp-absolute gp-w-full gp-bottom-0",children:r("div",{"data-spacing-margin-bottom":!0,children:[r("div",{"data-spacing-margin-bottom-bg":!0,ref:g,children:[t("div",{"data-spacing-margin-bottom-value":!0}),t("div",{"data-active":S,"data-value-number":!0,ref:h,children:y})]}),t("div",{ref:p,"data-spacing-margin-bottom-drag":!0,onMouseDown:t=>{if(p.current){let e=getComputedStyle(p.current);f.current=t.clientY,w.current=parseFloat(e.top),z()}},onMouseUp:()=>{P()},role:"presentation"})]})})})}let usePrevious=t=>{let e=n();return a(()=>{e.current=t},[t]),e.current};export{Spacing as default};
@@ -1,2 +1 @@
1
- 'use client';
2
- import{jsx as e,Fragment as t,jsxs as i}from"react/jsx-runtime";import{useRef as o}from"react";import{Transition as n}from"react-transition-group";import{useI18nStore as a,cls as c}from"@gem-sdk/core";let TRANSITION_DURATION=350,defaultStyles={transition:"opacity 350ms ease-out",opacity:0},transitions={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0},unmounted:{opacity:0}},ThemeSectionTooltip=({isShow:l,isFreeLimit:s,isRender:r,children:m,limitCreateThemeSection:d,onMouseEnter:h,onMouseLeave:p,onActions:_})=>{let{t:u}=a(),y=o(null),b=s?"Upgrade to create Theme Section":"Create Theme Section",g=()=>{window.open("https://help.gempages.net/articles/theme-section","_blank")};return e(t,{children:i("div",{className:"theme-section-tooltip-wrapper",onMouseEnter:h,onMouseLeave:p,children:[m,r&&e(n,{in:l,timeout:350,nodeRef:y,unmountOnExit:!0,children:o=>e("div",{className:"theme-section-tooltip",ref:y,style:{...defaultStyles,...transitions[o]},children:d?.isLimit&&!s?i("div",{className:"theme-section-tooltip__body theme-section-tooltip__body-limit",children:[e("div",{className:"theme-section-tooltip__body-title theme-section-tooltip__body-limit__title",children:"Upgrade plan"}),i("div",{className:"theme-section-tooltip__body-desc theme-section-tooltip__body-limit__desc",children:["You’ve reached the maximum number of theme sections on your plan (",d.total,"/",d.limit,")"]}),e("button",{onClick:e=>_(e),children:"Upgrade plan to create more"})]}):i(t,{children:[e("div",{className:"theme-section-tooltip__image",children:e("img",{src:"https://ucarecdn.com/6a9f408a-aa8c-434a-890b-81067a14aceb/-/format/auto/-/preview/1920x1920/-/quality/lighter/theme-section-illustration.png",alt:""})}),i("div",{className:"theme-section-tooltip__body",children:[e("div",{className:"theme-section-tooltip__body-title",children:"Create once, use everywhere with Theme Section"}),e("div",{className:"theme-section-tooltip__body-desc",children:"A global section that can be used on all your GemPages & Shopify pages."})]}),i("div",{className:c("theme-section-tooltip__action",{"theme-section-tooltip__action-limit":s}),children:[e("button",{onClick:e=>_(e),children:u(b)}),s&&e("div",{onClick:g,"aria-hidden":!0,className:"theme-section-tooltip__action-learn-more",children:"Learn more about Theme Section"})]})]})})})]})})};export{ThemeSectionTooltip};
1
+ import{jsx as e,Fragment as t,jsxs as i}from"react/jsx-runtime";import{useRef as o}from"react";import{Transition as n}from"react-transition-group";import"zustand";import{useI18nStore as s}from"../../contexts/I18nContext.js";import{cls as a}from"../../helpers/cls.js";import"swr";import"swr/infinite";import"classnames";import"dayjs";import"../../helpers/convert.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let TRANSITION_DURATION=350,defaultStyles={transition:"opacity 350ms ease-out",opacity:0},transitions={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0},unmounted:{opacity:0}},ThemeSectionTooltip=({isShow:r,isFreeLimit:l,isRender:c,children:m,limitCreateThemeSection:p,onMouseEnter:d,onMouseLeave:h,onActions:u})=>{let{t:_}=s(),y=o(null),b=l?"Upgrade to create Theme Section":"Create Theme Section",v=()=>{window.open("https://help.gempages.net/articles/theme-section","_blank")};return e(t,{children:i("div",{className:"theme-section-tooltip-wrapper",onMouseEnter:d,onMouseLeave:h,children:[m,c&&e(n,{in:r,timeout:350,nodeRef:y,unmountOnExit:!0,children:o=>e("div",{className:"theme-section-tooltip",ref:y,style:{...defaultStyles,...transitions[o]},children:p?.isLimit&&!l?i("div",{className:"theme-section-tooltip__body theme-section-tooltip__body-limit",children:[e("div",{className:"theme-section-tooltip__body-title theme-section-tooltip__body-limit__title",children:"Upgrade plan"}),i("div",{className:"theme-section-tooltip__body-desc theme-section-tooltip__body-limit__desc",children:["You’ve reached the maximum number of theme sections on your plan (",p.total,"/",p.limit,")"]}),e("button",{onClick:e=>u(e),children:"Upgrade plan to create more"})]}):i(t,{children:[e("div",{className:"theme-section-tooltip__image",children:e("img",{src:"https://ucarecdn.com/6a9f408a-aa8c-434a-890b-81067a14aceb/-/format/auto/-/preview/1920x1920/-/quality/lighter/theme-section-illustration.png",alt:""})}),i("div",{className:"theme-section-tooltip__body",children:[e("div",{className:"theme-section-tooltip__body-title",children:"Create once, use everywhere with Theme Section"}),e("div",{className:"theme-section-tooltip__body-desc",children:"A global section that can be used on all your GemPages & Shopify pages."})]}),i("div",{className:a("theme-section-tooltip__action",{"theme-section-tooltip__action-limit":l}),children:[e("button",{onClick:e=>u(e),children:_(b)}),l&&e("div",{onClick:v,"aria-hidden":!0,className:"theme-section-tooltip__action-learn-more",children:"Learn more about Theme Section"})]})]})})})]})})};export{ThemeSectionTooltip};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useId as r,useMemo as i,useContext as o,createContext as s}from"react";import{useStore as p,createStore as n}from"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import{checkInStock as d}from"../helpers/variant.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"@gem-sdk/core";import"classnames";import"dayjs";import{flattenConnection as a}from"../helpers/flatten-connection.js";import"../helpers/convert.js";let ProductContext=s(null),createProductStoreProvider=e=>n((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let i=r().properties;i?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})},setIsAgreeBuyWithSubscription:e=>{t({isAgreeBuyWithSubscription:e})},setSubscriptionSellingType:e=>{t({subscriptionSellingType:e})},setSelectedSellingPlan:e=>{t({selectedSellingPlan:e})}})),ProductProvider=({children:o,product:s,initialVariantId:p,initialVariantBaseId:n,quantity:u=1,isSyncProduct:l,hasPreSelected:c})=>{let m=r(),y=i(()=>{let e,t={};if(s){let r=a(s.variants),i=r[0],o=r.find(e=>d(e)),u=r.find(e=>e?.id===p||e?.baseID===n)??o??i;t=u?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=s.medias?.edges.find(e=>e.node?.id===u?.mediaId)?.node??s.featuredImage}return createProductStoreProvider({product:s,quantity:u,selectedOptions:t,uiqueId:m,featuredImageGlobal:e,isSyncProduct:l,hasPreSelected:c,isAgreeBuyWithSubscription:!0})},[s,u,m,l,c,p]);return e(ProductContext.Provider,{value:y,children:e(t,{children:o})})},useProductStore=(e,t)=>{let r=o(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return p(r,e,t)};export{ProductProvider,useProductStore};
2
+ import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useId as r,useMemo as i,useContext as o,createContext as s}from"react";import{useStore as p,createStore as n}from"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import{checkInStock as a}from"../helpers/variant.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"classnames";import"dayjs";import{flattenConnection as d}from"../helpers/flatten-connection.js";import"../helpers/convert.js";let ProductContext=s(null),createProductStoreProvider=e=>n((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let i=r().properties;i?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})},setIsAgreeBuyWithSubscription:e=>{t({isAgreeBuyWithSubscription:e})},setSubscriptionSellingType:e=>{t({subscriptionSellingType:e})},setSelectedSellingPlan:e=>{t({selectedSellingPlan:e})}})),ProductProvider=({children:o,product:s,initialVariantId:p,initialVariantBaseId:n,quantity:u=1,isSyncProduct:l,hasPreSelected:c})=>{let m=r(),y=i(()=>{let e,t={};if(s){let r=d(s.variants),i=r[0],o=r.find(e=>a(e)),u=r.find(e=>e?.id===p||e?.baseID===n)??o??i;t=u?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=s.medias?.edges.find(e=>e.node?.id===u?.mediaId)?.node??s.featuredImage}return createProductStoreProvider({product:s,quantity:u,selectedOptions:t,uiqueId:m,featuredImageGlobal:e,isSyncProduct:l,hasPreSelected:c,isAgreeBuyWithSubscription:!0})},[s,u,m,l,c,p]);return e(ProductContext.Provider,{value:y,children:e(t,{children:o})})},useProductStore=(e,t)=>{let r=o(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return p(r,e,t)};export{ProductProvider,useProductStore};