@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
@@ -3,162 +3,127 @@
3
3
  var isDefined = require('./is-defined.js');
4
4
  var constant = require('./constant.js');
5
5
 
6
- const getGlobalColorCSSProp = (color) => {
7
- return getSingleColorVariable(color);
8
- };
9
- const getGlobalColorClass = (type, color) => {
10
- if (typeof color !== 'string' ||
11
- !color ||
12
- color?.startsWith('#') ||
13
- color?.startsWith('rgb') ||
14
- color?.startsWith('hsl') ||
15
- color?.startsWith('transparent'))
16
- return '';
17
- return `${type}-g-${color}`;
18
- };
19
- const getGlobalColorResponsiveClass = (type, data) => {
20
- if (!data)
21
- return '';
22
- return Object.entries(data)
23
- .map(([device, value]) => {
24
- const clName = getGlobalColorClass(type, value);
25
- if (!clName)
26
- return undefined;
27
- if (device === 'desktop') {
28
- return clName;
29
- }
30
- else {
31
- return `${device}:${clName}`;
32
- }
33
- })
34
- .filter(isDefined.isDefined)
35
- .join(' ');
36
- };
37
- const getGlobalColorStateClass = (type, data) => {
38
- if (!data)
39
- return '';
40
- return Object.entries(data)
41
- .map(([state, value]) => {
42
- const clName = getGlobalColorClass(type, value);
43
- if (!clName)
44
- return undefined;
45
- if (state === 'normal') {
46
- return clName;
47
- }
48
- else {
49
- return `${state}:${clName}`;
50
- }
51
- })
52
- .filter(isDefined.isDefined)
53
- .join(' ');
54
- };
55
- const getGlobalColorStateResponsiveClass = (type, data) => {
56
- if (!data)
57
- return '';
58
- return Object.entries(data)
59
- .map(([device, objectState]) => {
60
- if (device === 'desktop') {
61
- return Object.entries(objectState)
62
- .map(([state, value]) => {
63
- const clName = getGlobalColorClass(type, value);
64
- if (!clName)
65
- return undefined;
66
- if (state === 'normal') {
67
- return clName;
68
- }
69
- else {
70
- return `${state}:${clName}`;
71
- }
72
- })
73
- .filter(isDefined.isDefined)
74
- .join(' ');
75
- }
76
- else {
77
- return Object.entries(objectState)
78
- .map(([state, value]) => {
79
- const clName = getGlobalColorClass(type, value);
80
- if (!clName)
81
- return undefined;
82
- if (state === 'normal') {
83
- return `${device}:${clName}`;
84
- }
85
- else {
86
- return `${device}:${state}:${clName}`;
87
- }
88
- })
89
- .filter(isDefined.isDefined)
90
- .join(' ');
91
- }
92
- })
93
- .filter(Boolean)
94
- .join(' ');
95
- };
96
- const getGlobalColorResponsiveStyle = (type, data) => {
97
- if (!data)
98
- return {};
99
- return Object.fromEntries(Object.entries(data).map(([device, value]) => {
100
- if (device === 'desktop') {
101
- return [`--${type}`, getSingleColorVariable(value)];
102
- }
103
- else {
104
- return [`--${type}-${device}`, getSingleColorVariable(value)];
105
- }
106
- }));
107
- };
108
- const getGlobalColorStateStyle = (type, data) => {
109
- if (!data)
110
- return {};
111
- return Object.fromEntries(Object.entries(data)
112
- .map(([state, value]) => {
113
- if (state === 'active')
114
- return [];
115
- return [`-${constant.stateMapping?.[state]}-${type}`, getSingleColorVariable(value)];
116
- })
117
- .filter(isDefined.isDefined));
118
- };
119
- const getGlobalColorStateResponsiveStyle = (type, data) => {
120
- if (!data)
121
- return {};
122
- return Object.entries(data)
123
- .map(([device, objectState]) => {
124
- if (device === 'desktop') {
125
- return Object.fromEntries(Object.entries(objectState)
126
- .map(([state, value]) => {
127
- if (state === 'active')
128
- return [];
129
- return [`-${constant.stateMapping[state]}-${type}`, getSingleColorVariable(value)];
130
- })
131
- .filter(isDefined.isDefined));
132
- }
133
- else {
134
- return Object.fromEntries(Object.entries(objectState)
135
- .map(([state, value]) => {
136
- if (state === 'active')
137
- return [];
138
- return [`-${constant.stateMapping[state]}-${type}-${device}`, getSingleColorVariable(value)];
139
- })
140
- .filter(isDefined.isDefined));
141
- }
142
- })
143
- .reduce((acc, curr) => ({ ...acc, ...curr }), {});
144
- };
145
- const getSingleColorVariable = (color) => {
146
- if (!color)
147
- return undefined;
148
- if (isColor(color))
149
- return color;
150
- return `var(--g-c-${color}, ${color})`;
151
- };
152
- function isColor(color) {
153
- return (color?.startsWith('#') ||
154
- color?.startsWith('rgb') ||
155
- color?.startsWith('hsl') ||
156
- color?.startsWith('transparent'));
157
- }
158
- const getGlobalColorStyle = (data) => {
159
- if (!data)
160
- return {};
161
- return { '--c': getSingleColorVariable(data) };
6
+ const getGlobalColorCSSProp = (color)=>{
7
+ return getSingleColorVariable(color);
8
+ };
9
+ const getGlobalColorClass = (type, color)=>{
10
+ if (typeof color !== 'string' || !color || color?.startsWith('#') || color?.startsWith('rgb') || color?.startsWith('hsl') || color?.startsWith('transparent')) return '';
11
+ return `${type}-g-${color}`;
12
+ };
13
+ const getGlobalColorResponsiveClass = (type, data)=>{
14
+ if (!data) return '';
15
+ return Object.entries(data).map(([device, value])=>{
16
+ const clName = getGlobalColorClass(type, value);
17
+ if (!clName) return undefined;
18
+ if (device === 'desktop') {
19
+ return clName;
20
+ } else {
21
+ return `${device}:${clName}`;
22
+ }
23
+ }).filter(isDefined.isDefined).join(' ');
24
+ };
25
+ const getGlobalColorStateClass = (type, data)=>{
26
+ if (!data) return '';
27
+ return Object.entries(data).map(([state, value])=>{
28
+ const clName = getGlobalColorClass(type, value);
29
+ if (!clName) return undefined;
30
+ if (state === 'normal') {
31
+ return clName;
32
+ } else {
33
+ return `${state}:${clName}`;
34
+ }
35
+ }).filter(isDefined.isDefined).join(' ');
36
+ };
37
+ const getGlobalColorStateResponsiveClass = (type, data)=>{
38
+ if (!data) return '';
39
+ return Object.entries(data).map(([device, objectState])=>{
40
+ if (device === 'desktop') {
41
+ return Object.entries(objectState).map(([state, value])=>{
42
+ const clName = getGlobalColorClass(type, value);
43
+ if (!clName) return undefined;
44
+ if (state === 'normal') {
45
+ return clName;
46
+ } else {
47
+ return `${state}:${clName}`;
48
+ }
49
+ }).filter(isDefined.isDefined).join(' ');
50
+ } else {
51
+ return Object.entries(objectState).map(([state, value])=>{
52
+ const clName = getGlobalColorClass(type, value);
53
+ if (!clName) return undefined;
54
+ if (state === 'normal') {
55
+ return `${device}:${clName}`;
56
+ } else {
57
+ return `${device}:${state}:${clName}`;
58
+ }
59
+ }).filter(isDefined.isDefined).join(' ');
60
+ }
61
+ }).filter(Boolean).join(' ');
62
+ };
63
+ const getGlobalColorResponsiveStyle = (type, data)=>{
64
+ if (!data) return {};
65
+ return Object.fromEntries(Object.entries(data).map(([device, value])=>{
66
+ if (device === 'desktop') {
67
+ return [
68
+ `--${type}`,
69
+ getSingleColorVariable(value)
70
+ ];
71
+ } else {
72
+ return [
73
+ `--${type}-${device}`,
74
+ getSingleColorVariable(value)
75
+ ];
76
+ }
77
+ }));
78
+ };
79
+ const getGlobalColorStateStyle = (type, data)=>{
80
+ if (!data) return {};
81
+ return Object.fromEntries(Object.entries(data).map(([state, value])=>{
82
+ if (state === 'active') return [];
83
+ return [
84
+ `-${constant.stateMapping?.[state]}-${type}`,
85
+ getSingleColorVariable(value)
86
+ ];
87
+ }).filter(isDefined.isDefined));
88
+ };
89
+ const getGlobalColorStateResponsiveStyle = (type, data)=>{
90
+ if (!data) return {};
91
+ return Object.entries(data).map(([device, objectState])=>{
92
+ if (device === 'desktop') {
93
+ return Object.fromEntries(Object.entries(objectState).map(([state, value])=>{
94
+ if (state === 'active') return [];
95
+ return [
96
+ `-${constant.stateMapping[state]}-${type}`,
97
+ getSingleColorVariable(value)
98
+ ];
99
+ }).filter(isDefined.isDefined));
100
+ } else {
101
+ return Object.fromEntries(Object.entries(objectState).map(([state, value])=>{
102
+ if (state === 'active') return [];
103
+ return [
104
+ `-${constant.stateMapping[state]}-${type}-${device}`,
105
+ getSingleColorVariable(value)
106
+ ];
107
+ }).filter(isDefined.isDefined));
108
+ }
109
+ }).reduce((acc, curr)=>({
110
+ ...acc,
111
+ ...curr
112
+ }), {});
113
+ };
114
+ const getSingleColorVariable = (color)=>{
115
+ if (!color) return undefined;
116
+ if (isColor(color)) return color;
117
+ return `var(--g-c-${color}, ${color})`;
118
+ };
119
+ function isColor(color) {
120
+ return color?.startsWith('#') || color?.startsWith('rgb') || color?.startsWith('hsl') || color?.startsWith('transparent');
121
+ }
122
+ const getGlobalColorStyle = (data)=>{
123
+ if (!data) return {};
124
+ return {
125
+ '--c': getSingleColorVariable(data)
126
+ };
162
127
  };
163
128
 
164
129
  exports.getGlobalColorCSSProp = getGlobalColorCSSProp;
@@ -6,127 +6,121 @@ var constant = require('./constant.js');
6
6
  var radius = require('./radius.js');
7
7
  var shadow = require('./shadow.js');
8
8
 
9
- const composeSpacing = ({ source, spacing, type, suffix = '', }) => {
10
- const { top, left, bottom, right } = spacing;
11
- if (top)
12
- source[`--${type}t${suffix}`] = top;
13
- if (left)
14
- source[`--${type}l${suffix}`] = left;
15
- if (bottom)
16
- source[`--${type}b${suffix}`] = bottom;
17
- if (right)
18
- source[`--${type}r${suffix}`] = right;
19
- };
20
- const getAttrValue = (attr, value, tag) => {
21
- if (value === undefined || value === null)
22
- return undefined;
23
- switch (attr) {
24
- case 'bgc':
25
- case 'c':
26
- return colors.isColor(value.toString()) ? value : `var(--g-c-${value})`;
27
- case 'd':
28
- if (!value)
29
- return 'none';
30
- if (value && tag && constant.layoutComponent.includes(tag))
31
- return 'grid';
32
- return 'inline';
33
- default:
34
- return value;
35
- }
36
- };
37
- function composeAdvanceStyle(data, tag) {
38
- if (!data)
39
- return {};
40
- const styles = {};
41
- const devices = ['desktop', 'tablet', 'mobile'];
42
- const states = ['hover', 'normal'];
43
- Object.keys(data).forEach((attr) => {
44
- const value = data[attr];
45
- if (value === undefined || value === null)
46
- return;
47
- const hasBoxShadow = (data.hasBoxShadow ? data.hasBoxShadow : {});
48
- if (typeof value === 'object') {
49
- if (Array.isArray(value))
50
- return;
51
- Object.keys(value).forEach((composeAttr) => {
52
- if (devices.includes(composeAttr)) {
53
- const deviceValue = value[composeAttr];
54
- if (deviceValue !== undefined) {
55
- // Responsive border with state
56
- if (attr === 'border') {
57
- Object.assign(styles, borders.handleConvertBorderStyle(value), borders.handleConvertBorderWidth(value), borders.handleConvertBorderColor(value));
58
- }
59
- if (attr === 'rounded') {
60
- Object.assign(styles, radius.composeRadius(value));
61
- }
62
- if (composeAttr === 'desktop') {
63
- switch (attr) {
64
- case 'padding':
65
- composeSpacing({
66
- source: styles,
67
- spacing: deviceValue,
68
- type: 'p',
69
- });
70
- break;
71
- case 'margin':
72
- composeSpacing({
73
- source: styles,
74
- spacing: deviceValue,
75
- type: 'm',
76
- });
77
- break;
78
- case 'm':
79
- case 'p':
80
- break;
81
- default:
82
- styles[`--${attr}`] = getAttrValue(attr, deviceValue, tag);
83
- break;
84
- }
85
- }
86
- else {
87
- switch (attr) {
88
- case 'padding':
89
- composeSpacing({
90
- source: styles,
91
- spacing: deviceValue,
92
- type: 'p',
93
- suffix: `-${composeAttr}`,
94
- });
95
- break;
96
- case 'margin':
97
- composeSpacing({
98
- source: styles,
99
- spacing: deviceValue,
100
- type: 'm',
101
- suffix: `-${composeAttr}`,
102
- });
103
- break;
104
- case 'm':
105
- case 'p':
106
- break;
107
- default:
108
- styles[`--${attr}-${composeAttr}`] = getAttrValue(attr, deviceValue, tag);
109
- break;
110
- }
111
- }
112
- }
113
- }
114
- else if (states.includes(composeAttr)) {
115
- switch (attr) {
116
- case 'hasBoxShadow':
117
- break;
118
- case 'boxShadow':
119
- Object.assign(styles, shadow.getStyleShadowState(value, 'box-shadow', hasBoxShadow));
120
- break;
121
- }
122
- }
123
- });
124
- }
125
- else {
126
- styles[`--${attr}`] = getAttrValue(attr, value, tag);
127
- }
128
- });
129
- return styles;
9
+ const composeSpacing = ({ source , spacing , type , suffix ='' })=>{
10
+ const { top , left , bottom , right } = spacing;
11
+ if (top) source[`--${type}t${suffix}`] = top;
12
+ if (left) source[`--${type}l${suffix}`] = left;
13
+ if (bottom) source[`--${type}b${suffix}`] = bottom;
14
+ if (right) source[`--${type}r${suffix}`] = right;
15
+ };
16
+ const getAttrValue = (attr, value, tag)=>{
17
+ if (value === undefined || value === null) return undefined;
18
+ switch(attr){
19
+ case 'bgc':
20
+ case 'c':
21
+ return colors.isColor(value.toString()) ? value : `var(--g-c-${value})`;
22
+ case 'd':
23
+ if (!value) return 'none';
24
+ if (value && tag && constant.layoutComponent.includes(tag)) return 'grid';
25
+ return 'inline';
26
+ default:
27
+ return value;
28
+ }
29
+ };
30
+ function composeAdvanceStyle(data, tag) {
31
+ if (!data) return {};
32
+ const styles = {};
33
+ const devices = [
34
+ 'desktop',
35
+ 'tablet',
36
+ 'mobile'
37
+ ];
38
+ const states = [
39
+ 'hover',
40
+ 'normal'
41
+ ];
42
+ Object.keys(data).forEach((attr)=>{
43
+ const value = data[attr];
44
+ if (value === undefined || value === null) return;
45
+ const hasBoxShadow = data.hasBoxShadow ? data.hasBoxShadow : {};
46
+ if (typeof value === 'object') {
47
+ if (Array.isArray(value)) return;
48
+ Object.keys(value).forEach((composeAttr)=>{
49
+ if (devices.includes(composeAttr)) {
50
+ const deviceValue = value[composeAttr];
51
+ if (deviceValue !== undefined) {
52
+ // Responsive border with state
53
+ if (attr === 'border') {
54
+ Object.assign(styles, borders.handleConvertBorderStyle(value), borders.handleConvertBorderWidth(value), borders.handleConvertBorderColor(value));
55
+ }
56
+ if (attr === 'rounded') {
57
+ Object.assign(styles, radius.composeRadius(value));
58
+ }
59
+ if (composeAttr === 'desktop') {
60
+ switch(attr){
61
+ case 'padding':
62
+ composeSpacing({
63
+ source: styles,
64
+ spacing: deviceValue,
65
+ type: 'p'
66
+ });
67
+ break;
68
+ case 'margin':
69
+ composeSpacing({
70
+ source: styles,
71
+ spacing: deviceValue,
72
+ type: 'm'
73
+ });
74
+ break;
75
+ case 'm':
76
+ case 'p':
77
+ break;
78
+ default:
79
+ styles[`--${attr}`] = getAttrValue(attr, deviceValue, tag);
80
+ break;
81
+ }
82
+ } else {
83
+ switch(attr){
84
+ case 'padding':
85
+ composeSpacing({
86
+ source: styles,
87
+ spacing: deviceValue,
88
+ type: 'p',
89
+ suffix: `-${composeAttr}`
90
+ });
91
+ break;
92
+ case 'margin':
93
+ composeSpacing({
94
+ source: styles,
95
+ spacing: deviceValue,
96
+ type: 'm',
97
+ suffix: `-${composeAttr}`
98
+ });
99
+ break;
100
+ case 'm':
101
+ case 'p':
102
+ break;
103
+ default:
104
+ styles[`--${attr}-${composeAttr}`] = getAttrValue(attr, deviceValue, tag);
105
+ break;
106
+ }
107
+ }
108
+ }
109
+ } else if (states.includes(composeAttr)) {
110
+ switch(attr){
111
+ case 'hasBoxShadow':
112
+ break;
113
+ case 'boxShadow':
114
+ Object.assign(styles, shadow.getStyleShadowState(value, 'box-shadow', hasBoxShadow));
115
+ break;
116
+ }
117
+ }
118
+ });
119
+ } else {
120
+ styles[`--${attr}`] = getAttrValue(attr, value, tag);
121
+ }
122
+ });
123
+ return styles;
130
124
  }
131
125
 
132
126
  exports.composeAdvanceStyle = composeAdvanceStyle;
@@ -1,16 +1,21 @@
1
1
  'use strict';
2
2
 
3
- const stateMapping = {
4
- normal: '',
5
- hover: '-hvr',
6
- focus: '-focus',
7
- };
8
- const devicesMapping = {
9
- desktop: '',
10
- tablet: '-tablet',
11
- mobile: '-mobile',
12
- };
13
- const layoutComponent = ['Row', 'Section', 'Product', 'HeroBanner'];
3
+ const stateMapping = {
4
+ normal: '',
5
+ hover: '-hvr',
6
+ focus: '-focus'
7
+ };
8
+ const devicesMapping = {
9
+ desktop: '',
10
+ tablet: '-tablet',
11
+ mobile: '-mobile'
12
+ };
13
+ const layoutComponent = [
14
+ 'Row',
15
+ 'Section',
16
+ 'Product',
17
+ 'HeroBanner'
18
+ ];
14
19
 
15
20
  exports.devicesMapping = devicesMapping;
16
21
  exports.layoutComponent = layoutComponent;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- const genVariable = (variableName) => {
4
- return `var(--g-${variableName})`;
3
+ const genVariable = (variableName)=>{
4
+ return `var(--g-${variableName})`;
5
5
  };
6
6
 
7
7
  exports.genVariable = genVariable;
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const validateEmail = (email) => {
6
- const emailRegex = new RegExp(/^(?:[^<>()[\]\\.,;:\s@"]+(?:\.[^<>()[\]\\.,;:\s@"]+)*|".+")@(?:\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]|(?:[a-zA-Z\-\d]+\.)+[a-zA-Z]{2,})$/);
7
- return emailRegex.test(email);
5
+ const validateEmail = (email)=>{
6
+ const emailRegex = new RegExp(/^(?:[^<>()[\]\\.,;:\s@"]+(?:\.[^<>()[\]\\.,;:\s@"]+)*|".+")@(?:\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]|(?:[a-zA-Z\-\d]+\.)+[a-zA-Z]{2,})$/);
7
+ return emailRegex.test(email);
8
8
  };
9
9
 
10
10
  exports.default = validateEmail;
@@ -1,10 +1,9 @@
1
1
  'use strict';
2
2
 
3
- /**
4
- * The `flattenConnection` utility transforms a connection object from the Storefront API (for example, [Product-related connections](api/storefront/reference/products/product#connections)) into a flat array of nodes.
5
- */
6
- const flattenConnection = (connection) => {
7
- return connection?.edges?.map((edge) => edge.node) ?? [];
3
+ /**
4
+ * The `flattenConnection` utility transforms a connection object from the Storefront API (for example, [Product-related connections](api/storefront/reference/products/product#connections)) into a flat array of nodes.
5
+ */ const flattenConnection = (connection)=>{
6
+ return connection?.edges?.map((edge)=>edge.node) ?? [];
8
7
  };
9
8
 
10
9
  exports.flattenConnection = flattenConnection;