@gem-sdk/core 1.58.0-dev.13 → 1.58.0-dev.134

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 (212) 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 +33 -19
  4. package/dist/cjs/components/ComponentWrapper.js +1 -0
  5. package/dist/cjs/components/ComponentWrapperPreview.js +1 -0
  6. package/dist/cjs/components/Empty.js +1 -0
  7. package/dist/cjs/components/InteractionSuffix.js +2 -1
  8. package/dist/cjs/components/Render.js +1 -0
  9. package/dist/cjs/components/Render.liquid.js +14 -5
  10. package/dist/cjs/components/RenderBlock.js +1 -0
  11. package/dist/cjs/components/RenderCustomCode.js +1 -0
  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 +2 -1
  15. package/dist/cjs/components/ai-generator/AIGenContentLoading.js +1 -0
  16. package/dist/cjs/components/ai-generator/components/PickProduct.js +1 -0
  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 +1 -0
  27. package/dist/cjs/components/theme-section/CreateThemeSection.js +2 -1
  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 +17 -1
  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 +35 -0
  46. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +4 -28
  47. package/dist/cjs/graphql/queries/articles.generated.js +1 -0
  48. package/dist/cjs/graphql/queries/preview-page.generated.js +9 -13
  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/backgroundImage.js +184 -0
  52. package/dist/cjs/helpers/compose-advance-style.js +57 -3
  53. package/dist/cjs/helpers/filter-toolbar-preview.js +1 -0
  54. package/dist/cjs/helpers/interaction/index.js +2 -1
  55. package/dist/cjs/helpers/is-empty-children.js +1 -0
  56. package/dist/cjs/helpers/layout.js +17 -0
  57. package/dist/cjs/helpers/prefetch-queries.js +5 -3
  58. package/dist/cjs/helpers/radius.js +3 -1
  59. package/dist/cjs/helpers/shadow.js +25 -0
  60. package/dist/cjs/helpers/size.js +30 -2
  61. package/dist/cjs/helpers/third-party/appConfig.js +70 -0
  62. package/dist/cjs/helpers/third-party/appSetting.js +345 -2
  63. package/dist/cjs/helpers/third-party/constant.js +11 -1
  64. package/dist/cjs/helpers/third-party/getAppBlockConfig.js +17 -1
  65. package/dist/cjs/helpers/typography.js +10 -1
  66. package/dist/cjs/hooks/animation/useAnimationActions.js +1 -0
  67. package/dist/cjs/hooks/animation/useAnimationConfig.js +1 -0
  68. package/dist/cjs/hooks/animation/useAnimationPreview.js +1 -0
  69. package/dist/cjs/hooks/animation/useAnimationTarget.js +1 -0
  70. package/dist/cjs/hooks/animation/useApplyAnimation.js +1 -0
  71. package/dist/cjs/hooks/articles/useArticlesQuery.js +1 -0
  72. package/dist/cjs/hooks/cart/use-add-to-cart.js +1 -0
  73. package/dist/cjs/hooks/cart/use-cart-data.js +1 -0
  74. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +1 -0
  75. package/dist/cjs/hooks/cart/use-cart-note-update.js +1 -0
  76. package/dist/cjs/hooks/cart/use-create-cart.js +1 -0
  77. package/dist/cjs/hooks/cart/use-remove-cart-item.js +1 -0
  78. package/dist/cjs/hooks/cart/use-update-cart-item.js +1 -0
  79. package/dist/cjs/hooks/shop/use-collection-query.js +1 -0
  80. package/dist/cjs/hooks/shop/use-collections-query.js +1 -0
  81. package/dist/cjs/hooks/shop/use-product-query.js +1 -0
  82. package/dist/cjs/hooks/shop/use-products-query.js +1 -0
  83. package/dist/cjs/hooks/shop/useShopifyLink.js +47 -0
  84. package/dist/cjs/hooks/shop.js +10 -0
  85. package/dist/cjs/hooks/use-current-device.js +1 -0
  86. package/dist/cjs/hooks/use-lazy-video.js +1 -0
  87. package/dist/cjs/hooks/useAnimations.js +1 -0
  88. package/dist/cjs/hooks/useCartId.js +1 -0
  89. package/dist/cjs/hooks/useCartLine.js +1 -0
  90. package/dist/cjs/hooks/useCartUI.js +1 -0
  91. package/dist/cjs/hooks/useCollection.js +1 -0
  92. package/dist/cjs/hooks/useFetchHandle.js +1 -0
  93. package/dist/cjs/hooks/useFormatMoney.js +1 -0
  94. package/dist/cjs/hooks/useInitialSwatchesOptions.js +1 -0
  95. package/dist/cjs/hooks/useInteraction.js +1 -0
  96. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +1 -0
  97. package/dist/cjs/hooks/useLoadScript.js +1 -0
  98. package/dist/cjs/hooks/useMoney.js +1 -0
  99. package/dist/cjs/hooks/usePrevious.js +1 -0
  100. package/dist/cjs/hooks/useProduct.js +28 -1
  101. package/dist/cjs/hooks/useProductList.js +1 -0
  102. package/dist/cjs/hooks/useSuspenseFetch.js +1 -0
  103. package/dist/cjs/hooks/useSwatchesOptions.js +1 -0
  104. package/dist/cjs/hooks/useToolbarPostPurchase.js +1 -0
  105. package/dist/cjs/index.js +28 -10
  106. package/dist/esm/components/AddOn.js +1 -0
  107. package/dist/esm/components/ComponentAnimation.js +1 -0
  108. package/dist/esm/components/ComponentToolbarPreview.js +33 -19
  109. package/dist/esm/components/ComponentWrapper.js +1 -0
  110. package/dist/esm/components/ComponentWrapperPreview.js +1 -0
  111. package/dist/esm/components/Empty.js +1 -0
  112. package/dist/esm/components/InteractionSuffix.js +2 -1
  113. package/dist/esm/components/Render.js +1 -0
  114. package/dist/esm/components/Render.liquid.js +14 -5
  115. package/dist/esm/components/RenderBlock.js +1 -0
  116. package/dist/esm/components/RenderCustomCode.js +1 -0
  117. package/dist/esm/components/RenderPreview.js +1 -0
  118. package/dist/esm/components/RenderSection.js +1 -0
  119. package/dist/esm/components/ai-generator/AIContentGenerator.js +2 -1
  120. package/dist/esm/components/ai-generator/AIGenContentLoading.js +1 -0
  121. package/dist/esm/components/ai-generator/components/PickProduct.js +1 -0
  122. package/dist/esm/components/ai-generator/components/ToneAndVoice.js +1 -0
  123. package/dist/esm/components/ai-generator/icons/AIIcon.js +1 -0
  124. package/dist/esm/components/ai-generator/icons/CloseIcon.js +1 -0
  125. package/dist/esm/components/ai-generator/icons/DropdownIcon.js +1 -0
  126. package/dist/esm/components/ai-generator/icons/SearchIcon.js +1 -0
  127. package/dist/esm/components/ai-generator/icons/ShowMoreIcon.js +1 -0
  128. package/dist/esm/components/ai-generator/icons/UpgradeIcon.js +1 -0
  129. package/dist/esm/components/ai-generator/icons/WarningIcon.js +1 -0
  130. package/dist/esm/components/resize/Resize.js +1 -0
  131. package/dist/esm/components/resize/Spacing.js +1 -0
  132. package/dist/esm/components/theme-section/CreateThemeSection.js +2 -1
  133. package/dist/esm/components/theme-section/ThemeSectionStatus.js +1 -0
  134. package/dist/esm/components/theme-section/ThemeSectionTooltip.js +1 -0
  135. package/dist/esm/components/toolbar/Tooltip.js +1 -0
  136. package/dist/esm/contexts/AddonContext.js +1 -0
  137. package/dist/esm/contexts/ArticleContext.js +1 -0
  138. package/dist/esm/contexts/ArticleListContext.js +1 -0
  139. package/dist/esm/contexts/BuilderComponent.js +1 -0
  140. package/dist/esm/contexts/BuilderContext.js +1 -0
  141. package/dist/esm/contexts/BuilderPreviewContext.js +1 -0
  142. package/dist/esm/contexts/CartLineContext.js +1 -0
  143. package/dist/esm/contexts/CollectionContext.js +1 -0
  144. package/dist/esm/contexts/ModalContext.js +1 -0
  145. package/dist/esm/contexts/PageContext.js +1 -0
  146. package/dist/esm/contexts/ProductContext.js +17 -1
  147. package/dist/esm/contexts/ProductListContext.js +1 -0
  148. package/dist/esm/contexts/SectionContext.js +1 -0
  149. package/dist/esm/contexts/ShopContext.js +1 -0
  150. package/dist/esm/graphql/fragments/preview-theme-page.generated.js +33 -0
  151. package/dist/esm/graphql/fragments/published-theme-page.generated.js +5 -28
  152. package/dist/esm/graphql/queries/articles.generated.js +1 -0
  153. package/dist/esm/graphql/queries/preview-page.generated.js +8 -12
  154. package/dist/esm/graphql/queries/shop-shopify.generated.js +9 -0
  155. package/dist/esm/helpers/align.js +18 -1
  156. package/dist/esm/helpers/backgroundImage.js +179 -0
  157. package/dist/esm/helpers/compose-advance-style.js +57 -3
  158. package/dist/esm/helpers/filter-toolbar-preview.js +1 -0
  159. package/dist/esm/helpers/interaction/index.js +2 -1
  160. package/dist/esm/helpers/is-empty-children.js +1 -0
  161. package/dist/esm/helpers/layout.js +17 -1
  162. package/dist/esm/helpers/prefetch-queries.js +5 -3
  163. package/dist/esm/helpers/radius.js +3 -1
  164. package/dist/esm/helpers/shadow.js +25 -1
  165. package/dist/esm/helpers/size.js +29 -3
  166. package/dist/esm/helpers/third-party/appConfig.js +61 -1
  167. package/dist/esm/helpers/third-party/appSetting.js +345 -2
  168. package/dist/esm/helpers/third-party/constant.js +12 -2
  169. package/dist/esm/helpers/third-party/getAppBlockConfig.js +17 -1
  170. package/dist/esm/helpers/typography.js +10 -2
  171. package/dist/esm/hooks/animation/useAnimationActions.js +1 -0
  172. package/dist/esm/hooks/animation/useAnimationConfig.js +1 -0
  173. package/dist/esm/hooks/animation/useAnimationPreview.js +1 -0
  174. package/dist/esm/hooks/animation/useAnimationTarget.js +1 -0
  175. package/dist/esm/hooks/animation/useApplyAnimation.js +1 -0
  176. package/dist/esm/hooks/articles/useArticlesQuery.js +1 -0
  177. package/dist/esm/hooks/cart/use-add-to-cart.js +1 -0
  178. package/dist/esm/hooks/cart/use-cart-data.js +1 -0
  179. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +1 -0
  180. package/dist/esm/hooks/cart/use-cart-note-update.js +1 -0
  181. package/dist/esm/hooks/cart/use-create-cart.js +1 -0
  182. package/dist/esm/hooks/cart/use-remove-cart-item.js +1 -0
  183. package/dist/esm/hooks/cart/use-update-cart-item.js +1 -0
  184. package/dist/esm/hooks/shop/use-collection-query.js +1 -0
  185. package/dist/esm/hooks/shop/use-collections-query.js +1 -0
  186. package/dist/esm/hooks/shop/use-product-query.js +1 -0
  187. package/dist/esm/hooks/shop/use-products-query.js +1 -0
  188. package/dist/esm/hooks/shop/useShopifyLink.js +45 -0
  189. package/dist/esm/hooks/shop.js +10 -1
  190. package/dist/esm/hooks/use-current-device.js +1 -0
  191. package/dist/esm/hooks/use-lazy-video.js +1 -0
  192. package/dist/esm/hooks/useAnimations.js +1 -0
  193. package/dist/esm/hooks/useCartId.js +1 -0
  194. package/dist/esm/hooks/useCartLine.js +1 -0
  195. package/dist/esm/hooks/useCartUI.js +1 -0
  196. package/dist/esm/hooks/useCollection.js +1 -0
  197. package/dist/esm/hooks/useFetchHandle.js +1 -0
  198. package/dist/esm/hooks/useFormatMoney.js +1 -0
  199. package/dist/esm/hooks/useInitialSwatchesOptions.js +1 -0
  200. package/dist/esm/hooks/useInteraction.js +1 -0
  201. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +1 -0
  202. package/dist/esm/hooks/useLoadScript.js +1 -0
  203. package/dist/esm/hooks/useMoney.js +1 -0
  204. package/dist/esm/hooks/usePrevious.js +1 -0
  205. package/dist/esm/hooks/useProduct.js +27 -2
  206. package/dist/esm/hooks/useProductList.js +1 -0
  207. package/dist/esm/hooks/useSuspenseFetch.js +1 -0
  208. package/dist/esm/hooks/useSwatchesOptions.js +1 -0
  209. package/dist/esm/hooks/useToolbarPostPurchase.js +1 -0
  210. package/dist/esm/index.js +14 -11
  211. package/dist/types/index.d.ts +826 -263
  212. package/package.json +4 -4
@@ -1,6 +1,8 @@
1
+ import { unstable_serialize } from 'swr';
1
2
  import { getCollection } from './queries/get-collection.js';
2
3
  import { getProduct } from './queries/get-product.js';
3
4
  import { getProducts } from './queries/get-products.js';
5
+ import { generateCollectionQueryKey, generateProductsQueryKey, generateProductQueryKey } from './query.js';
4
6
 
5
7
  const prefetchQueries = (input, options)=>{
6
8
  const queries = [];
@@ -17,7 +19,7 @@ const prefetchQueries = (input, options)=>{
17
19
  isStorefront: options?.isStorefront
18
20
  };
19
21
  data = {
20
- key: `query/product/${variables.id}`,
22
+ key: unstable_serialize(generateProductQueryKey(variables)),
21
23
  func: getProduct,
22
24
  variables
23
25
  };
@@ -35,7 +37,7 @@ const prefetchQueries = (input, options)=>{
35
37
  isStorefront: options?.isStorefront
36
38
  };
37
39
  data = {
38
- key: `query/collection/${variables.id}`,
40
+ key: unstable_serialize(generateCollectionQueryKey(variables)),
39
41
  func: getCollection,
40
42
  variables
41
43
  };
@@ -48,7 +50,7 @@ const prefetchQueries = (input, options)=>{
48
50
  isStorefront: options?.isStorefront
49
51
  };
50
52
  data = {
51
- key: `query/products/${variables.ids.join(',')}`,
53
+ key: unstable_serialize(generateProductsQueryKey(variables)),
52
54
  func: getProducts,
53
55
  variables
54
56
  };
@@ -30,7 +30,8 @@ const getCustomRadius = (state, radius, device)=>{
30
30
  'pill',
31
31
  'rounded',
32
32
  'single',
33
- 'none'
33
+ 'none',
34
+ 'circle'
34
35
  ];
35
36
  if (!radius || !state || !list.includes(radius?.radiusType ?? '')) return {};
36
37
  const suffix = device && device !== 'desktop' ? devicesMapping?.[device] : '';
@@ -127,6 +128,7 @@ const composeCornerCss = (value, important = false)=>{
127
128
  break;
128
129
  case 'circle':
129
130
  case 'none':
131
+ case 'rounded':
130
132
  case 'custom':
131
133
  radiusValue = `
132
134
  ${bblr ? `border-bottom-left-radius: ${bblr}${sub};` : ''}
@@ -53,6 +53,30 @@ const getResponsiveStyleShadow = (value, styleAppliedFor, isEnableShadow)=>{
53
53
  };
54
54
  }
55
55
  };
56
+ const getResponsiveStyleShadowWithoutState = (value, styleAppliedFor, isEnableShadow)=>{
57
+ if (!value) return undefined;
58
+ if ('desktop' in value || 'tablet' in value || 'mobile' in value) {
59
+ return {
60
+ ...getStyleShadow({
61
+ value: value.desktop,
62
+ styleAppliedFor,
63
+ isEnableShadow: isEnableShadow.desktop
64
+ }),
65
+ ...value.tablet && (isEnableShadow.tablet ?? isEnableShadow.desktop) ? getStyleShadow({
66
+ value: value.tablet,
67
+ styleAppliedFor,
68
+ isEnableShadow: isEnableShadow.tablet ?? isEnableShadow.desktop,
69
+ screen: 'tablet'
70
+ }) : undefined,
71
+ ...value.mobile && (isEnableShadow.mobile ?? isEnableShadow.tablet ?? isEnableShadow.desktop) ? getStyleShadow({
72
+ value: value.mobile,
73
+ styleAppliedFor,
74
+ isEnableShadow: isEnableShadow.mobile ?? isEnableShadow.tablet ?? isEnableShadow.desktop,
75
+ screen: 'mobile'
76
+ }) : undefined
77
+ };
78
+ }
79
+ };
56
80
  const composeShadowCss = ({ hasBoxShadow, boxShadowValue, important })=>{
57
81
  if (!hasBoxShadow) return undefined;
58
82
  if (!boxShadowValue) return undefined;
@@ -61,4 +85,4 @@ const composeShadowCss = ({ hasBoxShadow, boxShadowValue, important })=>{
61
85
  return `box-shadow: ${Math.cos(parseFloat(`${boxShadowValue?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${Math.sin(parseFloat(`${boxShadowValue?.angle}`) * Math.PI / 180) * parseFloat(`${distance}`)}${unitDistance} ${boxShadowValue?.blur} ${boxShadowValue?.spread + ' '}${getSingleColorVariable(boxShadowValue?.color)}${sub};`;
62
86
  };
63
87
 
64
- export { composeShadowCss, getResponsiveStyleShadow, getStyleShadow, getStyleShadowState, parseValueWithUnit };
88
+ export { composeShadowCss, getResponsiveStyleShadow, getResponsiveStyleShadowWithoutState, getStyleShadow, getStyleShadowState, parseValueWithUnit };
@@ -101,7 +101,7 @@ const getHeightByShapeGlobalSize = (shapeByLayout)=>{
101
101
  });
102
102
  return result;
103
103
  };
104
- const getWidthByShapeGlobalSize = (shapeByLayout, defaultAuto)=>{
104
+ const getWidthByShapeGlobalSize = (shapeByLayout, defaultAuto, defaultFull)=>{
105
105
  let result = {};
106
106
  const DEVICES = [
107
107
  'desktop',
@@ -110,7 +110,13 @@ const getWidthByShapeGlobalSize = (shapeByLayout, defaultAuto)=>{
110
110
  ];
111
111
  DEVICES.forEach((device)=>{
112
112
  const shapeByDevice = getResponsiveValueByScreen(shapeByLayout, device);
113
- const width = defaultAuto ? shapeByDevice?.width || 'auto' : shapeByDevice?.width;
113
+ let width = shapeByDevice?.width;
114
+ if (defaultAuto) {
115
+ width = shapeByDevice?.width || 'auto';
116
+ }
117
+ if (defaultFull) {
118
+ width = shapeByDevice?.width || '100%';
119
+ }
114
120
  if (width) {
115
121
  result = {
116
122
  ...result,
@@ -182,5 +188,25 @@ const getPaddingGlobalSize = (globalSize)=>{
182
188
  const getValueByDevice = (value, device)=>{
183
189
  return value?.[device] === undefined ? value?.desktop === undefined ? value?.tablet : value?.desktop : value?.[device];
184
190
  };
191
+ const getPaddingStyleByDevice = (value, device)=>{
192
+ if (!value) return {};
193
+ const suffix = devicesMapping[device || ''] ?? '';
194
+ return {
195
+ [`--pl${suffix}`]: value?.left,
196
+ [`--pr${suffix}`]: value?.right,
197
+ [`--pt${suffix}`]: value?.top,
198
+ [`--pb${suffix}`]: value?.bottom
199
+ };
200
+ };
201
+ const getResponsiveStylePadding = (value)=>{
202
+ if (!value) return undefined;
203
+ if ('desktop' in value || 'tablet' in value || 'mobile' in value) {
204
+ return {
205
+ ...getPaddingStyleByDevice(value?.desktop),
206
+ ...getPaddingStyleByDevice(value?.tablet, 'tablet'),
207
+ ...getPaddingStyleByDevice(value?.mobile, 'mobile')
208
+ };
209
+ }
210
+ };
185
211
 
186
- export { composeSize, composeSizeCss, genSizeClass, getAspectRatioGlobalSize, getGlobalSizeGap, getHeightByShapeGlobalSize, getPaddingGlobalSize, getValueByDevice, getWidthByShapeGlobalSize, getWidthHeightGlobalSize, makeGlobalSize, makeGlobalSizeIcon, makeStyleWithDefault };
212
+ export { composeSize, composeSizeCss, genSizeClass, getAspectRatioGlobalSize, getGlobalSizeGap, getHeightByShapeGlobalSize, getPaddingGlobalSize, getPaddingStyleByDevice, getResponsiveStylePadding, getValueByDevice, getWidthByShapeGlobalSize, getWidthHeightGlobalSize, makeGlobalSize, makeGlobalSizeIcon, makeStyleWithDefault };
@@ -184,5 +184,65 @@ const KachingBundlesConfig = {
184
184
  appId: '6c637362-a106-4a32-94ac-94dcfd68cdb8'
185
185
  }
186
186
  };
187
+ const BestBuyFulfillmentConfig = {
188
+ BestBuyFulfillment: {
189
+ appName: 'best-buy-fulfillment',
190
+ appId: 'd9839db8-b94c-4590-ac73-3469abe7ed9b'
191
+ }
192
+ };
193
+ const AftershipEmailMarketingsmsConfig = {
194
+ AftershipEmailMarketingsms: {
195
+ appName: 'aftership-email-marketing-sms',
196
+ appId: '2db13273-f8db-4274-be89-c86a3352fb70'
197
+ }
198
+ };
199
+ const SegunoEmailMarketingConfig = {
200
+ SegunoEmailMarketing: {
201
+ appName: 'seguno-email',
202
+ appId: 'db65571f-fa4d-473d-baa2-283a96dc76bc'
203
+ }
204
+ };
205
+ const TrustooConfig = {
206
+ Trustoo: {
207
+ appName: 'trustoo-io-reviews',
208
+ appId: 'c8f15077-6475-4e86-ad06-b66038d5ba2c'
209
+ }
210
+ };
211
+ const LooxReviewsConfig = {
212
+ LooxReviews: {
213
+ appName: 'loox-reviews',
214
+ appId: '5c3b337f-fd14-4df5-b1d6-80ec13e6e28e'
215
+ }
216
+ };
217
+ const SeoantTrustBadgesIconConfig = {
218
+ SeoantTrustBadgesIcon: {
219
+ appName: 'seoant-trust-badges',
220
+ appId: 'f42f2346-5d14-4b41-a8b9-4b6ee352262e'
221
+ }
222
+ };
223
+ const PowrContactFormBuilderConfig = {
224
+ PowrContactFormBuilder: {
225
+ appName: 'powr-form-builder',
226
+ appId: '1412fe37-d89c-4706-a797-6e2b53cb4a69'
227
+ }
228
+ };
229
+ const MyappgurusProductReviewsConfig = {
230
+ MyappgurusProductReviews: {
231
+ appName: 'mag-product-reviews',
232
+ appId: '0cf5caa0-e138-46b8-999b-520d16633e4c'
233
+ }
234
+ };
235
+ const TrustreviewsProductReviewsConfig = {
236
+ TrustreviewsProductReviews: {
237
+ appName: 'trustreviews',
238
+ appId: '56d0fe1b-e701-4cff-8f84-466a26e09adb'
239
+ }
240
+ };
241
+ const HulkProductOptionsConfig = {
242
+ HulkProductOptions: {
243
+ appName: 'hulk-product-options',
244
+ appId: '380168ef-9475-4244-a291-f66b189208b5'
245
+ }
246
+ };
187
247
 
188
- export { AppointmentBookingCowlendarConfig, BoldSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, EasyBundleBuilderSkailamaConfig, FastBundleBundlesDiscountsConfig, FlyBundlesUpsellsFbtConfig, GloboProductOptionsVariantConfig, GrowaveConfig, InstasellShoppableInstagramConfig, JunipProductReviewsUgcConfig, KachingBundlesConfig, KiteFreeGiftDiscountConfig, LoloyalLoyaltyReferralsConfig, LoopSubscriptionsConfig, PowerfulContactFormBuilderConfig, PreorderNowPreOrderPqConfig, PreorderNowWodPresaleConfig, ProductOptionsCustomizerConfig, PumperBundlesVolumeDiscountConfig, RechargeSubscriptionsConfig, ReviewxpoProductReviewsAppConfig, SelleasyConfig, ShopifyFormsConfig, SimpleBundlesKitsConfig, SkioSubscriptionsYcS20Config, SproutPlantTreesGrowSalesConfig, SubifySubscriptionsConfig, UnlimitedBundlesDiscountsConfig, WhatmoreShoppableVideosreelConfig, WishlistKingConfig, YotpoReviewsV3UgcConfig };
248
+ export { AftershipEmailMarketingsmsConfig, AppointmentBookingCowlendarConfig, BestBuyFulfillmentConfig, BoldSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, EasyBundleBuilderSkailamaConfig, FastBundleBundlesDiscountsConfig, FlyBundlesUpsellsFbtConfig, GloboProductOptionsVariantConfig, GrowaveConfig, HulkProductOptionsConfig, InstasellShoppableInstagramConfig, JunipProductReviewsUgcConfig, KachingBundlesConfig, KiteFreeGiftDiscountConfig, LoloyalLoyaltyReferralsConfig, LoopSubscriptionsConfig, LooxReviewsConfig, MyappgurusProductReviewsConfig, PowerfulContactFormBuilderConfig, PowrContactFormBuilderConfig, PreorderNowPreOrderPqConfig, PreorderNowWodPresaleConfig, ProductOptionsCustomizerConfig, PumperBundlesVolumeDiscountConfig, RechargeSubscriptionsConfig, ReviewxpoProductReviewsAppConfig, SegunoEmailMarketingConfig, SelleasyConfig, SeoantTrustBadgesIconConfig, ShopifyFormsConfig, SimpleBundlesKitsConfig, SkioSubscriptionsYcS20Config, SproutPlantTreesGrowSalesConfig, SubifySubscriptionsConfig, TrustooConfig, TrustreviewsProductReviewsConfig, UnlimitedBundlesDiscountsConfig, WhatmoreShoppableVideosreelConfig, WishlistKingConfig, YotpoReviewsV3UgcConfig };
@@ -97,7 +97,14 @@ const overrideSettings = (tag, currentSetting, appSetting)=>{
97
97
  {
98
98
  return {
99
99
  ...currentSetting,
100
- ['show-views']: appSetting?.showViews
100
+ 'show-views': appSetting?.showViews,
101
+ heading: appSetting?.heading,
102
+ 'template-type': appSetting?.templateType,
103
+ 'title-font-size': parseFloat(appSetting?.titleFontSize),
104
+ 'landscape-padding': parseFloat(appSetting?.landscapePadding),
105
+ 'top-bottom-padding': parseFloat(appSetting?.topBottomPadding),
106
+ 'scroll-video-tile-size': parseFloat(appSetting?.scrollVideoTitleSize),
107
+ 'scroll-video-tile-size-portrait': parseFloat(appSetting?.scrollVideoTitleSizePortrait)
101
108
  };
102
109
  }
103
110
  case 'PowerfulContactFormBuilder':
@@ -107,6 +114,27 @@ const overrideSettings = (tag, currentSetting, appSetting)=>{
107
114
  shortcode: appSetting?.shortcode
108
115
  };
109
116
  }
117
+ case 'AftershipEmailMarketingsms':
118
+ {
119
+ return {
120
+ ...currentSetting,
121
+ embedded_form_id: appSetting?.formId
122
+ };
123
+ }
124
+ case 'SeoantTrustBadgesIcon':
125
+ {
126
+ return {
127
+ ...currentSetting,
128
+ badge_id: appSetting?.BadgeId
129
+ };
130
+ }
131
+ case 'PowrContactFormBuilder':
132
+ {
133
+ return {
134
+ ...currentSetting,
135
+ app_id: appSetting?.appId
136
+ };
137
+ }
110
138
  default:
111
139
  return currentSetting;
112
140
  }
@@ -441,7 +469,320 @@ const GloboProductOptionsVariant = {
441
469
  'app-block': null
442
470
  }
443
471
  };
472
+ const BestBuyFulfillment = {
473
+ BestBuyFulfillment: {
474
+ 'pickup-selector': null
475
+ }
476
+ };
477
+ const AftershipEmailMarketingsms = {
478
+ AftershipEmailMarketingsms: {
479
+ embeded_form: {
480
+ embedded_form_id: ''
481
+ }
482
+ }
483
+ };
484
+ const SegunoEmailMarketing = {
485
+ SegunoEmailMarketing: {
486
+ back_in_stock: {
487
+ heading: '<h3>Get notified when this is back in stock</h3>',
488
+ label_email: 'Email',
489
+ placeholder_email: '',
490
+ show_permission_checkbox: true,
491
+ label_permission: '<p>Also, sign up to receive newsletters</p>',
492
+ label_notify: 'Notify me',
493
+ label_success: '<p>Thanks! You will be notified once the product is back in stock.</p>',
494
+ product_exclusion_tag: 'back-in-stock-excluded',
495
+ default_variant: 'available',
496
+ padding: 0,
497
+ form_gap: 16,
498
+ button_alignment: 'stretch',
499
+ font_size: 16,
500
+ input_font_size: 16,
501
+ button_font_size: 16,
502
+ background_color: '#ffffff',
503
+ text_color: '#121212',
504
+ button_background_color: '#121212',
505
+ button_border_color: '#121212',
506
+ button_text_color: '#ffffff',
507
+ input_background_color: '#ffffff',
508
+ input_border_color: '#121212',
509
+ input_text_color: '#121212',
510
+ custom_css: ''
511
+ },
512
+ newsletter_form: {
513
+ heading: 'Subscribe to our newsletter',
514
+ subheading: '<p>Be the first to know about new collections and exclusive offers.</p>',
515
+ show_first_name: false,
516
+ show_last_name: false,
517
+ show_permission_checkbox: false,
518
+ tags: 'newsletter',
519
+ return_to: '',
520
+ label_first_name: 'First name',
521
+ placeholder_first_name: '',
522
+ label_last_name: 'Last name',
523
+ placeholder_last_name: '',
524
+ label_email: 'Email',
525
+ placeholder_email: '',
526
+ label_permission: '<p>I agree to receive marketing emails</p>',
527
+ label_subscribe: 'Subscribe',
528
+ success_message: 'Thanks for subscribing',
529
+ background_color: '#ffffff',
530
+ text_color: '#1a1b18',
531
+ button_background_color: '#445958',
532
+ button_text_color: '#ffffff'
533
+ }
534
+ }
535
+ };
536
+ const Trustoo = {
537
+ Trustoo: {
538
+ 'barrage-carousel': null,
539
+ 'review-widget': null,
540
+ 'photo-carousel': null,
541
+ 'star-rating-widget': {
542
+ star_size: 20,
543
+ font_size: 16,
544
+ block_aligment: 'flex-start'
545
+ },
546
+ 'text-carousel': null,
547
+ 'card-carousel': null
548
+ }
549
+ };
550
+ const LooxReviews = {
551
+ LooxReviews: {
552
+ 'loox-card-carousel-section': {
553
+ maxWidth: 1100,
554
+ borderRadius: 8,
555
+ itemsPerView: 4,
556
+ mobileItemsPerView: 1,
557
+ maxNumberOfCharacters: 100,
558
+ imageRatio: '0.72',
559
+ reviewerNameColor: '#000000',
560
+ textColor: '#000000',
561
+ itemBackgroundColor: '#ffffff',
562
+ starsColor: '',
563
+ starsBackgroundColor: '#ffffff',
564
+ arrows_backgroundColor: '#FFFFFF',
565
+ arrows_iconColor: '#9A9A9A',
566
+ shadow: 'offset-dark',
567
+ border_active: false,
568
+ border_width: 2,
569
+ border_color: '#000000',
570
+ productIds: ''
571
+ },
572
+ 'loox-gallery-carousel-section': {
573
+ maxWidth: 1100,
574
+ borderRadius: 60,
575
+ itemsPerView: 5,
576
+ mobileItemsPerView: 1,
577
+ imageRatio: '1',
578
+ reviewerNameColor: '#ffffff',
579
+ starsColor: '#ffffff',
580
+ arrows_backgroundColor: '#FFFFFF',
581
+ arrows_iconColor: '#9A9A9A',
582
+ shadow: 'none',
583
+ border_active: false,
584
+ border_width: 2,
585
+ border_color: '#000000',
586
+ productIds: ''
587
+ },
588
+ 'loox-referrals-section': {
589
+ max_width: 1100,
590
+ layout: 'with-photo',
591
+ primary_color: '',
592
+ text_color: '#000000',
593
+ text_field_border_color: '#C9CDD4',
594
+ background: ''
595
+ },
596
+ 'loox-dynamic-section': {
597
+ only_photos: false,
598
+ aggregated: false,
599
+ limit: 20,
600
+ hide_thumbnails: false,
601
+ maxwidth: 1080,
602
+ is_sample: true
603
+ },
604
+ 'loox-snippets-widget': {
605
+ alignment: 'left',
606
+ 'max-width': '',
607
+ 'color-scheme': 'default',
608
+ shadow: '',
609
+ 'show-rating': true,
610
+ 'show-image': true,
611
+ 'hide-arrows-mobile': false,
612
+ 'font-size': 14,
613
+ 'show-border': false,
614
+ 'border-radius': 16,
615
+ 'background-color': '',
616
+ 'text-color': '',
617
+ 'name-color': '',
618
+ 'rating-icon-color': '',
619
+ 'border-color': '',
620
+ 'shadow-color': '',
621
+ 'reviews-limit': 10
622
+ },
623
+ 'loox-rating': {
624
+ contentSize: 16,
625
+ pattern: '',
626
+ hideText: false,
627
+ alignment: '',
628
+ layout: '',
629
+ textColor: '',
630
+ starColor: '',
631
+ showAllReviews: false,
632
+ looxOpenFloatingWidget: false,
633
+ emptyRatingWidget: false
634
+ },
635
+ 'loox-testimonial-carousel-section': {
636
+ maxWidth: 1100,
637
+ desktopFontSize: 32,
638
+ mobileFontSize: 20,
639
+ maxNumberOfCharacters: 100,
640
+ quoteMarkIcon: 'style-1',
641
+ reviewerNameColor: '#000000',
642
+ textColor: '#000000',
643
+ starsColor: '',
644
+ quotesIconColor: '#EAEAEA',
645
+ arrows_iconColor: '#000000',
646
+ arrows_hideOnMobile: true,
647
+ pagination_active: true,
648
+ pagination_selectedDotColor: '#000000',
649
+ pagination_dotColor: '#000000',
650
+ autoplay_active: false,
651
+ autoplay_duration: 2,
652
+ productIds: ''
653
+ },
654
+ 'loox-trust-badge': {
655
+ layout: 'horizontal',
656
+ alignment: 'left',
657
+ 'scheme-type': 'default',
658
+ 'review-title': 'reviews',
659
+ 'rating-icon': true,
660
+ 'average-rating': true,
661
+ 'loox-branding': true,
662
+ 'review-count': true,
663
+ 'open-reviews': true,
664
+ 'show-border': true,
665
+ 'border-radius': 8,
666
+ 'font-size': 20,
667
+ 'background-color': '',
668
+ 'secondary-background-color': '',
669
+ 'text-color': '',
670
+ 'rating-icon-color': '',
671
+ 'border-color': ''
672
+ },
673
+ 'loox-video-slider': {
674
+ 'show-by-tag': false,
675
+ layout: 'spotlight',
676
+ shadow: '',
677
+ 'show-rating': true,
678
+ 'show-reviewer-name': true,
679
+ 'hide-arrows-mobile': true,
680
+ 'auto-play': true,
681
+ 'show-border': false,
682
+ 'border-width': 1,
683
+ 'border-radius': 16,
684
+ 'text-color': '',
685
+ 'rating-icon-color': '',
686
+ 'border-color': '',
687
+ 'play-button-color': '',
688
+ 'shadow-color': '',
689
+ 'product-id': ''
690
+ }
691
+ }
692
+ };
693
+ const SeoantTrustBadgesIcon = {
694
+ SeoantTrustBadgesIcon: {
695
+ star_rating: {
696
+ badge_id: null
697
+ }
698
+ }
699
+ };
700
+ const PowrContactFormBuilder = {
701
+ PowrContactFormBuilder: {
702
+ 'app-block': {
703
+ app_id: ''
704
+ }
705
+ }
706
+ };
707
+ const MyappgurusProductReviews = {
708
+ MyappgurusProductReviews: {
709
+ allReviews: {
710
+ Show_by_label: ''
711
+ },
712
+ allReviewsCounter: {
713
+ out_of_label: '',
714
+ stars_based_on_label: '',
715
+ reviews_label: ''
716
+ },
717
+ form: {
718
+ block_heading: '',
719
+ no_rating: '',
720
+ subtitle2: '',
721
+ review_btn: '',
722
+ see_all_reviews_label: '',
723
+ form_heading: '',
724
+ name_label: '',
725
+ email_label: '',
726
+ review_title_label: '',
727
+ review_description_label: '',
728
+ ratings_label: '',
729
+ delivery_ratings_label: '',
730
+ payment_ratings_label: '',
731
+ price_ratings_label: '',
732
+ review_image_label: '',
733
+ submit_btn_label: '',
734
+ cancel_btn_label: '',
735
+ sort_label: '',
736
+ sort1_label: '',
737
+ sort2_label: '',
738
+ sort3_label: '',
739
+ showing_label: '',
740
+ to_label: '',
741
+ of_label: '',
742
+ results_label: ''
743
+ },
744
+ star: null
745
+ }
746
+ };
747
+ const TrustreviewsProductReviews = {
748
+ TrustreviewsProductReviews: {
749
+ questions_widget: {
750
+ product: '{{ product }}'
751
+ },
752
+ 'review-carousel': null,
753
+ reviews_text_widget: null,
754
+ reviews_widget: {
755
+ product: '{{ product }}'
756
+ },
757
+ shop_reviews_widget: null,
758
+ star_rating: {
759
+ product: '{{product}}',
760
+ hide_on_no_reviews: false,
761
+ enable_jsonld: false,
762
+ starsize: 16,
763
+ addtional_text: ''
764
+ },
765
+ 'reviews-testimonials': null,
766
+ all_reviews_widget: null,
767
+ 'review-cards': null,
768
+ 'review-gallery': null,
769
+ medals: null
770
+ }
771
+ };
772
+ const HulkProductOptions = {
773
+ HulkProductOptions: {
774
+ option_block: null
775
+ }
776
+ };
444
777
  const composeSettingsByWidgetType = {
778
+ ...HulkProductOptions,
779
+ ...MyappgurusProductReviews,
780
+ ...TrustreviewsProductReviews,
781
+ ...PowrContactFormBuilder,
782
+ ...SeoantTrustBadgesIcon,
783
+ ...SegunoEmailMarketing,
784
+ ...AftershipEmailMarketingsms,
785
+ ...BestBuyFulfillment,
445
786
  ...GloboProductOptionsVariant,
446
787
  ...WishlistKing,
447
788
  ...LoloyalLoyaltyReferrals,
@@ -472,7 +813,9 @@ const composeSettingsByWidgetType = {
472
813
  ...YotpoReviews,
473
814
  ...BoldSubscriptions,
474
815
  ...Growave,
475
- ...KachingBundles
816
+ ...KachingBundles,
817
+ ...Trustoo,
818
+ ...LooxReviews
476
819
  };
477
820
 
478
821
  export { composeSettingsByWidgetType, overrideSettings };
@@ -1,4 +1,4 @@
1
- import { RechargeSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, SubifySubscriptionsConfig, SelleasyConfig, LoopSubscriptionsConfig, SkioSubscriptionsYcS20Config, ShopifyFormsConfig, ReviewxpoProductReviewsAppConfig, PumperBundlesVolumeDiscountConfig, UnlimitedBundlesDiscountsConfig, KiteFreeGiftDiscountConfig, FastBundleBundlesDiscountsConfig, SimpleBundlesKitsConfig, EasyBundleBuilderSkailamaConfig, PreorderNowPreOrderPqConfig, FlyBundlesUpsellsFbtConfig, JunipProductReviewsUgcConfig, PreorderNowWodPresaleConfig, YotpoReviewsV3UgcConfig, WhatmoreShoppableVideosreelConfig, ProductOptionsCustomizerConfig, AppointmentBookingCowlendarConfig, BoldSubscriptionsConfig, SproutPlantTreesGrowSalesConfig, InstasellShoppableInstagramConfig, GrowaveConfig, LoloyalLoyaltyReferralsConfig, PowerfulContactFormBuilderConfig, WishlistKingConfig, GloboProductOptionsVariantConfig, KachingBundlesConfig } from './appConfig.js';
1
+ import { RechargeSubscriptionsConfig, BonLoyaltyRewardsReferralsConfig, SubifySubscriptionsConfig, SelleasyConfig, LoopSubscriptionsConfig, SkioSubscriptionsYcS20Config, ShopifyFormsConfig, ReviewxpoProductReviewsAppConfig, PumperBundlesVolumeDiscountConfig, UnlimitedBundlesDiscountsConfig, KiteFreeGiftDiscountConfig, FastBundleBundlesDiscountsConfig, SimpleBundlesKitsConfig, EasyBundleBuilderSkailamaConfig, PreorderNowPreOrderPqConfig, FlyBundlesUpsellsFbtConfig, JunipProductReviewsUgcConfig, PreorderNowWodPresaleConfig, YotpoReviewsV3UgcConfig, WhatmoreShoppableVideosreelConfig, ProductOptionsCustomizerConfig, AppointmentBookingCowlendarConfig, BoldSubscriptionsConfig, SproutPlantTreesGrowSalesConfig, InstasellShoppableInstagramConfig, GrowaveConfig, LoloyalLoyaltyReferralsConfig, PowerfulContactFormBuilderConfig, WishlistKingConfig, GloboProductOptionsVariantConfig, KachingBundlesConfig, BestBuyFulfillmentConfig, AftershipEmailMarketingsmsConfig, SegunoEmailMarketingConfig, TrustooConfig, LooxReviewsConfig, SeoantTrustBadgesIconConfig, PowrContactFormBuilderConfig, MyappgurusProductReviewsConfig, TrustreviewsProductReviewsConfig, HulkProductOptionsConfig } from './appConfig.js';
2
2
 
3
3
  const mapShopifyAppMeta = {
4
4
  ...RechargeSubscriptionsConfig,
@@ -31,7 +31,17 @@ const mapShopifyAppMeta = {
31
31
  ...PowerfulContactFormBuilderConfig,
32
32
  ...WishlistKingConfig,
33
33
  ...GloboProductOptionsVariantConfig,
34
- ...KachingBundlesConfig
34
+ ...KachingBundlesConfig,
35
+ ...BestBuyFulfillmentConfig,
36
+ ...AftershipEmailMarketingsmsConfig,
37
+ ...SegunoEmailMarketingConfig,
38
+ ...TrustooConfig,
39
+ ...LooxReviewsConfig,
40
+ ...SeoantTrustBadgesIconConfig,
41
+ ...PowrContactFormBuilderConfig,
42
+ ...MyappgurusProductReviewsConfig,
43
+ ...TrustreviewsProductReviewsConfig,
44
+ ...HulkProductOptionsConfig
35
45
  };
36
46
  const THIRD_PARTY_APP_BLOCK_ID_PREFIX = 'gp_app';
37
47
 
@@ -2,9 +2,25 @@ import { composeSettingsByWidgetType, overrideSettings } from './appSetting.js';
2
2
  import { getAppBlockType } from './getAppBlockType.js';
3
3
 
4
4
  const listAppUpdateNewVersion = [
5
- 'Growave'
5
+ 'Growave',
6
+ 'Trustoo',
7
+ 'LooxReviews'
6
8
  ];
9
+ const listThirdPartyRejectAppBlock = {
10
+ YotpoReviews: {
11
+ conditionToReject: 'settings?.version === "v1"'
12
+ },
13
+ Trustoo: {
14
+ conditionToReject: 'settings?.version === "v1"'
15
+ },
16
+ LooxReviews: {
17
+ conditionToReject: 'settings?.version === "v1"'
18
+ }
19
+ };
7
20
  const getAppBlockConfig = (tag, appBlockId, settings)=>{
21
+ if (listThirdPartyRejectAppBlock[tag] && eval(listThirdPartyRejectAppBlock[tag]?.conditionToReject ?? '')) {
22
+ return;
23
+ }
8
24
  let widgetType = settings?.widgetType;
9
25
  if (listAppUpdateNewVersion.includes(tag)) {
10
26
  widgetType = settings?.widgetTypeV2;
@@ -22,7 +22,7 @@ const composeTypographyV2Css = (typography, isImportant)=>{
22
22
  const typographyCustom = typography?.custom;
23
23
  const { fontFamily, fontSize, fontWeight, lineHeight, letterSpacing } = typographyCustom ?? {};
24
24
  const typographyAttrs = typography?.attrs;
25
- const { bold, italic, underline, transform } = typographyAttrs ?? {};
25
+ const { bold, italic, underline, transform, color } = typographyAttrs ?? {};
26
26
  const composeImportant = isImportant ? '!important' : '';
27
27
  return `
28
28
  ${fontFamily ? `font-family: ${composeFontFamilyTypographyV2({
@@ -30,6 +30,7 @@ const composeTypographyV2Css = (typography, isImportant)=>{
30
30
  type: typography?.type
31
31
  })} ${composeImportant}` : ''};
32
32
  ${fontSize?.desktop ? `font-size: ${fontSize?.desktop} ${composeImportant}` : ''};
33
+ ${color ? `color: ${color} ${composeImportant}` : ''};
33
34
  ${bold ? `font-weight: bold ${composeImportant}` : fontWeight ? `font-weight: ${fontWeight} ${composeImportant}` : ''};
34
35
  ${letterSpacing ? `letter-spacing: ${letterSpacing} ${composeImportant}` : ''};
35
36
  ${lineHeight?.desktop ? `line-height: ${lineHeight?.desktop} ${composeImportant}` : ''};
@@ -38,6 +39,13 @@ const composeTypographyV2Css = (typography, isImportant)=>{
38
39
  ${transform ? `text-transform: ${transform} ${composeImportant}` : ''};
39
40
  `;
40
41
  };
42
+ const composeTextHoverColorCss = (device, colorHoverConfig, isImportant)=>{
43
+ if (colorHoverConfig) {
44
+ const composeImportant = isImportant ? '!important' : '';
45
+ const color = colorHoverConfig[device]?.hover;
46
+ return `${color ? `color: ${color} ${composeImportant}` : ''}`;
47
+ }
48
+ };
41
49
  function getCustomCSSByDevice(typography, device) {
42
50
  if (!typography || !device) return {};
43
51
  const suffix = device === 'desktop' || !device ? '' : `-${device}`;
@@ -146,4 +154,4 @@ const isCustomTypo = (customTypo)=>{
146
154
  return customTypo && Object.keys(customTypo).length > 1 || customTypo && Object.keys(customTypo).length === 1 && !customTypo.fontSize;
147
155
  };
148
156
 
149
- export { composeFallbackTypographyStyle, composeFontFamilyTypographyV2, composeTypography, composeTypographyAttr, composeTypographyClassName, composeTypographyCss, composeTypographyStyle, composeTypographyV2, composeTypographyV2Css, genTypoClass };
157
+ export { composeFallbackTypographyStyle, composeFontFamilyTypographyV2, composeTextHoverColorCss, composeTypography, composeTypographyAttr, composeTypographyClassName, composeTypographyCss, composeTypographyStyle, composeTypographyV2, composeTypographyV2Css, genTypoClass };
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useRef, useCallback } from 'react';
2
3
 
3
4
  const useAnimationActions = ()=>{