@gem-sdk/core 1.14.0-next.91 → 1.14.0

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 (241) hide show
  1. package/dist/cjs/components/AddOn.js +18 -1
  2. package/dist/cjs/components/ComponentWrapper.js +28 -1
  3. package/dist/cjs/components/ComponentWrapperPreview.js +72 -1
  4. package/dist/cjs/components/Empty.js +7 -1
  5. package/dist/cjs/components/Render.js +65 -1
  6. package/dist/cjs/components/Render.liquid.js +158 -3
  7. package/dist/cjs/components/RenderBlock.js +54 -1
  8. package/dist/cjs/components/RenderPreview.js +66 -1
  9. package/dist/cjs/components/RenderSection.js +23 -1
  10. package/dist/cjs/components/constant.js +39 -1
  11. package/dist/cjs/contexts/AddonContext.js +36 -1
  12. package/dist/cjs/contexts/BuilderComponent.js +34 -1
  13. package/dist/cjs/contexts/BuilderContext.js +35 -1
  14. package/dist/cjs/contexts/BuilderPreviewContext.js +370 -1
  15. package/dist/cjs/contexts/CartLineContext.js +29 -1
  16. package/dist/cjs/contexts/CollectionContext.js +38 -1
  17. package/dist/cjs/contexts/ModalContext.js +47 -1
  18. package/dist/cjs/contexts/ProductContext.js +149 -1
  19. package/dist/cjs/contexts/ProductListContext.js +32 -1
  20. package/dist/cjs/contexts/SectionContext.js +53 -1
  21. package/dist/cjs/contexts/ShopContext.js +70 -1
  22. package/dist/cjs/graphql/fragments/analytic.generated.js +6 -2
  23. package/dist/cjs/graphql/fragments/collection-detail.generated.js +6 -2
  24. package/dist/cjs/graphql/fragments/collection-product.generated.js +6 -2
  25. package/dist/cjs/graphql/fragments/collection.generated.js +6 -2
  26. package/dist/cjs/graphql/fragments/custom-code.generated.js +6 -2
  27. package/dist/cjs/graphql/fragments/data-seo.generated.js +6 -2
  28. package/dist/cjs/graphql/fragments/media.generated.js +6 -3
  29. package/dist/cjs/graphql/fragments/product-little.generated.js +6 -2
  30. package/dist/cjs/graphql/fragments/product-option-value.generated.js +6 -2
  31. package/dist/cjs/graphql/fragments/product-option.generated.js +6 -2
  32. package/dist/cjs/graphql/fragments/product.generated.js +6 -2
  33. package/dist/cjs/graphql/fragments/published-custom-section.generated.js +6 -2
  34. package/dist/cjs/graphql/fragments/published-page-section.generated.js +6 -2
  35. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +6 -2
  36. package/dist/cjs/graphql/fragments/published-theme-style.generated.js +6 -2
  37. package/dist/cjs/graphql/fragments/selected-option.generated.js +6 -2
  38. package/dist/cjs/graphql/fragments/variant.generated.js +6 -2
  39. package/dist/cjs/graphql/mutations/page-view-up.generated.js +7 -3
  40. package/dist/cjs/graphql/queries/collection-detail-filter.generated.js +16 -2
  41. package/dist/cjs/graphql/queries/collection.generated.js +14 -2
  42. package/dist/cjs/graphql/queries/collections.generated.js +9 -2
  43. package/dist/cjs/graphql/queries/preview-page.generated.js +14 -2
  44. package/dist/cjs/graphql/queries/product-little-detail.generated.js +11 -2
  45. package/dist/cjs/graphql/queries/product-medias.generated.js +8 -2
  46. package/dist/cjs/graphql/queries/product-variants.generated.js +10 -2
  47. package/dist/cjs/graphql/queries/products.generated.js +17 -3
  48. package/dist/cjs/graphql/queries/published-theme-pages.generated.js +14 -2
  49. package/dist/cjs/graphql/queries/store-property.generated.js +6 -2
  50. package/dist/cjs/helpers/GlobalEvent.js +19 -1
  51. package/dist/cjs/helpers/background.js +109 -1
  52. package/dist/cjs/helpers/borders.js +183 -4
  53. package/dist/cjs/helpers/clone-deep.js +5 -1
  54. package/dist/cjs/helpers/cls.js +16 -1
  55. package/dist/cjs/helpers/colors.js +183 -1
  56. package/dist/cjs/helpers/compose-advance-style.js +188 -1
  57. package/dist/cjs/helpers/constant.js +23 -1
  58. package/dist/cjs/helpers/convert.js +7 -1
  59. package/dist/cjs/helpers/css-variable.js +7 -1
  60. package/dist/cjs/helpers/email.js +11 -1
  61. package/dist/cjs/helpers/flatten-connection.js +9 -1
  62. package/dist/cjs/helpers/get-resonsive-value.js +31 -1
  63. package/dist/cjs/helpers/get-shortname.js +92 -1
  64. package/dist/cjs/helpers/is-browser.js +9 -1
  65. package/dist/cjs/helpers/is-defined.js +7 -1
  66. package/dist/cjs/helpers/is-empty-children.js +12 -1
  67. package/dist/cjs/helpers/is-safari.js +9 -1
  68. package/dist/cjs/helpers/layout.js +59 -1
  69. package/dist/cjs/helpers/load-script.js +31 -1
  70. package/dist/cjs/helpers/make-style.js +128 -1
  71. package/dist/cjs/helpers/normalize-builder-data.js +23 -1
  72. package/dist/cjs/helpers/prefetch-queries.js +78 -1
  73. package/dist/cjs/helpers/product.js +45 -1
  74. package/dist/cjs/helpers/queries/get-collection.js +220 -1
  75. package/dist/cjs/helpers/queries/get-collections.js +21 -1
  76. package/dist/cjs/helpers/queries/get-product-by-slug.js +125 -1
  77. package/dist/cjs/helpers/queries/get-product.js +154 -1
  78. package/dist/cjs/helpers/queries/get-products.js +161 -1
  79. package/dist/cjs/helpers/query.js +29 -1
  80. package/dist/cjs/helpers/radius.js +131 -6
  81. package/dist/cjs/helpers/render.js +71 -1
  82. package/dist/cjs/helpers/shadow.js +56 -1
  83. package/dist/cjs/helpers/size.js +35 -4
  84. package/dist/cjs/helpers/spacing.js +43 -1
  85. package/dist/cjs/helpers/tracking/fpixel.js +28 -1
  86. package/dist/cjs/helpers/tracking/gtag.js +93 -1
  87. package/dist/cjs/helpers/tracking/tiktokpixel.js +17 -1
  88. package/dist/cjs/helpers/typography.js +105 -17
  89. package/dist/cjs/helpers/variant.js +8 -1
  90. package/dist/cjs/hooks/cart/use-add-to-cart.js +20 -1
  91. package/dist/cjs/hooks/cart/use-cart-data.js +28 -1
  92. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +20 -1
  93. package/dist/cjs/hooks/cart/use-cart-note-update.js +20 -1
  94. package/dist/cjs/hooks/cart/use-create-cart.js +22 -1
  95. package/dist/cjs/hooks/cart/use-remove-cart-item.js +20 -1
  96. package/dist/cjs/hooks/cart/use-update-cart-item.js +20 -1
  97. package/dist/cjs/hooks/shop/use-collection-query.js +22 -1
  98. package/dist/cjs/hooks/shop/use-collections-query.js +17 -1
  99. package/dist/cjs/hooks/shop/use-product-query.js +22 -1
  100. package/dist/cjs/hooks/shop/use-products-query.js +22 -1
  101. package/dist/cjs/hooks/shop.js +126 -1
  102. package/dist/cjs/hooks/use-current-device.js +21 -1
  103. package/dist/cjs/hooks/use-lazy-video.js +15 -1
  104. package/dist/cjs/hooks/useCartId.js +44 -1
  105. package/dist/cjs/hooks/useCartLine.js +11 -1
  106. package/dist/cjs/hooks/useCartUI.js +48 -1
  107. package/dist/cjs/hooks/useCollection.js +9 -1
  108. package/dist/cjs/hooks/useFetchHandle.js +13 -1
  109. package/dist/cjs/hooks/useFormatMoney.js +58 -1
  110. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +10 -1
  111. package/dist/cjs/hooks/useLoadScript.js +32 -1
  112. package/dist/cjs/hooks/useMoney.js +84 -1
  113. package/dist/cjs/hooks/usePrevious.js +19 -1
  114. package/dist/cjs/hooks/useProduct.js +124 -1
  115. package/dist/cjs/hooks/useProductList.js +21 -1
  116. package/dist/cjs/hooks/useSuspenseFetch.js +27 -1
  117. package/dist/cjs/hooks/useSwatchesOptions.js +41 -1
  118. package/dist/cjs/index.js +291 -1
  119. package/dist/cjs/types/global-style.js +14 -1
  120. package/dist/cjs/types/shop.js +2 -1
  121. package/dist/esm/components/AddOn.js +14 -1
  122. package/dist/esm/components/ComponentWrapper.js +24 -1
  123. package/dist/esm/components/ComponentWrapperPreview.js +68 -1
  124. package/dist/esm/components/Empty.js +3 -1
  125. package/dist/esm/components/Render.js +61 -1
  126. package/dist/esm/components/Render.liquid.js +153 -3
  127. package/dist/esm/components/RenderBlock.js +50 -1
  128. package/dist/esm/components/RenderPreview.js +62 -1
  129. package/dist/esm/components/RenderSection.js +19 -1
  130. package/dist/esm/components/constant.js +37 -1
  131. package/dist/esm/contexts/AddonContext.js +32 -1
  132. package/dist/esm/contexts/BuilderComponent.js +31 -1
  133. package/dist/esm/contexts/BuilderContext.js +32 -1
  134. package/dist/esm/contexts/BuilderPreviewContext.js +367 -1
  135. package/dist/esm/contexts/CartLineContext.js +26 -1
  136. package/dist/esm/contexts/CollectionContext.js +35 -1
  137. package/dist/esm/contexts/ModalContext.js +44 -1
  138. package/dist/esm/contexts/ProductContext.js +146 -1
  139. package/dist/esm/contexts/ProductListContext.js +28 -1
  140. package/dist/esm/contexts/SectionContext.js +49 -1
  141. package/dist/esm/contexts/ShopContext.js +67 -1
  142. package/dist/esm/graphql/fragments/analytic.generated.js +4 -2
  143. package/dist/esm/graphql/fragments/collection-detail.generated.js +4 -2
  144. package/dist/esm/graphql/fragments/collection-product.generated.js +4 -2
  145. package/dist/esm/graphql/fragments/collection.generated.js +4 -2
  146. package/dist/esm/graphql/fragments/custom-code.generated.js +4 -2
  147. package/dist/esm/graphql/fragments/data-seo.generated.js +4 -2
  148. package/dist/esm/graphql/fragments/media.generated.js +4 -3
  149. package/dist/esm/graphql/fragments/product-little.generated.js +4 -2
  150. package/dist/esm/graphql/fragments/product-option-value.generated.js +4 -2
  151. package/dist/esm/graphql/fragments/product-option.generated.js +4 -2
  152. package/dist/esm/graphql/fragments/product.generated.js +4 -2
  153. package/dist/esm/graphql/fragments/published-custom-section.generated.js +4 -2
  154. package/dist/esm/graphql/fragments/published-page-section.generated.js +4 -2
  155. package/dist/esm/graphql/fragments/published-theme-page.generated.js +4 -2
  156. package/dist/esm/graphql/fragments/published-theme-style.generated.js +4 -2
  157. package/dist/esm/graphql/fragments/selected-option.generated.js +4 -2
  158. package/dist/esm/graphql/fragments/variant.generated.js +4 -2
  159. package/dist/esm/graphql/mutations/page-view-up.generated.js +5 -3
  160. package/dist/esm/graphql/queries/collection-detail-filter.generated.js +22 -10
  161. package/dist/esm/graphql/queries/collection.generated.js +18 -8
  162. package/dist/esm/graphql/queries/collections.generated.js +8 -3
  163. package/dist/esm/graphql/queries/preview-page.generated.js +18 -8
  164. package/dist/esm/graphql/queries/product-little-detail.generated.js +12 -5
  165. package/dist/esm/graphql/queries/product-medias.generated.js +6 -2
  166. package/dist/esm/graphql/queries/product-variants.generated.js +10 -4
  167. package/dist/esm/graphql/queries/products.generated.js +20 -9
  168. package/dist/esm/graphql/queries/published-theme-pages.generated.js +18 -8
  169. package/dist/esm/graphql/queries/store-property.generated.js +4 -2
  170. package/dist/esm/helpers/GlobalEvent.js +15 -1
  171. package/dist/esm/helpers/background.js +106 -1
  172. package/dist/esm/helpers/borders.js +175 -4
  173. package/dist/esm/helpers/clone-deep.js +3 -1
  174. package/dist/esm/helpers/cls.js +14 -1
  175. package/dist/esm/helpers/colors.js +168 -1
  176. package/dist/esm/helpers/compose-advance-style.js +185 -1
  177. package/dist/esm/helpers/constant.js +19 -1
  178. package/dist/esm/helpers/convert.js +4 -1
  179. package/dist/esm/helpers/css-variable.js +5 -1
  180. package/dist/esm/helpers/email.js +6 -1
  181. package/dist/esm/helpers/flatten-connection.js +7 -1
  182. package/dist/esm/helpers/get-resonsive-value.js +27 -1
  183. package/dist/esm/helpers/get-shortname.js +90 -1
  184. package/dist/esm/helpers/is-browser.js +5 -1
  185. package/dist/esm/helpers/is-defined.js +5 -1
  186. package/dist/esm/helpers/is-empty-children.js +7 -1
  187. package/dist/esm/helpers/is-safari.js +5 -1
  188. package/dist/esm/helpers/layout.js +54 -1
  189. package/dist/esm/helpers/load-script.js +29 -1
  190. package/dist/esm/helpers/make-style.js +117 -1
  191. package/dist/esm/helpers/normalize-builder-data.js +21 -1
  192. package/dist/esm/helpers/prefetch-queries.js +76 -1
  193. package/dist/esm/helpers/product.js +41 -1
  194. package/dist/esm/helpers/queries/get-collection.js +217 -1
  195. package/dist/esm/helpers/queries/get-collections.js +19 -1
  196. package/dist/esm/helpers/queries/get-product-by-slug.js +123 -1
  197. package/dist/esm/helpers/queries/get-product.js +150 -1
  198. package/dist/esm/helpers/queries/get-products.js +159 -1
  199. package/dist/esm/helpers/query.js +25 -1
  200. package/dist/esm/helpers/radius.js +124 -6
  201. package/dist/esm/helpers/render.js +64 -1
  202. package/dist/esm/helpers/shadow.js +51 -1
  203. package/dist/esm/helpers/size.js +31 -4
  204. package/dist/esm/helpers/spacing.js +40 -1
  205. package/dist/esm/helpers/tracking/fpixel.js +24 -1
  206. package/dist/esm/helpers/tracking/gtag.js +87 -1
  207. package/dist/esm/helpers/tracking/tiktokpixel.js +15 -1
  208. package/dist/esm/helpers/typography.js +96 -17
  209. package/dist/esm/helpers/variant.js +6 -1
  210. package/dist/esm/hooks/cart/use-add-to-cart.js +18 -1
  211. package/dist/esm/hooks/cart/use-cart-data.js +26 -1
  212. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +18 -1
  213. package/dist/esm/hooks/cart/use-cart-note-update.js +18 -1
  214. package/dist/esm/hooks/cart/use-create-cart.js +20 -1
  215. package/dist/esm/hooks/cart/use-remove-cart-item.js +18 -1
  216. package/dist/esm/hooks/cart/use-update-cart-item.js +18 -1
  217. package/dist/esm/hooks/shop/use-collection-query.js +20 -1
  218. package/dist/esm/hooks/shop/use-collections-query.js +15 -1
  219. package/dist/esm/hooks/shop/use-product-query.js +20 -1
  220. package/dist/esm/hooks/shop/use-products-query.js +20 -1
  221. package/dist/esm/hooks/shop.js +111 -1
  222. package/dist/esm/hooks/use-current-device.js +19 -1
  223. package/dist/esm/hooks/use-lazy-video.js +13 -1
  224. package/dist/esm/hooks/useCartId.js +40 -1
  225. package/dist/esm/hooks/useCartLine.js +7 -1
  226. package/dist/esm/hooks/useCartUI.js +44 -1
  227. package/dist/esm/hooks/useCollection.js +7 -1
  228. package/dist/esm/hooks/useFetchHandle.js +11 -1
  229. package/dist/esm/hooks/useFormatMoney.js +56 -1
  230. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +6 -1
  231. package/dist/esm/hooks/useLoadScript.js +28 -1
  232. package/dist/esm/hooks/useMoney.js +80 -1
  233. package/dist/esm/hooks/usePrevious.js +17 -1
  234. package/dist/esm/hooks/useProduct.js +111 -1
  235. package/dist/esm/hooks/useProductList.js +16 -1
  236. package/dist/esm/hooks/useSuspenseFetch.js +23 -1
  237. package/dist/esm/hooks/useSwatchesOptions.js +37 -1
  238. package/dist/esm/index.js +92 -1
  239. package/dist/esm/types/global-style.js +11 -1
  240. package/dist/types/index.d.ts +27 -28
  241. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- let StorePropertyDocument=`
1
+ /* eslint-disable */ const StorePropertyDocument = `
2
2
  query storeProperty {
3
3
  storeProperty {
4
4
  favicon
@@ -6,4 +6,6 @@ let StorePropertyDocument=`
6
6
  primaryDomain
7
7
  }
8
8
  }
9
- `;export{StorePropertyDocument};
9
+ `;
10
+
11
+ export { StorePropertyDocument };
@@ -1 +1,15 @@
1
- let globalEvent={subscribe(e){document.addEventListener("onDispatch",t=>e(t.detail))},dispatch(e){document.dispatchEvent(new CustomEvent("onDispatch",{detail:e}))},remove(e){document.removeEventListener("onDispatch",e)}};export{globalEvent as default};
1
+ const globalEvent = {
2
+ subscribe (callback) {
3
+ document.addEventListener('onDispatch', (e)=>callback(e.detail));
4
+ },
5
+ dispatch (data) {
6
+ document.dispatchEvent(new CustomEvent('onDispatch', {
7
+ detail: data
8
+ }));
9
+ },
10
+ remove (callback) {
11
+ document.removeEventListener('onDispatch', callback);
12
+ }
13
+ };
14
+
15
+ export { globalEvent as default };
@@ -1 +1,106 @@
1
- import{isColor as e,getSingleColorVariable as t}from"./colors.js";import{makeStyleResponsive as g}from"./make-style.js";let getStyleBackgroundByDevice=(e,t)=>e?{...getStyleBgColor(e),...getStyleBgImage(e,t),...getStyleBgPosition(e),...getStyleBgSize(e),...getStyleBgRepeat(e),...getStyleBgAttachment(e)}:{},getStyleBgColor=e=>{let t={desktop:getBgColorByDevice(e,"desktop"),tablet:getBgColorByDevice(e,"tablet"),mobile:getBgColorByDevice(e,"mobile")};return g("bgc",t)},getBgColorByDevice=(e,t)=>getColor(e?.[t]?.color),getColor=t=>t?e(t?.toString())?t:`var(--g-c-${t})`:void 0,getStyleBgImage=(e,t)=>{let o={desktop:getBgImageByDevice(e,"desktop",t),tablet:getBgImageByDevice(e,"tablet",t),mobile:getBgImageByDevice(e,"mobile",t)};return g("bgi",o)},getBgImageByDevice=(e,t,g)=>{let o=e?.[t]?.image?.backupFileKey,i=g?.liquid&&o&&`{{ "${o}" | asset_url }}`||e?.[t]?.image?.src;if("string"==typeof i)return`url(${i})`},getStyleBgPosition=e=>{let t={desktop:getBgPositionByDevice(e,"desktop"),tablet:getBgPositionByDevice(e,"tablet"),mobile:getBgPositionByDevice(e,"mobile")};return g("bgp",t)},getBgPositionByDevice=(e,t)=>{let g=e?.[t]?.position;return g&&`${g.x}% ${g.y}%`},getStyleBgSize=e=>{let t={desktop:getBgSizeByDevice(e,"desktop"),tablet:getBgSizeByDevice(e,"tablet"),mobile:getBgSizeByDevice(e,"mobile")};return g("bgs",t)},getBgSizeByDevice=(e,t)=>e?.[t]?.size,getStyleBgRepeat=e=>{let t={desktop:getBgRepeatByDevice(e,"desktop"),tablet:getBgRepeatByDevice(e,"tablet"),mobile:getBgRepeatByDevice(e,"mobile")};return g("bgr",t)},getBgRepeatByDevice=(e,t)=>e?.[t]?.repeat,getStyleBgAttachment=e=>{let t={desktop:getBgAttachmentByDevice(e,"desktop"),tablet:getBgAttachmentByDevice(e,"tablet"),mobile:getBgAttachmentByDevice(e,"mobile")};return g("bga",t)},getBgAttachmentByDevice=(e,t)=>e?.[t]?.attachment,composeBackgroundCss=e=>`${e?`background-color: ${t(e)} !important;`:void 0}`;export{composeBackgroundCss,getStyleBackgroundByDevice};
1
+ import { isColor, getSingleColorVariable } from './colors.js';
2
+ import { makeStyleResponsive } from './make-style.js';
3
+
4
+ const getStyleBackgroundByDevice = (background, options)=>{
5
+ if (!background) {
6
+ return {};
7
+ }
8
+ return {
9
+ ...getStyleBgColor(background),
10
+ ...getStyleBgImage(background, options),
11
+ ...getStyleBgPosition(background),
12
+ ...getStyleBgSize(background),
13
+ ...getStyleBgRepeat(background),
14
+ ...getStyleBgAttachment(background)
15
+ };
16
+ };
17
+ const getStyleBgColor = (background)=>{
18
+ const bgColor = {
19
+ desktop: getBgColorByDevice(background, 'desktop'),
20
+ tablet: getBgColorByDevice(background, 'tablet'),
21
+ mobile: getBgColorByDevice(background, 'mobile')
22
+ };
23
+ return makeStyleResponsive('bgc', bgColor);
24
+ };
25
+ const getBgColorByDevice = (background, device)=>{
26
+ return getColor(background?.[device]?.color);
27
+ };
28
+ const getColor = (color)=>{
29
+ if (!color) {
30
+ return;
31
+ }
32
+ if (isColor(color?.toString())) {
33
+ return color;
34
+ }
35
+ return `var(--g-c-${color})`;
36
+ };
37
+ const getStyleBgImage = (background, options)=>{
38
+ const bgImage = {
39
+ // desktop:
40
+ // background.desktop?.type === 'color' ? 'none' : getBgImageByDevice(background, 'desktop'),
41
+ // tablet: background.tablet?.type === 'color' ? 'none' : getBgImageByDevice(background, 'tablet'),
42
+ // mobile: background.mobile?.type === 'color' ? 'none' : getBgImageByDevice(background, 'mobile'),
43
+ desktop: getBgImageByDevice(background, 'desktop', options),
44
+ tablet: getBgImageByDevice(background, 'tablet', options),
45
+ mobile: getBgImageByDevice(background, 'mobile', options)
46
+ };
47
+ return makeStyleResponsive('bgi', bgImage);
48
+ };
49
+ const getBgImageByDevice = (background, device, options)=>{
50
+ const backupFileKey = background?.[device]?.image?.backupFileKey;
51
+ const imageByDevice = options?.liquid && backupFileKey && `{{ "${backupFileKey}" | asset_url }}` || background?.[device]?.image?.src;
52
+ if (typeof imageByDevice === 'string') {
53
+ return `url(${imageByDevice})`;
54
+ }
55
+ return;
56
+ };
57
+ const getStyleBgPosition = (background)=>{
58
+ const bgPosition = {
59
+ desktop: getBgPositionByDevice(background, 'desktop'),
60
+ tablet: getBgPositionByDevice(background, 'tablet'),
61
+ mobile: getBgPositionByDevice(background, 'mobile')
62
+ };
63
+ return makeStyleResponsive('bgp', bgPosition);
64
+ };
65
+ const getBgPositionByDevice = (background, device)=>{
66
+ const positionByDevice = background?.[device]?.position;
67
+ return positionByDevice && `${positionByDevice.x}% ${positionByDevice.y}%`;
68
+ };
69
+ const getStyleBgSize = (background)=>{
70
+ const bgSize = {
71
+ desktop: getBgSizeByDevice(background, 'desktop'),
72
+ tablet: getBgSizeByDevice(background, 'tablet'),
73
+ mobile: getBgSizeByDevice(background, 'mobile')
74
+ };
75
+ return makeStyleResponsive('bgs', bgSize);
76
+ };
77
+ const getBgSizeByDevice = (background, device)=>{
78
+ return background?.[device]?.size;
79
+ };
80
+ const getStyleBgRepeat = (background)=>{
81
+ const bgRepeat = {
82
+ desktop: getBgRepeatByDevice(background, 'desktop'),
83
+ tablet: getBgRepeatByDevice(background, 'tablet'),
84
+ mobile: getBgRepeatByDevice(background, 'mobile')
85
+ };
86
+ return makeStyleResponsive('bgr', bgRepeat);
87
+ };
88
+ const getBgRepeatByDevice = (background, device)=>{
89
+ return background?.[device]?.repeat;
90
+ };
91
+ const getStyleBgAttachment = (background)=>{
92
+ const bgAttachment = {
93
+ desktop: getBgAttachmentByDevice(background, 'desktop'),
94
+ tablet: getBgAttachmentByDevice(background, 'tablet'),
95
+ mobile: getBgAttachmentByDevice(background, 'mobile')
96
+ };
97
+ return makeStyleResponsive('bga', bgAttachment);
98
+ };
99
+ const getBgAttachmentByDevice = (background, device)=>{
100
+ return background?.[device]?.attachment;
101
+ };
102
+ const composeBackgroundCss = (backgroundColor)=>{
103
+ return `${backgroundColor ? `background-color: ${getSingleColorVariable(backgroundColor)} !important;` : undefined}`;
104
+ };
105
+
106
+ export { composeBackgroundCss, getStyleBackgroundByDevice };
@@ -1,4 +1,175 @@
1
- import{getSingleColorVariable as o,getGlobalColorStateResponsiveStyle as e,getGlobalColorStateStyle as r,getGlobalColorStateResponsiveClass as t,getGlobalColorStateClass as l,getGlobalColorStateResponsiveClassDynamicBtn as n,getGlobalColorStateClassDynamicBtn as s}from"./colors.js";import{makeStyle as b,makeStyleResponsiveState as d,makeStyleState as m}from"./make-style.js";let getBorderStyle=e=>b({b:e?.border,bc:o(e?.color),bw:e?.width}),handleConvertBorderStyle=(o,e)=>{if(!o)return;if("desktop"in o||"tablet"in o||"mobile"in o){let r={desktop:{normal:"button"!==e||o.desktop?.normal?.borderType!=="none"||o.desktop?.normal?.isCustom?o.desktop?.normal?.border:"solid",hover:"button"!==e||o.desktop?.hover?.borderType!=="none"||o.desktop?.hover?.isCustom?o.desktop?.hover?.border:"solid",focus:"button"!==e||o.desktop?.focus?.borderType!=="none"||o.desktop?.focus?.isCustom?o.desktop?.focus?.border:"solid"},tablet:{normal:"button"!==e||o.tablet?.normal?.borderType!=="none"||o.tablet?.normal?.isCustom?o.tablet?.normal?.border:"solid",hover:"button"!==e||o.tablet?.hover?.borderType!=="none"||o.tablet?.hover?.isCustom?o.tablet?.hover?.border:"solid",focus:"button"!==e||o.tablet?.focus?.borderType!=="none"||o.tablet?.focus?.isCustom?o.tablet?.focus?.border:"solid"},mobile:{normal:"button"!==e||o.mobile?.normal?.borderType!=="none"||o.mobile?.normal?.isCustom?o.mobile?.normal?.border:"solid",hover:"button"!==e||o.mobile?.hover?.borderType!=="none"||o.mobile?.hover?.isCustom?o.mobile?.hover?.border:"solid",focus:"button"!==e||o.mobile?.focus?.borderType!=="none"||o.mobile?.focus?.isCustom?o.mobile?.focus?.border:"solid"}};return d("bs",r)}let r={normal:"button"!==e||o.normal?.borderType!=="none"||o.normal?.isCustom?o?.normal?.border:"solid",hover:"button"!==e||o.hover?.borderType!=="none"||o.hover?.isCustom?o?.hover?.border:"solid",focus:"button"!==e||o.focus?.borderType!=="none"||o.focus?.isCustom?o?.focus?.border:"solid"};return m("bs",r)},handleConvertBorderWidth=(o,e)=>{if(!o)return;if("desktop"in o||"tablet"in o||"mobile"in o){let r={desktop:{normal:"button"!==e||o.desktop?.normal?.borderType!=="none"||o?.desktop?.normal?.isCustom?o.desktop?.normal?.width:"1px 1px 1px 1px",hover:"button"!==e||o.desktop?.hover?.borderType!=="none"||o?.desktop?.normal?.isCustom?o.desktop?.hover?.width:"1px 1px 1px 1px",focus:"button"!==e||o.desktop?.focus?.borderType!=="none"||o?.desktop?.normal?.isCustom?o.desktop?.focus?.width:"1px 1px 1px 1px"},tablet:{normal:"button"!==e||o.tablet?.normal?.borderType!=="none"||o?.tablet?.normal?.isCustom?o.tablet?.normal?.width:"1px 1px 1px 1px",hover:"button"!==e||o.tablet?.hover?.borderType!=="none"||o?.tablet?.hover?.isCustom?o.tablet?.hover?.width:"1px 1px 1px 1px",focus:"button"!==e||o.tablet?.focus?.borderType!=="none"||o?.tablet?.focus?.isCustom?o.tablet?.focus?.width:"1px 1px 1px 1px"},mobile:{normal:"button"!==e||o.mobile?.normal?.borderType!=="none"||o?.mobile?.normal?.isCustom?o.mobile?.normal?.width:"1px 1px 1px 1px",hover:"button"!==e||o.mobile?.hover?.borderType!=="none"||o?.mobile?.hover?.isCustom?o.mobile?.hover?.width:"1px 1px 1px 1px",focus:"button"!==e||o.mobile?.focus?.borderType!=="none"||o?.mobile?.focus?.isCustom?o.mobile?.focus?.width:"1px 1px 1px 1px"}};return d("bw",r)}let r={normal:"button"!==e||o.normal?.borderType!=="none"||o.normal?.isCustom?o?.normal?.width:"1px 1px 1px 1px",hover:"button"!==e||o.hover?.borderType!=="none"||o.hover?.isCustom?o?.hover?.width:"1px 1px 1px 1px",focus:"button"!==e||o.focus?.borderType!=="none"||o.focus?.isCustom?o?.focus?.width:"1px 1px 1px 1px"};return m("bw",r)},handleConvertBorderColor=o=>{if(!o)return;if("desktop"in o||"tablet"in o||"mobile"in o){let r={desktop:{normal:o.desktop?.normal?.color,hover:o.desktop?.hover?.color,focus:o.desktop?.focus?.color},tablet:{normal:o.tablet?.normal?.color,hover:o.tablet?.hover?.color,focus:o.tablet?.focus?.color},mobile:{normal:o.mobile?.normal?.color,hover:o.mobile?.hover?.color,focus:o.mobile?.focus?.color}};return e("bc",r)}let t={normal:o?.normal?.color,hover:o?.hover?.color,focus:o?.focus?.color};return r("bc",t)},handleConvertClassColor=o=>{if(!o)return;if("desktop"in o||"tablet"in o||"mobile"in o){let e={desktop:{normal:o.desktop?.normal?.color,hover:o.desktop?.hover?.color,focus:o.desktop?.focus?.color},tablet:{normal:o.tablet?.normal?.color,hover:o.tablet?.hover?.color,focus:o.tablet?.focus?.color},mobile:{normal:o.mobile?.normal?.color,hover:o.mobile?.hover?.color,focus:o.mobile?.focus?.color}};return t("border",e)}let e={normal:o?.normal?.color,hover:o?.hover?.color,focus:o?.focus?.color};return l("border",e)},handleConvertClassColorDynamicBtn=o=>{if(!o)return;if("desktop"in o||"tablet"in o||"mobile"in o){let e={desktop:{normal:o.desktop?.normal?.color,hover:o.desktop?.hover?.color,focus:o.desktop?.focus?.color},tablet:{normal:o.tablet?.normal?.color,hover:o.tablet?.hover?.color,focus:o.tablet?.focus?.color},mobile:{normal:o.mobile?.normal?.color,hover:o.mobile?.hover?.color,focus:o.mobile?.focus?.color}};return n("border",e)}let e={normal:o?.normal?.color,hover:o?.hover?.color,focus:o?.focus?.color};return s("border",e)},composeBorderCss=e=>{if(!e)return"";let{border:r,width:t,color:l}=e;return`${r?`border-style: ${r};`:""}
2
- ${t?`border-width: ${t};`:""}
3
- ${l?`border-color: ${o(l)};`:""}
4
- `};export{composeBorderCss,getBorderStyle,handleConvertBorderColor,handleConvertBorderStyle,handleConvertBorderWidth,handleConvertClassColor,handleConvertClassColorDynamicBtn};
1
+ import { getSingleColorVariable, getGlobalColorStateResponsiveStyle, getGlobalColorStateStyle, getGlobalColorStateResponsiveClass, getGlobalColorStateClass, getGlobalColorStateResponsiveClassDynamicBtn, getGlobalColorStateClassDynamicBtn } from './colors.js';
2
+ import { makeStyle, makeStyleResponsiveState, makeStyleState } from './make-style.js';
3
+
4
+ const getBorderStyle = (value)=>{
5
+ return makeStyle({
6
+ b: value?.border,
7
+ bc: getSingleColorVariable(value?.color),
8
+ bw: value?.width
9
+ });
10
+ };
11
+ const handleConvertBorderStyle = (value, type)=>{
12
+ if (!value) return undefined;
13
+ if ('desktop' in value || 'tablet' in value || 'mobile' in value) {
14
+ const data = value;
15
+ const newVal = {
16
+ desktop: {
17
+ normal: type === 'button' && data.desktop?.normal?.borderType === 'none' && !data.desktop?.normal?.isCustom ? 'solid' : data.desktop?.normal?.border,
18
+ hover: type === 'button' && data.desktop?.hover?.borderType === 'none' && !data.desktop?.hover?.isCustom ? 'solid' : data.desktop?.hover?.border,
19
+ focus: type === 'button' && data.desktop?.focus?.borderType === 'none' && !data.desktop?.focus?.isCustom ? 'solid' : data.desktop?.focus?.border
20
+ },
21
+ tablet: {
22
+ normal: type === 'button' && data.tablet?.normal?.borderType === 'none' && !data.tablet?.normal?.isCustom ? 'solid' : data.tablet?.normal?.border,
23
+ hover: type === 'button' && data.tablet?.hover?.borderType === 'none' && !data.tablet?.hover?.isCustom ? 'solid' : data.tablet?.hover?.border,
24
+ focus: type === 'button' && data.tablet?.focus?.borderType === 'none' && !data.tablet?.focus?.isCustom ? 'solid' : data.tablet?.focus?.border
25
+ },
26
+ mobile: {
27
+ normal: type === 'button' && data.mobile?.normal?.borderType === 'none' && !data.mobile?.normal?.isCustom ? 'solid' : data.mobile?.normal?.border,
28
+ hover: type === 'button' && data.mobile?.hover?.borderType === 'none' && !data.mobile?.hover?.isCustom ? 'solid' : data.mobile?.hover?.border,
29
+ focus: type === 'button' && data.mobile?.focus?.borderType === 'none' && !data.mobile?.focus?.isCustom ? 'solid' : data.mobile?.focus?.border
30
+ }
31
+ };
32
+ return makeStyleResponsiveState('bs', newVal);
33
+ }
34
+ const data = value;
35
+ const newVal = {
36
+ normal: type === 'button' && data.normal?.borderType === 'none' && !data.normal?.isCustom ? 'solid' : data?.normal?.border,
37
+ hover: type === 'button' && data.hover?.borderType === 'none' && !data.hover?.isCustom ? 'solid' : data?.hover?.border,
38
+ focus: type === 'button' && data.focus?.borderType === 'none' && !data.focus?.isCustom ? 'solid' : data?.focus?.border
39
+ };
40
+ return makeStyleState('bs', newVal);
41
+ };
42
+ const handleConvertBorderWidth = (value, type)=>{
43
+ if (!value) return undefined;
44
+ if ('desktop' in value || 'tablet' in value || 'mobile' in value) {
45
+ const data = value;
46
+ const newVal = {
47
+ desktop: {
48
+ normal: type === 'button' && data.desktop?.normal?.borderType === 'none' && !data?.desktop?.normal?.isCustom ? '1px 1px 1px 1px' : data.desktop?.normal?.width,
49
+ hover: type === 'button' && data.desktop?.hover?.borderType === 'none' && !data?.desktop?.normal?.isCustom ? '1px 1px 1px 1px' : data.desktop?.hover?.width,
50
+ focus: type === 'button' && data.desktop?.focus?.borderType === 'none' && !data?.desktop?.normal?.isCustom ? '1px 1px 1px 1px' : data.desktop?.focus?.width
51
+ },
52
+ tablet: {
53
+ normal: type === 'button' && data.tablet?.normal?.borderType === 'none' && !data?.tablet?.normal?.isCustom ? '1px 1px 1px 1px' : data.tablet?.normal?.width,
54
+ hover: type === 'button' && data.tablet?.hover?.borderType === 'none' && !data?.tablet?.hover?.isCustom ? '1px 1px 1px 1px' : data.tablet?.hover?.width,
55
+ focus: type === 'button' && data.tablet?.focus?.borderType === 'none' && !data?.tablet?.focus?.isCustom ? '1px 1px 1px 1px' : data.tablet?.focus?.width
56
+ },
57
+ mobile: {
58
+ normal: type === 'button' && data.mobile?.normal?.borderType === 'none' && !data?.mobile?.normal?.isCustom ? '1px 1px 1px 1px' : data.mobile?.normal?.width,
59
+ hover: type === 'button' && data.mobile?.hover?.borderType === 'none' && !data?.mobile?.hover?.isCustom ? '1px 1px 1px 1px' : data.mobile?.hover?.width,
60
+ focus: type === 'button' && data.mobile?.focus?.borderType === 'none' && !data?.mobile?.focus?.isCustom ? '1px 1px 1px 1px' : data.mobile?.focus?.width
61
+ }
62
+ };
63
+ return makeStyleResponsiveState('bw', newVal);
64
+ }
65
+ const data = value;
66
+ const newVal = {
67
+ normal: type === 'button' && data.normal?.borderType === 'none' && !data.normal?.isCustom ? '1px 1px 1px 1px' : data?.normal?.width,
68
+ hover: type === 'button' && data.hover?.borderType === 'none' && !data.hover?.isCustom ? '1px 1px 1px 1px' : data?.hover?.width,
69
+ focus: type === 'button' && data.focus?.borderType === 'none' && !data.focus?.isCustom ? '1px 1px 1px 1px' : data?.focus?.width
70
+ };
71
+ return makeStyleState('bw', newVal);
72
+ };
73
+ const handleConvertBorderColor = (value)=>{
74
+ if (!value) return undefined;
75
+ if ('desktop' in value || 'tablet' in value || 'mobile' in value) {
76
+ const data = value;
77
+ const newVal = {
78
+ desktop: {
79
+ normal: data.desktop?.normal?.color,
80
+ hover: data.desktop?.hover?.color,
81
+ focus: data.desktop?.focus?.color
82
+ },
83
+ tablet: {
84
+ normal: data.tablet?.normal?.color,
85
+ hover: data.tablet?.hover?.color,
86
+ focus: data.tablet?.focus?.color
87
+ },
88
+ mobile: {
89
+ normal: data.mobile?.normal?.color,
90
+ hover: data.mobile?.hover?.color,
91
+ focus: data.mobile?.focus?.color
92
+ }
93
+ };
94
+ return getGlobalColorStateResponsiveStyle('bc', newVal);
95
+ }
96
+ const data = value;
97
+ const newVal = {
98
+ normal: data?.normal?.color,
99
+ hover: data?.hover?.color,
100
+ focus: data?.focus?.color
101
+ };
102
+ return getGlobalColorStateStyle('bc', newVal);
103
+ };
104
+ const handleConvertClassColor = (value)=>{
105
+ if (!value) return undefined;
106
+ if ('desktop' in value || 'tablet' in value || 'mobile' in value) {
107
+ const data = value;
108
+ const newVal = {
109
+ desktop: {
110
+ normal: data.desktop?.normal?.color,
111
+ hover: data.desktop?.hover?.color,
112
+ focus: data.desktop?.focus?.color
113
+ },
114
+ tablet: {
115
+ normal: data.tablet?.normal?.color,
116
+ hover: data.tablet?.hover?.color,
117
+ focus: data.tablet?.focus?.color
118
+ },
119
+ mobile: {
120
+ normal: data.mobile?.normal?.color,
121
+ hover: data.mobile?.hover?.color,
122
+ focus: data.mobile?.focus?.color
123
+ }
124
+ };
125
+ return getGlobalColorStateResponsiveClass('border', newVal);
126
+ }
127
+ const data = value;
128
+ const newVal = {
129
+ normal: data?.normal?.color,
130
+ hover: data?.hover?.color,
131
+ focus: data?.focus?.color
132
+ };
133
+ return getGlobalColorStateClass('border', newVal);
134
+ };
135
+ const handleConvertClassColorDynamicBtn = (value)=>{
136
+ if (!value) return undefined;
137
+ if ('desktop' in value || 'tablet' in value || 'mobile' in value) {
138
+ const data = value;
139
+ const newVal = {
140
+ desktop: {
141
+ normal: data.desktop?.normal?.color,
142
+ hover: data.desktop?.hover?.color,
143
+ focus: data.desktop?.focus?.color
144
+ },
145
+ tablet: {
146
+ normal: data.tablet?.normal?.color,
147
+ hover: data.tablet?.hover?.color,
148
+ focus: data.tablet?.focus?.color
149
+ },
150
+ mobile: {
151
+ normal: data.mobile?.normal?.color,
152
+ hover: data.mobile?.hover?.color,
153
+ focus: data.mobile?.focus?.color
154
+ }
155
+ };
156
+ return getGlobalColorStateResponsiveClassDynamicBtn('border', newVal);
157
+ }
158
+ const data = value;
159
+ const newVal = {
160
+ normal: data?.normal?.color,
161
+ hover: data?.hover?.color,
162
+ focus: data?.focus?.color
163
+ };
164
+ return getGlobalColorStateClassDynamicBtn('border', newVal);
165
+ };
166
+ const composeBorderCss = (borderV)=>{
167
+ if (!borderV) return '';
168
+ const { border, width, color } = borderV;
169
+ return `${border ? `border-style: ${border};` : ''}
170
+ ${width ? `border-width: ${width};` : ''}
171
+ ${color ? `border-color: ${getSingleColorVariable(color)};` : ''}
172
+ `;
173
+ };
174
+
175
+ export { composeBorderCss, getBorderStyle, handleConvertBorderColor, handleConvertBorderStyle, handleConvertBorderWidth, handleConvertClassColor, handleConvertClassColorDynamicBtn };
@@ -1 +1,3 @@
1
- let cloneDeep=e=>JSON.parse(JSON.stringify(e));export{cloneDeep};
1
+ const cloneDeep = (data)=>JSON.parse(JSON.stringify(data));
2
+
3
+ export { cloneDeep };
@@ -1 +1,14 @@
1
- function toVal(t){return"string"==typeof t?t:"object"==typeof t&&null!==t&&Object.keys(t).filter(o=>t[o]).join(" ")}function cls(...t){return t.map(toVal).filter(Boolean).join(" ")}export{cls};
1
+ function toVal(mix) {
2
+ if (typeof mix === 'string') {
3
+ return mix;
4
+ } else if (typeof mix === 'object' && mix !== null) {
5
+ return Object.keys(mix).filter((key)=>mix[key]).join(' ');
6
+ } else {
7
+ return false;
8
+ }
9
+ }
10
+ function cls(...classes) {
11
+ return classes.map(toVal).filter(Boolean).join(' ');
12
+ }
13
+
14
+ export { cls };
@@ -1 +1,168 @@
1
- import{isDefined as t}from"./is-defined.js";import{stateMapping as e}from"./constant.js";let getGlobalColorCSSProp=t=>getSingleColorVariable(t),getGlobalColorClass=(t,e)=>"string"!=typeof e||!e||e?.startsWith("#")||e?.startsWith("rgb")||e?.startsWith("hsl")||e?.startsWith("transparent")?"":`${t}-g-${e}`,getGlobalColorResponsiveClass=(e,o)=>o?Object.entries(o).map(([t,o])=>{let l=getGlobalColorClass(e,o);if(l)return"desktop"===t?l:`${t}:${l}`}).filter(t).join(" "):"",getGlobalColorStateClass=(e,o)=>o?Object.entries(o).map(([t,o])=>{let l=getGlobalColorClass(e,o);if(l)return"normal"===t?l:`${t}:${l}`}).filter(t).join(" "):"",getGlobalColorStateClassDynamicBtn=(e,o)=>o?Object.entries(o).map(([t,o])=>{let l=getGlobalColorClass(e,o);if(l)return"normal"===t?String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${l}`:String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${t}:${l}`}).filter(t).join(" "):"",getGlobalColorStateResponsiveClass=(e,o)=>o?Object.entries(o).map(([o,l])=>"desktop"===o?Object.entries(l).map(([t,o])=>{let l=getGlobalColorClass(e,o);if(l)return"normal"===t?l:`${t}:${l}`}).filter(t).join(" "):Object.entries(l).map(([t,l])=>{let r=getGlobalColorClass(e,l);if(r)return"normal"===t?`${o}:${r}`:`${o}:${t}:${r}`}).filter(t).join(" ")).filter(Boolean).join(" "):"",getGlobalColorStateResponsiveClassDynamicBtn=(e,o)=>o?Object.entries(o).map(([o,l])=>"desktop"===o?Object.entries(l).map(([t,o])=>{let l=getGlobalColorClass(e,o);if(l)return"normal"===t?String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${l}`:String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${t}:${l}`}).filter(t).join(" "):Object.entries(l).map(([t,l])=>{let r=getGlobalColorClass(e,l);if(r)return"normal"===t?String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${o}:${r}`:String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${o}:${t}:${r}`}).filter(t).join(" ")).filter(Boolean).join(" "):"",getGlobalColorResponsiveStyle=(t,e)=>e?Object.fromEntries(Object.entries(e).map(([e,o])=>"desktop"===e?[`--${t}`,getSingleColorVariable(o)]:[`--${t}-${e}`,getSingleColorVariable(o)])):{},getGlobalColorStateStyle=(o,l)=>l?Object.fromEntries(Object.entries(l).map(([t,l])=>"active"===t?[]:[`-${e?.[t]}-${o}`,getSingleColorVariable(l)]).filter(t)):{},getGlobalColorStateResponsiveStyle=(o,l)=>l?Object.entries(l).map(([l,r])=>"desktop"===l?Object.fromEntries(Object.entries(r).map(([t,l])=>"active"===t?[]:[`-${e[t]}-${o}`,getSingleColorVariable(l)]).filter(t)):Object.fromEntries(Object.entries(r).map(([t,r])=>"active"===t?[]:[`-${e[t]}-${o}-${l}`,getSingleColorVariable(r)]).filter(t))).reduce((t,e)=>({...t,...e}),{}):{},getSingleColorVariable=t=>{if(t)return isColor(t)?t:`var(--g-c-${t}, ${t})`};function isColor(t){return t?.startsWith("#")||t?.startsWith("rgb")||t?.startsWith("hsl")||t?.startsWith("transparent")}let getGlobalColorStyle=t=>t?{"--c":getSingleColorVariable(t)}:{},composeTextColorCss=t=>`${t?`color: ${getSingleColorVariable(t)} !important;`:""}`;export{composeTextColorCss,getGlobalColorCSSProp,getGlobalColorClass,getGlobalColorResponsiveClass,getGlobalColorResponsiveStyle,getGlobalColorStateClass,getGlobalColorStateClassDynamicBtn,getGlobalColorStateResponsiveClass,getGlobalColorStateResponsiveClassDynamicBtn,getGlobalColorStateResponsiveStyle,getGlobalColorStateStyle,getGlobalColorStyle,getSingleColorVariable,isColor};
1
+ import { isDefined } from './is-defined.js';
2
+ import { stateMapping } from './constant.js';
3
+
4
+ const getGlobalColorCSSProp = (color)=>{
5
+ return getSingleColorVariable(color);
6
+ };
7
+ const getGlobalColorClass = (type, color)=>{
8
+ if (typeof color !== 'string' || !color || color?.startsWith('#') || color?.startsWith('rgb') || color?.startsWith('hsl') || color?.startsWith('transparent')) return '';
9
+ return `${type}-g-${color}`;
10
+ };
11
+ const getGlobalColorResponsiveClass = (type, data)=>{
12
+ if (!data) return '';
13
+ return Object.entries(data).map(([device, value])=>{
14
+ const clName = getGlobalColorClass(type, value);
15
+ if (!clName) return undefined;
16
+ if (device === 'desktop') {
17
+ return clName;
18
+ } else {
19
+ return `${device}:${clName}`;
20
+ }
21
+ }).filter(isDefined).join(' ');
22
+ };
23
+ const getGlobalColorStateClass = (type, data)=>{
24
+ if (!data) return '';
25
+ return Object.entries(data).map(([state, value])=>{
26
+ const clName = getGlobalColorClass(type, value);
27
+ if (!clName) return undefined;
28
+ if (state === 'normal') {
29
+ return clName;
30
+ } else {
31
+ return `${state}:${clName}`;
32
+ }
33
+ }).filter(isDefined).join(' ');
34
+ };
35
+ const getGlobalColorStateClassDynamicBtn = (type, data)=>{
36
+ if (!data) return '';
37
+ return Object.entries(data).map(([state, value])=>{
38
+ const clName = getGlobalColorClass(type, value);
39
+ if (!clName) return undefined;
40
+ if (state === 'normal') {
41
+ return String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${clName}`;
42
+ } else {
43
+ return String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${state}:${clName}`;
44
+ }
45
+ }).filter(isDefined).join(' ');
46
+ };
47
+ const getGlobalColorStateResponsiveClass = (type, data)=>{
48
+ if (!data) return '';
49
+ return Object.entries(data).map(([device, objectState])=>{
50
+ if (device === 'desktop') {
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 clName;
56
+ } else {
57
+ return `${state}:${clName}`;
58
+ }
59
+ }).filter(isDefined).join(' ');
60
+ } else {
61
+ return Object.entries(objectState).map(([state, value])=>{
62
+ const clName = getGlobalColorClass(type, value);
63
+ if (!clName) return undefined;
64
+ if (state === 'normal') {
65
+ return `${device}:${clName}`;
66
+ } else {
67
+ return `${device}:${state}:${clName}`;
68
+ }
69
+ }).filter(isDefined).join(' ');
70
+ }
71
+ }).filter(Boolean).join(' ');
72
+ };
73
+ const getGlobalColorStateResponsiveClassDynamicBtn = (type, data)=>{
74
+ if (!data) return '';
75
+ return Object.entries(data).map(([device, objectState])=>{
76
+ if (device === 'desktop') {
77
+ return Object.entries(objectState).map(([state, value])=>{
78
+ const clName = getGlobalColorClass(type, value);
79
+ if (!clName) return undefined;
80
+ if (state === 'normal') {
81
+ return String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${clName}`;
82
+ } else {
83
+ return String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${state}:${clName}`;
84
+ }
85
+ }).filter(isDefined).join(' ');
86
+ } else {
87
+ return Object.entries(objectState).map(([state, value])=>{
88
+ const clName = getGlobalColorClass(type, value);
89
+ if (!clName) return undefined;
90
+ if (state === 'normal') {
91
+ return String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${device}:${clName}`;
92
+ } else {
93
+ return String.raw`[&_.shopify-payment-button\_\_button--unbranded]:${device}:${state}:${clName}`;
94
+ }
95
+ }).filter(isDefined).join(' ');
96
+ }
97
+ }).filter(Boolean).join(' ');
98
+ };
99
+ const getGlobalColorResponsiveStyle = (type, data)=>{
100
+ if (!data) return {};
101
+ return Object.fromEntries(Object.entries(data).map(([device, value])=>{
102
+ if (device === 'desktop') {
103
+ return [
104
+ `--${type}`,
105
+ getSingleColorVariable(value)
106
+ ];
107
+ } else {
108
+ return [
109
+ `--${type}-${device}`,
110
+ getSingleColorVariable(value)
111
+ ];
112
+ }
113
+ }));
114
+ };
115
+ const getGlobalColorStateStyle = (type, data)=>{
116
+ if (!data) return {};
117
+ return Object.fromEntries(Object.entries(data).map(([state, value])=>{
118
+ if (state === 'active') return [];
119
+ return [
120
+ `-${stateMapping?.[state]}-${type}`,
121
+ getSingleColorVariable(value)
122
+ ];
123
+ }).filter(isDefined));
124
+ };
125
+ const getGlobalColorStateResponsiveStyle = (type, data)=>{
126
+ if (!data) return {};
127
+ return Object.entries(data).map(([device, objectState])=>{
128
+ if (device === 'desktop') {
129
+ return Object.fromEntries(Object.entries(objectState).map(([state, value])=>{
130
+ if (state === 'active') return [];
131
+ return [
132
+ `-${stateMapping[state]}-${type}`,
133
+ getSingleColorVariable(value)
134
+ ];
135
+ }).filter(isDefined));
136
+ } else {
137
+ return Object.fromEntries(Object.entries(objectState).map(([state, value])=>{
138
+ if (state === 'active') return [];
139
+ return [
140
+ `-${stateMapping[state]}-${type}-${device}`,
141
+ getSingleColorVariable(value)
142
+ ];
143
+ }).filter(isDefined));
144
+ }
145
+ }).reduce((acc, curr)=>({
146
+ ...acc,
147
+ ...curr
148
+ }), {});
149
+ };
150
+ const getSingleColorVariable = (color)=>{
151
+ if (!color) return undefined;
152
+ if (isColor(color)) return color;
153
+ return `var(--g-c-${color}, ${color})`;
154
+ };
155
+ function isColor(color) {
156
+ return color?.startsWith('#') || color?.startsWith('rgb') || color?.startsWith('hsl') || color?.startsWith('transparent');
157
+ }
158
+ const getGlobalColorStyle = (data)=>{
159
+ if (!data) return {};
160
+ return {
161
+ '--c': getSingleColorVariable(data)
162
+ };
163
+ };
164
+ const composeTextColorCss = (color)=>{
165
+ return `${color ? `color: ${getSingleColorVariable(color)} !important;` : ''}`;
166
+ };
167
+
168
+ export { composeTextColorCss, getGlobalColorCSSProp, getGlobalColorClass, getGlobalColorResponsiveClass, getGlobalColorResponsiveStyle, getGlobalColorStateClass, getGlobalColorStateClassDynamicBtn, getGlobalColorStateResponsiveClass, getGlobalColorStateResponsiveClassDynamicBtn, getGlobalColorStateResponsiveStyle, getGlobalColorStateStyle, getGlobalColorStyle, getSingleColorVariable, isColor };