@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
@@ -1 +1,120 @@
1
- import{useRef as t,useCallback as e}from"react";import{useAnimationConfig as r}from"./useAnimationConfig.js";let SPACING_ACTIVE_ATTRIBUTE="data-spacing-margin-bottom-active",TOOLBAR_ACTIVE_ATTRIBUTE="data-toolbar-active",OUTLINE_ACTIVE_ATTRIBUTE="data-outline-active",TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE="data-toolbar-add-active",useAnimationTarget=a=>{let{isEnabledAnimation:o}=r(a),T=a.tag,u=a.uid,i=t(null),A=t([]),n=t=>{if(A.current)for(let e of A.current)t?(e.toolbar?.setAttribute(TOOLBAR_ACTIVE_ATTRIBUTE,"true"),e.outline?.setAttribute(OUTLINE_ACTIVE_ATTRIBUTE,"true"),e.spacing?.setAttribute(SPACING_ACTIVE_ATTRIBUTE,"true"),e.addSectionTop?.setAttribute(TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE,"true"),e.addSectionBottom?.setAttribute(TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE,"true")):(e.toolbar?.removeAttribute(TOOLBAR_ACTIVE_ATTRIBUTE),e.outline?.removeAttribute(OUTLINE_ACTIVE_ATTRIBUTE),e.spacing?.removeAttribute(SPACING_ACTIVE_ATTRIBUTE),e.addSectionTop?.removeAttribute(TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE),e.addSectionBottom?.removeAttribute(TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE))},c=t=>{let e=t.querySelector("[data-toolbar-add-top]"),r=t.querySelector("[data-toolbar-add-bottom]"),a=Array.from(t.children),o=a.find(t=>null!==t.getAttribute("data-toolbar")),T=a.find(t=>null!==t.getAttribute("data-outline"));return{sectionToolbar:o,sectionOutline:T,sectionAddTop:e,sectionAddBottom:r}},l=e(t=>t.reduce((t,e)=>{let r=null,a=null,o=e,u=e.querySelector("[data-toolbar][data-toolbar-active]"),i=e.querySelector("[data-outline][data-outline-active]"),A=e.querySelector("[data-spacing] [data-spacing-margin-bottom]");switch(T){case"Button":case"SubmitButton":case"ProductButton":case"DynamicCheckout":o=e.querySelector(".gp-button-base");break;case"ProductProperties":o=e.querySelector("input");break;case"Icon":o=e.firstElementChild;break;case"ProductTag":o=e?.children[0]?.children[0];break;case"Section":{o=e;let{sectionOutline:t,sectionToolbar:T,sectionAddTop:A,sectionAddBottom:n}=c(o);i=t,u=T,r=A,a=n;break}default:o=e}let n={target:o,toolbar:u,outline:i,spacing:A,addSectionTop:r,addSectionBottom:a};return t.push(n),t},[]),[T]),d=e(()=>{if(!o)return;i.current||(i.current=document.querySelectorAll(`[data-uid="${u}"]`));let t=Array.from(i.current);if(!t.length)return;let e=l(t);A.current=e},[u,l,o]);return{targetObjects:A,setToolbarActive:n,initListOfTargets:d}};export{useAnimationTarget};
1
+ import { useRef, useCallback } from 'react';
2
+ import { useAnimationConfig } from './useAnimationConfig.js';
3
+
4
+ const SPACING_ACTIVE_ATTRIBUTE = 'data-spacing-margin-bottom-active';
5
+ const TOOLBAR_ACTIVE_ATTRIBUTE = 'data-toolbar-active';
6
+ const OUTLINE_ACTIVE_ATTRIBUTE = 'data-outline-active';
7
+ const TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE = 'data-toolbar-add-active';
8
+ const useAnimationTarget = (props)=>{
9
+ const { isEnabledAnimation } = useAnimationConfig(props);
10
+ const componentTag = props.tag;
11
+ const componentUid = props.uid;
12
+ const targets = useRef(null);
13
+ const targetObjects = useRef([]);
14
+ const setToolbarActive = (isActive)=>{
15
+ if (!targetObjects.current) return;
16
+ for (const item of targetObjects.current){
17
+ if (isActive) {
18
+ item.toolbar?.setAttribute(TOOLBAR_ACTIVE_ATTRIBUTE, 'true');
19
+ item.outline?.setAttribute(OUTLINE_ACTIVE_ATTRIBUTE, 'true');
20
+ item.spacing?.setAttribute(SPACING_ACTIVE_ATTRIBUTE, 'true');
21
+ item.addSectionTop?.setAttribute(TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE, 'true');
22
+ item.addSectionBottom?.setAttribute(TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE, 'true');
23
+ } else {
24
+ item.toolbar?.removeAttribute(TOOLBAR_ACTIVE_ATTRIBUTE);
25
+ item.outline?.removeAttribute(OUTLINE_ACTIVE_ATTRIBUTE);
26
+ item.spacing?.removeAttribute(SPACING_ACTIVE_ATTRIBUTE);
27
+ item.addSectionTop?.removeAttribute(TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE);
28
+ item.addSectionBottom?.removeAttribute(TOOLBAR_ADD_SECTION_ACTIVE_ATTRIBUTE);
29
+ }
30
+ }
31
+ };
32
+ const getSectionProperties = (target)=>{
33
+ const sectionAddTop = target.querySelector('[data-toolbar-add-top]');
34
+ const sectionAddBottom = target.querySelector('[data-toolbar-add-bottom]');
35
+ const sectionChild = Array.from(target.children);
36
+ const sectionToolbar = sectionChild.find((child)=>child.getAttribute('data-toolbar') !== null);
37
+ const sectionOutline = sectionChild.find((child)=>child.getAttribute('data-outline') !== null);
38
+ return {
39
+ sectionToolbar,
40
+ sectionOutline,
41
+ sectionAddTop,
42
+ sectionAddBottom
43
+ };
44
+ };
45
+ const getUpdatedTargetObjects = useCallback((targets)=>{
46
+ return targets.reduce((accumulator, $rootTarget)=>{
47
+ let addSectionTop = null;
48
+ let addSectionBottom = null;
49
+ let target = $rootTarget;
50
+ let toolbar = $rootTarget.querySelector('[data-toolbar][data-toolbar-active]');
51
+ let outline = $rootTarget.querySelector('[data-outline][data-outline-active]');
52
+ const spacing = $rootTarget.querySelector('[data-spacing] [data-spacing-margin-bottom]');
53
+ switch(componentTag){
54
+ case 'Button':
55
+ case 'SubmitButton':
56
+ case 'ProductButton':
57
+ case 'DynamicCheckout':
58
+ target = $rootTarget.querySelector('.gp-button-base');
59
+ break;
60
+ case 'ProductProperties':
61
+ target = $rootTarget.querySelector('input');
62
+ break;
63
+ case 'Icon':
64
+ target = $rootTarget.firstElementChild;
65
+ break;
66
+ case 'ProductTag':
67
+ target = $rootTarget?.children[0]?.children[0];
68
+ break;
69
+ case 'Section':
70
+ {
71
+ target = $rootTarget;
72
+ const { sectionOutline, sectionToolbar, sectionAddTop, sectionAddBottom } = getSectionProperties(target);
73
+ outline = sectionOutline;
74
+ toolbar = sectionToolbar;
75
+ addSectionTop = sectionAddTop;
76
+ addSectionBottom = sectionAddBottom;
77
+ break;
78
+ }
79
+ default:
80
+ target = $rootTarget;
81
+ }
82
+ const newTargetObject = {
83
+ target,
84
+ toolbar,
85
+ outline,
86
+ spacing,
87
+ addSectionTop,
88
+ addSectionBottom
89
+ };
90
+ accumulator.push(newTargetObject);
91
+ return accumulator;
92
+ }, []);
93
+ }, [
94
+ componentTag
95
+ ]);
96
+ const initListOfTargets = useCallback(()=>{
97
+ if (!isEnabledAnimation) return;
98
+ if (!targets.current) {
99
+ const $storefront = document.body.querySelector('#storefront');
100
+ if ($storefront) {
101
+ targets.current = $storefront.querySelectorAll(`[data-uid="${componentUid}"]`);
102
+ }
103
+ }
104
+ const targetsArray = Array.from(targets.current || []);
105
+ if (!targetsArray.length) return;
106
+ const updatedTargetObjects = getUpdatedTargetObjects(targetsArray);
107
+ targetObjects.current = updatedTargetObjects;
108
+ }, [
109
+ componentUid,
110
+ getUpdatedTargetObjects,
111
+ isEnabledAnimation
112
+ ]);
113
+ return {
114
+ targetObjects,
115
+ setToolbarActive,
116
+ initListOfTargets
117
+ };
118
+ };
119
+
120
+ export { useAnimationTarget };
@@ -1 +1,85 @@
1
- import{useCallback as t,useEffect as i}from"react";import{useAnimations as e}from"../useAnimations.js";import{useAnimationTarget as n}from"./useAnimationTarget.js";import{useAnimationConfig as o}from"./useAnimationConfig.js";import{useAnimationActions as r}from"./useAnimationActions.js";import{useAnimationPreview as m}from"./useAnimationPreview.js";import{AnimationType as a}from"../../types/animations.js";let useApplyAnimation=({props:s})=>{let{uid:p}=s,u=e(),{initListOfTargets:w,targetObjects:d,setToolbarActive:f}=n(s),{isEnabledAnimation:A,getAnimationConfig:v}=o(s),{setAnimation:l,cancelAnimation:g,playAnimation:j,setAnimationOnFinish:c}=r(),{previewAnimation:E}=m({props:s,playAnimation:j,cancelAnimation:g,setAnimationOnFinish:c,setToolbarActive:f}),L=t(({target:t,setting:i,type:e})=>u[e](t,i),[u]),y=t(()=>{let{type:t,setting:i}=v();if(!t||t===a.None||!d.current.length){g();return}let e=d.current.map(e=>L({type:t,setting:i,target:e.target}));g(),l(e)},[v,d,g,l,L]);i(()=>(A?(w(),y()):g(),()=>{g()}),[p,y,g,A,w]),i(()=>(window.addEventListener("preview-animation",E),()=>{window.removeEventListener("preview-animation",E)}),[E]),i(()=>(window.addEventListener("init-animation-target",w),()=>{window.removeEventListener("init-animation-target",w)}),[w])};export{useApplyAnimation as default};
1
+ import { useCallback, useEffect } from 'react';
2
+ import { useAnimations } from '../useAnimations.js';
3
+ import { useAnimationTarget } from './useAnimationTarget.js';
4
+ import { useAnimationConfig } from './useAnimationConfig.js';
5
+ import { useAnimationActions } from './useAnimationActions.js';
6
+ import { useAnimationPreview } from './useAnimationPreview.js';
7
+ import '../../types/custom.js';
8
+ import { AnimationType } from '../../types/animations.js';
9
+
10
+ const useApplyAnimation = ({ props })=>{
11
+ const currentProps = props;
12
+ const { uid: componentUid } = currentProps;
13
+ const animation = useAnimations();
14
+ const { initListOfTargets, targetObjects, setToolbarActive } = useAnimationTarget(currentProps);
15
+ const { isEnabledAnimation, getAnimationConfig } = useAnimationConfig(currentProps);
16
+ const { setAnimation, cancelAnimation, playAnimation, setAnimationOnFinish } = useAnimationActions();
17
+ const { previewAnimation } = useAnimationPreview({
18
+ props: currentProps,
19
+ playAnimation,
20
+ cancelAnimation,
21
+ setAnimationOnFinish,
22
+ setToolbarActive
23
+ });
24
+ const generateAnimation = useCallback(({ target, setting, type, reverse })=>{
25
+ return animation[type](target, setting, reverse);
26
+ }, [
27
+ animation
28
+ ]);
29
+ const initListAnimations = useCallback(()=>{
30
+ const { type, setting, reverse } = getAnimationConfig();
31
+ if (!type || type === AnimationType.None || !targetObjects.current.length) {
32
+ cancelAnimation();
33
+ return;
34
+ }
35
+ const listAnimations = targetObjects.current.map((item)=>generateAnimation({
36
+ type,
37
+ setting,
38
+ target: item.target,
39
+ reverse
40
+ }));
41
+ cancelAnimation();
42
+ setAnimation(listAnimations);
43
+ }, [
44
+ getAnimationConfig,
45
+ targetObjects,
46
+ cancelAnimation,
47
+ setAnimation,
48
+ generateAnimation
49
+ ]);
50
+ useEffect(()=>{
51
+ if (isEnabledAnimation) {
52
+ initListOfTargets();
53
+ initListAnimations();
54
+ } else {
55
+ cancelAnimation();
56
+ }
57
+ return ()=>{
58
+ cancelAnimation();
59
+ };
60
+ }, [
61
+ componentUid,
62
+ initListAnimations,
63
+ cancelAnimation,
64
+ isEnabledAnimation,
65
+ initListOfTargets
66
+ ]);
67
+ useEffect(()=>{
68
+ window.addEventListener('preview-animation', previewAnimation);
69
+ return ()=>{
70
+ window.removeEventListener('preview-animation', previewAnimation);
71
+ };
72
+ }, [
73
+ previewAnimation
74
+ ]);
75
+ useEffect(()=>{
76
+ window.addEventListener('init-animation-target', initListOfTargets);
77
+ return ()=>{
78
+ window.removeEventListener('init-animation-target', initListOfTargets);
79
+ };
80
+ }, [
81
+ initListOfTargets
82
+ ]);
83
+ };
84
+
85
+ export { useApplyAnimation as default };
@@ -1 +1,30 @@
1
- let mock=[{baseID:"gid://shopify/OnlineStoreBlog/592066740457",id:592066740457,title:"Blog post might appear in a search engine listing",created_at:"2024-05-09T04:06:12-04:00",body_html:'<span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span>',blog_id:91970044137,author:"Dev Team",user_id:90371653865,published_at:"2024-05-09T04:06:12-04:00",updated_at:"2024-05-09T04:06:13-04:00",summary_html:"",template_suffix:"",handle:"blog-post-might-appear-in-a-search-engine-listing",tags:"vintage",admin_graphql_api_id:"gid://shopify/OnlineStoreArticle/592066740457",image:{created_at:"2024-05-09T04:06:12-04:00",alt:"",width:1073,height:719,src:"https://cdn.shopify.com/s/files/1/0692/6562/1225/articles/Screenshot_2.jpg?v=1715241973"}},{baseID:"gid://shopify/OnlineStoreBlog/592066707689",id:592066707689,title:"ar on your home page or blog.",created_at:"2024-05-09T04:05:26-04:00",body_html:'<span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span>',blog_id:91970044137,author:"Dev Team",user_id:90371653865,published_at:"2024-05-09T04:05:25-04:00",updated_at:"2024-05-09T05:35:29-04:00",summary_html:"",template_suffix:"",handle:"ar-on-your-home-page-or-blog",tags:"cotton, vintage",admin_graphql_api_id:"gid://shopify/OnlineStoreArticle/592066707689",image:{created_at:"2024-05-09T04:05:26-04:00",alt:"",width:1080,height:719,src:"https://cdn.shopify.com/s/files/1/0692/6562/1225/articles/Screenshot_1.jpg?v=1715241926"}},{baseID:"gid://shopify/OnlineStoreBlog/592066674921",id:592066674921,title:"Add a summary of the post.",created_at:"2024-05-09T04:04:44-04:00",body_html:'<span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span><span data-mce-fragment="1">Add a title and description to see how this Blog post might appear in a search engine listing</span>',blog_id:91970044137,author:"Dev Team",user_id:90371653865,published_at:"2024-05-09T04:04:44-04:00",updated_at:"2024-05-09T04:04:45-04:00",summary_html:"",template_suffix:"",handle:"add-a-summary-of-the-post",tags:"",admin_graphql_api_id:"gid://shopify/OnlineStoreArticle/592066674921",image:{created_at:"2024-05-09T04:04:44-04:00",alt:"",width:1086,height:718,src:"https://cdn.shopify.com/s/files/1/0692/6562/1225/articles/Screenshot_7.jpg?v=1715241885"}},{baseID:"gid://shopify/OnlineStoreBlog/592058777833",id:592058777833,title:"Article Page - May 7, 10:47:14",created_at:"2024-05-06T23:47:59-04:00",body_html:'<h2>\n<span>Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span>\n</h2>',blog_id:91970044137,author:"GemPages",user_id:null,published_at:"2024-05-06T23:47:59-04:00",updated_at:"2024-05-09T04:06:48-04:00",summary_html:"",template_suffix:"gp-template-512584275137135821",handle:"article-page-may-7-10-47-14",tags:"vintage",admin_graphql_api_id:"gid://shopify/OnlineStoreArticle/592058777833",image:{created_at:"2024-05-09T04:06:41-04:00",alt:"",width:578,height:585,src:"https://cdn.shopify.com/s/files/1/0692/6562/1225/articles/Screenshot_3.png?v=1715242002"}},{baseID:"gid://shopify/OnlineStoreBlog/592058679529",id:592058679529,title:"Blog about your latest products or deals",created_at:"2024-05-06T22:36:55-04:00",body_html:'<span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span><span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span>',blog_id:91970044137,author:"Dev Team",user_id:90371653865,published_at:"2024-05-06T22:36:54-04:00",updated_at:"2024-05-09T03:46:39-04:00",summary_html:'<span data-mce-fragment="1">Add a summary of the post to appear on your home page or blog.</span>',template_suffix:"gp-template-512584275137135821",handle:"blog-about-your-latest-products-or-deals",tags:"",admin_graphql_api_id:"gid://shopify/OnlineStoreArticle/592058679529",image:{created_at:"2024-05-06T22:36:55-04:00",alt:"",width:497,height:618,src:"https://cdn.shopify.com/s/files/1/0692/6562/1225/articles/Screenshot_3.jpg?v=1715049415"}}],useArticlesQuery=()=>mock,useBlogsQuery=()=>({blogs:{edges:[{node:{id:"511006979737518962",title:"News",baseID:"gid://shopify/OnlineStoreBlog/91970044137",tags:[],handle:"news",descriptionMeta:"",description:"",titleMeta:"",templateSuffix:"",platform:"SHOPIFY"}}]}});export{useArticlesQuery,useBlogsQuery};
1
+ import { ArticlesDocument } from '../../graphql/queries/articles.generated.js';
2
+ import { useFetchHandle } from '../useFetchHandle.js';
3
+ import useSWR from 'swr';
4
+ import { BlogsDocument } from '../../graphql/queries/blogs.generated.js';
5
+
6
+ const useArticlesQuery = (variables, options)=>{
7
+ const fetcher = useFetchHandle();
8
+ const fetchArticles = ()=>fetcher([
9
+ ArticlesDocument,
10
+ variables ?? {}
11
+ ]);
12
+ return useSWR(variables ? [
13
+ 'query/articles',
14
+ variables
15
+ ] : null, fetchArticles, options);
16
+ };
17
+ const useBlogsQuery = (variables, options)=>{
18
+ const fetcher = useFetchHandle();
19
+ //@ts-ignore
20
+ const fetchBlogs = ()=>fetcher([
21
+ BlogsDocument,
22
+ variables ?? {}
23
+ ]);
24
+ return useSWR(variables ? [
25
+ 'query/blogs',
26
+ variables
27
+ ] : null, fetchBlogs, options);
28
+ };
29
+
30
+ export { useArticlesQuery, useBlogsQuery };
@@ -1 +1,18 @@
1
- import{addToCartOperation as r}from"@gem-sdk/adapter-shopify";import{useSWRConfig as o}from"swr";import t from"swr/mutation";import{useStoreFront as s}from"../shop.js";let useAddToCart=e=>{let m=s(),{mutate:a}=o();return t("add-to-cart",(o,{arg:t})=>r(m)(t),{...e,onSuccess:(r,o,t)=>{a("cart",r,!1),e?.onSuccess?.(r,o,t)}})};export{useAddToCart};
1
+ import { addToCartOperation } from '@gem-sdk/adapter-shopify';
2
+ import { useSWRConfig } from 'swr';
3
+ import useSWRMutation from 'swr/mutation';
4
+ import { useStoreFront } from '../shop.js';
5
+
6
+ const useAddToCart = (options)=>{
7
+ const shop = useStoreFront();
8
+ const { mutate } = useSWRConfig();
9
+ return useSWRMutation('add-to-cart', (_, { arg })=>addToCartOperation(shop)(arg), {
10
+ ...options,
11
+ onSuccess: (result, key, config)=>{
12
+ mutate('cart', result, false);
13
+ options?.onSuccess?.(result, key, config);
14
+ }
15
+ });
16
+ };
17
+
18
+ export { useAddToCart };
@@ -1 +1,26 @@
1
- import{getCartOperation as r}from"@gem-sdk/adapter-shopify";import e from"swr";import{useStoreFront as t}from"../shop.js";import a from"../useCartId.js";let useCartData=o=>{let{cartId:s,clearCartId:u}=a(),p=t();return e(s?"cart":null,()=>r(p)({cartId:s}),{revalidateOnMount:!0,revalidateOnFocus:!0,keepPreviousData:!1,dedupingInterval:2e3,...o,onSuccess(r,e,t){r||u(),o?.onSuccess?.(r,e,t)}})};export{useCartData};
1
+ import { getCartOperation } from '@gem-sdk/adapter-shopify';
2
+ import useSWR from 'swr';
3
+ import { useStoreFront } from '../shop.js';
4
+ import useCartId from '../useCartId.js';
5
+
6
+ const useCartData = (options)=>{
7
+ const { cartId, clearCartId } = useCartId();
8
+ const shop = useStoreFront();
9
+ return useSWR(cartId ? 'cart' : null, ()=>getCartOperation(shop)({
10
+ cartId: cartId
11
+ }), {
12
+ revalidateOnMount: true,
13
+ revalidateOnFocus: true,
14
+ keepPreviousData: false,
15
+ dedupingInterval: 2000,
16
+ ...options,
17
+ onSuccess (data, key, config) {
18
+ if (!data) {
19
+ clearCartId();
20
+ }
21
+ options?.onSuccess?.(data, key, config);
22
+ }
23
+ });
24
+ };
25
+
26
+ export { useCartData };
@@ -1 +1,18 @@
1
- import{cartDiscountCodesUpdateOperation as t}from"@gem-sdk/adapter-shopify";import{useSWRConfig as o}from"swr";import r from"swr/mutation";import{useStoreFront as s}from"../shop.js";let useCartDiscountCodesUpdate=e=>{let p=s(),{mutate:a}=o();return r("cart-discount-codes-update",(o,{arg:r})=>t(p)(r),{...e,onSuccess:(t,o,r)=>{a("cart",t,!1),e?.onSuccess?.(t,o,r)}})};export{useCartDiscountCodesUpdate};
1
+ import { cartDiscountCodesUpdateOperation } from '@gem-sdk/adapter-shopify';
2
+ import { useSWRConfig } from 'swr';
3
+ import useSWRMutation from 'swr/mutation';
4
+ import { useStoreFront } from '../shop.js';
5
+
6
+ const useCartDiscountCodesUpdate = (options)=>{
7
+ const shop = useStoreFront();
8
+ const { mutate } = useSWRConfig();
9
+ return useSWRMutation('cart-discount-codes-update', (_, { arg })=>cartDiscountCodesUpdateOperation(shop)(arg), {
10
+ ...options,
11
+ onSuccess: (result, key, config)=>{
12
+ mutate('cart', result, false);
13
+ options?.onSuccess?.(result, key, config);
14
+ }
15
+ });
16
+ };
17
+
18
+ export { useCartDiscountCodesUpdate };
@@ -1 +1,18 @@
1
- import{cartNoteUpdateOperation as t}from"@gem-sdk/adapter-shopify";import{useSWRConfig as r}from"swr";import o from"swr/mutation";import{useStoreFront as e}from"../shop.js";let useCartNoteUpdate=s=>{let p=e(),{mutate:a}=r();return o("cart-note-update",(r,{arg:o})=>t(p)(o),{...s,onSuccess:(t,r,o)=>{a("cart",t,!1),s?.onSuccess?.(t,r,o)}})};export{useCartNoteUpdate};
1
+ import { cartNoteUpdateOperation } from '@gem-sdk/adapter-shopify';
2
+ import { useSWRConfig } from 'swr';
3
+ import useSWRMutation from 'swr/mutation';
4
+ import { useStoreFront } from '../shop.js';
5
+
6
+ const useCartNoteUpdate = (options)=>{
7
+ const shop = useStoreFront();
8
+ const { mutate } = useSWRConfig();
9
+ return useSWRMutation('cart-note-update', (_, { arg })=>cartNoteUpdateOperation(shop)(arg), {
10
+ ...options,
11
+ onSuccess: (result, key, config)=>{
12
+ mutate('cart', result, false);
13
+ options?.onSuccess?.(result, key, config);
14
+ }
15
+ });
16
+ };
17
+
18
+ export { useCartNoteUpdate };
@@ -1 +1,20 @@
1
- import{createCartOperation as r}from"@gem-sdk/adapter-shopify";import{useSWRConfig as t}from"swr";import e from"swr/mutation";import{useStoreFront as o}from"../shop.js";let useCreateCart=s=>{let a=o(),{mutate:m}=t();return e("create-cart",(t,{arg:e})=>r(a)(e),{...s,onSuccess:(r,t,e)=>{m("cart",r,!1),s?.onSuccess?.(r,t,e)}})};export{useCreateCart};
1
+ import { createCartOperation } from '@gem-sdk/adapter-shopify';
2
+ import { useSWRConfig } from 'swr';
3
+ import useSWRMutation from 'swr/mutation';
4
+ import { useStoreFront } from '../shop.js';
5
+
6
+ const useCreateCart = (options)=>{
7
+ const shop = useStoreFront();
8
+ const { mutate } = useSWRConfig();
9
+ return useSWRMutation('create-cart', (_, { arg })=>{
10
+ return createCartOperation(shop)(arg);
11
+ }, {
12
+ ...options,
13
+ onSuccess: (result, key, config)=>{
14
+ mutate('cart', result, false);
15
+ options?.onSuccess?.(result, key, config);
16
+ }
17
+ });
18
+ };
19
+
20
+ export { useCreateCart };
@@ -1 +1,18 @@
1
- import{removeCartItemOperation as e}from"@gem-sdk/adapter-shopify";import{useSWRConfig as r}from"swr";import t from"swr/mutation";import{useStoreFront as o}from"../shop.js";let useRemoveCartItem=m=>{let s=o(),{mutate:p}=r();return t("remove-cart-item",(r,{arg:t})=>e(s)(t),{...m,onSuccess:(e,r,t)=>{p("cart",e,!1),m?.onSuccess?.(e,r,t)}})};export{useRemoveCartItem};
1
+ import { removeCartItemOperation } from '@gem-sdk/adapter-shopify';
2
+ import { useSWRConfig } from 'swr';
3
+ import useSWRMutation from 'swr/mutation';
4
+ import { useStoreFront } from '../shop.js';
5
+
6
+ const useRemoveCartItem = (options)=>{
7
+ const shop = useStoreFront();
8
+ const { mutate } = useSWRConfig();
9
+ return useSWRMutation('remove-cart-item', (_, { arg })=>removeCartItemOperation(shop)(arg), {
10
+ ...options,
11
+ onSuccess: (result, key, config)=>{
12
+ mutate('cart', result, false);
13
+ options?.onSuccess?.(result, key, config);
14
+ }
15
+ });
16
+ };
17
+
18
+ export { useRemoveCartItem };
@@ -1 +1,18 @@
1
- import{updateCartLineOperation as t}from"@gem-sdk/adapter-shopify";import{useSWRConfig as r}from"swr";import e from"swr/mutation";import{useStoreFront as o}from"../shop.js";let useUpdateCartItem=m=>{let s=o(),{mutate:p}=r();return e("update-cart-item",(r,{arg:e})=>t(s)(e),{...m,onSuccess:(t,r,e)=>{p("cart",t,!1),m?.onSuccess?.(t,r,e)}})};export{useUpdateCartItem};
1
+ import { updateCartLineOperation } from '@gem-sdk/adapter-shopify';
2
+ import { useSWRConfig } from 'swr';
3
+ import useSWRMutation from 'swr/mutation';
4
+ import { useStoreFront } from '../shop.js';
5
+
6
+ const useUpdateCartItem = (options)=>{
7
+ const shop = useStoreFront();
8
+ const { mutate } = useSWRConfig();
9
+ return useSWRMutation('update-cart-item', (_, { arg })=>updateCartLineOperation(shop)(arg), {
10
+ ...options,
11
+ onSuccess: (result, key, config)=>{
12
+ mutate('cart', result, false);
13
+ options?.onSuccess?.(result, key, config);
14
+ }
15
+ });
16
+ };
17
+
18
+ export { useUpdateCartItem };
@@ -1 +1,20 @@
1
- import e from"swr";import{getCollection as r}from"../../helpers/queries/get-collection.js";import{useIsSampleProduct as o,useIsStorefrontProduct as t}from"../shop.js";import{useFetchHandle as l}from"../useFetchHandle.js";import{generateCollectionQueryKey as s}from"../../helpers/query.js";let useCollectionQuery=(m,i)=>{let p=l(),u=o(),n=t();return e(m?s({...m,isSample:u,isStorefront:n}):null,([,e])=>r(p,e),i)};export{useCollectionQuery};
1
+ import useSWR from 'swr';
2
+ import { getCollection } from '../../helpers/queries/get-collection.js';
3
+ import { useIsSampleProduct, useIsStorefrontProduct } from '../shop.js';
4
+ import { useFetchHandle } from '../useFetchHandle.js';
5
+ import { generateCollectionQueryKey } from '../../helpers/query.js';
6
+
7
+ const useCollectionQuery = (args, options)=>{
8
+ const fetcher = useFetchHandle();
9
+ const isSample = useIsSampleProduct();
10
+ const isStorefront = useIsStorefrontProduct();
11
+ return useSWR(args ? generateCollectionQueryKey({
12
+ ...args,
13
+ isSample,
14
+ isStorefront
15
+ }) : null, ([, arg])=>{
16
+ return getCollection(fetcher, arg);
17
+ }, options);
18
+ };
19
+
20
+ export { useCollectionQuery };
@@ -1 +1,15 @@
1
- import e from"swr";import{getCollections as o}from"../../helpers/queries/get-collections.js";import{useFetchHandle as r}from"../useFetchHandle.js";let useCollectionsQuery=(l,s)=>{let t=r();return e(l?["query/collections",l]:null,async([,e])=>o(t,e),s)};export{useCollectionsQuery};
1
+ import useSWR from 'swr';
2
+ import { getCollections } from '../../helpers/queries/get-collections.js';
3
+ import { useFetchHandle } from '../useFetchHandle.js';
4
+
5
+ const useCollectionsQuery = (variable, options)=>{
6
+ const fetcher = useFetchHandle();
7
+ return useSWR(variable ? [
8
+ 'query/collections',
9
+ variable
10
+ ] : null, async ([, arg])=>{
11
+ return getCollections(fetcher, arg);
12
+ }, options);
13
+ };
14
+
15
+ export { useCollectionsQuery };
@@ -1 +1,20 @@
1
- import r from"swr";import{getProduct as e}from"../../helpers/queries/get-product.js";import{useIsSampleProduct as o,useIsStorefrontProduct as t}from"../shop.js";import{useFetchHandle as s}from"../useFetchHandle.js";import{generateProductQueryKey as u}from"../../helpers/query.js";let useProductQuery=(m,p,i)=>{let l=s(),c=o(),d=t();return r(m?u({id:m,isSample:c,isStorefront:d}):null,async([,r])=>e(i||l,r),p)};export{useProductQuery};
1
+ import useSWR from 'swr';
2
+ import { getProduct } from '../../helpers/queries/get-product.js';
3
+ import { useIsSampleProduct, useIsStorefrontProduct } from '../shop.js';
4
+ import { useFetchHandle } from '../useFetchHandle.js';
5
+ import { generateProductQueryKey } from '../../helpers/query.js';
6
+
7
+ const useProductQuery = (productId, options, customFetcher)=>{
8
+ const fetcher = useFetchHandle();
9
+ const isSample = useIsSampleProduct();
10
+ const isStorefront = useIsStorefrontProduct();
11
+ return useSWR(productId ? generateProductQueryKey({
12
+ id: productId,
13
+ isSample,
14
+ isStorefront
15
+ }) : null, async ([, arg])=>{
16
+ return getProduct(customFetcher || fetcher, arg);
17
+ }, options);
18
+ };
19
+
20
+ export { useProductQuery };
@@ -1 +1,59 @@
1
- import e from"swr";import{getProducts as r,getProductQueryAll as u,getListProductByVariables as t}from"../../helpers/queries/get-products.js";import{generateProductsQueryKey as s}from"../../helpers/query.js";import{useIsSampleProduct as l,useIsStorefrontProduct as o}from"../shop.js";import{useFetchHandle as c}from"../useFetchHandle.js";let useProductsQuery=(u,t,d)=>{let n=c(),p=l(),y=o();return e(u?s({ids:u,isSample:p,isStorefront:y,defaultSelectedProductCount:d?.defaultSelectedProductCount,allStatus:d?.allStatus}):null,async([,e])=>r(d?.fetcher||n,e),t)},useListProductQuery=(r,u)=>{let s=c();return e(r?["query/products",r]:null,async([,e])=>t(s,e),u)},useProductsQueryAll=(r,t)=>{let s=c();return e(r?["query/products",r]:null,async([,e])=>u(s,e),t)};export{useListProductQuery,useProductsQuery,useProductsQueryAll};
1
+ import useSWR from 'swr';
2
+ import useSWRInfinite from 'swr/infinite';
3
+ import { getProducts, getProductQueryAll, getListProductByVariables } from '../../helpers/queries/get-products.js';
4
+ import { generateProductsQueryKey } from '../../helpers/query.js';
5
+ import { useIsSampleProduct, useIsStorefrontProduct } from '../shop.js';
6
+ import { useFetchHandle } from '../useFetchHandle.js';
7
+
8
+ const useProductsQuery = (ids, options, params)=>{
9
+ const fetcher = useFetchHandle();
10
+ const isSample = useIsSampleProduct();
11
+ const isStorefront = useIsStorefrontProduct();
12
+ return useSWR(ids ? generateProductsQueryKey({
13
+ ids,
14
+ isSample,
15
+ isStorefront,
16
+ defaultSelectedProductCount: params?.defaultSelectedProductCount,
17
+ allStatus: params?.allStatus
18
+ }) : null, async ([, arg])=>{
19
+ return getProducts(params?.fetcher || fetcher, arg);
20
+ }, options);
21
+ };
22
+ const getKey = (variable)=>{
23
+ return (pageIndex, previousPageData)=>{
24
+ if (!variable || previousPageData && !previousPageData.products?.pageInfo?.hasNextPage) {
25
+ return null;
26
+ }
27
+ if (pageIndex === 0) {
28
+ return [
29
+ 'query/products',
30
+ variable
31
+ ];
32
+ }
33
+ return [
34
+ 'query/products',
35
+ {
36
+ ...variable,
37
+ after: previousPageData.products?.pageInfo?.endCursor
38
+ }
39
+ ];
40
+ };
41
+ };
42
+ const useListProductQuery = (variable, options)=>{
43
+ const fetcher = useFetchHandle();
44
+ const data = useSWRInfinite(getKey(variable), async ([, arg])=>{
45
+ return getListProductByVariables(fetcher, arg);
46
+ }, options);
47
+ return data;
48
+ };
49
+ const useProductsQueryAll = (variable, options)=>{
50
+ const fetcher = useFetchHandle();
51
+ return useSWR(variable ? [
52
+ 'query/products',
53
+ variable
54
+ ] : null, async ([, arg])=>{
55
+ return getProductQueryAll(fetcher, arg);
56
+ }, options);
57
+ };
58
+
59
+ export { useListProductQuery, useProductsQuery, useProductsQueryAll };