@royaloperahouse/harmonic 0.2.3-d → 0.2.3-f

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.
@@ -8361,55 +8361,11 @@ var ButtonsContainer$1 = /*#__PURE__*/styled.div(_templateObject14$2 || (_templa
8361
8361
  return '';
8362
8362
  });
8363
8363
 
8364
- // Function to check if a URL is from the same site
8365
- // NOTE: This function is not SSR compatible
8366
- var isSameSiteUrl = function isSameSiteUrl(url) {
8367
- var _window;
8368
- if (url[0] === '/') return true; // URL is relative (e.g. /about)
8369
- if (!((_window = window) != null && _window.location)) return false; // window.location is not available (e.g. in SSR)
8370
- var currentPageURL = window.location.href || '';
8371
- var regexPattern = /^(https?:\/\/)?(www\d?\.)?([\w.-]+)\.\w+.*$/;
8372
- var match = url.match(regexPattern);
8373
- if (match != null && match[3] && currentPageURL) {
8374
- var urlDomain = match[3]; // Extract the domain from the third capture group
8375
- var currentMatch = currentPageURL.match(regexPattern);
8376
- if (currentMatch) {
8377
- var currentDomain = currentMatch[3];
8378
- return urlDomain === currentDomain;
8379
- }
8380
- }
8381
- return false; // URL didn't match the pattern
8382
- };
8383
- // Hook to check if a URL is from the same site - use for SSR
8384
- var useSameSiteUrl = function useSameSiteUrl(url) {
8385
- var _useState = useState(false),
8386
- hasSameSiteUrl = _useState[0],
8387
- setSameSiteUrl = _useState[1];
8388
- useEffect(function () {
8389
- setSameSiteUrl(isSameSiteUrl(url));
8390
- }, [url]);
8391
- return hasSameSiteUrl;
8392
- };
8393
- var limitImageUrlDimension = function limitImageUrlDimension(imageUrl, widthLimit) {
8394
- try {
8395
- var url = new URL(imageUrl);
8396
- var widthParam = url.searchParams.get('w') || url.searchParams.get('width');
8397
- if (widthParam) {
8398
- return imageUrl.replace(/(w|width)=\d+/, "$1=" + widthLimit);
8399
- }
8400
- var separator = url.search.includes('?') ? '&' : '?';
8401
- return "" + imageUrl + separator + "w=" + widthLimit;
8402
- } catch (error) {
8403
- return imageUrl;
8404
- }
8405
- };
8406
-
8407
8364
  var _excluded$k = ["text"],
8408
8365
  _excluded2$3 = ["text"];
8409
8366
  var _buttonTypeToButton$1;
8410
8367
  var LENGTH_LARGE_TEXT$1 = 28;
8411
8368
  var LENGTH_SMALL_TEXT$2 = 19;
8412
- var IMAGE_WIDTH_LIMIT = 600;
8413
8369
  var buttonTypeToButton$1 = (_buttonTypeToButton$1 = {}, _buttonTypeToButton$1[ButtonType.Primary] = PrimaryButton, _buttonTypeToButton$1[ButtonType.Secondary] = SecondaryButton, _buttonTypeToButton$1[ButtonType.Tertiary] = TertiaryButton, _buttonTypeToButton$1);
8414
8370
  var Card = function Card(_ref) {
8415
8371
  var _labelParams$color;
@@ -8475,7 +8431,6 @@ var Card = function Card(_ref) {
8475
8431
  };
8476
8432
  var FirstButtonComponent = firstButton != null && firstButton.buttonType ? buttonTypeToButton$1[firstButton.buttonType] : PrimaryButton;
8477
8433
  var SecondButtonComponent = secondButton != null && secondButton.buttonType ? buttonTypeToButton$1[secondButton.buttonType] : TertiaryButton;
8478
- var limitedImage = image ? limitImageUrlDimension(image, IMAGE_WIDTH_LIMIT) : image;
8479
8434
  return /*#__PURE__*/React__default.createElement(CardContainer, {
8480
8435
  onMouseOver: function onMouseOver() {
8481
8436
  return onlyShowButtonsOnHover ? hoverHandler(true) : undefined;
@@ -8515,7 +8470,7 @@ var Card = function Card(_ref) {
8515
8470
  }), /*#__PURE__*/React__default.createElement(ImageAspectRatioWrapper, {
8516
8471
  aspectRatio: AspectRatio['4:3']
8517
8472
  }, /*#__PURE__*/React__default.createElement("img", {
8518
- src: limitedImage,
8473
+ src: image,
8519
8474
  alt: imageAltText || title
8520
8475
  })), withContinueWatching && (/*#__PURE__*/React__default.createElement(ProgressContainer, null, /*#__PURE__*/React__default.createElement(Progress, {
8521
8476
  progress: progress,
@@ -9489,6 +9444,36 @@ var PrimaryButtonWithInversion = /*#__PURE__*/styled(PrimaryButton)(_templateObj
9489
9444
  return invert ? theme.colors.white : theme.colors.black;
9490
9445
  });
9491
9446
 
9447
+ // Function to check if a URL is from the same site
9448
+ // NOTE: This function is not SSR compatible
9449
+ var isSameSiteUrl = function isSameSiteUrl(url) {
9450
+ var _window;
9451
+ if (url[0] === '/') return true; // URL is relative (e.g. /about)
9452
+ if (!((_window = window) != null && _window.location)) return false; // window.location is not available (e.g. in SSR)
9453
+ var currentPageURL = window.location.href || '';
9454
+ var regexPattern = /^(https?:\/\/)?(www\d?\.)?([\w.-]+)\.\w+.*$/;
9455
+ var match = url.match(regexPattern);
9456
+ if (match != null && match[3] && currentPageURL) {
9457
+ var urlDomain = match[3]; // Extract the domain from the third capture group
9458
+ var currentMatch = currentPageURL.match(regexPattern);
9459
+ if (currentMatch) {
9460
+ var currentDomain = currentMatch[3];
9461
+ return urlDomain === currentDomain;
9462
+ }
9463
+ }
9464
+ return false; // URL didn't match the pattern
9465
+ };
9466
+ // Hook to check if a URL is from the same site - use for SSR
9467
+ var useSameSiteUrl = function useSameSiteUrl(url) {
9468
+ var _useState = useState(false),
9469
+ hasSameSiteUrl = _useState[0],
9470
+ setSameSiteUrl = _useState[1];
9471
+ useEffect(function () {
9472
+ setSameSiteUrl(isSameSiteUrl(url));
9473
+ }, [url]);
9474
+ return hasSameSiteUrl;
9475
+ };
9476
+
9492
9477
  var renderBranding = function renderBranding(brandingStyle, invert, brandingText, brandingLink) {
9493
9478
  // eslint-disable-next-line react-hooks/rules-of-hooks
9494
9479
  var sameSiteUrl = brandingLink && useSameSiteUrl(brandingLink);
@@ -10204,13 +10189,13 @@ var PromoWithTitleImageWrapper = /*#__PURE__*/styled.div(_templateObject2$U || (
10204
10189
  var imageToLeft = _ref3.imageToLeft;
10205
10190
  return imageToLeft ? 'left' : 'right';
10206
10191
  }, devices.mobile);
10207
- var PromoWithTitleContentWrapper = /*#__PURE__*/styled.div(_templateObject3$G || (_templateObject3$G = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n grid-area: ", ";\n align-self: center;\n @media ", " {\n & {\n grid-area: row2;\n align-self: start;\n }\n }\n"])), function (_ref4) {
10192
+ var PromoWithTitleContentWrapper = /*#__PURE__*/styled.div(_templateObject3$G || (_templateObject3$G = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n grid-area: ", ";\n align-self: center;\n\n @media ", " {\n & {\n grid-area: row2;\n align-self: start;\n }\n }\n"])), function (_ref4) {
10208
10193
  var imageToLeft = _ref4.imageToLeft;
10209
10194
  return imageToLeft ? 'right' : 'left';
10210
10195
  }, devices.mobile);
10211
- var PromoWithTitleContainer = /*#__PURE__*/styled.div(_templateObject4$A || (_templateObject4$A = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n h2,\n h3 {\n margin: 0 0 32px;\n\n @media ", " {\n & {\n margin: 0 0 24px;\n }\n }\n }\n"])), devices.mobile);
10212
- var PromoWithTitleSubtitle = /*#__PURE__*/styled.span(_templateObject5$t || (_templateObject5$t = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-family: var(--font-family-subtitle);\n font-feature-settings: var(--font-feature-settings-subtitle);\n font-size: var(--font-size-subtitle-1);\n font-weight: var(--font-weight-subtitle-1);\n line-height: var(--line-height-subtitle-1);\n letter-spacing: var(--letter-spacing-subtitle-1);\n text-transform: var(--text-transform-subtitle);\n margin-bottom: var(--editorial-subtitle-margin-bottom);\n display: block;\n overflow-wrap: break-word;\n"])));
10213
- var PromoWithTitleText = /*#__PURE__*/styled.div(_templateObject6$n || (_templateObject6$n = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-family: var(--font-family-body);\n font-feature-settings: var(--font-feature-settings-body);\n font-size: var(--font-size-body-1);\n font-weight: var(--font-weight-body-1);\n line-height: var(--line-height-body-1);\n letter-spacing: var(--letter-spacing-body-1);\n text-transform: var(--text-transform-body);\n margin: 0;\n padding: 0;\n white-space: break-spaces;\n overflow-wrap: break-word;\n\n h5,\n h6 {\n margin: 0 0 4px 0;\n font-family: var(--font-family-subtitle);\n font-feature-settings: var(--font-feature-settings-subtitle);\n font-size: var(--font-size-subtitle-2);\n font-weight: var(--font-weight-subtitle-2);\n line-height: var(--line-height-subtitle-2);\n letter-spacing: var(--letter-spacing-subtitle-2);\n text-transform: var(--text-transform-subtitle);\n overflow-wrap: break-word;\n }\n\n em {\n font-family: var(--font-family-body-italics);\n }\n\n a {\n text-decoration: underline;\n cursor: pointer;\n\n &[href^='tel:'] {\n text-decoration: none;\n }\n\n &:link {\n color: var(--color-primary-black);\n }\n\n &:visited {\n color: var(--color-base-dark-grey);\n }\n\n &:hover {\n color: var(--color-primary-red);\n }\n }\n"])));
10196
+ var HarmonicHeaderWithWrapper = /*#__PURE__*/styled(HarmonicHeader)(_templateObject4$A || (_templateObject4$A = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 32px;\n\n @media ", " {\n margin-bottom: 24px;\n }\n"])), devices.mobile);
10197
+ var HarmonicSubtitleWithWrapper = /*#__PURE__*/styled(HarmonicSubtitle)(_templateObject5$t || (_templateObject5$t = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: 0;\n overflow-wrap: break-word;\n margin-bottom: 16px;\n"])));
10198
+ var BodyCopyHarmonicWithWrapper = /*#__PURE__*/styled(BodyCopyHarmonic)(_templateObject6$n || (_templateObject6$n = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 0;\n margin: 0;\n margin-bottom: 32px;\n whiete-space: break-spaces;\n overflow-wrap: break-word;\n\n a {\n text-decoration: underline;\n cursor: pointer;\n\n &[href^='tel:'] {\n text-decoration: none;\n }\n\n &:link {\n color: var(--color-primary-black);\n }\n\n &:visited {\n color: var(--color-base-dark-grey);\n }\n\n &:hover {\n color: var(--color-primary-red);\n }\n }\n @media ", " {\n margin-bottom: 24px;\n }\n"])), devices.mobile);
10214
10199
  var ButtonsContainer$3 = /*#__PURE__*/styled.div(_templateObject7$h || (_templateObject7$h = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n gap: 16px;\n margin-top: 32px;\n\n ", "\n\n @media ", " {\n gap: 24px;\n margin-top: 24px;\n flex-direction: column;\n align-items: center;\n }\n\n @media ", " {\n gap: 24px;\n margin-top: 24px;\n align-items: flex-start;\n\n ", "\n }\n"])), function (_ref5) {
10215
10200
  var _ref5$primaryButtonTe = _ref5.primaryButtonTextLength,
10216
10201
  primaryButtonTextLength = _ref5$primaryButtonTe === void 0 ? 0 : _ref5$primaryButtonTe,
@@ -10356,18 +10341,20 @@ var PromoWithTitle = function PromoWithTitle(_ref) {
10356
10341
  title = _ref$title === void 0 ? '' : _ref$title,
10357
10342
  _ref$titleSize = _ref.titleSize,
10358
10343
  titleSize = _ref$titleSize === void 0 ? 'large' : _ref$titleSize,
10344
+ titleHierarchy = _ref.titleHierarchy,
10359
10345
  subtitle = _ref.subtitle,
10360
10346
  text = _ref.text,
10361
10347
  links = _ref.links,
10362
10348
  children = _ref.children,
10363
10349
  videoSettings = _ref.videoSettings,
10364
- titleSemanticLevel = _ref.titleSemanticLevel,
10365
10350
  className = _ref.className;
10366
10351
  var truncate = function truncate(str, n) {
10367
10352
  return str.length >= n ? str.substr(0, n) : str;
10368
10353
  };
10354
+ // const correctTitleSize = (size: typeof titleSize): 'medium' | 'large' => {
10355
+ // return size === 'small' ? 'medium' : 'large';
10356
+ // };
10369
10357
  var imageToLeft = imagePosition === 'left';
10370
- var titleLevel = titleSize === 'large' ? 2 : 3;
10371
10358
  var primaryButton = links == null ? void 0 : links[0];
10372
10359
  var _ref2 = primaryButton || {},
10373
10360
  _ref2$text = _ref2.text,
@@ -10391,20 +10378,19 @@ var PromoWithTitle = function PromoWithTitle(_ref) {
10391
10378
  imageToLeft: imageToLeft,
10392
10379
  className: className,
10393
10380
  "data-testid": "promo-with-title"
10394
- }, /*#__PURE__*/React__default.createElement(PromoChild
10395
- // eslint-disable-next-line react/no-children-prop
10396
- , {
10397
- // eslint-disable-next-line react/no-children-prop
10398
- children: children,
10381
+ }, /*#__PURE__*/React__default.createElement(PromoChild, {
10399
10382
  videoSettings: _extends({}, defaultVideoSettings, videoSettings),
10400
10383
  imageToLeft: imageToLeft
10401
- }), /*#__PURE__*/React__default.createElement(PromoWithTitleContentWrapper, {
10384
+ }, children), /*#__PURE__*/React__default.createElement(PromoWithTitleContentWrapper, {
10402
10385
  "data-testid": "content-wrapper",
10403
10386
  imageToLeft: imageToLeft
10404
- }, /*#__PURE__*/React__default.createElement(PromoWithTitleContainer, null, /*#__PURE__*/React__default.createElement(Header, {
10405
- level: titleLevel,
10406
- semanticLevel: titleSemanticLevel != null ? titleSemanticLevel : titleLevel
10407
- }, title)), subtitle ? /*#__PURE__*/React__default.createElement(PromoWithTitleSubtitle, null, subtitle) : null, /*#__PURE__*/React__default.createElement(PromoWithTitleText, {
10387
+ }, /*#__PURE__*/React__default.createElement(HarmonicHeaderWithWrapper, {
10388
+ size: titleSize,
10389
+ hierarchy: titleHierarchy
10390
+ }, title), subtitle ? /*#__PURE__*/React__default.createElement(HarmonicSubtitleWithWrapper, {
10391
+ size: "medium"
10392
+ }, subtitle) : null, /*#__PURE__*/React__default.createElement(BodyCopyHarmonicWithWrapper, {
10393
+ size: "large",
10408
10394
  dangerouslySetInnerHTML: {
10409
10395
  __html: text
10410
10396
  }
@@ -10412,7 +10398,11 @@ var PromoWithTitle = function PromoWithTitle(_ref) {
10412
10398
  "data-testid": "buttons-wrapper",
10413
10399
  primaryButtonTextLength: primaryButtonText.length,
10414
10400
  tertiaryButtonTextLength: tertiaryButtonText.length
10415
- }, primaryButton ? /*#__PURE__*/React__default.createElement(PrimaryButton, Object.assign({}, restPrimaryButton), primaryButtonTextTruncate) : null, tertiaryButton ? (/*#__PURE__*/React__default.createElement(TertiaryButton, Object.assign({}, restTertiaryButton), tertiaryButtonTextTruncate)) : null)) : null));
10401
+ }, primaryButton ? (/*#__PURE__*/React__default.createElement(PrimaryButton, Object.assign({
10402
+ target: "_blank"
10403
+ }, restPrimaryButton), primaryButtonTextTruncate)) : null, tertiaryButton ? (/*#__PURE__*/React__default.createElement(TertiaryButton, Object.assign({
10404
+ target: "_blank"
10405
+ }, restTertiaryButton), tertiaryButtonTextTruncate)) : null)) : null));
10416
10406
  };
10417
10407
 
10418
10408
  var _templateObject$1a;
@@ -12250,7 +12240,6 @@ var isVideoSlide = function isVideoSlide(slideMedia) {
12250
12240
  return slideMedia.video !== undefined;
12251
12241
  };
12252
12242
 
12253
- var IMAGE_WIDTH_LIMIT$1 = 800;
12254
12243
  var VideoSlide = function VideoSlide(_ref) {
12255
12244
  var index = _ref.index,
12256
12245
  settings = _ref.settings,
@@ -12281,18 +12270,12 @@ var SwipeCarousel = function SwipeCarousel(_ref2) {
12281
12270
  var hasOnlyImageSlides = slidesMedia.every(function (slide) {
12282
12271
  return !isVideoSlide(slide);
12283
12272
  });
12284
- var limitedMediaContent = slidesMedia.map(function (slide) {
12285
- if (isVideoSlide(slide)) return slide;
12286
- return _extends({}, slide, {
12287
- src: slide.src ? limitImageUrlDimension(slide.src, IMAGE_WIDTH_LIMIT$1) : undefined
12288
- });
12289
- });
12290
12273
  return /*#__PURE__*/React__default.createElement(Swipe, {
12291
12274
  ref: carouselRef,
12292
12275
  infinite: hasMultipleSlides && hasOnlyImageSlides,
12293
12276
  onIndexChange: setCurrentSlide,
12294
12277
  "aria-roledescription": "carousel"
12295
- }, limitedMediaContent.map(function (mediaContent, index) {
12278
+ }, slidesMedia.map(function (mediaContent, index) {
12296
12279
  return /*#__PURE__*/React__default.createElement("div", {
12297
12280
  className: "swiper-slide",
12298
12281
  key: mediaContent.key,