@gem-sdk/core 1.14.0-dev.493 → 1.14.0-dev.499

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("react"),require("react/jsx-runtime"),require("zustand"),require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("react-transition-group"),require("@gem-sdk/core");var render=require("../helpers/render.js"),convert=require("../helpers/convert.js"),composeAdvanceStyle=require("../helpers/compose-advance-style.js"),constant=require("./constant.js");const componentsRenderWithParentId=["CarouselItem"],componentTexts=["Text","Heading"],componentIconList=["IconListV2"],Render=({uid:e,builder:r,components:t,parentId:n,extraFiles:d={},pageContext:i,...s})=>{let a=r[e],l=t[a?.tag];if(!l)return console.log("Miss component: ",a),{liquid:"",extraFiles:d};if(!a||a?.type==="section")return{liquid:"",extraFiles:d};{let d={extraFiles:{}},c=composeAdvanceStyle.composeAdvanceStyle(a.advanced,a.tag),o="";o=constant.disableWrap.includes(a.tag)?render.RenderIf(a?.childrens?.length,()=>l({builderProps:{uid:e,builderData:a},styles:a.styles,setting:a.settings,style:c,advanced:a.advanced,parentId:componentsRenderWithParentId.includes(a.tag)?n:null,pageContext:i,...s,rawChildren:a.childrens.map(e=>({...r[e],uid:e,builder:r,components:t,customProps:d,pageContext:i})),children:constant.customRenderChildren.includes(a.tag)?"":WrapRenderChildren({uid:e,customProps:d},a.childrens.map(e=>RenderChildren({uid:e,builder:r,components:t,customProps:d,parentTag:a.tag,pageContext:i})))}),()=>l({builderProps:{uid:e,builderData:a},styles:a.styles,setting:a.settings,advanced:a.advanced,style:c,isText:!!componentTexts.includes(a.tag)||null,parentId:componentsRenderWithParentId.includes(a.tag)?n:null,pageContext:i,...s})):render.template`<div style="${componentIconList.includes(a.tag)?"":c}" class="${a.uid} ${a?.childrens?.length||"IconListItemHoz"!==a.tag?"":"hidden"}">
2
- ${render.RenderIf(a?.childrens?.length,()=>l({builderProps:{uid:e,builderData:a},styles:a.styles,setting:a.settings,advanced:{cssClass:a?.advanced?.cssClass},pageContext:i,...s,rawChildren:a.childrens.map(e=>({...r[e],uid:e,builder:r,components:t,customProps:d,pageContext:i})),children:constant.customRenderChildren.includes(a.tag)?"":WrapRenderChildren({uid:e,customProps:d},a.childrens.map(e=>RenderChildren({uid:e,builder:r,components:t,customProps:d,parentTag:a.tag,pageContext:i})))}),()=>l({builderProps:{uid:e,builderData:a},styles:a.styles,setting:a.settings,advanced:{cssClass:a?.advanced?.cssClass},pageContext:i,isText:!!componentTexts.includes(a.tag)||null,style:componentIconList.includes(a.tag)?c:null,...s}))}
3
- </div>`;let{cssCode:u,jsCode:p}=RenderCustomCode(a);return u&&(o+=u),p&&(o+=p),{liquid:o=appendAnimation(a,o),extraFiles:d.extraFiles}}},RenderCustomCode=e=>{let{css:r,javascript:t,rootClassName:n}=e.advanced?.editorData||{},d=r?.replaceAll(n,e.uid),i=t?.replaceAll(n,e.uid),s=render.RenderIf(!!r,render.template`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("react"),require("react/jsx-runtime"),require("zustand"),require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("react-transition-group"),require("@gem-sdk/core");var render=require("../helpers/render.js"),convert=require("../helpers/convert.js"),composeAdvanceStyle=require("../helpers/compose-advance-style.js"),constant=require("./constant.js");const componentsRenderWithParentId=["CarouselItem"],componentTexts=["Text","Heading"],componentIconList=["IconListV2","IconList"],componentUsingAdvanced=["IconList"],Render=({uid:e,builder:t,components:r,parentId:n,extraFiles:d={},pageContext:i,...s})=>{let a=t[e],l=r[a?.tag];if(!l)return console.log("Miss component: ",a),{liquid:"",extraFiles:d};if(!a||a?.type==="section")return{liquid:"",extraFiles:d};{let d={extraFiles:{}},c=composeAdvanceStyle.composeAdvanceStyle(a.advanced,a.tag),o="";o=constant.disableWrap.includes(a.tag)?render.RenderIf(a?.childrens?.length,()=>l({builderProps:{uid:e,builderData:a},styles:a.styles,setting:a.settings,style:c,advanced:a.advanced,parentId:componentsRenderWithParentId.includes(a.tag)?n:null,pageContext:i,...s,rawChildren:a.childrens.map(e=>({...t[e],uid:e,builder:t,components:r,customProps:d,pageContext:i})),children:constant.customRenderChildren.includes(a.tag)?"":WrapRenderChildren({uid:e,customProps:d},a.childrens.map(e=>RenderChildren({uid:e,builder:t,components:r,customProps:d,parentTag:a.tag,pageContext:i})))}),()=>l({builderProps:{uid:e,builderData:a},styles:a.styles,setting:a.settings,advanced:a.advanced,style:c,isText:!!componentTexts.includes(a.tag)||null,parentId:componentsRenderWithParentId.includes(a.tag)?n:null,pageContext:i,...s})):render.template`<div style="${componentIconList.includes(a.tag)?"":c}" class="${a.uid} ${a?.childrens?.length||"IconListItemHoz"!==a.tag?"":"hidden"}">
2
+ ${render.RenderIf(a?.childrens?.length,()=>l({builderProps:{uid:e,builderData:a},styles:a.styles,setting:a.settings,advanced:{...componentUsingAdvanced.includes(a.tag)?a?.advanced:{},cssClass:a?.advanced?.cssClass},pageContext:i,...s,rawChildren:a.childrens.map(e=>({...t[e],uid:e,builder:t,components:r,customProps:d,pageContext:i})),children:constant.customRenderChildren.includes(a.tag)?"":WrapRenderChildren({uid:e,customProps:d},a.childrens.map(e=>RenderChildren({uid:e,builder:t,components:r,customProps:d,parentTag:a.tag,pageContext:i})))}),()=>l({builderProps:{uid:e,builderData:a},styles:a.styles,setting:a.settings,advanced:{cssClass:a?.advanced?.cssClass},pageContext:i,isText:!!componentTexts.includes(a.tag)||null,style:componentIconList.includes(a.tag)?c:null,...s}))}
3
+ </div>`;let{cssCode:p,jsCode:u}=RenderCustomCode(a);return p&&(o+=p),u&&(o+=u),{liquid:o=appendAnimation(a,o),extraFiles:d.extraFiles}}},RenderCustomCode=e=>{let{css:t,javascript:r,rootClassName:n}=e.advanced?.editorData||{},d=t?.replaceAll(n,e.uid),i=r?.replaceAll(n,e.uid),s=render.RenderIf(!!t,render.template`
4
4
  <style
5
5
  id="${`custom-css-${e?.uid}`}"
6
6
  >${d}</style>
7
- `),a=render.RenderIf(!!t,render.template`
7
+ `),a=render.RenderIf(!!r,render.template`
8
8
  <script
9
9
  id="${`custom-js-${e?.uid}`}"
10
10
  >
@@ -12,11 +12,11 @@
12
12
  ${i}
13
13
  } catch(err){}
14
14
  </script>
15
- `);return{cssCode:s,jsCode:a}},appendAnimation=(e,r)=>{let{uid:t,advanced:n,tag:d}=e,{animation:i}=n??{},s=i?.desktop?.enabled||i?.tablet?.enabled||i?.mobile?.enabled;if(!s||!i?.desktop?.triggerConfig)return r;let a=`animation-wrapper-${t}`;return render.template`
15
+ `);return{cssCode:s,jsCode:a}},appendAnimation=(e,t)=>{let{uid:r,advanced:n,tag:d}=e,{animation:i}=n??{},s=i?.desktop?.enabled||i?.tablet?.enabled||i?.mobile?.enabled;if(!s||!i?.desktop?.triggerConfig)return t;let a=`animation-wrapper-${r}`;return render.template`
16
16
  ${render.RenderIf(convert.isLocalEnv,'<script src="{{ \'gp-animation.js\' | asset_url }}" defer="defer"></script>',`<script src="${convert.baseAssetURL}/assets/gp-animation.js" defer="defer"></script>`)}
17
17
  <gp-animation
18
18
  gp-data='${JSON.stringify({targetSelector:`#${a}`,config:i,tag:d})}'
19
19
  >
20
- <div id="${a}">${r}</div>
20
+ <div id="${a}">${t}</div>
21
21
  </gp-animation>
22
- `},RenderChildren=e=>{let r=Render(e);for(let t in r.extraFiles)Object.prototype.hasOwnProperty.call(r.extraFiles,t)&&(e.customProps.extraFiles[t]=r.extraFiles[t]);let t=new TextEncoder,n=r?.liquid?t.encode(r.liquid).length:0;if(Math.ceil(n/1024)>=180){let t=`gp-section-snippet-${e.uid}`;return e.customProps.extraFiles[t]=r.liquid,`{% render '${t}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}return r.liquid},WrapRenderChildren=({uid:e,customProps:r},t)=>{let n="";if(t?.length)for(let d=0;d<t.length;d++){let i=t[d];if(i){let t=n+i,s=new TextEncoder,a=t?s.encode(t).length:0;if(Math.ceil(a/1024)>=180){let t=`gp-section-snippet-${e+d}`;r.extraFiles[t]=i,n+=`{% render '${t}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}else n+=i}}return n};exports.RenderChildren=RenderChildren,exports.WrapRenderChildren=WrapRenderChildren,exports.default=Render;
22
+ `},RenderChildren=e=>{let t=Render(e);for(let r in t.extraFiles)Object.prototype.hasOwnProperty.call(t.extraFiles,r)&&(e.customProps.extraFiles[r]=t.extraFiles[r]);let r=new TextEncoder,n=t?.liquid?r.encode(t.liquid).length:0;if(Math.ceil(n/1024)>=180){let r=`gp-section-snippet-${e.uid}`;return e.customProps.extraFiles[r]=t.liquid,`{% render '${r}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}return t.liquid},WrapRenderChildren=({uid:e,customProps:t},r)=>{let n="";if(r?.length)for(let d=0;d<r.length;d++){let i=r[d];if(i){let r=n+i,s=new TextEncoder,a=r?s.encode(r).length:0;if(Math.ceil(a/1024)>=180){let r=`gp-section-snippet-${e+d}`;t.extraFiles[r]=i,n+=`{% render '${r}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}else n+=i}}return n};exports.RenderChildren=RenderChildren,exports.WrapRenderChildren=WrapRenderChildren,exports.default=Render;
@@ -1 +1 @@
1
- "use strict";const animations=()=>{let t=t=>{let r=["delay","duration","scale","intensity"];return r.forEach(r=>{if(t?.[r]){let a=Number(t?.[r]);if(t[r]=a,!isFinite(a))throw TypeError(`${r} must be a number`)}}),t},r=(r,a,e)=>{let s=t(a),{direction:l,distance:o}=s,f=["left","right"].includes(l??"")?"X":"Y",m=["left","down"].includes(l??"")?"-":"",d=[{opacity:"fade"===e?0:1,transform:`translate${f}(${m}${o??100}px)`},{opacity:1,transform:`translate${f}(0)`}];return i(r,d,{...n(s,500)})},a=(t,a)=>r(t,a,"slide"),e=(t,a)=>r(t,a,"fade"),n=(t,r)=>{let{loop:a,delay:e,duration:n}=t??{},s=e??0,l=(n??r)+s;return{iterations:a?1/0:1,duration:l,delay:s}},s=(r,a)=>{let e=t(a),s=[{transform:"scale(1, 1)"},{transform:`scale(${e?.scale??1.2}, ${e?.scale??1.2})`},{transform:"scale(1, 1)"}];return i(r,s,{...n(e,700)})},l=(t,r,a)=>{if(!r)return t;let e=r/a,n=[...t].pop();return[...t,{...n,offset:1-e}]},o=(r,a)=>{let e=t(a),{intensity:s}=e??{},l=[{transform:"translate3d(0, 0, 0)"}],o=[{transform:"translate3d(4px, 0, 0)"},{transform:"translate3d(-4px, 0, 0)"},{transform:"translate3d(4px, 0, 0)"}],f=[];Array.from(Array(s??1).keys()).forEach(()=>{f=[...f,...o]});let m=[{transform:"translate3d(-1px, 0, 0)"},{transform:"translate3d(2px, 0, 0)"},{transform:"translate3d(-4px, 0, 0)"},...f,{transform:"translate3d(-4px, 0, 0)"},{transform:"translate3d(2px, 0, 0)"},{transform:"translate3d(-1px, 0, 0)"}];return i(r,s?m:l,{...n(e??{},820),easing:"ease"})},i=(t,r,a)=>{let e=new KeyframeEffect(t,l(r,a?.delay??0,a?.duration??0),a);return new Animation(e,document.timeline)};return{zoom:s,shake:o,fade:e,slide:a}};exports.animations=animations;
1
+ "use strict";const animations=()=>{let t=t=>{let r=["delay","duration","scale","intensity"];return r.forEach(r=>{if(t?.[r]){let a=Number(t?.[r]);if(t[r]=a,!isFinite(a))throw TypeError(`${r} must be a number`)}}),t},r=(r,a,e)=>{let s=t(a),{direction:l,distance:o}=s,i=["left","right"].includes(l??"")?"X":"Y",m=["left","down"].includes(l??"")?"-":"",d=[{opacity:"fade"===e?0:1,transform:`translate${i}(${m}${o??100}px)`},{opacity:1,transform:`translate${i}(0)`}];return f(r,d,{...n(s,500)})},a=(t,a)=>r(t,a,"slide"),e=(t,a)=>r(t,a,"fade"),n=(t,r)=>{let{loop:a,delay:e,duration:n}=t??{},s=e??0,l=(n??r)+s;return{iterations:a?1/0:1,duration:l,delay:s}},s=(r,a)=>{let e=t(a),{scale:s,zoomDirection:l}=e,o=[{transform:"scale(1, 1)"},{transform:`scale(${s??1.2}, ${s??1.2})`}],i=[{transform:"scale(1, 1)"},{transform:`scale(${s??.8}, ${s??.8})`}],m="in"===l?o:i;return f(r,m,{...n(e,700),fill:"forwards"})},l=(t,r,a)=>{if(!r)return t;let e=r/a,n=[...t].pop();return[...t,{...n,offset:1-e}]},o=(r,a)=>{let e=t(a),{intensity:s}=e??{},l=[{transform:"translate3d(0, 0, 0)"}],o=[{transform:"translate3d(4px, 0, 0)"},{transform:"translate3d(-4px, 0, 0)"},{transform:"translate3d(4px, 0, 0)"}],i=[];Array.from(Array(s??1).keys()).forEach(()=>{i=[...i,...o]});let m=[{transform:"translate3d(-1px, 0, 0)"},{transform:"translate3d(2px, 0, 0)"},{transform:"translate3d(-4px, 0, 0)"},...i,{transform:"translate3d(-4px, 0, 0)"},{transform:"translate3d(2px, 0, 0)"},{transform:"translate3d(-1px, 0, 0)"}];return f(r,s?m:l,{...n(e??{},820),easing:"ease"})},f=(t,r,a)=>{let e=new KeyframeEffect(t,l(r,a?.delay??0,a?.duration??0),a);return new Animation(e,document.timeline)};return{zoom:s,shake:o,fade:e,slide:a}};exports.animations=animations;
@@ -1 +1 @@
1
- "use strict";var react=require("react"),useCurrentDevice=require("../use-current-device.js");const useAnimationConfig=e=>{let n=useCurrentDevice.useCurrentDevice(),r=react.useMemo(()=>e?.advanced?.animation?.[n],[n,e?.advanced?.animation]),t=()=>{let{trigger:e,triggerConfig:n}=r,{animation:t,setting:i}=n[e];return{type:t,setting:i}},i=r?.enabled;return{isEnabledAnimation:i,getAnimationConfig:t}};exports.useAnimationConfig=useAnimationConfig;
1
+ "use strict";var react=require("react"),useCurrentDevice=require("../use-current-device.js");const useAnimationConfig=e=>{let t=useCurrentDevice.useCurrentDevice(),n=react.useMemo(()=>e?.advanced?.animation?.[t],[t,e?.advanced?.animation]),r=()=>{let{trigger:e,triggerConfig:t}=n,{animation:r,setting:i}=t[e],a=i[r];return{type:r,setting:getConvertedSetting(a)}},i=n?.enabled;return{isEnabledAnimation:i,getAnimationConfig:r}},getConvertedSetting=e=>{let{duration:t,delay:n,scale:r}=e;return t&&(e.duration=1e3*t),n&&(e.delay=1e3*n),r&&(e.scale=r/100),e};exports.useAnimationConfig=useAnimationConfig;
@@ -1 +1 @@
1
- "use strict";var react=require("react"),useAnimationTarget=require("./useAnimationTarget.js");const useAnimationPreview=({componentUid:e,playAnimation:i,cancelAnimation:t,setAnimationOnFinish:r})=>{let{setToolbarVisibility:a}=useAnimationTarget.useAnimationTarget(e),n=react.useCallback(n=>{let{uid:s,isCancel:u}=n.detail;e===s&&(t(),u||(i(),a("hidden"),r(()=>{a("visible")})))},[e,t,i,r,a]);return{previewAnimation:n}};exports.useAnimationPreview=useAnimationPreview;
1
+ "use strict";var react=require("react"),useAnimationTarget=require("./useAnimationTarget.js");const useAnimationPreview=({componentUid:e,componentTag:i,playAnimation:t,cancelAnimation:r,setAnimationOnFinish:a})=>{let{setToolbarVisibility:n}=useAnimationTarget.useAnimationTarget({componentUid:e,componentTag:i}),s=react.useCallback(i=>{let{uid:s,isCancel:u}=i.detail;e===s&&(r(),u||(t(),n("hidden"),a(()=>{n("visible")})))},[e,r,t,a,n]);return{previewAnimation:s}};exports.useAnimationPreview=useAnimationPreview;
@@ -1 +1 @@
1
- "use strict";var react=require("react");const useAnimationTarget=e=>{let r=react.useRef(null),t=react.useRef(null),u=react.useRef(null),c=react.useRef(null),a=react.useCallback((e,r)=>{e&&(e.style.visibility=r)},[]),n=react.useCallback(e=>{a(t.current,e),a(u.current,e),a(c.current,e)},[a]);return react.useEffect(()=>{r.current=document.querySelector(`[data-uid="${e}"]`),r.current&&(t.current=r.current.querySelector("[data-toolbar]"),u.current=r.current.querySelector("[data-outline]"),c.current=r.current.querySelector("[data-spacing]"))},[e]),{setToolbarVisibility:n,target:r.current}};exports.useAnimationTarget=useAnimationTarget;
1
+ "use strict";var react=require("react");const useAnimationTarget=({componentUid:e,componentTag:r})=>{let t=react.useRef(null),u=react.useRef(null),c=react.useRef(null),a=react.useRef(null),n=react.useRef(null),l=react.useRef(null),o=react.useCallback((e,r)=>{e&&(e.style.visibility=r)},[]),s=react.useCallback(e=>{o(u.current,e),o(c.current,e),o(a.current,e),o(n.current,e),o(l.current,e)},[o]);return react.useEffect(()=>{t.current=document.querySelector(`[data-uid="${e}"]`),t.current&&(u.current=t.current.querySelector("[data-toolbar]"),c.current=t.current.querySelector("[data-outline]"),a.current=t.current.querySelector("[data-spacing]"),"Section"===r&&(n.current=t.current.querySelector("[data-toolbar-add-top]"),l.current=t.current.querySelector("[data-toolbar-add-bottom]")))},[e,r]),{setToolbarVisibility:s,target:t.current}};exports.useAnimationTarget=useAnimationTarget;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react=require("react"),useAnimations=require("../useAnimations.js"),useAnimationTarget=require("./useAnimationTarget.js"),useAnimationConfig=require("./useAnimationConfig.js"),useAnimationActions=require("./useAnimationActions.js"),useAnimationPreview=require("./useAnimationPreview.js");const useApplyAnimation=({props:e})=>{let i=e.uid,n=useAnimations.useAnimations(),{target:t}=useAnimationTarget.useAnimationTarget(i),{isEnabledAnimation:s,getAnimationConfig:a}=useAnimationConfig.useAnimationConfig(e),{setAnimation:o,cancelAnimation:r,playAnimation:u,setAnimationOnFinish:A}=useAnimationActions.useAnimationActions(),{previewAnimation:m}=useAnimationPreview.useAnimationPreview({componentUid:i,playAnimation:u,cancelAnimation:r,setAnimationOnFinish:A}),c=react.useCallback(()=>{let{type:e,setting:i}=a();if(!t||!e||"none"===e){r();return}r();let s=n[e](t,i[e]);o(s)},[n,r,a,o,t]);react.useEffect(()=>(s?c():r(),()=>{r()}),[i,c,r,s]),react.useEffect(()=>(window.addEventListener("preview-animation",m),()=>{window.removeEventListener("preview-animation",m)}),[m])};exports.default=useApplyAnimation;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var react=require("react"),useAnimations=require("../useAnimations.js"),useAnimationTarget=require("./useAnimationTarget.js"),useAnimationConfig=require("./useAnimationConfig.js"),useAnimationActions=require("./useAnimationActions.js"),useAnimationPreview=require("./useAnimationPreview.js");const useApplyAnimation=({props:e})=>{let{uid:i,tag:n}=e,t=useAnimations.useAnimations(),{target:s}=useAnimationTarget.useAnimationTarget({componentUid:i,componentTag:n}),{isEnabledAnimation:a,getAnimationConfig:o}=useAnimationConfig.useAnimationConfig(e),{setAnimation:r,cancelAnimation:u,playAnimation:A,setAnimationOnFinish:m}=useAnimationActions.useAnimationActions(),{previewAnimation:c}=useAnimationPreview.useAnimationPreview({componentUid:i,componentTag:n,playAnimation:A,cancelAnimation:u,setAnimationOnFinish:m}),f=react.useCallback(()=>{let{type:e,setting:i}=o();if(!s||!e||"none"===e){u();return}u();let n=t[e](s,i);r(n)},[t,u,o,r,s]);react.useEffect(()=>(a?f():u(),()=>{u()}),[i,f,u,a]),react.useEffect(()=>(window.addEventListener("preview-animation",c),()=>{window.removeEventListener("preview-animation",c)}),[c])};exports.default=useApplyAnimation;
@@ -1,9 +1,9 @@
1
- import"react";import"react/jsx-runtime";import"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"react-transition-group";import"@gem-sdk/core";import{RenderIf as e,template as t}from"../helpers/render.js";import{baseAssetURL as r,isLocalEnv as n}from"../helpers/convert.js";import{composeAdvanceStyle as i}from"../helpers/compose-advance-style.js";import{disableWrap as s,customRenderChildren as d}from"./constant.js";let componentsRenderWithParentId=["CarouselItem"],componentTexts=["Text","Heading"],componentIconList=["IconListV2"],Render=({uid:r,builder:n,components:a,parentId:l,extraFiles:o={},pageContext:c,...p})=>{let u=n[r],m=a[u?.tag];if(!m)return console.log("Miss component: ",u),{liquid:"",extraFiles:o};if(!u||u?.type==="section")return{liquid:"",extraFiles:o};{let o={extraFiles:{}},g=i(u.advanced,u.tag),h="";h=s.includes(u.tag)?e(u?.childrens?.length,()=>m({builderProps:{uid:r,builderData:u},styles:u.styles,setting:u.settings,style:g,advanced:u.advanced,parentId:componentsRenderWithParentId.includes(u.tag)?l:null,pageContext:c,...p,rawChildren:u.childrens.map(e=>({...n[e],uid:e,builder:n,components:a,customProps:o,pageContext:c})),children:d.includes(u.tag)?"":WrapRenderChildren({uid:r,customProps:o},u.childrens.map(e=>RenderChildren({uid:e,builder:n,components:a,customProps:o,parentTag:u.tag,pageContext:c})))}),()=>m({builderProps:{uid:r,builderData:u},styles:u.styles,setting:u.settings,advanced:u.advanced,style:g,isText:!!componentTexts.includes(u.tag)||null,parentId:componentsRenderWithParentId.includes(u.tag)?l:null,pageContext:c,...p})):t`<div style="${componentIconList.includes(u.tag)?"":g}" class="${u.uid} ${u?.childrens?.length||"IconListItemHoz"!==u.tag?"":"hidden"}">
2
- ${e(u?.childrens?.length,()=>m({builderProps:{uid:r,builderData:u},styles:u.styles,setting:u.settings,advanced:{cssClass:u?.advanced?.cssClass},pageContext:c,...p,rawChildren:u.childrens.map(e=>({...n[e],uid:e,builder:n,components:a,customProps:o,pageContext:c})),children:d.includes(u.tag)?"":WrapRenderChildren({uid:r,customProps:o},u.childrens.map(e=>RenderChildren({uid:e,builder:n,components:a,customProps:o,parentTag:u.tag,pageContext:c})))}),()=>m({builderProps:{uid:r,builderData:u},styles:u.styles,setting:u.settings,advanced:{cssClass:u?.advanced?.cssClass},pageContext:c,isText:!!componentTexts.includes(u.tag)||null,style:componentIconList.includes(u.tag)?g:null,...p}))}
3
- </div>`;let{cssCode:f,jsCode:v}=RenderCustomCode(u);return f&&(h+=f),v&&(h+=v),{liquid:h=appendAnimation(u,h),extraFiles:o.extraFiles}}},RenderCustomCode=r=>{let{css:n,javascript:i,rootClassName:s}=r.advanced?.editorData||{},d=n?.replaceAll(s,r.uid),a=i?.replaceAll(s,r.uid),l=e(!!n,t`
1
+ import"react";import"react/jsx-runtime";import"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"react-transition-group";import"@gem-sdk/core";import{RenderIf as e,template as t}from"../helpers/render.js";import{baseAssetURL as r,isLocalEnv as n}from"../helpers/convert.js";import{composeAdvanceStyle as i}from"../helpers/compose-advance-style.js";import{disableWrap as d,customRenderChildren as s}from"./constant.js";let componentsRenderWithParentId=["CarouselItem"],componentTexts=["Text","Heading"],componentIconList=["IconListV2","IconList"],componentUsingAdvanced=["IconList"],Render=({uid:r,builder:n,components:a,parentId:l,extraFiles:o={},pageContext:c,...p})=>{let u=n[r],m=a[u?.tag];if(!m)return console.log("Miss component: ",u),{liquid:"",extraFiles:o};if(!u||u?.type==="section")return{liquid:"",extraFiles:o};{let o={extraFiles:{}},g=i(u.advanced,u.tag),h="";h=d.includes(u.tag)?e(u?.childrens?.length,()=>m({builderProps:{uid:r,builderData:u},styles:u.styles,setting:u.settings,style:g,advanced:u.advanced,parentId:componentsRenderWithParentId.includes(u.tag)?l:null,pageContext:c,...p,rawChildren:u.childrens.map(e=>({...n[e],uid:e,builder:n,components:a,customProps:o,pageContext:c})),children:s.includes(u.tag)?"":WrapRenderChildren({uid:r,customProps:o},u.childrens.map(e=>RenderChildren({uid:e,builder:n,components:a,customProps:o,parentTag:u.tag,pageContext:c})))}),()=>m({builderProps:{uid:r,builderData:u},styles:u.styles,setting:u.settings,advanced:u.advanced,style:g,isText:!!componentTexts.includes(u.tag)||null,parentId:componentsRenderWithParentId.includes(u.tag)?l:null,pageContext:c,...p})):t`<div style="${componentIconList.includes(u.tag)?"":g}" class="${u.uid} ${u?.childrens?.length||"IconListItemHoz"!==u.tag?"":"hidden"}">
2
+ ${e(u?.childrens?.length,()=>m({builderProps:{uid:r,builderData:u},styles:u.styles,setting:u.settings,advanced:{...componentUsingAdvanced.includes(u.tag)?u?.advanced:{},cssClass:u?.advanced?.cssClass},pageContext:c,...p,rawChildren:u.childrens.map(e=>({...n[e],uid:e,builder:n,components:a,customProps:o,pageContext:c})),children:s.includes(u.tag)?"":WrapRenderChildren({uid:r,customProps:o},u.childrens.map(e=>RenderChildren({uid:e,builder:n,components:a,customProps:o,parentTag:u.tag,pageContext:c})))}),()=>m({builderProps:{uid:r,builderData:u},styles:u.styles,setting:u.settings,advanced:{cssClass:u?.advanced?.cssClass},pageContext:c,isText:!!componentTexts.includes(u.tag)||null,style:componentIconList.includes(u.tag)?g:null,...p}))}
3
+ </div>`;let{cssCode:f,jsCode:v}=RenderCustomCode(u);return f&&(h+=f),v&&(h+=v),{liquid:h=appendAnimation(u,h),extraFiles:o.extraFiles}}},RenderCustomCode=r=>{let{css:n,javascript:i,rootClassName:d}=r.advanced?.editorData||{},s=n?.replaceAll(d,r.uid),a=i?.replaceAll(d,r.uid),l=e(!!n,t`
4
4
  <style
5
5
  id="${`custom-css-${r?.uid}`}"
6
- >${d}</style>
6
+ >${s}</style>
7
7
  `),o=e(!!i,t`
8
8
  <script
9
9
  id="${`custom-js-${r?.uid}`}"
@@ -12,11 +12,11 @@ import"react";import"react/jsx-runtime";import"zustand";import"swr";import"@gem-
12
12
  ${a}
13
13
  } catch(err){}
14
14
  </script>
15
- `);return{cssCode:l,jsCode:o}},appendAnimation=(i,s)=>{let{uid:d,advanced:a,tag:l}=i,{animation:o}=a??{},c=o?.desktop?.enabled||o?.tablet?.enabled||o?.mobile?.enabled;if(!c||!o?.desktop?.triggerConfig)return s;let p=`animation-wrapper-${d}`;return t`
15
+ `);return{cssCode:l,jsCode:o}},appendAnimation=(i,d)=>{let{uid:s,advanced:a,tag:l}=i,{animation:o}=a??{},c=o?.desktop?.enabled||o?.tablet?.enabled||o?.mobile?.enabled;if(!c||!o?.desktop?.triggerConfig)return d;let p=`animation-wrapper-${s}`;return t`
16
16
  ${e(n,'<script src="{{ \'gp-animation.js\' | asset_url }}" defer="defer"></script>',`<script src="${r}/assets/gp-animation.js" defer="defer"></script>`)}
17
17
  <gp-animation
18
18
  gp-data='${JSON.stringify({targetSelector:`#${p}`,config:o,tag:l})}'
19
19
  >
20
- <div id="${p}">${s}</div>
20
+ <div id="${p}">${d}</div>
21
21
  </gp-animation>
22
- `},RenderChildren=e=>{let t=Render(e);for(let r in t.extraFiles)Object.prototype.hasOwnProperty.call(t.extraFiles,r)&&(e.customProps.extraFiles[r]=t.extraFiles[r]);let r=new TextEncoder,n=t?.liquid?r.encode(t.liquid).length:0;if(Math.ceil(n/1024)>=180){let r=`gp-section-snippet-${e.uid}`;return e.customProps.extraFiles[r]=t.liquid,`{% render '${r}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}return t.liquid},WrapRenderChildren=({uid:e,customProps:t},r)=>{let n="";if(r?.length)for(let i=0;i<r.length;i++){let s=r[i];if(s){let r=n+s,d=new TextEncoder,a=r?d.encode(r).length:0;if(Math.ceil(a/1024)>=180){let r=`gp-section-snippet-${e+i}`;t.extraFiles[r]=s,n+=`{% render '${r}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}else n+=s}}return n};export{RenderChildren,WrapRenderChildren,Render as default};
22
+ `},RenderChildren=e=>{let t=Render(e);for(let r in t.extraFiles)Object.prototype.hasOwnProperty.call(t.extraFiles,r)&&(e.customProps.extraFiles[r]=t.extraFiles[r]);let r=new TextEncoder,n=t?.liquid?r.encode(t.liquid).length:0;if(Math.ceil(n/1024)>=180){let r=`gp-section-snippet-${e.uid}`;return e.customProps.extraFiles[r]=t.liquid,`{% render '${r}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}return t.liquid},WrapRenderChildren=({uid:e,customProps:t},r)=>{let n="";if(r?.length)for(let i=0;i<r.length;i++){let d=r[i];if(d){let r=n+d,s=new TextEncoder,a=r?s.encode(r).length:0;if(Math.ceil(a/1024)>=180){let r=`gp-section-snippet-${e+i}`;t.extraFiles[r]=d,n+=`{% render '${r}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}else n+=d}}return n};export{RenderChildren,WrapRenderChildren,Render as default};
@@ -1 +1 @@
1
- let animations=()=>{let t=t=>{let r=["delay","duration","scale","intensity"];return r.forEach(r=>{if(t?.[r]){let a=Number(t?.[r]);if(t[r]=a,!isFinite(a))throw TypeError(`${r} must be a number`)}}),t},r=(r,a,e)=>{let s=t(a),{direction:l,distance:o}=s,i=["left","right"].includes(l??"")?"X":"Y",m=["left","down"].includes(l??"")?"-":"",d=[{opacity:"fade"===e?0:1,transform:`translate${i}(${m}${o??100}px)`},{opacity:1,transform:`translate${i}(0)`}];return f(r,d,{...n(s,500)})},a=(t,a)=>r(t,a,"slide"),e=(t,a)=>r(t,a,"fade"),n=(t,r)=>{let{loop:a,delay:e,duration:n}=t??{},s=e??0,l=(n??r)+s;return{iterations:a?1/0:1,duration:l,delay:s}},s=(r,a)=>{let e=t(a),s=[{transform:"scale(1, 1)"},{transform:`scale(${e?.scale??1.2}, ${e?.scale??1.2})`},{transform:"scale(1, 1)"}];return f(r,s,{...n(e,700)})},l=(t,r,a)=>{if(!r)return t;let e=r/a,n=[...t].pop();return[...t,{...n,offset:1-e}]},o=(r,a)=>{let e=t(a),{intensity:s}=e??{},l=[{transform:"translate3d(0, 0, 0)"}],o=[{transform:"translate3d(4px, 0, 0)"},{transform:"translate3d(-4px, 0, 0)"},{transform:"translate3d(4px, 0, 0)"}],i=[];Array.from(Array(s??1).keys()).forEach(()=>{i=[...i,...o]});let m=[{transform:"translate3d(-1px, 0, 0)"},{transform:"translate3d(2px, 0, 0)"},{transform:"translate3d(-4px, 0, 0)"},...i,{transform:"translate3d(-4px, 0, 0)"},{transform:"translate3d(2px, 0, 0)"},{transform:"translate3d(-1px, 0, 0)"}];return f(r,s?m:l,{...n(e??{},820),easing:"ease"})},f=(t,r,a)=>{let e=new KeyframeEffect(t,l(r,a?.delay??0,a?.duration??0),a);return new Animation(e,document.timeline)};return{zoom:s,shake:o,fade:e,slide:a}};export{animations};
1
+ let animations=()=>{let r=r=>{let t=["delay","duration","scale","intensity"];return t.forEach(t=>{if(r?.[t]){let a=Number(r?.[t]);if(r[t]=a,!isFinite(a))throw TypeError(`${t} must be a number`)}}),r},t=(t,a,e)=>{let s=r(a),{direction:l,distance:o}=s,i=["left","right"].includes(l??"")?"X":"Y",m=["left","down"].includes(l??"")?"-":"",d=[{opacity:"fade"===e?0:1,transform:`translate${i}(${m}${o??100}px)`},{opacity:1,transform:`translate${i}(0)`}];return f(t,d,{...n(s,500)})},a=(r,a)=>t(r,a,"slide"),e=(r,a)=>t(r,a,"fade"),n=(r,t)=>{let{loop:a,delay:e,duration:n}=r??{},s=e??0,l=(n??t)+s;return{iterations:a?1/0:1,duration:l,delay:s}},s=(t,a)=>{let e=r(a),{scale:s,zoomDirection:l}=e,o=[{transform:"scale(1, 1)"},{transform:`scale(${s??1.2}, ${s??1.2})`}],i=[{transform:"scale(1, 1)"},{transform:`scale(${s??.8}, ${s??.8})`}],m="in"===l?o:i;return f(t,m,{...n(e,700),fill:"forwards"})},l=(r,t,a)=>{if(!t)return r;let e=t/a,n=[...r].pop();return[...r,{...n,offset:1-e}]},o=(t,a)=>{let e=r(a),{intensity:s}=e??{},l=[{transform:"translate3d(0, 0, 0)"}],o=[{transform:"translate3d(4px, 0, 0)"},{transform:"translate3d(-4px, 0, 0)"},{transform:"translate3d(4px, 0, 0)"}],i=[];Array.from(Array(s??1).keys()).forEach(()=>{i=[...i,...o]});let m=[{transform:"translate3d(-1px, 0, 0)"},{transform:"translate3d(2px, 0, 0)"},{transform:"translate3d(-4px, 0, 0)"},...i,{transform:"translate3d(-4px, 0, 0)"},{transform:"translate3d(2px, 0, 0)"},{transform:"translate3d(-1px, 0, 0)"}];return f(t,s?m:l,{...n(e??{},820),easing:"ease"})},f=(r,t,a)=>{let e=new KeyframeEffect(r,l(t,a?.delay??0,a?.duration??0),a);return new Animation(e,document.timeline)};return{zoom:s,shake:o,fade:e,slide:a}};export{animations};
@@ -1 +1 @@
1
- import{useMemo as e}from"react";import{useCurrentDevice as n}from"../use-current-device.js";let useAnimationConfig=t=>{let i=n(),a=e(()=>t?.advanced?.animation?.[i],[i,t?.advanced?.animation]),r=()=>{let{trigger:e,triggerConfig:n}=a,{animation:t,setting:i}=n[e];return{type:t,setting:i}},o=a?.enabled;return{isEnabledAnimation:o,getAnimationConfig:r}};export{useAnimationConfig};
1
+ import{useMemo as e}from"react";import{useCurrentDevice as t}from"../use-current-device.js";let useAnimationConfig=n=>{let i=t(),r=e(()=>n?.advanced?.animation?.[i],[i,n?.advanced?.animation]),a=()=>{let{trigger:e,triggerConfig:t}=r,{animation:n,setting:i}=t[e],a=i[n];return{type:n,setting:getConvertedSetting(a)}},o=r?.enabled;return{isEnabledAnimation:o,getAnimationConfig:a}},getConvertedSetting=e=>{let{duration:t,delay:n,scale:i}=e;return t&&(e.duration=1e3*t),n&&(e.delay=1e3*n),i&&(e.scale=i/100),e};export{useAnimationConfig};
@@ -1 +1 @@
1
- import{useCallback as e}from"react";import{useAnimationTarget as i}from"./useAnimationTarget.js";let useAnimationPreview=({componentUid:t,playAnimation:r,cancelAnimation:n,setAnimationOnFinish:o})=>{let{setToolbarVisibility:m}=i(t),a=e(e=>{let{uid:i,isCancel:a}=e.detail;t===i&&(n(),a||(r(),m("hidden"),o(()=>{m("visible")})))},[t,n,r,o,m]);return{previewAnimation:a}};export{useAnimationPreview};
1
+ import{useCallback as e}from"react";import{useAnimationTarget as i}from"./useAnimationTarget.js";let useAnimationPreview=({componentUid:t,componentTag:r,playAnimation:n,cancelAnimation:o,setAnimationOnFinish:m})=>{let{setToolbarVisibility:a}=i({componentUid:t,componentTag:r}),l=e(e=>{let{uid:i,isCancel:r}=e.detail;t===i&&(o(),r||(n(),a("hidden"),m(()=>{a("visible")})))},[t,o,n,m,a]);return{previewAnimation:l}};export{useAnimationPreview};
@@ -1 +1 @@
1
- import{useRef as r,useCallback as e,useEffect as t}from"react";let useAnimationTarget=u=>{let n=r(null),c=r(null),l=r(null),a=r(null),o=e((r,e)=>{r&&(r.style.visibility=e)},[]),i=e(r=>{o(c.current,r),o(l.current,r),o(a.current,r)},[o]);return t(()=>{n.current=document.querySelector(`[data-uid="${u}"]`),n.current&&(c.current=n.current.querySelector("[data-toolbar]"),l.current=n.current.querySelector("[data-outline]"),a.current=n.current.querySelector("[data-spacing]"))},[u]),{setToolbarVisibility:i,target:n.current}};export{useAnimationTarget};
1
+ import{useRef as r,useCallback as t,useEffect as e}from"react";let useAnimationTarget=({componentUid:u,componentTag:n})=>{let c=r(null),l=r(null),a=r(null),o=r(null),i=r(null),d=r(null),y=t((r,t)=>{r&&(r.style.visibility=t)},[]),S=t(r=>{y(l.current,r),y(a.current,r),y(o.current,r),y(i.current,r),y(d.current,r)},[y]);return e(()=>{c.current=document.querySelector(`[data-uid="${u}"]`),c.current&&(l.current=c.current.querySelector("[data-toolbar]"),a.current=c.current.querySelector("[data-outline]"),o.current=c.current.querySelector("[data-spacing]"),"Section"===n&&(i.current=c.current.querySelector("[data-toolbar-add-top]"),d.current=c.current.querySelector("[data-toolbar-add-bottom]")))},[u,n]),{setToolbarVisibility:S,target:c.current}};export{useAnimationTarget};
@@ -1 +1 @@
1
- import{useCallback as i,useEffect as e}from"react";import{useAnimations as n}from"../useAnimations.js";import{useAnimationTarget as t}from"./useAnimationTarget.js";import{useAnimationConfig as o}from"./useAnimationConfig.js";import{useAnimationActions as r}from"./useAnimationActions.js";import{useAnimationPreview as m}from"./useAnimationPreview.js";let useApplyAnimation=({props:s})=>{let a=s.uid,p=n(),{target:u}=t(a),{isEnabledAnimation:A,getAnimationConfig:f}=o(s),{setAnimation:l,cancelAnimation:w,playAnimation:d,setAnimationOnFinish:v}=r(),{previewAnimation:j}=m({componentUid:a,playAnimation:d,cancelAnimation:w,setAnimationOnFinish:v}),c=i(()=>{let{type:i,setting:e}=f();if(!u||!i||"none"===i){w();return}w();let n=p[i](u,e[i]);l(n)},[p,w,f,l,u]);e(()=>(A?c():w(),()=>{w()}),[a,c,w,A]),e(()=>(window.addEventListener("preview-animation",j),()=>{window.removeEventListener("preview-animation",j)}),[j])};export{useApplyAnimation as default};
1
+ import{useCallback as i,useEffect as e}from"react";import{useAnimations as t}from"../useAnimations.js";import{useAnimationTarget as n}from"./useAnimationTarget.js";import{useAnimationConfig as o}from"./useAnimationConfig.js";import{useAnimationActions as r}from"./useAnimationActions.js";import{useAnimationPreview as m}from"./useAnimationPreview.js";let useApplyAnimation=({props:a})=>{let{uid:s,tag:p}=a,u=t(),{target:A}=n({componentUid:s,componentTag:p}),{isEnabledAnimation:f,getAnimationConfig:l}=o(a),{setAnimation:w,cancelAnimation:d,playAnimation:v,setAnimationOnFinish:j}=r(),{previewAnimation:g}=m({componentUid:s,componentTag:p,playAnimation:v,cancelAnimation:d,setAnimationOnFinish:j}),c=i(()=>{let{type:i,setting:e}=l();if(!A||!i||"none"===i){d();return}d();let t=u[i](A,e);w(t)},[u,d,l,w,A]);e(()=>(f?c():d(),()=>{d()}),[s,c,d,f]),e(()=>(window.addEventListener("preview-animation",g),()=>{window.removeEventListener("preview-animation",g)}),[g])};export{useApplyAnimation as default};
@@ -1231,6 +1231,19 @@ type ControlUI = {
1231
1231
  hideOnPages?: PageType[];
1232
1232
  };
1233
1233
  isMoreSetting?: boolean;
1234
+ controlChangeTrigger?: {
1235
+ settings?: {
1236
+ controlId: string;
1237
+ controlKey?: string;
1238
+ newValue: any;
1239
+ controlType: string;
1240
+ groupType: string;
1241
+ condition: string;
1242
+ }[];
1243
+ options?: {
1244
+ noRecordHistory?: boolean;
1245
+ };
1246
+ };
1234
1247
  };
1235
1248
  type PageType = 'ARTICLE' | 'BLOG' | 'COLLECTION' | 'GP_ARTICLE' | 'GP_BLOG' | 'GP_COLLECTION' | 'GP_INDEX' | 'GP_PRODUCT' | 'GP_STATIC' | 'PRODUCT' | 'STATIC' | 'THEME_SECTION';
1236
1249
  type ComponentPreset = {
@@ -7524,6 +7537,7 @@ type AnimationOptions = {
7524
7537
  duration?: number;
7525
7538
  delay?: number;
7526
7539
  intensity?: number;
7540
+ zoomDirection?: 'in' | 'out';
7527
7541
  };
7528
7542
 
7529
7543
  type ExtraFiles = Record<string, string>;
@@ -7685,6 +7699,7 @@ type ProductListContextProps = {
7685
7699
  spacing?: ObjectDevices<number>;
7686
7700
  layout?: 'grid' | 'slider';
7687
7701
  dot?: ObjectDevices<boolean>;
7702
+ dotStyle?: ObjectDevices<'none' | 'inside' | 'outside'>;
7688
7703
  arrow?: ObjectDevices<boolean>;
7689
7704
  controlOverContent?: ObjectDevices<boolean>;
7690
7705
  speed?: number;
@@ -10093,6 +10108,7 @@ declare const useProductListSettings: () => {
10093
10108
  spacing?: Partial<Record<NameDevices$1, number>> | undefined;
10094
10109
  layout?: "grid" | "slider" | undefined;
10095
10110
  dot?: Partial<Record<NameDevices$1, boolean>> | undefined;
10111
+ dotStyle?: Partial<Record<NameDevices$1, "none" | "inside" | "outside">> | undefined;
10096
10112
  arrow?: Partial<Record<NameDevices$1, boolean>> | undefined;
10097
10113
  controlOverContent?: Partial<Record<NameDevices$1, boolean>> | undefined;
10098
10114
  speed?: number | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/core",
3
- "version": "1.14.0-dev.493",
3
+ "version": "1.14.0-dev.499",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",