@gem-sdk/core 1.13.42 → 1.14.0-dev.286

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/dist/cjs/components/AddOn.js +1 -18
  2. package/dist/cjs/components/ComponentWrapper.js +1 -28
  3. package/dist/cjs/components/ComponentWrapperPreview.js +1 -72
  4. package/dist/cjs/components/Empty.js +1 -7
  5. package/dist/cjs/components/Render.js +1 -65
  6. package/dist/cjs/components/Render.liquid.js +15 -158
  7. package/dist/cjs/components/RenderBlock.js +1 -54
  8. package/dist/cjs/components/RenderCustomCode.js +5 -0
  9. package/dist/cjs/components/RenderPreview.js +1 -66
  10. package/dist/cjs/components/RenderSection.js +1 -23
  11. package/dist/cjs/components/constant.js +1 -39
  12. package/dist/cjs/components/src/product/helpers/variant-presets.js +1 -0
  13. package/dist/cjs/contexts/AddonContext.js +1 -36
  14. package/dist/cjs/contexts/BuilderComponent.js +1 -34
  15. package/dist/cjs/contexts/BuilderContext.js +1 -35
  16. package/dist/cjs/contexts/BuilderPreviewContext.js +1 -370
  17. package/dist/cjs/contexts/CartLineContext.js +1 -29
  18. package/dist/cjs/contexts/CollectionContext.js +1 -38
  19. package/dist/cjs/contexts/ModalContext.js +1 -47
  20. package/dist/cjs/contexts/ProductContext.js +1 -149
  21. package/dist/cjs/contexts/ProductListContext.js +1 -32
  22. package/dist/cjs/contexts/SectionContext.js +1 -53
  23. package/dist/cjs/contexts/ShopContext.js +1 -70
  24. package/dist/cjs/graphql/fragments/analytic.generated.js +2 -6
  25. package/dist/cjs/graphql/fragments/collection-detail.generated.js +2 -6
  26. package/dist/cjs/graphql/fragments/collection-product.generated.js +2 -6
  27. package/dist/cjs/graphql/fragments/collection.generated.js +2 -6
  28. package/dist/cjs/graphql/fragments/custom-code.generated.js +2 -6
  29. package/dist/cjs/graphql/fragments/data-seo.generated.js +2 -6
  30. package/dist/cjs/graphql/fragments/media.generated.js +3 -6
  31. package/dist/cjs/graphql/fragments/product-little.generated.js +2 -6
  32. package/dist/cjs/graphql/fragments/product-option-value.generated.js +2 -6
  33. package/dist/cjs/graphql/fragments/product-option.generated.js +2 -6
  34. package/dist/cjs/graphql/fragments/product.generated.js +2 -6
  35. package/dist/cjs/graphql/fragments/published-custom-section.generated.js +2 -6
  36. package/dist/cjs/graphql/fragments/published-page-section.generated.js +2 -6
  37. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +2 -6
  38. package/dist/cjs/graphql/fragments/published-theme-style.generated.js +2 -6
  39. package/dist/cjs/graphql/fragments/selected-option.generated.js +2 -6
  40. package/dist/cjs/graphql/fragments/variant.generated.js +2 -6
  41. package/dist/cjs/graphql/mutations/page-view-up.generated.js +3 -7
  42. package/dist/cjs/graphql/queries/collection-detail-filter.generated.js +2 -16
  43. package/dist/cjs/graphql/queries/collection.generated.js +2 -14
  44. package/dist/cjs/graphql/queries/collections.generated.js +2 -9
  45. package/dist/cjs/graphql/queries/preview-page.generated.js +2 -14
  46. package/dist/cjs/graphql/queries/product-little-detail.generated.js +2 -11
  47. package/dist/cjs/graphql/queries/product-medias.generated.js +2 -8
  48. package/dist/cjs/graphql/queries/product-value-label.generated.js +7 -0
  49. package/dist/cjs/graphql/queries/product-variants.generated.js +2 -10
  50. package/dist/cjs/graphql/queries/products.generated.js +3 -17
  51. package/dist/cjs/graphql/queries/published-theme-pages.generated.js +2 -14
  52. package/dist/cjs/graphql/queries/store-property.generated.js +2 -6
  53. package/dist/cjs/helpers/GlobalEvent.js +1 -19
  54. package/dist/cjs/helpers/background.js +1 -109
  55. package/dist/cjs/helpers/borders.js +4 -183
  56. package/dist/cjs/helpers/clone-deep.js +1 -5
  57. package/dist/cjs/helpers/cls.js +1 -16
  58. package/dist/cjs/helpers/colors.js +1 -183
  59. package/dist/cjs/helpers/compose-advance-style.js +1 -188
  60. package/dist/cjs/helpers/constant.js +1 -23
  61. package/dist/cjs/helpers/convert.js +1 -7
  62. package/dist/cjs/helpers/css-variable.js +1 -7
  63. package/dist/cjs/helpers/email.js +1 -11
  64. package/dist/cjs/helpers/flatten-connection.js +1 -9
  65. package/dist/cjs/helpers/get-resonsive-value.js +1 -31
  66. package/dist/cjs/helpers/get-shortname.js +1 -92
  67. package/dist/cjs/helpers/is-browser.js +1 -9
  68. package/dist/cjs/helpers/is-defined.js +1 -7
  69. package/dist/cjs/helpers/is-empty-children.js +1 -12
  70. package/dist/cjs/helpers/is-safari.js +1 -9
  71. package/dist/cjs/helpers/layout.js +1 -59
  72. package/dist/cjs/helpers/load-script.js +1 -31
  73. package/dist/cjs/helpers/make-style.js +1 -128
  74. package/dist/cjs/helpers/normalize-builder-data.js +1 -23
  75. package/dist/cjs/helpers/prefetch-queries.js +1 -78
  76. package/dist/cjs/helpers/product.js +1 -45
  77. package/dist/cjs/helpers/queries/get-collection.js +1 -220
  78. package/dist/cjs/helpers/queries/get-collections.js +1 -21
  79. package/dist/cjs/helpers/queries/get-product-by-slug.js +1 -125
  80. package/dist/cjs/helpers/queries/get-product.js +1 -154
  81. package/dist/cjs/helpers/queries/get-products.js +1 -161
  82. package/dist/cjs/helpers/query.js +1 -29
  83. package/dist/cjs/helpers/radius.js +6 -134
  84. package/dist/cjs/helpers/render.js +1 -71
  85. package/dist/cjs/helpers/shadow.js +1 -56
  86. package/dist/cjs/helpers/size.js +4 -35
  87. package/dist/cjs/helpers/spacing.js +1 -43
  88. package/dist/cjs/helpers/tracking/fpixel.js +1 -28
  89. package/dist/cjs/helpers/tracking/gtag.js +1 -93
  90. package/dist/cjs/helpers/tracking/tiktokpixel.js +1 -17
  91. package/dist/cjs/helpers/typography.js +17 -105
  92. package/dist/cjs/helpers/variant.js +1 -8
  93. package/dist/cjs/hooks/cart/use-add-to-cart.js +1 -20
  94. package/dist/cjs/hooks/cart/use-cart-data.js +1 -28
  95. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +1 -20
  96. package/dist/cjs/hooks/cart/use-cart-note-update.js +1 -20
  97. package/dist/cjs/hooks/cart/use-create-cart.js +1 -22
  98. package/dist/cjs/hooks/cart/use-remove-cart-item.js +1 -20
  99. package/dist/cjs/hooks/cart/use-update-cart-item.js +1 -20
  100. package/dist/cjs/hooks/shop/use-collection-query.js +1 -22
  101. package/dist/cjs/hooks/shop/use-collections-query.js +1 -17
  102. package/dist/cjs/hooks/shop/use-product-query.js +1 -22
  103. package/dist/cjs/hooks/shop/use-products-query.js +1 -22
  104. package/dist/cjs/hooks/shop.js +1 -126
  105. package/dist/cjs/hooks/use-current-device.js +1 -21
  106. package/dist/cjs/hooks/use-lazy-video.js +1 -15
  107. package/dist/cjs/hooks/useCartId.js +1 -44
  108. package/dist/cjs/hooks/useCartLine.js +1 -11
  109. package/dist/cjs/hooks/useCartUI.js +1 -48
  110. package/dist/cjs/hooks/useCollection.js +1 -9
  111. package/dist/cjs/hooks/useFetchHandle.js +1 -13
  112. package/dist/cjs/hooks/useFormatMoney.js +1 -58
  113. package/dist/cjs/hooks/useInitialSwatchesOptions.js +1 -0
  114. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +1 -10
  115. package/dist/cjs/hooks/useLoadScript.js +1 -32
  116. package/dist/cjs/hooks/useMoney.js +1 -84
  117. package/dist/cjs/hooks/usePrevious.js +1 -19
  118. package/dist/cjs/hooks/useProduct.js +1 -124
  119. package/dist/cjs/hooks/useProductList.js +1 -21
  120. package/dist/cjs/hooks/useSuspenseFetch.js +1 -27
  121. package/dist/cjs/hooks/useSwatchesOptions.js +1 -41
  122. package/dist/cjs/index.js +1 -291
  123. package/dist/cjs/types/global-style.js +1 -14
  124. package/dist/cjs/types/shop.js +1 -2
  125. package/dist/esm/components/AddOn.js +1 -14
  126. package/dist/esm/components/ComponentWrapper.js +1 -24
  127. package/dist/esm/components/ComponentWrapperPreview.js +1 -68
  128. package/dist/esm/components/Empty.js +1 -3
  129. package/dist/esm/components/Render.js +1 -61
  130. package/dist/esm/components/Render.liquid.js +15 -153
  131. package/dist/esm/components/RenderBlock.js +1 -50
  132. package/dist/esm/components/RenderCustomCode.js +5 -0
  133. package/dist/esm/components/RenderPreview.js +1 -62
  134. package/dist/esm/components/RenderSection.js +1 -19
  135. package/dist/esm/components/constant.js +1 -37
  136. package/dist/esm/components/src/product/helpers/variant-presets.js +1 -0
  137. package/dist/esm/contexts/AddonContext.js +1 -32
  138. package/dist/esm/contexts/BuilderComponent.js +1 -31
  139. package/dist/esm/contexts/BuilderContext.js +1 -32
  140. package/dist/esm/contexts/BuilderPreviewContext.js +1 -367
  141. package/dist/esm/contexts/CartLineContext.js +1 -26
  142. package/dist/esm/contexts/CollectionContext.js +1 -35
  143. package/dist/esm/contexts/ModalContext.js +1 -44
  144. package/dist/esm/contexts/ProductContext.js +1 -146
  145. package/dist/esm/contexts/ProductListContext.js +1 -28
  146. package/dist/esm/contexts/SectionContext.js +1 -49
  147. package/dist/esm/contexts/ShopContext.js +1 -67
  148. package/dist/esm/graphql/fragments/analytic.generated.js +2 -4
  149. package/dist/esm/graphql/fragments/collection-detail.generated.js +2 -4
  150. package/dist/esm/graphql/fragments/collection-product.generated.js +2 -4
  151. package/dist/esm/graphql/fragments/collection.generated.js +2 -4
  152. package/dist/esm/graphql/fragments/custom-code.generated.js +2 -4
  153. package/dist/esm/graphql/fragments/data-seo.generated.js +2 -4
  154. package/dist/esm/graphql/fragments/media.generated.js +3 -4
  155. package/dist/esm/graphql/fragments/product-little.generated.js +2 -4
  156. package/dist/esm/graphql/fragments/product-option-value.generated.js +2 -4
  157. package/dist/esm/graphql/fragments/product-option.generated.js +2 -4
  158. package/dist/esm/graphql/fragments/product.generated.js +2 -4
  159. package/dist/esm/graphql/fragments/published-custom-section.generated.js +2 -4
  160. package/dist/esm/graphql/fragments/published-page-section.generated.js +2 -4
  161. package/dist/esm/graphql/fragments/published-theme-page.generated.js +2 -4
  162. package/dist/esm/graphql/fragments/published-theme-style.generated.js +2 -4
  163. package/dist/esm/graphql/fragments/selected-option.generated.js +2 -4
  164. package/dist/esm/graphql/fragments/variant.generated.js +2 -4
  165. package/dist/esm/graphql/mutations/page-view-up.generated.js +3 -5
  166. package/dist/esm/graphql/queries/collection-detail-filter.generated.js +10 -22
  167. package/dist/esm/graphql/queries/collection.generated.js +8 -18
  168. package/dist/esm/graphql/queries/collections.generated.js +3 -8
  169. package/dist/esm/graphql/queries/preview-page.generated.js +8 -18
  170. package/dist/esm/graphql/queries/product-little-detail.generated.js +5 -12
  171. package/dist/esm/graphql/queries/product-medias.generated.js +2 -6
  172. package/dist/esm/graphql/queries/product-value-label.generated.js +7 -0
  173. package/dist/esm/graphql/queries/product-variants.generated.js +4 -10
  174. package/dist/esm/graphql/queries/products.generated.js +9 -20
  175. package/dist/esm/graphql/queries/published-theme-pages.generated.js +8 -18
  176. package/dist/esm/graphql/queries/store-property.generated.js +2 -4
  177. package/dist/esm/helpers/GlobalEvent.js +1 -15
  178. package/dist/esm/helpers/background.js +1 -106
  179. package/dist/esm/helpers/borders.js +4 -175
  180. package/dist/esm/helpers/clone-deep.js +1 -3
  181. package/dist/esm/helpers/cls.js +1 -14
  182. package/dist/esm/helpers/colors.js +1 -168
  183. package/dist/esm/helpers/compose-advance-style.js +1 -185
  184. package/dist/esm/helpers/constant.js +1 -19
  185. package/dist/esm/helpers/convert.js +1 -4
  186. package/dist/esm/helpers/css-variable.js +1 -5
  187. package/dist/esm/helpers/email.js +1 -6
  188. package/dist/esm/helpers/flatten-connection.js +1 -7
  189. package/dist/esm/helpers/get-resonsive-value.js +1 -27
  190. package/dist/esm/helpers/get-shortname.js +1 -90
  191. package/dist/esm/helpers/is-browser.js +1 -5
  192. package/dist/esm/helpers/is-defined.js +1 -5
  193. package/dist/esm/helpers/is-empty-children.js +1 -7
  194. package/dist/esm/helpers/is-safari.js +1 -5
  195. package/dist/esm/helpers/layout.js +1 -54
  196. package/dist/esm/helpers/load-script.js +1 -29
  197. package/dist/esm/helpers/make-style.js +1 -117
  198. package/dist/esm/helpers/normalize-builder-data.js +1 -21
  199. package/dist/esm/helpers/prefetch-queries.js +1 -76
  200. package/dist/esm/helpers/product.js +1 -41
  201. package/dist/esm/helpers/queries/get-collection.js +1 -217
  202. package/dist/esm/helpers/queries/get-collections.js +1 -19
  203. package/dist/esm/helpers/queries/get-product-by-slug.js +1 -123
  204. package/dist/esm/helpers/queries/get-product.js +1 -150
  205. package/dist/esm/helpers/queries/get-products.js +1 -159
  206. package/dist/esm/helpers/query.js +1 -25
  207. package/dist/esm/helpers/radius.js +6 -127
  208. package/dist/esm/helpers/render.js +1 -64
  209. package/dist/esm/helpers/shadow.js +1 -51
  210. package/dist/esm/helpers/size.js +4 -31
  211. package/dist/esm/helpers/spacing.js +1 -40
  212. package/dist/esm/helpers/tracking/fpixel.js +1 -24
  213. package/dist/esm/helpers/tracking/gtag.js +1 -87
  214. package/dist/esm/helpers/tracking/tiktokpixel.js +1 -15
  215. package/dist/esm/helpers/typography.js +17 -96
  216. package/dist/esm/helpers/variant.js +1 -6
  217. package/dist/esm/hooks/cart/use-add-to-cart.js +1 -18
  218. package/dist/esm/hooks/cart/use-cart-data.js +1 -26
  219. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +1 -18
  220. package/dist/esm/hooks/cart/use-cart-note-update.js +1 -18
  221. package/dist/esm/hooks/cart/use-create-cart.js +1 -20
  222. package/dist/esm/hooks/cart/use-remove-cart-item.js +1 -18
  223. package/dist/esm/hooks/cart/use-update-cart-item.js +1 -18
  224. package/dist/esm/hooks/shop/use-collection-query.js +1 -20
  225. package/dist/esm/hooks/shop/use-collections-query.js +1 -15
  226. package/dist/esm/hooks/shop/use-product-query.js +1 -20
  227. package/dist/esm/hooks/shop/use-products-query.js +1 -20
  228. package/dist/esm/hooks/shop.js +1 -111
  229. package/dist/esm/hooks/use-current-device.js +1 -19
  230. package/dist/esm/hooks/use-lazy-video.js +1 -13
  231. package/dist/esm/hooks/useCartId.js +1 -40
  232. package/dist/esm/hooks/useCartLine.js +1 -7
  233. package/dist/esm/hooks/useCartUI.js +1 -44
  234. package/dist/esm/hooks/useCollection.js +1 -7
  235. package/dist/esm/hooks/useFetchHandle.js +1 -11
  236. package/dist/esm/hooks/useFormatMoney.js +1 -56
  237. package/dist/esm/hooks/useInitialSwatchesOptions.js +1 -0
  238. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +1 -6
  239. package/dist/esm/hooks/useLoadScript.js +1 -28
  240. package/dist/esm/hooks/useMoney.js +1 -80
  241. package/dist/esm/hooks/usePrevious.js +1 -17
  242. package/dist/esm/hooks/useProduct.js +1 -111
  243. package/dist/esm/hooks/useProductList.js +1 -16
  244. package/dist/esm/hooks/useSuspenseFetch.js +1 -23
  245. package/dist/esm/hooks/useSwatchesOptions.js +1 -37
  246. package/dist/esm/index.js +1 -92
  247. package/dist/esm/types/global-style.js +1 -11
  248. package/dist/types/index.d.ts +1228 -1031
  249. package/package.json +3 -3
@@ -1,68 +1 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { isValidElement } from 'react';
3
- import { composeAdvanceStyle } from '../helpers/compose-advance-style.js';
4
- import { disableWrap } from './constant.js';
5
-
6
- const ComponentWrapperPreview = ({ children, ...props })=>{
7
- if (props.type === 'section') {
8
- return null;
9
- }
10
- const customProps = {};
11
- // Build editor configs
12
- if (props.editorConfigs) {
13
- const editorConfigs = props.editorConfigs;
14
- if (editorConfigs.placeholder?.notAppendBeforeAfter) {
15
- customProps['data-placeholder-not-append-before-after'] = true;
16
- }
17
- if (editorConfigs.toolbar?.parent) {
18
- customProps['data-toolbar-parent'] = true;
19
- }
20
- if (editorConfigs.component?.noDelete) {
21
- customProps['data-component-no-delete'] = true;
22
- }
23
- if (editorConfigs.component?.noDuplicate) {
24
- customProps['data-component-no-duplicate'] = true;
25
- }
26
- if (editorConfigs.component?.noDragDrop) {
27
- customProps['data-component-no-drag-drop'] = true;
28
- }
29
- if (editorConfigs.component?.noSetting) {
30
- customProps['data-component-no-setting'] = true;
31
- }
32
- if (editorConfigs.component?.isThirdParty) {
33
- customProps['data-component-is-third-party'] = true;
34
- }
35
- if (editorConfigs.toolbar?.hide) {
36
- customProps['data-toolbar-hide'] = true;
37
- }
38
- if (editorConfigs.slots?.children) {
39
- customProps['data-slots-children'] = true;
40
- }
41
- }
42
- const style = composeAdvanceStyle(props.advanced, props.tag);
43
- const advanced = props.advanced;
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 (disableWrap.includes(props.tag) && /*#__PURE__*/ isValidElement(children)) {
52
- return /*#__PURE__*/ jsx(children.type, {
53
- ...children.props,
54
- style,
55
- builderAttrs,
56
- advanced
57
- });
58
- }
59
- // Render
60
- return /*#__PURE__*/ jsx("div", {
61
- style: style,
62
- className: `${props.uid}`,
63
- ...builderAttrs,
64
- children: children
65
- });
66
- };
67
-
68
- export { ComponentWrapperPreview as default };
1
+ import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{isValidElement as a}from"react";import{composeAdvanceStyle as n}from"../helpers/compose-advance-style.js";import{disableWrap as d}from"./constant.js";import r from"./RenderCustomCode.js";let ComponentWrapperPreview=({children:p,...c})=>{if("section"===c.type)return null;let i={};if(c.editorConfigs){let e=c.editorConfigs;e.placeholder?.notAppendBeforeAfter&&(i["data-placeholder-not-append-before-after"]=!0),e.toolbar?.parent&&(i["data-toolbar-parent"]=!0),e.component?.noDelete&&(i["data-component-no-delete"]=!0),e.component?.noDuplicate&&(i["data-component-no-duplicate"]=!0),e.component?.noDragDrop&&(i["data-component-no-drag-drop"]=!0),e.component?.noSetting&&(i["data-component-no-setting"]=!0),e.component?.isThirdParty&&(i["data-component-is-third-party"]=!0),e.toolbar?.hide&&(i["data-toolbar-hide"]=!0),e.slots?.children&&(i["data-slots-children"]=!0)}let l=n(c.advanced,c.tag),s=c.advanced,m={...i,"data-uid":c.uid,"data-component-type":"component","data-component-tag":c.tag,"data-component-label":c.label};return d.includes(c.tag)&&a(p)?e(t,{children:[o(r,{uid:c.uid,advanced:s}),o(p.type,{className:s?.cssClass,...p.props,style:l,builderAttrs:m,advanced:s})]}):e(t,{children:[o(r,{uid:c.uid,advanced:s}),o("div",{style:l,className:`${c.uid} ${c.advanced?.cssClass?c.advanced?.cssClass:""}`,...m,children:p})]})};export{ComponentWrapperPreview as default};
@@ -1,3 +1 @@
1
- const Empty = ()=>null;
2
-
3
- export { Empty as default };
1
+ let Empty=()=>null;export{Empty as default};
@@ -1,61 +1 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { memo } from 'react';
3
- import { ErrorBoundary } from 'react-error-boundary';
4
- import { useBuilderComponent } from '../contexts/BuilderComponent.js';
5
- import { useBuilderStore } from '../contexts/BuilderContext.js';
6
- import ComponentWrapper from './ComponentWrapper.js';
7
- import RenderSectionMemo from './RenderSection.js';
8
-
9
- const Render = ({ uid, ...passProps })=>{
10
- const item = useBuilderStore((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(Fragment, {
20
- children: [
21
- /*#__PURE__*/ jsx("span", {
22
- "aria-label": "Error message",
23
- children: error.message
24
- }),
25
- /*#__PURE__*/ jsx("button", {
26
- type: "button",
27
- onClick: resetErrorBoundary,
28
- children: "Try again"
29
- })
30
- ]
31
- }),
32
- children: /*#__PURE__*/ jsx(ComponentWrapper, {
33
- ...item,
34
- children: item?.childrens?.length ? /*#__PURE__*/ jsx(Component, {
35
- builderProps: {
36
- uid,
37
- builderData: item
38
- },
39
- styles: item.styles,
40
- setting: item.settings,
41
- ...passProps,
42
- children: item.childrens.map((id)=>/*#__PURE__*/ jsx(RenderMemo, {
43
- uid: id
44
- }, id))
45
- }) : /*#__PURE__*/ jsx(Component, {
46
- builderProps: {
47
- uid,
48
- builderData: item
49
- },
50
- styles: item.styles,
51
- setting: item.settings,
52
- ...passProps
53
- })
54
- })
55
- }, item.uid);
56
- }
57
- };
58
- const RenderMemo = /*#__PURE__*/ memo(Render);
59
- RenderMemo.displayName = 'RenderMemo';
60
-
61
- export { RenderMemo as default };
1
+ import{jsx as e,jsxs as r,Fragment as t}from"react/jsx-runtime";import{memo as n}from"react";import{ErrorBoundary as o}from"react-error-boundary";import{useBuilderComponent as i}from"../contexts/BuilderComponent.js";import{useBuilderStore as s}from"../contexts/BuilderContext.js";import d from"./ComponentWrapper.js";import l from"./RenderSection.js";let Render=({uid:n,...m})=>{let a=s(e=>e.getItem(n)),p=i(a?.tag);return a?a?.type==="section"?e(l,{sectionId:a.uid}):e(o,{fallbackRender:({error:n,resetErrorBoundary:o})=>r(t,{children:[e("span",{"aria-label":"Error message",children:n.message}),e("button",{type:"button",onClick:o,children:"Try again"})]}),children:e(d,{...a,children:a?.childrens?.length?e(p,{builderProps:{uid:n,builderData:a},styles:a.styles,setting:a.settings,...m,children:a.childrens.map(r=>e(RenderMemo,{uid:r},r))}):e(p,{builderProps:{uid:n,builderData:a},styles:a.styles,setting:a.settings,...m})})},a.uid):null},RenderMemo=n(Render);RenderMemo.displayName="RenderMemo";export{RenderMemo as default};
@@ -1,153 +1,15 @@
1
- import 'react';
2
- import 'swr';
3
- import { RenderIf, template } from '../helpers/render.js';
4
- import '../helpers/convert.js';
5
- import { composeAdvanceStyle } from '../helpers/compose-advance-style.js';
6
- import { disableWrap } from './constant.js';
7
-
8
- const componentsRenderWithParentId = [
9
- 'CarouselItem'
10
- ];
11
- const componentTexts = [
12
- 'Text',
13
- 'Heading'
14
- ];
15
- const Render = ({ uid, builder, components, parentId, extraFiles = {}, ...passProps })=>{
16
- const item = builder[uid];
17
- const Component = components[item?.tag];
18
- if (!Component) {
19
- console.log('Miss component: ', item);
20
- return {
21
- liquid: '',
22
- extraFiles
23
- };
24
- }
25
- if (!item) {
26
- return {
27
- liquid: '',
28
- extraFiles
29
- };
30
- }
31
- if (item?.type === 'section') {
32
- return {
33
- liquid: '',
34
- extraFiles
35
- };
36
- } else {
37
- const customProps = {
38
- extraFiles: {}
39
- };
40
- const style = composeAdvanceStyle(item.advanced, item.tag);
41
- let liquid = '';
42
- if (disableWrap.includes(item.tag)) {
43
- liquid = RenderIf(item?.childrens?.length, ()=>{
44
- return Component({
45
- builderProps: {
46
- uid,
47
- builderData: item
48
- },
49
- styles: item.styles,
50
- setting: item.settings,
51
- style,
52
- advanced: item.advanced,
53
- parentId: componentsRenderWithParentId.includes(item.tag) ? parentId : null,
54
- ...passProps,
55
- rawChildren: item.childrens.map((id)=>{
56
- return {
57
- ...builder[id],
58
- uid: id,
59
- builder,
60
- components,
61
- customProps
62
- };
63
- }),
64
- children: item.childrens.map((id)=>RenderChildren({
65
- uid: id,
66
- builder,
67
- components,
68
- customProps
69
- })).join('')
70
- });
71
- }, ()=>{
72
- return Component({
73
- builderProps: {
74
- uid,
75
- builderData: item
76
- },
77
- styles: item.styles,
78
- setting: item.settings,
79
- advanced: item.advanced,
80
- style,
81
- isText: componentTexts.includes(item.tag) ? true : null,
82
- parentId: componentsRenderWithParentId.includes(item.tag) ? parentId : null,
83
- ...passProps
84
- });
85
- });
86
- } else {
87
- liquid = template`<div style="${style}" class="${item.uid}">
88
- ${RenderIf(item?.childrens?.length, ()=>{
89
- return Component({
90
- builderProps: {
91
- uid,
92
- builderData: item
93
- },
94
- styles: item.styles,
95
- setting: item.settings,
96
- ...passProps,
97
- rawChildren: item.childrens.map((id)=>{
98
- return {
99
- ...builder[id],
100
- uid: id,
101
- builder,
102
- components,
103
- customProps
104
- };
105
- }),
106
- children: item.childrens.map((id)=>RenderChildren({
107
- uid: id,
108
- builder,
109
- components,
110
- customProps
111
- })).join('')
112
- });
113
- }, ()=>{
114
- return Component({
115
- builderProps: {
116
- uid,
117
- builderData: item
118
- },
119
- styles: item.styles,
120
- setting: item.settings,
121
- isText: componentTexts.includes(item.tag) ? true : null,
122
- ...passProps
123
- });
124
- })}
125
- </div>`;
126
- }
127
- return {
128
- liquid,
129
- extraFiles: customProps.extraFiles
130
- };
131
- }
132
- };
133
- const RenderChildren = (props)=>{
134
- const data = Render(props);
135
- // Append to prop parent
136
- for(const key in data.extraFiles){
137
- if (Object.prototype.hasOwnProperty.call(data.extraFiles, key)) {
138
- const value = data.extraFiles[key];
139
- props.customProps.extraFiles[key] = value;
140
- }
141
- }
142
- // Fix limit 256kb
143
- const textEncoder = new TextEncoder();
144
- const size = data?.liquid ? textEncoder.encode(data.liquid).length : 0;
145
- if (Math.ceil(size / 1024) >= 180) {
146
- const fileName = `gp-section-snippet-${props.uid}`;
147
- props.customProps.extraFiles[fileName] = data.liquid;
148
- return `{% render '${fileName}', product: product, variant: variant, product_form_id: product_form_id %}`;
149
- }
150
- return data.liquid;
151
- };
152
-
153
- export { RenderChildren, Render as default };
1
+ import"react";import"swr";import{RenderIf as e,template as t}from"../helpers/render.js";import"../helpers/convert.js";import{composeAdvanceStyle as r}from"../helpers/compose-advance-style.js";import{disableWrap as n,customRenderChildren as d}from"./constant.js";let componentsRenderWithParentId=["CarouselItem"],componentTexts=["Text","Heading"],Render=({uid:i,builder:s,components:l,parentId:a,extraFiles:c={},pageContext:o,...p})=>{let u=s[i],h=l[u?.tag];if(!h)return console.log("Miss component: ",u),{liquid:"",extraFiles:c};if(!u||u?.type==="section")return{liquid:"",extraFiles:c};{let c={extraFiles:{}},g=r(u.advanced,u.tag),m="";m=n.includes(u.tag)?e(u?.childrens?.length,()=>h({builderProps:{uid:i,builderData:u},styles:u.styles,setting:u.settings,style:g,advanced:u.advanced,parentId:componentsRenderWithParentId.includes(u.tag)?a:null,pageContext:o,...p,rawChildren:u.childrens.map(e=>({...s[e],uid:e,builder:s,components:l,customProps:c,pageContext:o})),children:d.includes(u.tag)?"":WrapRenderChildren({uid:i,customProps:c},u.childrens.map(e=>RenderChildren({uid:e,builder:s,components:l,customProps:c,parentTag:u.tag,pageContext:o})))}),()=>h({builderProps:{uid:i,builderData:u},styles:u.styles,setting:u.settings,advanced:u.advanced,style:g,isText:!!componentTexts.includes(u.tag)||null,parentId:componentsRenderWithParentId.includes(u.tag)?a:null,pageContext:o,...p})):t`<div style="${g}" class="${u.uid} ${u?.childrens?.length||"IconListItemHoz"!==u.tag?"":"hidden"}">
2
+ ${e(u?.childrens?.length,()=>h({builderProps:{uid:i,builderData:u},styles:u.styles,setting:u.settings,advanced:{cssClass:u?.advanced?.cssClass},pageContext:o,...p,rawChildren:u.childrens.map(e=>({...s[e],uid:e,builder:s,components:l,customProps:c,pageContext:o})),children:d.includes(u.tag)?"":WrapRenderChildren({uid:i,customProps:c},u.childrens.map(e=>RenderChildren({uid:e,builder:s,components:l,customProps:c,parentTag:u.tag,pageContext:o})))}),()=>h({builderProps:{uid:i,builderData:u},styles:u.styles,setting:u.settings,advanced:{cssClass:u?.advanced?.cssClass},pageContext:o,isText:!!componentTexts.includes(u.tag)||null,...p}))}
3
+ </div>`;let{cssCode:C,jsCode:v}=RenderCustomCode(u);return C&&(m+=C),v&&(m+=v),{liquid:m,extraFiles:c.extraFiles}}},RenderCustomCode=r=>{let{css:n,javascript:d,rootClassName:i}=r.advanced?.editorData||{},s=n?.replaceAll(i,r.uid),l=d?.replaceAll(i,r.uid),a=e(!!n,t`
4
+ <style
5
+ id="${`custom-css-${r?.uid}`}"
6
+ >${s}</style>
7
+ `),c=e(!!d,t`
8
+ <script
9
+ id="${`custom-js-${r?.uid}`}"
10
+ >
11
+ try {
12
+ ${l}
13
+ } catch(err){}
14
+ </script>
15
+ `);return{cssCode:a,jsCode:c}},RenderChildren=e=>{let t=Render(e);for(let r in t.extraFiles)if(Object.prototype.hasOwnProperty.call(t.extraFiles,r)){let n=t.extraFiles[r];e.customProps.extraFiles[r]=n}let r=new TextEncoder,n=t?.liquid?r.encode(t.liquid).length:0;if(Math.ceil(n/1024)>=180){let r=`gp-section-snippet-${e.uid}`;return e.customProps.extraFiles[r]=t.liquid,`{% render '${r}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}return t.liquid},WrapRenderChildren=({uid:e,customProps:t},r)=>{let n="";if(r?.length)for(let d=0;d<r.length;d++){let i=r[d];if(i){let r=n+i,s=new TextEncoder,l=r?s.encode(r).length:0;if(Math.ceil(l/1024)>=180){let r=`gp-section-snippet-${e+d}`;t.extraFiles[r]=i,n+=`{% render '${r}', product: product, variant: variant, product_form_id: product_form_id, productSelectedVariant: productSelectedVariant %}`}else n+=i}}return n};export{RenderChildren,WrapRenderChildren,Render as default};
@@ -1,50 +1 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { memo } from 'react';
3
- import { ErrorBoundary } from 'react-error-boundary';
4
- import { useBuilderComponent } from '../contexts/BuilderComponent.js';
5
- import { useBuilderStore } from '../contexts/BuilderContext.js';
6
- import ComponentWrapper from './ComponentWrapper.js';
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') 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);
49
-
50
- export { RenderBlockMemo as default };
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{memo as t}from"react";import{ErrorBoundary as o}from"react-error-boundary";import{useBuilderComponent as n}from"../contexts/BuilderComponent.js";import{useBuilderStore as l}from"../contexts/BuilderContext.js";import s from"./ComponentWrapper.js";let RenderBlock=({uid:t})=>{let i=l(e=>e.getItem(t)),d=n(i?.tag);return i&&"section"!==i.type?e(o,{fallbackRender:({error:t,resetErrorBoundary:o})=>r(s,{...i,children:[e("span",{"aria-label":"Error message",children:t.message}),e("button",{type:"button",onClick:o,children:"Try again"})]}),children:e(s,{...i,children:i?.childrens?.length?e(d,{builderProps:{uid:t},styles:i.styles??{},setting:i.settings??{},children:i?.childrens?.map(r=>e(RenderBlockMemo,{uid:r},r))}):e(d,{builderProps:{uid:t},styles:i.styles??{},setting:i.settings??{}})})},i.uid):null},RenderBlockMemo=t(RenderBlock);export{RenderBlockMemo as default};
@@ -0,0 +1,5 @@
1
+ import{jsxs as r,Fragment as t,jsx as e}from"react/jsx-runtime";import o from"next/head";import s from"next/script";import{useMemo as m}from"react";import"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import{useEditorMode as a}from"../hooks/shop.js";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../helpers/convert.js";let RenderCustomCode=({uid:i,advanced:p})=>{let l=a(),{css:d,javascript:n,rootClassName:c}=p?.editorData||{},u=d?.replaceAll(c,i),h=n?.replaceAll(c,i),f={css:`custom-css-${i}`,javascript:`custom-js-${i}`},j=m(()=>`
2
+ try {
3
+ ${h}
4
+ } catch(err){}
5
+ `,[h]);return r(t,{children:[e(o,{children:!!d&&e("style",{id:f.css,dangerouslySetInnerHTML:{__html:u}})}),!!n&&"edit"!==l&&e(s,{id:f.javascript,dangerouslySetInnerHTML:{__html:j}})]})};export{RenderCustomCode as default};
@@ -1,62 +1 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { memo } from 'react';
3
- import { ErrorBoundary } from 'react-error-boundary';
4
- import { useBuilderComponent } from '../contexts/BuilderComponent.js';
5
- import { useBuilderPreviewStore } from '../contexts/BuilderPreviewContext.js';
6
- import ComponentWrapperPreview from './ComponentWrapperPreview.js';
7
- import RenderSectionMemo from './RenderSection.js';
8
-
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);
60
- RenderPreviewMemo.displayName = 'RenderPreviewMemo';
61
-
62
- export { RenderPreviewMemo as default };
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{memo as t}from"react";import{ErrorBoundary as i}from"react-error-boundary";import{useBuilderComponent as n}from"../contexts/BuilderComponent.js";import{useBuilderPreviewStore as o}from"../contexts/BuilderPreviewContext.js";import s from"./ComponentWrapperPreview.js";import d from"./RenderSection.js";let RenderPreview=({uid:t,...l})=>{let m=o(e=>e.getItem(t)),a=n(m?.tag);return m?m?.type==="section"?e(d,{sectionId:m.uid}):e(i,{fallbackRender:({error:t,resetErrorBoundary:i})=>r(s,{...m,children:[e("span",{"aria-label":"Error message",children:t.message}),e("button",{type:"button",onClick:i,children:"Try again"})]}),children:e(s,{...m,children:m?.childrens?.length?e(a,{builderProps:{uid:t,builderData:m},styles:m.styles,setting:m.settings,...l,children:m.childrens.map(r=>e(RenderPreviewMemo,{uid:r},r))}):e(a,{builderProps:{uid:t,builderData:m},styles:m.styles,setting:m.settings,...l})})},m.uid):null},RenderPreviewMemo=t(RenderPreview);RenderPreviewMemo.displayName="RenderPreviewMemo";export{RenderPreviewMemo as default};
@@ -1,19 +1 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { memo } from 'react';
3
- import { BuilderProvider } from '../contexts/BuilderContext.js';
4
- import { useSection } from '../contexts/SectionContext.js';
5
- import RenderBlockMemo from './RenderBlock.js';
6
-
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);
18
-
19
- export { RenderSectionMemo as default };
1
+ import{jsx as e}from"react/jsx-runtime";import{memo as t}from"react";import{BuilderProvider as o}from"../contexts/BuilderContext.js";import{useSection as r}from"../contexts/SectionContext.js";import n from"./RenderBlock.js";let RenderSection=({sectionId:t})=>{let i=r(t);return i?e(o,{state:i,children:e(n,{uid:t})},t):null},RenderSectionMemo=t(RenderSection);export{RenderSectionMemo as default};
@@ -1,37 +1 @@
1
- const disableWrap = [
2
- 'Col',
3
- 'CollectionBanner',
4
- 'Row',
5
- 'Section',
6
- 'Image',
7
- 'Text',
8
- 'Button',
9
- 'ProductButton',
10
- 'Cart',
11
- 'Tabs',
12
- 'TabItem',
13
- 'Carousel',
14
- 'CarouselItem',
15
- 'ShopPayButton',
16
- 'AccordionItem',
17
- 'Video',
18
- 'Header',
19
- 'HeroBanner',
20
- 'Icon',
21
- 'IconList',
22
- 'HTMLCode',
23
- 'IconListHoz',
24
- 'IconListItem',
25
- 'CSSCode',
26
- 'FormEmail',
27
- 'FormDropdown',
28
- 'SubmitButton',
29
- 'Dialog',
30
- 'TextField',
31
- 'FormTextarea',
32
- 'ProductPrice',
33
- 'Product',
34
- 'ProductImages'
35
- ];
36
-
37
- export { disableWrap };
1
+ let disableWrap=["Col","CollectionBanner","Row","Section","Image","Text","Button","ProductButton","Cart","Tabs","TabItem","Carousel","CarouselItem","ShopPayButton","AccordionItem","Video","Header","HeroBanner","Icon","IconList","HTMLCode","IconListHoz","IconListItem","CSSCode","FormEmail","FormDropdown","SubmitButton","Dialog","TextField","FormTextarea","ProductPrice","Product","ProductImages","ProductImagesV2","Sticky"],customRenderChildren=["Accordion","AccordionItem","Row","IconList","Tabs"];export{customRenderChildren,disableWrap};
@@ -0,0 +1 @@
1
+ let colorPreset={black:"#000000",white:"#FFFFFF",gray:"#808080",red:"#FF0000",blue:"#0000FF",green:"#008000",yellow:"#FFFF00",orange:"#FFA500",pink:"#FFC0CB",purple:"#800080",brown:"#A52A2A",cyan:"#00FFFF",magenta:"#FF00FF",teal:"#008080",navy:"#000080",maroon:"#800000",gold:"#FFD700",silver:"#C0C0C0",beige:"#F5F5DC",ivory:"#FFFFF0",lavender:"#E6E6FA",indigo:"#4B0082",coral:"#FF7F50",mint:"#98FF98","sky blue":"#87CEEB",salmon:"#FA8072",olive:"#808000",lilac:"#C8A2C8",peach:"#FFDAB9",turquoise:"#40E0D0",ruby:"#E0115F",bronze:"#CD7F32",slate:"#708090",charcoal:"#36454F",sand:"#C2B280",mauve:"#E0B0FF",tangerine:"#FF4500","mint green":"#00FF99","forest green":"#228B22","ruby red":"#9B111E",marigold:"#FFB928",eggplant:"#990066","coral pink":"#F88379",mustard:"#FFDB58","sky gray":"#B0C4DE","dusty rose":"#FF9BAE","olive green":"#556B2F",coffee:"#6F4E37","lilac gray":"#C8A2C8","steel blue":"#4682B4"};export{colorPreset};
@@ -1,32 +1 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useContext, useMemo, createContext } from 'react';
3
- import Empty from '../components/Empty.js';
4
-
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
- ]);
30
- };
31
-
32
- export { AddonProvider, useAddon, useAddons };
1
+ import{jsx as o}from"react/jsx-runtime";import{useContext as d,useMemo as e,createContext as n}from"react";import r from"../components/Empty.js";let AddonContext=n(null),AddonProvider=({children:d,components:e,...n})=>o(AddonContext.Provider,{...n,value:{components:e},children:d}),useAddons=()=>{let o=d(AddonContext);if(!o)throw Error("useAddons must be used within an AddonProvider");return e(()=>o.components,[o.components])},useAddon=o=>{let d=useAddons();return e(()=>o?d[o]??r:r,[o,d])};export{AddonProvider,useAddon,useAddons};
@@ -1,31 +1 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useStore, createStore } from 'zustand';
3
- import { useContext, createContext } from 'react';
4
- import Empty from '../components/Empty.js';
5
-
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);
29
- };
30
-
31
- export { BuilderComponentProvider, useBuilderComponent };
1
+ import{jsx as e}from"react/jsx-runtime";import{useStore as o,createStore as t}from"zustand";import{useContext as r,createContext as n}from"react";import m from"../components/Empty.js";let BuilderComponentContext=n(null),createBuilderComponentStore=e=>t((o,t)=>({components:e,getItem:e=>t().components[e]})),BuilderComponentProvider=({children:o,components:t,...r})=>e(BuilderComponentContext.Provider,{...r,value:createBuilderComponentStore(t),children:o}),useBuilderComponent=e=>{let t=r(BuilderComponentContext);if(!t)throw Error("useBuilderComponent must be used within a BuilderComponentProvider");return o(t,o=>e?o.getItem(e)??m:m)};export{BuilderComponentProvider,useBuilderComponent};
@@ -1,32 +1 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useContext, createContext, Suspense, Fragment } from 'react';
3
- import { useStore, createStore } from 'zustand';
4
-
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);
30
- };
31
-
32
- export { BuilderProvider, useBuilderStore };
1
+ import{jsx as e}from"react/jsx-runtime";import{useContext as r,createContext as t,Suspense as i,Fragment as u}from"react";import{useStore as d,createStore as o}from"zustand";let BuilderContext=t(null),createBuilderProvider=e=>o((r,t)=>({state:e,getItem:e=>t().state[e]})),BuilderProvider=({children:r,state:t,lazy:d,priority:o,...l})=>{let n=d?i:u,B=createBuilderProvider(t);return e(n,{children:e(BuilderContext.Provider,{...l,value:B,children:r})})},useBuilderStore=(e,t)=>{let i=r(BuilderContext);if(!i)throw Error("useBuilderStore must be used within a BuilderProvider");return d(i,e,t)};export{BuilderProvider,useBuilderStore};