@gem-sdk/core 1.5.17 → 1.5.23

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 +54 -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 +92 -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 +55 -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 +92 -69
  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 +30 -2
  206. package/package.json +1 -1
@@ -5,63 +5,87 @@ import '../helpers/convert.js';
5
5
  import { composeAdvanceStyle } from '../helpers/compose-advance-style.js';
6
6
  import { disableWrap } from './constant.js';
7
7
 
8
- const Render = ({ uid, builder, components, ...passProps }) => {
9
- const item = builder[uid];
10
- const Component = components[item?.tag];
11
- if (!Component) {
12
- console.log('Miss component: ', item);
13
- return '';
14
- }
15
- if (!item)
16
- return null;
17
- if (item?.type === 'section') {
18
- return '';
19
- }
20
- else {
21
- const style = composeAdvanceStyle(item.advanced, item.tag);
22
- if (disableWrap.includes(item.tag)) {
23
- return RenderIf(item?.childrens?.length, () => {
24
- return Component({
25
- builderProps: { uid, builderData: item },
26
- styles: item.styles,
27
- setting: item.settings,
28
- style,
29
- ...passProps,
30
- rawChildren: item.childrens.map((id) => {
31
- return { ...builder[id], uid: id, builder, components };
32
- }),
33
- children: item.childrens
34
- .map((id) => Render({ uid: id, builder, components }))
35
- .join(''),
36
- });
37
- }, () => Component({
38
- builderProps: { uid, builderData: item },
39
- styles: item.styles,
40
- setting: item.settings,
41
- style,
42
- ...passProps,
43
- }));
44
- }
45
- return template `<div style="${style}" class="${item.uid}">
46
- ${RenderIf(item?.childrens?.length, () => Component({
47
- builderProps: { uid, builderData: item },
48
- styles: item.styles,
49
- setting: item.settings,
50
- ...passProps,
51
- rawChildren: item.childrens.map((id) => {
52
- return { ...builder[id], uid: id, builder, components };
53
- }),
54
- children: item.childrens
55
- .map((id) => Render({ uid: id, builder, components }))
56
- .join(''),
57
- }), () => Component({
58
- builderProps: { uid, builderData: item },
59
- styles: item.styles,
60
- setting: item.settings,
61
- ...passProps,
62
- }))}
63
- </div>`;
64
- }
8
+ const Render = ({ uid , builder , components , ...passProps })=>{
9
+ const item = builder[uid];
10
+ const Component = components[item?.tag];
11
+ if (!Component) {
12
+ console.log('Miss component: ', item);
13
+ return '';
14
+ }
15
+ if (!item) return null;
16
+ if (item?.type === 'section') {
17
+ return '';
18
+ } else {
19
+ const style = composeAdvanceStyle(item.advanced, item.tag);
20
+ if (disableWrap.includes(item.tag)) {
21
+ return RenderIf(item?.childrens?.length, ()=>{
22
+ return Component({
23
+ builderProps: {
24
+ uid,
25
+ builderData: item
26
+ },
27
+ styles: item.styles,
28
+ setting: item.settings,
29
+ style,
30
+ ...passProps,
31
+ rawChildren: item.childrens.map((id)=>{
32
+ return {
33
+ ...builder[id],
34
+ uid: id,
35
+ builder,
36
+ components
37
+ };
38
+ }),
39
+ children: item.childrens.map((id)=>Render({
40
+ uid: id,
41
+ builder,
42
+ components
43
+ })).join('')
44
+ });
45
+ }, ()=>Component({
46
+ builderProps: {
47
+ uid,
48
+ builderData: item
49
+ },
50
+ styles: item.styles,
51
+ setting: item.settings,
52
+ style,
53
+ ...passProps
54
+ }));
55
+ }
56
+ return template`<div style="${style}" class="${item.uid}">
57
+ ${RenderIf(item?.childrens?.length, ()=>Component({
58
+ builderProps: {
59
+ uid,
60
+ builderData: item
61
+ },
62
+ styles: item.styles,
63
+ setting: item.settings,
64
+ ...passProps,
65
+ rawChildren: item.childrens.map((id)=>{
66
+ return {
67
+ ...builder[id],
68
+ uid: id,
69
+ builder,
70
+ components
71
+ };
72
+ }),
73
+ children: item.childrens.map((id)=>Render({
74
+ uid: id,
75
+ builder,
76
+ components
77
+ })).join('')
78
+ }), ()=>Component({
79
+ builderProps: {
80
+ uid,
81
+ builderData: item
82
+ },
83
+ styles: item.styles,
84
+ setting: item.settings,
85
+ ...passProps
86
+ }))}
87
+ </div>`;
88
+ }
65
89
  };
66
90
 
67
91
  export { Render as default };
@@ -5,13 +5,46 @@ import { useBuilderComponent } from '../contexts/BuilderComponent.js';
5
5
  import { useBuilderStore } from '../contexts/BuilderContext.js';
6
6
  import ComponentWrapper from './ComponentWrapper.js';
7
7
 
8
- const RenderBlock = ({ uid }) => {
9
- const item = useBuilderStore((s) => s.getItem(uid));
10
- const Component = useBuilderComponent(item?.tag);
11
- if (!item || item.type === 'section')
12
- return null;
13
- return (jsx(ErrorBoundary, { fallbackRender: ({ error, resetErrorBoundary }) => (jsxs(ComponentWrapper, { ...item, children: [jsx("span", { "aria-label": "Error message", children: error.message }), jsx("button", { type: "button", onClick: resetErrorBoundary, children: "Try again" })] })), children: jsx(ComponentWrapper, { ...item, children: item?.childrens?.length ? (jsx(Component, { builderProps: { uid }, styles: item.styles ?? {}, setting: item.settings ?? {}, children: item?.childrens?.map((id) => (jsx(RenderBlockMemo, { uid: id }, id))) })) : (jsx(Component, { builderProps: { uid }, styles: item.styles ?? {}, setting: item.settings ?? {} })) }) }, item.uid));
14
- };
15
- const RenderBlockMemo = memo(RenderBlock);
8
+ const RenderBlock = ({ uid })=>{
9
+ const item = useBuilderStore((s)=>s.getItem(uid));
10
+ const Component = useBuilderComponent(item?.tag);
11
+ if (!item || item.type === 'section') return null;
12
+ return /*#__PURE__*/ jsx(ErrorBoundary, {
13
+ fallbackRender: ({ error , resetErrorBoundary })=>/*#__PURE__*/ jsxs(ComponentWrapper, {
14
+ ...item,
15
+ children: [
16
+ /*#__PURE__*/ jsx("span", {
17
+ "aria-label": "Error message",
18
+ children: error.message
19
+ }),
20
+ /*#__PURE__*/ jsx("button", {
21
+ type: "button",
22
+ onClick: resetErrorBoundary,
23
+ children: "Try again"
24
+ })
25
+ ]
26
+ }),
27
+ children: /*#__PURE__*/ jsx(ComponentWrapper, {
28
+ ...item,
29
+ children: item?.childrens?.length ? /*#__PURE__*/ jsx(Component, {
30
+ builderProps: {
31
+ uid
32
+ },
33
+ styles: item.styles ?? {},
34
+ setting: item.settings ?? {},
35
+ children: item?.childrens?.map((id)=>/*#__PURE__*/ jsx(RenderBlockMemo, {
36
+ uid: id
37
+ }, id))
38
+ }) : /*#__PURE__*/ jsx(Component, {
39
+ builderProps: {
40
+ uid
41
+ },
42
+ styles: item.styles ?? {},
43
+ setting: item.settings ?? {}
44
+ })
45
+ })
46
+ }, item.uid);
47
+ };
48
+ const RenderBlockMemo = /*#__PURE__*/ memo(RenderBlock);
16
49
 
17
50
  export { RenderBlockMemo as default };
@@ -6,19 +6,57 @@ import { useBuilderPreviewStore } from '../contexts/BuilderPreviewContext.js';
6
6
  import ComponentWrapperPreview from './ComponentWrapperPreview.js';
7
7
  import RenderSectionMemo from './RenderSection.js';
8
8
 
9
- const RenderPreview = ({ uid, ...passProps }) => {
10
- const item = useBuilderPreviewStore((s) => s.getItem(uid));
11
- const Component = useBuilderComponent(item?.tag);
12
- if (!item)
13
- return null;
14
- if (item?.type === 'section') {
15
- return jsx(RenderSectionMemo, { sectionId: item.uid });
16
- }
17
- else {
18
- return (jsx(ErrorBoundary, { fallbackRender: ({ error, resetErrorBoundary }) => (jsxs(ComponentWrapperPreview, { ...item, children: [jsx("span", { "aria-label": "Error message", children: error.message }), jsx("button", { type: "button", onClick: resetErrorBoundary, children: "Try again" })] })), children: jsx(ComponentWrapperPreview, { ...item, children: item?.childrens?.length ? (jsx(Component, { builderProps: { uid, builderData: item }, styles: item.styles, setting: item.settings, ...passProps, children: item.childrens.map((id) => (jsx(RenderPreviewMemo, { uid: id }, id))) })) : (jsx(Component, { builderProps: { uid, builderData: item }, styles: item.styles, setting: item.settings, ...passProps })) }) }, item.uid));
19
- }
20
- };
21
- const RenderPreviewMemo = memo(RenderPreview);
9
+ const RenderPreview = ({ uid , ...passProps })=>{
10
+ const item = useBuilderPreviewStore((s)=>s.getItem(uid));
11
+ const Component = useBuilderComponent(item?.tag);
12
+ if (!item) return null;
13
+ if (item?.type === 'section') {
14
+ return /*#__PURE__*/ jsx(RenderSectionMemo, {
15
+ sectionId: item.uid
16
+ });
17
+ } else {
18
+ return /*#__PURE__*/ jsx(ErrorBoundary, {
19
+ fallbackRender: ({ error , resetErrorBoundary })=>/*#__PURE__*/ jsxs(ComponentWrapperPreview, {
20
+ ...item,
21
+ children: [
22
+ /*#__PURE__*/ jsx("span", {
23
+ "aria-label": "Error message",
24
+ children: error.message
25
+ }),
26
+ /*#__PURE__*/ jsx("button", {
27
+ type: "button",
28
+ onClick: resetErrorBoundary,
29
+ children: "Try again"
30
+ })
31
+ ]
32
+ }),
33
+ children: /*#__PURE__*/ jsx(ComponentWrapperPreview, {
34
+ ...item,
35
+ children: item?.childrens?.length ? /*#__PURE__*/ jsx(Component, {
36
+ builderProps: {
37
+ uid,
38
+ builderData: item
39
+ },
40
+ styles: item.styles,
41
+ setting: item.settings,
42
+ ...passProps,
43
+ children: item.childrens.map((id)=>/*#__PURE__*/ jsx(RenderPreviewMemo, {
44
+ uid: id
45
+ }, id))
46
+ }) : /*#__PURE__*/ jsx(Component, {
47
+ builderProps: {
48
+ uid,
49
+ builderData: item
50
+ },
51
+ styles: item.styles,
52
+ setting: item.settings,
53
+ ...passProps
54
+ })
55
+ })
56
+ }, item.uid);
57
+ }
58
+ };
59
+ const RenderPreviewMemo = /*#__PURE__*/ memo(RenderPreview);
22
60
  RenderPreviewMemo.displayName = 'RenderPreviewMemo';
23
61
 
24
62
  export { RenderPreviewMemo as default };
@@ -4,12 +4,16 @@ import { BuilderProvider } from '../contexts/BuilderContext.js';
4
4
  import { useSection } from '../contexts/SectionContext.js';
5
5
  import RenderBlockMemo from './RenderBlock.js';
6
6
 
7
- const RenderSection = ({ sectionId }) => {
8
- const state = useSection(sectionId);
9
- if (!state)
10
- return null;
11
- return (jsx(BuilderProvider, { state: state, children: jsx(RenderBlockMemo, { uid: sectionId }) }, sectionId));
12
- };
13
- const RenderSectionMemo = memo(RenderSection);
7
+ const RenderSection = ({ sectionId })=>{
8
+ const state = useSection(sectionId);
9
+ if (!state) return null;
10
+ return /*#__PURE__*/ jsx(BuilderProvider, {
11
+ state: state,
12
+ children: /*#__PURE__*/ jsx(RenderBlockMemo, {
13
+ uid: sectionId
14
+ })
15
+ }, sectionId);
16
+ };
17
+ const RenderSectionMemo = /*#__PURE__*/ memo(RenderSection);
14
18
 
15
19
  export { RenderSectionMemo as default };
@@ -1,27 +1,27 @@
1
- const disableWrap = [
2
- 'Col',
3
- 'Row',
4
- 'Section',
5
- 'Image',
6
- 'Text',
7
- 'Button',
8
- 'ProductButton',
9
- 'Cart',
10
- 'Tabs',
11
- 'TabItem',
12
- 'Carousel',
13
- 'CarouselItem',
14
- 'ShopPayButton',
15
- 'AccordionItem',
16
- 'Video',
17
- 'Header',
18
- 'HeroBanner',
19
- 'Icon',
20
- 'IconList',
21
- 'HTMLCode',
22
- 'IconListHoz',
23
- 'IconListItem',
24
- 'CSSCode',
1
+ const disableWrap = [
2
+ 'Col',
3
+ 'Row',
4
+ 'Section',
5
+ 'Image',
6
+ 'Text',
7
+ 'Button',
8
+ 'ProductButton',
9
+ 'Cart',
10
+ 'Tabs',
11
+ 'TabItem',
12
+ 'Carousel',
13
+ 'CarouselItem',
14
+ 'ShopPayButton',
15
+ 'AccordionItem',
16
+ 'Video',
17
+ 'Header',
18
+ 'HeroBanner',
19
+ 'Icon',
20
+ 'IconList',
21
+ 'HTMLCode',
22
+ 'IconListHoz',
23
+ 'IconListItem',
24
+ 'CSSCode'
25
25
  ];
26
26
 
27
27
  export { disableWrap };
@@ -1,21 +1,32 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useContext, useMemo } from 'react';
2
+ import { useContext, useMemo, createContext } from 'react';
3
3
  import Empty from '../components/Empty.js';
4
4
 
5
- const AddonContext = createContext(null);
6
- const AddonProvider = ({ children, components, ...passProps }) => {
7
- return (jsx(AddonContext.Provider, { ...passProps, value: { components }, children: children }));
8
- };
9
- const useAddons = () => {
10
- const context = useContext(AddonContext);
11
- if (!context) {
12
- throw new Error('useAddons must be used within an AddonProvider');
13
- }
14
- return useMemo(() => context.components, [context.components]);
15
- };
16
- const useAddon = (id) => {
17
- const addons = useAddons();
18
- return useMemo(() => (id ? addons[id] ?? Empty : Empty), [id, addons]);
5
+ const AddonContext = /*#__PURE__*/ createContext(null);
6
+ const AddonProvider = ({ children , components , ...passProps })=>{
7
+ return /*#__PURE__*/ jsx(AddonContext.Provider, {
8
+ ...passProps,
9
+ value: {
10
+ components
11
+ },
12
+ children: children
13
+ });
14
+ };
15
+ const useAddons = ()=>{
16
+ const context = useContext(AddonContext);
17
+ if (!context) {
18
+ throw new Error('useAddons must be used within an AddonProvider');
19
+ }
20
+ return useMemo(()=>context.components, [
21
+ context.components
22
+ ]);
23
+ };
24
+ const useAddon = (id)=>{
25
+ const addons = useAddons();
26
+ return useMemo(()=>id ? addons[id] ?? Empty : Empty, [
27
+ id,
28
+ addons
29
+ ]);
19
30
  };
20
31
 
21
32
  export { AddonProvider, useAddon, useAddons };
@@ -1,27 +1,31 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useStore, createStore } from 'zustand';
3
- import { createContext, useContext } from 'react';
3
+ import { useContext, createContext } from 'react';
4
4
  import Empty from '../components/Empty.js';
5
5
 
6
- const BuilderComponentContext = createContext(null);
7
- const createBuilderComponentStore = (components) => createStore((_, get) => ({
8
- components,
9
- getItem: (id) => {
10
- return get().components[id];
11
- },
12
- }));
13
- const BuilderComponentProvider = ({ children, components, ...passProps }) => {
14
- return (jsx(BuilderComponentContext.Provider, { ...passProps, value: createBuilderComponentStore(components), children: children }));
15
- };
16
- // export const useBuilderComponent = (id?: string) => {
17
- // return useStore((s) => (id ? s.getItem(id) ?? Empty : Empty));
18
- // };
19
- const useBuilderComponent = (id) => {
20
- const store = useContext(BuilderComponentContext);
21
- if (!store) {
22
- throw new Error('useBuilderComponent must be used within a BuilderComponentProvider');
23
- }
24
- return useStore(store, (s) => (id ? s.getItem(id) ?? Empty : Empty));
6
+ const BuilderComponentContext = /*#__PURE__*/ createContext(null);
7
+ const createBuilderComponentStore = (components)=>createStore((_, get)=>({
8
+ components,
9
+ getItem: (id)=>{
10
+ return get().components[id];
11
+ }
12
+ }));
13
+ const BuilderComponentProvider = ({ children , components , ...passProps })=>{
14
+ return /*#__PURE__*/ jsx(BuilderComponentContext.Provider, {
15
+ ...passProps,
16
+ value: createBuilderComponentStore(components),
17
+ children: children
18
+ });
19
+ };
20
+ // export const useBuilderComponent = (id?: string) => {
21
+ // return useStore((s) => (id ? s.getItem(id) ?? Empty : Empty));
22
+ // };
23
+ const useBuilderComponent = (id)=>{
24
+ const store = useContext(BuilderComponentContext);
25
+ if (!store) {
26
+ throw new Error('useBuilderComponent must be used within a BuilderComponentProvider');
27
+ }
28
+ return useStore(store, (s)=>id ? s.getItem(id) ?? Empty : Empty);
25
29
  };
26
30
 
27
31
  export { BuilderComponentProvider, useBuilderComponent };
@@ -1,26 +1,32 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useContext, Suspense, Fragment } from 'react';
2
+ import { useContext, createContext, Suspense, Fragment } from 'react';
3
3
  import { useStore, createStore } from 'zustand';
4
4
 
5
- const BuilderContext = createContext(null);
6
- const createBuilderProvider = (data) => createStore((_, get) => ({
7
- state: data,
8
- getItem: (id) => {
9
- return get().state[id];
10
- },
11
- }));
12
- const BuilderProvider = ({ children, state, lazy, priority, ...passProps }) => {
13
- const Component = lazy ? Suspense : Fragment;
14
- const store = createBuilderProvider(state);
15
- return (jsx(Component, { children: jsx(BuilderContext.Provider, { ...passProps, value: store, children: children }) }));
16
- };
17
- // export const useBuilderStore = useStore;
18
- const useBuilderStore = (selector, equalityFn) => {
19
- const store = useContext(BuilderContext);
20
- if (!store) {
21
- throw new Error('useBuilderStore must be used within a BuilderProvider');
22
- }
23
- return useStore(store, selector, equalityFn);
5
+ const BuilderContext = /*#__PURE__*/ createContext(null);
6
+ const createBuilderProvider = (data)=>createStore((_, get)=>({
7
+ state: data,
8
+ getItem: (id)=>{
9
+ return get().state[id];
10
+ }
11
+ }));
12
+ const BuilderProvider = ({ children , state , lazy , priority , ...passProps })=>{
13
+ const Component = lazy ? Suspense : Fragment;
14
+ const store = createBuilderProvider(state);
15
+ return /*#__PURE__*/ jsx(Component, {
16
+ children: /*#__PURE__*/ jsx(BuilderContext.Provider, {
17
+ ...passProps,
18
+ value: store,
19
+ children: children
20
+ })
21
+ });
22
+ };
23
+ // export const useBuilderStore = useStore;
24
+ const useBuilderStore = (selector, equalityFn)=>{
25
+ const store = useContext(BuilderContext);
26
+ if (!store) {
27
+ throw new Error('useBuilderStore must be used within a BuilderProvider');
28
+ }
29
+ return useStore(store, selector, equalityFn);
24
30
  };
25
31
 
26
32
  export { BuilderProvider, useBuilderStore };