@gem-sdk/components 2.1.13-staging.0 → 2.1.13-staging.10

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 (144) hide show
  1. package/dist/cjs/article/components/ArticleList.liquid.js +6 -2
  2. package/dist/cjs/banner/components/hero-banner/index.liquid.js +12 -10
  3. package/dist/cjs/builder.js +21 -1
  4. package/dist/cjs/common/const.js +1 -1
  5. package/dist/cjs/image/components/AdaptiveImage.liquid.js +6 -5
  6. package/dist/cjs/image/components/Image.js +22 -3
  7. package/dist/cjs/image/components/Image.liquid.js +6 -5
  8. package/dist/cjs/image/components/NextImage.liquid.js +4 -3
  9. package/dist/cjs/image/components/NoDataImage.js +133 -0
  10. package/dist/cjs/image-comparison/components/CompareImage.liquid.js +7 -3
  11. package/dist/cjs/index.js +20 -0
  12. package/dist/cjs/index.liquid.js +22 -2
  13. package/dist/cjs/post-purchase/product/components/ProductDiscountTag.js +5 -2
  14. package/dist/cjs/post-purchase/product/components/ProductOffer.js +16 -3
  15. package/dist/cjs/post-purchase/product/components/ProductPrice.js +3 -1
  16. package/dist/cjs/post-purchase/product/components/ProductPriceBreakdown.js +9 -21
  17. package/dist/cjs/post-purchase/product/constants/ProductOfferPlaceholder.js +127 -0
  18. package/dist/cjs/post-purchase/product/hooks/useDynamicProduct.js +28 -0
  19. package/dist/cjs/post-purchase/product/settings/ProductOffer.js +26 -0
  20. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +4 -4
  21. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
  22. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
  23. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
  24. package/dist/cjs/tab/hooks/useTabInteraction.js +13 -9
  25. package/dist/cjs/text/components/Text.js +0 -1
  26. package/dist/cjs/third-party/components/AlsoBoughtCbb.js +32 -0
  27. package/dist/cjs/third-party/components/AlsoBoughtCbb.liquid.js +21 -0
  28. package/dist/cjs/third-party/components/BfSizeChartSizeGuide.js +32 -0
  29. package/dist/cjs/third-party/components/BfSizeChartSizeGuide.liquid.js +12 -0
  30. package/dist/cjs/third-party/components/EssentialAnnouncementBar.js +32 -0
  31. package/dist/cjs/third-party/components/EssentialAnnouncementBar.liquid.js +12 -0
  32. package/dist/cjs/third-party/components/EssentialCountdownTimerBar.js +32 -0
  33. package/dist/cjs/third-party/components/EssentialCountdownTimerBar.liquid.js +12 -0
  34. package/dist/cjs/third-party/components/EstimatedDeliveryDatePlus.js +32 -0
  35. package/dist/cjs/third-party/components/EstimatedDeliveryDatePlus.liquid.js +12 -0
  36. package/dist/cjs/third-party/components/GloColorSwatchvariantImage.js +32 -0
  37. package/dist/cjs/third-party/components/GloColorSwatchvariantImage.liquid.js +12 -0
  38. package/dist/cjs/third-party/components/HextomFreeShippingBar.js +32 -0
  39. package/dist/cjs/third-party/components/HextomFreeShippingBar.liquid.js +12 -0
  40. package/dist/cjs/third-party/components/OkendoReviewsLoyalty.js +32 -0
  41. package/dist/cjs/third-party/components/OkendoReviewsLoyalty.liquid.js +12 -0
  42. package/dist/cjs/third-party/components/StellarDeliveryDatePickup.js +32 -0
  43. package/dist/cjs/third-party/components/StellarDeliveryDatePickup.liquid.js +21 -0
  44. package/dist/cjs/third-party/components/TrustedsiteTrustBadges.js +32 -0
  45. package/dist/cjs/third-party/components/TrustedsiteTrustBadges.liquid.js +12 -0
  46. package/dist/cjs/third-party/configs/AlsoBoughtCbb.js +12 -0
  47. package/dist/cjs/third-party/configs/BfSizeChartSizeGuide.js +12 -0
  48. package/dist/cjs/third-party/configs/EssentialAnnouncementBar.js +12 -0
  49. package/dist/cjs/third-party/configs/EssentialCountdownTimerBar.js +12 -0
  50. package/dist/cjs/third-party/configs/EstimatedDeliveryDatePlus.js +12 -0
  51. package/dist/cjs/third-party/configs/GloColorSwatchvariantImage.js +12 -0
  52. package/dist/cjs/third-party/configs/HextomFreeShippingBar.js +12 -0
  53. package/dist/cjs/third-party/configs/OkendoReviewsLoyalty.js +12 -0
  54. package/dist/cjs/third-party/configs/StellarDeliveryDatePickup.js +12 -0
  55. package/dist/cjs/third-party/configs/TrustedsiteTrustBadges.js +12 -0
  56. package/dist/cjs/third-party/helpers/thirdParty.js +1 -1
  57. package/dist/cjs/third-party/next.js +51 -1
  58. package/dist/cjs/third-party/setting/AlsoBoughtCbb.js +127 -0
  59. package/dist/cjs/third-party/setting/BfSizeChartSizeGuide.js +131 -0
  60. package/dist/cjs/third-party/setting/EssentialAnnouncementBar.js +142 -0
  61. package/dist/cjs/third-party/setting/EssentialCountdownTimerBar.js +142 -0
  62. package/dist/cjs/third-party/setting/EstimatedDeliveryDatePlus.js +128 -0
  63. package/dist/cjs/third-party/setting/GloColorSwatchvariantImage.js +152 -0
  64. package/dist/cjs/third-party/setting/HextomFreeShippingBar.js +128 -0
  65. package/dist/cjs/third-party/setting/OkendoReviewsLoyalty.js +171 -0
  66. package/dist/cjs/third-party/setting/StellarDeliveryDatePickup.js +127 -0
  67. package/dist/cjs/third-party/setting/TrustedsiteTrustBadges.js +177 -0
  68. package/dist/cjs/third-party/setting/index.js +21 -1
  69. package/dist/cjs/video/components/HTML5Embed.js +2 -2
  70. package/dist/cjs/video/components/HTML5Embed.liquid.js +6 -3
  71. package/dist/cjs/video/components/LiteYouTubeEmbed.liquid.js +4 -2
  72. package/dist/esm/article/components/ArticleList.liquid.js +6 -2
  73. package/dist/esm/banner/components/hero-banner/index.liquid.js +12 -10
  74. package/dist/esm/builder.js +21 -1
  75. package/dist/esm/common/const.js +1 -1
  76. package/dist/esm/image/components/AdaptiveImage.liquid.js +6 -5
  77. package/dist/esm/image/components/Image.js +23 -4
  78. package/dist/esm/image/components/Image.liquid.js +6 -5
  79. package/dist/esm/image/components/NextImage.liquid.js +4 -3
  80. package/dist/esm/image/components/NoDataImage.js +129 -0
  81. package/dist/esm/image-comparison/components/CompareImage.liquid.js +7 -3
  82. package/dist/esm/index.js +10 -0
  83. package/dist/esm/index.liquid.js +11 -1
  84. package/dist/esm/post-purchase/product/components/ProductDiscountTag.js +5 -2
  85. package/dist/esm/post-purchase/product/components/ProductOffer.js +16 -3
  86. package/dist/esm/post-purchase/product/components/ProductPrice.js +3 -1
  87. package/dist/esm/post-purchase/product/components/ProductPriceBreakdown.js +9 -21
  88. package/dist/esm/post-purchase/product/constants/ProductOfferPlaceholder.js +125 -0
  89. package/dist/esm/post-purchase/product/hooks/useDynamicProduct.js +26 -0
  90. package/dist/esm/post-purchase/product/settings/ProductOffer.js +26 -0
  91. package/dist/esm/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +4 -4
  92. package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
  93. package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
  94. package/dist/esm/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
  95. package/dist/esm/tab/hooks/useTabInteraction.js +14 -10
  96. package/dist/esm/text/components/Text.js +0 -1
  97. package/dist/esm/third-party/components/AlsoBoughtCbb.js +28 -0
  98. package/dist/esm/third-party/components/AlsoBoughtCbb.liquid.js +17 -0
  99. package/dist/esm/third-party/components/BfSizeChartSizeGuide.js +28 -0
  100. package/dist/esm/third-party/components/BfSizeChartSizeGuide.liquid.js +8 -0
  101. package/dist/esm/third-party/components/EssentialAnnouncementBar.js +28 -0
  102. package/dist/esm/third-party/components/EssentialAnnouncementBar.liquid.js +8 -0
  103. package/dist/esm/third-party/components/EssentialCountdownTimerBar.js +28 -0
  104. package/dist/esm/third-party/components/EssentialCountdownTimerBar.liquid.js +8 -0
  105. package/dist/esm/third-party/components/EstimatedDeliveryDatePlus.js +28 -0
  106. package/dist/esm/third-party/components/EstimatedDeliveryDatePlus.liquid.js +8 -0
  107. package/dist/esm/third-party/components/GloColorSwatchvariantImage.js +28 -0
  108. package/dist/esm/third-party/components/GloColorSwatchvariantImage.liquid.js +8 -0
  109. package/dist/esm/third-party/components/HextomFreeShippingBar.js +28 -0
  110. package/dist/esm/third-party/components/HextomFreeShippingBar.liquid.js +8 -0
  111. package/dist/esm/third-party/components/OkendoReviewsLoyalty.js +28 -0
  112. package/dist/esm/third-party/components/OkendoReviewsLoyalty.liquid.js +8 -0
  113. package/dist/esm/third-party/components/StellarDeliveryDatePickup.js +28 -0
  114. package/dist/esm/third-party/components/StellarDeliveryDatePickup.liquid.js +17 -0
  115. package/dist/esm/third-party/components/TrustedsiteTrustBadges.js +28 -0
  116. package/dist/esm/third-party/components/TrustedsiteTrustBadges.liquid.js +8 -0
  117. package/dist/esm/third-party/configs/AlsoBoughtCbb.js +8 -0
  118. package/dist/esm/third-party/configs/BfSizeChartSizeGuide.js +8 -0
  119. package/dist/esm/third-party/configs/EssentialAnnouncementBar.js +8 -0
  120. package/dist/esm/third-party/configs/EssentialCountdownTimerBar.js +8 -0
  121. package/dist/esm/third-party/configs/EstimatedDeliveryDatePlus.js +8 -0
  122. package/dist/esm/third-party/configs/GloColorSwatchvariantImage.js +8 -0
  123. package/dist/esm/third-party/configs/HextomFreeShippingBar.js +8 -0
  124. package/dist/esm/third-party/configs/OkendoReviewsLoyalty.js +8 -0
  125. package/dist/esm/third-party/configs/StellarDeliveryDatePickup.js +8 -0
  126. package/dist/esm/third-party/configs/TrustedsiteTrustBadges.js +8 -0
  127. package/dist/esm/third-party/helpers/thirdParty.js +1 -1
  128. package/dist/esm/third-party/next.js +51 -1
  129. package/dist/esm/third-party/setting/AlsoBoughtCbb.js +123 -0
  130. package/dist/esm/third-party/setting/BfSizeChartSizeGuide.js +127 -0
  131. package/dist/esm/third-party/setting/EssentialAnnouncementBar.js +138 -0
  132. package/dist/esm/third-party/setting/EssentialCountdownTimerBar.js +138 -0
  133. package/dist/esm/third-party/setting/EstimatedDeliveryDatePlus.js +124 -0
  134. package/dist/esm/third-party/setting/GloColorSwatchvariantImage.js +148 -0
  135. package/dist/esm/third-party/setting/HextomFreeShippingBar.js +124 -0
  136. package/dist/esm/third-party/setting/OkendoReviewsLoyalty.js +167 -0
  137. package/dist/esm/third-party/setting/StellarDeliveryDatePickup.js +123 -0
  138. package/dist/esm/third-party/setting/TrustedsiteTrustBadges.js +173 -0
  139. package/dist/esm/third-party/setting/index.js +224 -204
  140. package/dist/esm/video/components/HTML5Embed.js +2 -2
  141. package/dist/esm/video/components/HTML5Embed.liquid.js +6 -3
  142. package/dist/esm/video/components/LiteYouTubeEmbed.liquid.js +4 -2
  143. package/dist/types/index.d.ts +172 -7
  144. package/package.json +2 -2
@@ -7,6 +7,7 @@ var NextImage_liquid = require('../../image/components/NextImage.liquid.js');
7
7
  var helpers = require('../../helpers.js');
8
8
 
9
9
  const HTML5Embed = (props)=>{
10
+ const { enableLazyLoadImage, pageContext } = props;
10
11
  const videoId = `gp-video-${props.uid}`;
11
12
  const preloadThumbnail = props.autoplay && props.thumbnail;
12
13
  const offLazyVideo = !props.lazy && props.isVideoComponent;
@@ -23,7 +24,9 @@ const HTML5Embed = (props)=>{
23
24
  '--op': 0,
24
25
  '--z': -1,
25
26
  display: 'none'
26
- }
27
+ },
28
+ enableLazyLoadImage,
29
+ pageContext
27
30
  })}
28
31
  ${core.RenderIf(props.autoplay, `<script>
29
32
  document.addEventListener("DOMContentLoaded", (event) => {
@@ -72,14 +75,14 @@ const HTML5Embed = (props)=>{
72
75
  </video>
73
76
  <div
74
77
  style="${props.style}"
75
- class="${core.cls('gp-absolute gp-top-0 gp-left-0 gp-w-full gp-thumbnail-video', {
78
+ class="${core.cls('gp-absolute gp-top-0 gp-left-0 gp-w-full gp-h-full gp-thumbnail-video', {
76
79
  'gp-hidden': !props.thumbnail || props.autoplay
77
80
  })}"
78
81
  >
79
82
  <img
80
83
  id="video-thumbnail"
81
84
  src="${props.thumbnail ?? ''}"
82
- class="gp-w-full gp-h-full gp-object-cover"
85
+ class="gp-w-full gp-h-full gp-object-contain"
83
86
  alt="Video Thumbnail"
84
87
  ></img>
85
88
  <button
@@ -7,7 +7,7 @@ var NextImage_liquid = require('../../image/components/NextImage.liquid.js');
7
7
  var helpers = require('../../helpers.js');
8
8
 
9
9
  const LiteYouTubeEmbed = (props)=>{
10
- const { style, lazy, preload } = props;
10
+ const { style, lazy, preload, enableLazyLoadImage, pageContext } = props;
11
11
  const videoUid = `gp-video-${props.uid}`;
12
12
  const videoId = encodeURIComponent(props.id);
13
13
  const videoTitle = props.title;
@@ -52,7 +52,9 @@ const LiteYouTubeEmbed = (props)=>{
52
52
  src: posterUrl,
53
53
  alt: 'Poster',
54
54
  className: `gp-invisible gp-w-full gp-h-full gp_lazyforbg`,
55
- isDisableAspectStyle: true
55
+ isDisableAspectStyle: true,
56
+ enableLazyLoadImage,
57
+ pageContext
56
58
  })}
57
59
  <button
58
60
  type="button"
@@ -52,8 +52,12 @@ const ArticleList = ({ setting, styles, className, children, advanced, builderPr
52
52
  assign all_articles = all_articles | concat: articleByHandle
53
53
  endfor
54
54
  else
55
- assign all_articles = blogs['${blogHandle}'].articles | limit: limit | sort: "${articleOrderBy.replace('_REVERSE', '').toLowerCase()}" ${articleOrderBy.includes('_REVERSE') ? '| reverse' : ''}
56
- assign blogTitle = blogs['${blogHandle}'].title
55
+ assign current_blog_handle = blogs['${blogHandle}']
56
+ if gp_enable_custom_dynamic_blog == true
57
+ assign current_blog_handle = blogs[blog.handle]
58
+ endif
59
+ assign all_articles = current_blog_handle.articles | limit: limit | sort: "${articleOrderBy.replace('_REVERSE', '').toLowerCase()}" ${articleOrderBy.includes('_REVERSE') ? '| reverse' : ''}
60
+ assign blogTitle = current_blog_handle.title
57
61
  endif
58
62
 
59
63
  %}
@@ -10,7 +10,7 @@ import NextImage from '../../../image/components/NextImage.liquid.js';
10
10
  import { getImageSrc, DEVICES } from '../../../image/helpers/getSrcSet.js';
11
11
  import { createBlurDataURL } from '../../../image/components/helpers.js';
12
12
 
13
- const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, enableLazyloadImage = true })=>{
13
+ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, enableLazyLoadImage = true })=>{
14
14
  const { link, layout, verticalAlign, order, alignBanner, alt, title } = setting ?? {};
15
15
  const { background, overlayEnable, overlayColor, overlayOpacity, verticalGutter, contentWidth, hoverEffect, hoverEffectDuration, hoverEffectScale, cornerBg, borderBg, hasActiveShadow, shadowBg, sizeSetting, contentPadding } = styles ?? {};
16
16
  const enableParallax = setting?.enableParallax || false;
@@ -130,6 +130,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
130
130
  tablet: createBlurDataURL(srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.tablet?.height ?? srcSet?.desktop?.width ?? 0),
131
131
  mobile: createBlurDataURL(srcSet?.mobile?.width ?? srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.mobile?.height ?? srcSet?.tablet?.height ?? srcSet?.desktop?.width ?? 0)
132
132
  };
133
+ const enableLazyLoad = !setting?.preload && enableLazyLoadImage;
133
134
  const renderInnerHeroBanner = ()=>{
134
135
  return template /* liquid */ `
135
136
  <div
@@ -179,7 +180,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
179
180
  alt,
180
181
  title,
181
182
  imagePlaceholder,
182
- enableLazyloadImage
183
+ enableLazyLoadImage
183
184
  })}
184
185
  <div class="${cls('gp-absolute gp-w-full gp-h-full')}">
185
186
  <div
@@ -193,9 +194,10 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
193
194
  'clip-path': getClipPath(borderBg?.width, cornerBg)
194
195
  }}"
195
196
  >
196
- <div class="${cls('hero-banner-bg-parallax gp-hero-banner-image-background gp_lazybg', {
197
+ <div class="${cls('hero-banner-bg-parallax gp-hero-banner-image-background', {
197
198
  'gp-duration-[var(--duration)] group-hover/hero:gp-scale-[var(--scale)]': hoverEffect,
198
- 'gp-transition-transform': hoverEffect
199
+ 'gp-transition-transform': hoverEffect,
200
+ gp_lazybg: enableLazyLoad
199
201
  })}"
200
202
  style="${{
201
203
  ...getStyleBackgroundByDevice(background, {
@@ -204,15 +206,16 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
204
206
  liquid: true
205
207
  }),
206
208
  ...makeStyleResponsive('bgi', {
207
- desktop: `url('${bgiEnableByDevice['desktop'] ? setting?.preload || !enableLazyloadImage ? getImageSrc(getResponsiveValueByScreen(srcSet, 'desktop'), 'desktop') : imagePlaceholder['desktop'] : ''}')`,
208
- tablet: `url('${bgiEnableByDevice['tablet'] ? setting?.preload || !enableLazyloadImage ? getImageSrc(getResponsiveValueByScreen(srcSet, 'tablet'), 'tablet') : imagePlaceholder['tablet'] : ''}')`,
209
- mobile: `url('${bgiEnableByDevice['mobile'] ? setting?.preload || !enableLazyloadImage ? getImageSrc(getResponsiveValueByScreen(srcSet, 'mobile'), 'mobile') : imagePlaceholder['mobile'] : ''}')`
209
+ desktop: `url('${bgiEnableByDevice['desktop'] ? !enableLazyLoad ? getImageSrc(getResponsiveValueByScreen(srcSet, 'desktop'), 'desktop') : imagePlaceholder['desktop'] : ''}')`,
210
+ tablet: `url('${bgiEnableByDevice['tablet'] ? !enableLazyLoad ? getImageSrc(getResponsiveValueByScreen(srcSet, 'tablet'), 'tablet') : imagePlaceholder['tablet'] : ''}')`,
211
+ mobile: `url('${bgiEnableByDevice['mobile'] ? !enableLazyLoad ? getImageSrc(getResponsiveValueByScreen(srcSet, 'mobile'), 'mobile') : imagePlaceholder['mobile'] : ''}')`
210
212
  }),
211
213
  '--duration': `${hoverEffectDuration ?? 0}s`,
212
214
  '--scale': hoverEffectScale ?? 1,
213
215
  ...makeStyleResponsive('pos', getAttachmentDevice()),
214
216
  ...getStyleHeroBannerBg(backgroundResponsive || {}, enableParallax)
215
217
  }}"
218
+ ${embed()}
216
219
  >
217
220
  ${!setting?.preload ? DEVICES.map((device)=>{
218
221
  return RenderIf(getEnableBgImageByDevice(device), NextImage({
@@ -220,11 +223,10 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
220
223
  alt: `lazy image ${device}`,
221
224
  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' : ''}`,
222
225
  isDisableAspectStyle: true,
223
- enableLazyloadImage
226
+ enableLazyLoadImage
224
227
  }));
225
228
  }).join('') : ''}
226
- </div>
227
- ${embed()} </div>
229
+ </div></div>
228
230
  </div>
229
231
  ${RenderIf(overlayEnable, template`<div
230
232
  aria-label="Overlay"
@@ -107,8 +107,18 @@ import TrustreviewsProductReviews from './third-party/components/TrustreviewsPro
107
107
  import MyappgurusProductReviews from './third-party/components/MyappgurusProductReviews.js';
108
108
  import HulkProductOptions from './third-party/components/HulkProductOptions.js';
109
109
  import TrustshopProductReviews from './third-party/components/TrustshopProductReviews.js';
110
+ import StellarDeliveryDatePickup from './third-party/components/StellarDeliveryDatePickup.js';
111
+ import EssentialCountdownTimerBar from './third-party/components/EssentialCountdownTimerBar.js';
112
+ import EssentialAnnouncementBar from './third-party/components/EssentialAnnouncementBar.js';
113
+ import OkendoReviewsLoyalty from './third-party/components/OkendoReviewsLoyalty.js';
114
+ import EstimatedDeliveryDatePlus from './third-party/components/EstimatedDeliveryDatePlus.js';
110
115
  import HextomCountdownTimerBar from './third-party/components/HextomCountdownTimerBar.js';
111
116
  import TrustBadgesBear from './third-party/components/TrustBadgesBear.js';
117
+ import TrustedsiteTrustBadges from './third-party/components/TrustedsiteTrustBadges.js';
118
+ import GloColorSwatchvariantImage from './third-party/components/GloColorSwatchvariantImage.js';
119
+ import BfSizeChartSizeGuide from './third-party/components/BfSizeChartSizeGuide.js';
120
+ import AlsoBoughtCbb from './third-party/components/AlsoBoughtCbb.js';
121
+ import HextomFreeShippingBar from './third-party/components/HextomFreeShippingBar.js';
112
122
  import CartLineVariant from './cart/components/CartLineVariant.js';
113
123
  import Cart from './cart/components/Cart.js';
114
124
  import CartList from './cart/components/CartList.js';
@@ -243,6 +253,11 @@ import PostPurchaseCountdownTimer from './post-purchase/countdown-timer/componen
243
253
  import Text$1 from './post-purchase/text/Text.js';
244
254
 
245
255
  var builder = {
256
+ EstimatedDeliveryDatePlus,
257
+ OkendoReviewsLoyalty,
258
+ EssentialAnnouncementBar,
259
+ EssentialCountdownTimerBar,
260
+ StellarDeliveryDatePickup,
246
261
  TrustshopProductReviews,
247
262
  HulkProductOptions,
248
263
  TrustreviewsProductReviews,
@@ -479,7 +494,12 @@ var builder = {
479
494
  MarqueeItem,
480
495
  ProductBadge,
481
496
  HextomCountdownTimerBar,
482
- TrustBadgesBear
497
+ TrustBadgesBear,
498
+ TrustedsiteTrustBadges,
499
+ GloColorSwatchvariantImage,
500
+ BfSizeChartSizeGuide,
501
+ AlsoBoughtCbb,
502
+ HextomFreeShippingBar
483
503
  };
484
504
 
485
505
  export { builder as default };
@@ -1,5 +1,5 @@
1
1
  const ELEMENT_Z_INDEX = {
2
- STICKY: 100000,
2
+ STICKY: 1000,
3
3
  DIALOG: 100001,
4
4
  CART_DRAWER: 100002,
5
5
  CART_DRAWER_CONFIRM_MODAL: 100003
@@ -2,7 +2,7 @@ import { template, cls, RenderIf, makeStyleResponsive } from '@gem-sdk/core';
2
2
  import { getImageSrc } from '../helpers/getSrcSet.js';
3
3
  import { createBlurDataURL } from './helpers.js';
4
4
 
5
- const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className, pictureClass, style, imagePlaceholder, enableLazyloadImage = true, ...props })=>{
5
+ const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className, pictureClass, style, imagePlaceholder, enableLazyLoadImage = true, pageContext, ...props })=>{
6
6
  const fallBackImage = 'https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif';
7
7
  const srcDesktop = getImageSrc(srcSet?.desktop, 'desktop') || fallBackImage;
8
8
  const srcTablet = (getImageSrc(srcSet?.tablet, 'tablet') ?? getImageSrc(srcSet?.desktop, 'tablet')) || fallBackImage;
@@ -27,16 +27,17 @@ const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className,
27
27
  }}"
28
28
  />
29
29
  `, template`
30
- ${srcMobile ? `<source media="(max-width: 767px)" data-srcSet="${srcMobile}" srcset="${enableLazyloadImage ? imagePlaceholder?.['mobile'] ?? createBlurDataURL(srcSet?.mobile?.width ?? srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.mobile?.height ?? srcSet?.tablet?.height ?? srcSet?.desktop?.height ?? 0) : srcMobile}" />` : ''}
31
- ${srcTablet ? `<source media="(max-width: 1024px)" data-srcSet="${srcTablet}" srcset="${enableLazyloadImage ? imagePlaceholder?.['tablet'] ?? createBlurDataURL(srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.tablet?.height ?? srcSet?.desktop?.height ?? 0) : srcTablet}" />` : ''}
30
+ ${srcMobile ? `<source media="(max-width: 767px)" data-srcSet="${srcMobile}" srcset="${enableLazyLoadImage ? imagePlaceholder?.['mobile'] ?? createBlurDataURL(srcSet?.mobile?.width ?? srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.mobile?.height ?? srcSet?.tablet?.height ?? srcSet?.desktop?.height ?? 0) : srcMobile}" />` : ''}
31
+ ${srcTablet ? `<source media="(max-width: 1024px)" data-srcSet="${srcTablet}" srcset="${enableLazyLoadImage ? imagePlaceholder?.['tablet'] ?? createBlurDataURL(srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.tablet?.height ?? srcSet?.desktop?.height ?? 0) : srcTablet}" />` : ''}
32
32
  <img
33
33
  ${{
34
34
  ...props
35
35
  }}
36
36
  class="${cls(className, {
37
- gp_lazyload: enableLazyloadImage
37
+ gp_lazyload: enableLazyLoadImage,
38
+ gp_force_load: pageContext?.isOptimizePlan
38
39
  })}"
39
- src="${enableLazyloadImage ? imagePlaceholder?.['desktop'] ?? createBlurDataURL(srcSet?.desktop?.width ?? 0, srcSet?.desktop?.height ?? 0) : srcDesktop}"
40
+ src="${enableLazyLoadImage ? imagePlaceholder?.['desktop'] ?? createBlurDataURL(srcSet?.desktop?.width ?? 0, srcSet?.desktop?.height ?? 0) : srcDesktop}"
40
41
  data-src="${srcDesktop}"
41
42
  width="100%"
42
43
  alt="${alt}"
@@ -1,13 +1,16 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { makeStyleResponsive, getWidthByShapeGlobalSize, makeWidth, getHeightByShapeGlobalSize, cls, getStyleShadowState, handleConvertClassColor, getBorderStyle, getBorderRadiusStyle, getStyleShadow, getAspectRatioGlobalSize, getGlobalColorStateClass, getGlobalColorStateStyle, makeStyleState, getCornerCSSFromGlobal } from '@gem-sdk/core';
2
+ import { useCurrentDevice, makeStyleResponsive, getWidthByShapeGlobalSize, makeWidth, getHeightByShapeGlobalSize, cls, getStyleShadowState, handleConvertClassColor, getBorderStyle, getBorderRadiusStyle, getStyleShadow, getAspectRatioGlobalSize, getGlobalColorStateClass, getGlobalColorStateStyle, makeStyleState, getCornerCSSFromGlobal } from '@gem-sdk/core';
3
3
  import Link from '../../link/components/Link.js';
4
4
  import AdaptiveImage from './AdaptiveImage.js';
5
5
  import NextImage from './NextImage.js';
6
6
  import { composeAspectRatio } from './helpers.js';
7
+ import NoDataImage from './NoDataImage.js';
8
+ import { useMemo } from 'react';
7
9
 
8
10
  const Image = ({ styles, className, setting, builderAttrs, builderProps, style, children, onClick, onLoad })=>{
9
11
  const { image, imageLink, srcSet, isNotLazyload } = setting ?? {};
10
12
  const { customAspectRadio } = styles ?? {};
13
+ const currentDevice = useCurrentDevice();
11
14
  const { shape } = styles ?? {};
12
15
  const WrapLink = imageLink?.link ? Link : 'div';
13
16
  const opacity = {
@@ -52,6 +55,18 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
52
55
  custom: customAspectRadio
53
56
  })
54
57
  };
58
+ const isShowNoDataState = useMemo(()=>{
59
+ if (setting?.disableNoDataState) return false;
60
+ if (currentDevice === 'mobile') return !setting?.srcSet?.mobile?.src && !setting?.srcSet?.tablet?.src && !setting?.srcSet?.desktop?.src;
61
+ if (currentDevice === 'tablet') return !setting?.srcSet?.tablet?.src && !setting?.srcSet?.desktop?.src;
62
+ return !setting?.srcSet?.desktop?.src;
63
+ }, [
64
+ currentDevice,
65
+ setting?.disableNoDataState,
66
+ setting?.srcSet?.desktop?.src,
67
+ setting?.srcSet?.mobile?.src,
68
+ setting?.srcSet?.tablet?.src
69
+ ]);
55
70
  return /*#__PURE__*/ jsxs("div", {
56
71
  ...builderAttrs,
57
72
  "data-id": builderProps?.uid,
@@ -76,14 +91,18 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
76
91
  style: {
77
92
  ...getStyleShadowState(styles?.boxShadowImg, 'box-shadow', styles?.hasBoxShadowImg),
78
93
  borderRadius: 'inherit',
79
- overflow: 'hidden',
80
94
  ...makeStyleResponsive('jc', styles?.align)
81
95
  },
82
96
  children: [
83
- setting?.isAdaptive ? /*#__PURE__*/ jsx(AdaptiveImage, {
97
+ isShowNoDataState ? /*#__PURE__*/ jsx(NoDataImage, {
98
+ style: {
99
+ ...imageWidth,
100
+ ...imageHeight
101
+ }
102
+ }) : setting?.isAdaptive ? /*#__PURE__*/ jsx(AdaptiveImage, {
84
103
  srcSet: setting.srcSet,
85
104
  pictureClass: "gp-contents",
86
- className: cls(className, 'gp-w-full gp-max-w-full', handleConvertClassColor(styles?.borderImg)),
105
+ className: cls(className, 'gp-inline-block gp-w-full gp-max-w-full', handleConvertClassColor(styles?.borderImg)),
87
106
  alt: setting.alt,
88
107
  style: {
89
108
  ...imageWidth,
@@ -3,7 +3,7 @@ import AdaptiveImage from './AdaptiveImage.liquid.js';
3
3
  import NextImage from './NextImage.liquid.js';
4
4
  import { getInsertLinkData } from '../../helpers.js';
5
5
 
6
- const Image = ({ styles, className, setting, builderAttrs, builderProps, style, advanced, enableLazyloadImage = true })=>{
6
+ const Image = ({ styles, className, setting, builderAttrs, builderProps, style, advanced, enableLazyLoadImage = true, pageContext })=>{
7
7
  const { imageLink, isNotLazyload } = setting ?? {};
8
8
  const { shape } = styles ?? {};
9
9
  const { Wrap: WrapLink, urlData } = getInsertLinkData('div', imageLink);
@@ -30,7 +30,7 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
30
30
  }}
31
31
  data-id="${builderProps?.uid}"
32
32
  role="presentation"
33
- class="${cls('gp-group/image', builderProps?.uid, advanced?.cssClass)}"
33
+ class="${cls('gp-group/image', builderProps?.uid, advanced?.cssClass, `force-publish-${new Date().getTime()}`)}"
34
34
  style="${{
35
35
  ...style,
36
36
  ...makeStyleResponsive('ta', styles?.align)
@@ -46,7 +46,6 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
46
46
  style="${{
47
47
  ...getStyleShadowState(styles?.boxShadowImg, 'box-shadow', styles?.hasBoxShadowImg),
48
48
  'border-radius': 'inherit',
49
- overflow: 'hidden',
50
49
  ...makeStyleResponsive('jc', styles?.align)
51
50
  }}"
52
51
  >
@@ -73,7 +72,8 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
73
72
  aspectRatio: getAspectRatioGlobalSize(styles?.shape),
74
73
  layout: styles?.objectFit,
75
74
  priority: setting?.priority,
76
- enableLazyloadImage
75
+ enableLazyLoadImage,
76
+ pageContext
77
77
  }) : NextImage({
78
78
  ...setting?.image,
79
79
  priority: setting?.priority,
@@ -102,7 +102,8 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
102
102
  layout: styles?.objectFit
103
103
  },
104
104
  isNotLazyload,
105
- enableLazyloadImage
105
+ enableLazyLoadImage,
106
+ pageContext
106
107
  })}
107
108
  </${WrapLink}>
108
109
  </div>`;
@@ -3,7 +3,7 @@ import { getNewBackupFileKey, getImageSrc, getSrcSet } from '../helpers/getSrcSe
3
3
  import { DEVICES } from '../../product/components/ProductVariants/index.js';
4
4
  import { createBlurDataURL } from './helpers.js';
5
5
 
6
- const NextImage = ({ setting, src = 'https://ucarecdn.com/465c7cbb-f087-4d1d-8f08-f6665179f02f/-/format/auto/-/quality/lighter/placeholder-1.png', srcIsLiquidCode, alt = 'Alt image', width = 2237, height = 1678, backupFileKey, backupFilePath, storage, style, priority, vw, className, base64, baseSrc, isDisableAspectStyle, isDisableObjectFit, customAttrs, customLazyload, isNotLazyload, enableLazyloadImage = true, srcset, sizes, ...props })=>{
6
+ const NextImage = ({ setting, src = 'https://ucarecdn.com/465c7cbb-f087-4d1d-8f08-f6665179f02f/-/format/auto/-/quality/lighter/placeholder-1.png', srcIsLiquidCode, alt = 'Alt image', width = 2237, height = 1678, backupFileKey, backupFilePath, storage, style, priority, vw, className, base64, baseSrc, isDisableAspectStyle, isDisableObjectFit, customAttrs, customLazyload, isNotLazyload, enableLazyLoadImage = true, pageContext, srcset, sizes, ...props })=>{
7
7
  const { aspectRatio, layout, qualityPercent, qualityType } = setting ?? {};
8
8
  const newBackupFilekey = backupFileKey ? getNewBackupFileKey(backupFileKey ?? '', src) : '';
9
9
  const srcImage = srcIsLiquidCode ? baseSrc : getImageSrc({
@@ -93,12 +93,13 @@ const NextImage = ({ setting, src = 'https://ucarecdn.com/465c7cbb-f087-4d1d-8f0
93
93
  ${customAttrs}
94
94
  draggable="false"
95
95
  class="${cls(className, {
96
- gp_lazyload: !customLazyload && enableLazyloadImage
96
+ gp_lazyload: !customLazyload && enableLazyLoadImage,
97
+ gp_force_load: pageContext?.isOptimizePlan
97
98
  })}"
98
99
  ${{
99
100
  'data-src': srcImage,
100
101
  'data-srcset': srcSetImg,
101
- src: enableLazyloadImage ? imagePlaceholder : srcImage,
102
+ src: enableLazyLoadImage ? imagePlaceholder : srcImage,
102
103
  width,
103
104
  height,
104
105
  alt,
@@ -0,0 +1,129 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import AdaptiveImage from './AdaptiveImage.js';
3
+
4
+ const NoDataImage = ({ style })=>{
5
+ return /*#__PURE__*/ jsxs("div", {
6
+ className: "gp-w-full gp-h-full gp-bg-[#F9F9F9] gp-flex gp-items-center gp-justify-center",
7
+ children: [
8
+ AdaptiveImage({
9
+ pictureClass: 'gp-w-full',
10
+ srcSet: {
11
+ desktop: {
12
+ src: 'https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif'
13
+ }
14
+ },
15
+ style: {
16
+ ...style,
17
+ '--op': 0,
18
+ '--z': -1
19
+ }
20
+ }),
21
+ /*#__PURE__*/ jsx("div", {
22
+ className: "gp-absolute gp-flex gp-justify-center gp-items-center",
23
+ children: /*#__PURE__*/ jsxs("svg", {
24
+ width: "40",
25
+ height: "40",
26
+ viewBox: "0 0 40 40",
27
+ fill: "none",
28
+ xmlns: "http://www.w3.org/2000/svg",
29
+ children: [
30
+ /*#__PURE__*/ jsxs("g", {
31
+ clipPath: "url(#clip0_942_39561)",
32
+ children: [
33
+ /*#__PURE__*/ jsx("rect", {
34
+ width: "40",
35
+ height: "40",
36
+ fill: "#F9F9F9"
37
+ }),
38
+ /*#__PURE__*/ jsx("rect", {
39
+ x: "4",
40
+ width: "32",
41
+ height: "40",
42
+ rx: "2",
43
+ fill: "#E2E2E2"
44
+ }),
45
+ /*#__PURE__*/ jsx("rect", {
46
+ y: "26",
47
+ width: "40",
48
+ height: "14",
49
+ fill: "url(#paint0_linear_942_39561)"
50
+ }),
51
+ /*#__PURE__*/ jsx("rect", {
52
+ x: "8",
53
+ y: "4",
54
+ width: "24",
55
+ height: "24",
56
+ rx: "1",
57
+ fill: "#F9F9F9"
58
+ }),
59
+ /*#__PURE__*/ jsx("circle", {
60
+ cx: "15.2809",
61
+ cy: "11.3688",
62
+ r: "1.36884",
63
+ fill: "#D2D2D2"
64
+ }),
65
+ /*#__PURE__*/ jsx("path", {
66
+ d: "M13.1916 17.7343L15.3456 15.0797C15.4185 14.9896 15.5086 14.9168 15.6101 14.8659C15.7115 14.815 15.822 14.7872 15.9343 14.7844C16.0466 14.7815 16.1583 14.8036 16.2619 14.8492C16.3656 14.8949 16.459 14.963 16.536 15.0492L17.5432 16.1758L21.4803 11.2146C21.5573 11.1174 21.6542 11.0397 21.7637 10.9874C21.8732 10.9351 21.9925 10.9094 22.1127 10.9123C22.2329 10.9153 22.3509 10.9467 22.458 11.0043C22.5651 11.0619 22.6585 11.1442 22.7312 11.245L27.4383 17.7671C27.5283 17.8921 27.5834 18.0411 27.5974 18.1973C27.6114 18.3535 27.5838 18.5108 27.5176 18.6513C27.4514 18.7919 27.3493 18.9102 27.2228 18.993C27.0963 19.0758 26.9503 19.1198 26.8014 19.12L13.8002 19.1251C13.6473 19.1251 13.4975 19.0789 13.3688 18.992C13.24 18.9051 13.1375 18.7812 13.0735 18.6348C13.0095 18.4885 12.9866 18.326 13.0075 18.1664C13.0285 18.0068 13.0923 17.8569 13.1916 17.7343Z",
67
+ fill: "#D2D2D2"
68
+ }),
69
+ /*#__PURE__*/ jsx("rect", {
70
+ x: "24.3333",
71
+ y: "24.3333",
72
+ width: "15.3333",
73
+ height: "15.3333",
74
+ rx: "7.66667",
75
+ fill: "white"
76
+ }),
77
+ /*#__PURE__*/ jsx("rect", {
78
+ x: "24.3333",
79
+ y: "24.3333",
80
+ width: "15.3333",
81
+ height: "15.3333",
82
+ rx: "7.66667",
83
+ stroke: "#C4C4C4",
84
+ strokeWidth: "0.666667"
85
+ }),
86
+ /*#__PURE__*/ jsx("path", {
87
+ d: "M33.813 34.5199C34.0083 34.7152 34.3249 34.7152 34.5201 34.5199C34.7154 34.3246 34.7154 34.0081 34.5201 33.8128L32.707 31.9997L34.5201 30.1866C34.7154 29.9913 34.7154 29.6747 34.5201 29.4795C34.3249 29.2842 34.0083 29.2842 33.813 29.4795L31.9999 31.2926L30.1868 29.4795C29.9915 29.2842 29.675 29.2842 29.4797 29.4795C29.2844 29.6747 29.2844 29.9913 29.4797 30.1866L31.2928 31.9997L29.4797 33.8128C29.2844 34.0081 29.2844 34.3246 29.4797 34.5199C29.675 34.7152 29.9915 34.7152 30.1868 34.5199L31.9999 32.7068L33.813 34.5199Z",
88
+ fill: "#676767"
89
+ })
90
+ ]
91
+ }),
92
+ /*#__PURE__*/ jsxs("defs", {
93
+ children: [
94
+ /*#__PURE__*/ jsxs("linearGradient", {
95
+ id: "paint0_linear_942_39561",
96
+ x1: "20",
97
+ y1: "26",
98
+ x2: "20",
99
+ y2: "40",
100
+ gradientUnits: "userSpaceOnUse",
101
+ children: [
102
+ /*#__PURE__*/ jsx("stop", {
103
+ stopColor: "#F9F9F9",
104
+ stopOpacity: "0"
105
+ }),
106
+ /*#__PURE__*/ jsx("stop", {
107
+ offset: "1",
108
+ stopColor: "#F9F9F9"
109
+ })
110
+ ]
111
+ }),
112
+ /*#__PURE__*/ jsx("clipPath", {
113
+ id: "clip0_942_39561",
114
+ children: /*#__PURE__*/ jsx("rect", {
115
+ width: "40",
116
+ height: "40",
117
+ fill: "white"
118
+ })
119
+ })
120
+ ]
121
+ })
122
+ ]
123
+ })
124
+ })
125
+ ]
126
+ });
127
+ };
128
+
129
+ export { NoDataImage as default };
@@ -7,7 +7,7 @@ import { getSettingPreloadData } from '../../helpers.js';
7
7
  import { styleLazyPlaceholder } from './common/helpers.js';
8
8
 
9
9
  const CompareImage = (props)=>{
10
- const { handle = null, handleSize = 40, hover = false, leftImage, leftImageAlt = '', leftImageTitle = '', leftImageCss = {}, leftImageLabel = null, onSliderPositionChange, rightImage, rightImageAlt = '', rightImageTitle = '', rightImageCss = {}, rightImageLabel = null, sliderLineColor = '#ffffff', sliderLineWidth = 2, sliderPositionPercentage = 0.5, vertical = false, enableLabel = false, componentUid = '', styles, advanced, builderData, preload = false, pageContext, translate } = props;
10
+ const { handle = null, handleSize = 40, hover = false, leftImage, leftImageAlt = '', leftImageTitle = '', leftImageCss = {}, leftImageLabel = null, onSliderPositionChange, rightImage, rightImageAlt = '', rightImageTitle = '', rightImageCss = {}, rightImageLabel = null, sliderLineColor = '#ffffff', sliderLineWidth = 2, sliderPositionPercentage = 0.5, vertical = false, enableLabel = false, componentUid = '', styles, advanced, builderData, preload = false, enableLazyLoadImage, pageContext, translate } = props;
11
11
  const horizontal = !vertical;
12
12
  const leftRatio = (leftImage?.width ?? 0) / (leftImage?.height ?? 1);
13
13
  const rightRatio = (rightImage?.width ?? 0) / (rightImage?.height ?? 1);
@@ -267,7 +267,9 @@ const CompareImage = (props)=>{
267
267
  style: {
268
268
  ...initStyles.rightImage,
269
269
  ...makeStyleResponsive('objf', styles?.imageScale)
270
- }
270
+ },
271
+ enableLazyLoadImage,
272
+ pageContext
271
273
  })}
272
274
  ${NextImage({
273
275
  customAttrs: {
@@ -283,7 +285,9 @@ const CompareImage = (props)=>{
283
285
  style: {
284
286
  ...initStyles.rightImage,
285
287
  ...makeStyleResponsive('objf', styles?.imageScale)
286
- }
288
+ },
289
+ enableLazyLoadImage,
290
+ pageContext
287
291
  })}
288
292
  <div id="image-comparison-slider-${componentUid}" style="${{
289
293
  ...initStyles.slider
package/dist/esm/index.js CHANGED
@@ -205,8 +205,18 @@ export { default as TrustreviewsProductReviews } from './third-party/components/
205
205
  export { default as MyappgurusProductReviews } from './third-party/components/MyappgurusProductReviews.js';
206
206
  export { default as HulkProductOptions } from './third-party/components/HulkProductOptions.js';
207
207
  export { default as TrustshopProductReviews } from './third-party/components/TrustshopProductReviews.js';
208
+ export { default as StellarDeliveryDatePickup } from './third-party/components/StellarDeliveryDatePickup.js';
209
+ export { default as EssentialCountdownTimerBar } from './third-party/components/EssentialCountdownTimerBar.js';
210
+ export { default as EssentialAnnouncementBar } from './third-party/components/EssentialAnnouncementBar.js';
211
+ export { default as OkendoReviewsLoyalty } from './third-party/components/OkendoReviewsLoyalty.js';
212
+ export { default as EstimatedDeliveryDatePlus } from './third-party/components/EstimatedDeliveryDatePlus.js';
208
213
  export { default as HextomCountdownTimerBar } from './third-party/components/HextomCountdownTimerBar.js';
209
214
  export { default as TrustBadgesBear } from './third-party/components/TrustBadgesBear.js';
215
+ export { default as TrustedsiteTrustBadges } from './third-party/components/TrustedsiteTrustBadges.js';
216
+ export { default as GloColorSwatchvariantImage } from './third-party/components/GloColorSwatchvariantImage.js';
217
+ export { default as BfSizeChartSizeGuide } from './third-party/components/BfSizeChartSizeGuide.js';
218
+ export { default as AlsoBoughtCbb } from './third-party/components/AlsoBoughtCbb.js';
219
+ export { default as HextomFreeShippingBar } from './third-party/components/HextomFreeShippingBar.js';
210
220
  export { default as thirdPartyInstantSetting } from './third-party-instant/setting/index.js';
211
221
  export { default as InstantJudgemeReviews } from './third-party-instant/components/InstantJudgemeReviews.js';
212
222
  export { default as InstantLooxReviews } from './third-party-instant/components/InstantLooxReviews.js';
@@ -159,9 +159,19 @@ export { default as SeoantTrustBadgesIcon } from './third-party/components/Seoan
159
159
  export { default as TrustreviewsProductReviews } from './third-party/components/TrustreviewsProductReviews.liquid.js';
160
160
  export { default as MyappgurusProductReviews } from './third-party/components/MyappgurusProductReviews.liquid.js';
161
161
  export { default as HulkProductOptions } from './third-party/components/HulkProductOptions.liquid.js';
162
+ export { default as TrustshopProductReviews } from './third-party/components/TrustshopProductReviews.liquid.js';
163
+ export { default as StellarDeliveryDatePickup } from './third-party/components/StellarDeliveryDatePickup.liquid.js';
164
+ export { default as EssentialCountdownTimerBar } from './third-party/components/EssentialCountdownTimerBar.liquid.js';
165
+ export { default as EssentialAnnouncementBar } from './third-party/components/EssentialAnnouncementBar.liquid.js';
166
+ export { default as OkendoReviewsLoyalty } from './third-party/components/OkendoReviewsLoyalty.liquid.js';
167
+ export { default as EstimatedDeliveryDatePlus } from './third-party/components/EstimatedDeliveryDatePlus.liquid.js';
162
168
  export { default as HextomCountdownTimerBar } from './third-party/components/HextomCountdownTimerBar.liquid.js';
163
169
  export { default as TrustBadgesBear } from './third-party/components/TrustBadgesBear.liquid.js';
164
- export { default as TrustshopProductReviews } from './third-party/components/TrustshopProductReviews.liquid.js';
170
+ export { default as TrustedsiteTrustBadges } from './third-party/components/TrustedsiteTrustBadges.liquid.js';
171
+ export { default as GloColorSwatchvariantImage } from './third-party/components/GloColorSwatchvariantImage.liquid.js';
172
+ export { default as BfSizeChartSizeGuide } from './third-party/components/BfSizeChartSizeGuide.liquid.js';
173
+ export { default as AlsoBoughtCbb } from './third-party/components/AlsoBoughtCbb.liquid.js';
174
+ export { default as HextomFreeShippingBar } from './third-party/components/HextomFreeShippingBar.liquid.js';
165
175
  export { default as ImageComparison } from './image-comparison/components/ImageComparison.liquid.js';
166
176
  export { default as ThirdPartySlot } from './third-party-slot/components/ThirdPartySlot.liquid.js';
167
177
  export { default as Sticky } from './sticky/components/Sticky.liquid.js';
@@ -1,26 +1,29 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useProduct, useProductOfferDiscount, cls } from '@gem-sdk/core';
3
3
  import Text from '../../text/Text.js';
4
+ import { useDynamicProduct } from '../hooks/useDynamicProduct.js';
4
5
 
5
6
  const PostPurchaseProductDiscountTag = ({ setting = {}, styles = {}, style, builderAttrs, builderProps, children })=>{
6
7
  const currentProduct = useProduct();
7
8
  const currentProductId = currentProduct?.baseID?.replace('gid://shopify/Product/', '');
8
9
  const currentOfferDiscount = useProductOfferDiscount();
10
+ const { isDynamicProduct, isEnableDynamicDiscount } = useDynamicProduct();
9
11
  const { typo } = styles;
10
12
  const { message } = setting;
13
+ const hasDiscount = !!currentOfferDiscount || isDynamicProduct && isEnableDynamicDiscount;
11
14
  return /*#__PURE__*/ jsxs("div", {
12
15
  ...builderAttrs,
13
16
  className: cls(builderProps?.uid, 'gp-flex gp-w-full'),
14
17
  style: {
15
18
  ...style,
16
- opacity: currentOfferDiscount ? 1 : 0.2
19
+ opacity: hasDiscount ? 1 : 0.2
17
20
  },
18
21
  id: `shopify-text-element-${builderProps?.uid}`,
19
22
  "data-product-id": currentProductId,
20
23
  children: [
21
24
  /*#__PURE__*/ jsx(Text, {
22
25
  setting: {
23
- text: currentOfferDiscount ? message : message?.replace(new RegExp(/\{\{Discount\}\}/, 'gi'), '0%')
26
+ text: hasDiscount ? message : message?.replace(new RegExp(/\{\{Discount\}\}/, 'gi'), '0%')
24
27
  },
25
28
  styles: {
26
29
  typo