@gem-sdk/core 1.5.15 → 1.5.22

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 (206) hide show
  1. package/dist/cjs/components/AddOn.js +7 -7
  2. package/dist/cjs/components/ComponentWrapper.js +14 -8
  3. package/dist/cjs/components/ComponentWrapperPreview.js +55 -46
  4. package/dist/cjs/components/Empty.js +1 -1
  5. package/dist/cjs/components/Render.js +50 -13
  6. package/dist/cjs/components/Render.liquid.js +81 -57
  7. package/dist/cjs/components/RenderBlock.js +41 -8
  8. package/dist/cjs/components/RenderPreview.js +51 -13
  9. package/dist/cjs/components/RenderSection.js +11 -7
  10. package/dist/cjs/components/constant.js +24 -24
  11. package/dist/cjs/contexts/AddonContext.js +25 -14
  12. package/dist/cjs/contexts/BuilderComponent.js +23 -19
  13. package/dist/cjs/contexts/BuilderContext.js +25 -19
  14. package/dist/cjs/contexts/BuilderPreviewContext.js +349 -341
  15. package/dist/cjs/contexts/CartLineContext.js +19 -14
  16. package/dist/cjs/contexts/CollectionContext.js +21 -13
  17. package/dist/cjs/contexts/ProductContext.js +136 -115
  18. package/dist/cjs/contexts/ProductListContext.js +21 -13
  19. package/dist/cjs/contexts/SectionContext.js +41 -37
  20. package/dist/cjs/contexts/ShopContext.js +49 -31
  21. package/dist/cjs/graphql/fragments/analytic.generated.js +1 -1
  22. package/dist/cjs/graphql/fragments/collection-detail.generated.js +1 -1
  23. package/dist/cjs/graphql/fragments/collection-product.generated.js +1 -1
  24. package/dist/cjs/graphql/fragments/custom-code.generated.js +1 -1
  25. package/dist/cjs/graphql/fragments/data-seo.generated.js +1 -1
  26. package/dist/cjs/graphql/fragments/media.generated.js +1 -1
  27. package/dist/cjs/graphql/fragments/product-little.generated.js +1 -1
  28. package/dist/cjs/graphql/fragments/product-option-value.generated.js +1 -1
  29. package/dist/cjs/graphql/fragments/product-option.generated.js +1 -1
  30. package/dist/cjs/graphql/fragments/product.generated.js +1 -1
  31. package/dist/cjs/graphql/fragments/published-custom-section.generated.js +1 -1
  32. package/dist/cjs/graphql/fragments/published-page-section.generated.js +1 -1
  33. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +1 -1
  34. package/dist/cjs/graphql/fragments/published-theme-style.generated.js +1 -1
  35. package/dist/cjs/graphql/fragments/selected-option.generated.js +1 -1
  36. package/dist/cjs/graphql/fragments/variant.generated.js +1 -1
  37. package/dist/cjs/graphql/mutations/page-view-up.generated.js +1 -1
  38. package/dist/cjs/graphql/queries/products.generated.js +1 -1
  39. package/dist/cjs/graphql/queries/store-property.generated.js +1 -1
  40. package/dist/cjs/helpers/GlobalEvent.js +12 -10
  41. package/dist/cjs/helpers/background.js +96 -96
  42. package/dist/cjs/helpers/borders.js +123 -127
  43. package/dist/cjs/helpers/clone-deep.js +1 -1
  44. package/dist/cjs/helpers/cls.js +11 -15
  45. package/dist/cjs/helpers/colors.js +121 -156
  46. package/dist/cjs/helpers/compose-advance-style.js +115 -121
  47. package/dist/cjs/helpers/constant.js +16 -11
  48. package/dist/cjs/helpers/css-variable.js +2 -2
  49. package/dist/cjs/helpers/email.js +3 -3
  50. package/dist/cjs/helpers/flatten-connection.js +4 -5
  51. package/dist/cjs/helpers/get-resonsive-value.js +24 -25
  52. package/dist/cjs/helpers/get-shortname.js +87 -87
  53. package/dist/cjs/helpers/is-browser.js +2 -2
  54. package/dist/cjs/helpers/is-defined.js +2 -2
  55. package/dist/cjs/helpers/is-empty-children.js +2 -2
  56. package/dist/cjs/helpers/layout.js +9 -10
  57. package/dist/cjs/helpers/load-script.js +26 -27
  58. package/dist/cjs/helpers/make-style.js +77 -86
  59. package/dist/cjs/helpers/normalize-builder-data.js +18 -12
  60. package/dist/cjs/helpers/prefetch-queries.js +72 -52
  61. package/dist/cjs/helpers/product.js +25 -29
  62. package/dist/cjs/helpers/queries/get-collection.js +179 -167
  63. package/dist/cjs/helpers/queries/get-product-by-slug.js +103 -94
  64. package/dist/cjs/helpers/queries/get-product.js +121 -106
  65. package/dist/cjs/helpers/queries/get-products.js +137 -125
  66. package/dist/cjs/helpers/radius.js +78 -81
  67. package/dist/cjs/helpers/render.js +56 -56
  68. package/dist/cjs/helpers/shadow.js +38 -38
  69. package/dist/cjs/helpers/size.js +12 -13
  70. package/dist/cjs/helpers/spacing.js +35 -37
  71. package/dist/cjs/helpers/tracking/fpixel.js +21 -22
  72. package/dist/cjs/helpers/tracking/gtag.js +84 -90
  73. package/dist/cjs/helpers/tracking/tiktokpixel.js +12 -12
  74. package/dist/cjs/helpers/typography.js +2 -2
  75. package/dist/cjs/hooks/cart/use-add-to-cart.js +10 -10
  76. package/dist/cjs/hooks/cart/use-cart-data.js +18 -16
  77. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +10 -10
  78. package/dist/cjs/hooks/cart/use-cart-note-update.js +10 -10
  79. package/dist/cjs/hooks/cart/use-create-cart.js +12 -12
  80. package/dist/cjs/hooks/cart/use-remove-cart-item.js +10 -10
  81. package/dist/cjs/hooks/cart/use-update-cart-item.js +10 -10
  82. package/dist/cjs/hooks/shop/use-collection-query.js +12 -6
  83. package/dist/cjs/hooks/shop/use-product-query.js +12 -6
  84. package/dist/cjs/hooks/shop/use-products-query.js +14 -6
  85. package/dist/cjs/hooks/shop.js +86 -67
  86. package/dist/cjs/hooks/use-current-device.js +14 -16
  87. package/dist/cjs/hooks/use-lazy-video.js +7 -7
  88. package/dist/cjs/hooks/useCartId.js +35 -27
  89. package/dist/cjs/hooks/useCartLine.js +2 -2
  90. package/dist/cjs/hooks/useCartUI.js +37 -31
  91. package/dist/cjs/hooks/useCollection.js +2 -2
  92. package/dist/cjs/hooks/useFetchHandle.js +6 -6
  93. package/dist/cjs/hooks/useFormatMoney.js +11 -7
  94. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +1 -1
  95. package/dist/cjs/hooks/useLoadScript.js +22 -20
  96. package/dist/cjs/hooks/useMoney.js +59 -42
  97. package/dist/cjs/hooks/usePrevious.js +12 -10
  98. package/dist/cjs/hooks/useProduct.js +93 -69
  99. package/dist/cjs/hooks/useProductList.js +11 -11
  100. package/dist/cjs/hooks/useSuspenseFetch.js +20 -17
  101. package/dist/cjs/hooks/useSwatchesOptions.js +32 -30
  102. package/dist/cjs/types/global-style.js +9 -2
  103. package/dist/esm/components/AddOn.js +7 -7
  104. package/dist/esm/components/ComponentWrapper.js +14 -8
  105. package/dist/esm/components/ComponentWrapperPreview.js +55 -46
  106. package/dist/esm/components/Empty.js +1 -1
  107. package/dist/esm/components/Render.js +50 -13
  108. package/dist/esm/components/Render.liquid.js +81 -57
  109. package/dist/esm/components/RenderBlock.js +41 -8
  110. package/dist/esm/components/RenderPreview.js +51 -13
  111. package/dist/esm/components/RenderSection.js +11 -7
  112. package/dist/esm/components/constant.js +24 -24
  113. package/dist/esm/contexts/AddonContext.js +26 -15
  114. package/dist/esm/contexts/BuilderComponent.js +24 -20
  115. package/dist/esm/contexts/BuilderContext.js +26 -20
  116. package/dist/esm/contexts/BuilderPreviewContext.js +350 -342
  117. package/dist/esm/contexts/CartLineContext.js +20 -15
  118. package/dist/esm/contexts/CollectionContext.js +22 -14
  119. package/dist/esm/contexts/ProductContext.js +137 -116
  120. package/dist/esm/contexts/ProductListContext.js +22 -14
  121. package/dist/esm/contexts/SectionContext.js +42 -38
  122. package/dist/esm/contexts/ShopContext.js +50 -32
  123. package/dist/esm/graphql/fragments/analytic.generated.js +1 -1
  124. package/dist/esm/graphql/fragments/collection-detail.generated.js +1 -1
  125. package/dist/esm/graphql/fragments/collection-product.generated.js +1 -1
  126. package/dist/esm/graphql/fragments/custom-code.generated.js +1 -1
  127. package/dist/esm/graphql/fragments/data-seo.generated.js +1 -1
  128. package/dist/esm/graphql/fragments/media.generated.js +1 -1
  129. package/dist/esm/graphql/fragments/product-little.generated.js +1 -1
  130. package/dist/esm/graphql/fragments/product-option-value.generated.js +1 -1
  131. package/dist/esm/graphql/fragments/product-option.generated.js +1 -1
  132. package/dist/esm/graphql/fragments/product.generated.js +1 -1
  133. package/dist/esm/graphql/fragments/published-custom-section.generated.js +1 -1
  134. package/dist/esm/graphql/fragments/published-page-section.generated.js +1 -1
  135. package/dist/esm/graphql/fragments/published-theme-page.generated.js +1 -1
  136. package/dist/esm/graphql/fragments/published-theme-style.generated.js +1 -1
  137. package/dist/esm/graphql/fragments/selected-option.generated.js +1 -1
  138. package/dist/esm/graphql/fragments/variant.generated.js +1 -1
  139. package/dist/esm/graphql/mutations/page-view-up.generated.js +1 -1
  140. package/dist/esm/graphql/queries/products.generated.js +1 -1
  141. package/dist/esm/graphql/queries/store-property.generated.js +1 -1
  142. package/dist/esm/helpers/GlobalEvent.js +12 -10
  143. package/dist/esm/helpers/background.js +96 -96
  144. package/dist/esm/helpers/borders.js +123 -127
  145. package/dist/esm/helpers/clone-deep.js +1 -1
  146. package/dist/esm/helpers/cls.js +11 -15
  147. package/dist/esm/helpers/colors.js +121 -156
  148. package/dist/esm/helpers/compose-advance-style.js +115 -121
  149. package/dist/esm/helpers/constant.js +16 -11
  150. package/dist/esm/helpers/css-variable.js +2 -2
  151. package/dist/esm/helpers/email.js +3 -3
  152. package/dist/esm/helpers/flatten-connection.js +4 -5
  153. package/dist/esm/helpers/get-resonsive-value.js +24 -25
  154. package/dist/esm/helpers/get-shortname.js +87 -87
  155. package/dist/esm/helpers/is-browser.js +2 -2
  156. package/dist/esm/helpers/is-defined.js +2 -2
  157. package/dist/esm/helpers/is-empty-children.js +2 -2
  158. package/dist/esm/helpers/layout.js +9 -10
  159. package/dist/esm/helpers/load-script.js +26 -27
  160. package/dist/esm/helpers/make-style.js +77 -86
  161. package/dist/esm/helpers/normalize-builder-data.js +18 -12
  162. package/dist/esm/helpers/prefetch-queries.js +72 -52
  163. package/dist/esm/helpers/product.js +25 -29
  164. package/dist/esm/helpers/queries/get-collection.js +179 -167
  165. package/dist/esm/helpers/queries/get-product-by-slug.js +103 -94
  166. package/dist/esm/helpers/queries/get-product.js +121 -106
  167. package/dist/esm/helpers/queries/get-products.js +137 -125
  168. package/dist/esm/helpers/radius.js +78 -81
  169. package/dist/esm/helpers/render.js +56 -56
  170. package/dist/esm/helpers/shadow.js +38 -38
  171. package/dist/esm/helpers/size.js +12 -13
  172. package/dist/esm/helpers/spacing.js +35 -37
  173. package/dist/esm/helpers/tracking/fpixel.js +21 -22
  174. package/dist/esm/helpers/tracking/gtag.js +84 -90
  175. package/dist/esm/helpers/tracking/tiktokpixel.js +12 -12
  176. package/dist/esm/helpers/typography.js +2 -2
  177. package/dist/esm/hooks/cart/use-add-to-cart.js +10 -10
  178. package/dist/esm/hooks/cart/use-cart-data.js +18 -16
  179. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +10 -10
  180. package/dist/esm/hooks/cart/use-cart-note-update.js +10 -10
  181. package/dist/esm/hooks/cart/use-create-cart.js +12 -12
  182. package/dist/esm/hooks/cart/use-remove-cart-item.js +10 -10
  183. package/dist/esm/hooks/cart/use-update-cart-item.js +10 -10
  184. package/dist/esm/hooks/shop/use-collection-query.js +12 -6
  185. package/dist/esm/hooks/shop/use-product-query.js +12 -6
  186. package/dist/esm/hooks/shop/use-products-query.js +14 -6
  187. package/dist/esm/hooks/shop.js +86 -67
  188. package/dist/esm/hooks/use-current-device.js +14 -16
  189. package/dist/esm/hooks/use-lazy-video.js +7 -7
  190. package/dist/esm/hooks/useCartId.js +35 -27
  191. package/dist/esm/hooks/useCartLine.js +2 -2
  192. package/dist/esm/hooks/useCartUI.js +37 -31
  193. package/dist/esm/hooks/useCollection.js +2 -2
  194. package/dist/esm/hooks/useFetchHandle.js +6 -6
  195. package/dist/esm/hooks/useFormatMoney.js +11 -7
  196. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +1 -1
  197. package/dist/esm/hooks/useLoadScript.js +22 -20
  198. package/dist/esm/hooks/useMoney.js +59 -42
  199. package/dist/esm/hooks/usePrevious.js +12 -10
  200. package/dist/esm/hooks/useProduct.js +93 -70
  201. package/dist/esm/hooks/useProductList.js +11 -11
  202. package/dist/esm/hooks/useSuspenseFetch.js +20 -17
  203. package/dist/esm/hooks/useSwatchesOptions.js +32 -30
  204. package/dist/esm/types/global-style.js +9 -2
  205. package/dist/types/index.d.ts +24 -2
  206. package/package.json +1 -1
@@ -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 }) => {
10
- const Comp = AddonContext.useAddon(name);
11
- const plugins = shop.usePluginEnable();
12
- if (!plugins?.includes(name)) {
13
- return null;
14
- }
15
- return jsxRuntime.jsx(Comp, {});
9
+ const AddOn = ({ name })=>{
10
+ const Comp = AddonContext.useAddon(name);
11
+ const plugins = shop.usePluginEnable();
12
+ if (!plugins?.includes(name)) {
13
+ return null;
14
+ }
15
+ return /*#__PURE__*/ jsxRuntime.jsx(Comp, {});
16
16
  };
17
17
 
18
18
  exports.default = AddOn;
@@ -7,14 +7,20 @@ 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')
12
- return null;
13
- const style = composeAdvanceStyle.composeAdvanceStyle(props.advanced, props.tag);
14
- if (constant.disableWrap.includes(props.tag) && react.isValidElement(children)) {
15
- return jsxRuntime.jsx(children.type, { ...children.props, ...{ style } });
16
- }
17
- return (jsxRuntime.jsx("div", { style: style, className: `${props.uid}`, children: children }));
10
+ const ComponentWrapper = ({ children , ...props })=>{
11
+ if (props.type === 'section') return null;
12
+ const style = composeAdvanceStyle.composeAdvanceStyle(props.advanced, props.tag);
13
+ if (constant.disableWrap.includes(props.tag) && /*#__PURE__*/ react.isValidElement(children)) {
14
+ return /*#__PURE__*/ jsxRuntime.jsx(children.type, {
15
+ ...children.props,
16
+ style
17
+ });
18
+ }
19
+ return /*#__PURE__*/ jsxRuntime.jsx("div", {
20
+ style: style,
21
+ className: `${props.uid}`,
22
+ children: children
23
+ });
18
24
  };
19
25
 
20
26
  exports.default = ComponentWrapper;
@@ -7,52 +7,61 @@ 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 }) => {
11
- if (props.type === 'section') {
12
- return null;
13
- }
14
- const customProps = {};
15
- // Build editor configs
16
- if (props.editorConfigs) {
17
- const editorConfigs = props.editorConfigs;
18
- if (editorConfigs.placeholder?.notAppendBeforeAfter) {
19
- customProps['data-placeholder-not-append-before-after'] = true;
20
- }
21
- if (editorConfigs.toolbar?.parent) {
22
- customProps['data-toolbar-parent'] = true;
23
- }
24
- if (editorConfigs.component?.noDelete) {
25
- customProps['data-component-no-delete'] = true;
26
- }
27
- if (editorConfigs.component?.noDuplicate) {
28
- customProps['data-component-no-duplicate'] = true;
29
- }
30
- if (editorConfigs.component?.noDragDrop) {
31
- customProps['data-component-no-drag-drop'] = true;
32
- }
33
- if (editorConfigs.component?.noSetting) {
34
- customProps['data-component-no-setting'] = true;
35
- }
36
- if (editorConfigs.toolbar?.hide) {
37
- customProps['data-toolbar-hide'] = true;
38
- }
39
- if (editorConfigs.slots?.children) {
40
- customProps['data-slots-children'] = true;
41
- }
42
- }
43
- const style = composeAdvanceStyle.composeAdvanceStyle(props.advanced, props.tag);
44
- const builderAttrs = {
45
- ...customProps,
46
- 'data-uid': props.uid,
47
- 'data-component-type': 'component',
48
- 'data-component-tag': props.tag,
49
- 'data-component-label': props.label,
50
- };
51
- if (constant.disableWrap.includes(props.tag) && react.isValidElement(children)) {
52
- return jsxRuntime.jsx(children.type, { ...children.props, ...{ style, builderAttrs } });
53
- }
54
- // Render
55
- return (jsxRuntime.jsx("div", { style: style, className: `${props.uid}`, ...builderAttrs, children: children }));
10
+ const ComponentWrapperPreview = ({ children , ...props })=>{
11
+ if (props.type === 'section') {
12
+ return null;
13
+ }
14
+ const customProps = {};
15
+ // Build editor configs
16
+ if (props.editorConfigs) {
17
+ const editorConfigs = props.editorConfigs;
18
+ if (editorConfigs.placeholder?.notAppendBeforeAfter) {
19
+ customProps['data-placeholder-not-append-before-after'] = true;
20
+ }
21
+ if (editorConfigs.toolbar?.parent) {
22
+ customProps['data-toolbar-parent'] = true;
23
+ }
24
+ if (editorConfigs.component?.noDelete) {
25
+ customProps['data-component-no-delete'] = true;
26
+ }
27
+ if (editorConfigs.component?.noDuplicate) {
28
+ customProps['data-component-no-duplicate'] = true;
29
+ }
30
+ if (editorConfigs.component?.noDragDrop) {
31
+ customProps['data-component-no-drag-drop'] = true;
32
+ }
33
+ if (editorConfigs.component?.noSetting) {
34
+ customProps['data-component-no-setting'] = true;
35
+ }
36
+ if (editorConfigs.toolbar?.hide) {
37
+ customProps['data-toolbar-hide'] = true;
38
+ }
39
+ if (editorConfigs.slots?.children) {
40
+ customProps['data-slots-children'] = true;
41
+ }
42
+ }
43
+ const style = composeAdvanceStyle.composeAdvanceStyle(props.advanced, props.tag);
44
+ const builderAttrs = {
45
+ ...customProps,
46
+ 'data-uid': props.uid,
47
+ 'data-component-type': 'component',
48
+ 'data-component-tag': props.tag,
49
+ 'data-component-label': props.label
50
+ };
51
+ if (constant.disableWrap.includes(props.tag) && /*#__PURE__*/ react.isValidElement(children)) {
52
+ return /*#__PURE__*/ jsxRuntime.jsx(children.type, {
53
+ ...children.props,
54
+ style,
55
+ builderAttrs
56
+ });
57
+ }
58
+ // Render
59
+ return /*#__PURE__*/ jsxRuntime.jsx("div", {
60
+ style: style,
61
+ className: `${props.uid}`,
62
+ ...builderAttrs,
63
+ children: children
64
+ });
56
65
  };
57
66
 
58
67
  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;
@@ -10,19 +10,56 @@ var BuilderContext = require('../contexts/BuilderContext.js');
10
10
  var ComponentWrapper = require('./ComponentWrapper.js');
11
11
  var RenderSection = require('./RenderSection.js');
12
12
 
13
- const Render = ({ uid, ...passProps }) => {
14
- const item = BuilderContext.useBuilderStore((s) => s.getItem(uid));
15
- const Component = BuilderComponent.useBuilderComponent(item?.tag);
16
- if (!item)
17
- return null;
18
- if (item?.type === 'section') {
19
- return jsxRuntime.jsx(RenderSection.default, { sectionId: item.uid });
20
- }
21
- else {
22
- 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));
23
- }
24
- };
25
- const RenderMemo = react.memo(Render);
13
+ const Render = ({ uid , ...passProps })=>{
14
+ const item = BuilderContext.useBuilderStore((s)=>s.getItem(uid));
15
+ const Component = BuilderComponent.useBuilderComponent(item?.tag);
16
+ if (!item) return null;
17
+ 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);
60
+ }
61
+ };
62
+ const RenderMemo = /*#__PURE__*/ react.memo(Render);
26
63
  RenderMemo.displayName = 'RenderMemo';
27
64
 
28
65
  exports.default = RenderMemo;
@@ -9,63 +9,87 @@ require('../helpers/convert.js');
9
9
  var composeAdvanceStyle = require('../helpers/compose-advance-style.js');
10
10
  var constant = require('./constant.js');
11
11
 
12
- const Render = ({ uid, builder, components, ...passProps }) => {
13
- const item = builder[uid];
14
- const Component = components[item?.tag];
15
- if (!Component) {
16
- console.log('Miss component: ', item);
17
- return '';
18
- }
19
- if (!item)
20
- return null;
21
- if (item?.type === 'section') {
22
- return '';
23
- }
24
- else {
25
- const style = composeAdvanceStyle.composeAdvanceStyle(item.advanced, item.tag);
26
- if (constant.disableWrap.includes(item.tag)) {
27
- return render.RenderIf(item?.childrens?.length, () => {
28
- return Component({
29
- builderProps: { uid, builderData: item },
30
- styles: item.styles,
31
- setting: item.settings,
32
- style,
33
- ...passProps,
34
- rawChildren: item.childrens.map((id) => {
35
- return { ...builder[id], uid: id, builder, components };
36
- }),
37
- children: item.childrens
38
- .map((id) => Render({ uid: id, builder, components }))
39
- .join(''),
40
- });
41
- }, () => Component({
42
- builderProps: { uid, builderData: item },
43
- styles: item.styles,
44
- setting: item.settings,
45
- style,
46
- ...passProps,
47
- }));
48
- }
49
- return render.template `<div style="${style}" class="${item.uid}">
50
- ${render.RenderIf(item?.childrens?.length, () => Component({
51
- builderProps: { uid, builderData: item },
52
- styles: item.styles,
53
- setting: item.settings,
54
- ...passProps,
55
- rawChildren: item.childrens.map((id) => {
56
- return { ...builder[id], uid: id, builder, components };
57
- }),
58
- children: item.childrens
59
- .map((id) => Render({ uid: id, builder, components }))
60
- .join(''),
61
- }), () => Component({
62
- builderProps: { uid, builderData: item },
63
- styles: item.styles,
64
- setting: item.settings,
65
- ...passProps,
66
- }))}
67
- </div>`;
68
- }
12
+ const Render = ({ uid , builder , components , ...passProps })=>{
13
+ const item = builder[uid];
14
+ const Component = components[item?.tag];
15
+ if (!Component) {
16
+ console.log('Miss component: ', item);
17
+ return '';
18
+ }
19
+ if (!item) return null;
20
+ if (item?.type === 'section') {
21
+ return '';
22
+ } else {
23
+ const style = composeAdvanceStyle.composeAdvanceStyle(item.advanced, item.tag);
24
+ if (constant.disableWrap.includes(item.tag)) {
25
+ return render.RenderIf(item?.childrens?.length, ()=>{
26
+ return Component({
27
+ builderProps: {
28
+ uid,
29
+ builderData: item
30
+ },
31
+ styles: item.styles,
32
+ setting: item.settings,
33
+ style,
34
+ ...passProps,
35
+ rawChildren: item.childrens.map((id)=>{
36
+ return {
37
+ ...builder[id],
38
+ uid: id,
39
+ builder,
40
+ components
41
+ };
42
+ }),
43
+ children: item.childrens.map((id)=>Render({
44
+ uid: id,
45
+ builder,
46
+ components
47
+ })).join('')
48
+ });
49
+ }, ()=>Component({
50
+ builderProps: {
51
+ uid,
52
+ builderData: item
53
+ },
54
+ styles: item.styles,
55
+ setting: item.settings,
56
+ style,
57
+ ...passProps
58
+ }));
59
+ }
60
+ return render.template`<div style="${style}" class="${item.uid}">
61
+ ${render.RenderIf(item?.childrens?.length, ()=>Component({
62
+ builderProps: {
63
+ uid,
64
+ builderData: item
65
+ },
66
+ styles: item.styles,
67
+ setting: item.settings,
68
+ ...passProps,
69
+ rawChildren: item.childrens.map((id)=>{
70
+ return {
71
+ ...builder[id],
72
+ uid: id,
73
+ builder,
74
+ components
75
+ };
76
+ }),
77
+ children: item.childrens.map((id)=>Render({
78
+ uid: id,
79
+ builder,
80
+ components
81
+ })).join('')
82
+ }), ()=>Component({
83
+ builderProps: {
84
+ uid,
85
+ builderData: item
86
+ },
87
+ styles: item.styles,
88
+ setting: item.settings,
89
+ ...passProps
90
+ }))}
91
+ </div>`;
92
+ }
69
93
  };
70
94
 
71
95
  exports.default = Render;
@@ -9,13 +9,46 @@ 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));
14
- const Component = BuilderComponent.useBuilderComponent(item?.tag);
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));
18
- };
19
- const RenderBlockMemo = react.memo(RenderBlock);
12
+ const RenderBlock = ({ uid })=>{
13
+ const item = BuilderContext.useBuilderStore((s)=>s.getItem(uid));
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);
51
+ };
52
+ const RenderBlockMemo = /*#__PURE__*/ react.memo(RenderBlock);
20
53
 
21
54
  exports.default = RenderBlockMemo;
@@ -10,19 +10,57 @@ var BuilderPreviewContext = require('../contexts/BuilderPreviewContext.js');
10
10
  var ComponentWrapperPreview = require('./ComponentWrapperPreview.js');
11
11
  var RenderSection = require('./RenderSection.js');
12
12
 
13
- const RenderPreview = ({ uid, ...passProps }) => {
14
- const item = BuilderPreviewContext.useBuilderPreviewStore((s) => s.getItem(uid));
15
- const Component = BuilderComponent.useBuilderComponent(item?.tag);
16
- if (!item)
17
- return null;
18
- if (item?.type === 'section') {
19
- return jsxRuntime.jsx(RenderSection.default, { sectionId: item.uid });
20
- }
21
- else {
22
- 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));
23
- }
24
- };
25
- const RenderPreviewMemo = react.memo(RenderPreview);
13
+ const RenderPreview = ({ uid , ...passProps })=>{
14
+ const item = BuilderPreviewContext.useBuilderPreviewStore((s)=>s.getItem(uid));
15
+ const Component = BuilderComponent.useBuilderComponent(item?.tag);
16
+ if (!item) return null;
17
+ 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);
61
+ }
62
+ };
63
+ const RenderPreviewMemo = /*#__PURE__*/ react.memo(RenderPreview);
26
64
  RenderPreviewMemo.displayName = 'RenderPreviewMemo';
27
65
 
28
66
  exports.default = RenderPreviewMemo;
@@ -8,12 +8,16 @@ 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 }) => {
12
- const state = SectionContext.useSection(sectionId);
13
- if (!state)
14
- return null;
15
- return (jsxRuntime.jsx(BuilderContext.BuilderProvider, { state: state, children: jsxRuntime.jsx(RenderBlock.default, { uid: sectionId }) }, sectionId));
16
- };
17
- const RenderSectionMemo = react.memo(RenderSection);
11
+ const RenderSection = ({ sectionId })=>{
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);
20
+ };
21
+ const RenderSectionMemo = /*#__PURE__*/ react.memo(RenderSection);
18
22
 
19
23
  exports.default = RenderSectionMemo;
@@ -1,29 +1,29 @@
1
1
  'use strict';
2
2
 
3
- const disableWrap = [
4
- 'Col',
5
- 'Row',
6
- 'Section',
7
- 'Image',
8
- 'Text',
9
- 'Button',
10
- 'ProductButton',
11
- 'Cart',
12
- 'Tabs',
13
- 'TabItem',
14
- 'Carousel',
15
- 'CarouselItem',
16
- 'ShopPayButton',
17
- 'AccordionItem',
18
- 'Video',
19
- 'Header',
20
- 'HeroBanner',
21
- 'Icon',
22
- 'IconList',
23
- 'HTMLCode',
24
- 'IconListHoz',
25
- 'IconListItem',
26
- 'CSSCode',
3
+ const disableWrap = [
4
+ 'Col',
5
+ 'Row',
6
+ 'Section',
7
+ 'Image',
8
+ 'Text',
9
+ 'Button',
10
+ 'ProductButton',
11
+ 'Cart',
12
+ 'Tabs',
13
+ 'TabItem',
14
+ 'Carousel',
15
+ 'CarouselItem',
16
+ 'ShopPayButton',
17
+ 'AccordionItem',
18
+ 'Video',
19
+ 'Header',
20
+ 'HeroBanner',
21
+ 'Icon',
22
+ 'IconList',
23
+ 'HTMLCode',
24
+ 'IconListHoz',
25
+ 'IconListItem',
26
+ 'CSSCode'
27
27
  ];
28
28
 
29
29
  exports.disableWrap = disableWrap;
@@ -4,20 +4,31 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var react = require('react');
5
5
  var Empty = require('../components/Empty.js');
6
6
 
7
- const AddonContext = react.createContext(null);
8
- const AddonProvider = ({ children, components, ...passProps }) => {
9
- return (jsxRuntime.jsx(AddonContext.Provider, { ...passProps, value: { components }, children: children }));
10
- };
11
- const useAddons = () => {
12
- const context = react.useContext(AddonContext);
13
- if (!context) {
14
- throw new Error('useAddons must be used within an AddonProvider');
15
- }
16
- return react.useMemo(() => context.components, [context.components]);
17
- };
18
- const useAddon = (id) => {
19
- const addons = useAddons();
20
- return react.useMemo(() => (id ? addons[id] ?? Empty.default : Empty.default), [id, addons]);
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
+ });
16
+ };
17
+ const useAddons = ()=>{
18
+ const context = react.useContext(AddonContext);
19
+ if (!context) {
20
+ throw new Error('useAddons must be used within an AddonProvider');
21
+ }
22
+ return react.useMemo(()=>context.components, [
23
+ context.components
24
+ ]);
25
+ };
26
+ const useAddon = (id)=>{
27
+ const addons = useAddons();
28
+ return react.useMemo(()=>id ? addons[id] ?? Empty.default : Empty.default, [
29
+ id,
30
+ addons
31
+ ]);
21
32
  };
22
33
 
23
34
  exports.AddonProvider = AddonProvider;