@gem-sdk/core 1.63.17 → 2.0.0-dev.157

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 (214) hide show
  1. package/dist/cjs/components/AddOn.js +1 -0
  2. package/dist/cjs/components/ComponentAnimation.js +1 -0
  3. package/dist/cjs/components/ComponentToolbarPreview.js +8 -7
  4. package/dist/cjs/components/ComponentWrapper.js +1 -0
  5. package/dist/cjs/components/ComponentWrapperPreview.js +3 -2
  6. package/dist/cjs/components/Empty.js +1 -0
  7. package/dist/cjs/components/InteractionSuffix.js +7 -6
  8. package/dist/cjs/components/Render.js +1 -0
  9. package/dist/cjs/components/Render.liquid.js +4 -1
  10. package/dist/cjs/components/RenderBlock.js +1 -0
  11. package/dist/cjs/components/RenderCustomCode.js +8 -7
  12. package/dist/cjs/components/RenderPreview.js +1 -0
  13. package/dist/cjs/components/RenderSection.js +1 -0
  14. package/dist/cjs/components/ai-generator/AIContentGenerator.js +5 -4
  15. package/dist/cjs/components/ai-generator/AIGenContentLoading.js +1 -0
  16. package/dist/cjs/components/ai-generator/components/PickProduct.js +5 -4
  17. package/dist/cjs/components/ai-generator/components/ToneAndVoice.js +1 -0
  18. package/dist/cjs/components/ai-generator/icons/AIIcon.js +1 -0
  19. package/dist/cjs/components/ai-generator/icons/CloseIcon.js +1 -0
  20. package/dist/cjs/components/ai-generator/icons/DropdownIcon.js +1 -0
  21. package/dist/cjs/components/ai-generator/icons/SearchIcon.js +1 -0
  22. package/dist/cjs/components/ai-generator/icons/ShowMoreIcon.js +1 -0
  23. package/dist/cjs/components/ai-generator/icons/UpgradeIcon.js +1 -0
  24. package/dist/cjs/components/ai-generator/icons/WarningIcon.js +1 -0
  25. package/dist/cjs/components/resize/Resize.js +1 -0
  26. package/dist/cjs/components/resize/Spacing.js +8 -7
  27. package/dist/cjs/components/theme-section/CreateThemeSection.js +5 -4
  28. package/dist/cjs/components/theme-section/ThemeSectionStatus.js +1 -0
  29. package/dist/cjs/components/theme-section/ThemeSectionTooltip.js +1 -0
  30. package/dist/cjs/components/toolbar/Tooltip.js +1 -0
  31. package/dist/cjs/contexts/AddonContext.js +1 -0
  32. package/dist/cjs/contexts/ArticleContext.js +1 -0
  33. package/dist/cjs/contexts/ArticleListContext.js +1 -0
  34. package/dist/cjs/contexts/BuilderComponent.js +1 -0
  35. package/dist/cjs/contexts/BuilderContext.js +1 -0
  36. package/dist/cjs/contexts/BuilderPreviewContext.js +1 -0
  37. package/dist/cjs/contexts/CartLineContext.js +1 -0
  38. package/dist/cjs/contexts/CollectionContext.js +1 -0
  39. package/dist/cjs/contexts/ModalContext.js +1 -0
  40. package/dist/cjs/contexts/PageContext.js +1 -0
  41. package/dist/cjs/contexts/ProductContext.js +12 -12
  42. package/dist/cjs/contexts/ProductListContext.js +1 -0
  43. package/dist/cjs/contexts/SectionContext.js +1 -0
  44. package/dist/cjs/contexts/ShopContext.js +1 -0
  45. package/dist/cjs/graphql/fragments/preview-theme-page.generated.js +0 -4
  46. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +4 -0
  47. package/dist/cjs/graphql/queries/articles.generated.js +1 -0
  48. package/dist/cjs/graphql/queries/blogs.generated.js +1 -0
  49. package/dist/cjs/graphql/queries/shop-shopify.generated.js +11 -0
  50. package/dist/cjs/helpers/align.js +18 -0
  51. package/dist/cjs/helpers/background.js +6 -2
  52. package/dist/cjs/helpers/backgroundImage.js +184 -0
  53. package/dist/cjs/helpers/borders.js +17 -0
  54. package/dist/cjs/helpers/compose-advance-style.js +71 -1
  55. package/dist/cjs/helpers/filter-toolbar-preview.js +1 -0
  56. package/dist/cjs/helpers/interaction/index.js +7 -6
  57. package/dist/cjs/helpers/is-empty-children.js +1 -0
  58. package/dist/cjs/helpers/layout.js +17 -0
  59. package/dist/cjs/helpers/radius.js +13 -1
  60. package/dist/cjs/helpers/shadow.js +28 -2
  61. package/dist/cjs/helpers/size.js +22 -0
  62. package/dist/cjs/helpers/third-party/appConfig.js +63 -0
  63. package/dist/cjs/helpers/third-party/appSetting.js +382 -6
  64. package/dist/cjs/helpers/third-party/constant.js +10 -1
  65. package/dist/cjs/helpers/third-party/getAppBlockConfig.js +5 -1
  66. package/dist/cjs/helpers/typography.js +10 -1
  67. package/dist/cjs/hooks/animation/useAnimationActions.js +1 -0
  68. package/dist/cjs/hooks/animation/useAnimationConfig.js +1 -0
  69. package/dist/cjs/hooks/animation/useAnimationPreview.js +1 -0
  70. package/dist/cjs/hooks/animation/useAnimationTarget.js +1 -0
  71. package/dist/cjs/hooks/animation/useApplyAnimation.js +1 -0
  72. package/dist/cjs/hooks/articles/useArticlesQuery.js +1 -0
  73. package/dist/cjs/hooks/cart/use-add-to-cart.js +1 -0
  74. package/dist/cjs/hooks/cart/use-cart-data.js +1 -0
  75. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +1 -0
  76. package/dist/cjs/hooks/cart/use-cart-note-update.js +1 -0
  77. package/dist/cjs/hooks/cart/use-create-cart.js +1 -0
  78. package/dist/cjs/hooks/cart/use-remove-cart-item.js +1 -0
  79. package/dist/cjs/hooks/cart/use-update-cart-item.js +1 -0
  80. package/dist/cjs/hooks/shop/use-collection-query.js +1 -0
  81. package/dist/cjs/hooks/shop/use-collections-query.js +1 -0
  82. package/dist/cjs/hooks/shop/use-product-query.js +1 -0
  83. package/dist/cjs/hooks/shop/use-products-query.js +1 -0
  84. package/dist/cjs/hooks/shop/useShopifyLink.js +47 -0
  85. package/dist/cjs/hooks/shop.js +10 -0
  86. package/dist/cjs/hooks/use-current-device.js +2 -1
  87. package/dist/cjs/hooks/use-lazy-video.js +1 -0
  88. package/dist/cjs/hooks/useAnimations.js +1 -0
  89. package/dist/cjs/hooks/useCartId.js +1 -0
  90. package/dist/cjs/hooks/useCartLine.js +1 -0
  91. package/dist/cjs/hooks/useCartUI.js +1 -0
  92. package/dist/cjs/hooks/useCollection.js +1 -0
  93. package/dist/cjs/hooks/useFetchHandle.js +1 -0
  94. package/dist/cjs/hooks/useFormatMoney.js +1 -0
  95. package/dist/cjs/hooks/useInitialSwatchesOptions.js +1 -0
  96. package/dist/cjs/hooks/useInteraction.js +1 -0
  97. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +1 -0
  98. package/dist/cjs/hooks/useLoadScript.js +1 -0
  99. package/dist/cjs/hooks/useMoney.js +1 -0
  100. package/dist/cjs/hooks/usePrevious.js +1 -0
  101. package/dist/cjs/hooks/useProduct.js +18 -0
  102. package/dist/cjs/hooks/useProductList.js +1 -0
  103. package/dist/cjs/hooks/useSuspenseFetch.js +1 -0
  104. package/dist/cjs/hooks/useSwatchesOptions.js +1 -0
  105. package/dist/cjs/hooks/useToolbarPostPurchase.js +1 -0
  106. package/dist/cjs/index.js +18 -0
  107. package/dist/esm/components/AddOn.js +1 -0
  108. package/dist/esm/components/ComponentAnimation.js +1 -0
  109. package/dist/esm/components/ComponentToolbarPreview.js +8 -7
  110. package/dist/esm/components/ComponentWrapper.js +1 -0
  111. package/dist/esm/components/ComponentWrapperPreview.js +3 -2
  112. package/dist/esm/components/Empty.js +1 -0
  113. package/dist/esm/components/InteractionSuffix.js +7 -6
  114. package/dist/esm/components/Render.js +1 -0
  115. package/dist/esm/components/Render.liquid.js +4 -1
  116. package/dist/esm/components/RenderBlock.js +1 -0
  117. package/dist/esm/components/RenderCustomCode.js +8 -7
  118. package/dist/esm/components/RenderPreview.js +1 -0
  119. package/dist/esm/components/RenderSection.js +1 -0
  120. package/dist/esm/components/ai-generator/AIContentGenerator.js +5 -4
  121. package/dist/esm/components/ai-generator/AIGenContentLoading.js +1 -0
  122. package/dist/esm/components/ai-generator/components/PickProduct.js +5 -4
  123. package/dist/esm/components/ai-generator/components/ToneAndVoice.js +1 -0
  124. package/dist/esm/components/ai-generator/icons/AIIcon.js +1 -0
  125. package/dist/esm/components/ai-generator/icons/CloseIcon.js +1 -0
  126. package/dist/esm/components/ai-generator/icons/DropdownIcon.js +1 -0
  127. package/dist/esm/components/ai-generator/icons/SearchIcon.js +1 -0
  128. package/dist/esm/components/ai-generator/icons/ShowMoreIcon.js +1 -0
  129. package/dist/esm/components/ai-generator/icons/UpgradeIcon.js +1 -0
  130. package/dist/esm/components/ai-generator/icons/WarningIcon.js +1 -0
  131. package/dist/esm/components/resize/Resize.js +1 -0
  132. package/dist/esm/components/resize/Spacing.js +8 -7
  133. package/dist/esm/components/theme-section/CreateThemeSection.js +5 -4
  134. package/dist/esm/components/theme-section/ThemeSectionStatus.js +1 -0
  135. package/dist/esm/components/theme-section/ThemeSectionTooltip.js +1 -0
  136. package/dist/esm/components/toolbar/Tooltip.js +1 -0
  137. package/dist/esm/contexts/AddonContext.js +1 -0
  138. package/dist/esm/contexts/ArticleContext.js +1 -0
  139. package/dist/esm/contexts/ArticleListContext.js +1 -0
  140. package/dist/esm/contexts/BuilderComponent.js +1 -0
  141. package/dist/esm/contexts/BuilderContext.js +1 -0
  142. package/dist/esm/contexts/BuilderPreviewContext.js +1 -0
  143. package/dist/esm/contexts/CartLineContext.js +1 -0
  144. package/dist/esm/contexts/CollectionContext.js +1 -0
  145. package/dist/esm/contexts/ModalContext.js +1 -0
  146. package/dist/esm/contexts/PageContext.js +1 -0
  147. package/dist/esm/contexts/ProductContext.js +12 -12
  148. package/dist/esm/contexts/ProductListContext.js +1 -0
  149. package/dist/esm/contexts/SectionContext.js +1 -0
  150. package/dist/esm/contexts/ShopContext.js +1 -0
  151. package/dist/esm/graphql/fragments/preview-theme-page.generated.js +0 -4
  152. package/dist/esm/graphql/fragments/published-theme-page.generated.js +4 -0
  153. package/dist/esm/graphql/queries/articles.generated.js +1 -0
  154. package/dist/esm/graphql/queries/blogs.generated.js +1 -0
  155. package/dist/esm/graphql/queries/shop-shopify.generated.js +9 -0
  156. package/dist/esm/helpers/align.js +18 -1
  157. package/dist/esm/helpers/background.js +6 -2
  158. package/dist/esm/helpers/backgroundImage.js +179 -0
  159. package/dist/esm/helpers/borders.js +17 -1
  160. package/dist/esm/helpers/compose-advance-style.js +71 -1
  161. package/dist/esm/helpers/filter-toolbar-preview.js +1 -0
  162. package/dist/esm/helpers/interaction/index.js +7 -6
  163. package/dist/esm/helpers/is-empty-children.js +1 -0
  164. package/dist/esm/helpers/layout.js +17 -1
  165. package/dist/esm/helpers/radius.js +13 -1
  166. package/dist/esm/helpers/shadow.js +28 -3
  167. package/dist/esm/helpers/size.js +21 -1
  168. package/dist/esm/helpers/third-party/appConfig.js +55 -1
  169. package/dist/esm/helpers/third-party/appSetting.js +382 -6
  170. package/dist/esm/helpers/third-party/constant.js +11 -2
  171. package/dist/esm/helpers/third-party/getAppBlockConfig.js +5 -1
  172. package/dist/esm/helpers/typography.js +10 -2
  173. package/dist/esm/hooks/animation/useAnimationActions.js +1 -0
  174. package/dist/esm/hooks/animation/useAnimationConfig.js +1 -0
  175. package/dist/esm/hooks/animation/useAnimationPreview.js +1 -0
  176. package/dist/esm/hooks/animation/useAnimationTarget.js +1 -0
  177. package/dist/esm/hooks/animation/useApplyAnimation.js +1 -0
  178. package/dist/esm/hooks/articles/useArticlesQuery.js +1 -0
  179. package/dist/esm/hooks/cart/use-add-to-cart.js +1 -0
  180. package/dist/esm/hooks/cart/use-cart-data.js +1 -0
  181. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +1 -0
  182. package/dist/esm/hooks/cart/use-cart-note-update.js +1 -0
  183. package/dist/esm/hooks/cart/use-create-cart.js +1 -0
  184. package/dist/esm/hooks/cart/use-remove-cart-item.js +1 -0
  185. package/dist/esm/hooks/cart/use-update-cart-item.js +1 -0
  186. package/dist/esm/hooks/shop/use-collection-query.js +1 -0
  187. package/dist/esm/hooks/shop/use-collections-query.js +1 -0
  188. package/dist/esm/hooks/shop/use-product-query.js +1 -0
  189. package/dist/esm/hooks/shop/use-products-query.js +1 -0
  190. package/dist/esm/hooks/shop/useShopifyLink.js +45 -0
  191. package/dist/esm/hooks/shop.js +10 -1
  192. package/dist/esm/hooks/use-current-device.js +2 -1
  193. package/dist/esm/hooks/use-lazy-video.js +1 -0
  194. package/dist/esm/hooks/useAnimations.js +1 -0
  195. package/dist/esm/hooks/useCartId.js +1 -0
  196. package/dist/esm/hooks/useCartLine.js +1 -0
  197. package/dist/esm/hooks/useCartUI.js +1 -0
  198. package/dist/esm/hooks/useCollection.js +1 -0
  199. package/dist/esm/hooks/useFetchHandle.js +1 -0
  200. package/dist/esm/hooks/useFormatMoney.js +1 -0
  201. package/dist/esm/hooks/useInitialSwatchesOptions.js +1 -0
  202. package/dist/esm/hooks/useInteraction.js +1 -0
  203. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +1 -0
  204. package/dist/esm/hooks/useLoadScript.js +1 -0
  205. package/dist/esm/hooks/useMoney.js +1 -0
  206. package/dist/esm/hooks/usePrevious.js +1 -0
  207. package/dist/esm/hooks/useProduct.js +18 -1
  208. package/dist/esm/hooks/useProductList.js +1 -0
  209. package/dist/esm/hooks/useSuspenseFetch.js +1 -0
  210. package/dist/esm/hooks/useSwatchesOptions.js +1 -0
  211. package/dist/esm/hooks/useToolbarPostPurchase.js +1 -0
  212. package/dist/esm/index.js +11 -8
  213. package/dist/types/index.d.ts +729 -253
  214. package/package.json +4 -4
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useRef, useCallback } from 'react';
2
3
  import { useAnimationConfig } from './useAnimationConfig.js';
3
4
 
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useCallback, useEffect } from 'react';
2
3
  import { useAnimations } from '../useAnimations.js';
3
4
  import { useAnimationTarget } from './useAnimationTarget.js';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { ArticlesDocument } from '../../graphql/queries/articles.generated.js';
2
3
  import { useFetchHandle } from '../useFetchHandle.js';
3
4
  import useSWR from 'swr';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { addToCartOperation } from '@gem-sdk/adapter-shopify';
2
3
  import { useSWRConfig } from 'swr';
3
4
  import useSWRMutation from 'swr/mutation';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { getCartOperation } from '@gem-sdk/adapter-shopify';
2
3
  import useSWR from 'swr';
3
4
  import { useStoreFront } from '../shop.js';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { cartDiscountCodesUpdateOperation } from '@gem-sdk/adapter-shopify';
2
3
  import { useSWRConfig } from 'swr';
3
4
  import useSWRMutation from 'swr/mutation';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { cartNoteUpdateOperation } from '@gem-sdk/adapter-shopify';
2
3
  import { useSWRConfig } from 'swr';
3
4
  import useSWRMutation from 'swr/mutation';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { createCartOperation } from '@gem-sdk/adapter-shopify';
2
3
  import { useSWRConfig } from 'swr';
3
4
  import useSWRMutation from 'swr/mutation';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { removeCartItemOperation } from '@gem-sdk/adapter-shopify';
2
3
  import { useSWRConfig } from 'swr';
3
4
  import useSWRMutation from 'swr/mutation';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { updateCartLineOperation } from '@gem-sdk/adapter-shopify';
2
3
  import { useSWRConfig } from 'swr';
3
4
  import useSWRMutation from 'swr/mutation';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import useSWR from 'swr';
2
3
  import { getCollection } from '../../helpers/queries/get-collection.js';
3
4
  import { useIsSampleProduct, useIsStorefrontProduct } from '../shop.js';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import useSWR from 'swr';
2
3
  import { getCollections } from '../../helpers/queries/get-collections.js';
3
4
  import { useFetchHandle } from '../useFetchHandle.js';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import useSWR from 'swr';
2
3
  import { getProduct } from '../../helpers/queries/get-product.js';
3
4
  import { useIsSampleProduct, useIsStorefrontProduct } from '../shop.js';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import useSWR from 'swr';
2
3
  import useSWRInfinite from 'swr/infinite';
3
4
  import { getProducts, getProductQueryAll, getListProductByVariables } from '../../helpers/queries/get-products.js';
@@ -0,0 +1,45 @@
1
+ 'use client';
2
+ import { useMemo } from 'react';
3
+ import { useShopStore } from '../../contexts/ShopContext.js';
4
+
5
+ const useShopifyLink = ({ productId, articleId })=>{
6
+ const storefrontUrl = useShopStore((s)=>s.storefrontUrl);
7
+ //
8
+ // const productId = useMemo(() => {
9
+ // const ele = document.querySelector(`[data-uid="${parentProductUid}"]`);
10
+ // return ele?.getAttribute('data-product-id');
11
+ // }, [parentProductUid]);
12
+ const shopName = useMemo(()=>{
13
+ const pattern = /^(?:https?:\/\/)?([^/]+)\.myshopify\.com/;
14
+ if (storefrontUrl) {
15
+ return storefrontUrl.match(pattern)?.[1];
16
+ }
17
+ return '';
18
+ }, [
19
+ storefrontUrl
20
+ ]);
21
+ const linkShopDefault = useMemo(()=>{
22
+ return `https://admin.shopify.com/store/${shopName}`;
23
+ }, [
24
+ shopName
25
+ ]);
26
+ const linkEditProduct = useMemo(()=>{
27
+ return productId ? `${linkShopDefault}/products/${productId}` : '';
28
+ }, [
29
+ linkShopDefault,
30
+ productId
31
+ ]);
32
+ const linkEditArticle = useMemo(()=>{
33
+ return articleId ? `${linkShopDefault}/articles/${articleId}` : '';
34
+ }, [
35
+ articleId,
36
+ linkShopDefault
37
+ ]);
38
+ return {
39
+ linkShopDefault,
40
+ linkEditProduct,
41
+ linkEditArticle
42
+ };
43
+ };
44
+
45
+ export { useShopifyLink };
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useMemo } from 'react';
2
3
  import { useSWRConfig } from 'swr';
3
4
  import { useShopStore } from '../contexts/ShopContext.js';
@@ -24,6 +25,14 @@ const useCurrency = ()=>{
24
25
  changeCurrency
25
26
  ]);
26
27
  };
28
+ const useTimezone = ()=>{
29
+ const timezone = useShopStore((state)=>state.timezone);
30
+ return useMemo(()=>({
31
+ timezone
32
+ }), [
33
+ timezone
34
+ ]);
35
+ };
27
36
  const useMoneyFormat = ()=>{
28
37
  const moneyFormat = useShopStore((state)=>state.moneyFormat);
29
38
  const moneyWithCurrencyFormat = useShopStore((state)=>state.moneyWithCurrencyFormat);
@@ -108,4 +117,4 @@ function useCheckoutUrl(url) {
108
117
  return storefrontToken ? `${url}?access_token=${storefrontToken}` : url;
109
118
  }
110
119
 
111
- export { useCheckoutUrl, useConnectedShopify, useCurrency, useEditorMode, useIsSampleProduct, useIsStorefrontProduct, useLocale, useMatchMutate, useMobileOnly, useMoneyFormat, usePageType, usePluginEnable, useStoreFront, useSwatches };
120
+ export { useCheckoutUrl, useConnectedShopify, useCurrency, useEditorMode, useIsSampleProduct, useIsStorefrontProduct, useLocale, useMatchMutate, useMobileOnly, useMoneyFormat, usePageType, usePluginEnable, useStoreFront, useSwatches, useTimezone };
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useSyncExternalStore } from 'react';
2
3
 
3
4
  // Hàm debounce với TypeScript
@@ -17,7 +18,7 @@ const useCurrentDevice = ()=>{
17
18
  return useSyncExternalStore(subscribe, ()=>{
18
19
  if (window.innerWidth < 768) {
19
20
  return 'mobile';
20
- } else if (window.innerWidth >= 768 && window.innerWidth < 1024) {
21
+ } else if (window.innerWidth >= 768 && window.innerWidth < 1025) {
21
22
  return 'tablet';
22
23
  } else {
23
24
  return 'desktop';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useEffect } from 'react';
2
3
  import LazyLoad from 'vanilla-lazyload';
3
4
 
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { animations } from '../helpers/animations.js';
2
3
  import 'react';
3
4
  import 'react/jsx-runtime';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useSyncExternalStore, useCallback, useMemo } from 'react';
2
3
 
3
4
  const cartKey = 'cart-id';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useCartLineStore } from '../contexts/CartLineContext.js';
2
3
 
3
4
  const useCartLine = ()=>{
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useCallback } from 'react';
2
3
  import { create } from 'zustand';
3
4
  import { usePluginEnable } from './shop.js';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useCollectionStore } from '../contexts/CollectionContext.js';
2
3
 
3
4
  const useCollection = ()=>{
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useSWRConfig } from 'swr';
2
3
 
3
4
  const useFetchHandle = ()=>{
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useMoneyFormat } from './shop.js';
2
3
 
3
4
  const shopifyPriceRounding = (amount, precision)=>{
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import useSWR from 'swr';
2
3
  import { ProductOptionNameDocument } from '../graphql/queries/product-value-label.generated.js';
3
4
  import { colorPreset } from '../components/src/product/helpers/variant-presets.js';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { usePageStore } from '../contexts/PageContext.js';
2
3
 
3
4
  const useInteraction = ()=>{
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useLayoutEffect } from 'react';
2
3
 
3
4
  // const isBrowser = typeof window !== 'undefined';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useState, useEffect } from 'react';
2
3
  import { loadScript } from '../helpers/load-script.js';
3
4
 
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useMemo } from 'react';
2
3
  import { useLocale, useCurrency } from './shop.js';
3
4
 
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useRef, useEffect } from 'react';
2
3
 
3
4
  const usePrevious = (value)=>{
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useCallback, useEffect, useMemo } from 'react';
2
3
  import { useProductStore } from '../contexts/ProductContext.js';
3
4
  import 'react/jsx-runtime';
@@ -10,6 +11,7 @@ import 'swr/infinite';
10
11
  import 'vanilla-lazyload';
11
12
  import './useCartUI.js';
12
13
  import { checkInStock } from '../helpers/variant.js';
14
+ import { useShopifyLink } from './shop/useShopifyLink.js';
13
15
  import 'react-transition-group';
14
16
  import '@gem-sdk/core';
15
17
  import 'classnames';
@@ -41,6 +43,21 @@ const useProductBundleDiscount = ()=>{
41
43
  seUseProductCompareAtPrice
42
44
  };
43
45
  };
46
+ const useProductShopifyEditLink = ()=>{
47
+ const product = useProductStore((s)=>s.product);
48
+ const productId = product?.baseID?.replace('gid://shopify/Product/', '');
49
+ const { linkEditProduct } = useShopifyLink({
50
+ productId
51
+ });
52
+ const redirectProductShopifyLink = ()=>{
53
+ if (!linkEditProduct) return;
54
+ window.open(linkEditProduct, '_blank');
55
+ };
56
+ return {
57
+ linkEditProduct,
58
+ redirectProductShopifyLink
59
+ };
60
+ };
44
61
  const useQuantity = ()=>{
45
62
  const quantity = useProductStore((s)=>s.quantity);
46
63
  const hasUpdatePrice = useProductStore((s)=>s.updatePrice);
@@ -225,4 +242,4 @@ const useProductOfferDiscount = ()=>{
225
242
  return currentDiscount || 0;
226
243
  };
227
244
 
228
- export { useCheckAvailableVariantInStock, useCurrentVariant, useCurrentVariantInStock, useFeaturedImageGlobal, useHasPreSelected, useIsSyncProduct, useProduct, useProductBundleDiscount, useProductOfferDiscount, useProductProperties, useQuantity, useSelectedOption, useUniqProductID, useVariant, useVariantOutStock, useVariants };
245
+ export { useCheckAvailableVariantInStock, useCurrentVariant, useCurrentVariantInStock, useFeaturedImageGlobal, useHasPreSelected, useIsSyncProduct, useProduct, useProductBundleDiscount, useProductOfferDiscount, useProductProperties, useProductShopifyEditLink, useQuantity, useSelectedOption, useUniqProductID, useVariant, useVariantOutStock, useVariants };
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useProductListStore } from '../contexts/ProductListContext.js';
2
3
 
3
4
  const useProductList = ()=>{
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  const cache = new Map();
2
3
  const useSuspenseFetch = (key, promise)=>{
3
4
  const value = cache.get(key) || {
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useSwatches } from './shop.js';
2
3
 
3
4
  const initialSwatchOptionValue = {
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { postPurchaseRequiredElements, postPurchaseWrapElements } from '../components/constant.js';
2
3
  import { useShopStore } from '../contexts/ShopContext.js';
3
4
 
package/dist/esm/index.js CHANGED
@@ -25,12 +25,13 @@ export { PublishedThemePagesDocument } from './graphql/queries/published-theme-p
25
25
  export { ProductsDocument } from './graphql/queries/products.generated.js';
26
26
  export { StorePropertyDocument } from './graphql/queries/store-property.generated.js';
27
27
  export { PreviewThemePageDocument } from './graphql/queries/preview-page.generated.js';
28
+ export { ShopShopifyDocument } from './graphql/queries/shop-shopify.generated.js';
28
29
  export { LibraryTemplateDocument } from './graphql-app-api/queries/LibraryTemplate.generated.js';
29
30
  export { ThemePageDocument } from './graphql-app-api/queries/ThemePage.generated.js';
30
31
  export { SaleFunnelDiscountsDocument } from './graphql-app-api/queries/SaleFunnelDiscounts.generated.js';
31
32
  export { LibrarySaleFunnelDocument } from './graphql-app-api/queries/LibrarySaleFunnelDiscount.generated.js';
32
33
  export { ShopLibraryPageDocument } from './graphql-app-api/queries/ShopLibraryPage.generated.js';
33
- export { composeBorderCss, getBorderRadiusStyle, getBorderStyle, handleConvertBorderColor, handleConvertBorderStyle, handleConvertBorderWidth, handleConvertClassColor, handleConvertClassColorDynamicBtn } from './helpers/borders.js';
34
+ export { composeBorderCss, composeBorderResponsive, getBorderRadiusStyle, getBorderStyle, handleConvertBorderColor, handleConvertBorderStyle, handleConvertBorderWidth, handleConvertClassColor, handleConvertClassColorDynamicBtn } from './helpers/borders.js';
34
35
  export { getCarouselContainerHeight, makeContainerWidthOrHeight, makeDotGapToCarouselStyle } from './helpers/carousel.js';
35
36
  export { cls } from './helpers/cls.js';
36
37
  export { animations } from './helpers/animations.js';
@@ -55,23 +56,24 @@ export { gtag };
55
56
  import * as tiktokpixel from './helpers/tracking/tiktokpixel.js';
56
57
  export { tiktokpixel };
57
58
  export { GRADIENT_BGR_KEY, composeBackgroundCss, getBgImageByDevice, getGradientBgrStyleByDevice, getGradientBgrStyleForButton, getStyleBackgroundByDevice, getStyleBgColor, makeFixedBgAttachment } from './helpers/background.js';
59
+ export { composeBackgroundImageCss, getBgImageSourceByDevice, getStyleBackgroundImageByDevice, getStyleBgImageSource } from './helpers/backgroundImage.js';
58
60
  export { composeTextColorCss, getGlobalColorCSSProp, getGlobalColorClass, getGlobalColorResponsiveClass, getGlobalColorResponsiveStyle, getGlobalColorStateClass, getGlobalColorStateClassDynamicBtn, getGlobalColorStateResponsiveClass, getGlobalColorStateResponsiveClassDynamicBtn, getGlobalColorStateResponsiveStyle, getGlobalColorStateStyle, getGlobalColorStyle, getSingleColorVariable, isColor } from './helpers/colors.js';
59
61
  export { composeAdvanceStyle, composeAdvanceStyleForPostPurchase, filterAttrInStyle, filterCornerInStyle, removeAttrInStyle, removePaddingYInStyle, splitStyle } from './helpers/compose-advance-style.js';
60
62
  export { baseAssetURL, isLocalEnv } from './helpers/convert.js';
61
63
  export { convertHTML } from './helpers/covert-entities-html.js';
62
64
  export { composePositionLineHeight, composePostionIconList } from './helpers/icon-list.js';
63
65
  export { isDefined } from './helpers/is-defined.js';
64
- export { composeGridLayout, convertOldLayout, gridToArrayRegex, optionLayoutStyle } from './helpers/layout.js';
66
+ export { composeGridLayout, convertOldLayout, getLayoutClasses, gridToArrayRegex, optionLayoutStyle } from './helpers/layout.js';
65
67
  export { makeAspectRatio, makeGlobalSizeHeightResponsive, makeGlobalSizeWidthResponsive, makeHeight, makeLineClamp, makeStyle, makeStyleKey, makeStyleResponsive, makeStyleResponsiveByScreen, makeStyleResponsiveState, makeStyleState, makeWidth, removeNullUndefined } from './helpers/make-style.js';
66
- export { convertTextAlignToJustify } from './helpers/align.js';
68
+ export { convertTextAlignToJustify, getAlignmentClasses } from './helpers/align.js';
67
69
  export { checkInStock } from './helpers/variant.js';
68
70
  export { checkAvailableVariantInStock, getSelectedVariant, parseSelectedOption } from './helpers/product.js';
69
71
  export { generateCollectionQueryKey, generateProductQueryKey, generateProductsQueryKey } from './helpers/query.js';
70
72
  export { composeCornerCss, composeRadius, composeRadiusResponsive, getCornerCSSFromGlobal, getCustomRadius, getRadiusCSSFromGlobal, getRadiusStyleActiveState } from './helpers/radius.js';
71
73
  export { RenderIf, composeMemo, dataStringify, props, removeUndefinedValuesFromObject, styles, template } from './helpers/render.js';
72
- export { composeShadowCss, getResponsiveStyleShadow, getStyleShadow, getStyleShadowState, parseValueWithUnit } from './helpers/shadow.js';
73
- export { composeSize, composeSizeCss, genSizeClass, getAspectRatioGlobalSize, getGlobalSizeGap, getHeightByShapeGlobalSize, getPaddingGlobalSize, getValueByDevice, getWidthByShapeGlobalSize, getWidthHeightGlobalSize, makeGlobalSize, makeGlobalSizeIcon, makeStyleWithDefault } from './helpers/size.js';
74
- export { composeFallbackTypographyStyle, composeFontFamilyTypographyV2, composeTypography, composeTypographyAttr, composeTypographyClassName, composeTypographyCss, composeTypographyStyle, composeTypographyV2, composeTypographyV2Css, genTypoClass } from './helpers/typography.js';
74
+ export { composeShadowCss, getResponsiveStyleShadow, getResponsiveStyleShadowWithoutState, getStyleShadow, getStyleShadowState, parseValueWithUnit } from './helpers/shadow.js';
75
+ export { composeSize, composeSizeCss, genSizeClass, getAspectRatioGlobalSize, getGlobalSizeGap, getHeightByShapeGlobalSize, getPaddingGlobalSize, getPaddingStyleByDevice, getResponsiveStylePadding, getValueByDevice, getWidthByShapeGlobalSize, getWidthHeightGlobalSize, makeGlobalSize, makeGlobalSizeIcon, makeStyleWithDefault } from './helpers/size.js';
76
+ export { composeFallbackTypographyStyle, composeFontFamilyTypographyV2, composeTextHoverColorCss, composeTypography, composeTypographyAttr, composeTypographyClassName, composeTypographyCss, composeTypographyStyle, composeTypographyV2, composeTypographyV2Css, genTypoClass } from './helpers/typography.js';
75
77
  export { useArticlesQuery, useBlogsQuery } from './hooks/articles/useArticlesQuery.js';
76
78
  export { useAddToCart } from './hooks/cart/use-add-to-cart.js';
77
79
  export { useCartData } from './hooks/cart/use-cart-data.js';
@@ -80,7 +82,7 @@ export { useCartNoteUpdate } from './hooks/cart/use-cart-note-update.js';
80
82
  export { useCreateCart } from './hooks/cart/use-create-cart.js';
81
83
  export { useRemoveCartItem } from './hooks/cart/use-remove-cart-item.js';
82
84
  export { useUpdateCartItem } from './hooks/cart/use-update-cart-item.js';
83
- export { useCheckoutUrl, useConnectedShopify, useCurrency, useEditorMode, useIsSampleProduct, useIsStorefrontProduct, useLocale, useMatchMutate, useMobileOnly, useMoneyFormat, usePageType, usePluginEnable, useStoreFront, useSwatches } from './hooks/shop.js';
85
+ export { useCheckoutUrl, useConnectedShopify, useCurrency, useEditorMode, useIsSampleProduct, useIsStorefrontProduct, useLocale, useMatchMutate, useMobileOnly, useMoneyFormat, usePageType, usePluginEnable, useStoreFront, useSwatches, useTimezone } from './hooks/shop.js';
84
86
  export { useCollectionQuery } from './hooks/shop/use-collection-query.js';
85
87
  export { useCollectionsQuery } from './hooks/shop/use-collections-query.js';
86
88
  export { useProductQuery } from './hooks/shop/use-product-query.js';
@@ -98,7 +100,8 @@ export { default as useIsomorphicLayoutEffect } from './hooks/useIsomorphicLayou
98
100
  export { default as useLoadScript } from './hooks/useLoadScript.js';
99
101
  export { default as useMoney } from './hooks/useMoney.js';
100
102
  export { usePrevious } from './hooks/usePrevious.js';
101
- export { useCheckAvailableVariantInStock, useCurrentVariant, useCurrentVariantInStock, useFeaturedImageGlobal, useHasPreSelected, useIsSyncProduct, useProduct, useProductBundleDiscount, useProductOfferDiscount, useProductProperties, useQuantity, useSelectedOption, useUniqProductID, useVariant, useVariantOutStock, useVariants } from './hooks/useProduct.js';
103
+ export { useCheckAvailableVariantInStock, useCurrentVariant, useCurrentVariantInStock, useFeaturedImageGlobal, useHasPreSelected, useIsSyncProduct, useProduct, useProductBundleDiscount, useProductOfferDiscount, useProductProperties, useProductShopifyEditLink, useQuantity, useSelectedOption, useUniqProductID, useVariant, useVariantOutStock, useVariants } from './hooks/useProduct.js';
104
+ export { useShopifyLink } from './hooks/shop/useShopifyLink.js';
102
105
  export { useProductList, useProductListProducts, useProductListSettings, useProductListStyles } from './hooks/useProductList.js';
103
106
  export { default as useSuspenseFetch } from './hooks/useSuspenseFetch.js';
104
107
  export { default as useSwatchesOptions } from './hooks/useSwatchesOptions.js';