@gem-sdk/core 1.13.38 → 1.14.0-dev.284

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 (249) hide show
  1. package/dist/cjs/components/AddOn.js +1 -18
  2. package/dist/cjs/components/ComponentWrapper.js +1 -28
  3. package/dist/cjs/components/ComponentWrapperPreview.js +1 -72
  4. package/dist/cjs/components/Empty.js +1 -7
  5. package/dist/cjs/components/Render.js +1 -65
  6. package/dist/cjs/components/Render.liquid.js +15 -158
  7. package/dist/cjs/components/RenderBlock.js +1 -54
  8. package/dist/cjs/components/RenderCustomCode.js +5 -0
  9. package/dist/cjs/components/RenderPreview.js +1 -66
  10. package/dist/cjs/components/RenderSection.js +1 -23
  11. package/dist/cjs/components/constant.js +1 -39
  12. package/dist/cjs/components/src/product/helpers/variant-presets.js +1 -0
  13. package/dist/cjs/contexts/AddonContext.js +1 -36
  14. package/dist/cjs/contexts/BuilderComponent.js +1 -34
  15. package/dist/cjs/contexts/BuilderContext.js +1 -35
  16. package/dist/cjs/contexts/BuilderPreviewContext.js +1 -370
  17. package/dist/cjs/contexts/CartLineContext.js +1 -29
  18. package/dist/cjs/contexts/CollectionContext.js +1 -38
  19. package/dist/cjs/contexts/ModalContext.js +1 -47
  20. package/dist/cjs/contexts/ProductContext.js +1 -149
  21. package/dist/cjs/contexts/ProductListContext.js +1 -32
  22. package/dist/cjs/contexts/SectionContext.js +1 -53
  23. package/dist/cjs/contexts/ShopContext.js +1 -70
  24. package/dist/cjs/graphql/fragments/analytic.generated.js +2 -6
  25. package/dist/cjs/graphql/fragments/collection-detail.generated.js +2 -6
  26. package/dist/cjs/graphql/fragments/collection-product.generated.js +2 -6
  27. package/dist/cjs/graphql/fragments/collection.generated.js +2 -6
  28. package/dist/cjs/graphql/fragments/custom-code.generated.js +2 -6
  29. package/dist/cjs/graphql/fragments/data-seo.generated.js +2 -6
  30. package/dist/cjs/graphql/fragments/media.generated.js +3 -6
  31. package/dist/cjs/graphql/fragments/product-little.generated.js +2 -6
  32. package/dist/cjs/graphql/fragments/product-option-value.generated.js +2 -6
  33. package/dist/cjs/graphql/fragments/product-option.generated.js +2 -6
  34. package/dist/cjs/graphql/fragments/product.generated.js +2 -6
  35. package/dist/cjs/graphql/fragments/published-custom-section.generated.js +2 -6
  36. package/dist/cjs/graphql/fragments/published-page-section.generated.js +2 -6
  37. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +2 -6
  38. package/dist/cjs/graphql/fragments/published-theme-style.generated.js +2 -6
  39. package/dist/cjs/graphql/fragments/selected-option.generated.js +2 -6
  40. package/dist/cjs/graphql/fragments/variant.generated.js +2 -6
  41. package/dist/cjs/graphql/mutations/page-view-up.generated.js +3 -7
  42. package/dist/cjs/graphql/queries/collection-detail-filter.generated.js +2 -16
  43. package/dist/cjs/graphql/queries/collection.generated.js +2 -14
  44. package/dist/cjs/graphql/queries/collections.generated.js +2 -9
  45. package/dist/cjs/graphql/queries/preview-page.generated.js +2 -14
  46. package/dist/cjs/graphql/queries/product-little-detail.generated.js +2 -11
  47. package/dist/cjs/graphql/queries/product-medias.generated.js +2 -8
  48. package/dist/cjs/graphql/queries/product-value-label.generated.js +7 -0
  49. package/dist/cjs/graphql/queries/product-variants.generated.js +2 -10
  50. package/dist/cjs/graphql/queries/products.generated.js +3 -17
  51. package/dist/cjs/graphql/queries/published-theme-pages.generated.js +2 -14
  52. package/dist/cjs/graphql/queries/store-property.generated.js +2 -6
  53. package/dist/cjs/helpers/GlobalEvent.js +1 -19
  54. package/dist/cjs/helpers/background.js +1 -109
  55. package/dist/cjs/helpers/borders.js +4 -183
  56. package/dist/cjs/helpers/clone-deep.js +1 -5
  57. package/dist/cjs/helpers/cls.js +1 -16
  58. package/dist/cjs/helpers/colors.js +1 -183
  59. package/dist/cjs/helpers/compose-advance-style.js +1 -188
  60. package/dist/cjs/helpers/constant.js +1 -23
  61. package/dist/cjs/helpers/convert.js +1 -7
  62. package/dist/cjs/helpers/css-variable.js +1 -7
  63. package/dist/cjs/helpers/email.js +1 -11
  64. package/dist/cjs/helpers/flatten-connection.js +1 -9
  65. package/dist/cjs/helpers/get-resonsive-value.js +1 -31
  66. package/dist/cjs/helpers/get-shortname.js +1 -92
  67. package/dist/cjs/helpers/is-browser.js +1 -9
  68. package/dist/cjs/helpers/is-defined.js +1 -7
  69. package/dist/cjs/helpers/is-empty-children.js +1 -12
  70. package/dist/cjs/helpers/is-safari.js +1 -9
  71. package/dist/cjs/helpers/layout.js +1 -59
  72. package/dist/cjs/helpers/load-script.js +1 -31
  73. package/dist/cjs/helpers/make-style.js +1 -128
  74. package/dist/cjs/helpers/normalize-builder-data.js +1 -23
  75. package/dist/cjs/helpers/prefetch-queries.js +1 -78
  76. package/dist/cjs/helpers/product.js +1 -31
  77. package/dist/cjs/helpers/queries/get-collection.js +1 -220
  78. package/dist/cjs/helpers/queries/get-collections.js +1 -21
  79. package/dist/cjs/helpers/queries/get-product-by-slug.js +1 -125
  80. package/dist/cjs/helpers/queries/get-product.js +1 -154
  81. package/dist/cjs/helpers/queries/get-products.js +1 -161
  82. package/dist/cjs/helpers/query.js +1 -29
  83. package/dist/cjs/helpers/radius.js +6 -134
  84. package/dist/cjs/helpers/render.js +1 -71
  85. package/dist/cjs/helpers/shadow.js +1 -56
  86. package/dist/cjs/helpers/size.js +4 -35
  87. package/dist/cjs/helpers/spacing.js +1 -43
  88. package/dist/cjs/helpers/tracking/fpixel.js +1 -28
  89. package/dist/cjs/helpers/tracking/gtag.js +1 -93
  90. package/dist/cjs/helpers/tracking/tiktokpixel.js +1 -17
  91. package/dist/cjs/helpers/typography.js +17 -105
  92. package/dist/cjs/helpers/variant.js +1 -8
  93. package/dist/cjs/hooks/cart/use-add-to-cart.js +1 -20
  94. package/dist/cjs/hooks/cart/use-cart-data.js +1 -28
  95. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +1 -20
  96. package/dist/cjs/hooks/cart/use-cart-note-update.js +1 -20
  97. package/dist/cjs/hooks/cart/use-create-cart.js +1 -22
  98. package/dist/cjs/hooks/cart/use-remove-cart-item.js +1 -20
  99. package/dist/cjs/hooks/cart/use-update-cart-item.js +1 -20
  100. package/dist/cjs/hooks/shop/use-collection-query.js +1 -22
  101. package/dist/cjs/hooks/shop/use-collections-query.js +1 -17
  102. package/dist/cjs/hooks/shop/use-product-query.js +1 -22
  103. package/dist/cjs/hooks/shop/use-products-query.js +1 -22
  104. package/dist/cjs/hooks/shop.js +1 -126
  105. package/dist/cjs/hooks/use-current-device.js +1 -21
  106. package/dist/cjs/hooks/use-lazy-video.js +1 -15
  107. package/dist/cjs/hooks/useCartId.js +1 -44
  108. package/dist/cjs/hooks/useCartLine.js +1 -11
  109. package/dist/cjs/hooks/useCartUI.js +1 -48
  110. package/dist/cjs/hooks/useCollection.js +1 -9
  111. package/dist/cjs/hooks/useFetchHandle.js +1 -13
  112. package/dist/cjs/hooks/useFormatMoney.js +1 -58
  113. package/dist/cjs/hooks/useInitialSwatchesOptions.js +1 -0
  114. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +1 -10
  115. package/dist/cjs/hooks/useLoadScript.js +1 -32
  116. package/dist/cjs/hooks/useMoney.js +1 -84
  117. package/dist/cjs/hooks/usePrevious.js +1 -19
  118. package/dist/cjs/hooks/useProduct.js +1 -127
  119. package/dist/cjs/hooks/useProductList.js +1 -21
  120. package/dist/cjs/hooks/useSuspenseFetch.js +1 -27
  121. package/dist/cjs/hooks/useSwatchesOptions.js +1 -41
  122. package/dist/cjs/index.js +1 -290
  123. package/dist/cjs/types/global-style.js +1 -14
  124. package/dist/cjs/types/shop.js +1 -2
  125. package/dist/esm/components/AddOn.js +1 -14
  126. package/dist/esm/components/ComponentWrapper.js +1 -24
  127. package/dist/esm/components/ComponentWrapperPreview.js +1 -68
  128. package/dist/esm/components/Empty.js +1 -3
  129. package/dist/esm/components/Render.js +1 -61
  130. package/dist/esm/components/Render.liquid.js +15 -153
  131. package/dist/esm/components/RenderBlock.js +1 -50
  132. package/dist/esm/components/RenderCustomCode.js +5 -0
  133. package/dist/esm/components/RenderPreview.js +1 -62
  134. package/dist/esm/components/RenderSection.js +1 -19
  135. package/dist/esm/components/constant.js +1 -37
  136. package/dist/esm/components/src/product/helpers/variant-presets.js +1 -0
  137. package/dist/esm/contexts/AddonContext.js +1 -32
  138. package/dist/esm/contexts/BuilderComponent.js +1 -31
  139. package/dist/esm/contexts/BuilderContext.js +1 -32
  140. package/dist/esm/contexts/BuilderPreviewContext.js +1 -367
  141. package/dist/esm/contexts/CartLineContext.js +1 -26
  142. package/dist/esm/contexts/CollectionContext.js +1 -35
  143. package/dist/esm/contexts/ModalContext.js +1 -44
  144. package/dist/esm/contexts/ProductContext.js +1 -146
  145. package/dist/esm/contexts/ProductListContext.js +1 -28
  146. package/dist/esm/contexts/SectionContext.js +1 -49
  147. package/dist/esm/contexts/ShopContext.js +1 -67
  148. package/dist/esm/graphql/fragments/analytic.generated.js +2 -4
  149. package/dist/esm/graphql/fragments/collection-detail.generated.js +2 -4
  150. package/dist/esm/graphql/fragments/collection-product.generated.js +2 -4
  151. package/dist/esm/graphql/fragments/collection.generated.js +2 -4
  152. package/dist/esm/graphql/fragments/custom-code.generated.js +2 -4
  153. package/dist/esm/graphql/fragments/data-seo.generated.js +2 -4
  154. package/dist/esm/graphql/fragments/media.generated.js +3 -4
  155. package/dist/esm/graphql/fragments/product-little.generated.js +2 -4
  156. package/dist/esm/graphql/fragments/product-option-value.generated.js +2 -4
  157. package/dist/esm/graphql/fragments/product-option.generated.js +2 -4
  158. package/dist/esm/graphql/fragments/product.generated.js +2 -4
  159. package/dist/esm/graphql/fragments/published-custom-section.generated.js +2 -4
  160. package/dist/esm/graphql/fragments/published-page-section.generated.js +2 -4
  161. package/dist/esm/graphql/fragments/published-theme-page.generated.js +2 -4
  162. package/dist/esm/graphql/fragments/published-theme-style.generated.js +2 -4
  163. package/dist/esm/graphql/fragments/selected-option.generated.js +2 -4
  164. package/dist/esm/graphql/fragments/variant.generated.js +2 -4
  165. package/dist/esm/graphql/mutations/page-view-up.generated.js +3 -5
  166. package/dist/esm/graphql/queries/collection-detail-filter.generated.js +10 -22
  167. package/dist/esm/graphql/queries/collection.generated.js +8 -18
  168. package/dist/esm/graphql/queries/collections.generated.js +3 -8
  169. package/dist/esm/graphql/queries/preview-page.generated.js +8 -18
  170. package/dist/esm/graphql/queries/product-little-detail.generated.js +5 -12
  171. package/dist/esm/graphql/queries/product-medias.generated.js +2 -6
  172. package/dist/esm/graphql/queries/product-value-label.generated.js +7 -0
  173. package/dist/esm/graphql/queries/product-variants.generated.js +4 -10
  174. package/dist/esm/graphql/queries/products.generated.js +9 -20
  175. package/dist/esm/graphql/queries/published-theme-pages.generated.js +8 -18
  176. package/dist/esm/graphql/queries/store-property.generated.js +2 -4
  177. package/dist/esm/helpers/GlobalEvent.js +1 -15
  178. package/dist/esm/helpers/background.js +1 -106
  179. package/dist/esm/helpers/borders.js +4 -175
  180. package/dist/esm/helpers/clone-deep.js +1 -3
  181. package/dist/esm/helpers/cls.js +1 -14
  182. package/dist/esm/helpers/colors.js +1 -168
  183. package/dist/esm/helpers/compose-advance-style.js +1 -185
  184. package/dist/esm/helpers/constant.js +1 -19
  185. package/dist/esm/helpers/convert.js +1 -4
  186. package/dist/esm/helpers/css-variable.js +1 -5
  187. package/dist/esm/helpers/email.js +1 -6
  188. package/dist/esm/helpers/flatten-connection.js +1 -7
  189. package/dist/esm/helpers/get-resonsive-value.js +1 -27
  190. package/dist/esm/helpers/get-shortname.js +1 -90
  191. package/dist/esm/helpers/is-browser.js +1 -5
  192. package/dist/esm/helpers/is-defined.js +1 -5
  193. package/dist/esm/helpers/is-empty-children.js +1 -7
  194. package/dist/esm/helpers/is-safari.js +1 -5
  195. package/dist/esm/helpers/layout.js +1 -54
  196. package/dist/esm/helpers/load-script.js +1 -29
  197. package/dist/esm/helpers/make-style.js +1 -117
  198. package/dist/esm/helpers/normalize-builder-data.js +1 -21
  199. package/dist/esm/helpers/prefetch-queries.js +1 -76
  200. package/dist/esm/helpers/product.js +1 -28
  201. package/dist/esm/helpers/queries/get-collection.js +1 -217
  202. package/dist/esm/helpers/queries/get-collections.js +1 -19
  203. package/dist/esm/helpers/queries/get-product-by-slug.js +1 -123
  204. package/dist/esm/helpers/queries/get-product.js +1 -150
  205. package/dist/esm/helpers/queries/get-products.js +1 -159
  206. package/dist/esm/helpers/query.js +1 -25
  207. package/dist/esm/helpers/radius.js +6 -127
  208. package/dist/esm/helpers/render.js +1 -64
  209. package/dist/esm/helpers/shadow.js +1 -51
  210. package/dist/esm/helpers/size.js +4 -31
  211. package/dist/esm/helpers/spacing.js +1 -40
  212. package/dist/esm/helpers/tracking/fpixel.js +1 -24
  213. package/dist/esm/helpers/tracking/gtag.js +1 -87
  214. package/dist/esm/helpers/tracking/tiktokpixel.js +1 -15
  215. package/dist/esm/helpers/typography.js +17 -96
  216. package/dist/esm/helpers/variant.js +1 -6
  217. package/dist/esm/hooks/cart/use-add-to-cart.js +1 -18
  218. package/dist/esm/hooks/cart/use-cart-data.js +1 -26
  219. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +1 -18
  220. package/dist/esm/hooks/cart/use-cart-note-update.js +1 -18
  221. package/dist/esm/hooks/cart/use-create-cart.js +1 -20
  222. package/dist/esm/hooks/cart/use-remove-cart-item.js +1 -18
  223. package/dist/esm/hooks/cart/use-update-cart-item.js +1 -18
  224. package/dist/esm/hooks/shop/use-collection-query.js +1 -20
  225. package/dist/esm/hooks/shop/use-collections-query.js +1 -15
  226. package/dist/esm/hooks/shop/use-product-query.js +1 -20
  227. package/dist/esm/hooks/shop/use-products-query.js +1 -20
  228. package/dist/esm/hooks/shop.js +1 -111
  229. package/dist/esm/hooks/use-current-device.js +1 -19
  230. package/dist/esm/hooks/use-lazy-video.js +1 -13
  231. package/dist/esm/hooks/useCartId.js +1 -40
  232. package/dist/esm/hooks/useCartLine.js +1 -7
  233. package/dist/esm/hooks/useCartUI.js +1 -44
  234. package/dist/esm/hooks/useCollection.js +1 -7
  235. package/dist/esm/hooks/useFetchHandle.js +1 -11
  236. package/dist/esm/hooks/useFormatMoney.js +1 -56
  237. package/dist/esm/hooks/useInitialSwatchesOptions.js +1 -0
  238. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +1 -6
  239. package/dist/esm/hooks/useLoadScript.js +1 -28
  240. package/dist/esm/hooks/useMoney.js +1 -80
  241. package/dist/esm/hooks/usePrevious.js +1 -17
  242. package/dist/esm/hooks/useProduct.js +1 -114
  243. package/dist/esm/hooks/useProductList.js +1 -16
  244. package/dist/esm/hooks/useSuspenseFetch.js +1 -23
  245. package/dist/esm/hooks/useSwatchesOptions.js +1 -37
  246. package/dist/esm/index.js +1 -92
  247. package/dist/esm/types/global-style.js +1 -11
  248. package/dist/types/index.d.ts +1213 -1031
  249. package/package.json +5 -5
@@ -1,34 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var zustand = require('zustand');
5
- var react = require('react');
6
- var Empty = require('../components/Empty.js');
7
-
8
- const BuilderComponentContext = /*#__PURE__*/ react.createContext(null);
9
- const createBuilderComponentStore = (components)=>zustand.createStore((_, get)=>({
10
- components,
11
- getItem: (id)=>{
12
- return get().components[id];
13
- }
14
- }));
15
- const BuilderComponentProvider = ({ children , components , ...passProps })=>{
16
- return /*#__PURE__*/ jsxRuntime.jsx(BuilderComponentContext.Provider, {
17
- ...passProps,
18
- value: createBuilderComponentStore(components),
19
- children: children
20
- });
21
- };
22
- // export const useBuilderComponent = (id?: string) => {
23
- // return useStore((s) => (id ? s.getItem(id) ?? Empty : Empty));
24
- // };
25
- const useBuilderComponent = (id)=>{
26
- const store = react.useContext(BuilderComponentContext);
27
- if (!store) {
28
- throw new Error('useBuilderComponent must be used within a BuilderComponentProvider');
29
- }
30
- return zustand.useStore(store, (s)=>id ? s.getItem(id) ?? Empty.default : Empty.default);
31
- };
32
-
33
- exports.BuilderComponentProvider = BuilderComponentProvider;
34
- exports.useBuilderComponent = useBuilderComponent;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),zustand=require("zustand"),react=require("react"),Empty=require("../components/Empty.js");const BuilderComponentContext=react.createContext(null),createBuilderComponentStore=e=>zustand.createStore((t,r)=>({components:e,getItem:e=>r().components[e]})),BuilderComponentProvider=({children:e,components:t,...r})=>jsxRuntime.jsx(BuilderComponentContext.Provider,{...r,value:createBuilderComponentStore(t),children:e}),useBuilderComponent=e=>{let t=react.useContext(BuilderComponentContext);if(!t)throw Error("useBuilderComponent must be used within a BuilderComponentProvider");return zustand.useStore(t,t=>e?t.getItem(e)??Empty.default:Empty.default)};exports.BuilderComponentProvider=BuilderComponentProvider,exports.useBuilderComponent=useBuilderComponent;
@@ -1,35 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var zustand = require('zustand');
6
-
7
- const BuilderContext = /*#__PURE__*/ react.createContext(null);
8
- const createBuilderProvider = (data)=>zustand.createStore((_, get)=>({
9
- state: data,
10
- getItem: (id)=>{
11
- return get().state[id];
12
- }
13
- }));
14
- const BuilderProvider = ({ children , state , lazy , priority , ...passProps })=>{
15
- const Component = lazy ? react.Suspense : react.Fragment;
16
- const store = createBuilderProvider(state);
17
- return /*#__PURE__*/ jsxRuntime.jsx(Component, {
18
- children: /*#__PURE__*/ jsxRuntime.jsx(BuilderContext.Provider, {
19
- ...passProps,
20
- value: store,
21
- children: children
22
- })
23
- });
24
- };
25
- // export const useBuilderStore = useStore;
26
- const useBuilderStore = (selector, equalityFn)=>{
27
- const store = react.useContext(BuilderContext);
28
- if (!store) {
29
- throw new Error('useBuilderStore must be used within a BuilderProvider');
30
- }
31
- return zustand.useStore(store, selector, equalityFn);
32
- };
33
-
34
- exports.BuilderProvider = BuilderProvider;
35
- exports.useBuilderStore = useBuilderStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");const BuilderContext=react.createContext(null),createBuilderProvider=e=>zustand.createStore((r,t)=>({state:e,getItem:e=>t().state[e]})),BuilderProvider=({children:e,state:r,lazy:t,priority:u,...i})=>{let d=t?react.Suspense:react.Fragment,s=createBuilderProvider(r);return jsxRuntime.jsx(d,{children:jsxRuntime.jsx(BuilderContext.Provider,{...i,value:s,children:e})})},useBuilderStore=(e,r)=>{let t=react.useContext(BuilderContext);if(!t)throw Error("useBuilderStore must be used within a BuilderProvider");return zustand.useStore(t,e,r)};exports.BuilderProvider=BuilderProvider,exports.useBuilderStore=useBuilderStore;
@@ -1,370 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var zustand = require('zustand');
6
- var cloneDeep = require('../helpers/clone-deep.js');
7
- var normalizeBuilderData = require('../helpers/normalize-builder-data.js');
8
-
9
- function moveByIndex(input, from, to) {
10
- const elm = input.splice(from, 1)[0];
11
- if (elm !== undefined) {
12
- input.splice(to, 0, elm);
13
- }
14
- }
15
- function removeByKey(id, data) {
16
- const item = data[id];
17
- if (item) {
18
- delete data[id];
19
- if (item.type !== 'section') {
20
- item.childrens?.map((child)=>removeByKey(child, data));
21
- }
22
- }
23
- }
24
- const BuilderPreviewContext = /*#__PURE__*/ react.createContext(null);
25
- const root = {
26
- uid: 'ROOT',
27
- tag: 'Root',
28
- label: 'Root',
29
- childrens: []
30
- };
31
- const createBuilderPreviewProvider = (args)=>zustand.createStore((set, get)=>({
32
- state: args,
33
- loaded: false,
34
- addItem: (args)=>{
35
- const { position , data } = args;
36
- const state = get().state;
37
- const dateModified = Date.now();
38
- if (args.type === 'section') {
39
- if (!Array.isArray(data)) {
40
- const sectionId = data.uid;
41
- // Section only add to ROOT
42
- const ROOT = state.ROOT;
43
- if (!ROOT.childrens) {
44
- ROOT.childrens = [
45
- sectionId
46
- ];
47
- } else {
48
- ROOT.childrens.splice(position ?? 0, 0, sectionId);
49
- }
50
- ROOT.dateModified = dateModified;
51
- set({
52
- state: {
53
- ...state,
54
- [sectionId]: {
55
- uid: sectionId,
56
- type: 'section',
57
- label: data.label
58
- },
59
- ROOT: cloneDeep.cloneDeep(ROOT)
60
- }
61
- });
62
- }
63
- } else {
64
- const { id , data } = args;
65
- const parent = id ? state[id] ?? state.ROOT : state.ROOT;
66
- // Can't add item to section
67
- if (parent.type === 'section') return;
68
- if (Array.isArray(data)) {
69
- const childrens = data.map((v)=>v.uid);
70
- const newState = data.reduceRight((prev, current)=>{
71
- const item = normalizeBuilderData.normalizeBuilderData(current);
72
- return {
73
- ...prev,
74
- ...item
75
- };
76
- }, {});
77
- parent.dateModified = dateModified;
78
- parent.childrens = parent.childrens ?? [];
79
- parent.childrens.splice(position ?? 0, 0, ...childrens);
80
- set({
81
- state: {
82
- ...state,
83
- ...newState,
84
- [parent.uid]: cloneDeep.cloneDeep(parent)
85
- }
86
- });
87
- } else {
88
- const item = normalizeBuilderData.normalizeBuilderData(data);
89
- parent.dateModified = dateModified;
90
- parent.childrens = parent.childrens ?? [];
91
- parent.childrens.splice(position ?? 0, 0, data.uid);
92
- set({
93
- state: {
94
- ...state,
95
- ...item,
96
- [parent.uid]: cloneDeep.cloneDeep(parent)
97
- }
98
- });
99
- }
100
- }
101
- },
102
- changeItemProp: (id, data, group)=>{
103
- if (!group || ![
104
- 'setting',
105
- 'style',
106
- 'advanced'
107
- ].includes(group)) return;
108
- const state = get().state;
109
- const item = state[id];
110
- // Ignore section
111
- if (item?.type === 'section') return;
112
- if (item) {
113
- const dateModified = Date.now();
114
- item.dateModified = dateModified;
115
- switch(group){
116
- case 'setting':
117
- set({
118
- state: {
119
- ...state,
120
- [id]: {
121
- ...item,
122
- settings: {
123
- ...item.settings,
124
- ...data
125
- }
126
- }
127
- }
128
- });
129
- break;
130
- case 'style':
131
- set({
132
- state: {
133
- ...state,
134
- [id]: {
135
- ...item,
136
- styles: {
137
- ...item.styles,
138
- ...data
139
- }
140
- }
141
- }
142
- });
143
- break;
144
- case 'advanced':
145
- set({
146
- state: {
147
- ...state,
148
- [id]: {
149
- ...item,
150
- advanced: {
151
- ...item.advanced,
152
- ...data
153
- }
154
- }
155
- }
156
- });
157
- break;
158
- }
159
- }
160
- },
161
- changeItemPropByKey: ({ id , key , data , group })=>{
162
- if (!group || ![
163
- 'setting',
164
- 'style',
165
- 'advanced'
166
- ].includes(group)) return;
167
- const state = get().state;
168
- const item = state[id];
169
- // Ignore section
170
- if (item?.type === 'section') return;
171
- if (item) {
172
- const itemSetting = {
173
- style: item.styles ?? {},
174
- advanced: item.advanced ?? {},
175
- setting: item.settings ?? {}
176
- };
177
- if (data === undefined) {
178
- console.warn('Data is undefined');
179
- delete itemSetting[group][key];
180
- } else {
181
- itemSetting[group][key] = data;
182
- }
183
- set({
184
- state: {
185
- ...state,
186
- [id]: {
187
- ...item,
188
- settings: {
189
- ...itemSetting.setting
190
- },
191
- styles: {
192
- ...itemSetting.style
193
- },
194
- advanced: {
195
- ...itemSetting.advanced
196
- }
197
- }
198
- }
199
- });
200
- }
201
- },
202
- getItem: (id)=>{
203
- return get().state[id];
204
- },
205
- removeItem: (id)=>{
206
- if (id === 'ROOT') {
207
- set({
208
- state: {
209
- ROOT: root
210
- }
211
- });
212
- } else {
213
- const state = get().state;
214
- removeByKey(id, state);
215
- // Get parent node by id
216
- const parent = Object.entries(state).find(([, value])=>value.type !== 'section' && value.childrens?.includes(id));
217
- if (parent) {
218
- const dateModified = Date.now();
219
- const [parentId, parentValue] = parent;
220
- if (parentValue.type === 'section') return;
221
- parentValue.childrens = parentValue.childrens?.filter((child)=>child !== id);
222
- parentValue.dateModified = dateModified;
223
- set({
224
- state: {
225
- ...state,
226
- [parentId]: cloneDeep.cloneDeep(parentValue)
227
- }
228
- });
229
- }
230
- }
231
- },
232
- moveItem: (id, toId, position)=>{
233
- const state = get().state;
234
- const item = state[id];
235
- const moveTo = state[toId];
236
- // Ignore section
237
- if (!item || !moveTo || moveTo.type === 'section') return;
238
- if (item.type === 'section') {
239
- // Section only add to ROOT
240
- const ROOT = state.ROOT;
241
- if (!ROOT.childrens) return;
242
- const currentIndex = ROOT.childrens.findIndex((uid)=>uid === id);
243
- moveByIndex(ROOT.childrens, currentIndex, position ?? 0);
244
- set({
245
- state: {
246
- ...state,
247
- ROOT: cloneDeep.cloneDeep(ROOT)
248
- }
249
- });
250
- } else {
251
- const parent = Object.entries(state).find(([, value])=>value.type !== 'section' && value.childrens?.includes(id));
252
- if (item && parent) {
253
- const dateModified = Date.now();
254
- const [, parentItem] = parent;
255
- // Ignore section
256
- if (parentItem.type === 'section') return;
257
- parentItem.dateModified = dateModified;
258
- if (toId === parentItem.uid && parentItem.childrens) {
259
- // Move item to the same parent
260
- const currentIndex = parentItem.childrens.findIndex((uid)=>uid === id);
261
- if (parentItem.childrens && currentIndex !== position) {
262
- moveByIndex(parentItem.childrens, currentIndex, position ?? 0);
263
- set({
264
- state: {
265
- ...state,
266
- [parentItem.uid]: cloneDeep.cloneDeep(parentItem)
267
- }
268
- });
269
- }
270
- } else {
271
- // Move item to another parent
272
- // Remove item from parent node
273
- parentItem.childrens = parentItem.childrens?.filter((uid)=>uid !== id);
274
- if (moveTo) {
275
- moveTo.dateModified = dateModified;
276
- moveTo.childrens = moveTo.childrens ?? [];
277
- moveTo.childrens.splice(position ?? 0, 0, item.uid);
278
- set({
279
- state: {
280
- ...state,
281
- [moveTo.uid]: cloneDeep.cloneDeep(moveTo),
282
- [parentItem.uid]: cloneDeep.cloneDeep(parentItem)
283
- }
284
- });
285
- }
286
- }
287
- }
288
- }
289
- },
290
- forceChangeState: (data)=>{
291
- set({
292
- state: data,
293
- loaded: true
294
- });
295
- },
296
- initState: (data)=>{
297
- if (Array.isArray(data)) {
298
- const childrens = data.map((v)=>v.uid);
299
- const newState = data.reduceRight((prev, current)=>{
300
- const item = normalizeBuilderData.normalizeBuilderData(current);
301
- return {
302
- ...prev,
303
- ...item
304
- };
305
- }, {});
306
- set({
307
- loaded: true,
308
- state: {
309
- ROOT: {
310
- ...root,
311
- childrens
312
- },
313
- ...newState
314
- }
315
- });
316
- } else {
317
- const newState = normalizeBuilderData.normalizeBuilderData(data);
318
- set({
319
- loaded: true,
320
- state: {
321
- ROOT: {
322
- ...root,
323
- childrens: [
324
- data.uid
325
- ]
326
- },
327
- ...newState
328
- }
329
- });
330
- }
331
- },
332
- addSection: (data, position)=>{
333
- const state = get().state;
334
- const ROOT = state.ROOT;
335
- if (!ROOT.childrens) ROOT.childrens = [];
336
- ROOT.childrens.splice(position ?? 0, 0, data.uid);
337
- set({
338
- state: {
339
- ...state,
340
- ROOT: cloneDeep.cloneDeep(ROOT)
341
- }
342
- });
343
- }
344
- }));
345
- const BuilderPreviewProvider = ({ children , state , lazy , ...passProps })=>{
346
- const Component = lazy ? react.Suspense : react.Fragment;
347
- const value = react.useMemo(()=>{
348
- return createBuilderPreviewProvider(state);
349
- }, [
350
- state
351
- ]);
352
- return /*#__PURE__*/ jsxRuntime.jsx(Component, {
353
- children: /*#__PURE__*/ jsxRuntime.jsx(BuilderPreviewContext.Provider, {
354
- ...passProps,
355
- value: value,
356
- children: children
357
- })
358
- });
359
- };
360
- // export const useBuilderPreviewStore = useStore;
361
- const useBuilderPreviewStore = (selector, equalityFn)=>{
362
- const store = react.useContext(BuilderPreviewContext);
363
- if (!store) {
364
- throw new Error('useBuilderPreviewStore must be used within a BuilderPreviewProvider');
365
- }
366
- return zustand.useStore(store, selector, equalityFn);
367
- };
368
-
369
- exports.BuilderPreviewProvider = BuilderPreviewProvider;
370
- exports.useBuilderPreviewStore = useBuilderPreviewStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand"),cloneDeep=require("../helpers/clone-deep.js"),normalizeBuilderData=require("../helpers/normalize-builder-data.js");function moveByIndex(e,t,i){let r=e.splice(t,1)[0];void 0!==r&&e.splice(i,0,r)}function removeByKey(e,t){let i=t[e];i&&(delete t[e],"section"!==i.type&&i.childrens?.map(e=>removeByKey(e,t)))}const BuilderPreviewContext=react.createContext(null),root={uid:"ROOT",tag:"Root",label:"Root",childrens:[]},createBuilderPreviewProvider=e=>zustand.createStore((t,i)=>({state:e,loaded:!1,addItem:e=>{let{position:r,data:s}=e,d=i().state,l=Date.now();if("section"===e.type){if(!Array.isArray(s)){let e=s.uid,i=d.ROOT;i.childrens?i.childrens.splice(r??0,0,e):i.childrens=[e],i.dateModified=l,t({state:{...d,[e]:{uid:e,type:"section",label:s.label},ROOT:cloneDeep.cloneDeep(i)}})}}else{let{id:i,data:s}=e,n=i?d[i]??d.ROOT:d.ROOT;if("section"===n.type)return;if(Array.isArray(s)){let e=s.map(e=>e.uid),i=s.reduceRight((e,t)=>{let i=normalizeBuilderData.normalizeBuilderData(t);return{...e,...i}},{});n.dateModified=l,n.childrens=n.childrens??[],n.childrens.splice(r??0,0,...e),t({state:{...d,...i,[n.uid]:cloneDeep.cloneDeep(n)}})}else{let e=normalizeBuilderData.normalizeBuilderData(s);n.dateModified=l,n.childrens=n.childrens??[],n.childrens.splice(r??0,0,s.uid),t({state:{...d,...e,[n.uid]:cloneDeep.cloneDeep(n)}})}}},changeItemProp:(e,r,s)=>{if(!s||!["setting","style","advanced"].includes(s))return;let d=i().state,l=d[e];if(l?.type!=="section"&&l){let i=Date.now();switch(l.dateModified=i,s){case"setting":t({state:{...d,[e]:{...l,settings:{...l.settings,...r}}}});break;case"style":t({state:{...d,[e]:{...l,styles:{...l.styles,...r}}}});break;case"advanced":t({state:{...d,[e]:{...l,advanced:{...l.advanced,...r}}}})}}},forceChangeItemProp:(e,r,s)=>{if(!s||!["setting","style","advanced"].includes(s))return;let d=i().state,l=d[e];if(l?.type!=="section"&&l){let i=Date.now();switch(l.dateModified=i,s){case"setting":t({state:{...d,[e]:{...l,settings:r}}});break;case"style":t({state:{...d,[e]:{...l,styles:r}}});break;case"advanced":t({state:{...d,[e]:{...l,advanced:r}}})}}},changeItemPropByKey:({id:e,key:r,data:s,group:d})=>{if(!d||!["setting","style","advanced"].includes(d))return;let l=i().state,n=l[e];if(n?.type!=="section"&&n){let i={style:n.styles??{},advanced:n.advanced??{},setting:n.settings??{}};void 0===s?(console.warn("Data is undefined"),delete i[d][r]):i[d][r]=s,t({state:{...l,[e]:{...n,settings:{...i.setting},styles:{...i.style},advanced:{...i.advanced}}}})}},getItem:e=>i().state[e],removeItem:e=>{if("ROOT"===e)t({state:{ROOT:root}});else{let r=i().state;removeByKey(e,r);let s=Object.entries(r).find(([,t])=>"section"!==t.type&&t.childrens?.includes(e));if(s){let i=Date.now(),[d,l]=s;if("section"===l.type)return;l.childrens=l.childrens?.filter(t=>t!==e),l.dateModified=i,t({state:{...r,[d]:cloneDeep.cloneDeep(l)}})}}},moveItem:(e,r,s)=>{let d=i().state,l=d[e],n=d[r];if(l&&n&&"section"!==n.type){if("section"===l.type){let i=d.ROOT;if(!i.childrens)return;let r=i.childrens.findIndex(t=>t===e);moveByIndex(i.childrens,r,s??0),t({state:{...d,ROOT:cloneDeep.cloneDeep(i)}})}else{let i=Object.entries(d).find(([,t])=>"section"!==t.type&&t.childrens?.includes(e));if(l&&i){let a=Date.now(),[,c]=i;if("section"===c.type)return;if(c.dateModified=a,r===c.uid&&c.childrens){let i=c.childrens.findIndex(t=>t===e);c.childrens&&i!==s&&(moveByIndex(c.childrens,i,s??0),t({state:{...d,[c.uid]:cloneDeep.cloneDeep(c)}}))}else c.childrens=c.childrens?.filter(t=>t!==e),n&&(n.dateModified=a,n.childrens=n.childrens??[],n.childrens.splice(s??0,0,l.uid),t({state:{...d,[n.uid]:cloneDeep.cloneDeep(n),[c.uid]:cloneDeep.cloneDeep(c)}}))}}}},forceChangeState:e=>{t({state:e,loaded:!0})},initState:e=>{if(Array.isArray(e)){let i=e.map(e=>e.uid),r=e.reduceRight((e,t)=>{let i=normalizeBuilderData.normalizeBuilderData(t);return{...e,...i}},{});t({loaded:!0,state:{ROOT:{...root,childrens:i},...r}})}else{let i=normalizeBuilderData.normalizeBuilderData(e);t({loaded:!0,state:{ROOT:{...root,childrens:[e.uid]},...i}})}},addSection:(e,r)=>{let s=i().state,d=s.ROOT;d.childrens||(d.childrens=[]),d.childrens.splice(r??0,0,e.uid),t({state:{...s,ROOT:cloneDeep.cloneDeep(d)}})}})),BuilderPreviewProvider=({children:e,state:t,lazy:i,...r})=>{let s=i?react.Suspense:react.Fragment,d=react.useMemo(()=>createBuilderPreviewProvider(t),[t]);return jsxRuntime.jsx(s,{children:jsxRuntime.jsx(BuilderPreviewContext.Provider,{...r,value:d,children:e})})},useBuilderPreviewStore=(e,t)=>{let i=react.useContext(BuilderPreviewContext);if(!i)throw Error("useBuilderPreviewStore must be used within a BuilderPreviewProvider");return zustand.useStore(i,e,t)};exports.BuilderPreviewProvider=BuilderPreviewProvider,exports.useBuilderPreviewStore=useBuilderPreviewStore;
@@ -1,29 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var zustand = require('zustand');
5
- var react = require('react');
6
-
7
- const CartLineContext = /*#__PURE__*/ react.createContext(null);
8
- const createCartLineStore = (data)=>zustand.createStore(()=>({
9
- ...data
10
- }));
11
- const CartLineProvider = ({ children , line })=>{
12
- return /*#__PURE__*/ jsxRuntime.jsx(CartLineContext.Provider, {
13
- value: createCartLineStore({
14
- line
15
- }),
16
- children: children
17
- }, `${line.id}-${line.quantity}`);
18
- };
19
- // export const useCartLineStore = useStore;
20
- const useCartLineStore = (selector, equalityFn)=>{
21
- const store = react.useContext(CartLineContext);
22
- if (!store) {
23
- throw new Error('useCartLineStore must be used within a CartLineProvider');
24
- }
25
- return zustand.useStore(store, selector, equalityFn);
26
- };
27
-
28
- exports.CartLineProvider = CartLineProvider;
29
- exports.useCartLineStore = useCartLineStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),zustand=require("zustand"),react=require("react");const CartLineContext=react.createContext(null),createCartLineStore=e=>zustand.createStore(()=>({...e})),CartLineProvider=({children:e,line:t})=>jsxRuntime.jsx(CartLineContext.Provider,{value:createCartLineStore({line:t}),children:e},`${t.id}-${t.quantity}`),useCartLineStore=(e,t)=>{let r=react.useContext(CartLineContext);if(!r)throw Error("useCartLineStore must be used within a CartLineProvider");return zustand.useStore(r,e,t)};exports.CartLineProvider=CartLineProvider,exports.useCartLineStore=useCartLineStore;
@@ -1,38 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var zustand = require('zustand');
6
-
7
- const CollectionContext = /*#__PURE__*/ react.createContext(null);
8
- const createCollectionProvider = (data)=>zustand.createStore((set)=>({
9
- ...data,
10
- changeCollectionStore: ({ collection })=>{
11
- set({
12
- collection: collection
13
- });
14
- }
15
- }));
16
- const CollectionProvider = ({ collection , children })=>{
17
- const store = react.useMemo(()=>{
18
- return createCollectionProvider({
19
- collection
20
- });
21
- }, [
22
- collection
23
- ]);
24
- return /*#__PURE__*/ jsxRuntime.jsx(CollectionContext.Provider, {
25
- value: store,
26
- children: children
27
- }, collection?.id);
28
- };
29
- const useCollectionStore = (selector, equalityFn)=>{
30
- const store = react.useContext(CollectionContext);
31
- if (!store) {
32
- throw new Error('useCollectionStore must be used within a useCollectionStore');
33
- }
34
- return zustand.useStore(store, selector, equalityFn);
35
- };
36
-
37
- exports.CollectionProvider = CollectionProvider;
38
- exports.useCollectionStore = useCollectionStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");const CollectionContext=react.createContext(null),createCollectionProvider=e=>zustand.createStore(t=>({...e,changeCollectionStore:({collection:e})=>{t({collection:e})}})),CollectionProvider=({collection:e,children:t})=>{let o=react.useMemo(()=>createCollectionProvider({collection:e}),[e]);return jsxRuntime.jsx(CollectionContext.Provider,{value:o,children:t},e?.id)},useCollectionStore=(e,t)=>{let o=react.useContext(CollectionContext);if(!o)throw Error("useCollectionStore must be used within a useCollectionStore");return zustand.useStore(o,e,t)};exports.CollectionProvider=CollectionProvider,exports.useCollectionStore=useCollectionStore;
@@ -1,47 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var zustand = require('zustand');
6
-
7
- const ModalContext = /*#__PURE__*/ react.createContext(null);
8
- const createModalProvider = (data)=>zustand.createStore((set)=>({
9
- activeId: data,
10
- setModalActive: (id)=>{
11
- window?.parent?.postMessage?.(JSON.stringify({
12
- type: 'active-element',
13
- uid: id
14
- }), '*');
15
- set({
16
- activeId: id
17
- });
18
- },
19
- clearModal: ()=>{
20
- window?.parent?.postMessage?.(JSON.stringify({
21
- type: 'active-element',
22
- uid: null
23
- }), '*');
24
- set({
25
- activeId: undefined
26
- });
27
- }
28
- }));
29
- const ModalProvider = ({ children , activeId , ...passProps })=>{
30
- const store = createModalProvider(activeId);
31
- return /*#__PURE__*/ jsxRuntime.jsx(ModalContext.Provider, {
32
- ...passProps,
33
- value: store,
34
- children: children
35
- });
36
- };
37
- // export const useBuilderStore = useStore;
38
- const useModalStore = (selector, equalityFn)=>{
39
- const store = react.useContext(ModalContext);
40
- if (!store) {
41
- throw new Error('useModalStore must be used within a ModalProvider');
42
- }
43
- return zustand.useStore(store, selector, equalityFn);
44
- };
45
-
46
- exports.ModalProvider = ModalProvider;
47
- exports.useModalStore = useModalStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");const ModalContext=react.createContext(null),createModalProvider=e=>zustand.createStore(t=>({activeId:e,setModalActive:e=>{window?.parent?.postMessage?.(JSON.stringify({type:"active-element",uid:e}),"*"),t({activeId:e})},clearModal:()=>{window?.parent?.postMessage?.(JSON.stringify({type:"active-element",uid:null}),"*"),t({activeId:void 0})}})),ModalProvider=({children:e,activeId:t,...r})=>{let o=createModalProvider(t);return jsxRuntime.jsx(ModalContext.Provider,{...r,value:o,children:e})},useModalStore=(e,t)=>{let r=react.useContext(ModalContext);if(!r)throw Error("useModalStore must be used within a ModalProvider");return zustand.useStore(r,e,t)};exports.ModalProvider=ModalProvider,exports.useModalStore=useModalStore;