diy-template-components 5.13.0 → 5.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.es.js CHANGED
@@ -349,7 +349,7 @@ const useSectionStyles$b = createUseStyles(theme => ({
349
349
  bottom: 0,
350
350
  left: 0,
351
351
  width: '100%',
352
- zIndex: '100'
352
+ zIndex: '10000'
353
353
  }
354
354
  },
355
355
  mobileAppNameClass: {
@@ -10914,7 +10914,7 @@ const SingleVideoSlide$1 = props => {
10914
10914
  currencySymbol
10915
10915
  } = props;
10916
10916
  const showCourseInstallmentData = data?.courseOverviewData;
10917
- const InstalmentData = isEdit ? data?.courseOverviewData?.installments?.formData?.installments[0].installmentAmount : data?.courseOverviewData?.installments?.formData?.installmentInfo?.installments[0].installmentPrice;
10917
+ const InstalmentData = isEdit ? data?.courseOverviewData?.installments?.formData?.installments[0].installmentAmount : data?.courseOverviewData?.installments?.formData?.installmentInfo?.installments?.[0]?.installmentPrice;
10918
10918
  const checkIfOfferIsValid = () => moment().diff(moment(props?.data?.endDate || 0)) < 0;
10919
10919
  const checkForShowDiscount = () => {
10920
10920
  if (props.data.endDate === null || checkIfOfferIsValid()) {
@@ -13020,6 +13020,17 @@ const whatsAppIconSvgSize = {
13020
13020
  };
13021
13021
  const getWhatsAppIconSize = breakpoint => whatsAppIconSvgSize[breakpoint] ?? whatsAppIconSvgSize.mobile;
13022
13022
 
13023
+ /**
13024
+ * Height of the sticky bar (full-width CTA) by breakpoint for page padding.
13025
+ * Used to prevent content overlap when the sticky bar is fixed at the bottom.
13026
+ * Values match the sticky bar's padding + content height per breakpoint.
13027
+ */
13028
+ const STICKY_BAR_HEIGHT_BY_BREAKPOINT = {
13029
+ mobile: 0,
13030
+ tablet: 78,
13031
+ desktop: 82
13032
+ };
13033
+
13023
13034
  const DEFAULT_WHATSAPP_ICON_COLOR = '#25D366';
13024
13035
 
13025
13036
  /** Build WhatsApp wa.me URL from phone number (digits only, optional + prefix). */
@@ -13201,7 +13212,30 @@ function StickyCta({
13201
13212
  // type === 'sticky' – use primary Button (same as other sections) linking to WhatsApp
13202
13213
  const barStyle = getStickyBarStyle(breakpoint, theme);
13203
13214
  const textStyle = getStickyTextStyle(breakpoint, theme);
13204
- return /*#__PURE__*/React.createElement(React.Fragment, null, isMobile ? null : editHintBlock, /*#__PURE__*/React.createElement("div", {
13215
+ useEffect(() => {
13216
+ document.body.classList.add('has-sticky-cta');
13217
+ return () => document.body.classList.remove('has-sticky-cta');
13218
+ }, []);
13219
+ const stickyBarPaddingStyles = `
13220
+ body.has-sticky-cta {
13221
+ padding-bottom: ${STICKY_BAR_HEIGHT_BY_BREAKPOINT.mobile}px;
13222
+ }
13223
+ @media (min-width: ${BREAKPOINTS.tablet}px) {
13224
+ body.has-sticky-cta {
13225
+ padding-bottom: ${STICKY_BAR_HEIGHT_BY_BREAKPOINT.tablet}px;
13226
+ }
13227
+ }
13228
+ @media (min-width: ${BREAKPOINTS.desktop}px) {
13229
+ body.has-sticky-cta {
13230
+ padding-bottom: ${STICKY_BAR_HEIGHT_BY_BREAKPOINT.desktop}px;
13231
+ }
13232
+ }
13233
+ `;
13234
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("style", {
13235
+ dangerouslySetInnerHTML: {
13236
+ __html: stickyBarPaddingStyles
13237
+ }
13238
+ }), isMobile ? null : editHintBlock, /*#__PURE__*/React.createElement("div", {
13205
13239
  style: barStyle,
13206
13240
  role: "banner",
13207
13241
  "access-cta-sticky": "DIY"
@@ -13778,7 +13812,13 @@ function VideoWorkshopPromotion({
13778
13812
  ref: videoData?.videoTextContent?.metadata?.refSetter,
13779
13813
  data: videoData?.videoTextContent?.metadata,
13780
13814
  type: 'primary',
13781
- size: isMobile ? 'small' : 'medium'
13815
+ size: isMobile ? 'small' : 'medium',
13816
+ onClick: () => {
13817
+ const url = videoData?.videoTextHeading?.metadata?.value;
13818
+ if (url) {
13819
+ window.open(url, '_blank', 'noopener,noreferrer');
13820
+ }
13821
+ }
13782
13822
  }))), /*#__PURE__*/React.createElement("div", {
13783
13823
  className: classes.videoBlock
13784
13824
  }, /*#__PURE__*/React.createElement("div", {