@royaloperahouse/harmonic 0.18.6-a → 0.18.6-c
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/dist/components/molecules/Swipe/Swipe.d.ts +1 -0
- package/dist/harmonic.cjs.development.js +69 -38
- 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 +69 -38
- package/dist/harmonic.esm.js.map +1 -1
- package/dist/types/upsell.d.ts +2 -0
- package/package.json +1 -1
package/dist/harmonic.esm.js
CHANGED
|
@@ -3677,6 +3677,9 @@ var RotatorButtons = function RotatorButtons(_ref) {
|
|
|
3677
3677
|
isTablet = _useViewport.isTablet,
|
|
3678
3678
|
hydrated = _useViewport.hydrated;
|
|
3679
3679
|
if (!hydrated) return null;
|
|
3680
|
+
var preventMouseFocus = function preventMouseFocus(e) {
|
|
3681
|
+
e.preventDefault();
|
|
3682
|
+
};
|
|
3680
3683
|
var onClickLeftHandler = function onClickLeftHandler() {
|
|
3681
3684
|
if (onClickPrev) {
|
|
3682
3685
|
onClickPrev();
|
|
@@ -3729,6 +3732,7 @@ var RotatorButtons = function RotatorButtons(_ref) {
|
|
|
3729
3732
|
className: className
|
|
3730
3733
|
}, availablePrev ? (/*#__PURE__*/React__default.createElement(IconWrapper$1, {
|
|
3731
3734
|
size: size,
|
|
3735
|
+
onMouseDown: preventMouseFocus,
|
|
3732
3736
|
onClick: onClickLeftHandler,
|
|
3733
3737
|
onKeyDown: onPrevKeyDownHandler,
|
|
3734
3738
|
tabIndex: 0,
|
|
@@ -3738,9 +3742,12 @@ var RotatorButtons = function RotatorButtons(_ref) {
|
|
|
3738
3742
|
role: "button"
|
|
3739
3743
|
}, renderPrevIcon())) : (/*#__PURE__*/React__default.createElement(IconUnavailableWrapper, {
|
|
3740
3744
|
size: size,
|
|
3741
|
-
|
|
3745
|
+
onMouseDown: preventMouseFocus,
|
|
3746
|
+
"data-testid": "iconprevnoavailable",
|
|
3747
|
+
"aria-hidden": "true"
|
|
3742
3748
|
}, renderPrevIcon())), availableNext ? (/*#__PURE__*/React__default.createElement(IconWrapper$1, {
|
|
3743
3749
|
size: size,
|
|
3750
|
+
onMouseDown: preventMouseFocus,
|
|
3744
3751
|
onClick: onClickRightHandler,
|
|
3745
3752
|
onKeyDown: onNextKeyDownHandler,
|
|
3746
3753
|
tabIndex: 0,
|
|
@@ -3750,9 +3757,12 @@ var RotatorButtons = function RotatorButtons(_ref) {
|
|
|
3750
3757
|
role: "button"
|
|
3751
3758
|
}, renderNextIcon())) : (/*#__PURE__*/React__default.createElement(IconUnavailableWrapper, {
|
|
3752
3759
|
size: size,
|
|
3753
|
-
|
|
3760
|
+
onMouseDown: preventMouseFocus,
|
|
3761
|
+
"data-testid": "iconnextnoavailable",
|
|
3762
|
+
"aria-hidden": "true"
|
|
3754
3763
|
}, renderNextIcon())), showFullscreen && !isMobile && !isTablet && (/*#__PURE__*/React__default.createElement(FullscreenIconWrapper, {
|
|
3755
3764
|
size: size,
|
|
3765
|
+
onMouseDown: preventMouseFocus,
|
|
3756
3766
|
onClick: onClickFullscreenHandler,
|
|
3757
3767
|
onKeyDown: onFullscreenKeyDownHandler,
|
|
3758
3768
|
tabIndex: 0,
|
|
@@ -6643,7 +6653,7 @@ var CastFiltersComponentWrapper = /*#__PURE__*/styled.div(_templateObject$J || (
|
|
|
6643
6653
|
var CastFiltersWrapper = /*#__PURE__*/styled.div(_templateObject2$x || (_templateObject2$x = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 32px;\n\n @media ", " {\n gap: 15px;\n }\n"])), devices.mobile);
|
|
6644
6654
|
var HeadingTextWrapper = /*#__PURE__*/styled.div(_templateObject3$m || (_templateObject3$m = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 44px;\n display: flex;\n align-items: center;\n"])));
|
|
6645
6655
|
var RotatorButtonsWrapper = /*#__PURE__*/styled(GridItem)(_templateObject4$j || (_templateObject4$j = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n @media ", " {\n display: none;\n }\n"])), devices.mobile);
|
|
6646
|
-
var CastWrapper = /*#__PURE__*/styled.div(_templateObject5$f || (_templateObject5$f = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n gap: 20px;\n overflow-x:
|
|
6656
|
+
var CastWrapper = /*#__PURE__*/styled.div(_templateObject5$f || (_templateObject5$f = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n gap: 20px;\n overflow-x: hidden;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n ::-webkit-scrollbar {\n display: none;\n }\n\n @media ", " {\n flex-direction: column;\n gap: 10px;\n overflow-x: scroll;\n }\n"])), devices.mobile);
|
|
6647
6657
|
var ActionButtons = /*#__PURE__*/styled.div(_templateObject6$a || (_templateObject6$a = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n align-items: baseline;\n gap: 32px;\n\n .mobile-only {\n visibility: hidden;\n\n p {\n font-size: 14px;\n line-height: 17px;\n }\n }\n\n @media ", " {\n .mobile-only {\n visibility: visible;\n padding-block: 24px;\n font-size: 17px;\n line-height: 24px;\n }\n\n flex-direction: row-reverse;\n gap: unset;\n justify-content: space-between;\n border-block-end: 2px solid var(--base-color-light-grey);\n\n :has(.mobile-only) {\n justify-content: left;\n }\n\n :not(:has(.mobile-only)) {\n padding-block: 12px;\n }\n\n a {\n width: fit-content;\n }\n }\n"])), devices.mobile);
|
|
6648
6658
|
var PersonWrapper = /*#__PURE__*/styled.div(_templateObject7$7 || (_templateObject7$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n margin-block-start: 2px;\n margin-inline: 2px;\n\n p {\n font-size: 14px;\n line-height: 17px;\n }\n\n :focus-visible {\n outline: none;\n\n & > div:first-child {\n outline: 2px solid var(--color-base-black);\n }\n }\n\n @media ", " {\n flex-direction: row;\n gap: 20px;\n margin-block-end: 2px;\n margin-inline-end: unset;\n\n p {\n font-size: 17px;\n line-height: 24px;\n }\n }\n"])), devices.mobile);
|
|
6649
6659
|
var PersonToggle = /*#__PURE__*/styled.div(_templateObject8$4 || (_templateObject8$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n width: 86px;\n height: 86px;\n min-width: 86px;\n border: 4px solid;\n border-color: ", ";\n border-radius: 50%;\n background: var(--color-base-white);\n position: relative;\n box-shadow: inset 0 0 0 4px var(--color-base-white);\n"])), function (_ref) {
|
|
@@ -6733,7 +6743,7 @@ var getMovedSlides = function getMovedSlides(delta, slideWidths) {
|
|
|
6733
6743
|
return movedSlides;
|
|
6734
6744
|
};
|
|
6735
6745
|
|
|
6736
|
-
var _excluded$h = ["children", "infinite", "onIndexChange", "slidesOffsetBefore", "slidesAriaHidden", "onActiveChange", "onOverflowChange"];
|
|
6746
|
+
var _excluded$h = ["children", "infinite", "onIndexChange", "slidesOffsetBefore", "slidesAriaHidden", "onActiveChange", "onOverflowChange", "limitDragToNavigableRange"];
|
|
6737
6747
|
var MAX_CLONES_NUMBER = 6;
|
|
6738
6748
|
var CLICK_DRAG_THRESHOLD = 10;
|
|
6739
6749
|
var getClonesCount = function getClonesCount(infinite, childrenLength) {
|
|
@@ -6758,6 +6768,8 @@ var Swipe = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6758
6768
|
slidesAriaHidden = _ref$slidesAriaHidden === void 0 ? false : _ref$slidesAriaHidden,
|
|
6759
6769
|
onActiveChange = _ref.onActiveChange,
|
|
6760
6770
|
onOverflowChange = _ref.onOverflowChange,
|
|
6771
|
+
_ref$limitDragToNavig = _ref.limitDragToNavigableRange,
|
|
6772
|
+
limitDragToNavigableRange = _ref$limitDragToNavig === void 0 ? false : _ref$limitDragToNavig,
|
|
6761
6773
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$h);
|
|
6762
6774
|
var containerRef = useRef(null);
|
|
6763
6775
|
var childRefs = useRef([]);
|
|
@@ -6863,6 +6875,39 @@ var Swipe = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6863
6875
|
}, 0);
|
|
6864
6876
|
return (slidesOffsetBefore || 0) - widthsBefore;
|
|
6865
6877
|
};
|
|
6878
|
+
var canScrollRightFromIndex = function canScrollRightFromIndex(index) {
|
|
6879
|
+
if (infinite) return true;
|
|
6880
|
+
if (slideWidths.length === 0 || containerWidth === 0) return false;
|
|
6881
|
+
var totalContentWidth = slideWidths.reduce(function (sum, width) {
|
|
6882
|
+
return sum + width;
|
|
6883
|
+
}, 0);
|
|
6884
|
+
var widthBeforeCurrent = slideWidths.slice(0, index).reduce(function (sum, width) {
|
|
6885
|
+
return sum + width;
|
|
6886
|
+
}, 0);
|
|
6887
|
+
var visibleSpace = containerWidth - (slidesOffsetBefore || 0);
|
|
6888
|
+
var remainingToRight = totalContentWidth - widthBeforeCurrent - visibleSpace;
|
|
6889
|
+
var visible = getVisibleIndexes(index, slideWidths, containerWidth, slides.length);
|
|
6890
|
+
var lastVisibleIndex = visible.length ? visible[visible.length - 1] : index;
|
|
6891
|
+
var nextIndex = lastVisibleIndex + 1;
|
|
6892
|
+
if (nextIndex >= slideWidths.length) return false;
|
|
6893
|
+
var nextSlideWidth = typeof slideWidths[nextIndex] === 'number' ? slideWidths[nextIndex] : 0;
|
|
6894
|
+
if (nextSlideWidth === 0) return false;
|
|
6895
|
+
var EPS = 1; // pixel tolerance
|
|
6896
|
+
// full next slide fits
|
|
6897
|
+
if (remainingToRight + EPS >= nextSlideWidth) return true;
|
|
6898
|
+
return remainingToRight > 0;
|
|
6899
|
+
};
|
|
6900
|
+
var canMoveNext = function canMoveNext() {
|
|
6901
|
+
return canScrollRightFromIndex(currentIndex);
|
|
6902
|
+
};
|
|
6903
|
+
var getMaxNavigableIndex = function getMaxNavigableIndex() {
|
|
6904
|
+
if (infinite) return slides.length - 1;
|
|
6905
|
+
var index = 0;
|
|
6906
|
+
while (index < slides.length - 1 && canScrollRightFromIndex(index)) {
|
|
6907
|
+
index += 1;
|
|
6908
|
+
}
|
|
6909
|
+
return index;
|
|
6910
|
+
};
|
|
6866
6911
|
var navigateOnSwipeEnd = function navigateOnSwipeEnd() {
|
|
6867
6912
|
var delta = currentTranslate.current - getTranslateX();
|
|
6868
6913
|
var direction = delta > 0 ? -1 : 1;
|
|
@@ -6870,7 +6915,8 @@ var Swipe = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6870
6915
|
if (Math.abs(delta) > 20) {
|
|
6871
6916
|
movedSlides = Math.max(1, movedSlides);
|
|
6872
6917
|
var targetIndex = currentIndex + direction * movedSlides;
|
|
6873
|
-
var
|
|
6918
|
+
var maxNavigableIndex = limitDragToNavigableRange ? getMaxNavigableIndex() : slides.length - 1;
|
|
6919
|
+
var finalIndex = infinite ? targetIndex : Math.max(0, Math.min(maxNavigableIndex, targetIndex));
|
|
6874
6920
|
if (!infinite) {
|
|
6875
6921
|
currentTranslate.current = getTranslateForIndex(finalIndex);
|
|
6876
6922
|
setDragTranslateX(null);
|
|
@@ -6885,28 +6931,6 @@ var Swipe = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
6885
6931
|
}
|
|
6886
6932
|
setDragTranslateX(null);
|
|
6887
6933
|
};
|
|
6888
|
-
var canMoveNext = function canMoveNext() {
|
|
6889
|
-
if (infinite) return true;
|
|
6890
|
-
if (slideWidths.length === 0 || containerWidth === 0) return false;
|
|
6891
|
-
var totalWidth = slideWidths.reduce(function (acc, w) {
|
|
6892
|
-
return acc + w;
|
|
6893
|
-
}, 0);
|
|
6894
|
-
var widthsBefore = slideWidths.slice(0, currentIndex).reduce(function (acc, w) {
|
|
6895
|
-
return acc + w;
|
|
6896
|
-
}, 0);
|
|
6897
|
-
var visibleSpace = containerWidth - (slidesOffsetBefore || 0);
|
|
6898
|
-
var remainingToRight = totalWidth - widthsBefore - visibleSpace;
|
|
6899
|
-
var visible = getVisibleIndexes(currentIndex, slideWidths, containerWidth, slides.length);
|
|
6900
|
-
var lastVisibleIndex = visible.length ? visible[visible.length - 1] : currentIndex;
|
|
6901
|
-
var nextIndex = lastVisibleIndex + 1;
|
|
6902
|
-
if (nextIndex >= slideWidths.length) return false;
|
|
6903
|
-
var nextSlideWidth = typeof slideWidths[nextIndex] === 'number' ? slideWidths[nextIndex] : 0;
|
|
6904
|
-
if (nextSlideWidth === 0) return false;
|
|
6905
|
-
var EPS = 1; // pixel tolerance
|
|
6906
|
-
// full next slide fits
|
|
6907
|
-
if (remainingToRight + EPS >= nextSlideWidth) return true;
|
|
6908
|
-
return remainingToRight > 0;
|
|
6909
|
-
};
|
|
6910
6934
|
var handleTransitionEnd = function handleTransitionEnd() {
|
|
6911
6935
|
setTransitioning(false);
|
|
6912
6936
|
if (!infinite) return;
|
|
@@ -7118,11 +7142,13 @@ var CastFilters = function CastFilters(_ref) {
|
|
|
7118
7142
|
};
|
|
7119
7143
|
var onNext = function onNext() {
|
|
7120
7144
|
var _swipeRef$current4;
|
|
7121
|
-
|
|
7145
|
+
if (!availableNext) return;
|
|
7146
|
+
(_swipeRef$current4 = swipeRef.current) == null || _swipeRef$current4.nextSlide();
|
|
7122
7147
|
};
|
|
7123
7148
|
var onPrev = function onPrev() {
|
|
7124
7149
|
var _swipeRef$current5;
|
|
7125
|
-
|
|
7150
|
+
if (!availablePrev) return;
|
|
7151
|
+
(_swipeRef$current5 = swipeRef.current) == null || _swipeRef$current5.prevSlide();
|
|
7126
7152
|
};
|
|
7127
7153
|
useEffect(function () {
|
|
7128
7154
|
var el = castWrapperRef.current;
|
|
@@ -7145,15 +7171,15 @@ var CastFilters = function CastFilters(_ref) {
|
|
|
7145
7171
|
};
|
|
7146
7172
|
}, []);
|
|
7147
7173
|
var handleMouseDown = useCallback(function (e) {
|
|
7148
|
-
if (!castWrapperRef.current) return;
|
|
7174
|
+
if (!isMobile || !castWrapperRef.current) return;
|
|
7149
7175
|
isDraggingRef.current = true;
|
|
7150
7176
|
hasDraggedRef.current = false;
|
|
7151
7177
|
startXRef.current = e.clientX;
|
|
7152
7178
|
scrollStartRef.current = castWrapperRef.current.scrollLeft;
|
|
7153
7179
|
if (e.target === castWrapperRef.current) e.preventDefault();
|
|
7154
|
-
}, []);
|
|
7180
|
+
}, [isMobile]);
|
|
7155
7181
|
var handleMouseMove = useCallback(function (e) {
|
|
7156
|
-
if (!isDraggingRef.current || !castWrapperRef.current) return;
|
|
7182
|
+
if (!isMobile || !isDraggingRef.current || !castWrapperRef.current) return;
|
|
7157
7183
|
var deltaX = e.clientX - startXRef.current;
|
|
7158
7184
|
var threshold = 5;
|
|
7159
7185
|
if (Math.abs(deltaX) > threshold) {
|
|
@@ -7161,17 +7187,19 @@ var CastFilters = function CastFilters(_ref) {
|
|
|
7161
7187
|
e.preventDefault();
|
|
7162
7188
|
castWrapperRef.current.scrollLeft = scrollStartRef.current - deltaX;
|
|
7163
7189
|
}
|
|
7164
|
-
}, []);
|
|
7190
|
+
}, [isMobile]);
|
|
7165
7191
|
var handleMouseUp = useCallback(function () {
|
|
7192
|
+
if (!isMobile) return;
|
|
7166
7193
|
isDraggingRef.current = false;
|
|
7167
7194
|
setTimeout(function () {
|
|
7168
7195
|
hasDraggedRef.current = false;
|
|
7169
7196
|
}, 0);
|
|
7170
|
-
}, []);
|
|
7197
|
+
}, [isMobile]);
|
|
7171
7198
|
var handleMouseLeave = useCallback(function () {
|
|
7199
|
+
if (!isMobile) return;
|
|
7172
7200
|
isDraggingRef.current = false;
|
|
7173
7201
|
hasDraggedRef.current = false;
|
|
7174
|
-
}, []);
|
|
7202
|
+
}, [isMobile]);
|
|
7175
7203
|
var handleClick = React__default.useCallback(function (index, onClick) {
|
|
7176
7204
|
if (hasDraggedRef.current) return;
|
|
7177
7205
|
if (onSelect) onSelect(index);
|
|
@@ -7257,7 +7285,8 @@ var CastFilters = function CastFilters(_ref) {
|
|
|
7257
7285
|
onIndexChange: onIndexChangeHandler,
|
|
7258
7286
|
"data-testid": "cast-filter-swipe",
|
|
7259
7287
|
ref: swipeRef,
|
|
7260
|
-
onOverflowChange: handleOverflowChange
|
|
7288
|
+
onOverflowChange: handleOverflowChange,
|
|
7289
|
+
limitDragToNavigableRange: true
|
|
7261
7290
|
}, getPersonCards())))), showActionButtonsSection && (/*#__PURE__*/React__default.createElement(ActionButtons, null, selectedIndices.length === 0 && emptySelectionText && (/*#__PURE__*/React__default.createElement(BodyCopyHarmonic, {
|
|
7262
7291
|
size: "medium",
|
|
7263
7292
|
className: "mobile-only"
|
|
@@ -12513,13 +12542,15 @@ var UpsellSection = function UpsellSection(_ref) {
|
|
|
12513
12542
|
upsellCards = _ref.upsellCards,
|
|
12514
12543
|
_ref$theme = _ref.theme,
|
|
12515
12544
|
theme = _ref$theme === void 0 ? ThemeType.Core : _ref$theme,
|
|
12516
|
-
className = _ref.className
|
|
12545
|
+
className = _ref.className,
|
|
12546
|
+
titleFontFamily = _ref.titleFontFamily;
|
|
12517
12547
|
var themedUpsellCards = upsellCards ? [].concat(upsellCards).map(function (card) {
|
|
12518
12548
|
return _extends({}, card, {
|
|
12519
12549
|
theme: card.theme || theme,
|
|
12520
12550
|
secondaryTheme: card.secondaryTheme || card.theme || theme
|
|
12521
12551
|
});
|
|
12522
12552
|
}) : [];
|
|
12553
|
+
var isVictorTitleFont = titleFontFamily === 'Victor';
|
|
12523
12554
|
return /*#__PURE__*/React__default.createElement(HarmonicThemeProvider, {
|
|
12524
12555
|
theme: theme
|
|
12525
12556
|
}, /*#__PURE__*/React__default.createElement(Grid, {
|
|
@@ -12532,7 +12563,7 @@ var UpsellSection = function UpsellSection(_ref) {
|
|
|
12532
12563
|
columnStartSmallDevice: 1,
|
|
12533
12564
|
columnSpanSmallDevice: 14
|
|
12534
12565
|
}, /*#__PURE__*/React__default.createElement(UpsellBorderBox, null, /*#__PURE__*/React__default.createElement(TitleContent, {
|
|
12535
|
-
serif:
|
|
12566
|
+
serif: isVictorTitleFont
|
|
12536
12567
|
}, title), /*#__PURE__*/React__default.createElement(TextContainer$2, null, /*#__PURE__*/React__default.createElement(TextContent, {
|
|
12537
12568
|
text: richText != null ? richText : '',
|
|
12538
12569
|
columnStartDesktop: 1,
|