@gem-sdk/core 1.5.17 → 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 +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 +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 +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 +24 -2
  206. package/package.json +1 -1
@@ -5,75 +5,98 @@ import 'swr';
5
5
  import { getSelectedVariant } from '../helpers/product.js';
6
6
  import '../helpers/convert.js';
7
7
 
8
- const useUniqProductID = () => {
9
- return useProductStore((s) => s.uiqueId);
10
- };
11
- const useProduct = () => {
12
- return useProductStore((s) => s.product);
13
- };
14
- const useFeaturedImageGlobal = () => {
15
- return useProductStore((s) => s.featuredImageGlobal);
16
- };
17
- const useProductProperties = () => {
18
- return useProductStore((s) => s.properties);
19
- };
20
- const useQuantity = () => {
21
- const quantity = useProductStore((s) => s.quantity);
22
- const decrement = useProductStore((s) => s.decrementQuantity);
23
- const increment = useProductStore((s) => s.incrementQuantity);
24
- const updateQuantity = useProductStore((s) => s.setQuantity);
25
- const reset = useCallback(() => {
26
- updateQuantity(1);
27
- }, [updateQuantity]);
28
- return useMemo(() => ({ quantity, increment, decrement, reset, setQuantity: updateQuantity }), [decrement, increment, quantity, reset, updateQuantity]);
29
- };
30
- const useSelectedOption = () => {
31
- const setSelectedOption = useProductStore((s) => s.setSelectedOption);
32
- const selectedOptions = useProductStore((s) => s.selectedOptions);
33
- const forceSelectedOption = useProductStore((s) => s.forceSelectedOption);
34
- const updateOption = useCallback((optionId, optionValue) => {
35
- setSelectedOption(optionId, optionValue);
36
- }, [setSelectedOption]);
37
- return useMemo(() => ({
38
- selectedOptions,
39
- setSelectedOption: updateOption,
40
- forceSelectedOption,
41
- }), [selectedOptions, updateOption, forceSelectedOption]);
42
- };
43
- const useVariants = () => {
44
- const variants = useProductStore((s) => s.product?.variants);
45
- return flattenConnection(variants);
46
- };
47
- const useVariant = (id) => {
48
- const variants = useVariants();
49
- return useMemo(() => variants?.find((v) => v?.id === id), [id, variants]);
50
- };
51
- const useCurrentVariant = () => {
52
- const { selectedOptions } = useSelectedOption();
53
- const variants = useVariants();
54
- return useMemo(() => getSelectedVariant(variants, selectedOptions), [selectedOptions, variants]);
55
- };
56
- function checkInStock(variant) {
57
- if (!variant)
58
- return false;
59
- return ((variant?.inventoryQuantity && variant.inventoryQuantity > 0) ||
60
- !variant?.manageInventory ||
61
- variant.inventoryPolicy === 'continue');
62
- }
63
- const useCurrentVariantInStock = () => {
64
- const currentVariant = useCurrentVariant();
65
- const isInStock = checkInStock(currentVariant);
66
- return isInStock;
67
- };
68
- const useVariantOutStock = (optionId, optionValue) => {
69
- const { selectedOptions } = useSelectedOption();
70
- const variants = useVariants();
71
- const matchedVariant = getSelectedVariant(variants, {
72
- ...selectedOptions,
73
- [optionId]: optionValue,
74
- });
75
- const isInStock = checkInStock(matchedVariant);
76
- return !isInStock;
8
+ const useUniqProductID = ()=>{
9
+ return useProductStore((s)=>s.uiqueId);
10
+ };
11
+ const useProduct = ()=>{
12
+ return useProductStore((s)=>s.product);
13
+ };
14
+ const useFeaturedImageGlobal = ()=>{
15
+ return useProductStore((s)=>s.featuredImageGlobal);
16
+ };
17
+ const useProductProperties = ()=>{
18
+ return useProductStore((s)=>s.properties);
19
+ };
20
+ const useQuantity = ()=>{
21
+ const quantity = useProductStore((s)=>s.quantity);
22
+ const decrement = useProductStore((s)=>s.decrementQuantity);
23
+ const increment = useProductStore((s)=>s.incrementQuantity);
24
+ const updateQuantity = useProductStore((s)=>s.setQuantity);
25
+ const reset = useCallback(()=>{
26
+ updateQuantity(1);
27
+ }, [
28
+ updateQuantity
29
+ ]);
30
+ return useMemo(()=>({
31
+ quantity,
32
+ increment,
33
+ decrement,
34
+ reset,
35
+ setQuantity: updateQuantity
36
+ }), [
37
+ decrement,
38
+ increment,
39
+ quantity,
40
+ reset,
41
+ updateQuantity
42
+ ]);
43
+ };
44
+ const useSelectedOption = ()=>{
45
+ const setSelectedOption = useProductStore((s)=>s.setSelectedOption);
46
+ const selectedOptions = useProductStore((s)=>s.selectedOptions);
47
+ const forceSelectedOption = useProductStore((s)=>s.forceSelectedOption);
48
+ const updateOption = useCallback((optionId, optionValue)=>{
49
+ setSelectedOption(optionId, optionValue);
50
+ }, [
51
+ setSelectedOption
52
+ ]);
53
+ return useMemo(()=>({
54
+ selectedOptions,
55
+ setSelectedOption: updateOption,
56
+ forceSelectedOption
57
+ }), [
58
+ selectedOptions,
59
+ updateOption,
60
+ forceSelectedOption
61
+ ]);
62
+ };
63
+ const useVariants = ()=>{
64
+ const variants = useProductStore((s)=>s.product?.variants);
65
+ return flattenConnection(variants);
66
+ };
67
+ const useVariant = (id)=>{
68
+ const variants = useVariants();
69
+ return useMemo(()=>variants?.find((v)=>v?.id === id), [
70
+ id,
71
+ variants
72
+ ]);
73
+ };
74
+ const useCurrentVariant = ()=>{
75
+ const { selectedOptions } = useSelectedOption();
76
+ const variants = useVariants();
77
+ return useMemo(()=>getSelectedVariant(variants, selectedOptions), [
78
+ selectedOptions,
79
+ variants
80
+ ]);
81
+ };
82
+ function checkInStock(variant) {
83
+ if (!variant) return false;
84
+ return variant?.inventoryQuantity && variant.inventoryQuantity > 0 || !variant?.manageInventory || variant.inventoryPolicy === 'continue';
85
+ }
86
+ const useCurrentVariantInStock = ()=>{
87
+ const currentVariant = useCurrentVariant();
88
+ const isInStock = checkInStock(currentVariant);
89
+ return isInStock;
90
+ };
91
+ const useVariantOutStock = (optionId, optionValue)=>{
92
+ const { selectedOptions } = useSelectedOption();
93
+ const variants = useVariants();
94
+ const matchedVariant = getSelectedVariant(variants, {
95
+ ...selectedOptions,
96
+ [optionId]: optionValue
97
+ });
98
+ const isInStock = checkInStock(matchedVariant);
99
+ return !isInStock;
77
100
  };
78
101
 
79
102
  export { checkInStock, useCurrentVariant, useCurrentVariantInStock, useFeaturedImageGlobal, useProduct, useProductProperties, useQuantity, useSelectedOption, useUniqProductID, useVariant, useVariantOutStock, useVariants };
@@ -1,16 +1,16 @@
1
1
  import { useProductListStore } from '../contexts/ProductListContext.js';
2
2
 
3
- const useProductList = () => {
4
- return useProductListStore((s) => s.collection);
5
- };
6
- const useProductListProducts = () => {
7
- return useProductListStore((s) => s.products);
8
- };
9
- const useProductListSettings = () => {
10
- return useProductListStore((s) => s.settings);
11
- };
12
- const useProductListStyles = () => {
13
- return useProductListStore((s) => s.styles);
3
+ const useProductList = ()=>{
4
+ return useProductListStore((s)=>s.collection);
5
+ };
6
+ const useProductListProducts = ()=>{
7
+ return useProductListStore((s)=>s.products);
8
+ };
9
+ const useProductListSettings = ()=>{
10
+ return useProductListStore((s)=>s.settings);
11
+ };
12
+ const useProductListStyles = ()=>{
13
+ return useProductListStore((s)=>s.styles);
14
14
  };
15
15
 
16
16
  export { useProductList, useProductListProducts, useProductListSettings, useProductListStyles };
@@ -1,20 +1,23 @@
1
- const cache = new Map();
2
- const useSuspenseFetch = (key, promise) => {
3
- const value = cache.get(key) || { status: 'new', data: null };
4
- if (value.status === 'resolved') {
5
- return { data: value.data };
6
- }
7
- promise()
8
- .then((data) => {
9
- value.status = 'resolved';
10
- value.data = data;
11
- cache.set(key, value);
12
- })
13
- .catch(() => {
14
- value.status = 'error';
15
- value.data = null;
16
- });
17
- throw promise();
1
+ const cache = new Map();
2
+ const useSuspenseFetch = (key, promise)=>{
3
+ const value = cache.get(key) || {
4
+ status: 'new',
5
+ data: null
6
+ };
7
+ if (value.status === 'resolved') {
8
+ return {
9
+ data: value.data
10
+ };
11
+ }
12
+ promise().then((data)=>{
13
+ value.status = 'resolved';
14
+ value.data = data;
15
+ cache.set(key, value);
16
+ }).catch(()=>{
17
+ value.status = 'error';
18
+ value.data = null;
19
+ });
20
+ throw promise();
18
21
  };
19
22
 
20
23
  export { useSuspenseFetch as default };
@@ -1,35 +1,37 @@
1
1
  import { useSwatches } from './shop.js';
2
2
 
3
- const initialSwatchOptionValue = {
4
- label: '',
5
- colors: [],
6
- imageUrl: '',
7
- };
8
- const initialGlobalSwatchesData = {
9
- optionTitle: '',
10
- optionType: '',
11
- optionValues: [],
12
- };
13
- const useSwatchesOptions = (options) => {
14
- const { swatches } = useSwatches();
15
- if (!options)
16
- return [];
17
- return options?.map((option) => {
18
- const swatchOption = swatches?.find((sw) => sw?.optionTitle === option?.name) || { ...initialGlobalSwatchesData };
19
- return {
20
- ...option,
21
- optionType: swatchOption ? swatchOption.optionType : '',
22
- values: option.values?.map((val) => {
23
- const swatchValue = (swatchOption &&
24
- swatchOption?.optionValues?.find((swatOp) => swatOp?.label === val?.label)) || { ...initialSwatchOptionValue };
25
- return {
26
- ...val,
27
- colors: swatchValue?.colors || [],
28
- imageUrl: swatchValue?.imageUrl || '',
29
- };
30
- }),
31
- };
32
- });
3
+ const initialSwatchOptionValue = {
4
+ label: '',
5
+ colors: [],
6
+ imageUrl: ''
7
+ };
8
+ const initialGlobalSwatchesData = {
9
+ optionTitle: '',
10
+ optionType: '',
11
+ optionValues: []
12
+ };
13
+ const useSwatchesOptions = (options)=>{
14
+ const { swatches } = useSwatches();
15
+ if (!options) return [];
16
+ return options?.map((option)=>{
17
+ const swatchOption = swatches?.find((sw)=>sw?.optionTitle === option?.name) || {
18
+ ...initialGlobalSwatchesData
19
+ };
20
+ return {
21
+ ...option,
22
+ optionType: swatchOption ? swatchOption.optionType : '',
23
+ values: option.values?.map((val)=>{
24
+ const swatchValue = swatchOption && swatchOption?.optionValues?.find((swatOp)=>swatOp?.label === val?.label) || {
25
+ ...initialSwatchOptionValue
26
+ };
27
+ return {
28
+ ...val,
29
+ colors: swatchValue?.colors || [],
30
+ imageUrl: swatchValue?.imageUrl || ''
31
+ };
32
+ })
33
+ };
34
+ });
33
35
  };
34
36
 
35
37
  export { useSwatchesOptions as default };
@@ -1,4 +1,11 @@
1
- const OptionNormalStyle = ['radio_buttons', 'dropdown'];
2
- const OptionSpecialStyle = ['color', 'image', 'rectangle_list'];
1
+ const OptionNormalStyle = [
2
+ 'radio_buttons',
3
+ 'dropdown'
4
+ ];
5
+ const OptionSpecialStyle = [
6
+ 'color',
7
+ 'image',
8
+ 'rectangle_list'
9
+ ];
3
10
 
4
11
  export { OptionNormalStyle, OptionSpecialStyle };
@@ -158,6 +158,7 @@ type Mapped$3<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
158
158
  id: K;
159
159
  label: string;
160
160
  info?: string;
161
+ hiddenWithGemPages?: boolean;
161
162
  hyperlinkInfo?: HyperlinkInfo;
162
163
  hideOnMode?: {
163
164
  responsive?: boolean;
@@ -189,6 +190,7 @@ type Mapped$3<K, T> = NonNullable<T> extends ObjectDevices<infer U> ? {
189
190
  id: K;
190
191
  label: string;
191
192
  info?: string;
193
+ hiddenWithGemPages?: boolean;
192
194
  hyperlinkInfo?: HyperlinkInfo;
193
195
  hideOnMode?: {
194
196
  responsive?: boolean;
@@ -318,6 +320,7 @@ type GroupControlType<T> = {
318
320
  label?: string;
319
321
  info?: string;
320
322
  popup?: boolean;
323
+ hiddenWithGemPages?: boolean;
321
324
  controls?: ControlProp<T>[];
322
325
  hide?: boolean;
323
326
  hideOnMode?: {
@@ -755,7 +758,26 @@ type ComponentSetting<P extends BaseProps> = {
755
758
  };
756
759
  };
757
760
  };
758
- order?: string[];
761
+ ui?: ControlUI[];
762
+ };
763
+ type ControlUI = {
764
+ type: 'group' | 'tab' | 'advanced' | 'control';
765
+ label?: Record<string, string>;
766
+ info?: Record<string, string>;
767
+ condition?: string;
768
+ controls?: ControlUI[];
769
+ setting?: {
770
+ id: string;
771
+ state?: StateType;
772
+ };
773
+ options?: {
774
+ label?: 'medium' | 'large';
775
+ hideOnDevices?: {
776
+ desktop?: boolean;
777
+ tablet?: boolean;
778
+ mobile?: boolean;
779
+ };
780
+ };
759
781
  };
760
782
 
761
783
  type Maybe<T> = T | undefined;
@@ -7511,4 +7533,4 @@ declare const fetchMedias: (fetcher: FetchFunc, { id, isSample }: FetchParams) =
7511
7533
 
7512
7534
  declare const getProductBySlug: (fetcher: FetchFunc, slug?: string) => Promise<ProductSelectFragment>;
7513
7535
 
7514
- export { AddOn, AddonProvider, AddonProviderProps, AlignItemProp, AlignProp, Background, BaseProps, BasePropsWrap, BlockEntity, Border, BuilderComponentProvider, BuilderComponentProviderProps, BuilderEntity, BuilderEntityNested, BuilderPreviewProvider, BuilderPreviewProviderProps, BuilderProvider, BuilderProviderProps, BuilderState, Builtin, CartLineProvider, CartLineProviderProps, CollectionDetailFilterDocument, CollectionDetailFilterQueryResponse, CollectionDetailFilterQueryVariables, CollectionDocument, CollectionProvider, CollectionProviderProps, CollectionQueryResponse, CollectionQueryVariables, ColorKey, ColorType$1 as ColorType, ColorValueType, Component, ComponentSetting, ContainerProp, ControlProp, CornerRadius, CornerRadiusType, CustomComponentConfig, DeepPartial, ExtractState, FetchFunc, FlexDirectionProp, FontName, GlobalStyleConfig, GlobalStyleResponsiveConfig, GlobalSwatchesData, GraphQLConnection, GroupPropType, HSLAColorType, HSLColorType, HexColorType, InitComponentType, JudgeMeReviewsWidgetType, KlaviyoWidgetType, LooxReviewsWidgetType, NameDevices, NestedKeys, ObjectDeviceGlobalType, ObjectDevices, OptionNormalStyle, OptionSpecialStyle, PageViewUpDocument, PageViewUpMutationResponse, PageViewUpMutationVariables, PreviewPageDocument, PreviewPageQueryResponse, PreviewPageQueryVariables, Primitive, ProductInputAnalytic, ProductListProvider, ProductListProviderProps, ProductProvider, ProductProviderProps, ProductSelectFragment, ProductsDocument, ProductsQueryResponse, ProductsQueryVariables, PublishedThemePageSelectFragment, PublishedThemePagesDocument, PublishedThemePagesQueryResponse, PublishedThemePagesQueryVariables, RGBAColorType, RGBColorType, RenderMemo as Render, RenderIf, Render as RenderLiquid, RenderMode, RenderPreviewMemo as RenderPreview, RequiredCursorEdge, ResponsiveStateProp, RoundedSize, SectionData, SectionEntity, SectionProvider, SectionProviderProps, ShadowProps, ShadowStyle, ShadowStyleApplied, ShadowType, ShopProvider, ShopProviderProps, shop as ShopType, SizeProps, SizeSetting, SizeType, SpacingType, StateProp, StateSelector, StateType, StoreConfig, StorePropertyDocument, StorePropertyQueryResponse, StorePropertyQueryVariables, SwatchesOptionType, SwatchesOptionValue, TransformProp, TypographyProps, TypographySetting, TypographyType, VariantSelectFragment, calculateFirstProduct, cls, composeRadius, composeSize, composeSpacing, fetchMedias, fetchVariants, flattenConnection, fpixel, genTypoClass, genVariable, getCollection, getCustomRadius, getGlobalColorCSSProp, getGlobalColorClass, getGlobalColorResponsiveClass, getGlobalColorResponsiveStyle, getGlobalColorStateClass, getGlobalColorStateResponsiveClass, getGlobalColorStateResponsiveStyle, getGlobalColorStateStyle, getGlobalColorStyle, getProduct, getProductBySlug, getRadiusCSSFromGlobal, getRadiusStyleActiveState, getResponsiveStateValue, getResponsiveValue, getResponsiveValueByScreen, getSelectedVariant, getShortName, getSingleColorVariable, getSpacingVariable, getStyleBackgroundByDevice, getStyleShadow, getStyleShadowState, globalEvent, gtag, handleConvertBorderColor, handleConvertBorderStyle, handleConvertBorderWidth, handleConvertClassColor, isBrowser, isColor, isDefined, isEmptyChildren, isLocalEnv, loadScript, makeAspectRatio, makeHeight, makeStyle, makeStyleResponsive, makeStyleResponsiveState, makeStyleState, makeWidth, normalizeBuilderData, optionLayoutStyle, parseSelectedOption, prefetchQueries, props, styles, template, tiktokpixel, useAddToCart, useAddon, useAddons, useBuilderComponent, useBuilderPreviewStore, useBuilderStore, useCartData, useCartDiscountCodesUpdate, useCartId, useCartLine, useCartLineStore, useCartNoteUpdate, useCartUI, useCheckoutUrl, useCollection, useCollectionQuery, useCollectionStore, useConnectedShopify, useCreateCart, useCurrency, useCurrentDevice, useCurrentVariant, useCurrentVariantInStock, useEditorMode, useFeaturedImageGlobal, useFormatMoney, useIsSampleProduct, useIsomorphicLayoutEffect, useLazyVideo, useLoadScript, useLocale, useMatchMutate, useMobileOnly, useMoney, usePageType, usePluginEnable, usePrevious, useProduct, useProductList, useProductListProducts, useProductListSettings, useProductListStore, useProductListStyles, useProductProperties, useProductQuery, useProductStore, useProductsQuery, useQuantity, useRemoveCartItem, useSection, useSectionStore, useSelectedOption, useShopStore, useStoreFront, useSuspenseFetch, useSwatches, useSwatchesOptions, useUniqProductID, useUpdateCartItem, useVariant, useVariantOutStock, useVariants, validateEmail };
7536
+ export { AddOn, AddonProvider, AddonProviderProps, AlignItemProp, AlignProp, Background, BaseProps, BasePropsWrap, BlockEntity, Border, BuilderComponentProvider, BuilderComponentProviderProps, BuilderEntity, BuilderEntityNested, BuilderPreviewProvider, BuilderPreviewProviderProps, BuilderProvider, BuilderProviderProps, BuilderState, Builtin, CartLineProvider, CartLineProviderProps, CollectionDetailFilterDocument, CollectionDetailFilterQueryResponse, CollectionDetailFilterQueryVariables, CollectionDocument, CollectionProvider, CollectionProviderProps, CollectionQueryResponse, CollectionQueryVariables, ColorKey, ColorType$1 as ColorType, ColorValueType, Component, ComponentSetting, ContainerProp, ControlProp, ControlUI, CornerRadius, CornerRadiusType, CustomComponentConfig, DeepPartial, ExtractState, FetchFunc, FlexDirectionProp, FontName, GlobalStyleConfig, GlobalStyleResponsiveConfig, GlobalSwatchesData, GraphQLConnection, GroupPropType, HSLAColorType, HSLColorType, HexColorType, InitComponentType, JudgeMeReviewsWidgetType, KlaviyoWidgetType, LooxReviewsWidgetType, NameDevices, NestedKeys, ObjectDeviceGlobalType, ObjectDevices, OptionNormalStyle, OptionSpecialStyle, PageViewUpDocument, PageViewUpMutationResponse, PageViewUpMutationVariables, PreviewPageDocument, PreviewPageQueryResponse, PreviewPageQueryVariables, Primitive, ProductInputAnalytic, ProductListProvider, ProductListProviderProps, ProductProvider, ProductProviderProps, ProductSelectFragment, ProductsDocument, ProductsQueryResponse, ProductsQueryVariables, PublishedThemePageSelectFragment, PublishedThemePagesDocument, PublishedThemePagesQueryResponse, PublishedThemePagesQueryVariables, RGBAColorType, RGBColorType, RenderMemo as Render, RenderIf, Render as RenderLiquid, RenderMode, RenderPreviewMemo as RenderPreview, RequiredCursorEdge, ResponsiveStateProp, RoundedSize, SectionData, SectionEntity, SectionProvider, SectionProviderProps, ShadowProps, ShadowStyle, ShadowStyleApplied, ShadowType, ShopProvider, ShopProviderProps, shop as ShopType, SizeProps, SizeSetting, SizeType, SpacingType, StateProp, StateSelector, StateType, StoreConfig, StorePropertyDocument, StorePropertyQueryResponse, StorePropertyQueryVariables, SwatchesOptionType, SwatchesOptionValue, TransformProp, TypographyProps, TypographySetting, TypographyType, VariantSelectFragment, calculateFirstProduct, cls, composeRadius, composeSize, composeSpacing, fetchMedias, fetchVariants, flattenConnection, fpixel, genTypoClass, genVariable, getCollection, getCustomRadius, getGlobalColorCSSProp, getGlobalColorClass, getGlobalColorResponsiveClass, getGlobalColorResponsiveStyle, getGlobalColorStateClass, getGlobalColorStateResponsiveClass, getGlobalColorStateResponsiveStyle, getGlobalColorStateStyle, getGlobalColorStyle, getProduct, getProductBySlug, getRadiusCSSFromGlobal, getRadiusStyleActiveState, getResponsiveStateValue, getResponsiveValue, getResponsiveValueByScreen, getSelectedVariant, getShortName, getSingleColorVariable, getSpacingVariable, getStyleBackgroundByDevice, getStyleShadow, getStyleShadowState, globalEvent, gtag, handleConvertBorderColor, handleConvertBorderStyle, handleConvertBorderWidth, handleConvertClassColor, isBrowser, isColor, isDefined, isEmptyChildren, isLocalEnv, loadScript, makeAspectRatio, makeHeight, makeStyle, makeStyleResponsive, makeStyleResponsiveState, makeStyleState, makeWidth, normalizeBuilderData, optionLayoutStyle, parseSelectedOption, prefetchQueries, props, styles, template, tiktokpixel, useAddToCart, useAddon, useAddons, useBuilderComponent, useBuilderPreviewStore, useBuilderStore, useCartData, useCartDiscountCodesUpdate, useCartId, useCartLine, useCartLineStore, useCartNoteUpdate, useCartUI, useCheckoutUrl, useCollection, useCollectionQuery, useCollectionStore, useConnectedShopify, useCreateCart, useCurrency, useCurrentDevice, useCurrentVariant, useCurrentVariantInStock, useEditorMode, useFeaturedImageGlobal, useFormatMoney, useIsSampleProduct, useIsomorphicLayoutEffect, useLazyVideo, useLoadScript, useLocale, useMatchMutate, useMobileOnly, useMoney, usePageType, usePluginEnable, usePrevious, useProduct, useProductList, useProductListProducts, useProductListSettings, useProductListStore, useProductListStyles, useProductProperties, useProductQuery, useProductStore, useProductsQuery, useQuantity, useRemoveCartItem, useSection, useSectionStore, useSelectedOption, useShopStore, useStoreFront, useSuspenseFetch, useSwatches, useSwatchesOptions, useUniqProductID, useUpdateCartItem, useVariant, useVariantOutStock, useVariants, validateEmail };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/core",
3
- "version": "1.5.17",
3
+ "version": "1.5.22",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",