@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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## [0.2.3]
2
+ - Restyle PromoWithTitle component
3
+
1
4
  ## [0.2.0]
2
5
  - PeopleListing: Add variable column span based on people names length
3
6
 
@@ -2,7 +2,7 @@ import { IEditorialGridProps } from '../../../types/editorial';
2
2
  export declare const PromoWithTitleGrid: import("styled-components").StyledComponent<"div", any, IEditorialGridProps, never>;
3
3
  export declare const PromoWithTitleImageWrapper: import("styled-components").StyledComponent<"div", any, IEditorialGridProps, never>;
4
4
  export declare const PromoWithTitleContentWrapper: import("styled-components").StyledComponent<"div", any, IEditorialGridProps, never>;
5
- export declare const PromoWithTitleContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
6
- export declare const PromoWithTitleSubtitle: import("styled-components").StyledComponent<"span", any, {}, never>;
7
- export declare const PromoWithTitleText: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const HarmonicHeaderWithWrapper: import("styled-components").StyledComponent<({ children, size, em, color, serif, hierarchy: Tag, className, }: import("../../../types/typography").IHarmonicHeaderProps) => import("react").JSX.Element, any, {}, never>;
6
+ export declare const HarmonicSubtitleWithWrapper: import("styled-components").StyledComponent<({ children, size, color, className }: import("../../../types/typography").IGenericTypographyProps<HTMLParagraphElement>) => import("react").JSX.Element, any, {}, never>;
7
+ export declare const BodyCopyHarmonicWithWrapper: import("styled-components").StyledComponent<({ children, size, color, className, ...props }: import("../../../types/typography").IGenericTypographyProps<HTMLParagraphElement>) => import("react").JSX.Element, any, {}, never>;
8
8
  export declare const ButtonsContainer: import("styled-components").StyledComponent<"div", any, IEditorialGridProps, never>;
@@ -8333,55 +8333,11 @@ var ButtonsContainer$1 = /*#__PURE__*/styled__default.div(_templateObject14$2 ||
8333
8333
  return '';
8334
8334
  });
8335
8335
 
8336
- // Function to check if a URL is from the same site
8337
- // NOTE: This function is not SSR compatible
8338
- var isSameSiteUrl = function isSameSiteUrl(url) {
8339
- var _window;
8340
- if (url[0] === '/') return true; // URL is relative (e.g. /about)
8341
- if (!((_window = window) != null && _window.location)) return false; // window.location is not available (e.g. in SSR)
8342
- var currentPageURL = window.location.href || '';
8343
- var regexPattern = /^(https?:\/\/)?(www\d?\.)?([\w.-]+)\.\w+.*$/;
8344
- var match = url.match(regexPattern);
8345
- if (match != null && match[3] && currentPageURL) {
8346
- var urlDomain = match[3]; // Extract the domain from the third capture group
8347
- var currentMatch = currentPageURL.match(regexPattern);
8348
- if (currentMatch) {
8349
- var currentDomain = currentMatch[3];
8350
- return urlDomain === currentDomain;
8351
- }
8352
- }
8353
- return false; // URL didn't match the pattern
8354
- };
8355
- // Hook to check if a URL is from the same site - use for SSR
8356
- var useSameSiteUrl = function useSameSiteUrl(url) {
8357
- var _useState = React.useState(false),
8358
- hasSameSiteUrl = _useState[0],
8359
- setSameSiteUrl = _useState[1];
8360
- React.useEffect(function () {
8361
- setSameSiteUrl(isSameSiteUrl(url));
8362
- }, [url]);
8363
- return hasSameSiteUrl;
8364
- };
8365
- var limitImageUrlDimension = function limitImageUrlDimension(imageUrl, widthLimit) {
8366
- try {
8367
- var url = new URL(imageUrl);
8368
- var widthParam = url.searchParams.get('w') || url.searchParams.get('width');
8369
- if (widthParam) {
8370
- return imageUrl.replace(/(w|width)=\d+/, "$1=" + widthLimit);
8371
- }
8372
- var separator = url.search.includes('?') ? '&' : '?';
8373
- return "" + imageUrl + separator + "w=" + widthLimit;
8374
- } catch (error) {
8375
- return imageUrl;
8376
- }
8377
- };
8378
-
8379
8336
  var _excluded$k = ["text"],
8380
8337
  _excluded2$3 = ["text"];
8381
8338
  var _buttonTypeToButton$1;
8382
8339
  var LENGTH_LARGE_TEXT$1 = 28;
8383
8340
  var LENGTH_SMALL_TEXT$2 = 19;
8384
- var IMAGE_WIDTH_LIMIT = 600;
8385
8341
  var buttonTypeToButton$1 = (_buttonTypeToButton$1 = {}, _buttonTypeToButton$1[exports.ButtonType.Primary] = PrimaryButton, _buttonTypeToButton$1[exports.ButtonType.Secondary] = SecondaryButton, _buttonTypeToButton$1[exports.ButtonType.Tertiary] = TertiaryButton, _buttonTypeToButton$1);
8386
8342
  var Card = function Card(_ref) {
8387
8343
  var _labelParams$color;
@@ -8447,7 +8403,6 @@ var Card = function Card(_ref) {
8447
8403
  };
8448
8404
  var FirstButtonComponent = firstButton != null && firstButton.buttonType ? buttonTypeToButton$1[firstButton.buttonType] : PrimaryButton;
8449
8405
  var SecondButtonComponent = secondButton != null && secondButton.buttonType ? buttonTypeToButton$1[secondButton.buttonType] : TertiaryButton;
8450
- var limitedImage = image ? limitImageUrlDimension(image, IMAGE_WIDTH_LIMIT) : image;
8451
8406
  return /*#__PURE__*/React__default.createElement(CardContainer, {
8452
8407
  onMouseOver: function onMouseOver() {
8453
8408
  return onlyShowButtonsOnHover ? hoverHandler(true) : undefined;
@@ -8487,7 +8442,7 @@ var Card = function Card(_ref) {
8487
8442
  }), /*#__PURE__*/React__default.createElement(ImageAspectRatioWrapper, {
8488
8443
  aspectRatio: exports.AspectRatio['4:3']
8489
8444
  }, /*#__PURE__*/React__default.createElement("img", {
8490
- src: limitedImage,
8445
+ src: image,
8491
8446
  alt: imageAltText || title
8492
8447
  })), withContinueWatching && (/*#__PURE__*/React__default.createElement(ProgressContainer, null, /*#__PURE__*/React__default.createElement(Progress, {
8493
8448
  progress: progress,
@@ -9461,6 +9416,36 @@ var PrimaryButtonWithInversion = /*#__PURE__*/styled__default(PrimaryButton)(_te
9461
9416
  return invert ? theme.colors.white : theme.colors.black;
9462
9417
  });
9463
9418
 
9419
+ // Function to check if a URL is from the same site
9420
+ // NOTE: This function is not SSR compatible
9421
+ var isSameSiteUrl = function isSameSiteUrl(url) {
9422
+ var _window;
9423
+ if (url[0] === '/') return true; // URL is relative (e.g. /about)
9424
+ if (!((_window = window) != null && _window.location)) return false; // window.location is not available (e.g. in SSR)
9425
+ var currentPageURL = window.location.href || '';
9426
+ var regexPattern = /^(https?:\/\/)?(www\d?\.)?([\w.-]+)\.\w+.*$/;
9427
+ var match = url.match(regexPattern);
9428
+ if (match != null && match[3] && currentPageURL) {
9429
+ var urlDomain = match[3]; // Extract the domain from the third capture group
9430
+ var currentMatch = currentPageURL.match(regexPattern);
9431
+ if (currentMatch) {
9432
+ var currentDomain = currentMatch[3];
9433
+ return urlDomain === currentDomain;
9434
+ }
9435
+ }
9436
+ return false; // URL didn't match the pattern
9437
+ };
9438
+ // Hook to check if a URL is from the same site - use for SSR
9439
+ var useSameSiteUrl = function useSameSiteUrl(url) {
9440
+ var _useState = React.useState(false),
9441
+ hasSameSiteUrl = _useState[0],
9442
+ setSameSiteUrl = _useState[1];
9443
+ React.useEffect(function () {
9444
+ setSameSiteUrl(isSameSiteUrl(url));
9445
+ }, [url]);
9446
+ return hasSameSiteUrl;
9447
+ };
9448
+
9464
9449
  var renderBranding = function renderBranding(brandingStyle, invert, brandingText, brandingLink) {
9465
9450
  // eslint-disable-next-line react-hooks/rules-of-hooks
9466
9451
  var sameSiteUrl = brandingLink && useSameSiteUrl(brandingLink);
@@ -10176,13 +10161,13 @@ var PromoWithTitleImageWrapper = /*#__PURE__*/styled__default.div(_templateObjec
10176
10161
  var imageToLeft = _ref3.imageToLeft;
10177
10162
  return imageToLeft ? 'left' : 'right';
10178
10163
  }, devices.mobile);
10179
- var PromoWithTitleContentWrapper = /*#__PURE__*/styled__default.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) {
10164
+ var PromoWithTitleContentWrapper = /*#__PURE__*/styled__default.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) {
10180
10165
  var imageToLeft = _ref4.imageToLeft;
10181
10166
  return imageToLeft ? 'right' : 'left';
10182
10167
  }, devices.mobile);
10183
- var PromoWithTitleContainer = /*#__PURE__*/styled__default.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);
10184
- var PromoWithTitleSubtitle = /*#__PURE__*/styled__default.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"])));
10185
- var PromoWithTitleText = /*#__PURE__*/styled__default.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"])));
10168
+ var HarmonicHeaderWithWrapper = /*#__PURE__*/styled__default(HarmonicHeader)(_templateObject4$A || (_templateObject4$A = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 32px;\n\n @media ", " {\n margin-bottom: 24px;\n }\n"])), devices.mobile);
10169
+ var HarmonicSubtitleWithWrapper = /*#__PURE__*/styled__default(HarmonicSubtitle)(_templateObject5$t || (_templateObject5$t = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: 0;\n overflow-wrap: break-word;\n margin-bottom: 16px;\n"])));
10170
+ var BodyCopyHarmonicWithWrapper = /*#__PURE__*/styled__default(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);
10186
10171
  var ButtonsContainer$3 = /*#__PURE__*/styled__default.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) {
10187
10172
  var _ref5$primaryButtonTe = _ref5.primaryButtonTextLength,
10188
10173
  primaryButtonTextLength = _ref5$primaryButtonTe === void 0 ? 0 : _ref5$primaryButtonTe,
@@ -10328,18 +10313,20 @@ var PromoWithTitle = function PromoWithTitle(_ref) {
10328
10313
  title = _ref$title === void 0 ? '' : _ref$title,
10329
10314
  _ref$titleSize = _ref.titleSize,
10330
10315
  titleSize = _ref$titleSize === void 0 ? 'large' : _ref$titleSize,
10316
+ titleHierarchy = _ref.titleHierarchy,
10331
10317
  subtitle = _ref.subtitle,
10332
10318
  text = _ref.text,
10333
10319
  links = _ref.links,
10334
10320
  children = _ref.children,
10335
10321
  videoSettings = _ref.videoSettings,
10336
- titleSemanticLevel = _ref.titleSemanticLevel,
10337
10322
  className = _ref.className;
10338
10323
  var truncate = function truncate(str, n) {
10339
10324
  return str.length >= n ? str.substr(0, n) : str;
10340
10325
  };
10326
+ // const correctTitleSize = (size: typeof titleSize): 'medium' | 'large' => {
10327
+ // return size === 'small' ? 'medium' : 'large';
10328
+ // };
10341
10329
  var imageToLeft = imagePosition === 'left';
10342
- var titleLevel = titleSize === 'large' ? 2 : 3;
10343
10330
  var primaryButton = links == null ? void 0 : links[0];
10344
10331
  var _ref2 = primaryButton || {},
10345
10332
  _ref2$text = _ref2.text,
@@ -10363,20 +10350,19 @@ var PromoWithTitle = function PromoWithTitle(_ref) {
10363
10350
  imageToLeft: imageToLeft,
10364
10351
  className: className,
10365
10352
  "data-testid": "promo-with-title"
10366
- }, /*#__PURE__*/React__default.createElement(PromoChild
10367
- // eslint-disable-next-line react/no-children-prop
10368
- , {
10369
- // eslint-disable-next-line react/no-children-prop
10370
- children: children,
10353
+ }, /*#__PURE__*/React__default.createElement(PromoChild, {
10371
10354
  videoSettings: _extends({}, defaultVideoSettings, videoSettings),
10372
10355
  imageToLeft: imageToLeft
10373
- }), /*#__PURE__*/React__default.createElement(PromoWithTitleContentWrapper, {
10356
+ }, children), /*#__PURE__*/React__default.createElement(PromoWithTitleContentWrapper, {
10374
10357
  "data-testid": "content-wrapper",
10375
10358
  imageToLeft: imageToLeft
10376
- }, /*#__PURE__*/React__default.createElement(PromoWithTitleContainer, null, /*#__PURE__*/React__default.createElement(Header, {
10377
- level: titleLevel,
10378
- semanticLevel: titleSemanticLevel != null ? titleSemanticLevel : titleLevel
10379
- }, title)), subtitle ? /*#__PURE__*/React__default.createElement(PromoWithTitleSubtitle, null, subtitle) : null, /*#__PURE__*/React__default.createElement(PromoWithTitleText, {
10359
+ }, /*#__PURE__*/React__default.createElement(HarmonicHeaderWithWrapper, {
10360
+ size: titleSize,
10361
+ hierarchy: titleHierarchy
10362
+ }, title), subtitle ? /*#__PURE__*/React__default.createElement(HarmonicSubtitleWithWrapper, {
10363
+ size: "medium"
10364
+ }, subtitle) : null, /*#__PURE__*/React__default.createElement(BodyCopyHarmonicWithWrapper, {
10365
+ size: "large",
10380
10366
  dangerouslySetInnerHTML: {
10381
10367
  __html: text
10382
10368
  }
@@ -10384,7 +10370,11 @@ var PromoWithTitle = function PromoWithTitle(_ref) {
10384
10370
  "data-testid": "buttons-wrapper",
10385
10371
  primaryButtonTextLength: primaryButtonText.length,
10386
10372
  tertiaryButtonTextLength: tertiaryButtonText.length
10387
- }, primaryButton ? /*#__PURE__*/React__default.createElement(PrimaryButton, Object.assign({}, restPrimaryButton), primaryButtonTextTruncate) : null, tertiaryButton ? (/*#__PURE__*/React__default.createElement(TertiaryButton, Object.assign({}, restTertiaryButton), tertiaryButtonTextTruncate)) : null)) : null));
10373
+ }, primaryButton ? (/*#__PURE__*/React__default.createElement(PrimaryButton, Object.assign({
10374
+ target: "_blank"
10375
+ }, restPrimaryButton), primaryButtonTextTruncate)) : null, tertiaryButton ? (/*#__PURE__*/React__default.createElement(TertiaryButton, Object.assign({
10376
+ target: "_blank"
10377
+ }, restTertiaryButton), tertiaryButtonTextTruncate)) : null)) : null));
10388
10378
  };
10389
10379
 
10390
10380
  var _templateObject$1a;
@@ -12222,7 +12212,6 @@ var isVideoSlide = function isVideoSlide(slideMedia) {
12222
12212
  return slideMedia.video !== undefined;
12223
12213
  };
12224
12214
 
12225
- var IMAGE_WIDTH_LIMIT$1 = 800;
12226
12215
  var VideoSlide = function VideoSlide(_ref) {
12227
12216
  var index = _ref.index,
12228
12217
  settings = _ref.settings,
@@ -12253,18 +12242,12 @@ var SwipeCarousel = function SwipeCarousel(_ref2) {
12253
12242
  var hasOnlyImageSlides = slidesMedia.every(function (slide) {
12254
12243
  return !isVideoSlide(slide);
12255
12244
  });
12256
- var limitedMediaContent = slidesMedia.map(function (slide) {
12257
- if (isVideoSlide(slide)) return slide;
12258
- return _extends({}, slide, {
12259
- src: slide.src ? limitImageUrlDimension(slide.src, IMAGE_WIDTH_LIMIT$1) : undefined
12260
- });
12261
- });
12262
12245
  return /*#__PURE__*/React__default.createElement(Swipe, {
12263
12246
  ref: carouselRef,
12264
12247
  infinite: hasMultipleSlides && hasOnlyImageSlides,
12265
12248
  onIndexChange: setCurrentSlide,
12266
12249
  "aria-roledescription": "carousel"
12267
- }, limitedMediaContent.map(function (mediaContent, index) {
12250
+ }, slidesMedia.map(function (mediaContent, index) {
12268
12251
  return /*#__PURE__*/React__default.createElement("div", {
12269
12252
  className: "swiper-slide",
12270
12253
  key: mediaContent.key,