@gem-sdk/components 2.1.13-staging.3 → 2.1.13-staging.30

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 (182) hide show
  1. package/dist/cjs/article/components/ArticleImage.js +2 -1
  2. package/dist/cjs/article/components/ArticleList.js +1 -1
  3. package/dist/cjs/banner/components/hero-banner/index.liquid.js +12 -13
  4. package/dist/cjs/banner/components/hero-banner/utils/index.js +5 -3
  5. package/dist/cjs/builder.js +21 -1
  6. package/dist/cjs/carousel/components/Carousel.liquid.js +3 -2
  7. package/dist/cjs/collection/components/CollectionDescription.js +101 -7
  8. package/dist/cjs/collection/components/CollectionDescription.liquid.js +102 -9
  9. package/dist/cjs/collection/setting/CollectionDescription.js +128 -0
  10. package/dist/cjs/form/components/textarea/TextArea.liquid.js +2 -2
  11. package/dist/cjs/image/components/AdaptiveImage.liquid.js +6 -5
  12. package/dist/cjs/image/components/Image.js +0 -1
  13. package/dist/cjs/image/components/Image.liquid.js +6 -5
  14. package/dist/cjs/image/components/NextImage.liquid.js +4 -3
  15. package/dist/cjs/image-comparison/components/CompareImage.liquid.js +7 -3
  16. package/dist/cjs/index.js +20 -0
  17. package/dist/cjs/index.liquid.js +22 -2
  18. package/dist/cjs/marquee/components/MarqueeBase.liquid.js +7 -26
  19. package/dist/cjs/product/components/Product.liquid.js +3 -2
  20. package/dist/cjs/product/components/ProductBadge/index.liquid.js +13 -4
  21. package/dist/cjs/product/components/ProductBadge/utils/generateLiquidContent.js +2 -2
  22. package/dist/cjs/product/components/ProductDescription.liquid.js +21 -5
  23. package/dist/cjs/product/components/ProductImagesV2/jsx/ProductImages.js +2 -9
  24. package/dist/cjs/product/components/ProductImagesV2/jsx/components/ProductFeaturedImageCarousel.js +12 -4
  25. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +6 -5
  26. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
  27. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
  28. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
  29. package/dist/cjs/product/components/ProductVariants/index.liquid.js +11 -18
  30. package/dist/cjs/product/components/ProductVariants/variants/Base.liquid.js +1 -0
  31. package/dist/cjs/product/components/ProductVariants/variants/Dropdown.liquid.js +26 -12
  32. package/dist/cjs/product/components/ProductVariants/variants/DropdownGroup.liquid.js +4 -37
  33. package/dist/cjs/product/components/ProductVariants/variants/combine/index.js +47 -0
  34. package/dist/cjs/product/components/Sku.js +2 -14
  35. package/dist/cjs/product/setting/ProductBadge.js +5 -0
  36. package/dist/cjs/product/setting/ProductDescription.js +5 -0
  37. package/dist/cjs/tab/hooks/useTabInteraction.js +13 -9
  38. package/dist/cjs/third-party/components/AlsoBoughtCbb.js +32 -0
  39. package/dist/cjs/third-party/components/AlsoBoughtCbb.liquid.js +21 -0
  40. package/dist/cjs/third-party/components/BfSizeChartSizeGuide.js +32 -0
  41. package/dist/cjs/third-party/components/BfSizeChartSizeGuide.liquid.js +12 -0
  42. package/dist/cjs/third-party/components/EssentialAnnouncementBar.js +32 -0
  43. package/dist/cjs/third-party/components/EssentialAnnouncementBar.liquid.js +12 -0
  44. package/dist/cjs/third-party/components/EssentialCountdownTimerBar.js +32 -0
  45. package/dist/cjs/third-party/components/EssentialCountdownTimerBar.liquid.js +12 -0
  46. package/dist/cjs/third-party/components/EstimatedDeliveryDatePlus.js +32 -0
  47. package/dist/cjs/third-party/components/EstimatedDeliveryDatePlus.liquid.js +12 -0
  48. package/dist/cjs/third-party/components/GloColorSwatchvariantImage.js +32 -0
  49. package/dist/cjs/third-party/components/GloColorSwatchvariantImage.liquid.js +12 -0
  50. package/dist/cjs/third-party/components/HextomFreeShippingBar.js +32 -0
  51. package/dist/cjs/third-party/components/HextomFreeShippingBar.liquid.js +12 -0
  52. package/dist/cjs/third-party/components/NotifyBackInStockPreOrder.js +1 -1
  53. package/dist/cjs/third-party/components/OkendoReviewsLoyalty.js +32 -0
  54. package/dist/cjs/third-party/components/OkendoReviewsLoyalty.liquid.js +12 -0
  55. package/dist/cjs/third-party/components/QikifyUpsell.js +22 -10
  56. package/dist/cjs/third-party/components/QikifyUpsell.liquid.js +3 -46
  57. package/dist/cjs/third-party/components/ShopifySubscriptions.liquid.js +3 -2
  58. package/dist/cjs/third-party/components/StellarDeliveryDatePickup.js +32 -0
  59. package/dist/cjs/third-party/components/StellarDeliveryDatePickup.liquid.js +21 -0
  60. package/dist/cjs/third-party/components/TrustedsiteTrustBadges.js +32 -0
  61. package/dist/cjs/third-party/components/TrustedsiteTrustBadges.liquid.js +12 -0
  62. package/dist/cjs/third-party/configs/AlsoBoughtCbb.js +12 -0
  63. package/dist/cjs/third-party/configs/BfSizeChartSizeGuide.js +12 -0
  64. package/dist/cjs/third-party/configs/EssentialAnnouncementBar.js +12 -0
  65. package/dist/cjs/third-party/configs/EssentialCountdownTimerBar.js +12 -0
  66. package/dist/cjs/third-party/configs/EstimatedDeliveryDatePlus.js +12 -0
  67. package/dist/cjs/third-party/configs/GloColorSwatchvariantImage.js +12 -0
  68. package/dist/cjs/third-party/configs/HextomFreeShippingBar.js +12 -0
  69. package/dist/cjs/third-party/configs/OkendoReviewsLoyalty.js +12 -0
  70. package/dist/cjs/third-party/configs/StellarDeliveryDatePickup.js +12 -0
  71. package/dist/cjs/third-party/configs/TrustedsiteTrustBadges.js +12 -0
  72. package/dist/cjs/third-party/helpers/thirdParty.js +1 -1
  73. package/dist/cjs/third-party/next.js +51 -1
  74. package/dist/cjs/third-party/setting/AlsoBoughtCbb.js +127 -0
  75. package/dist/cjs/third-party/setting/BfSizeChartSizeGuide.js +131 -0
  76. package/dist/cjs/third-party/setting/EssentialAnnouncementBar.js +142 -0
  77. package/dist/cjs/third-party/setting/EssentialCountdownTimerBar.js +142 -0
  78. package/dist/cjs/third-party/setting/EstimatedDeliveryDatePlus.js +128 -0
  79. package/dist/cjs/third-party/setting/GloColorSwatchvariantImage.js +152 -0
  80. package/dist/cjs/third-party/setting/HextomFreeShippingBar.js +128 -0
  81. package/dist/cjs/third-party/setting/NotifyBackInStockPreOrder.js +2 -2
  82. package/dist/cjs/third-party/setting/OkendoReviewsLoyalty.js +171 -0
  83. package/dist/cjs/third-party/setting/QikifyUpsell.js +11 -1
  84. package/dist/cjs/third-party/setting/ShopifySubscriptions.js +22 -0
  85. package/dist/cjs/third-party/setting/StellarDeliveryDatePickup.js +127 -0
  86. package/dist/cjs/third-party/setting/TrustedsiteTrustBadges.js +177 -0
  87. package/dist/cjs/third-party/setting/index.js +21 -1
  88. package/dist/cjs/video/components/HTML5Embed.js +2 -2
  89. package/dist/cjs/video/components/HTML5Embed.liquid.js +6 -3
  90. package/dist/cjs/video/components/LiteYouTubeEmbed.liquid.js +5 -3
  91. package/dist/esm/article/components/ArticleImage.js +2 -1
  92. package/dist/esm/article/components/ArticleList.js +1 -1
  93. package/dist/esm/banner/components/hero-banner/index.liquid.js +12 -13
  94. package/dist/esm/banner/components/hero-banner/utils/index.js +5 -3
  95. package/dist/esm/builder.js +21 -1
  96. package/dist/esm/carousel/components/Carousel.liquid.js +3 -2
  97. package/dist/esm/collection/components/CollectionDescription.js +103 -9
  98. package/dist/esm/collection/components/CollectionDescription.liquid.js +103 -10
  99. package/dist/esm/collection/setting/CollectionDescription.js +128 -0
  100. package/dist/esm/form/components/textarea/TextArea.liquid.js +2 -2
  101. package/dist/esm/image/components/AdaptiveImage.liquid.js +6 -5
  102. package/dist/esm/image/components/Image.js +0 -1
  103. package/dist/esm/image/components/Image.liquid.js +6 -5
  104. package/dist/esm/image/components/NextImage.liquid.js +4 -3
  105. package/dist/esm/image-comparison/components/CompareImage.liquid.js +7 -3
  106. package/dist/esm/index.js +10 -0
  107. package/dist/esm/index.liquid.js +11 -1
  108. package/dist/esm/marquee/components/MarqueeBase.liquid.js +7 -26
  109. package/dist/esm/product/components/Product.liquid.js +3 -2
  110. package/dist/esm/product/components/ProductBadge/index.liquid.js +14 -5
  111. package/dist/esm/product/components/ProductBadge/utils/generateLiquidContent.js +2 -2
  112. package/dist/esm/product/components/ProductDescription.liquid.js +22 -6
  113. package/dist/esm/product/components/ProductImagesV2/jsx/ProductImages.js +2 -9
  114. package/dist/esm/product/components/ProductImagesV2/jsx/components/ProductFeaturedImageCarousel.js +13 -5
  115. package/dist/esm/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +6 -5
  116. package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
  117. package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
  118. package/dist/esm/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
  119. package/dist/esm/product/components/ProductVariants/index.liquid.js +12 -19
  120. package/dist/esm/product/components/ProductVariants/variants/Base.liquid.js +1 -0
  121. package/dist/esm/product/components/ProductVariants/variants/Dropdown.liquid.js +26 -12
  122. package/dist/esm/product/components/ProductVariants/variants/DropdownGroup.liquid.js +4 -37
  123. package/dist/esm/product/components/ProductVariants/variants/combine/index.js +44 -0
  124. package/dist/esm/product/components/Sku.js +3 -15
  125. package/dist/esm/product/setting/ProductBadge.js +5 -0
  126. package/dist/esm/product/setting/ProductDescription.js +5 -0
  127. package/dist/esm/tab/hooks/useTabInteraction.js +14 -10
  128. package/dist/esm/third-party/components/AlsoBoughtCbb.js +28 -0
  129. package/dist/esm/third-party/components/AlsoBoughtCbb.liquid.js +17 -0
  130. package/dist/esm/third-party/components/BfSizeChartSizeGuide.js +28 -0
  131. package/dist/esm/third-party/components/BfSizeChartSizeGuide.liquid.js +8 -0
  132. package/dist/esm/third-party/components/EssentialAnnouncementBar.js +28 -0
  133. package/dist/esm/third-party/components/EssentialAnnouncementBar.liquid.js +8 -0
  134. package/dist/esm/third-party/components/EssentialCountdownTimerBar.js +28 -0
  135. package/dist/esm/third-party/components/EssentialCountdownTimerBar.liquid.js +8 -0
  136. package/dist/esm/third-party/components/EstimatedDeliveryDatePlus.js +28 -0
  137. package/dist/esm/third-party/components/EstimatedDeliveryDatePlus.liquid.js +8 -0
  138. package/dist/esm/third-party/components/GloColorSwatchvariantImage.js +28 -0
  139. package/dist/esm/third-party/components/GloColorSwatchvariantImage.liquid.js +8 -0
  140. package/dist/esm/third-party/components/HextomFreeShippingBar.js +28 -0
  141. package/dist/esm/third-party/components/HextomFreeShippingBar.liquid.js +8 -0
  142. package/dist/esm/third-party/components/NotifyBackInStockPreOrder.js +1 -1
  143. package/dist/esm/third-party/components/OkendoReviewsLoyalty.js +28 -0
  144. package/dist/esm/third-party/components/OkendoReviewsLoyalty.liquid.js +8 -0
  145. package/dist/esm/third-party/components/QikifyUpsell.js +22 -10
  146. package/dist/esm/third-party/components/QikifyUpsell.liquid.js +3 -46
  147. package/dist/esm/third-party/components/ShopifySubscriptions.liquid.js +3 -2
  148. package/dist/esm/third-party/components/StellarDeliveryDatePickup.js +28 -0
  149. package/dist/esm/third-party/components/StellarDeliveryDatePickup.liquid.js +17 -0
  150. package/dist/esm/third-party/components/TrustedsiteTrustBadges.js +28 -0
  151. package/dist/esm/third-party/components/TrustedsiteTrustBadges.liquid.js +8 -0
  152. package/dist/esm/third-party/configs/AlsoBoughtCbb.js +8 -0
  153. package/dist/esm/third-party/configs/BfSizeChartSizeGuide.js +8 -0
  154. package/dist/esm/third-party/configs/EssentialAnnouncementBar.js +8 -0
  155. package/dist/esm/third-party/configs/EssentialCountdownTimerBar.js +8 -0
  156. package/dist/esm/third-party/configs/EstimatedDeliveryDatePlus.js +8 -0
  157. package/dist/esm/third-party/configs/GloColorSwatchvariantImage.js +8 -0
  158. package/dist/esm/third-party/configs/HextomFreeShippingBar.js +8 -0
  159. package/dist/esm/third-party/configs/OkendoReviewsLoyalty.js +8 -0
  160. package/dist/esm/third-party/configs/StellarDeliveryDatePickup.js +8 -0
  161. package/dist/esm/third-party/configs/TrustedsiteTrustBadges.js +8 -0
  162. package/dist/esm/third-party/helpers/thirdParty.js +1 -1
  163. package/dist/esm/third-party/next.js +51 -1
  164. package/dist/esm/third-party/setting/AlsoBoughtCbb.js +123 -0
  165. package/dist/esm/third-party/setting/BfSizeChartSizeGuide.js +127 -0
  166. package/dist/esm/third-party/setting/EssentialAnnouncementBar.js +138 -0
  167. package/dist/esm/third-party/setting/EssentialCountdownTimerBar.js +138 -0
  168. package/dist/esm/third-party/setting/EstimatedDeliveryDatePlus.js +124 -0
  169. package/dist/esm/third-party/setting/GloColorSwatchvariantImage.js +148 -0
  170. package/dist/esm/third-party/setting/HextomFreeShippingBar.js +124 -0
  171. package/dist/esm/third-party/setting/NotifyBackInStockPreOrder.js +2 -2
  172. package/dist/esm/third-party/setting/OkendoReviewsLoyalty.js +167 -0
  173. package/dist/esm/third-party/setting/QikifyUpsell.js +11 -1
  174. package/dist/esm/third-party/setting/ShopifySubscriptions.js +22 -0
  175. package/dist/esm/third-party/setting/StellarDeliveryDatePickup.js +123 -0
  176. package/dist/esm/third-party/setting/TrustedsiteTrustBadges.js +173 -0
  177. package/dist/esm/third-party/setting/index.js +224 -204
  178. package/dist/esm/video/components/HTML5Embed.js +2 -2
  179. package/dist/esm/video/components/HTML5Embed.liquid.js +6 -3
  180. package/dist/esm/video/components/LiteYouTubeEmbed.liquid.js +5 -3
  181. package/dist/types/index.d.ts +257 -36
  182. package/package.json +2 -2
@@ -29,7 +29,8 @@ const ArticleImage = ({ className, setting = {}, styles = {}, advanced, builderP
29
29
  setting: {
30
30
  ...setting,
31
31
  alt: image.alt,
32
- image
32
+ image,
33
+ disableNoDataState: true
33
34
  },
34
35
  styles: styles,
35
36
  advanced: advanced
@@ -14,7 +14,7 @@ const ArticleList = ({ styles, setting, className, children, builderProps })=>{
14
14
  const { articleSetting, numberOfArticle } = setting ?? {};
15
15
  const { articleIds, articlePickType } = articleSetting ?? {};
16
16
  const articlesQuery = {
17
- first: 10,
17
+ first: articleIds?.length ?? 50,
18
18
  where: {
19
19
  baseIDIn: [
20
20
  ...articleSetting?.articleIds ?? []
@@ -14,7 +14,7 @@ var NextImage_liquid = require('../../../image/components/NextImage.liquid.js');
14
14
  var getSrcSet = require('../../../image/helpers/getSrcSet.js');
15
15
  var helpers$1 = require('../../../image/components/helpers.js');
16
16
 
17
- const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, enableLazyloadImage = true })=>{
17
+ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, enableLazyLoadImage = true })=>{
18
18
  const { link, layout, verticalAlign, order, alignBanner, alt, title } = setting ?? {};
19
19
  const { background, overlayEnable, overlayColor, overlayOpacity, verticalGutter, contentWidth, hoverEffect, hoverEffectDuration, hoverEffectScale, cornerBg, borderBg, hasActiveShadow, shadowBg, sizeSetting, contentPadding } = styles ?? {};
20
20
  const enableParallax = setting?.enableParallax || false;
@@ -43,9 +43,6 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
43
43
  } else if (data.videoType === 'html5') {
44
44
  delete data.video;
45
45
  }
46
- if (data.type !== 'image') {
47
- delete data.image;
48
- }
49
46
  }
50
47
  return background;
51
48
  };
@@ -134,6 +131,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
134
131
  tablet: helpers$1.createBlurDataURL(srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.tablet?.height ?? srcSet?.desktop?.width ?? 0),
135
132
  mobile: helpers$1.createBlurDataURL(srcSet?.mobile?.width ?? srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.mobile?.height ?? srcSet?.tablet?.height ?? srcSet?.desktop?.width ?? 0)
136
133
  };
134
+ const enableLazyLoad = !setting?.preload && enableLazyLoadImage;
137
135
  const renderInnerHeroBanner = ()=>{
138
136
  return core.template /* liquid */ `
139
137
  <div
@@ -183,7 +181,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
183
181
  alt,
184
182
  title,
185
183
  imagePlaceholder,
186
- enableLazyloadImage
184
+ enableLazyLoadImage
187
185
  })}
188
186
  <div class="${core.cls('gp-absolute gp-w-full gp-h-full')}">
189
187
  <div
@@ -197,9 +195,10 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
197
195
  'clip-path': index.getClipPath(borderBg?.width, cornerBg)
198
196
  }}"
199
197
  >
200
- <div class="${core.cls('hero-banner-bg-parallax gp-hero-banner-image-background gp_lazybg', {
198
+ <div class="${core.cls('hero-banner-bg-parallax gp-hero-banner-image-background', {
201
199
  'gp-duration-[var(--duration)] group-hover/hero:gp-scale-[var(--scale)]': hoverEffect,
202
- 'gp-transition-transform': hoverEffect
200
+ 'gp-transition-transform': hoverEffect,
201
+ gp_lazybg: enableLazyLoad
203
202
  })}"
204
203
  style="${{
205
204
  ...core.getStyleBackgroundByDevice(background, {
@@ -208,9 +207,9 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
208
207
  liquid: true
209
208
  }),
210
209
  ...core.makeStyleResponsive('bgi', {
211
- desktop: `url('${bgiEnableByDevice['desktop'] ? setting?.preload || !enableLazyloadImage ? getSrcSet.getImageSrc(core.getResponsiveValueByScreen(srcSet, 'desktop'), 'desktop') : imagePlaceholder['desktop'] : ''}')`,
212
- tablet: `url('${bgiEnableByDevice['tablet'] ? setting?.preload || !enableLazyloadImage ? getSrcSet.getImageSrc(core.getResponsiveValueByScreen(srcSet, 'tablet'), 'tablet') : imagePlaceholder['tablet'] : ''}')`,
213
- mobile: `url('${bgiEnableByDevice['mobile'] ? setting?.preload || !enableLazyloadImage ? getSrcSet.getImageSrc(core.getResponsiveValueByScreen(srcSet, 'mobile'), 'mobile') : imagePlaceholder['mobile'] : ''}')`
210
+ desktop: `url('${bgiEnableByDevice['desktop'] ? !enableLazyLoad ? getSrcSet.getImageSrc(core.getResponsiveValueByScreen(srcSet, 'desktop'), 'desktop') : imagePlaceholder['desktop'] : ''}')`,
211
+ tablet: `url('${bgiEnableByDevice['tablet'] ? !enableLazyLoad ? getSrcSet.getImageSrc(core.getResponsiveValueByScreen(srcSet, 'tablet'), 'tablet') : imagePlaceholder['tablet'] : ''}')`,
212
+ mobile: `url('${bgiEnableByDevice['mobile'] ? !enableLazyLoad ? getSrcSet.getImageSrc(core.getResponsiveValueByScreen(srcSet, 'mobile'), 'mobile') : imagePlaceholder['mobile'] : ''}')`
214
213
  }),
215
214
  '--duration': `${hoverEffectDuration ?? 0}s`,
216
215
  '--scale': hoverEffectScale ?? 1,
@@ -218,17 +217,17 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
218
217
  ...index.getStyleHeroBannerBg(backgroundResponsive || {}, enableParallax)
219
218
  }}"
220
219
  >
220
+ ${embed()}
221
221
  ${!setting?.preload ? getSrcSet.DEVICES.map((device)=>{
222
222
  return core.RenderIf(getEnableBgImageByDevice(device), NextImage_liquid.default({
223
223
  src: getSrcSet.getImageSrc(core.getResponsiveValueByScreen(srcSet, device), device),
224
224
  alt: `lazy image ${device}`,
225
225
  className: `gp-absolute gp-top-0 gp-invisible gp-w-full gp_lazyload gp-h-full gp_lazyforbg ${device === 'tablet' ? 'gp_lazybg_tl' : ''} ${device === 'mobile' ? 'gp_lazybg_mb' : ''}`,
226
226
  isDisableAspectStyle: true,
227
- enableLazyloadImage
227
+ enableLazyLoadImage
228
228
  }));
229
229
  }).join('') : ''}
230
- </div>
231
- ${embed()} </div>
230
+ </div></div>
232
231
  </div>
233
232
  ${core.RenderIf(overlayEnable, core.template`<div
234
233
  aria-label="Overlay"
@@ -27,13 +27,14 @@ const getHeightHeroBanner = (background, enableParallax)=>{
27
27
  'tablet'
28
28
  ];
29
29
  DEVICES.forEach((device)=>{
30
+ const enableParallaxDevice = background?.[device]?.type === 'image' ? enableParallax : false;
30
31
  const isScale = isScaleImage({
31
- enableParallax,
32
+ enableParallax: enableParallaxDevice,
32
33
  attachment: background[device]?.attachment
33
34
  });
34
35
  result = {
35
36
  ...result,
36
- [device]: enableParallax ? '150%' : isScale ? '100vh' : '100%'
37
+ [device]: enableParallaxDevice ? '150%' : isScale ? '100vh' : '100%'
37
38
  };
38
39
  });
39
40
  return core.makeStyleResponsive('h', result);
@@ -46,8 +47,9 @@ const getWidthHeroBanner = (background, enableParallax)=>{
46
47
  'tablet'
47
48
  ];
48
49
  DEVICES.forEach((device)=>{
50
+ const enableParallaxDevice = background?.[device]?.type === 'image' ? enableParallax : false;
49
51
  const isScale = isScaleImage({
50
- enableParallax,
52
+ enableParallax: enableParallaxDevice,
51
53
  attachment: background[device]?.attachment
52
54
  });
53
55
  result = {
@@ -111,8 +111,18 @@ var TrustreviewsProductReviews = require('./third-party/components/TrustreviewsP
111
111
  var MyappgurusProductReviews = require('./third-party/components/MyappgurusProductReviews.js');
112
112
  var HulkProductOptions = require('./third-party/components/HulkProductOptions.js');
113
113
  var TrustshopProductReviews = require('./third-party/components/TrustshopProductReviews.js');
114
+ var StellarDeliveryDatePickup = require('./third-party/components/StellarDeliveryDatePickup.js');
115
+ var EssentialCountdownTimerBar = require('./third-party/components/EssentialCountdownTimerBar.js');
116
+ var EssentialAnnouncementBar = require('./third-party/components/EssentialAnnouncementBar.js');
117
+ var OkendoReviewsLoyalty = require('./third-party/components/OkendoReviewsLoyalty.js');
118
+ var EstimatedDeliveryDatePlus = require('./third-party/components/EstimatedDeliveryDatePlus.js');
114
119
  var HextomCountdownTimerBar = require('./third-party/components/HextomCountdownTimerBar.js');
115
120
  var TrustBadgesBear = require('./third-party/components/TrustBadgesBear.js');
121
+ var TrustedsiteTrustBadges = require('./third-party/components/TrustedsiteTrustBadges.js');
122
+ var GloColorSwatchvariantImage = require('./third-party/components/GloColorSwatchvariantImage.js');
123
+ var BfSizeChartSizeGuide = require('./third-party/components/BfSizeChartSizeGuide.js');
124
+ var AlsoBoughtCbb = require('./third-party/components/AlsoBoughtCbb.js');
125
+ var HextomFreeShippingBar = require('./third-party/components/HextomFreeShippingBar.js');
116
126
  var CartLineVariant = require('./cart/components/CartLineVariant.js');
117
127
  var Cart = require('./cart/components/Cart.js');
118
128
  var CartList = require('./cart/components/CartList.js');
@@ -247,6 +257,11 @@ var PostPurchaseCountdownTimer = require('./post-purchase/countdown-timer/compon
247
257
  var Text$1 = require('./post-purchase/text/Text.js');
248
258
 
249
259
  var builder = {
260
+ EstimatedDeliveryDatePlus: EstimatedDeliveryDatePlus.default,
261
+ OkendoReviewsLoyalty: OkendoReviewsLoyalty.default,
262
+ EssentialAnnouncementBar: EssentialAnnouncementBar.default,
263
+ EssentialCountdownTimerBar: EssentialCountdownTimerBar.default,
264
+ StellarDeliveryDatePickup: StellarDeliveryDatePickup.default,
250
265
  TrustshopProductReviews: TrustshopProductReviews.default,
251
266
  HulkProductOptions: HulkProductOptions.default,
252
267
  TrustreviewsProductReviews: TrustreviewsProductReviews.default,
@@ -483,7 +498,12 @@ var builder = {
483
498
  MarqueeItem: MarqueeItem.default,
484
499
  ProductBadge: index$8.default,
485
500
  HextomCountdownTimerBar: HextomCountdownTimerBar.default,
486
- TrustBadgesBear: TrustBadgesBear.default
501
+ TrustBadgesBear: TrustBadgesBear.default,
502
+ TrustedsiteTrustBadges: TrustedsiteTrustBadges.default,
503
+ GloColorSwatchvariantImage: GloColorSwatchvariantImage.default,
504
+ BfSizeChartSizeGuide: BfSizeChartSizeGuide.default,
505
+ AlsoBoughtCbb: AlsoBoughtCbb.default,
506
+ HextomFreeShippingBar: HextomFreeShippingBar.default
487
507
  };
488
508
 
489
509
  exports.default = builder;
@@ -13,7 +13,7 @@ const DEVICES = [
13
13
  'tablet',
14
14
  'desktop'
15
15
  ];
16
- const Carousel = ({ builderAttrs, builderProps, style, styles, moveToIdx, rootId, rootAttr, rootClass, wrapperClass, rootStyles, children, rawChildren, isHiddenArrowWhenDisabled = true, advanced, disableMarginAuto, conditionAppendJs, ...props })=>{
16
+ const Carousel = ({ builderAttrs, builderProps, style, styles, moveToIdx, rootId, rootAttr, rootClass, wrapperClass, rootStyles, children, rawChildren, isHiddenArrowWhenDisabled = true, advanced, disableMarginAuto, conditionAppendJs, ftShapeProductImage, ...props })=>{
17
17
  const setting = arrow.mappingNavigationCarousel(props.setting);
18
18
  const styleHeight = core.makeStyleResponsive('h', core.getHeightByShapeGlobalSize(styles?.sizeSetting));
19
19
  const styleWidth = core.makeStyleWithDefault('w', core.getWidthByShapeGlobalSize(styles?.sizeSetting, true), {
@@ -112,7 +112,8 @@ const Carousel = ({ builderAttrs, builderProps, style, styles, moveToIdx, rootId
112
112
  setting,
113
113
  styles,
114
114
  moveToIdx,
115
- isHiddenArrowWhenDisabled
115
+ isHiddenArrowWhenDisabled,
116
+ ftShapeProductImage
116
117
  }).replaceAll("'", '&#039;')}' style="${{
117
118
  ...core.makeStyleResponsive('jc', styles?.align),
118
119
  ...rootStyles
@@ -4,16 +4,110 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var core = require('@gem-sdk/core');
7
- var Text = require('../../text/components/Text.js');
7
+ var React = require('react');
8
8
 
9
- const CollectionDescription = ({ setting })=>{
9
+ const CollectionDescription = ({ setting, builderProps })=>{
10
+ const [open, setOpen] = React.useState(false);
11
+ const [isShowViewMore, allowShowViewMore] = React.useState(false);
12
+ const ref = React.useRef(null);
13
+ const currentDevice = core.useCurrentDevice();
10
14
  const collection = core.useCollection();
11
- return /*#__PURE__*/ jsxRuntime.jsx(Text.default, {
12
- styles: setting,
13
- setting: {
14
- text: collection?.descriptionHtml ?? 'Collection description',
15
- excludeFlex: true
15
+ const hasLineClamp = core.getResponsiveValueByScreen(setting?.hasLineClamp, currentDevice);
16
+ const lineClamp = core.getResponsiveValueByScreen(setting?.lineClamp, currentDevice);
17
+ const appendTypoClass = core.composeTypographyClassName(setting?.typo, setting?.typography);
18
+ const appendTypoStyle = core.composeTypographyStyle(setting?.typo, setting?.typography);
19
+ React.useEffect(()=>{
20
+ const dom = ref.current;
21
+ setOpen(false);
22
+ if (dom && hasLineClamp && collection?.description) {
23
+ const value = lineClamp;
24
+ setTimeout(()=>{
25
+ const scrollHeight = dom?.scrollHeight ?? 0;
26
+ const clientHeight = dom?.clientHeight ?? 0;
27
+ const lineHeight = window.getComputedStyle(dom).getPropertyValue('line-height');
28
+ const lineText = Math.round((scrollHeight ?? 0) / parseInt(lineHeight));
29
+ const conditionCheckLine = core.isSafari() ? value && value < lineText : clientHeight < scrollHeight;
30
+ if (value && conditionCheckLine) {
31
+ allowShowViewMore(()=>true);
32
+ } else {
33
+ allowShowViewMore(()=>false);
34
+ }
35
+ }, 100);
16
36
  }
37
+ }, [
38
+ hasLineClamp,
39
+ lineClamp,
40
+ collection?.description
41
+ ]);
42
+ const css = `
43
+ .gp-p-description-text > *:not(ol):not(ul):not(table):not(div) {
44
+ display: inline !important;
45
+ }
46
+ .gp-p-description-text > *:not(ol):not(ul):not(table):not(div)::after {
47
+ content: "\\A";
48
+ white-space: pre;
49
+ }
50
+ .gp-p-description-text > table {
51
+ box-shadow: none;
52
+ }
53
+ `;
54
+ const hasDescription = collection?.description && collection.description?.trim() != '';
55
+ return /*#__PURE__*/ jsxRuntime.jsxs("div", {
56
+ "data-id": builderProps?.uid,
57
+ children: [
58
+ !core.isSafari() && /*#__PURE__*/ jsxRuntime.jsx("style", {
59
+ children: css
60
+ }),
61
+ /*#__PURE__*/ jsxRuntime.jsx("div", {
62
+ ref: ref,
63
+ "data-gp-text": true,
64
+ className: core.cls('gp-p-description-text gp-break-words safari:[&_p]:gp-inline safari:[&_p]:after:gp-whitespace-pre', appendTypoClass, !hasDescription ? 'gp-p-2 gp-text-center gp-text-sm gp-font-semibold gp-text-gray-500 gp-py-2 !gp-text-center' : '', core.getGlobalColorClass('text', setting?.color)),
65
+ style: {
66
+ ...core.getStyleShadow({
67
+ styleAppliedFor: 'text-shadow'
68
+ }),
69
+ ...core.makeStyleResponsive('ta', setting?.textAlign),
70
+ ...hasLineClamp && !open ? core.makeStyleResponsive('line-clamp', setting?.lineClamp) : {},
71
+ ...core.makeStyle({
72
+ tt: setting?.transform
73
+ }),
74
+ ...appendTypoStyle
75
+ },
76
+ dangerouslySetInnerHTML: {
77
+ __html: collection?.descriptionHtml && hasDescription ? collection.descriptionHtml : ``
78
+ }
79
+ }),
80
+ hasLineClamp && isShowViewMore && /*#__PURE__*/ jsxRuntime.jsxs("button", {
81
+ className: core.cls(appendTypoClass, core.getGlobalColorClass('text', setting?.showMoreColor), 'gp-mt-4 gp-w-full gp-transition-all hover:gp-opacity-80'),
82
+ style: {
83
+ ...core.makeStyleResponsive('ta', setting?.textAlign),
84
+ ...core.makeStyle({
85
+ tt: setting?.transform
86
+ }),
87
+ ...appendTypoStyle,
88
+ ...core.getGlobalColorStyle(setting?.showMoreColor)
89
+ },
90
+ onClick: ()=>setOpen((prev)=>!prev),
91
+ children: [
92
+ !open ? setting?.viewMoreText : setting?.viewLessText,
93
+ setting?.enableViewMoreIcon && /*#__PURE__*/ jsxRuntime.jsx("svg", {
94
+ className: "gp-ml-1 gp-inline-block",
95
+ height: "1em",
96
+ width: "1em",
97
+ viewBox: "0 0 22 12",
98
+ fill: "none",
99
+ xmlns: "http://www.w3.org/2000/svg",
100
+ children: !open ? /*#__PURE__*/ jsxRuntime.jsx("path", {
101
+ d: "M1.70711 0.292893C1.31658 -0.0976311 0.683417 -0.0976311 0.292893 0.292893C-0.0976311 0.683417 -0.0976311 1.31658 0.292893 1.70711L1.70711 0.292893ZM11 11L10.2929 11.7071C10.6834 12.0976 11.3166 12.0976 11.7071 11.7071L11 11ZM21.7071 1.70711C22.0976 1.31658 22.0976 0.683417 21.7071 0.292893C21.3166 -0.0976311 20.6834 -0.0976311 20.2929 0.292893L21.7071 1.70711ZM0.292893 1.70711L10.2929 11.7071L11.7071 10.2929L1.70711 0.292893L0.292893 1.70711ZM11.7071 11.7071L21.7071 1.70711L20.2929 0.292893L10.2929 10.2929L11.7071 11.7071Z",
102
+ fill: "currentColor"
103
+ }) : /*#__PURE__*/ jsxRuntime.jsx("path", {
104
+ d: "M0.292893 10.2929C-0.0976311 10.6834 -0.0976311 11.3166 0.292893 11.7071C0.683417 12.0976 1.31658 12.0976 1.70711 11.7071L0.292893 10.2929ZM11 1L11.7071 0.292893C11.3166 -0.0976311 10.6834 -0.0976311 10.2929 0.292893L11 1ZM20.2929 11.7071C20.6834 12.0976 21.3166 12.0976 21.7071 11.7071C22.0976 11.3166 22.0976 10.6834 21.7071 10.2929L20.2929 11.7071ZM1.70711 11.7071L11.7071 1.70711L10.2929 0.292893L0.292893 10.2929L1.70711 11.7071ZM10.2929 1.70711L20.2929 11.7071L21.7071 10.2929L11.7071 0.292893L10.2929 1.70711Z",
105
+ fill: "currentColor"
106
+ })
107
+ })
108
+ ]
109
+ })
110
+ ]
17
111
  });
18
112
  };
19
113
 
@@ -3,18 +3,111 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var core = require('@gem-sdk/core');
6
- var Text_liquid = require('../../text/components/Text.liquid.js');
6
+ var helpers = require('../../helpers.js');
7
+ var common = require('../../product/components/ProductImages/common/common.js');
7
8
 
8
- const CollectionDescription = ({ setting })=>{
9
+ const CollectionDescription = ({ setting, advanced, builderProps, pageContext })=>{
10
+ const appendTypoStyle = core.composeTypographyStyle(setting?.typo, setting?.typography);
11
+ const appendTypoClass = core.composeTypographyClassName(setting?.typo, setting?.typography);
12
+ const defaultStyle = {
13
+ ...core.getStyleShadow({
14
+ styleAppliedFor: 'text-shadow'
15
+ }),
16
+ ...core.makeStyleResponsive('ta', setting?.textAlign),
17
+ ...core.getGlobalColorStyle(setting?.color),
18
+ ...core.makeStyle({
19
+ tt: setting?.transform
20
+ }),
21
+ ...appendTypoStyle
22
+ };
23
+ const collapseStyle = {
24
+ ...defaultStyle,
25
+ ...core.makeStyleResponsive('line-clamp', core.makeLineClamp(setting?.lineClamp, setting?.hasLineClamp))
26
+ };
27
+ const getDisplayCollapse = ()=>{
28
+ return common.getDisplayStyle((device)=>!!setting?.hasLineClamp && setting.hasLineClamp[device] !== undefined && !setting.hasLineClamp[device], 'block');
29
+ };
30
+ const moreIcon = `<svg
31
+ class="gp-ml-1 gp-inline-block"
32
+ style="display: inline-block; margin-left: 1px;"
33
+ height="1em"
34
+ width="1em"
35
+ viewBox="0 0 22 12"
36
+ fill="none"
37
+ xmlns="http://www.w3.org/2000/svg"
38
+ >
39
+ <path
40
+ d="M1.70711 0.292893C1.31658 -0.0976311 0.683417 -0.0976311 0.292893 0.292893C-0.0976311 0.683417 -0.0976311 1.31658 0.292893 1.70711L1.70711 0.292893ZM11 11L10.2929 11.7071C10.6834 12.0976 11.3166 12.0976 11.7071 11.7071L11 11ZM21.7071 1.70711C22.0976 1.31658 22.0976 0.683417 21.7071 0.292893C21.3166 -0.0976311 20.6834 -0.0976311 20.2929 0.292893L21.7071 1.70711ZM0.292893 1.70711L10.2929 11.7071L11.7071 10.2929L1.70711 0.292893L0.292893 1.70711ZM11.7071 11.7071L21.7071 1.70711L20.2929 0.292893L10.2929 10.2929L11.7071 11.7071Z"
41
+ fill="currentColor"
42
+ />
43
+ </svg>`;
44
+ const viewMoreTextTranslate = helpers.getDynamicSourceLocales({
45
+ val: setting?.viewMoreText,
46
+ uid: builderProps?.uid,
47
+ settingId: 'viewMoreText',
48
+ isLiquid: true,
49
+ pageContext,
50
+ translate: setting?.translate
51
+ });
52
+ const viewLessTextTranslate = helpers.getDynamicSourceLocales({
53
+ val: setting?.viewLessText,
54
+ uid: builderProps?.uid,
55
+ settingId: 'viewLessText',
56
+ isLiquid: true,
57
+ pageContext,
58
+ translate: setting?.translate
59
+ });
9
60
  return core.template`
10
- ${Text_liquid.default({
11
- styles: setting,
61
+ <gp-collection-description data-id="${builderProps?.uid}" class="${advanced?.cssClass} gp-collection-description" gp-data='${JSON.stringify({
12
62
  setting: {
13
- ...setting,
14
- text: '{{ collection.description }}',
15
- excludeFlex: true
16
- }
17
- })}
63
+ lineClamp: setting?.lineClamp,
64
+ hasLineClamp: setting?.hasLineClamp,
65
+ viewMoreText: viewMoreTextTranslate,
66
+ viewLessText: viewLessTextTranslate,
67
+ enableViewMoreIcon: setting?.enableViewMoreIcon
68
+ },
69
+ defaultStyle,
70
+ collapseStyle
71
+ }).replaceAll("'", '&#039;')}'
72
+ view-more-text="${pageContext?.isPreviewing ? viewMoreTextTranslate : `{{${viewMoreTextTranslate}}}`}"
73
+ view-less-text="${pageContext?.isPreviewing ? viewLessTextTranslate : `{{${viewLessTextTranslate}}}`}"
74
+ >
75
+ <div></div>
76
+ <div
77
+ data-gp-text
78
+ class="${core.cls('gp-relative p-description-wrapper gp-p-description-text gp-break-words safari:[&_p]:gp-inline safari:[&_p]:after:gp-whitespace-pre', appendTypoClass, core.getGlobalColorClass('text', setting?.color), "data-[browser=safari]:after:gp-content-[' '] data-[browser=safari]:after:gp-absolute data-[browser=safari]:after:gp-left-0 data-[browser=safari]:after:gp-right-0 data-[browser=safari]:after:gp-bottom-0 data-[browser=safari]:after:gp-w-full data-[browser=safari]:after:gp-h-1/2 data-[browser=safari]:after:gp-bg-gradient-to-t data-[browser=safari]:after:gp-from-white")}"
79
+ data-gp-text
80
+ style="${collapseStyle}"
81
+ >
82
+ {{collection.description}}
83
+ </div>
84
+ {% if collection.description != blank -%}
85
+ <button
86
+ type="button"
87
+ class="p-description-show-more ${core.cls(appendTypoClass, core.getGlobalColorClass('text', setting?.showMoreColor), 'gp-mt-4 hover:gp-opacity-80 gp-transition-all gp-w-full')}"
88
+ style="${{
89
+ ...core.makeStyle({
90
+ tt: setting?.transform
91
+ }),
92
+ ...core.makeStyleResponsive('ta', setting?.textAlign),
93
+ ...appendTypoStyle,
94
+ ...core.getGlobalColorStyle(setting?.showMoreColor),
95
+ ...getDisplayCollapse(),
96
+ position: 'absolute',
97
+ visibility: 'hidden'
98
+ }}"
99
+ >
100
+ ${pageContext?.isPreviewing ? viewMoreTextTranslate : `{{${viewMoreTextTranslate}}}`}
101
+ ${setting?.enableViewMoreIcon ? moreIcon : ''}
102
+ </button>
103
+ {%- endif -%}
104
+ {% style %}
105
+ .p-description-wrapper.gp-p-description-text * {
106
+ color: inherit
107
+ }
108
+ {% endstyle %}
109
+ </gp-collection-description>
110
+ ${core.RenderIf(core.isLocalEnv, `<script ${helpers.getSettingPreloadData('class="gps-link" delay', 'src')}="{{ 'gp-collection-description.js' | asset_url }}" defer="defer"></script>`, `<script ${helpers.getSettingPreloadData('class="gps-link" delay', 'src')}="${core.baseAssetURL}/assets-v2/gp-collection-description.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
18
111
  `;
19
112
  };
20
113
 
@@ -39,6 +39,59 @@ const config = {
39
39
  }
40
40
  ]
41
41
  },
42
+ {
43
+ id: 'hasLineClamp',
44
+ label: 'Enable View More',
45
+ type: 'toggle',
46
+ devices: {
47
+ desktop: {
48
+ default: true
49
+ }
50
+ }
51
+ },
52
+ {
53
+ id: 'lineClamp',
54
+ label: 'Maximum Row(s) To Show',
55
+ type: 'input:number',
56
+ min: 1,
57
+ hide: true,
58
+ devices: {
59
+ desktop: {
60
+ default: 12
61
+ }
62
+ }
63
+ },
64
+ {
65
+ id: 'viewMoreText',
66
+ label: 'View More Text',
67
+ type: 'input',
68
+ default: 'Show more',
69
+ hide: true
70
+ },
71
+ {
72
+ id: 'showMoreColor',
73
+ type: 'colorpicker',
74
+ default: 'text-1'
75
+ },
76
+ {
77
+ id: 'viewLessText',
78
+ label: 'View Less Text',
79
+ type: 'input',
80
+ default: 'Show less',
81
+ hide: true
82
+ },
83
+ {
84
+ id: 'enableViewMoreIcon',
85
+ label: 'Enable Icon',
86
+ type: 'toggle',
87
+ default: true,
88
+ hide: true
89
+ },
90
+ {
91
+ id: 'translate',
92
+ type: 'input',
93
+ default: 'viewLessText,viewMoreText'
94
+ },
42
95
  {
43
96
  id: 'textAlign',
44
97
  label: 'Align',
@@ -74,11 +127,86 @@ const config = {
74
127
  default: 'center'
75
128
  }
76
129
  }
130
+ },
131
+ {
132
+ id: 'color',
133
+ type: 'colorpicker',
134
+ default: 'text-1'
77
135
  }
78
136
  ]
79
137
  }
80
138
  ],
81
139
  ui: [
140
+ {
141
+ type: 'group',
142
+ label: {
143
+ en: ''
144
+ },
145
+ controls: [
146
+ {
147
+ type: 'control',
148
+ label: {
149
+ en: 'Show more'
150
+ },
151
+ options: {
152
+ label: 'large'
153
+ },
154
+ setting: {
155
+ id: 'hasLineClamp'
156
+ }
157
+ },
158
+ {
159
+ type: 'control',
160
+ label: {
161
+ en: 'Text color'
162
+ },
163
+ setting: {
164
+ id: 'showMoreColor'
165
+ },
166
+ condition: 'hasLineClamp == true'
167
+ },
168
+ {
169
+ type: 'control',
170
+ label: {
171
+ en: 'Max lines'
172
+ },
173
+ setting: {
174
+ id: 'lineClamp'
175
+ },
176
+ condition: 'hasLineClamp == true'
177
+ },
178
+ {
179
+ type: 'control',
180
+ label: {
181
+ en: 'Show more label'
182
+ },
183
+ setting: {
184
+ id: 'viewMoreText'
185
+ },
186
+ condition: 'hasLineClamp == true'
187
+ },
188
+ {
189
+ type: 'control',
190
+ label: {
191
+ en: 'Show less label'
192
+ },
193
+ setting: {
194
+ id: 'viewLessText'
195
+ },
196
+ condition: 'hasLineClamp == true'
197
+ },
198
+ {
199
+ type: 'control',
200
+ label: {
201
+ en: 'Icon'
202
+ },
203
+ setting: {
204
+ id: 'enableViewMoreIcon'
205
+ },
206
+ condition: 'hasLineClamp == true'
207
+ }
208
+ ]
209
+ },
82
210
  {
83
211
  label: {
84
212
  en: 'Text'
@@ -6,10 +6,10 @@ var core = require('@gem-sdk/core');
6
6
  var helpers = require('../../../helpers.js');
7
7
 
8
8
  const FormTextarea = ({ setting, builderProps, className, builderAttrs, advanced, pageContext })=>{
9
- const { text, name, placeholder, required, width, fullWidth, typography } = setting ?? {};
9
+ const { text, name, placeholder, required, width, fullWidth, typography, translate } = setting ?? {};
10
10
  const textAreaWidth = core.makeStyleResponsive('w', core.makeWidth(width, fullWidth));
11
11
  const defaultName = name === '' || name === undefined ? 'contact[note]' : name;
12
- const { border, rounded, hasBoxShadow, boxShadow, pos, d, op, right, top, left, bottom, z, margin, padding, translate } = advanced ?? {};
12
+ const { border, rounded, hasBoxShadow, boxShadow, pos, d, op, right, top, left, bottom, z, margin, padding } = advanced ?? {};
13
13
  const spacingSetting = advanced?.['spacing-setting'];
14
14
  const inputStyle = core.composeAdvanceStyle({
15
15
  border,
@@ -6,7 +6,7 @@ var core = require('@gem-sdk/core');
6
6
  var getSrcSet = require('../helpers/getSrcSet.js');
7
7
  var helpers = require('./helpers.js');
8
8
 
9
- const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className, pictureClass, style, imagePlaceholder, enableLazyloadImage = true, ...props })=>{
9
+ const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className, pictureClass, style, imagePlaceholder, enableLazyLoadImage = true, pageContext, ...props })=>{
10
10
  const fallBackImage = 'https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif';
11
11
  const srcDesktop = getSrcSet.getImageSrc(srcSet?.desktop, 'desktop') || fallBackImage;
12
12
  const srcTablet = (getSrcSet.getImageSrc(srcSet?.tablet, 'tablet') ?? getSrcSet.getImageSrc(srcSet?.desktop, 'tablet')) || fallBackImage;
@@ -31,16 +31,17 @@ const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className,
31
31
  }}"
32
32
  />
33
33
  `, core.template`
34
- ${srcMobile ? `<source media="(max-width: 767px)" data-srcSet="${srcMobile}" srcset="${enableLazyloadImage ? imagePlaceholder?.['mobile'] ?? helpers.createBlurDataURL(srcSet?.mobile?.width ?? srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.mobile?.height ?? srcSet?.tablet?.height ?? srcSet?.desktop?.height ?? 0) : srcMobile}" />` : ''}
35
- ${srcTablet ? `<source media="(max-width: 1024px)" data-srcSet="${srcTablet}" srcset="${enableLazyloadImage ? imagePlaceholder?.['tablet'] ?? helpers.createBlurDataURL(srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.tablet?.height ?? srcSet?.desktop?.height ?? 0) : srcTablet}" />` : ''}
34
+ ${srcMobile ? `<source media="(max-width: 767px)" data-srcSet="${srcMobile}" srcset="${enableLazyLoadImage ? imagePlaceholder?.['mobile'] ?? helpers.createBlurDataURL(srcSet?.mobile?.width ?? srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.mobile?.height ?? srcSet?.tablet?.height ?? srcSet?.desktop?.height ?? 0) : srcMobile}" />` : ''}
35
+ ${srcTablet ? `<source media="(max-width: 1024px)" data-srcSet="${srcTablet}" srcset="${enableLazyLoadImage ? imagePlaceholder?.['tablet'] ?? helpers.createBlurDataURL(srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.tablet?.height ?? srcSet?.desktop?.height ?? 0) : srcTablet}" />` : ''}
36
36
  <img
37
37
  ${{
38
38
  ...props
39
39
  }}
40
40
  class="${core.cls(className, {
41
- gp_lazyload: enableLazyloadImage
41
+ gp_lazyload: enableLazyLoadImage,
42
+ gp_force_load: pageContext?.isOptimizePlan
42
43
  })}"
43
- src="${enableLazyloadImage ? imagePlaceholder?.['desktop'] ?? helpers.createBlurDataURL(srcSet?.desktop?.width ?? 0, srcSet?.desktop?.height ?? 0) : srcDesktop}"
44
+ src="${enableLazyLoadImage ? imagePlaceholder?.['desktop'] ?? helpers.createBlurDataURL(srcSet?.desktop?.width ?? 0, srcSet?.desktop?.height ?? 0) : srcDesktop}"
44
45
  data-src="${srcDesktop}"
45
46
  width="100%"
46
47
  alt="${alt}"
@@ -95,7 +95,6 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
95
95
  style: {
96
96
  ...core.getStyleShadowState(styles?.boxShadowImg, 'box-shadow', styles?.hasBoxShadowImg),
97
97
  borderRadius: 'inherit',
98
- overflow: 'hidden',
99
98
  ...core.makeStyleResponsive('jc', styles?.align)
100
99
  },
101
100
  children: [