@gem-sdk/core 1.13.42 → 1.14.0-moon.210

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 (243) 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/contexts/AddonContext.js +1 -36
  13. package/dist/cjs/contexts/BuilderComponent.js +1 -34
  14. package/dist/cjs/contexts/BuilderContext.js +1 -35
  15. package/dist/cjs/contexts/BuilderPreviewContext.js +1 -370
  16. package/dist/cjs/contexts/CartLineContext.js +1 -29
  17. package/dist/cjs/contexts/CollectionContext.js +1 -38
  18. package/dist/cjs/contexts/ModalContext.js +1 -47
  19. package/dist/cjs/contexts/ProductContext.js +1 -149
  20. package/dist/cjs/contexts/ProductListContext.js +1 -32
  21. package/dist/cjs/contexts/SectionContext.js +1 -53
  22. package/dist/cjs/contexts/ShopContext.js +1 -70
  23. package/dist/cjs/graphql/fragments/analytic.generated.js +2 -6
  24. package/dist/cjs/graphql/fragments/collection-detail.generated.js +2 -6
  25. package/dist/cjs/graphql/fragments/collection-product.generated.js +2 -6
  26. package/dist/cjs/graphql/fragments/collection.generated.js +2 -6
  27. package/dist/cjs/graphql/fragments/custom-code.generated.js +2 -6
  28. package/dist/cjs/graphql/fragments/data-seo.generated.js +2 -6
  29. package/dist/cjs/graphql/fragments/media.generated.js +3 -6
  30. package/dist/cjs/graphql/fragments/product-little.generated.js +2 -6
  31. package/dist/cjs/graphql/fragments/product-option-value.generated.js +2 -6
  32. package/dist/cjs/graphql/fragments/product-option.generated.js +2 -6
  33. package/dist/cjs/graphql/fragments/product.generated.js +2 -6
  34. package/dist/cjs/graphql/fragments/published-custom-section.generated.js +2 -6
  35. package/dist/cjs/graphql/fragments/published-page-section.generated.js +2 -6
  36. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +2 -6
  37. package/dist/cjs/graphql/fragments/published-theme-style.generated.js +2 -6
  38. package/dist/cjs/graphql/fragments/selected-option.generated.js +2 -6
  39. package/dist/cjs/graphql/fragments/variant.generated.js +2 -6
  40. package/dist/cjs/graphql/mutations/page-view-up.generated.js +3 -7
  41. package/dist/cjs/graphql/queries/collection-detail-filter.generated.js +2 -16
  42. package/dist/cjs/graphql/queries/collection.generated.js +2 -14
  43. package/dist/cjs/graphql/queries/collections.generated.js +2 -9
  44. package/dist/cjs/graphql/queries/preview-page.generated.js +2 -14
  45. package/dist/cjs/graphql/queries/product-little-detail.generated.js +2 -11
  46. package/dist/cjs/graphql/queries/product-medias.generated.js +2 -8
  47. package/dist/cjs/graphql/queries/product-variants.generated.js +2 -10
  48. package/dist/cjs/graphql/queries/products.generated.js +3 -17
  49. package/dist/cjs/graphql/queries/published-theme-pages.generated.js +2 -14
  50. package/dist/cjs/graphql/queries/store-property.generated.js +2 -6
  51. package/dist/cjs/helpers/GlobalEvent.js +1 -19
  52. package/dist/cjs/helpers/background.js +1 -109
  53. package/dist/cjs/helpers/borders.js +4 -183
  54. package/dist/cjs/helpers/clone-deep.js +1 -5
  55. package/dist/cjs/helpers/cls.js +1 -16
  56. package/dist/cjs/helpers/colors.js +1 -183
  57. package/dist/cjs/helpers/compose-advance-style.js +1 -188
  58. package/dist/cjs/helpers/constant.js +1 -23
  59. package/dist/cjs/helpers/convert.js +1 -7
  60. package/dist/cjs/helpers/css-variable.js +1 -7
  61. package/dist/cjs/helpers/email.js +1 -11
  62. package/dist/cjs/helpers/flatten-connection.js +1 -9
  63. package/dist/cjs/helpers/get-resonsive-value.js +1 -31
  64. package/dist/cjs/helpers/get-shortname.js +1 -92
  65. package/dist/cjs/helpers/is-browser.js +1 -9
  66. package/dist/cjs/helpers/is-defined.js +1 -7
  67. package/dist/cjs/helpers/is-empty-children.js +1 -12
  68. package/dist/cjs/helpers/is-safari.js +1 -9
  69. package/dist/cjs/helpers/layout.js +1 -59
  70. package/dist/cjs/helpers/load-script.js +1 -31
  71. package/dist/cjs/helpers/make-style.js +1 -128
  72. package/dist/cjs/helpers/normalize-builder-data.js +1 -23
  73. package/dist/cjs/helpers/prefetch-queries.js +1 -78
  74. package/dist/cjs/helpers/product.js +1 -45
  75. package/dist/cjs/helpers/queries/get-collection.js +1 -220
  76. package/dist/cjs/helpers/queries/get-collections.js +1 -21
  77. package/dist/cjs/helpers/queries/get-product-by-slug.js +1 -125
  78. package/dist/cjs/helpers/queries/get-product.js +1 -154
  79. package/dist/cjs/helpers/queries/get-products.js +1 -161
  80. package/dist/cjs/helpers/query.js +1 -29
  81. package/dist/cjs/helpers/radius.js +6 -134
  82. package/dist/cjs/helpers/render.js +1 -71
  83. package/dist/cjs/helpers/shadow.js +1 -56
  84. package/dist/cjs/helpers/size.js +4 -35
  85. package/dist/cjs/helpers/spacing.js +1 -43
  86. package/dist/cjs/helpers/tracking/fpixel.js +1 -28
  87. package/dist/cjs/helpers/tracking/gtag.js +1 -93
  88. package/dist/cjs/helpers/tracking/tiktokpixel.js +1 -17
  89. package/dist/cjs/helpers/typography.js +17 -105
  90. package/dist/cjs/helpers/variant.js +1 -8
  91. package/dist/cjs/hooks/cart/use-add-to-cart.js +1 -20
  92. package/dist/cjs/hooks/cart/use-cart-data.js +1 -28
  93. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +1 -20
  94. package/dist/cjs/hooks/cart/use-cart-note-update.js +1 -20
  95. package/dist/cjs/hooks/cart/use-create-cart.js +1 -22
  96. package/dist/cjs/hooks/cart/use-remove-cart-item.js +1 -20
  97. package/dist/cjs/hooks/cart/use-update-cart-item.js +1 -20
  98. package/dist/cjs/hooks/shop/use-collection-query.js +1 -22
  99. package/dist/cjs/hooks/shop/use-collections-query.js +1 -17
  100. package/dist/cjs/hooks/shop/use-product-query.js +1 -22
  101. package/dist/cjs/hooks/shop/use-products-query.js +1 -22
  102. package/dist/cjs/hooks/shop.js +1 -126
  103. package/dist/cjs/hooks/use-current-device.js +1 -21
  104. package/dist/cjs/hooks/use-lazy-video.js +1 -15
  105. package/dist/cjs/hooks/useCartId.js +1 -44
  106. package/dist/cjs/hooks/useCartLine.js +1 -11
  107. package/dist/cjs/hooks/useCartUI.js +1 -48
  108. package/dist/cjs/hooks/useCollection.js +1 -9
  109. package/dist/cjs/hooks/useFetchHandle.js +1 -13
  110. package/dist/cjs/hooks/useFormatMoney.js +1 -58
  111. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +1 -10
  112. package/dist/cjs/hooks/useLoadScript.js +1 -32
  113. package/dist/cjs/hooks/useMoney.js +1 -84
  114. package/dist/cjs/hooks/usePrevious.js +1 -19
  115. package/dist/cjs/hooks/useProduct.js +1 -124
  116. package/dist/cjs/hooks/useProductList.js +1 -21
  117. package/dist/cjs/hooks/useSuspenseFetch.js +1 -27
  118. package/dist/cjs/hooks/useSwatchesOptions.js +1 -41
  119. package/dist/cjs/index.js +1 -291
  120. package/dist/cjs/types/global-style.js +1 -14
  121. package/dist/cjs/types/shop.js +1 -2
  122. package/dist/esm/components/AddOn.js +1 -14
  123. package/dist/esm/components/ComponentWrapper.js +1 -24
  124. package/dist/esm/components/ComponentWrapperPreview.js +1 -68
  125. package/dist/esm/components/Empty.js +1 -3
  126. package/dist/esm/components/Render.js +1 -61
  127. package/dist/esm/components/Render.liquid.js +15 -153
  128. package/dist/esm/components/RenderBlock.js +1 -50
  129. package/dist/esm/components/RenderCustomCode.js +5 -0
  130. package/dist/esm/components/RenderPreview.js +1 -62
  131. package/dist/esm/components/RenderSection.js +1 -19
  132. package/dist/esm/components/constant.js +1 -37
  133. package/dist/esm/contexts/AddonContext.js +1 -32
  134. package/dist/esm/contexts/BuilderComponent.js +1 -31
  135. package/dist/esm/contexts/BuilderContext.js +1 -32
  136. package/dist/esm/contexts/BuilderPreviewContext.js +1 -367
  137. package/dist/esm/contexts/CartLineContext.js +1 -26
  138. package/dist/esm/contexts/CollectionContext.js +1 -35
  139. package/dist/esm/contexts/ModalContext.js +1 -44
  140. package/dist/esm/contexts/ProductContext.js +1 -146
  141. package/dist/esm/contexts/ProductListContext.js +1 -28
  142. package/dist/esm/contexts/SectionContext.js +1 -49
  143. package/dist/esm/contexts/ShopContext.js +1 -67
  144. package/dist/esm/graphql/fragments/analytic.generated.js +2 -4
  145. package/dist/esm/graphql/fragments/collection-detail.generated.js +2 -4
  146. package/dist/esm/graphql/fragments/collection-product.generated.js +2 -4
  147. package/dist/esm/graphql/fragments/collection.generated.js +2 -4
  148. package/dist/esm/graphql/fragments/custom-code.generated.js +2 -4
  149. package/dist/esm/graphql/fragments/data-seo.generated.js +2 -4
  150. package/dist/esm/graphql/fragments/media.generated.js +3 -4
  151. package/dist/esm/graphql/fragments/product-little.generated.js +2 -4
  152. package/dist/esm/graphql/fragments/product-option-value.generated.js +2 -4
  153. package/dist/esm/graphql/fragments/product-option.generated.js +2 -4
  154. package/dist/esm/graphql/fragments/product.generated.js +2 -4
  155. package/dist/esm/graphql/fragments/published-custom-section.generated.js +2 -4
  156. package/dist/esm/graphql/fragments/published-page-section.generated.js +2 -4
  157. package/dist/esm/graphql/fragments/published-theme-page.generated.js +2 -4
  158. package/dist/esm/graphql/fragments/published-theme-style.generated.js +2 -4
  159. package/dist/esm/graphql/fragments/selected-option.generated.js +2 -4
  160. package/dist/esm/graphql/fragments/variant.generated.js +2 -4
  161. package/dist/esm/graphql/mutations/page-view-up.generated.js +3 -5
  162. package/dist/esm/graphql/queries/collection-detail-filter.generated.js +10 -22
  163. package/dist/esm/graphql/queries/collection.generated.js +8 -18
  164. package/dist/esm/graphql/queries/collections.generated.js +3 -8
  165. package/dist/esm/graphql/queries/preview-page.generated.js +8 -18
  166. package/dist/esm/graphql/queries/product-little-detail.generated.js +5 -12
  167. package/dist/esm/graphql/queries/product-medias.generated.js +2 -6
  168. package/dist/esm/graphql/queries/product-variants.generated.js +4 -10
  169. package/dist/esm/graphql/queries/products.generated.js +9 -20
  170. package/dist/esm/graphql/queries/published-theme-pages.generated.js +8 -18
  171. package/dist/esm/graphql/queries/store-property.generated.js +2 -4
  172. package/dist/esm/helpers/GlobalEvent.js +1 -15
  173. package/dist/esm/helpers/background.js +1 -106
  174. package/dist/esm/helpers/borders.js +4 -175
  175. package/dist/esm/helpers/clone-deep.js +1 -3
  176. package/dist/esm/helpers/cls.js +1 -14
  177. package/dist/esm/helpers/colors.js +1 -168
  178. package/dist/esm/helpers/compose-advance-style.js +1 -185
  179. package/dist/esm/helpers/constant.js +1 -19
  180. package/dist/esm/helpers/convert.js +1 -4
  181. package/dist/esm/helpers/css-variable.js +1 -5
  182. package/dist/esm/helpers/email.js +1 -6
  183. package/dist/esm/helpers/flatten-connection.js +1 -7
  184. package/dist/esm/helpers/get-resonsive-value.js +1 -27
  185. package/dist/esm/helpers/get-shortname.js +1 -90
  186. package/dist/esm/helpers/is-browser.js +1 -5
  187. package/dist/esm/helpers/is-defined.js +1 -5
  188. package/dist/esm/helpers/is-empty-children.js +1 -7
  189. package/dist/esm/helpers/is-safari.js +1 -5
  190. package/dist/esm/helpers/layout.js +1 -54
  191. package/dist/esm/helpers/load-script.js +1 -29
  192. package/dist/esm/helpers/make-style.js +1 -117
  193. package/dist/esm/helpers/normalize-builder-data.js +1 -21
  194. package/dist/esm/helpers/prefetch-queries.js +1 -76
  195. package/dist/esm/helpers/product.js +1 -41
  196. package/dist/esm/helpers/queries/get-collection.js +1 -217
  197. package/dist/esm/helpers/queries/get-collections.js +1 -19
  198. package/dist/esm/helpers/queries/get-product-by-slug.js +1 -123
  199. package/dist/esm/helpers/queries/get-product.js +1 -150
  200. package/dist/esm/helpers/queries/get-products.js +1 -159
  201. package/dist/esm/helpers/query.js +1 -25
  202. package/dist/esm/helpers/radius.js +6 -127
  203. package/dist/esm/helpers/render.js +1 -64
  204. package/dist/esm/helpers/shadow.js +1 -51
  205. package/dist/esm/helpers/size.js +4 -31
  206. package/dist/esm/helpers/spacing.js +1 -40
  207. package/dist/esm/helpers/tracking/fpixel.js +1 -24
  208. package/dist/esm/helpers/tracking/gtag.js +1 -87
  209. package/dist/esm/helpers/tracking/tiktokpixel.js +1 -15
  210. package/dist/esm/helpers/typography.js +17 -96
  211. package/dist/esm/helpers/variant.js +1 -6
  212. package/dist/esm/hooks/cart/use-add-to-cart.js +1 -18
  213. package/dist/esm/hooks/cart/use-cart-data.js +1 -26
  214. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +1 -18
  215. package/dist/esm/hooks/cart/use-cart-note-update.js +1 -18
  216. package/dist/esm/hooks/cart/use-create-cart.js +1 -20
  217. package/dist/esm/hooks/cart/use-remove-cart-item.js +1 -18
  218. package/dist/esm/hooks/cart/use-update-cart-item.js +1 -18
  219. package/dist/esm/hooks/shop/use-collection-query.js +1 -20
  220. package/dist/esm/hooks/shop/use-collections-query.js +1 -15
  221. package/dist/esm/hooks/shop/use-product-query.js +1 -20
  222. package/dist/esm/hooks/shop/use-products-query.js +1 -20
  223. package/dist/esm/hooks/shop.js +1 -111
  224. package/dist/esm/hooks/use-current-device.js +1 -19
  225. package/dist/esm/hooks/use-lazy-video.js +1 -13
  226. package/dist/esm/hooks/useCartId.js +1 -40
  227. package/dist/esm/hooks/useCartLine.js +1 -7
  228. package/dist/esm/hooks/useCartUI.js +1 -44
  229. package/dist/esm/hooks/useCollection.js +1 -7
  230. package/dist/esm/hooks/useFetchHandle.js +1 -11
  231. package/dist/esm/hooks/useFormatMoney.js +1 -56
  232. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +1 -6
  233. package/dist/esm/hooks/useLoadScript.js +1 -28
  234. package/dist/esm/hooks/useMoney.js +1 -80
  235. package/dist/esm/hooks/usePrevious.js +1 -17
  236. package/dist/esm/hooks/useProduct.js +1 -111
  237. package/dist/esm/hooks/useProductList.js +1 -16
  238. package/dist/esm/hooks/useSuspenseFetch.js +1 -23
  239. package/dist/esm/hooks/useSwatchesOptions.js +1 -37
  240. package/dist/esm/index.js +1 -92
  241. package/dist/esm/types/global-style.js +1 -11
  242. package/dist/types/index.d.ts +1092 -1016
  243. package/package.json +2 -2
@@ -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;