@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 +3 -0
- package/dist/components/molecules/PromoWithTitle/PromoWithTitle.style.d.ts +3 -3
- package/dist/harmonic.cjs.development.js +54 -71
- package/dist/harmonic.cjs.development.js.map +1 -1
- package/dist/harmonic.cjs.production.min.js +1 -1
- package/dist/harmonic.cjs.production.min.js.map +1 -1
- package/dist/harmonic.esm.js +54 -71
- package/dist/harmonic.esm.js.map +1 -1
- package/dist/helpers/urls.d.ts +0 -1
- package/dist/index.d.ts +1 -2
- package/dist/types/editorial.d.ts +6 -4
- package/dist/types/information.d.ts +2 -2
- package/dist/types/typography.d.ts +8 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -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
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
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:
|
|
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
|
|
10184
|
-
var
|
|
10185
|
-
var
|
|
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(
|
|
10377
|
-
|
|
10378
|
-
|
|
10379
|
-
}, title)
|
|
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({
|
|
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
|
-
},
|
|
12250
|
+
}, slidesMedia.map(function (mediaContent, index) {
|
|
12268
12251
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
12269
12252
|
className: "swiper-slide",
|
|
12270
12253
|
key: mediaContent.key,
|