@gem-sdk/core 2.0.0-dev.896 → 2.0.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 (396) hide show
  1. package/dist/cjs/components/AddOn.js +18 -1
  2. package/dist/cjs/components/ComponentAnimation.js +17 -0
  3. package/dist/cjs/components/ComponentToolbarPreview.js +752 -1
  4. package/dist/cjs/components/ComponentWrapper.js +61 -1
  5. package/dist/cjs/components/ComponentWrapperPreview.js +213 -1
  6. package/dist/cjs/components/Empty.js +7 -1
  7. package/dist/cjs/components/InteractionSuffix.js +42 -0
  8. package/dist/cjs/components/Render.js +75 -1
  9. package/dist/cjs/components/Render.liquid.js +313 -17
  10. package/dist/cjs/components/RenderBlock.js +54 -1
  11. package/dist/cjs/components/RenderCustomCode.js +59 -3
  12. package/dist/cjs/components/RenderPreview.js +67 -1
  13. package/dist/cjs/components/RenderSection.js +23 -1
  14. package/dist/cjs/components/ai-generator/AIContentGenerator.js +252 -1
  15. package/dist/cjs/components/ai-generator/AIGenContentLoading.js +85 -1
  16. package/dist/cjs/components/ai-generator/components/PickProduct.js +220 -1
  17. package/dist/cjs/components/ai-generator/components/ToneAndVoice.js +77 -1
  18. package/dist/cjs/components/ai-generator/hooks/useCheckingProductInside.js +47 -0
  19. package/dist/cjs/components/ai-generator/hooks/useFlipPopup.js +110 -0
  20. package/dist/cjs/components/ai-generator/hooks/useGettingGenerateRequest.js +37 -1
  21. package/dist/cjs/components/ai-generator/hooks/useListenEventGenerate.js +70 -1
  22. package/dist/cjs/components/ai-generator/icons/AIIcon.js +67 -1
  23. package/dist/cjs/components/ai-generator/icons/CloseIcon.js +19 -1
  24. package/dist/cjs/components/ai-generator/icons/DropdownIcon.js +37 -1
  25. package/dist/cjs/components/ai-generator/icons/SearchIcon.js +21 -1
  26. package/dist/cjs/components/ai-generator/icons/ShowMoreIcon.js +21 -1
  27. package/dist/cjs/components/ai-generator/icons/UpgradeIcon.js +27 -0
  28. package/dist/cjs/components/ai-generator/icons/WarningIcon.js +31 -0
  29. package/dist/cjs/components/constant.js +83 -1
  30. package/dist/cjs/components/resize/Resize.js +16 -1
  31. package/dist/cjs/components/resize/Spacing.js +260 -1
  32. package/dist/cjs/components/src/product/helpers/variant-presets.js +56 -1
  33. package/dist/cjs/components/theme-section/CreateThemeSection.js +123 -1
  34. package/dist/cjs/components/theme-section/ThemeSectionStatus.js +45 -1
  35. package/dist/cjs/components/theme-section/ThemeSectionTooltip.js +126 -1
  36. package/dist/cjs/components/toolbar/Tooltip.js +28 -1
  37. package/dist/cjs/contexts/AddonContext.js +36 -1
  38. package/dist/cjs/contexts/ArticleContext.js +39 -1
  39. package/dist/cjs/contexts/ArticleListContext.js +31 -1
  40. package/dist/cjs/contexts/BuilderComponent.js +34 -1
  41. package/dist/cjs/contexts/BuilderContext.js +39 -1
  42. package/dist/cjs/contexts/BuilderPreviewContext.js +486 -1
  43. package/dist/cjs/contexts/CartLineContext.js +29 -1
  44. package/dist/cjs/contexts/CollectionContext.js +38 -1
  45. package/dist/cjs/contexts/ModalContext.js +47 -1
  46. package/dist/cjs/contexts/PageContext.js +104 -1
  47. package/dist/cjs/contexts/ProductContext.js +177 -1
  48. package/dist/cjs/contexts/ProductListContext.js +32 -1
  49. package/dist/cjs/contexts/SectionContext.js +53 -1
  50. package/dist/cjs/contexts/ShopContext.js +107 -1
  51. package/dist/cjs/graphql/fragments/analytic.generated.js +6 -2
  52. package/dist/cjs/graphql/fragments/collection-detail.generated.js +6 -2
  53. package/dist/cjs/graphql/fragments/collection-product.generated.js +6 -2
  54. package/dist/cjs/graphql/fragments/collection.generated.js +6 -2
  55. package/dist/cjs/graphql/fragments/custom-code.generated.js +6 -2
  56. package/dist/cjs/graphql/fragments/custom-font.generated.js +6 -2
  57. package/dist/cjs/graphql/fragments/data-seo.generated.js +6 -2
  58. package/dist/cjs/graphql/fragments/media.generated.js +6 -2
  59. package/dist/cjs/graphql/fragments/preview-theme-page.generated.js +39 -0
  60. package/dist/cjs/graphql/fragments/product-little.generated.js +7 -2
  61. package/dist/cjs/graphql/fragments/product-option-value.generated.js +6 -2
  62. package/dist/cjs/graphql/fragments/product-option.generated.js +6 -2
  63. package/dist/cjs/graphql/fragments/product.generated.js +6 -2
  64. package/dist/cjs/graphql/fragments/published-custom-section.generated.js +6 -2
  65. package/dist/cjs/graphql/fragments/published-page-section.generated.js +6 -2
  66. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +10 -28
  67. package/dist/cjs/graphql/fragments/published-theme-style.generated.js +6 -2
  68. package/dist/cjs/graphql/fragments/selected-option.generated.js +6 -2
  69. package/dist/cjs/graphql/fragments/variant.generated.js +6 -2
  70. package/dist/cjs/graphql/mutations/page-view-up.generated.js +8 -4
  71. package/dist/cjs/graphql/queries/articles.generated.js +61 -0
  72. package/dist/cjs/graphql/queries/blogs.generated.js +69 -0
  73. package/dist/cjs/graphql/queries/collection-detail-filter.generated.js +16 -2
  74. package/dist/cjs/graphql/queries/collection.generated.js +14 -2
  75. package/dist/cjs/graphql/queries/collections.generated.js +9 -2
  76. package/dist/cjs/graphql/queries/preview-page.generated.js +16 -8
  77. package/dist/cjs/graphql/queries/product-little-detail.generated.js +11 -2
  78. package/dist/cjs/graphql/queries/product-medias.generated.js +8 -2
  79. package/dist/cjs/graphql/queries/product-value-label.generated.js +6 -2
  80. package/dist/cjs/graphql/queries/product-variants.generated.js +10 -2
  81. package/dist/cjs/graphql/queries/products.generated.js +17 -3
  82. package/dist/cjs/graphql/queries/published-shop-metas.js +15 -0
  83. package/dist/cjs/graphql/queries/published-theme-pages.generated.js +15 -2
  84. package/dist/cjs/graphql/queries/store-property.generated.js +6 -2
  85. package/dist/cjs/graphql-app-api/queries/LibrarySaleFunnelDiscount.generated.js +6 -2
  86. package/dist/cjs/graphql-app-api/queries/LibraryTemplate.generated.js +6 -2
  87. package/dist/cjs/graphql-app-api/queries/SaleFunnelDiscounts.generated.js +6 -2
  88. package/dist/cjs/graphql-app-api/queries/ShopLibraryPage.generated.js +17 -0
  89. package/dist/cjs/graphql-app-api/queries/ThemePage.generated.js +6 -2
  90. package/dist/cjs/helpers/GlobalEvent.js +19 -1
  91. package/dist/cjs/helpers/align.js +19 -0
  92. package/dist/cjs/helpers/animations.js +222 -1
  93. package/dist/cjs/helpers/background.js +235 -1
  94. package/dist/cjs/helpers/borders.js +198 -4
  95. package/dist/cjs/helpers/carousel.js +55 -1
  96. package/dist/cjs/helpers/clone-deep.js +5 -1
  97. package/dist/cjs/helpers/cls.js +16 -1
  98. package/dist/cjs/helpers/colors.js +184 -1
  99. package/dist/cjs/helpers/compose-advance-style.js +327 -1
  100. package/dist/cjs/helpers/constant.js +23 -1
  101. package/dist/cjs/helpers/convert.js +7 -1
  102. package/dist/cjs/helpers/covert-entities-html.js +19 -1
  103. package/dist/cjs/helpers/css-variable.js +7 -1
  104. package/dist/cjs/helpers/email.js +11 -1
  105. package/dist/cjs/helpers/filter-toolbar-preview.js +14 -1
  106. package/dist/cjs/helpers/flatten-connection.js +9 -1
  107. package/dist/cjs/helpers/get-resonsive-value.js +36 -1
  108. package/dist/cjs/helpers/get-shortname.js +92 -1
  109. package/dist/cjs/helpers/icon-list.js +61 -1
  110. package/dist/cjs/helpers/interaction/index.js +134 -0
  111. package/dist/cjs/helpers/is-browser.js +9 -1
  112. package/dist/cjs/helpers/is-defined.js +7 -1
  113. package/dist/cjs/helpers/is-empty-children.js +15 -1
  114. package/dist/cjs/helpers/is-safari.js +9 -1
  115. package/dist/cjs/helpers/layout.js +59 -1
  116. package/dist/cjs/helpers/load-script.js +31 -1
  117. package/dist/cjs/helpers/loop-component.js +16 -0
  118. package/dist/cjs/helpers/make-style.js +163 -1
  119. package/dist/cjs/helpers/normalize-builder-data.js +23 -1
  120. package/dist/cjs/helpers/pascal-to-kebab-case.js +7 -0
  121. package/dist/cjs/helpers/prefetch-queries.js +78 -1
  122. package/dist/cjs/helpers/product.js +48 -1
  123. package/dist/cjs/helpers/queries/get-collection.js +226 -1
  124. package/dist/cjs/helpers/queries/get-collections.js +21 -1
  125. package/dist/cjs/helpers/queries/get-product-by-slug.js +125 -1
  126. package/dist/cjs/helpers/queries/get-product.js +154 -1
  127. package/dist/cjs/helpers/queries/get-products.js +214 -1
  128. package/dist/cjs/helpers/query.js +29 -1
  129. package/dist/cjs/helpers/radius.js +140 -6
  130. package/dist/cjs/helpers/render.js +78 -1
  131. package/dist/cjs/helpers/shadow.js +69 -1
  132. package/dist/cjs/helpers/size.js +206 -4
  133. package/dist/cjs/helpers/spacing.js +43 -1
  134. package/dist/cjs/helpers/third-party/addAppBlockId.js +20 -0
  135. package/dist/cjs/helpers/third-party/appConfig.js +234 -0
  136. package/dist/cjs/helpers/third-party/appSetting.js +661 -0
  137. package/dist/cjs/helpers/third-party/composeAppBlockId.js +11 -0
  138. package/dist/cjs/helpers/third-party/constant.js +43 -0
  139. package/dist/cjs/helpers/third-party/generateAppBlockConfigs.js +34 -0
  140. package/dist/cjs/helpers/third-party/getAppBlockConfig.js +47 -0
  141. package/dist/cjs/helpers/third-party/getAppBlockType.js +12 -0
  142. package/dist/cjs/helpers/third-party/getAppBlocks.js +30 -0
  143. package/dist/cjs/helpers/third-party/mergeBlock.js +19 -0
  144. package/dist/cjs/helpers/third-party/mergeBlockOrder.js +47 -0
  145. package/dist/cjs/helpers/third-party/removeGPAppItems.js +18 -0
  146. package/dist/cjs/helpers/tracking/fpixel.js +28 -1
  147. package/dist/cjs/helpers/tracking/gtag.js +93 -1
  148. package/dist/cjs/helpers/tracking/tiktokpixel.js +17 -1
  149. package/dist/cjs/helpers/typography.js +160 -17
  150. package/dist/cjs/helpers/variant.js +11 -1
  151. package/dist/cjs/hooks/animation/useAnimationActions.js +39 -1
  152. package/dist/cjs/hooks/animation/useAnimationConfig.js +30 -1
  153. package/dist/cjs/hooks/animation/useAnimationPreview.js +31 -1
  154. package/dist/cjs/hooks/animation/useAnimationTarget.js +122 -1
  155. package/dist/cjs/hooks/animation/useApplyAnimation.js +89 -1
  156. package/dist/cjs/hooks/articles/useArticlesQuery.js +33 -1
  157. package/dist/cjs/hooks/cart/use-add-to-cart.js +20 -1
  158. package/dist/cjs/hooks/cart/use-cart-data.js +28 -1
  159. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +20 -1
  160. package/dist/cjs/hooks/cart/use-cart-note-update.js +20 -1
  161. package/dist/cjs/hooks/cart/use-create-cart.js +22 -1
  162. package/dist/cjs/hooks/cart/use-remove-cart-item.js +20 -1
  163. package/dist/cjs/hooks/cart/use-update-cart-item.js +20 -1
  164. package/dist/cjs/hooks/shop/use-collection-query.js +22 -1
  165. package/dist/cjs/hooks/shop/use-collections-query.js +17 -1
  166. package/dist/cjs/hooks/shop/use-product-query.js +22 -1
  167. package/dist/cjs/hooks/shop/use-products-query.js +63 -1
  168. package/dist/cjs/hooks/shop.js +126 -1
  169. package/dist/cjs/hooks/use-current-device.js +30 -1
  170. package/dist/cjs/hooks/use-lazy-video.js +15 -1
  171. package/dist/cjs/hooks/useAnimations.js +29 -1
  172. package/dist/cjs/hooks/useCartId.js +44 -1
  173. package/dist/cjs/hooks/useCartLine.js +11 -1
  174. package/dist/cjs/hooks/useCartUI.js +48 -1
  175. package/dist/cjs/hooks/useCollection.js +9 -1
  176. package/dist/cjs/hooks/useFetchHandle.js +13 -1
  177. package/dist/cjs/hooks/useFormatMoney.js +75 -1
  178. package/dist/cjs/hooks/useInitialSwatchesOptions.js +128 -1
  179. package/dist/cjs/hooks/useInteraction.js +19 -0
  180. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +10 -1
  181. package/dist/cjs/hooks/useLoadScript.js +32 -1
  182. package/dist/cjs/hooks/useMoney.js +84 -1
  183. package/dist/cjs/hooks/usePrevious.js +19 -1
  184. package/dist/cjs/hooks/useProduct.js +245 -1
  185. package/dist/cjs/hooks/useProductList.js +21 -1
  186. package/dist/cjs/hooks/useSuspenseFetch.js +27 -1
  187. package/dist/cjs/hooks/useSwatchesOptions.js +41 -1
  188. package/dist/cjs/hooks/useToolbarPostPurchase.js +89 -1
  189. package/dist/cjs/index.js +416 -1
  190. package/dist/cjs/types/animations.js +49 -1
  191. package/dist/cjs/types/appAPI.js +2 -1
  192. package/dist/cjs/types/custom.js +52 -0
  193. package/dist/cjs/types/global-style.js +15 -1
  194. package/dist/cjs/types/shop.js +2 -1
  195. package/dist/cjs/web-components/src/helpers/styles/constant.js +9 -1
  196. package/dist/esm/components/AddOn.js +14 -1
  197. package/dist/esm/components/ComponentAnimation.js +13 -0
  198. package/dist/esm/components/ComponentToolbarPreview.js +748 -1
  199. package/dist/esm/components/ComponentWrapper.js +57 -1
  200. package/dist/esm/components/ComponentWrapperPreview.js +209 -1
  201. package/dist/esm/components/Empty.js +3 -1
  202. package/dist/esm/components/InteractionSuffix.js +40 -0
  203. package/dist/esm/components/Render.js +71 -1
  204. package/dist/esm/components/Render.liquid.js +307 -17
  205. package/dist/esm/components/RenderBlock.js +50 -1
  206. package/dist/esm/components/RenderCustomCode.js +55 -3
  207. package/dist/esm/components/RenderPreview.js +63 -1
  208. package/dist/esm/components/RenderSection.js +19 -1
  209. package/dist/esm/components/ai-generator/AIContentGenerator.js +250 -1
  210. package/dist/esm/components/ai-generator/AIGenContentLoading.js +83 -1
  211. package/dist/esm/components/ai-generator/components/PickProduct.js +218 -1
  212. package/dist/esm/components/ai-generator/components/ToneAndVoice.js +75 -1
  213. package/dist/esm/components/ai-generator/hooks/useCheckingProductInside.js +45 -0
  214. package/dist/esm/components/ai-generator/hooks/useFlipPopup.js +108 -0
  215. package/dist/esm/components/ai-generator/hooks/useGettingGenerateRequest.js +35 -1
  216. package/dist/esm/components/ai-generator/hooks/useListenEventGenerate.js +68 -1
  217. package/dist/esm/components/ai-generator/icons/AIIcon.js +65 -1
  218. package/dist/esm/components/ai-generator/icons/CloseIcon.js +17 -1
  219. package/dist/esm/components/ai-generator/icons/DropdownIcon.js +34 -1
  220. package/dist/esm/components/ai-generator/icons/SearchIcon.js +19 -1
  221. package/dist/esm/components/ai-generator/icons/ShowMoreIcon.js +19 -1
  222. package/dist/esm/components/ai-generator/icons/UpgradeIcon.js +25 -0
  223. package/dist/esm/components/ai-generator/icons/WarningIcon.js +29 -0
  224. package/dist/esm/components/constant.js +76 -1
  225. package/dist/esm/components/resize/Resize.js +12 -1
  226. package/dist/esm/components/resize/Spacing.js +256 -1
  227. package/dist/esm/components/src/product/helpers/variant-presets.js +54 -1
  228. package/dist/esm/components/theme-section/CreateThemeSection.js +121 -1
  229. package/dist/esm/components/theme-section/ThemeSectionStatus.js +43 -1
  230. package/dist/esm/components/theme-section/ThemeSectionTooltip.js +124 -1
  231. package/dist/esm/components/toolbar/Tooltip.js +24 -1
  232. package/dist/esm/contexts/AddonContext.js +32 -1
  233. package/dist/esm/contexts/ArticleContext.js +36 -1
  234. package/dist/esm/contexts/ArticleListContext.js +27 -1
  235. package/dist/esm/contexts/BuilderComponent.js +31 -1
  236. package/dist/esm/contexts/BuilderContext.js +36 -1
  237. package/dist/esm/contexts/BuilderPreviewContext.js +483 -1
  238. package/dist/esm/contexts/CartLineContext.js +26 -1
  239. package/dist/esm/contexts/CollectionContext.js +35 -1
  240. package/dist/esm/contexts/ModalContext.js +44 -1
  241. package/dist/esm/contexts/PageContext.js +101 -1
  242. package/dist/esm/contexts/ProductContext.js +174 -1
  243. package/dist/esm/contexts/ProductListContext.js +28 -1
  244. package/dist/esm/contexts/SectionContext.js +49 -1
  245. package/dist/esm/contexts/ShopContext.js +104 -1
  246. package/dist/esm/graphql/fragments/analytic.generated.js +4 -2
  247. package/dist/esm/graphql/fragments/collection-detail.generated.js +4 -2
  248. package/dist/esm/graphql/fragments/collection-product.generated.js +4 -2
  249. package/dist/esm/graphql/fragments/collection.generated.js +4 -2
  250. package/dist/esm/graphql/fragments/custom-code.generated.js +4 -2
  251. package/dist/esm/graphql/fragments/custom-font.generated.js +4 -2
  252. package/dist/esm/graphql/fragments/data-seo.generated.js +4 -2
  253. package/dist/esm/graphql/fragments/media.generated.js +4 -2
  254. package/dist/esm/graphql/fragments/preview-theme-page.generated.js +37 -0
  255. package/dist/esm/graphql/fragments/product-little.generated.js +5 -2
  256. package/dist/esm/graphql/fragments/product-option-value.generated.js +4 -2
  257. package/dist/esm/graphql/fragments/product-option.generated.js +4 -2
  258. package/dist/esm/graphql/fragments/product.generated.js +4 -2
  259. package/dist/esm/graphql/fragments/published-custom-section.generated.js +4 -2
  260. package/dist/esm/graphql/fragments/published-page-section.generated.js +4 -2
  261. package/dist/esm/graphql/fragments/published-theme-page.generated.js +8 -28
  262. package/dist/esm/graphql/fragments/published-theme-style.generated.js +4 -2
  263. package/dist/esm/graphql/fragments/selected-option.generated.js +4 -2
  264. package/dist/esm/graphql/fragments/variant.generated.js +4 -2
  265. package/dist/esm/graphql/mutations/page-view-up.generated.js +6 -4
  266. package/dist/esm/graphql/queries/articles.generated.js +59 -0
  267. package/dist/esm/graphql/queries/blogs.generated.js +67 -0
  268. package/dist/esm/graphql/queries/collection-detail-filter.generated.js +22 -10
  269. package/dist/esm/graphql/queries/collection.generated.js +18 -8
  270. package/dist/esm/graphql/queries/collections.generated.js +8 -3
  271. package/dist/esm/graphql/queries/preview-page.generated.js +16 -10
  272. package/dist/esm/graphql/queries/product-little-detail.generated.js +12 -5
  273. package/dist/esm/graphql/queries/product-medias.generated.js +6 -2
  274. package/dist/esm/graphql/queries/product-value-label.generated.js +4 -2
  275. package/dist/esm/graphql/queries/product-variants.generated.js +10 -4
  276. package/dist/esm/graphql/queries/products.generated.js +20 -9
  277. package/dist/esm/graphql/queries/published-shop-metas.js +13 -0
  278. package/dist/esm/graphql/queries/published-theme-pages.generated.js +20 -9
  279. package/dist/esm/graphql/queries/store-property.generated.js +4 -2
  280. package/dist/esm/graphql-app-api/queries/LibrarySaleFunnelDiscount.generated.js +4 -2
  281. package/dist/esm/graphql-app-api/queries/LibraryTemplate.generated.js +4 -2
  282. package/dist/esm/graphql-app-api/queries/SaleFunnelDiscounts.generated.js +4 -2
  283. package/dist/esm/graphql-app-api/queries/ShopLibraryPage.generated.js +15 -0
  284. package/dist/esm/graphql-app-api/queries/ThemePage.generated.js +4 -2
  285. package/dist/esm/helpers/GlobalEvent.js +15 -1
  286. package/dist/esm/helpers/align.js +17 -0
  287. package/dist/esm/helpers/animations.js +220 -1
  288. package/dist/esm/helpers/background.js +226 -1
  289. package/dist/esm/helpers/borders.js +189 -4
  290. package/dist/esm/helpers/carousel.js +51 -1
  291. package/dist/esm/helpers/clone-deep.js +3 -1
  292. package/dist/esm/helpers/cls.js +14 -1
  293. package/dist/esm/helpers/colors.js +169 -1
  294. package/dist/esm/helpers/compose-advance-style.js +319 -1
  295. package/dist/esm/helpers/constant.js +19 -1
  296. package/dist/esm/helpers/convert.js +4 -1
  297. package/dist/esm/helpers/covert-entities-html.js +17 -1
  298. package/dist/esm/helpers/css-variable.js +5 -1
  299. package/dist/esm/helpers/email.js +6 -1
  300. package/dist/esm/helpers/filter-toolbar-preview.js +9 -1
  301. package/dist/esm/helpers/flatten-connection.js +7 -1
  302. package/dist/esm/helpers/get-resonsive-value.js +31 -1
  303. package/dist/esm/helpers/get-shortname.js +90 -1
  304. package/dist/esm/helpers/icon-list.js +58 -1
  305. package/dist/esm/helpers/interaction/index.js +132 -0
  306. package/dist/esm/helpers/is-browser.js +5 -1
  307. package/dist/esm/helpers/is-defined.js +5 -1
  308. package/dist/esm/helpers/is-empty-children.js +10 -1
  309. package/dist/esm/helpers/is-safari.js +5 -1
  310. package/dist/esm/helpers/layout.js +54 -1
  311. package/dist/esm/helpers/load-script.js +29 -1
  312. package/dist/esm/helpers/loop-component.js +14 -0
  313. package/dist/esm/helpers/make-style.js +149 -1
  314. package/dist/esm/helpers/normalize-builder-data.js +21 -1
  315. package/dist/esm/helpers/pascal-to-kebab-case.js +5 -0
  316. package/dist/esm/helpers/prefetch-queries.js +76 -1
  317. package/dist/esm/helpers/product.js +44 -1
  318. package/dist/esm/helpers/queries/get-collection.js +223 -1
  319. package/dist/esm/helpers/queries/get-collections.js +19 -1
  320. package/dist/esm/helpers/queries/get-product-by-slug.js +123 -1
  321. package/dist/esm/helpers/queries/get-product.js +150 -1
  322. package/dist/esm/helpers/queries/get-products.js +210 -1
  323. package/dist/esm/helpers/query.js +25 -1
  324. package/dist/esm/helpers/radius.js +132 -6
  325. package/dist/esm/helpers/render.js +70 -1
  326. package/dist/esm/helpers/shadow.js +63 -1
  327. package/dist/esm/helpers/size.js +192 -4
  328. package/dist/esm/helpers/spacing.js +40 -1
  329. package/dist/esm/helpers/third-party/addAppBlockId.js +18 -0
  330. package/dist/esm/helpers/third-party/appConfig.js +200 -0
  331. package/dist/esm/helpers/third-party/appSetting.js +658 -0
  332. package/dist/esm/helpers/third-party/composeAppBlockId.js +9 -0
  333. package/dist/esm/helpers/third-party/constant.js +40 -0
  334. package/dist/esm/helpers/third-party/generateAppBlockConfigs.js +32 -0
  335. package/dist/esm/helpers/third-party/getAppBlockConfig.js +45 -0
  336. package/dist/esm/helpers/third-party/getAppBlockType.js +10 -0
  337. package/dist/esm/helpers/third-party/getAppBlocks.js +28 -0
  338. package/dist/esm/helpers/third-party/mergeBlock.js +17 -0
  339. package/dist/esm/helpers/third-party/mergeBlockOrder.js +45 -0
  340. package/dist/esm/helpers/third-party/removeGPAppItems.js +15 -0
  341. package/dist/esm/helpers/tracking/fpixel.js +24 -1
  342. package/dist/esm/helpers/tracking/gtag.js +87 -1
  343. package/dist/esm/helpers/tracking/tiktokpixel.js +15 -1
  344. package/dist/esm/helpers/typography.js +149 -17
  345. package/dist/esm/helpers/variant.js +9 -1
  346. package/dist/esm/hooks/animation/useAnimationActions.js +37 -1
  347. package/dist/esm/hooks/animation/useAnimationConfig.js +28 -1
  348. package/dist/esm/hooks/animation/useAnimationPreview.js +29 -1
  349. package/dist/esm/hooks/animation/useAnimationTarget.js +120 -1
  350. package/dist/esm/hooks/animation/useApplyAnimation.js +85 -1
  351. package/dist/esm/hooks/articles/useArticlesQuery.js +30 -1
  352. package/dist/esm/hooks/cart/use-add-to-cart.js +18 -1
  353. package/dist/esm/hooks/cart/use-cart-data.js +26 -1
  354. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +18 -1
  355. package/dist/esm/hooks/cart/use-cart-note-update.js +18 -1
  356. package/dist/esm/hooks/cart/use-create-cart.js +20 -1
  357. package/dist/esm/hooks/cart/use-remove-cart-item.js +18 -1
  358. package/dist/esm/hooks/cart/use-update-cart-item.js +18 -1
  359. package/dist/esm/hooks/shop/use-collection-query.js +20 -1
  360. package/dist/esm/hooks/shop/use-collections-query.js +15 -1
  361. package/dist/esm/hooks/shop/use-product-query.js +20 -1
  362. package/dist/esm/hooks/shop/use-products-query.js +59 -1
  363. package/dist/esm/hooks/shop.js +111 -1
  364. package/dist/esm/hooks/use-current-device.js +28 -1
  365. package/dist/esm/hooks/use-lazy-video.js +13 -1
  366. package/dist/esm/hooks/useAnimations.js +27 -1
  367. package/dist/esm/hooks/useCartId.js +40 -1
  368. package/dist/esm/hooks/useCartLine.js +7 -1
  369. package/dist/esm/hooks/useCartUI.js +44 -1
  370. package/dist/esm/hooks/useCollection.js +7 -1
  371. package/dist/esm/hooks/useFetchHandle.js +11 -1
  372. package/dist/esm/hooks/useFormatMoney.js +71 -1
  373. package/dist/esm/hooks/useInitialSwatchesOptions.js +124 -1
  374. package/dist/esm/hooks/useInteraction.js +17 -0
  375. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +6 -1
  376. package/dist/esm/hooks/useLoadScript.js +28 -1
  377. package/dist/esm/hooks/useMoney.js +80 -1
  378. package/dist/esm/hooks/usePrevious.js +17 -1
  379. package/dist/esm/hooks/useProduct.js +228 -1
  380. package/dist/esm/hooks/useProductList.js +16 -1
  381. package/dist/esm/hooks/useSuspenseFetch.js +23 -1
  382. package/dist/esm/hooks/useSwatchesOptions.js +37 -1
  383. package/dist/esm/hooks/useToolbarPostPurchase.js +87 -1
  384. package/dist/esm/index.js +117 -1
  385. package/dist/esm/types/animations.js +49 -1
  386. package/dist/esm/types/custom.js +52 -0
  387. package/dist/esm/types/global-style.js +12 -1
  388. package/dist/esm/web-components/src/helpers/styles/constant.js +7 -1
  389. package/dist/types/index.d.ts +23183 -17335
  390. package/package.json +5 -3
  391. package/dist/cjs/components/animation/AnimationWrapper.js +0 -1
  392. package/dist/cjs/hooks/animation/animations.js +0 -1
  393. package/dist/cjs/hooks/animation/useLivePageAnimation.js +0 -1
  394. package/dist/esm/components/animation/AnimationWrapper.js +0 -1
  395. package/dist/esm/hooks/animation/animations.js +0 -1
  396. package/dist/esm/hooks/animation/useLivePageAnimation.js +0 -1
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ var appConfig = require('./appConfig.js');
4
+
5
+ const mapShopifyAppMeta = {
6
+ ...appConfig.RechargeSubscriptionsConfig,
7
+ ...appConfig.BonLoyaltyRewardsReferralsConfig,
8
+ ...appConfig.SubifySubscriptionsConfig,
9
+ ...appConfig.SelleasyConfig,
10
+ ...appConfig.LoopSubscriptionsConfig,
11
+ ...appConfig.SkioSubscriptionsYcS20Config,
12
+ ...appConfig.ShopifyFormsConfig,
13
+ ...appConfig.ReviewxpoProductReviewsAppConfig,
14
+ ...appConfig.PumperBundlesVolumeDiscountConfig,
15
+ ...appConfig.UnlimitedBundlesDiscountsConfig,
16
+ ...appConfig.KiteFreeGiftDiscountConfig,
17
+ ...appConfig.FastBundleBundlesDiscountsConfig,
18
+ ...appConfig.SimpleBundlesKitsConfig,
19
+ ...appConfig.EasyBundleBuilderSkailamaConfig,
20
+ ...appConfig.PreorderNowPreOrderPqConfig,
21
+ ...appConfig.FlyBundlesUpsellsFbtConfig,
22
+ ...appConfig.JunipProductReviewsUgcConfig,
23
+ ...appConfig.PreorderNowWodPresaleConfig,
24
+ ...appConfig.YotpoReviewsV3UgcConfig,
25
+ ...appConfig.WhatmoreShoppableVideosreelConfig,
26
+ ...appConfig.ProductOptionsCustomizerConfig,
27
+ ...appConfig.AppointmentBookingCowlendarConfig,
28
+ ...appConfig.BoldSubscriptionsConfig,
29
+ ...appConfig.SproutPlantTreesGrowSalesConfig,
30
+ ...appConfig.InstasellShoppableInstagramConfig,
31
+ ...appConfig.GrowaveConfig,
32
+ ...appConfig.LoloyalLoyaltyReferralsConfig,
33
+ ...appConfig.PowerfulContactFormBuilderConfig,
34
+ ...appConfig.WishlistKingConfig,
35
+ ...appConfig.GloboProductOptionsVariantConfig,
36
+ ...appConfig.KachingBundlesConfig,
37
+ ...appConfig.TrustooConfig,
38
+ ...appConfig.LooxReviewsConfig
39
+ };
40
+ const THIRD_PARTY_APP_BLOCK_ID_PREFIX = 'gp_app';
41
+
42
+ exports.THIRD_PARTY_APP_BLOCK_ID_PREFIX = THIRD_PARTY_APP_BLOCK_ID_PREFIX;
43
+ exports.mapShopifyAppMeta = mapShopifyAppMeta;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var loopComponent = require('../loop-component.js');
4
+ var getAppBlockConfig = require('./getAppBlockConfig.js');
5
+
6
+ const generateAppBlockConfigs = (component)=>{
7
+ const strComponent = JSON.stringify(component) || '';
8
+ if (!strComponent.includes('appBlockId')) return null;
9
+ const configs = [];
10
+ loopComponent.loopComponent(component, (component)=>{
11
+ const settings = component.settings || {};
12
+ const appBlockId = settings?.appBlockId || '';
13
+ if (!appBlockId) return;
14
+ const config = getAppBlockConfig.getAppBlockConfig(component.tag, appBlockId, settings);
15
+ if (!config) return;
16
+ configs.push(config);
17
+ });
18
+ if (!configs.length) return null;
19
+ return {
20
+ newBlocks: extractBlocks(configs),
21
+ newBlockOrder: extractBlockOrder(configs)
22
+ };
23
+ };
24
+ function extractBlocks(array) {
25
+ return array.reduce((acc, item)=>{
26
+ acc[item.key] = item.value;
27
+ return acc;
28
+ }, {});
29
+ }
30
+ function extractBlockOrder(array) {
31
+ return array.map((item)=>item.key);
32
+ }
33
+
34
+ exports.generateAppBlockConfigs = generateAppBlockConfigs;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var appSetting = require('./appSetting.js');
4
+ var getAppBlockType = require('./getAppBlockType.js');
5
+
6
+ const listAppUpdateNewVersion = [
7
+ 'Growave',
8
+ 'Trustoo',
9
+ 'LooxReviews'
10
+ ];
11
+ const listThirdPartyRejectAppBlock = {
12
+ YotpoReviews: {
13
+ conditionToReject: 'settings?.version === "v1"'
14
+ },
15
+ Trustoo: {
16
+ conditionToReject: 'settings?.version === "v1"'
17
+ },
18
+ LooxReviews: {
19
+ conditionToReject: 'settings?.version === "v1"'
20
+ }
21
+ };
22
+ const getAppBlockConfig = (tag, appBlockId, settings)=>{
23
+ if (listThirdPartyRejectAppBlock[tag] && eval(listThirdPartyRejectAppBlock[tag]?.conditionToReject ?? '')) {
24
+ return;
25
+ }
26
+ let widgetType = settings?.widgetType;
27
+ if (listAppUpdateNewVersion.includes(tag)) {
28
+ widgetType = settings?.widgetTypeV2;
29
+ }
30
+ const appBlockType = getAppBlockType.getAppBlockType({
31
+ tag,
32
+ widgetType
33
+ });
34
+ const settingByWidget = appSetting.composeSettingsByWidgetType[tag][settings?.widgetType];
35
+ const appSettings = appSetting.overrideSettings(tag, settingByWidget, settings);
36
+ return {
37
+ key: appBlockId,
38
+ value: {
39
+ type: appBlockType,
40
+ ...settingByWidget && {
41
+ settings: appSettings
42
+ }
43
+ }
44
+ };
45
+ };
46
+
47
+ exports.getAppBlockConfig = getAppBlockConfig;
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var constant = require('./constant.js');
4
+
5
+ const getAppBlockType = ({ tag, widgetType })=>{
6
+ const shopifyAppMeta = constant.mapShopifyAppMeta[tag];
7
+ if (!shopifyAppMeta) return '';
8
+ const { appName, appId } = shopifyAppMeta;
9
+ return `shopify://apps/${appName}/blocks/${widgetType}/${appId}`;
10
+ };
11
+
12
+ exports.getAppBlockType = getAppBlockType;
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var addAppBlockId = require('./addAppBlockId.js');
4
+ var generateAppBlockConfigs = require('./generateAppBlockConfigs.js');
5
+ var mergeBlock = require('./mergeBlock.js');
6
+ var mergeBlockOrder = require('./mergeBlockOrder.js');
7
+ var removeGPAppItems = require('./removeGPAppItems.js');
8
+
9
+ const getAppBlocks = (section)=>{
10
+ const { blocks: currentBlock, block_order: currentBlockOrder } = JSON.parse(section?.appBlocks || '{}');
11
+ const component = JSON.parse(section?.component || '');
12
+ const componentWithAppBlockId = addAppBlockId.addAppBlockId(component);
13
+ const appBlockConfigs = generateAppBlockConfigs.generateAppBlockConfigs(componentWithAppBlockId);
14
+ if (!appBlockConfigs) {
15
+ if (!currentBlock || !currentBlockOrder) return {};
16
+ return {
17
+ blocks: removeGPAppItems.removeAllGPAppItemsFromBlocks(currentBlock),
18
+ block_order: removeGPAppItems.removeAllGPAppItemsFromBlockOrder(currentBlockOrder)
19
+ };
20
+ }
21
+ const { newBlocks, newBlockOrder } = appBlockConfigs;
22
+ const blocks = mergeBlock.mergeBlocks(newBlocks, currentBlock);
23
+ const block_order = mergeBlockOrder.mergeBlockOrder(newBlockOrder, currentBlockOrder);
24
+ return {
25
+ blocks,
26
+ block_order
27
+ };
28
+ };
29
+
30
+ exports.getAppBlocks = getAppBlocks;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ function mergeBlocks(newBlocks, blocks) {
4
+ if (!blocks) return newBlocks;
5
+ const result = {};
6
+ // Add all non-gp_app blocks from the original blocks
7
+ for (const [key, value] of Object.entries(blocks)){
8
+ if (!key.startsWith('gp_app')) {
9
+ result[key] = value;
10
+ }
11
+ }
12
+ // Add all blocks from new-blocks
13
+ for (const [key, value] of Object.entries(newBlocks)){
14
+ result[key] = value;
15
+ }
16
+ return result;
17
+ }
18
+
19
+ exports.mergeBlocks = mergeBlocks;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var constant = require('./constant.js');
4
+
5
+ function isGpAppItem(item) {
6
+ if (!item) return false;
7
+ return item.startsWith(constant.THIRD_PARTY_APP_BLOCK_ID_PREFIX);
8
+ }
9
+ function filterCurrentOrder(currentOrder, newOrderSet) {
10
+ return currentOrder.filter((item)=>!isGpAppItem(item) || newOrderSet.has(item));
11
+ }
12
+ function processNonGpAppItem(item, resultOrder) {
13
+ resultOrder.push(item);
14
+ }
15
+ function processGpAppItems(newOrder, newOrderIndex, resultOrder) {
16
+ while(newOrderIndex < newOrder.length && isGpAppItem(newOrder[newOrderIndex])){
17
+ resultOrder.push(newOrder[newOrderIndex]);
18
+ newOrderIndex++;
19
+ }
20
+ return newOrderIndex;
21
+ }
22
+ function addRemainingGpAppItems(newOrder, startIndex, resultOrder) {
23
+ for(let i = startIndex; i < newOrder.length; i++){
24
+ const item = newOrder[i];
25
+ if (item && isGpAppItem(item)) {
26
+ resultOrder.push(item);
27
+ }
28
+ }
29
+ }
30
+ function mergeBlockOrder(newOrder, currentOrder) {
31
+ if (!currentOrder) return newOrder;
32
+ const newOrderSet = new Set(newOrder);
33
+ const filteredCurrentOrder = filterCurrentOrder(currentOrder, newOrderSet);
34
+ const resultOrder = [];
35
+ let newOrderIndex = 0;
36
+ filteredCurrentOrder.forEach((item)=>{
37
+ if (!isGpAppItem(item)) {
38
+ processNonGpAppItem(item, resultOrder);
39
+ return;
40
+ }
41
+ newOrderIndex = processGpAppItems(newOrder, newOrderIndex, resultOrder);
42
+ });
43
+ addRemainingGpAppItems(newOrder, newOrderIndex, resultOrder);
44
+ return resultOrder;
45
+ }
46
+
47
+ exports.mergeBlockOrder = mergeBlockOrder;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var constant = require('./constant.js');
4
+
5
+ const removeAllGPAppItemsFromBlocks = (blocks)=>{
6
+ for(const key in blocks){
7
+ if (key.startsWith(constant.THIRD_PARTY_APP_BLOCK_ID_PREFIX)) {
8
+ delete blocks[key];
9
+ }
10
+ }
11
+ return blocks;
12
+ };
13
+ const removeAllGPAppItemsFromBlockOrder = (blockOrder)=>{
14
+ return blockOrder.filter((item)=>!item.includes(constant.THIRD_PARTY_APP_BLOCK_ID_PREFIX));
15
+ };
16
+
17
+ exports.removeAllGPAppItemsFromBlockOrder = removeAllGPAppItemsFromBlockOrder;
18
+ exports.removeAllGPAppItemsFromBlocks = removeAllGPAppItemsFromBlocks;
@@ -1 +1,28 @@
1
- "use strict";const pageview=()=>{window.fbq&&window.fbq("track","PageView")},event=(e,t={})=>{window.fbq&&window.fbq("track",e,t)},addToCart=e=>{window.fbq&&window.fbq("track","AddToCart",{content_ids:[e.id],content_name:e.name,content_category:e.category,content_type:"product",value:e.price,currency:e.currency})};exports.addToCart=addToCart,exports.event=event,exports.pageview=pageview;
1
+ 'use strict';
2
+
3
+ const pageview = ()=>{
4
+ if (!window.fbq) return;
5
+ window.fbq('track', 'PageView');
6
+ };
7
+ // https://developers.facebook.com/docs/facebook-pixel/advanced/
8
+ const event = (name, options = {})=>{
9
+ if (!window.fbq) return;
10
+ window.fbq('track', name, options);
11
+ };
12
+ const addToCart = (product)=>{
13
+ if (!window.fbq) return;
14
+ window.fbq('track', 'AddToCart', {
15
+ content_ids: [
16
+ product.id
17
+ ],
18
+ content_name: product.name,
19
+ content_category: product.category,
20
+ content_type: 'product',
21
+ value: product.price,
22
+ currency: product.currency
23
+ });
24
+ };
25
+
26
+ exports.addToCart = addToCart;
27
+ exports.event = event;
28
+ exports.pageview = pageview;
@@ -1 +1,93 @@
1
- "use strict";const pageview=(e,a)=>{window.gtag&&a&&window.gtag("config",a,{page_path:e}),window.ga&&window.ga("send","pageview",e)},addToCart=e=>{window.ga&&e&&(window.ga("ec:addProduct",{...e,id:e.sku,name:"Default Title"===e.variant?e.name:`${e.name} - ${e.variant}`,variant:"Default Title"===e.variant?e.name:e.variant}),window.ga("ec:setAction","add"),window.ga("send","event",{eventCategory:"EnhancedEcommerce",eventAction:"Added Product",nonInteraction:!0}))},productClick=e=>{window.ga&&(ga("ec:addProduct",{id:e.id,name:e.name,category:e.category,brand:e.brand,variant:e.variant}),ga("ec:setAction","click"),ga("send","event",{eventAction:"Click",eventCategory:"Product"}))},productDetail=e=>{e&&window.ga&&(ga("ec:addProduct",{brand:e.brand,category:e.category,id:e.id,name:e.name,variant:e.variant}),ga("ec:setAction","detail"),ga("send","event",{eventAction:"Detail",eventCategory:"Ecommerce",nonInteraction:1}))},removeFromCart=(e,a)=>{e&&window.ga&&(ga("ec:addProduct",{id:e.id,name:e.name,price:a}),ga("ec:setAction","remove"),ga("send","event",{eventAction:"Click",eventCategory:"Remove from cart"}))};exports.addToCart=addToCart,exports.pageview=pageview,exports.productClick=productClick,exports.productDetail=productDetail,exports.removeFromCart=removeFromCart;
1
+ 'use strict';
2
+
3
+ // https://developers.google.com/analytics/devguides/collection/gtagjs/pages
4
+ const pageview = (url, trackingId)=>{
5
+ // GA 4
6
+ if (window.gtag && trackingId) {
7
+ window.gtag('config', trackingId, {
8
+ page_path: url
9
+ });
10
+ }
11
+ // GA 3
12
+ if (window.ga) {
13
+ window.ga('send', 'pageview', url);
14
+ }
15
+ };
16
+ /** Addition to cart events
17
+ * https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#add-remove-cart
18
+ */ const addToCart = (product)=>{
19
+ // GA 3
20
+ if (!window.ga || !product) {
21
+ return;
22
+ }
23
+ window.ga('ec:addProduct', {
24
+ ...product,
25
+ id: product.sku,
26
+ name: product.variant === 'Default Title' ? product.name : `${product.name} - ${product.variant}`,
27
+ variant: product.variant === 'Default Title' ? product.name : product.variant
28
+ });
29
+ window.ga('ec:setAction', 'add');
30
+ window.ga('send', 'event', {
31
+ eventCategory: 'EnhancedEcommerce',
32
+ eventAction: 'Added Product',
33
+ nonInteraction: true
34
+ });
35
+ };
36
+ /** Product clicked event
37
+ * https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#product-click
38
+ */ const productClick = (product)=>{
39
+ if (!window.ga) {
40
+ return;
41
+ }
42
+ ga('ec:addProduct', {
43
+ id: product.id,
44
+ name: product.name,
45
+ category: product.category,
46
+ brand: product.brand,
47
+ variant: product.variant
48
+ });
49
+ ga('ec:setAction', 'click');
50
+ ga('send', 'event', {
51
+ eventAction: 'Click',
52
+ eventCategory: 'Product'
53
+ });
54
+ };
55
+ /** Product viewed event
56
+ * https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#measuring-actvities
57
+ */ const productDetail = (product)=>{
58
+ if (!product || !window.ga) return;
59
+ ga('ec:addProduct', {
60
+ brand: product.brand,
61
+ category: product.category,
62
+ id: product.id,
63
+ name: product.name,
64
+ variant: product.variant
65
+ });
66
+ ga('ec:setAction', 'detail');
67
+ ga('send', 'event', {
68
+ eventAction: 'Detail',
69
+ eventCategory: 'Ecommerce',
70
+ nonInteraction: 1
71
+ });
72
+ };
73
+ /** Removal from cart events
74
+ * https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#add-remove-cart
75
+ */ const removeFromCart = (product, price)=>{
76
+ if (!product || !window.ga) return;
77
+ ga('ec:addProduct', {
78
+ id: product.id,
79
+ name: product.name,
80
+ price
81
+ });
82
+ ga('ec:setAction', 'remove');
83
+ ga('send', 'event', {
84
+ eventAction: 'Click',
85
+ eventCategory: 'Remove from cart'
86
+ });
87
+ };
88
+
89
+ exports.addToCart = addToCart;
90
+ exports.pageview = pageview;
91
+ exports.productClick = productClick;
92
+ exports.productDetail = productDetail;
93
+ exports.removeFromCart = removeFromCart;
@@ -1 +1,17 @@
1
- "use strict";const addToCart=t=>{window?.ttq?.track&&window.ttq.track("AddToCart",{content_id:t.id,content_type:"product",content_name:t.name,quantity:t.quantity,price:t.price,value:(t.price??0)*(t.quantity??0),currency:t.currency})};exports.addToCart=addToCart;
1
+ 'use strict';
2
+
3
+ // @ts-nocheck
4
+ const addToCart = (product)=>{
5
+ if (!window?.ttq?.track) return;
6
+ window.ttq.track('AddToCart', {
7
+ content_id: product.id,
8
+ content_type: 'product',
9
+ content_name: product.name,
10
+ quantity: product.quantity,
11
+ price: product.price,
12
+ value: (product.price ?? 0) * (product.quantity ?? 0),
13
+ currency: product.currency
14
+ });
15
+ };
16
+
17
+ exports.addToCart = addToCart;
@@ -1,17 +1,160 @@
1
- "use strict";var colors=require("./colors.js"),makeStyle=require("./make-style.js");const genTypoClass=e=>`gp-g-${e}`,composeTypographyCss=e=>{let o=e?.custom,{fontFamily:t,fontSize:p,fontStyle:s,fontWeight:a,lineHeight:y,letterSpacing:l}=o?.desktop??{};return`
2
- ${t?`font-family: var(--g-font-${t}, ${t});`:""}
3
- ${p?`font-size: ${p};`:""}
4
- ${s?`font-style: ${s};`:""}
5
- ${a?`font-weight: ${a};`:""}
6
- ${l?`letter-spacing: ${l};`:""}
7
- ${y?`line-height: ${y};`:""}
8
- `},composeTypographyV2Css=(e,o)=>{let t=e?.custom,{fontFamily:p,fontSize:s,fontWeight:a,lineHeight:y,letterSpacing:l}=t??{},r=e?.attrs,{bold:i,italic:n,underline:g,transform:m}=r??{},c=o?"!important":"";return`
9
- ${p?`font-family: var(--g-font-${p}, ${p}) ${c};`:""}
10
- ${s?.desktop?`font-size: ${s?.desktop} ${c};`:""}
11
- ${i?`font-weight: bold ${c};`:a?`font-weight: ${a} ${c};`:""}
12
- ${l?`letter-spacing: ${l} ${c};`:""}
13
- ${y?.desktop?`line-height: ${y?.desktop} ${c};`:""}
14
- ${n?`font-style: italic ${c};`:""}
15
- ${g?`text-decoration-line: underline ${c};`:""}
16
- ${m?`text-transform: ${m} ${c};`:""}
17
- `};function getCustomCSSByDevice(e,o){if(!e||!o)return{};let t="desktop"!==o&&o?`-${o}`:"",{fontFamily:p}=e?.[o]??{};return{[`--size${t}`]:e?.[o]?.fontSize,[`--lh${t}`]:e?.[o]?.lineHeight,[`--fs${t}`]:e?.[o]?.fontStyle,[`--ff${t}`]:p?`var(--g-font-${p}, ${p})`:void 0,[`--weight${t}`]:e?.[o]?.fontWeight,[`--ls${t}`]:e?.[o]?.letterSpacing}}const composeTypography=e=>e?makeStyle.removeNullUndefined({...getCustomCSSByDevice(e,"desktop"),...getCustomCSSByDevice(e,"tablet"),...getCustomCSSByDevice(e,"mobile")}):{},composeTypographyV2=(e,o)=>e?makeStyle.removeNullUndefined({...makeStyle.makeStyle({fs:o?.italic?void 0:e?.fontStyle,ff:e?.fontFamily?`var(--g-font-${e.fontFamily.replace(/ /g,"-")}, '${e.fontFamily}'), ${e.fallbackFontFamily}`:void 0,weight:o?.bold?void 0:e?.fontWeight,ls:e?.letterSpacing}),...makeStyle.makeStyleResponsive("size",e?.fontSize),...makeStyle.makeStyleResponsive("lh",e?.lineHeight)}):{},composeTypographyAttr=e=>e?makeStyle.removeNullUndefined({...makeStyle.makeStyle({fs:e?.italic?"italic":void 0,weight:e?.bold?"bold":void 0,c:colors.getSingleColorVariable(e?.color),tt:e?.transform,tdl:e?.underline?"underline":void 0})}):{},composeTypographyClassName=(e,o)=>e?e?.type&&!e.custom?genTypoClass(e.type):"":o?.type&&genTypoClass(o?.type),composeFallbackTypographyStyle=e=>["heading","heading-1","heading-2","heading-3","heading-4","heading-5","heading-6"].includes(e)?"var(--g-font-heading, heading)":"var(--g-font-body, body)",composeTypographyStyle=(e,o,t)=>{if(e){let o=composeFallbackTypographyStyle(e.type??"heading"),p={...e.custom,fallbackFontFamily:o};return{...composeTypographyV2(p,e.attrs),...!t&&composeTypographyAttr(e.attrs)}}return{...o?.type?{}:composeTypography(o?.custom)}};exports.composeFallbackTypographyStyle=composeFallbackTypographyStyle,exports.composeTypography=composeTypography,exports.composeTypographyAttr=composeTypographyAttr,exports.composeTypographyClassName=composeTypographyClassName,exports.composeTypographyCss=composeTypographyCss,exports.composeTypographyStyle=composeTypographyStyle,exports.composeTypographyV2=composeTypographyV2,exports.composeTypographyV2Css=composeTypographyV2Css,exports.genTypoClass=genTypoClass;
1
+ 'use strict';
2
+
3
+ var colors = require('./colors.js');
4
+ var makeStyle = require('./make-style.js');
5
+
6
+ const genTypoClass = (name)=>{
7
+ return `gp-g-${name}`;
8
+ };
9
+ const composeTypographyCss = (typography)=>{
10
+ const typographyCustom = typography?.custom;
11
+ const { fontFamily, fontSize, fontStyle, fontWeight, lineHeight, letterSpacing } = typographyCustom?.desktop ?? {};
12
+ return `
13
+ ${fontFamily ? `fontFamily: ${composeFontFamilyTypographyV2({
14
+ fontFamily
15
+ })};` : ''}
16
+ ${fontSize ? `font-size: ${fontSize};` : ''}
17
+ ${fontStyle ? `font-style: ${fontStyle};` : ''}
18
+ ${fontWeight ? `font-weight: ${fontWeight};` : ''}
19
+ ${letterSpacing ? `letter-spacing: ${letterSpacing};` : ''}
20
+ ${lineHeight ? `line-height: ${lineHeight};` : ''}
21
+ `;
22
+ };
23
+ const composeTypographyV2Css = (typography, isImportant)=>{
24
+ const typographyCustom = typography?.custom;
25
+ const { fontFamily, fontSize, fontWeight, lineHeight, letterSpacing } = typographyCustom ?? {};
26
+ const typographyAttrs = typography?.attrs;
27
+ const { bold, italic, underline, transform } = typographyAttrs ?? {};
28
+ const composeImportant = isImportant ? '!important' : '';
29
+ return `
30
+ ${fontFamily ? `font-family: ${composeFontFamilyTypographyV2({
31
+ fontFamily,
32
+ type: typography?.type
33
+ })} ${composeImportant}` : ''};
34
+ ${fontSize?.desktop ? `font-size: ${fontSize?.desktop} ${composeImportant}` : ''};
35
+ ${bold ? `font-weight: bold ${composeImportant}` : fontWeight ? `font-weight: ${fontWeight} ${composeImportant}` : ''};
36
+ ${letterSpacing ? `letter-spacing: ${letterSpacing} ${composeImportant}` : ''};
37
+ ${lineHeight?.desktop ? `line-height: ${lineHeight?.desktop} ${composeImportant}` : ''};
38
+ ${italic ? `font-style: italic ${composeImportant}` : ''};
39
+ ${underline ? `text-decoration-line: underline ${composeImportant}` : ''};
40
+ ${transform ? `text-transform: ${transform} ${composeImportant}` : ''};
41
+ `;
42
+ };
43
+ function getCustomCSSByDevice(typography, device) {
44
+ if (!typography || !device) return {};
45
+ const suffix = device === 'desktop' || !device ? '' : `-${device}`;
46
+ const { fontFamily } = typography?.[device] ?? {};
47
+ return {
48
+ [`--size${suffix}`]: typography?.[device]?.fontSize,
49
+ [`--lh${suffix}`]: typography?.[device]?.lineHeight,
50
+ [`--fs${suffix}`]: typography?.[device]?.fontStyle,
51
+ [`--ff${suffix}`]: composeFontFamilyTypographyV2({
52
+ fontFamily
53
+ }),
54
+ [`--weight${suffix}`]: typography?.[device]?.fontWeight,
55
+ [`--ls${suffix}`]: typography?.[device]?.letterSpacing
56
+ };
57
+ }
58
+ const composeTypography = (typography)=>{
59
+ if (!typography) return {};
60
+ return makeStyle.removeNullUndefined({
61
+ ...getCustomCSSByDevice(typography, 'desktop'),
62
+ ...getCustomCSSByDevice(typography, 'tablet'),
63
+ ...getCustomCSSByDevice(typography, 'mobile')
64
+ });
65
+ };
66
+ const composeTypographyV2 = (value, attrs)=>{
67
+ if (!value) return {};
68
+ return makeStyle.removeNullUndefined({
69
+ ...makeStyle.makeStyle({
70
+ fs: !attrs?.italic ? value?.fontStyle : undefined,
71
+ ff: composeFontFamilyTypographyV2(value),
72
+ weight: !attrs?.bold ? value?.fontWeight : undefined,
73
+ ls: value?.letterSpacing
74
+ }),
75
+ ...makeStyle.makeStyleResponsive('size', value?.fontSize),
76
+ ...makeStyle.makeStyleResponsive('lh', value?.lineHeight)
77
+ });
78
+ };
79
+ const composeFontFamilyTypographyV2 = (value)=>{
80
+ const { fontFamily, isCustom, fallbackFontFamily, type } = value || {};
81
+ if (!fontFamily) {
82
+ return isCustom ? fallbackFontFamily : undefined;
83
+ }
84
+ if (typeof fontFamily === 'string') {
85
+ return getFontUsedByTypographyV2({
86
+ fontFamily,
87
+ fallbackFontFamily: value?.fallbackFontFamily || composeFallbackTypographyStyle(type ?? 'heading')
88
+ });
89
+ }
90
+ if (typeof fontFamily === 'object' && typeof fontFamily?.value === 'string') {
91
+ switch(fontFamily.type){
92
+ case 'theme':
93
+ return `var(${fontFamily?.value}), var(--g-font-body)`;
94
+ default:
95
+ return getFontUsedByTypographyV2({
96
+ fontFamily: fontFamily.value,
97
+ fallbackFontFamily: value?.fallbackFontFamily || composeFallbackTypographyStyle(type ?? 'heading')
98
+ });
99
+ }
100
+ }
101
+ return;
102
+ };
103
+ const getFontUsedByTypographyV2 = ({ fontFamily, fallbackFontFamily })=>{
104
+ if (fontFamily) {
105
+ return `var(--g-font-${fontFamily?.replace(/ /g, '-')}, '${fontFamily}'), ${fallbackFontFamily}`;
106
+ }
107
+ return;
108
+ };
109
+ const composeTypographyAttr = (attrs)=>{
110
+ if (!attrs) return {};
111
+ return makeStyle.removeNullUndefined({
112
+ ...makeStyle.makeStyle({
113
+ fs: attrs?.italic ? 'italic' : undefined,
114
+ weight: attrs?.bold ? 'bold' : undefined,
115
+ c: colors.getSingleColorVariable(attrs?.color),
116
+ tt: attrs?.transform,
117
+ tdl: attrs?.underline ? 'underline' : undefined
118
+ })
119
+ });
120
+ };
121
+ const composeTypographyClassName = (typo, typography)=>{
122
+ return typo ? typo?.type && !isCustomTypo(typo.custom) ? genTypoClass(typo.type) : '' : typography?.type && genTypoClass(typography?.type);
123
+ };
124
+ const composeFallbackTypographyStyle = (tag)=>{
125
+ if (tag.toLocaleLowerCase().includes('heading')) {
126
+ return 'var(--g-font-heading, heading)';
127
+ }
128
+ return 'var(--g-font-body, body)';
129
+ };
130
+ const composeTypographyStyle = (typo, typography, disableAttr)=>{
131
+ if (typo) {
132
+ const fallbackFontFamily = composeFallbackTypographyStyle(typo.type ?? 'heading');
133
+ const customTypo = {
134
+ ...typo.custom,
135
+ fallbackFontFamily: fallbackFontFamily,
136
+ isCustom: isCustomTypo(typo.custom)
137
+ };
138
+ return {
139
+ ...composeTypographyV2(customTypo, typo.attrs),
140
+ ...!disableAttr && composeTypographyAttr(typo.attrs)
141
+ };
142
+ }
143
+ return {
144
+ ...!typography?.type ? composeTypography(typography?.custom) : {}
145
+ };
146
+ };
147
+ const isCustomTypo = (customTypo)=>{
148
+ return customTypo && Object.keys(customTypo).length > 1 || customTypo && Object.keys(customTypo).length === 1 && !customTypo.fontSize;
149
+ };
150
+
151
+ exports.composeFallbackTypographyStyle = composeFallbackTypographyStyle;
152
+ exports.composeFontFamilyTypographyV2 = composeFontFamilyTypographyV2;
153
+ exports.composeTypography = composeTypography;
154
+ exports.composeTypographyAttr = composeTypographyAttr;
155
+ exports.composeTypographyClassName = composeTypographyClassName;
156
+ exports.composeTypographyCss = composeTypographyCss;
157
+ exports.composeTypographyStyle = composeTypographyStyle;
158
+ exports.composeTypographyV2 = composeTypographyV2;
159
+ exports.composeTypographyV2Css = composeTypographyV2Css;
160
+ exports.genTypoClass = genTypoClass;
@@ -1 +1,11 @@
1
- "use strict";function checkInStock(t,n){return!!t&&(t?.inventoryQuantity&&t.inventoryQuantity>0&&!isDefaultVariant(t,n)||!t?.manageInventory||"CONTINUE"===t.inventoryPolicy)}function isDefaultVariant(t,n){return(n?.[0]?.selectedOptions.length??0)>1&&t?.title==="Default Title"}exports.checkInStock=checkInStock;
1
+ 'use strict';
2
+
3
+ function checkInStock(variant, product) {
4
+ if (!variant) return false;
5
+ return variant?.inventoryQuantity && variant.inventoryQuantity > 0 && !isDefaultVariant(variant, product) || !variant?.manageInventory || variant.inventoryPolicy === 'CONTINUE';
6
+ }
7
+ function isDefaultVariant(variant, product) {
8
+ return Boolean(variant?.title === 'Default Title' && product?.options?.some((option)=>option.values.length > 1));
9
+ }
10
+
11
+ exports.checkInStock = checkInStock;
@@ -1 +1,39 @@
1
- "use strict";var react=require("react");const useAnimationActions=()=>{let e=react.useRef(),r=react.useCallback(r=>{e.current=r},[e]),t=react.useCallback(()=>{if(e.current)for(let r of e.current)r.play()},[]),c=react.useCallback(()=>{if(e.current)for(let r of e.current)r.cancel()},[]),n=react.useCallback(r=>{if(e.current)for(let t of e.current)t.onfinish=r},[]);return{currentAnimation:e.current,setAnimation:r,playAnimation:t,cancelAnimation:c,setAnimationOnFinish:n}};exports.useAnimationActions=useAnimationActions;
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+
5
+ const useAnimationActions = ()=>{
6
+ const listAnimations = react.useRef();
7
+ const setAnimation = react.useCallback((newListAnimations)=>{
8
+ listAnimations.current = newListAnimations;
9
+ }, [
10
+ listAnimations
11
+ ]);
12
+ const playAnimation = react.useCallback(()=>{
13
+ if (!listAnimations.current) return;
14
+ for (const animation of listAnimations.current){
15
+ animation.play();
16
+ }
17
+ }, []);
18
+ const cancelAnimation = react.useCallback(()=>{
19
+ if (!listAnimations.current) return;
20
+ for (const animation of listAnimations.current){
21
+ animation.cancel();
22
+ }
23
+ }, []);
24
+ const setAnimationOnFinish = react.useCallback((onFinish)=>{
25
+ if (!listAnimations.current) return;
26
+ for (const animation of listAnimations.current){
27
+ animation.onfinish = onFinish;
28
+ }
29
+ }, []);
30
+ return {
31
+ currentAnimation: listAnimations.current,
32
+ setAnimation,
33
+ playAnimation,
34
+ cancelAnimation,
35
+ setAnimationOnFinish
36
+ };
37
+ };
38
+
39
+ exports.useAnimationActions = useAnimationActions;