@royaloperahouse/chord 0.5.0 → 0.5.4

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/chord.esm.js CHANGED
@@ -2511,9 +2511,9 @@ var Tab = function Tab(_ref) {
2511
2511
  };
2512
2512
 
2513
2513
  var onKeyDownHandler = function onKeyDownHandler(e) {
2514
- if (e.code === 'Enter') {
2514
+ if (e.key === 'Enter') {
2515
2515
  clickHandler();
2516
- } else if (e.code === 'Escape') {
2516
+ } else if (e.key === 'Escape') {
2517
2517
  onReset == null ? void 0 : onReset();
2518
2518
  }
2519
2519
  };
@@ -2537,7 +2537,7 @@ var Tab = function Tab(_ref) {
2537
2537
  };
2538
2538
 
2539
2539
  var _templateObject$f, _templateObject2$3;
2540
- var TabLinkWrapper = /*#__PURE__*/styled.a(_templateObject$f || (_templateObject$f = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: ", ";\n font-family: var(--font-family-navigation);\n font-size: var(--font-size-navigation);\n font-weight: var(--font-weight-navigation);\n line-height: var(--line-height-navigation);\n letter-spacing: var(--letter-spacing-navigation);\n text-transform: var(--text-transform-navigation);\n color: ", ";\n width: fit-content;\n display: flex;\n align-items: center;\n cursor: pointer;\n text-decoration: none;\n border-bottom: ", ";\n ", "\n\n :hover {\n color: var(--base-color-", ");\n border-bottom: 1px solid var(--base-color-", ");\n\n && svg path {\n fill: var(--base-color-", ");\n }\n }\n"])), function (_ref) {
2540
+ var TabLinkWrapper = /*#__PURE__*/styled.a(_templateObject$f || (_templateObject$f = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: ", ";\n font-family: var(--font-family-navigation);\n font-size: var(--font-size-navigation);\n font-weight: var(--font-weight-navigation);\n line-height: var(--line-height-navigation);\n letter-spacing: var(--letter-spacing-navigation);\n text-transform: var(--text-transform-navigation);\n color: ", ";\n width: fit-content;\n display: flex;\n align-items: center;\n cursor: pointer;\n text-decoration: none;\n border-bottom: ", ";\n ", "\n\n @media ", ", ", " {\n &:hover {\n color: var(--base-color-", ");\n border-bottom: 1px solid var(--base-color-", ");\n\n && svg path {\n fill: var(--base-color-", ");\n }\n }\n }\n"])), function (_ref) {
2541
2541
  var iconName = _ref.iconName;
2542
2542
  return iconName ? 'calc(var(--text-link-underline-offset) - 4px) 0' : 'var(--text-link-underline-offset) 0';
2543
2543
  }, function (_ref2) {
@@ -2553,7 +2553,7 @@ var TabLinkWrapper = /*#__PURE__*/styled.a(_templateObject$f || (_templateObject
2553
2553
  var selected = _ref4.selected,
2554
2554
  hoverColor = _ref4.hoverColor;
2555
2555
  return selected ? "&& svg path {\n fill: var(--base-color-" + hoverColor + ");\n }" : '';
2556
- }, function (_ref5) {
2556
+ }, devices.desktop, devices.largeDesktop, function (_ref5) {
2557
2557
  var hoverColor = _ref5.hoverColor;
2558
2558
  return hoverColor;
2559
2559
  }, function (_ref6) {
@@ -2626,16 +2626,28 @@ var RotatorButtons = function RotatorButtons(_ref) {
2626
2626
  }
2627
2627
  };
2628
2628
 
2629
+ var onPrevKeyDownHandler = function onPrevKeyDownHandler(e) {
2630
+ if (e.key === 'Enter') {
2631
+ onClickLeftHandler();
2632
+ }
2633
+ };
2634
+
2629
2635
  var onClickRightHandler = function onClickRightHandler() {
2630
2636
  if (onClickNext) {
2631
2637
  onClickNext();
2632
2638
  }
2633
2639
  };
2634
2640
 
2641
+ var onNextKeyDownHandler = function onNextKeyDownHandler(e) {
2642
+ if (e.key === 'Enter') {
2643
+ onClickRightHandler();
2644
+ }
2645
+ };
2646
+
2635
2647
  var renderPrevIcon = function renderPrevIcon() {
2636
2648
  return /*#__PURE__*/React__default.createElement(Icon, {
2637
2649
  iconName: 'CarouselArrow',
2638
- direction: "left"
2650
+ direction: "reverse"
2639
2651
  });
2640
2652
  };
2641
2653
 
@@ -2647,11 +2659,15 @@ var RotatorButtons = function RotatorButtons(_ref) {
2647
2659
 
2648
2660
  return /*#__PURE__*/React__default.createElement(ButtonsContainer, null, availablePrev ? /*#__PURE__*/React__default.createElement(IconWrapper, {
2649
2661
  onClick: onClickLeftHandler,
2662
+ onKeyDown: onPrevKeyDownHandler,
2663
+ tabIndex: 0,
2650
2664
  "data-testid": "iconprev"
2651
2665
  }, renderPrevIcon()) : /*#__PURE__*/React__default.createElement(IconUnavailableWrapper, {
2652
2666
  "data-testid": "iconprevnoavailable"
2653
2667
  }, renderPrevIcon()), availableNext ? /*#__PURE__*/React__default.createElement(IconWrapper, {
2654
2668
  onClick: onClickRightHandler,
2669
+ onKeyDown: onNextKeyDownHandler,
2670
+ tabIndex: 0,
2655
2671
  "data-testid": "iconnext"
2656
2672
  }, renderNextIcon()) : /*#__PURE__*/React__default.createElement(IconUnavailableWrapper, {
2657
2673
  "data-testid": "iconnextnoavailable"
@@ -2856,7 +2872,7 @@ var Basket$1 = function Basket(_ref) {
2856
2872
  };
2857
2873
 
2858
2874
  var onKeyDownHandler = function onKeyDownHandler(e) {
2859
- if (e.code === 'Enter') {
2875
+ if (e.key === 'Enter') {
2860
2876
  onClickHandler();
2861
2877
  }
2862
2878
  };
@@ -2906,7 +2922,7 @@ var Search$1 = function Search(_ref) {
2906
2922
  colorPrimary = _ref$colorPrimary === void 0 ? 'primary' : _ref$colorPrimary;
2907
2923
 
2908
2924
  var onKeyDownHandler = function onKeyDownHandler(e) {
2909
- if (e.code === 'Enter') {
2925
+ if (e.key === 'Enter') {
2910
2926
  onClick == null ? void 0 : onClick();
2911
2927
  }
2912
2928
  };
@@ -3065,9 +3081,9 @@ var Dropdown = function Dropdown(_ref) {
3065
3081
  };
3066
3082
 
3067
3083
  var onKeyDownHandler = function onKeyDownHandler(e, link) {
3068
- if (e.code === 'Enter') {
3084
+ if (e.key === 'Enter') {
3069
3085
  handleChange(link);
3070
- } else if (e.code === 'Escape') {
3086
+ } else if (e.key === 'Escape') {
3071
3087
  onResetHandler();
3072
3088
  }
3073
3089
  };
@@ -3262,17 +3278,17 @@ var ControlledDropdown = function ControlledDropdown(_ref) {
3262
3278
  }, [ref, resetHandler, active]);
3263
3279
 
3264
3280
  var handleOptionKeyDown = function handleOptionKeyDown(e, link) {
3265
- if (e.code === 'Enter') {
3281
+ if (e.key === 'Enter') {
3266
3282
  onOptionClick == null ? void 0 : onOptionClick(link);
3267
- } else if (e.code === 'Escape') {
3283
+ } else if (e.key === 'Escape') {
3268
3284
  resetHandler();
3269
3285
  }
3270
3286
  };
3271
3287
 
3272
3288
  var handleHeaderKeyDown = function handleHeaderKeyDown(e) {
3273
- if (e.code === 'Enter') {
3289
+ if (e.key === 'Enter') {
3274
3290
  onClick == null ? void 0 : onClick();
3275
- } else if (e.code === 'Escape') {
3291
+ } else if (e.key === 'Escape') {
3276
3292
  resetHandler();
3277
3293
  }
3278
3294
  };
@@ -3536,7 +3552,7 @@ var SearchBar = function SearchBar(_ref) {
3536
3552
  };
3537
3553
 
3538
3554
  var handleKeypress = function handleKeypress(e, value) {
3539
- if (e.code === 'Enter' && showSearchLink) {
3555
+ if (e.key === 'Enter' && showSearchLink) {
3540
3556
  onSearchHandler(value);
3541
3557
  }
3542
3558
  };
@@ -3559,7 +3575,7 @@ var SearchBar = function SearchBar(_ref) {
3559
3575
  };
3560
3576
 
3561
3577
  var onKeyboardCloseHandler = function onKeyboardCloseHandler(e) {
3562
- if (e.code === 'Enter') {
3578
+ if (e.key === 'Enter') {
3563
3579
  onCloseHandler();
3564
3580
  }
3565
3581
  };
@@ -3861,8 +3877,6 @@ var _excluded$7 = ["text"],
3861
3877
  _excluded3 = ["id", "text"];
3862
3878
 
3863
3879
  var AnchorTapBar = function AnchorTapBar(_ref) {
3864
- var _tabListRef$current, _tabListRef$current2;
3865
-
3866
3880
  var tabs = _ref.tabs,
3867
3881
  title = _ref.title,
3868
3882
  links = _ref.links,
@@ -3878,13 +3892,15 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3878
3892
  tabsOverflow = _useState2[0],
3879
3893
  setTabsOverflow = _useState2[1];
3880
3894
 
3881
- var _useState3 = useState(0),
3882
- scroll = _useState3[0],
3883
- setScroll = _useState3[1];
3895
+ var _useState3 = useState(false),
3896
+ canScrollToLeft = _useState3[0],
3897
+ setCanScrollToLeft = _useState3[1];
3898
+
3899
+ var _useState4 = useState(tabsOverflow),
3900
+ canScrollToRight = _useState4[0],
3901
+ setCanScrollToRight = _useState4[1];
3884
3902
 
3885
3903
  var hasTitleOrLinks = title || links;
3886
- var scrollStart = 0 === scroll;
3887
- var scrollEnd = (((_tabListRef$current = tabListRef.current) == null ? void 0 : _tabListRef$current.scrollWidth) || 0) - (((_tabListRef$current2 = tabListRef.current) == null ? void 0 : _tabListRef$current2.clientWidth) || 0) <= scroll;
3888
3904
 
3889
3905
  var isSelectedItem = function isSelectedItem(id) {
3890
3906
  return id === selectedItem;
@@ -3899,10 +3915,11 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3899
3915
  };
3900
3916
 
3901
3917
  useEffect(function () {
3902
- var _tabListRef$current3, _tabListRef$current4;
3918
+ var _tabListRef$current, _tabListRef$current2;
3903
3919
 
3904
- var tabsIsOverflowed = (((_tabListRef$current3 = tabListRef.current) == null ? void 0 : _tabListRef$current3.scrollWidth) || 0) > (((_tabListRef$current4 = tabListRef.current) == null ? void 0 : _tabListRef$current4.clientWidth) || 0);
3920
+ var tabsIsOverflowed = (((_tabListRef$current = tabListRef.current) == null ? void 0 : _tabListRef$current.scrollWidth) || 0) > (((_tabListRef$current2 = tabListRef.current) == null ? void 0 : _tabListRef$current2.clientWidth) || 0);
3905
3921
  setTabsOverflow(tabsIsOverflowed);
3922
+ setCanScrollToRight(tabsIsOverflowed);
3906
3923
  }, [tabListRef]);
3907
3924
  useEffect(function () {
3908
3925
  var scrollTriggerCheck = function scrollTriggerCheck() {
@@ -3917,6 +3934,24 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3917
3934
  if (window.scrollY === 0) {
3918
3935
  setSelectedItem(onTabClick ? selectedItem : '');
3919
3936
  } else if (reachedItem) {
3937
+ var _ref2 = (tabListRef == null ? void 0 : tabListRef.current) || {},
3938
+ _ref2$scrollLeft = _ref2.scrollLeft,
3939
+ scrollLeft = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,
3940
+ _ref2$clientWidth = _ref2.clientWidth,
3941
+ clientWidth = _ref2$clientWidth === void 0 ? 0 : _ref2$clientWidth;
3942
+
3943
+ var tabLinkElement = document.getElementById("tablink-" + reachedItem.id) || {
3944
+ offsetLeft: 0,
3945
+ offsetWidth: 0
3946
+ };
3947
+ var offsetLeft = tabLinkElement.offsetLeft,
3948
+ offsetWidth = tabLinkElement.offsetWidth;
3949
+ var isInView = offsetLeft >= scrollLeft && offsetLeft + offsetWidth < scrollLeft + clientWidth;
3950
+
3951
+ if (!isInView && tabListRef != null && tabListRef.current) {
3952
+ tabListRef.current.scrollLeft = offsetLeft;
3953
+ }
3954
+
3920
3955
  setSelectedItem(reachedItem.id);
3921
3956
  }
3922
3957
  };
@@ -3925,34 +3960,47 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3925
3960
  return function () {
3926
3961
  return document.removeEventListener('scroll', scrollTriggerCheck);
3927
3962
  };
3928
- }, [tabs, selectedItem, hasTitleOrLinks]);
3929
- var tabsColumnStart = tabsOverflow ? scrollStart ? 2 : 1 : 3;
3930
- var tabsColumnSpan = tabsOverflow ? scrollStart ? 14 : 15 : 13;
3963
+ }, [tabs, selectedItem, hasTitleOrLinks, tabListRef]);
3964
+ var tabsColumnStart = tabsOverflow ? !canScrollToLeft ? 2 : 1 : 3;
3965
+ var tabsColumnSpan = tabsOverflow ? !canScrollToLeft ? 14 : 15 : 13;
3931
3966
 
3932
- var _ref2 = (links == null ? void 0 : links[0]) || {},
3933
- primaryButtonText = _ref2.text,
3934
- primaryButtonProps = _objectWithoutPropertiesLoose(_ref2, _excluded$7);
3967
+ var _ref3 = (links == null ? void 0 : links[0]) || {},
3968
+ primaryButtonText = _ref3.text,
3969
+ primaryButtonProps = _objectWithoutPropertiesLoose(_ref3, _excluded$7);
3935
3970
 
3936
- var _ref3 = (links == null ? void 0 : links[1]) || {},
3937
- secondaryButtonText = _ref3.text,
3938
- secondaryButtonProps = _objectWithoutPropertiesLoose(_ref3, _excluded2);
3971
+ var _ref4 = (links == null ? void 0 : links[1]) || {},
3972
+ secondaryButtonText = _ref4.text,
3973
+ secondaryButtonProps = _objectWithoutPropertiesLoose(_ref4, _excluded2);
3939
3974
 
3940
3975
  var scrollToRight = function scrollToRight() {
3941
3976
  if (tabListRef.current) {
3977
+ var scroll = tabListRef.current.scrollLeft;
3942
3978
  var newScroll = Math.min(tabListRef.current.clientWidth, tabListRef.current.scrollWidth - scroll);
3943
3979
  tabListRef.current.scrollLeft += newScroll;
3944
- setScroll(tabListRef.current.scrollLeft + newScroll);
3945
3980
  }
3946
3981
  };
3947
3982
 
3948
3983
  var scrollToLeft = function scrollToLeft() {
3949
3984
  if (tabListRef.current) {
3985
+ var scroll = tabListRef.current.scrollLeft;
3950
3986
  var newScroll = Math.max(0, scroll - tabListRef.current.clientWidth);
3951
3987
  tabListRef.current.scrollLeft = newScroll;
3952
- setScroll(newScroll);
3953
3988
  }
3954
3989
  };
3955
3990
 
3991
+ var onTabsScroll = function onTabsScroll() {
3992
+ var _ref5 = (tabListRef == null ? void 0 : tabListRef.current) || {},
3993
+ _ref5$scrollLeft = _ref5.scrollLeft,
3994
+ scrollLeft = _ref5$scrollLeft === void 0 ? 0 : _ref5$scrollLeft,
3995
+ _ref5$clientWidth = _ref5.clientWidth,
3996
+ clientWidth = _ref5$clientWidth === void 0 ? 0 : _ref5$clientWidth,
3997
+ _ref5$scrollWidth = _ref5.scrollWidth,
3998
+ scrollWidth = _ref5$scrollWidth === void 0 ? 0 : _ref5$scrollWidth;
3999
+
4000
+ setCanScrollToLeft(scrollLeft > 0);
4001
+ setCanScrollToRight(scrollLeft + clientWidth < scrollWidth);
4002
+ };
4003
+
3956
4004
  return /*#__PURE__*/React__default.createElement(AnchorTapbarWrapper, null, title || links ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TitleCTAGrid, null, title ? /*#__PURE__*/React__default.createElement(GridItem, {
3957
4005
  columnStartDesktop: 2,
3958
4006
  columnSpanDesktop: 9,
@@ -3977,27 +4025,29 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3977
4025
  "data-testid": "anchor-tabs"
3978
4026
  }, /*#__PURE__*/React__default.createElement(TabsList, {
3979
4027
  ref: tabListRef,
3980
- tabsOverflow: tabsOverflow
3981
- }, tabs.map(function (_ref4) {
3982
- var id = _ref4.id,
3983
- text = _ref4.text,
3984
- rest = _objectWithoutPropertiesLoose(_ref4, _excluded3);
4028
+ tabsOverflow: tabsOverflow,
4029
+ onScroll: onTabsScroll
4030
+ }, tabs.map(function (_ref6) {
4031
+ var id = _ref6.id,
4032
+ text = _ref6.text,
4033
+ rest = _objectWithoutPropertiesLoose(_ref6, _excluded3);
3985
4034
 
3986
4035
  return /*#__PURE__*/React__default.createElement("li", {
3987
4036
  key: id
3988
4037
  }, /*#__PURE__*/React__default.createElement(TabLink, Object.assign({
3989
4038
  selected: isSelectedItem(id),
4039
+ id: "tablink-" + id,
3990
4040
  onClick: function onClick(e) {
3991
4041
  return onClicktab(e, id);
3992
4042
  },
3993
4043
  tabIndex: 0
3994
4044
  }, rest), text));
3995
- })), tabsOverflow ? /*#__PURE__*/React__default.createElement(ArrowsContainer, null, !scrollStart ? /*#__PURE__*/React__default.createElement(ArrowWrapper, {
4045
+ })), tabsOverflow ? /*#__PURE__*/React__default.createElement(ArrowsContainer, null, canScrollToLeft ? /*#__PURE__*/React__default.createElement(ArrowWrapper, {
3996
4046
  onClick: scrollToLeft
3997
4047
  }, /*#__PURE__*/React__default.createElement(Icon, {
3998
4048
  iconName: "Arrow",
3999
4049
  direction: "reverse"
4000
- })) : null, !scrollEnd ? /*#__PURE__*/React__default.createElement(ArrowWrapper, {
4050
+ })) : null, canScrollToRight ? /*#__PURE__*/React__default.createElement(ArrowWrapper, {
4001
4051
  onClick: scrollToRight
4002
4052
  }, /*#__PURE__*/React__default.createElement(Icon, {
4003
4053
  iconName: "Arrow"
@@ -4025,7 +4075,7 @@ var CarouselWrapper = /*#__PURE__*/styled.div(_templateObject$x || (_templateObj
4025
4075
  var calcColumns = "calc(calc(80% - " + gapsInMainGraid + ") * " + numberOfColumns + " / 12)";
4026
4076
  return "\n & {\n .swiper-slide {\n width: calc(" + calcColumns + " + " + gapsSpace + " - 1px);\n margin-right: var(--grid-column-gap);\n -webkit-transform: translate3d(0, 0, 0);\n }\n }\n ";
4027
4077
  } else {
4028
- return "\n & {\n .swiper-slide {\n height: fit-content;\n width: auto;\n margin-right: var(--grid-column-gap);\n -webkit-transform: translate3d(0, 0, 0);\n\n > div {\n height: " + imagesHeightDesktop + "px;\n }\n }\n }\n ";
4078
+ return "\n & {\n .swiper-slide {\n height: fit-content;\n width: auto;\n margin-right: var(--grid-column-gap);\n -webkit-transform: translate3d(0, 0, 0);\n\n > div {\n height: calc(" + imagesHeightDesktop + "px + var(--line-height-body-2) + 12px);\n }\n }\n }\n ";
4029
4079
  }
4030
4080
  }, devices.mobile, function (_ref2) {
4031
4081
  var active = _ref2.active,
@@ -4042,11 +4092,11 @@ var CarouselWrapper = /*#__PURE__*/styled.div(_templateObject$x || (_templateObj
4042
4092
  var marginRight = active ? "calc(calc(var(--grid-column-gap) * 2) + " + columnWidth + ")" : "calc(calc(" + columnWidth + " * 2) + var(--grid-column-gap))";
4043
4093
  return "\n && {\n .swiper-slide {\n width: calc(" + calcColumns + " + " + gapsSpace + " - 1px);\n margin-right: " + marginRight + ";\n -webkit-transform: translate3d(0, 0, 0);\n }\n }";
4044
4094
  } else {
4045
- return "\n &&& {\n .swiper-slide > div{\n height: " + imagesHeightDevice + "px;\n }\n }";
4095
+ return "\n &&& {\n .swiper-slide > div{\n height: calc(" + imagesHeightDevice + "px + var(--line-height-body-2) + 12px);\n }\n }";
4046
4096
  }
4047
4097
  });
4048
4098
  var TitleButtonsGrid = /*#__PURE__*/styled(Grid)(_templateObject2$h || (_templateObject2$h = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 28px;\n\n @media ", " {\n margin-bottom: 20px;\n }\n"])), devices.mobile);
4049
- var TitleWrapper = /*#__PURE__*/styled.div(_templateObject3$b || (_templateObject3$b = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 100%;\n display: flex;\n align-items: center;\n user-select: text;\n\n h3 {\n padding: 0;\n margin: 0;\n }\n"])));
4099
+ var TitleWrapper = /*#__PURE__*/styled.div(_templateObject3$b || (_templateObject3$b = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 100%;\n display: flex;\n align-items: center;\n user-select: text;\n\n h4 {\n padding: 0;\n margin: 0;\n }\n"])));
4050
4100
  var ButtonsWrapper = /*#__PURE__*/styled.div(_templateObject4$8 || (_templateObject4$8 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: flex-end;\n align-items: start;\n\n @media ", " {\n display: none;\n }\n"])), devices.mobileAndTablet);
4051
4101
 
4052
4102
  var Carousel = function Carousel(_ref) {
@@ -4126,7 +4176,7 @@ var Carousel = function Carousel(_ref) {
4126
4176
  }, /*#__PURE__*/React__default.createElement(TitleWrapper, {
4127
4177
  "data-testid": "carousel-title-wrapper"
4128
4178
  }, /*#__PURE__*/React__default.createElement(AltHeader, {
4129
- level: 3
4179
+ level: 4
4130
4180
  }, title))), /*#__PURE__*/React__default.createElement(GridItem, {
4131
4181
  columnStartDesktop: 14,
4132
4182
  columnSpanDesktop: 2,
@@ -4156,7 +4206,7 @@ var Carousel = function Carousel(_ref) {
4156
4206
 
4157
4207
  var _templateObject$y, _templateObject2$i, _templateObject3$c, _templateObject4$9, _templateObject5$5, _templateObject6$5, _templateObject7$3, _templateObject8$3, _templateObject9$2, _templateObject10$1;
4158
4208
  var HighlightsGrid = /*#__PURE__*/styled(Grid)(_templateObject$y || (_templateObject$y = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n grid-template-rows: max-content minmax(0, 1fr);\n gap: 0 var(--grid-column-gap);\n background-color: var(--base-color-black);\n color: var(--base-color-white);\n user-select: none;\n\n @media ", " {\n & {\n grid-template-rows: min-content max-content max-content;\n }\n }\n"])), devices.mobile);
4159
- var CarouselTitleWrapper = /*#__PURE__*/styled.div(_templateObject2$i || (_templateObject2$i = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n grid-area: 1 / 1 / 1 / 7;\n width: calc(100% + var(--grid-column-gap) - 86px);\n padding-top: 40px;\n padding-left: 50px;\n padding-right: 36px;\n user-select: text;\n\n h4 {\n margin: 0;\n padding: 0;\n }\n\n h5 {\n display: none;\n }\n\n @media ", " {\n & {\n width: calc(100% - 78px + var(--grid-column-gap));\n grid-area: 1 / 1 / 1 / 6;\n padding-top: 32px;\n padding-right: 28px;\n\n h4 {\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n line-height: ", ";\n }\n }\n }\n\n @media ", " {\n & {\n grid-area: 1 / 1 / 2 / 11;\n width: calc(100% - 20px);\n padding: 8px 0 8px 20px;\n min-height: var(--line-height-altHeader-5);\n\n h4 {\n display: none;\n }\n\n h5 {\n margin: 0;\n padding: 0;\n display: block;\n }\n }\n }\n"])), devices.tablet, function (_ref) {
4209
+ var CarouselTitleWrapper = /*#__PURE__*/styled.div(_templateObject2$i || (_templateObject2$i = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n grid-area: 1 / 1 / 1 / 7;\n box-sizing: border-box;\n width: calc(100% + var(--grid-column-gap));\n padding-top: 40px;\n padding-left: 50px;\n padding-right: 36px;\n user-select: text;\n\n h4 {\n margin: 0;\n padding: 0;\n }\n\n h5 {\n display: none;\n }\n\n @media ", " {\n & {\n grid-area: 1 / 1 / 1 / 6;\n padding-top: 32px;\n padding-right: 28px;\n\n h4 {\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n line-height: ", ";\n }\n }\n }\n\n @media ", " {\n & {\n grid-area: 1 / 1 / 2 / 11;\n width: 100%;\n padding: 8px 0 8px 20px;\n min-height: var(--line-height-altHeader-5);\n\n h4 {\n display: none;\n }\n\n h5 {\n margin: 0;\n padding: 0;\n display: block;\n }\n }\n }\n"])), devices.tablet, function (_ref) {
4160
4210
  var theme = _ref.theme;
4161
4211
  return theme.fonts.mobile.sizes.altHeaders[4];
4162
4212
  }, function (_ref2) {
@@ -4169,7 +4219,7 @@ var CarouselTitleWrapper = /*#__PURE__*/styled.div(_templateObject2$i || (_templ
4169
4219
  var theme = _ref4.theme;
4170
4220
  return theme.fonts.mobile.lineHeights.altHeaders[4];
4171
4221
  }, devices.mobile);
4172
- var InfoWrapper = /*#__PURE__*/styled.div(_templateObject3$c || (_templateObject3$c = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n grid-area: 2 / 1 / 2 / 7;\n width: calc(100% + var(--grid-column-gap) - 86px);\n align-self: center;\n padding: 36px 36px 36px 50px;\n\n @media ", " {\n & {\n grid-area: 2 / 1 / 2 / 6;\n width: calc(100% + var(--grid-column-gap) - 78px);\n padding: 28px 28px 28px 50px;\n }\n }\n\n @media ", " {\n & {\n grid-area: 3 / 1 / 4 / 15;\n width: calc(100% - 40px);\n padding: 0 20px;\n margin: 24px 0;\n }\n }\n"])), devices.tablet, devices.mobile);
4222
+ var InfoWrapper = /*#__PURE__*/styled.div(_templateObject3$c || (_templateObject3$c = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n grid-area: 2 / 1 / 2 / 7;\n box-sizing: border-box;\n width: calc(100% + var(--grid-column-gap));\n align-self: center;\n padding: 36px 36px 36px 50px;\n\n @media ", " {\n & {\n grid-area: 2 / 1 / 2 / 6;\n padding: 28px 28px 28px 50px;\n }\n }\n\n @media ", " {\n & {\n grid-area: 3 / 1 / 4 / 15;\n width: 100%;\n padding: 0 20px;\n margin: 24px 0;\n }\n }\n"])), devices.tablet, devices.mobile);
4173
4223
  var InfoLogoWrapper = /*#__PURE__*/styled.div(_templateObject4$9 || (_templateObject4$9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 32px;\n width: 132px;\n height: 36px;\n\n @media ", " {\n & {\n margin-bottom: 20px;\n width: 102px;\n height: 28px;\n }\n }\n"])), devices.mobile);
4174
4224
  var InfoTitleWrapper = /*#__PURE__*/styled.div(_templateObject5$5 || (_templateObject5$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n user-select: text;\n h3 {\n padding: 0;\n margin: 0 0 8px 0;\n }\n\n h6 {\n padding: 0;\n margin: 0;\n }\n\n @media ", " {\n & {\n h3 {\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n line-height: ", ";\n }\n\n h6 {\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n line-height: ", ";\n }\n }\n }\n"])), devices.tablet, function (_ref5) {
4175
4225
  var theme = _ref5.theme;
@@ -4258,6 +4308,16 @@ var HighlightsCarousel = function HighlightsCarousel(_ref) {
4258
4308
  restLink = _objectWithoutPropertiesLoose(link, _excluded$8);
4259
4309
 
4260
4310
  var description = infoText == null ? void 0 : infoText.substring(0, 130);
4311
+ useEffect(function () {
4312
+ var slideChangeHandler = function slideChangeHandler(s) {
4313
+ return setCurrentSlide(s.realIndex);
4314
+ };
4315
+
4316
+ swiper == null ? void 0 : swiper.on('slideChangeTransitionStart', slideChangeHandler);
4317
+ return function () {
4318
+ return swiper == null ? void 0 : swiper.off('slideChangeTransitionStart', slideChangeHandler);
4319
+ };
4320
+ }, [swiper]);
4261
4321
 
4262
4322
  var onSwiper = function onSwiper(s) {
4263
4323
  setSwiper(s);
@@ -4266,14 +4326,12 @@ var HighlightsCarousel = function HighlightsCarousel(_ref) {
4266
4326
  var onNext = function onNext() {
4267
4327
  if (swiper && !swiper.animating) {
4268
4328
  swiper.slideNext();
4269
- setCurrentSlide(swiper.realIndex);
4270
4329
  }
4271
4330
  };
4272
4331
 
4273
4332
  var onPrev = function onPrev() {
4274
4333
  if (swiper && !swiper.animating) {
4275
4334
  swiper.slidePrev();
4276
- setCurrentSlide(swiper.realIndex);
4277
4335
  }
4278
4336
  };
4279
4337
 
@@ -4442,7 +4500,7 @@ var Accordions = function Accordions(_ref) {
4442
4500
  }));
4443
4501
  };
4444
4502
 
4445
- var _templateObject$B, _templateObject2$k, _templateObject3$e, _templateObject4$b, _templateObject5$7, _templateObject6$6, _templateObject7$4, _templateObject8$4;
4503
+ var _templateObject$B, _templateObject2$k, _templateObject3$e, _templateObject4$b, _templateObject5$7, _templateObject6$6, _templateObject7$4, _templateObject8$4, _templateObject9$3;
4446
4504
  var LENGTH_LARGE_TEXT = 28;
4447
4505
  var LENGTH_SMALL_TEXT = 19;
4448
4506
  var LENGTH_TEXT_TABLET = 10;
@@ -4456,10 +4514,11 @@ var ContentContainer$1 = /*#__PURE__*/styled.div(_templateObject4$b || (_templat
4456
4514
  var fullWidth = _ref2.fullWidth;
4457
4515
  return fullWidth ? '0' : '20px';
4458
4516
  });
4459
- var TitleContainer$2 = /*#__PURE__*/styled.div(_templateObject5$7 || (_templateObject5$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: calc(-1 * var(--editorial-margin-between)) 0 calc(-1 * var(--editorial-margin-between)) 0;\n"])));
4460
- var TextContainer = /*#__PURE__*/styled.div(_templateObject6$6 || (_templateObject6$6 = /*#__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-top: var(--editorial-spacing-hover);\n padding: 0;\n white-space: break-spaces;\n overflow-wrap: break-word;\n\n em {\n font-family: var(--font-family-body-italics);\n }\n"])));
4461
- var SubtitleContainer = /*#__PURE__*/styled.span(_templateObject7$4 || (_templateObject7$4 = /*#__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-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 display: block;\n overflow-wrap: break-word;\n"])));
4462
- var ButtonsContainer$1 = /*#__PURE__*/styled.div(_templateObject8$4 || (_templateObject8$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n opacity: 0;\n display: flex;\n gap: 16px;\n margin-top: var(--editorial-margin-between);\n\n ", "\n\n @media ", " {\n opacity: 1 !important;\n gap: 24px;\n margin-top: 24px;\n flex-direction: column;\n align-items: center;\n }\n\n @media ", " {\n opacity: 1 !important;\n gap: 24px;\n margin-top: 24px;\n align-items: flex-start;\n\n ", "\n }\n"])), function (_ref3) {
4517
+ var TitleContainer$2 = /*#__PURE__*/styled.div(_templateObject5$7 || (_templateObject5$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: calc(-1 * var(--editorial-margin-between)) 0 calc(-1 * var(--editorial-margin-between)) 0;\n\n @media ", " {\n display: none;\n }\n"])), devices.mobile);
4518
+ var TitleContainerMobile = /*#__PURE__*/styled.div(_templateObject6$6 || (_templateObject6$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: calc(-1 * var(--editorial-margin-between)) 0 calc(-1 * var(--editorial-margin-between)) 0;\n display: none;\n\n @media ", " {\n display: block;\n }\n"])), devices.mobile);
4519
+ var TextContainer = /*#__PURE__*/styled.div(_templateObject7$4 || (_templateObject7$4 = /*#__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-top: var(--editorial-spacing-hover);\n padding: 0;\n white-space: break-spaces;\n overflow-wrap: break-word;\n\n em {\n font-family: var(--font-family-body-italics);\n }\n"])));
4520
+ var SubtitleContainer = /*#__PURE__*/styled.span(_templateObject8$4 || (_templateObject8$4 = /*#__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-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 display: block;\n overflow-wrap: break-word;\n"])));
4521
+ var ButtonsContainer$1 = /*#__PURE__*/styled.div(_templateObject9$3 || (_templateObject9$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n opacity: 0;\n display: flex;\n gap: 16px;\n margin-top: var(--editorial-margin-between);\n\n ", "\n\n @media ", " {\n opacity: 1 !important;\n gap: 24px;\n margin-top: 24px;\n flex-direction: column;\n align-items: center;\n }\n\n @media ", " {\n opacity: 1 !important;\n gap: 24px;\n margin-top: 24px;\n align-items: flex-start;\n\n ", "\n }\n"])), function (_ref3) {
4463
4522
  var size = _ref3.size,
4464
4523
  primaryButtonTextLength = _ref3.primaryButtonTextLength,
4465
4524
  tertiaryButtonTextLength = _ref3.tertiaryButtonTextLength;
@@ -4598,6 +4657,8 @@ var Card = function Card(_ref) {
4598
4657
  }, tags ? /*#__PURE__*/React__default.createElement(TypeTags, {
4599
4658
  list: tags
4600
4659
  }) : null, /*#__PURE__*/React__default.createElement(TitleContainer$2, null, /*#__PURE__*/React__default.createElement(Header, {
4660
+ level: size === 'small' ? 6 : 5
4661
+ }, title)), /*#__PURE__*/React__default.createElement(TitleContainerMobile, null, /*#__PURE__*/React__default.createElement(Header, {
4601
4662
  level: 6
4602
4663
  }, title)), subtitle ? /*#__PURE__*/React__default.createElement(SubtitleContainer, null, subtitle) : null, /*#__PURE__*/React__default.createElement(TextContainer, {
4603
4664
  dangerouslySetInnerHTML: {