@gem-sdk/core 1.11.1-staging-ff93eab1 → 1.12.0-experimental-8f483e48

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 (216) hide show
  1. package/dist/cjs/components/AddOn.js +2 -2
  2. package/dist/cjs/components/ComponentWrapper.js +6 -13
  3. package/dist/cjs/components/ComponentWrapperPreview.js +5 -15
  4. package/dist/cjs/components/Empty.js +1 -1
  5. package/dist/cjs/components/Render.js +10 -46
  6. package/dist/cjs/components/Render.liquid.js +86 -71
  7. package/dist/cjs/components/RenderBlock.js +6 -39
  8. package/dist/cjs/components/RenderPreview.js +10 -47
  9. package/dist/cjs/components/RenderSection.js +5 -9
  10. package/dist/cjs/components/constant.js +1 -1
  11. package/dist/cjs/contexts/AddonContext.js +8 -18
  12. package/dist/cjs/contexts/BuilderComponent.js +12 -15
  13. package/dist/cjs/contexts/BuilderContext.js +11 -16
  14. package/dist/cjs/contexts/BuilderPreviewContext.js +292 -301
  15. package/dist/cjs/contexts/CartLineContext.js +8 -12
  16. package/dist/cjs/contexts/CollectionContext.js +16 -20
  17. package/dist/cjs/contexts/ModalContext.js +16 -29
  18. package/dist/cjs/contexts/ProductContext.js +91 -111
  19. package/dist/cjs/contexts/ProductListContext.js +8 -15
  20. package/dist/cjs/contexts/SectionContext.js +28 -31
  21. package/dist/cjs/contexts/ShopContext.js +29 -50
  22. package/dist/cjs/graphql/fragments/analytic.generated.js +1 -1
  23. package/dist/cjs/graphql/fragments/collection-detail.generated.js +1 -1
  24. package/dist/cjs/graphql/fragments/collection-product.generated.js +1 -1
  25. package/dist/cjs/graphql/fragments/collection.generated.js +1 -1
  26. package/dist/cjs/graphql/fragments/custom-code.generated.js +1 -1
  27. package/dist/cjs/graphql/fragments/data-seo.generated.js +1 -1
  28. package/dist/cjs/graphql/fragments/media.generated.js +1 -1
  29. package/dist/cjs/graphql/fragments/product-little.generated.js +1 -1
  30. package/dist/cjs/graphql/fragments/product-option-value.generated.js +1 -1
  31. package/dist/cjs/graphql/fragments/product-option.generated.js +1 -1
  32. package/dist/cjs/graphql/fragments/product.generated.js +1 -1
  33. package/dist/cjs/graphql/fragments/published-custom-section.generated.js +1 -1
  34. package/dist/cjs/graphql/fragments/published-page-section.generated.js +1 -1
  35. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +1 -1
  36. package/dist/cjs/graphql/fragments/published-theme-style.generated.js +1 -1
  37. package/dist/cjs/graphql/fragments/selected-option.generated.js +1 -1
  38. package/dist/cjs/graphql/fragments/variant.generated.js +1 -1
  39. package/dist/cjs/graphql/mutations/page-view-up.generated.js +1 -1
  40. package/dist/cjs/graphql/queries/store-property.generated.js +1 -1
  41. package/dist/cjs/helpers/GlobalEvent.js +6 -8
  42. package/dist/cjs/helpers/background.js +27 -24
  43. package/dist/cjs/helpers/borders.js +146 -56
  44. package/dist/cjs/helpers/clone-deep.js +1 -1
  45. package/dist/cjs/helpers/cls.js +7 -3
  46. package/dist/cjs/helpers/colors.js +162 -106
  47. package/dist/cjs/helpers/compose-advance-style.js +67 -53
  48. package/dist/cjs/helpers/constant.js +3 -9
  49. package/dist/cjs/helpers/css-variable.js +1 -1
  50. package/dist/cjs/helpers/email.js +1 -1
  51. package/dist/cjs/helpers/flatten-connection.js +3 -2
  52. package/dist/cjs/helpers/get-resonsive-value.js +8 -7
  53. package/dist/cjs/helpers/get-shortname.js +1 -1
  54. package/dist/cjs/helpers/is-empty-children.js +1 -1
  55. package/dist/cjs/helpers/layout.js +25 -23
  56. package/dist/cjs/helpers/load-script.js +5 -4
  57. package/dist/cjs/helpers/make-style.js +54 -34
  58. package/dist/cjs/helpers/normalize-builder-data.js +4 -10
  59. package/dist/cjs/helpers/prefetch-queries.js +45 -50
  60. package/dist/cjs/helpers/product.js +12 -8
  61. package/dist/cjs/helpers/queries/get-collection.js +65 -86
  62. package/dist/cjs/helpers/queries/get-collections.js +4 -4
  63. package/dist/cjs/helpers/queries/get-product-by-slug.js +28 -42
  64. package/dist/cjs/helpers/queries/get-product.js +38 -68
  65. package/dist/cjs/helpers/queries/get-products.js +46 -65
  66. package/dist/cjs/helpers/query.js +6 -20
  67. package/dist/cjs/helpers/radius.js +31 -29
  68. package/dist/cjs/helpers/render.js +23 -19
  69. package/dist/cjs/helpers/serialize.js +95 -0
  70. package/dist/cjs/helpers/shadow.js +28 -26
  71. package/dist/cjs/helpers/size.js +9 -6
  72. package/dist/cjs/helpers/spacing.js +9 -7
  73. package/dist/cjs/helpers/tracking/fpixel.js +11 -10
  74. package/dist/cjs/helpers/tracking/gtag.js +22 -16
  75. package/dist/cjs/helpers/tracking/tiktokpixel.js +4 -4
  76. package/dist/cjs/helpers/typography.js +3 -3
  77. package/dist/cjs/helpers/variant.js +5 -2
  78. package/dist/cjs/hooks/cart/use-add-to-cart.js +6 -5
  79. package/dist/cjs/hooks/cart/use-cart-data.js +6 -7
  80. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +6 -5
  81. package/dist/cjs/hooks/cart/use-cart-note-update.js +6 -5
  82. package/dist/cjs/hooks/cart/use-create-cart.js +6 -5
  83. package/dist/cjs/hooks/cart/use-remove-cart-item.js +6 -5
  84. package/dist/cjs/hooks/cart/use-update-cart-item.js +6 -5
  85. package/dist/cjs/hooks/shop/use-collection-query.js +3 -6
  86. package/dist/cjs/hooks/shop/use-collections-query.js +3 -5
  87. package/dist/cjs/hooks/shop/use-product-query.js +9 -6
  88. package/dist/cjs/hooks/shop/use-products-query.js +9 -6
  89. package/dist/cjs/hooks/shop.js +45 -57
  90. package/dist/cjs/hooks/use-current-device.js +9 -6
  91. package/dist/cjs/hooks/use-lazy-video.js +4 -3
  92. package/dist/cjs/hooks/useCartId.js +11 -18
  93. package/dist/cjs/hooks/useCartLine.js +2 -2
  94. package/dist/cjs/hooks/useCartUI.js +22 -27
  95. package/dist/cjs/hooks/useCollection.js +2 -2
  96. package/dist/cjs/hooks/useFetchHandle.js +2 -2
  97. package/dist/cjs/hooks/useFormatMoney.js +60 -14
  98. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +1 -0
  99. package/dist/cjs/hooks/useLoadScript.js +7 -8
  100. package/dist/cjs/hooks/useMoney.js +66 -218
  101. package/dist/cjs/hooks/usePrevious.js +4 -5
  102. package/dist/cjs/hooks/useProduct.js +41 -68
  103. package/dist/cjs/hooks/useProductList.js +8 -8
  104. package/dist/cjs/hooks/useSuspenseFetch.js +7 -10
  105. package/dist/cjs/hooks/useSwatchesOptions.js +13 -15
  106. package/dist/cjs/index.js +8 -2
  107. package/dist/cjs/types/global-style.js +2 -9
  108. package/dist/esm/components/AddOn.js +2 -2
  109. package/dist/esm/components/ComponentWrapper.js +6 -13
  110. package/dist/esm/components/ComponentWrapperPreview.js +5 -15
  111. package/dist/esm/components/Empty.js +1 -1
  112. package/dist/esm/components/Render.js +10 -46
  113. package/dist/esm/components/Render.liquid.js +86 -72
  114. package/dist/esm/components/RenderBlock.js +6 -39
  115. package/dist/esm/components/RenderPreview.js +10 -47
  116. package/dist/esm/components/RenderSection.js +5 -9
  117. package/dist/esm/components/constant.js +1 -1
  118. package/dist/esm/contexts/AddonContext.js +9 -19
  119. package/dist/esm/contexts/BuilderComponent.js +13 -16
  120. package/dist/esm/contexts/BuilderContext.js +12 -17
  121. package/dist/esm/contexts/BuilderPreviewContext.js +293 -302
  122. package/dist/esm/contexts/CartLineContext.js +9 -13
  123. package/dist/esm/contexts/CollectionContext.js +17 -21
  124. package/dist/esm/contexts/ModalContext.js +17 -30
  125. package/dist/esm/contexts/ProductContext.js +92 -112
  126. package/dist/esm/contexts/ProductListContext.js +9 -16
  127. package/dist/esm/contexts/SectionContext.js +29 -32
  128. package/dist/esm/contexts/ShopContext.js +30 -51
  129. package/dist/esm/graphql/fragments/analytic.generated.js +1 -1
  130. package/dist/esm/graphql/fragments/collection-detail.generated.js +1 -1
  131. package/dist/esm/graphql/fragments/collection-product.generated.js +1 -1
  132. package/dist/esm/graphql/fragments/collection.generated.js +1 -1
  133. package/dist/esm/graphql/fragments/custom-code.generated.js +1 -1
  134. package/dist/esm/graphql/fragments/data-seo.generated.js +1 -1
  135. package/dist/esm/graphql/fragments/media.generated.js +1 -1
  136. package/dist/esm/graphql/fragments/product-little.generated.js +1 -1
  137. package/dist/esm/graphql/fragments/product-option-value.generated.js +1 -1
  138. package/dist/esm/graphql/fragments/product-option.generated.js +1 -1
  139. package/dist/esm/graphql/fragments/product.generated.js +1 -1
  140. package/dist/esm/graphql/fragments/published-custom-section.generated.js +1 -1
  141. package/dist/esm/graphql/fragments/published-page-section.generated.js +1 -1
  142. package/dist/esm/graphql/fragments/published-theme-page.generated.js +1 -1
  143. package/dist/esm/graphql/fragments/published-theme-style.generated.js +1 -1
  144. package/dist/esm/graphql/fragments/selected-option.generated.js +1 -1
  145. package/dist/esm/graphql/fragments/variant.generated.js +1 -1
  146. package/dist/esm/graphql/mutations/page-view-up.generated.js +1 -1
  147. package/dist/esm/graphql/queries/store-property.generated.js +1 -1
  148. package/dist/esm/helpers/GlobalEvent.js +6 -8
  149. package/dist/esm/helpers/background.js +27 -24
  150. package/dist/esm/helpers/borders.js +146 -56
  151. package/dist/esm/helpers/clone-deep.js +1 -1
  152. package/dist/esm/helpers/cls.js +7 -3
  153. package/dist/esm/helpers/colors.js +162 -106
  154. package/dist/esm/helpers/compose-advance-style.js +67 -53
  155. package/dist/esm/helpers/constant.js +3 -9
  156. package/dist/esm/helpers/css-variable.js +1 -1
  157. package/dist/esm/helpers/email.js +1 -1
  158. package/dist/esm/helpers/flatten-connection.js +3 -2
  159. package/dist/esm/helpers/get-resonsive-value.js +8 -7
  160. package/dist/esm/helpers/get-shortname.js +1 -1
  161. package/dist/esm/helpers/is-empty-children.js +1 -1
  162. package/dist/esm/helpers/layout.js +25 -23
  163. package/dist/esm/helpers/load-script.js +5 -4
  164. package/dist/esm/helpers/make-style.js +54 -35
  165. package/dist/esm/helpers/normalize-builder-data.js +4 -10
  166. package/dist/esm/helpers/prefetch-queries.js +46 -51
  167. package/dist/esm/helpers/product.js +12 -8
  168. package/dist/esm/helpers/queries/get-collection.js +65 -86
  169. package/dist/esm/helpers/queries/get-collections.js +4 -4
  170. package/dist/esm/helpers/queries/get-product-by-slug.js +28 -42
  171. package/dist/esm/helpers/queries/get-product.js +38 -68
  172. package/dist/esm/helpers/queries/get-products.js +46 -65
  173. package/dist/esm/helpers/query.js +6 -20
  174. package/dist/esm/helpers/radius.js +31 -29
  175. package/dist/esm/helpers/render.js +23 -20
  176. package/dist/esm/helpers/serialize.js +87 -0
  177. package/dist/esm/helpers/shadow.js +28 -26
  178. package/dist/esm/helpers/size.js +9 -6
  179. package/dist/esm/helpers/spacing.js +9 -7
  180. package/dist/esm/helpers/tracking/fpixel.js +11 -10
  181. package/dist/esm/helpers/tracking/gtag.js +22 -16
  182. package/dist/esm/helpers/tracking/tiktokpixel.js +4 -4
  183. package/dist/esm/helpers/typography.js +3 -3
  184. package/dist/esm/helpers/variant.js +5 -2
  185. package/dist/esm/hooks/cart/use-add-to-cart.js +6 -5
  186. package/dist/esm/hooks/cart/use-cart-data.js +6 -7
  187. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +6 -5
  188. package/dist/esm/hooks/cart/use-cart-note-update.js +6 -5
  189. package/dist/esm/hooks/cart/use-create-cart.js +6 -5
  190. package/dist/esm/hooks/cart/use-remove-cart-item.js +6 -5
  191. package/dist/esm/hooks/cart/use-update-cart-item.js +6 -5
  192. package/dist/esm/hooks/shop/use-collection-query.js +3 -6
  193. package/dist/esm/hooks/shop/use-collections-query.js +3 -5
  194. package/dist/esm/hooks/shop/use-product-query.js +9 -6
  195. package/dist/esm/hooks/shop/use-products-query.js +9 -6
  196. package/dist/esm/hooks/shop.js +45 -58
  197. package/dist/esm/hooks/use-current-device.js +9 -6
  198. package/dist/esm/hooks/use-lazy-video.js +4 -3
  199. package/dist/esm/hooks/useCartId.js +11 -18
  200. package/dist/esm/hooks/useCartLine.js +2 -2
  201. package/dist/esm/hooks/useCartUI.js +22 -27
  202. package/dist/esm/hooks/useCollection.js +2 -2
  203. package/dist/esm/hooks/useFetchHandle.js +2 -2
  204. package/dist/esm/hooks/useFormatMoney.js +61 -13
  205. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +1 -0
  206. package/dist/esm/hooks/useLoadScript.js +7 -8
  207. package/dist/esm/hooks/useMoney.js +66 -218
  208. package/dist/esm/hooks/usePrevious.js +4 -5
  209. package/dist/esm/hooks/useProduct.js +41 -68
  210. package/dist/esm/hooks/useProductList.js +8 -8
  211. package/dist/esm/hooks/useSuspenseFetch.js +7 -10
  212. package/dist/esm/hooks/useSwatchesOptions.js +13 -15
  213. package/dist/esm/index.js +6 -5
  214. package/dist/esm/types/global-style.js +2 -9
  215. package/dist/types/index.d.ts +140 -44
  216. package/package.json +3 -3
@@ -6,13 +6,13 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
  var AddonContext = require('../contexts/AddonContext.js');
7
7
  var shop = require('../hooks/shop.js');
8
8
 
9
- const AddOn = ({ name })=>{
9
+ const AddOn = ({ name }) => {
10
10
  const Comp = AddonContext.useAddon(name);
11
11
  const plugins = shop.usePluginEnable();
12
12
  if (!plugins?.includes(name)) {
13
13
  return null;
14
14
  }
15
- return /*#__PURE__*/ jsxRuntime.jsx(Comp, {});
15
+ return jsxRuntime.jsx(Comp, {});
16
16
  };
17
17
 
18
18
  exports.default = AddOn;
@@ -7,22 +7,15 @@ var react = require('react');
7
7
  var composeAdvanceStyle = require('../helpers/compose-advance-style.js');
8
8
  var constant = require('./constant.js');
9
9
 
10
- const ComponentWrapper = ({ children , ...props })=>{
11
- if (props.type === 'section') return null;
10
+ const ComponentWrapper = ({ children, ...props }) => {
11
+ if (props.type === 'section')
12
+ return null;
12
13
  const style = composeAdvanceStyle.composeAdvanceStyle(props.advanced, props.tag);
13
14
  const advanced = props.advanced;
14
- if (constant.disableWrap.includes(props.tag) && /*#__PURE__*/ react.isValidElement(children)) {
15
- return /*#__PURE__*/ jsxRuntime.jsx(children.type, {
16
- ...children.props,
17
- style,
18
- advanced
19
- });
15
+ if (constant.disableWrap.includes(props.tag) && react.isValidElement(children)) {
16
+ return jsxRuntime.jsx(children.type, { ...children.props, ...{ style, advanced } });
20
17
  }
21
- return /*#__PURE__*/ jsxRuntime.jsx("div", {
22
- style: style,
23
- className: `${props.uid}`,
24
- children: children
25
- });
18
+ return (jsxRuntime.jsx("div", { style: style, className: `${props.uid}`, children: children }));
26
19
  };
27
20
 
28
21
  exports.default = ComponentWrapper;
@@ -7,7 +7,7 @@ var react = require('react');
7
7
  var composeAdvanceStyle = require('../helpers/compose-advance-style.js');
8
8
  var constant = require('./constant.js');
9
9
 
10
- const ComponentWrapperPreview = ({ children , ...props })=>{
10
+ const ComponentWrapperPreview = ({ children, ...props }) => {
11
11
  if (props.type === 'section') {
12
12
  return null;
13
13
  }
@@ -50,23 +50,13 @@ const ComponentWrapperPreview = ({ children , ...props })=>{
50
50
  'data-uid': props.uid,
51
51
  'data-component-type': 'component',
52
52
  'data-component-tag': props.tag,
53
- 'data-component-label': props.label
53
+ 'data-component-label': props.label,
54
54
  };
55
- if (constant.disableWrap.includes(props.tag) && /*#__PURE__*/ react.isValidElement(children)) {
56
- return /*#__PURE__*/ jsxRuntime.jsx(children.type, {
57
- ...children.props,
58
- style,
59
- builderAttrs,
60
- advanced
61
- });
55
+ if (constant.disableWrap.includes(props.tag) && react.isValidElement(children)) {
56
+ return jsxRuntime.jsx(children.type, { ...children.props, ...{ style, builderAttrs, advanced } });
62
57
  }
63
58
  // Render
64
- return /*#__PURE__*/ jsxRuntime.jsx("div", {
65
- style: style,
66
- className: `${props.uid}`,
67
- ...builderAttrs,
68
- children: children
69
- });
59
+ return (jsxRuntime.jsx("div", { style: style, className: `${props.uid}`, ...builderAttrs, children: children }));
70
60
  };
71
61
 
72
62
  exports.default = ComponentWrapperPreview;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const Empty = ()=>null;
5
+ const Empty = () => null;
6
6
 
7
7
  exports.default = Empty;
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -10,56 +11,19 @@ var BuilderContext = require('../contexts/BuilderContext.js');
10
11
  var ComponentWrapper = require('./ComponentWrapper.js');
11
12
  var RenderSection = require('./RenderSection.js');
12
13
 
13
- const Render = ({ uid , ...passProps })=>{
14
- const item = BuilderContext.useBuilderStore((s)=>s.getItem(uid));
14
+ const Render = ({ uid, ...passProps }) => {
15
+ const item = BuilderContext.useBuilderStore((s) => s.getItem(uid));
15
16
  const Component = BuilderComponent.useBuilderComponent(item?.tag);
16
- if (!item) return null;
17
+ if (!item)
18
+ return null;
17
19
  if (item?.type === 'section') {
18
- return /*#__PURE__*/ jsxRuntime.jsx(RenderSection.default, {
19
- sectionId: item.uid
20
- });
21
- } else {
22
- return /*#__PURE__*/ jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, {
23
- fallbackRender: ({ error , resetErrorBoundary })=>/*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
24
- children: [
25
- /*#__PURE__*/ jsxRuntime.jsx("span", {
26
- "aria-label": "Error message",
27
- children: error.message
28
- }),
29
- /*#__PURE__*/ jsxRuntime.jsx("button", {
30
- type: "button",
31
- onClick: resetErrorBoundary,
32
- children: "Try again"
33
- })
34
- ]
35
- }),
36
- children: /*#__PURE__*/ jsxRuntime.jsx(ComponentWrapper.default, {
37
- ...item,
38
- children: item?.childrens?.length ? /*#__PURE__*/ jsxRuntime.jsx(Component, {
39
- builderProps: {
40
- uid,
41
- builderData: item
42
- },
43
- styles: item.styles,
44
- setting: item.settings,
45
- ...passProps,
46
- children: item.childrens.map((id)=>/*#__PURE__*/ jsxRuntime.jsx(RenderMemo, {
47
- uid: id
48
- }, id))
49
- }) : /*#__PURE__*/ jsxRuntime.jsx(Component, {
50
- builderProps: {
51
- uid,
52
- builderData: item
53
- },
54
- styles: item.styles,
55
- setting: item.settings,
56
- ...passProps
57
- })
58
- })
59
- }, item.uid);
20
+ return jsxRuntime.jsx(RenderSection.default, { sectionId: item.uid });
21
+ }
22
+ else {
23
+ return (jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, { fallbackRender: ({ error, resetErrorBoundary }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { "aria-label": "Error message", children: error.message }), jsxRuntime.jsx("button", { type: "button", onClick: resetErrorBoundary, children: "Try again" })] })), children: jsxRuntime.jsx(ComponentWrapper.default, { ...item, children: item?.childrens?.length ? (jsxRuntime.jsx(Component, { builderProps: { uid, builderData: item }, styles: item.styles, setting: item.settings, ...passProps, children: item.childrens.map((id) => (jsxRuntime.jsx(RenderMemo, { uid: id }, id))) })) : (jsxRuntime.jsx(Component, { builderProps: { uid, builderData: item }, styles: item.styles, setting: item.settings, ...passProps })) }) }, item.uid));
60
24
  }
61
25
  };
62
- const RenderMemo = /*#__PURE__*/ react.memo(Render);
26
+ const RenderMemo = react.memo(Render);
63
27
  RenderMemo.displayName = 'RenderMemo';
64
28
 
65
29
  exports.default = RenderMemo;
@@ -3,107 +3,122 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('react');
6
- require('swr');
7
6
  var render = require('../helpers/render.js');
8
7
  require('../helpers/convert.js');
9
8
  var composeAdvanceStyle = require('../helpers/compose-advance-style.js');
10
9
  var constant = require('./constant.js');
11
10
 
12
- const componentsRenderWithParentId = [
13
- 'CarouselItem'
14
- ];
15
- const componentTexts = [
16
- 'Text',
17
- 'Heading'
18
- ];
19
- const Render = ({ uid , builder , components , parentId , ...passProps })=>{
11
+ const componentsRenderWithParentId = ['CarouselItem'];
12
+ const componentTexts = ['Text', 'Heading'];
13
+ const Render = ({ uid, builder, components, parentId, extraFiles = {}, ...passProps }) => {
20
14
  const item = builder[uid];
21
15
  const Component = components[item?.tag];
22
16
  if (!Component) {
23
17
  console.log('Miss component: ', item);
24
- return '';
18
+ return {
19
+ liquid: '',
20
+ extraFiles,
21
+ };
22
+ }
23
+ if (!item) {
24
+ return {
25
+ liquid: '',
26
+ extraFiles,
27
+ };
25
28
  }
26
- if (!item) return null;
27
29
  if (item?.type === 'section') {
28
- return '';
29
- } else {
30
+ return {
31
+ liquid: '',
32
+ extraFiles,
33
+ };
34
+ }
35
+ else {
36
+ const customProps = {
37
+ extraFiles: {},
38
+ };
30
39
  const style = composeAdvanceStyle.composeAdvanceStyle(item.advanced, item.tag);
40
+ let liquid = '';
31
41
  if (constant.disableWrap.includes(item.tag)) {
32
- return render.RenderIf(item?.childrens?.length, ()=>{
42
+ liquid = render.RenderIf(item?.childrens?.length, () => {
33
43
  return Component({
34
- builderProps: {
35
- uid,
36
- builderData: item
37
- },
44
+ builderProps: { uid, builderData: item },
38
45
  styles: item.styles,
39
46
  setting: item.settings,
40
47
  style,
41
48
  advanced: item.advanced,
42
49
  parentId: componentsRenderWithParentId.includes(item.tag) ? parentId : null,
43
50
  ...passProps,
44
- rawChildren: item.childrens.map((id)=>{
45
- return {
46
- ...builder[id],
47
- uid: id,
48
- builder,
49
- components
50
- };
51
+ rawChildren: item.childrens.map((id) => {
52
+ return { ...builder[id], uid: id, builder, components, customProps };
51
53
  }),
52
- children: item.childrens.map((id)=>Render({
53
- uid: id,
54
- builder,
55
- components,
56
- parentId: uid
57
- })).join('')
54
+ children: item.childrens
55
+ .map((id) => RenderChildren({ uid: id, builder, components, customProps }))
56
+ .join(''),
58
57
  });
59
- }, ()=>Component({
60
- builderProps: {
61
- uid,
62
- builderData: item
63
- },
58
+ }, () => {
59
+ return Component({
60
+ builderProps: { uid, builderData: item },
64
61
  styles: item.styles,
65
62
  setting: item.settings,
66
63
  advanced: item.advanced,
67
64
  style,
68
65
  isText: componentTexts.includes(item.tag) ? true : null,
69
66
  parentId: componentsRenderWithParentId.includes(item.tag) ? parentId : null,
70
- ...passProps
71
- }));
67
+ ...passProps,
68
+ });
69
+ });
70
+ }
71
+ else {
72
+ liquid = render.template `<div style="${style}" class="${item.uid}">
73
+ ${render.RenderIf(item?.childrens?.length, () => {
74
+ return Component({
75
+ builderProps: { uid, builderData: item },
76
+ styles: item.styles,
77
+ setting: item.settings,
78
+ ...passProps,
79
+ rawChildren: item.childrens.map((id) => {
80
+ return { ...builder[id], uid: id, builder, components, customProps };
81
+ }),
82
+ children: item.childrens
83
+ .map((id) => RenderChildren({ uid: id, builder, components, customProps }))
84
+ .join(''),
85
+ });
86
+ }, () => {
87
+ return Component({
88
+ builderProps: { uid, builderData: item },
89
+ styles: item.styles,
90
+ setting: item.settings,
91
+ isText: componentTexts.includes(item.tag) ? true : null,
92
+ ...passProps,
93
+ });
94
+ })}
95
+ </div>`;
72
96
  }
73
- return render.template`<div style="${style}" class="${item.uid}">
74
- ${render.RenderIf(item?.childrens?.length, ()=>Component({
75
- builderProps: {
76
- uid,
77
- builderData: item
78
- },
79
- styles: item.styles,
80
- setting: item.settings,
81
- ...passProps,
82
- rawChildren: item.childrens.map((id)=>{
83
- return {
84
- ...builder[id],
85
- uid: id,
86
- builder,
87
- components
88
- };
89
- }),
90
- children: item.childrens.map((id)=>Render({
91
- uid: id,
92
- builder,
93
- components
94
- })).join('')
95
- }), ()=>Component({
96
- builderProps: {
97
- uid,
98
- builderData: item
99
- },
100
- styles: item.styles,
101
- setting: item.settings,
102
- isText: componentTexts.includes(item.tag) ? true : null,
103
- ...passProps
104
- }))}
105
- </div>`;
97
+ return {
98
+ liquid,
99
+ extraFiles: customProps.extraFiles,
100
+ };
101
+ }
102
+ };
103
+ const RenderChildren = (props) => {
104
+ const data = Render(props);
105
+ // Append to prop parent
106
+ for (const key in data.extraFiles) {
107
+ if (Object.prototype.hasOwnProperty.call(data.extraFiles, key)) {
108
+ const value = data.extraFiles[key];
109
+ props.customProps.extraFiles[key] = value;
110
+ }
111
+ }
112
+ // Fix limit 256kb
113
+ const textEncoder = new TextEncoder();
114
+ const size = data?.liquid ? textEncoder.encode(data.liquid).length : 0;
115
+ if (Math.ceil(size / 1024) >= 180) {
116
+ const fileName = `gp-section-snippet-${props.uid}`;
117
+ props.customProps.extraFiles[fileName] = data.liquid;
118
+ return `{% render '${fileName}', product: product, variant: variant, product_form_id: product_form_id %}`;
106
119
  }
120
+ return data.liquid;
107
121
  };
108
122
 
123
+ exports.RenderChildren = RenderChildren;
109
124
  exports.default = Render;
@@ -9,46 +9,13 @@ var BuilderComponent = require('../contexts/BuilderComponent.js');
9
9
  var BuilderContext = require('../contexts/BuilderContext.js');
10
10
  var ComponentWrapper = require('./ComponentWrapper.js');
11
11
 
12
- const RenderBlock = ({ uid })=>{
13
- const item = BuilderContext.useBuilderStore((s)=>s.getItem(uid));
12
+ const RenderBlock = ({ uid }) => {
13
+ const item = BuilderContext.useBuilderStore((s) => s.getItem(uid));
14
14
  const Component = BuilderComponent.useBuilderComponent(item?.tag);
15
- if (!item || item.type === 'section') return null;
16
- return /*#__PURE__*/ jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, {
17
- fallbackRender: ({ error , resetErrorBoundary })=>/*#__PURE__*/ jsxRuntime.jsxs(ComponentWrapper.default, {
18
- ...item,
19
- children: [
20
- /*#__PURE__*/ jsxRuntime.jsx("span", {
21
- "aria-label": "Error message",
22
- children: error.message
23
- }),
24
- /*#__PURE__*/ jsxRuntime.jsx("button", {
25
- type: "button",
26
- onClick: resetErrorBoundary,
27
- children: "Try again"
28
- })
29
- ]
30
- }),
31
- children: /*#__PURE__*/ jsxRuntime.jsx(ComponentWrapper.default, {
32
- ...item,
33
- children: item?.childrens?.length ? /*#__PURE__*/ jsxRuntime.jsx(Component, {
34
- builderProps: {
35
- uid
36
- },
37
- styles: item.styles ?? {},
38
- setting: item.settings ?? {},
39
- children: item?.childrens?.map((id)=>/*#__PURE__*/ jsxRuntime.jsx(RenderBlockMemo, {
40
- uid: id
41
- }, id))
42
- }) : /*#__PURE__*/ jsxRuntime.jsx(Component, {
43
- builderProps: {
44
- uid
45
- },
46
- styles: item.styles ?? {},
47
- setting: item.settings ?? {}
48
- })
49
- })
50
- }, item.uid);
15
+ if (!item || item.type === 'section')
16
+ return null;
17
+ return (jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, { fallbackRender: ({ error, resetErrorBoundary }) => (jsxRuntime.jsxs(ComponentWrapper.default, { ...item, children: [jsxRuntime.jsx("span", { "aria-label": "Error message", children: error.message }), jsxRuntime.jsx("button", { type: "button", onClick: resetErrorBoundary, children: "Try again" })] })), children: jsxRuntime.jsx(ComponentWrapper.default, { ...item, children: item?.childrens?.length ? (jsxRuntime.jsx(Component, { builderProps: { uid }, styles: item.styles ?? {}, setting: item.settings ?? {}, children: item?.childrens?.map((id) => (jsxRuntime.jsx(RenderBlockMemo, { uid: id }, id))) })) : (jsxRuntime.jsx(Component, { builderProps: { uid }, styles: item.styles ?? {}, setting: item.settings ?? {} })) }) }, item.uid));
51
18
  };
52
- const RenderBlockMemo = /*#__PURE__*/ react.memo(RenderBlock);
19
+ const RenderBlockMemo = react.memo(RenderBlock);
53
20
 
54
21
  exports.default = RenderBlockMemo;
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -10,57 +11,19 @@ var BuilderPreviewContext = require('../contexts/BuilderPreviewContext.js');
10
11
  var ComponentWrapperPreview = require('./ComponentWrapperPreview.js');
11
12
  var RenderSection = require('./RenderSection.js');
12
13
 
13
- const RenderPreview = ({ uid , ...passProps })=>{
14
- const item = BuilderPreviewContext.useBuilderPreviewStore((s)=>s.getItem(uid));
14
+ const RenderPreview = ({ uid, ...passProps }) => {
15
+ const item = BuilderPreviewContext.useBuilderPreviewStore((s) => s.getItem(uid));
15
16
  const Component = BuilderComponent.useBuilderComponent(item?.tag);
16
- if (!item) return null;
17
+ if (!item)
18
+ return null;
17
19
  if (item?.type === 'section') {
18
- return /*#__PURE__*/ jsxRuntime.jsx(RenderSection.default, {
19
- sectionId: item.uid
20
- });
21
- } else {
22
- return /*#__PURE__*/ jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, {
23
- fallbackRender: ({ error , resetErrorBoundary })=>/*#__PURE__*/ jsxRuntime.jsxs(ComponentWrapperPreview.default, {
24
- ...item,
25
- children: [
26
- /*#__PURE__*/ jsxRuntime.jsx("span", {
27
- "aria-label": "Error message",
28
- children: error.message
29
- }),
30
- /*#__PURE__*/ jsxRuntime.jsx("button", {
31
- type: "button",
32
- onClick: resetErrorBoundary,
33
- children: "Try again"
34
- })
35
- ]
36
- }),
37
- children: /*#__PURE__*/ jsxRuntime.jsx(ComponentWrapperPreview.default, {
38
- ...item,
39
- children: item?.childrens?.length ? /*#__PURE__*/ jsxRuntime.jsx(Component, {
40
- builderProps: {
41
- uid,
42
- builderData: item
43
- },
44
- styles: item.styles,
45
- setting: item.settings,
46
- ...passProps,
47
- children: item.childrens.map((id)=>/*#__PURE__*/ jsxRuntime.jsx(RenderPreviewMemo, {
48
- uid: id
49
- }, id))
50
- }) : /*#__PURE__*/ jsxRuntime.jsx(Component, {
51
- builderProps: {
52
- uid,
53
- builderData: item
54
- },
55
- styles: item.styles,
56
- setting: item.settings,
57
- ...passProps
58
- })
59
- })
60
- }, item.uid);
20
+ return jsxRuntime.jsx(RenderSection.default, { sectionId: item.uid });
21
+ }
22
+ else {
23
+ return (jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, { fallbackRender: ({ error, resetErrorBoundary }) => (jsxRuntime.jsxs(ComponentWrapperPreview.default, { ...item, children: [jsxRuntime.jsx("span", { "aria-label": "Error message", children: error.message }), jsxRuntime.jsx("button", { type: "button", onClick: resetErrorBoundary, children: "Try again" })] })), children: jsxRuntime.jsx(ComponentWrapperPreview.default, { ...item, children: item?.childrens?.length ? (jsxRuntime.jsx(Component, { builderProps: { uid, builderData: item }, styles: item.styles, setting: item.settings, ...passProps, children: item.childrens.map((id) => (jsxRuntime.jsx(RenderPreviewMemo, { uid: id }, id))) })) : (jsxRuntime.jsx(Component, { builderProps: { uid, builderData: item }, styles: item.styles, setting: item.settings, ...passProps })) }) }, item.uid));
61
24
  }
62
25
  };
63
- const RenderPreviewMemo = /*#__PURE__*/ react.memo(RenderPreview);
26
+ const RenderPreviewMemo = react.memo(RenderPreview);
64
27
  RenderPreviewMemo.displayName = 'RenderPreviewMemo';
65
28
 
66
29
  exports.default = RenderPreviewMemo;
@@ -8,16 +8,12 @@ var BuilderContext = require('../contexts/BuilderContext.js');
8
8
  var SectionContext = require('../contexts/SectionContext.js');
9
9
  var RenderBlock = require('./RenderBlock.js');
10
10
 
11
- const RenderSection = ({ sectionId })=>{
11
+ const RenderSection = ({ sectionId }) => {
12
12
  const state = SectionContext.useSection(sectionId);
13
- if (!state) return null;
14
- return /*#__PURE__*/ jsxRuntime.jsx(BuilderContext.BuilderProvider, {
15
- state: state,
16
- children: /*#__PURE__*/ jsxRuntime.jsx(RenderBlock.default, {
17
- uid: sectionId
18
- })
19
- }, sectionId);
13
+ if (!state)
14
+ return null;
15
+ return (jsxRuntime.jsx(BuilderContext.BuilderProvider, { state: state, children: jsxRuntime.jsx(RenderBlock.default, { uid: sectionId }) }, sectionId));
20
16
  };
21
- const RenderSectionMemo = /*#__PURE__*/ react.memo(RenderSection);
17
+ const RenderSectionMemo = react.memo(RenderSection);
22
18
 
23
19
  exports.default = RenderSectionMemo;
@@ -31,7 +31,7 @@ const disableWrap = [
31
31
  'Dialog',
32
32
  'TextField',
33
33
  'FormTextarea',
34
- 'ProductPrice'
34
+ 'ProductPrice',
35
35
  ];
36
36
 
37
37
  exports.disableWrap = disableWrap;
@@ -1,34 +1,24 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var jsxRuntime = require('react/jsx-runtime');
4
5
  var react = require('react');
5
6
  var Empty = require('../components/Empty.js');
6
7
 
7
- const AddonContext = /*#__PURE__*/ react.createContext(null);
8
- const AddonProvider = ({ children , components , ...passProps })=>{
9
- return /*#__PURE__*/ jsxRuntime.jsx(AddonContext.Provider, {
10
- ...passProps,
11
- value: {
12
- components
13
- },
14
- children: children
15
- });
8
+ const AddonContext = react.createContext(null);
9
+ const AddonProvider = ({ children, components, ...passProps }) => {
10
+ return (jsxRuntime.jsx(AddonContext.Provider, { ...passProps, value: { components }, children: children }));
16
11
  };
17
- const useAddons = ()=>{
12
+ const useAddons = () => {
18
13
  const context = react.useContext(AddonContext);
19
14
  if (!context) {
20
15
  throw new Error('useAddons must be used within an AddonProvider');
21
16
  }
22
- return react.useMemo(()=>context.components, [
23
- context.components
24
- ]);
17
+ return react.useMemo(() => context.components, [context.components]);
25
18
  };
26
- const useAddon = (id)=>{
19
+ const useAddon = (id) => {
27
20
  const addons = useAddons();
28
- return react.useMemo(()=>id ? addons[id] ?? Empty.default : Empty.default, [
29
- id,
30
- addons
31
- ]);
21
+ return react.useMemo(() => (id ? addons[id] ?? Empty.default : Empty.default), [id, addons]);
32
22
  };
33
23
 
34
24
  exports.AddonProvider = AddonProvider;
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var jsxRuntime = require('react/jsx-runtime');
@@ -5,29 +6,25 @@ var zustand = require('zustand');
5
6
  var react = require('react');
6
7
  var Empty = require('../components/Empty.js');
7
8
 
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
- });
9
+ const BuilderComponentContext = react.createContext(null);
10
+ const createBuilderComponentStore = (components) => zustand.createStore((_, get) => ({
11
+ components,
12
+ getItem: (id) => {
13
+ return get().components[id];
14
+ },
15
+ }));
16
+ const BuilderComponentProvider = ({ children, components, ...passProps }) => {
17
+ return (jsxRuntime.jsx(BuilderComponentContext.Provider, { ...passProps, value: createBuilderComponentStore(components), children: children }));
21
18
  };
22
19
  // export const useBuilderComponent = (id?: string) => {
23
20
  // return useStore((s) => (id ? s.getItem(id) ?? Empty : Empty));
24
21
  // };
25
- const useBuilderComponent = (id)=>{
22
+ const useBuilderComponent = (id) => {
26
23
  const store = react.useContext(BuilderComponentContext);
27
24
  if (!store) {
28
25
  throw new Error('useBuilderComponent must be used within a BuilderComponentProvider');
29
26
  }
30
- return zustand.useStore(store, (s)=>id ? s.getItem(id) ?? Empty.default : Empty.default);
27
+ return zustand.useStore(store, (s) => (id ? s.getItem(id) ?? Empty.default : Empty.default));
31
28
  };
32
29
 
33
30
  exports.BuilderComponentProvider = BuilderComponentProvider;
@@ -1,29 +1,24 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var jsxRuntime = require('react/jsx-runtime');
4
5
  var react = require('react');
5
6
  var zustand = require('zustand');
6
7
 
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 })=>{
8
+ const BuilderContext = react.createContext(null);
9
+ const createBuilderProvider = (data) => zustand.createStore((_, get) => ({
10
+ state: data,
11
+ getItem: (id) => {
12
+ return get().state[id];
13
+ },
14
+ }));
15
+ const BuilderProvider = ({ children, state, lazy, priority, ...passProps }) => {
15
16
  const Component = lazy ? react.Suspense : react.Fragment;
16
17
  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
- });
18
+ return (jsxRuntime.jsx(Component, { children: jsxRuntime.jsx(BuilderContext.Provider, { ...passProps, value: store, children: children }) }));
24
19
  };
25
20
  // export const useBuilderStore = useStore;
26
- const useBuilderStore = (selector, equalityFn)=>{
21
+ const useBuilderStore = (selector, equalityFn) => {
27
22
  const store = react.useContext(BuilderContext);
28
23
  if (!store) {
29
24
  throw new Error('useBuilderStore must be used within a BuilderProvider');