@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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## [0.5.4]
4
+ - Fix Card typography
5
+ - Fix Carousel title typography
6
+ - Fix Image Carousel size
7
+ - Fix focus style in rotator buttons (Safari)
8
+ - Anchor tab links hover style only for desktop
9
+ - Fix Anchor bar internal navigation
10
+
11
+ ## [0.5.3]
12
+ - Handle keyboard events using key attribute
13
+
14
+ ## [0.5.2]
15
+ - Highlights Carousel: info change swiping slide
16
+ - Fix RotatorButtons a11y
17
+
18
+ ## [0.5.1]
19
+ - Highlights Carousel: fix box-sizing
20
+
3
21
  ## [0.5.0]
4
22
  - Highlights Carousel: new slides props (breaking change)
5
23
  - Fix in PageHeadingImpact image
@@ -2515,9 +2515,9 @@ var Tab = function Tab(_ref) {
2515
2515
  };
2516
2516
 
2517
2517
  var onKeyDownHandler = function onKeyDownHandler(e) {
2518
- if (e.code === 'Enter') {
2518
+ if (e.key === 'Enter') {
2519
2519
  clickHandler();
2520
- } else if (e.code === 'Escape') {
2520
+ } else if (e.key === 'Escape') {
2521
2521
  onReset == null ? void 0 : onReset();
2522
2522
  }
2523
2523
  };
@@ -2541,7 +2541,7 @@ var Tab = function Tab(_ref) {
2541
2541
  };
2542
2542
 
2543
2543
  var _templateObject$f, _templateObject2$3;
2544
- var TabLinkWrapper = /*#__PURE__*/styled__default.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) {
2544
+ var TabLinkWrapper = /*#__PURE__*/styled__default.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) {
2545
2545
  var iconName = _ref.iconName;
2546
2546
  return iconName ? 'calc(var(--text-link-underline-offset) - 4px) 0' : 'var(--text-link-underline-offset) 0';
2547
2547
  }, function (_ref2) {
@@ -2557,7 +2557,7 @@ var TabLinkWrapper = /*#__PURE__*/styled__default.a(_templateObject$f || (_templ
2557
2557
  var selected = _ref4.selected,
2558
2558
  hoverColor = _ref4.hoverColor;
2559
2559
  return selected ? "&& svg path {\n fill: var(--base-color-" + hoverColor + ");\n }" : '';
2560
- }, function (_ref5) {
2560
+ }, devices.desktop, devices.largeDesktop, function (_ref5) {
2561
2561
  var hoverColor = _ref5.hoverColor;
2562
2562
  return hoverColor;
2563
2563
  }, function (_ref6) {
@@ -2630,16 +2630,28 @@ var RotatorButtons = function RotatorButtons(_ref) {
2630
2630
  }
2631
2631
  };
2632
2632
 
2633
+ var onPrevKeyDownHandler = function onPrevKeyDownHandler(e) {
2634
+ if (e.key === 'Enter') {
2635
+ onClickLeftHandler();
2636
+ }
2637
+ };
2638
+
2633
2639
  var onClickRightHandler = function onClickRightHandler() {
2634
2640
  if (onClickNext) {
2635
2641
  onClickNext();
2636
2642
  }
2637
2643
  };
2638
2644
 
2645
+ var onNextKeyDownHandler = function onNextKeyDownHandler(e) {
2646
+ if (e.key === 'Enter') {
2647
+ onClickRightHandler();
2648
+ }
2649
+ };
2650
+
2639
2651
  var renderPrevIcon = function renderPrevIcon() {
2640
2652
  return /*#__PURE__*/React__default.createElement(Icon, {
2641
2653
  iconName: 'CarouselArrow',
2642
- direction: "left"
2654
+ direction: "reverse"
2643
2655
  });
2644
2656
  };
2645
2657
 
@@ -2651,11 +2663,15 @@ var RotatorButtons = function RotatorButtons(_ref) {
2651
2663
 
2652
2664
  return /*#__PURE__*/React__default.createElement(ButtonsContainer, null, availablePrev ? /*#__PURE__*/React__default.createElement(IconWrapper, {
2653
2665
  onClick: onClickLeftHandler,
2666
+ onKeyDown: onPrevKeyDownHandler,
2667
+ tabIndex: 0,
2654
2668
  "data-testid": "iconprev"
2655
2669
  }, renderPrevIcon()) : /*#__PURE__*/React__default.createElement(IconUnavailableWrapper, {
2656
2670
  "data-testid": "iconprevnoavailable"
2657
2671
  }, renderPrevIcon()), availableNext ? /*#__PURE__*/React__default.createElement(IconWrapper, {
2658
2672
  onClick: onClickRightHandler,
2673
+ onKeyDown: onNextKeyDownHandler,
2674
+ tabIndex: 0,
2659
2675
  "data-testid": "iconnext"
2660
2676
  }, renderNextIcon()) : /*#__PURE__*/React__default.createElement(IconUnavailableWrapper, {
2661
2677
  "data-testid": "iconnextnoavailable"
@@ -2860,7 +2876,7 @@ var Basket$1 = function Basket(_ref) {
2860
2876
  };
2861
2877
 
2862
2878
  var onKeyDownHandler = function onKeyDownHandler(e) {
2863
- if (e.code === 'Enter') {
2879
+ if (e.key === 'Enter') {
2864
2880
  onClickHandler();
2865
2881
  }
2866
2882
  };
@@ -2910,7 +2926,7 @@ var Search$1 = function Search(_ref) {
2910
2926
  colorPrimary = _ref$colorPrimary === void 0 ? 'primary' : _ref$colorPrimary;
2911
2927
 
2912
2928
  var onKeyDownHandler = function onKeyDownHandler(e) {
2913
- if (e.code === 'Enter') {
2929
+ if (e.key === 'Enter') {
2914
2930
  onClick == null ? void 0 : onClick();
2915
2931
  }
2916
2932
  };
@@ -3069,9 +3085,9 @@ var Dropdown = function Dropdown(_ref) {
3069
3085
  };
3070
3086
 
3071
3087
  var onKeyDownHandler = function onKeyDownHandler(e, link) {
3072
- if (e.code === 'Enter') {
3088
+ if (e.key === 'Enter') {
3073
3089
  handleChange(link);
3074
- } else if (e.code === 'Escape') {
3090
+ } else if (e.key === 'Escape') {
3075
3091
  onResetHandler();
3076
3092
  }
3077
3093
  };
@@ -3266,17 +3282,17 @@ var ControlledDropdown = function ControlledDropdown(_ref) {
3266
3282
  }, [ref, resetHandler, active]);
3267
3283
 
3268
3284
  var handleOptionKeyDown = function handleOptionKeyDown(e, link) {
3269
- if (e.code === 'Enter') {
3285
+ if (e.key === 'Enter') {
3270
3286
  onOptionClick == null ? void 0 : onOptionClick(link);
3271
- } else if (e.code === 'Escape') {
3287
+ } else if (e.key === 'Escape') {
3272
3288
  resetHandler();
3273
3289
  }
3274
3290
  };
3275
3291
 
3276
3292
  var handleHeaderKeyDown = function handleHeaderKeyDown(e) {
3277
- if (e.code === 'Enter') {
3293
+ if (e.key === 'Enter') {
3278
3294
  onClick == null ? void 0 : onClick();
3279
- } else if (e.code === 'Escape') {
3295
+ } else if (e.key === 'Escape') {
3280
3296
  resetHandler();
3281
3297
  }
3282
3298
  };
@@ -3540,7 +3556,7 @@ var SearchBar = function SearchBar(_ref) {
3540
3556
  };
3541
3557
 
3542
3558
  var handleKeypress = function handleKeypress(e, value) {
3543
- if (e.code === 'Enter' && showSearchLink) {
3559
+ if (e.key === 'Enter' && showSearchLink) {
3544
3560
  onSearchHandler(value);
3545
3561
  }
3546
3562
  };
@@ -3563,7 +3579,7 @@ var SearchBar = function SearchBar(_ref) {
3563
3579
  };
3564
3580
 
3565
3581
  var onKeyboardCloseHandler = function onKeyboardCloseHandler(e) {
3566
- if (e.code === 'Enter') {
3582
+ if (e.key === 'Enter') {
3567
3583
  onCloseHandler();
3568
3584
  }
3569
3585
  };
@@ -3865,8 +3881,6 @@ var _excluded$7 = ["text"],
3865
3881
  _excluded3 = ["id", "text"];
3866
3882
 
3867
3883
  var AnchorTapBar = function AnchorTapBar(_ref) {
3868
- var _tabListRef$current, _tabListRef$current2;
3869
-
3870
3884
  var tabs = _ref.tabs,
3871
3885
  title = _ref.title,
3872
3886
  links = _ref.links,
@@ -3882,13 +3896,15 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3882
3896
  tabsOverflow = _useState2[0],
3883
3897
  setTabsOverflow = _useState2[1];
3884
3898
 
3885
- var _useState3 = React.useState(0),
3886
- scroll = _useState3[0],
3887
- setScroll = _useState3[1];
3899
+ var _useState3 = React.useState(false),
3900
+ canScrollToLeft = _useState3[0],
3901
+ setCanScrollToLeft = _useState3[1];
3902
+
3903
+ var _useState4 = React.useState(tabsOverflow),
3904
+ canScrollToRight = _useState4[0],
3905
+ setCanScrollToRight = _useState4[1];
3888
3906
 
3889
3907
  var hasTitleOrLinks = title || links;
3890
- var scrollStart = 0 === scroll;
3891
- 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;
3892
3908
 
3893
3909
  var isSelectedItem = function isSelectedItem(id) {
3894
3910
  return id === selectedItem;
@@ -3903,10 +3919,11 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3903
3919
  };
3904
3920
 
3905
3921
  React.useEffect(function () {
3906
- var _tabListRef$current3, _tabListRef$current4;
3922
+ var _tabListRef$current, _tabListRef$current2;
3907
3923
 
3908
- var tabsIsOverflowed = (((_tabListRef$current3 = tabListRef.current) == null ? void 0 : _tabListRef$current3.scrollWidth) || 0) > (((_tabListRef$current4 = tabListRef.current) == null ? void 0 : _tabListRef$current4.clientWidth) || 0);
3924
+ var tabsIsOverflowed = (((_tabListRef$current = tabListRef.current) == null ? void 0 : _tabListRef$current.scrollWidth) || 0) > (((_tabListRef$current2 = tabListRef.current) == null ? void 0 : _tabListRef$current2.clientWidth) || 0);
3909
3925
  setTabsOverflow(tabsIsOverflowed);
3926
+ setCanScrollToRight(tabsIsOverflowed);
3910
3927
  }, [tabListRef]);
3911
3928
  React.useEffect(function () {
3912
3929
  var scrollTriggerCheck = function scrollTriggerCheck() {
@@ -3921,6 +3938,24 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3921
3938
  if (window.scrollY === 0) {
3922
3939
  setSelectedItem(onTabClick ? selectedItem : '');
3923
3940
  } else if (reachedItem) {
3941
+ var _ref2 = (tabListRef == null ? void 0 : tabListRef.current) || {},
3942
+ _ref2$scrollLeft = _ref2.scrollLeft,
3943
+ scrollLeft = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,
3944
+ _ref2$clientWidth = _ref2.clientWidth,
3945
+ clientWidth = _ref2$clientWidth === void 0 ? 0 : _ref2$clientWidth;
3946
+
3947
+ var tabLinkElement = document.getElementById("tablink-" + reachedItem.id) || {
3948
+ offsetLeft: 0,
3949
+ offsetWidth: 0
3950
+ };
3951
+ var offsetLeft = tabLinkElement.offsetLeft,
3952
+ offsetWidth = tabLinkElement.offsetWidth;
3953
+ var isInView = offsetLeft >= scrollLeft && offsetLeft + offsetWidth < scrollLeft + clientWidth;
3954
+
3955
+ if (!isInView && tabListRef != null && tabListRef.current) {
3956
+ tabListRef.current.scrollLeft = offsetLeft;
3957
+ }
3958
+
3924
3959
  setSelectedItem(reachedItem.id);
3925
3960
  }
3926
3961
  };
@@ -3929,34 +3964,47 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3929
3964
  return function () {
3930
3965
  return document.removeEventListener('scroll', scrollTriggerCheck);
3931
3966
  };
3932
- }, [tabs, selectedItem, hasTitleOrLinks]);
3933
- var tabsColumnStart = tabsOverflow ? scrollStart ? 2 : 1 : 3;
3934
- var tabsColumnSpan = tabsOverflow ? scrollStart ? 14 : 15 : 13;
3967
+ }, [tabs, selectedItem, hasTitleOrLinks, tabListRef]);
3968
+ var tabsColumnStart = tabsOverflow ? !canScrollToLeft ? 2 : 1 : 3;
3969
+ var tabsColumnSpan = tabsOverflow ? !canScrollToLeft ? 14 : 15 : 13;
3935
3970
 
3936
- var _ref2 = (links == null ? void 0 : links[0]) || {},
3937
- primaryButtonText = _ref2.text,
3938
- primaryButtonProps = _objectWithoutPropertiesLoose(_ref2, _excluded$7);
3971
+ var _ref3 = (links == null ? void 0 : links[0]) || {},
3972
+ primaryButtonText = _ref3.text,
3973
+ primaryButtonProps = _objectWithoutPropertiesLoose(_ref3, _excluded$7);
3939
3974
 
3940
- var _ref3 = (links == null ? void 0 : links[1]) || {},
3941
- secondaryButtonText = _ref3.text,
3942
- secondaryButtonProps = _objectWithoutPropertiesLoose(_ref3, _excluded2);
3975
+ var _ref4 = (links == null ? void 0 : links[1]) || {},
3976
+ secondaryButtonText = _ref4.text,
3977
+ secondaryButtonProps = _objectWithoutPropertiesLoose(_ref4, _excluded2);
3943
3978
 
3944
3979
  var scrollToRight = function scrollToRight() {
3945
3980
  if (tabListRef.current) {
3981
+ var scroll = tabListRef.current.scrollLeft;
3946
3982
  var newScroll = Math.min(tabListRef.current.clientWidth, tabListRef.current.scrollWidth - scroll);
3947
3983
  tabListRef.current.scrollLeft += newScroll;
3948
- setScroll(tabListRef.current.scrollLeft + newScroll);
3949
3984
  }
3950
3985
  };
3951
3986
 
3952
3987
  var scrollToLeft = function scrollToLeft() {
3953
3988
  if (tabListRef.current) {
3989
+ var scroll = tabListRef.current.scrollLeft;
3954
3990
  var newScroll = Math.max(0, scroll - tabListRef.current.clientWidth);
3955
3991
  tabListRef.current.scrollLeft = newScroll;
3956
- setScroll(newScroll);
3957
3992
  }
3958
3993
  };
3959
3994
 
3995
+ var onTabsScroll = function onTabsScroll() {
3996
+ var _ref5 = (tabListRef == null ? void 0 : tabListRef.current) || {},
3997
+ _ref5$scrollLeft = _ref5.scrollLeft,
3998
+ scrollLeft = _ref5$scrollLeft === void 0 ? 0 : _ref5$scrollLeft,
3999
+ _ref5$clientWidth = _ref5.clientWidth,
4000
+ clientWidth = _ref5$clientWidth === void 0 ? 0 : _ref5$clientWidth,
4001
+ _ref5$scrollWidth = _ref5.scrollWidth,
4002
+ scrollWidth = _ref5$scrollWidth === void 0 ? 0 : _ref5$scrollWidth;
4003
+
4004
+ setCanScrollToLeft(scrollLeft > 0);
4005
+ setCanScrollToRight(scrollLeft + clientWidth < scrollWidth);
4006
+ };
4007
+
3960
4008
  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, {
3961
4009
  columnStartDesktop: 2,
3962
4010
  columnSpanDesktop: 9,
@@ -3981,27 +4029,29 @@ var AnchorTapBar = function AnchorTapBar(_ref) {
3981
4029
  "data-testid": "anchor-tabs"
3982
4030
  }, /*#__PURE__*/React__default.createElement(TabsList, {
3983
4031
  ref: tabListRef,
3984
- tabsOverflow: tabsOverflow
3985
- }, tabs.map(function (_ref4) {
3986
- var id = _ref4.id,
3987
- text = _ref4.text,
3988
- rest = _objectWithoutPropertiesLoose(_ref4, _excluded3);
4032
+ tabsOverflow: tabsOverflow,
4033
+ onScroll: onTabsScroll
4034
+ }, tabs.map(function (_ref6) {
4035
+ var id = _ref6.id,
4036
+ text = _ref6.text,
4037
+ rest = _objectWithoutPropertiesLoose(_ref6, _excluded3);
3989
4038
 
3990
4039
  return /*#__PURE__*/React__default.createElement("li", {
3991
4040
  key: id
3992
4041
  }, /*#__PURE__*/React__default.createElement(TabLink, Object.assign({
3993
4042
  selected: isSelectedItem(id),
4043
+ id: "tablink-" + id,
3994
4044
  onClick: function onClick(e) {
3995
4045
  return onClicktab(e, id);
3996
4046
  },
3997
4047
  tabIndex: 0
3998
4048
  }, rest), text));
3999
- })), tabsOverflow ? /*#__PURE__*/React__default.createElement(ArrowsContainer, null, !scrollStart ? /*#__PURE__*/React__default.createElement(ArrowWrapper, {
4049
+ })), tabsOverflow ? /*#__PURE__*/React__default.createElement(ArrowsContainer, null, canScrollToLeft ? /*#__PURE__*/React__default.createElement(ArrowWrapper, {
4000
4050
  onClick: scrollToLeft
4001
4051
  }, /*#__PURE__*/React__default.createElement(Icon, {
4002
4052
  iconName: "Arrow",
4003
4053
  direction: "reverse"
4004
- })) : null, !scrollEnd ? /*#__PURE__*/React__default.createElement(ArrowWrapper, {
4054
+ })) : null, canScrollToRight ? /*#__PURE__*/React__default.createElement(ArrowWrapper, {
4005
4055
  onClick: scrollToRight
4006
4056
  }, /*#__PURE__*/React__default.createElement(Icon, {
4007
4057
  iconName: "Arrow"
@@ -4027,7 +4077,7 @@ var CarouselWrapper = /*#__PURE__*/styled__default.div(_templateObject$x || (_te
4027
4077
  var calcColumns = "calc(calc(80% - " + gapsInMainGraid + ") * " + numberOfColumns + " / 12)";
4028
4078
  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 ";
4029
4079
  } else {
4030
- 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 ";
4080
+ 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 ";
4031
4081
  }
4032
4082
  }, devices.mobile, function (_ref2) {
4033
4083
  var active = _ref2.active,
@@ -4044,11 +4094,11 @@ var CarouselWrapper = /*#__PURE__*/styled__default.div(_templateObject$x || (_te
4044
4094
  var marginRight = active ? "calc(calc(var(--grid-column-gap) * 2) + " + columnWidth + ")" : "calc(calc(" + columnWidth + " * 2) + var(--grid-column-gap))";
4045
4095
  return "\n && {\n .swiper-slide {\n width: calc(" + calcColumns + " + " + gapsSpace + " - 1px);\n margin-right: " + marginRight + ";\n -webkit-transform: translate3d(0, 0, 0);\n }\n }";
4046
4096
  } else {
4047
- return "\n &&& {\n .swiper-slide > div{\n height: " + imagesHeightDevice + "px;\n }\n }";
4097
+ return "\n &&& {\n .swiper-slide > div{\n height: calc(" + imagesHeightDevice + "px + var(--line-height-body-2) + 12px);\n }\n }";
4048
4098
  }
4049
4099
  });
4050
4100
  var TitleButtonsGrid = /*#__PURE__*/styled__default(Grid)(_templateObject2$h || (_templateObject2$h = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 28px;\n\n @media ", " {\n margin-bottom: 20px;\n }\n"])), devices.mobile);
4051
- var TitleWrapper = /*#__PURE__*/styled__default.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"])));
4101
+ var TitleWrapper = /*#__PURE__*/styled__default.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"])));
4052
4102
  var ButtonsWrapper = /*#__PURE__*/styled__default.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);
4053
4103
 
4054
4104
  var Carousel = function Carousel(_ref) {
@@ -4128,7 +4178,7 @@ var Carousel = function Carousel(_ref) {
4128
4178
  }, /*#__PURE__*/React__default.createElement(TitleWrapper, {
4129
4179
  "data-testid": "carousel-title-wrapper"
4130
4180
  }, /*#__PURE__*/React__default.createElement(AltHeader, {
4131
- level: 3
4181
+ level: 4
4132
4182
  }, title))), /*#__PURE__*/React__default.createElement(GridItem, {
4133
4183
  columnStartDesktop: 14,
4134
4184
  columnSpanDesktop: 2,
@@ -4158,7 +4208,7 @@ var Carousel = function Carousel(_ref) {
4158
4208
 
4159
4209
  var _templateObject$y, _templateObject2$i, _templateObject3$c, _templateObject4$9, _templateObject5$5, _templateObject6$5, _templateObject7$3, _templateObject8$3, _templateObject9$2, _templateObject10$1;
4160
4210
  var HighlightsGrid = /*#__PURE__*/styled__default(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);
4161
- var CarouselTitleWrapper = /*#__PURE__*/styled__default.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) {
4211
+ var CarouselTitleWrapper = /*#__PURE__*/styled__default.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) {
4162
4212
  var theme = _ref.theme;
4163
4213
  return theme.fonts.mobile.sizes.altHeaders[4];
4164
4214
  }, function (_ref2) {
@@ -4171,7 +4221,7 @@ var CarouselTitleWrapper = /*#__PURE__*/styled__default.div(_templateObject2$i |
4171
4221
  var theme = _ref4.theme;
4172
4222
  return theme.fonts.mobile.lineHeights.altHeaders[4];
4173
4223
  }, devices.mobile);
4174
- var InfoWrapper = /*#__PURE__*/styled__default.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);
4224
+ var InfoWrapper = /*#__PURE__*/styled__default.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);
4175
4225
  var InfoLogoWrapper = /*#__PURE__*/styled__default.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);
4176
4226
  var InfoTitleWrapper = /*#__PURE__*/styled__default.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) {
4177
4227
  var theme = _ref5.theme;
@@ -4260,6 +4310,16 @@ var HighlightsCarousel = function HighlightsCarousel(_ref) {
4260
4310
  restLink = _objectWithoutPropertiesLoose(link, _excluded$8);
4261
4311
 
4262
4312
  var description = infoText == null ? void 0 : infoText.substring(0, 130);
4313
+ React.useEffect(function () {
4314
+ var slideChangeHandler = function slideChangeHandler(s) {
4315
+ return setCurrentSlide(s.realIndex);
4316
+ };
4317
+
4318
+ swiper == null ? void 0 : swiper.on('slideChangeTransitionStart', slideChangeHandler);
4319
+ return function () {
4320
+ return swiper == null ? void 0 : swiper.off('slideChangeTransitionStart', slideChangeHandler);
4321
+ };
4322
+ }, [swiper]);
4263
4323
 
4264
4324
  var onSwiper = function onSwiper(s) {
4265
4325
  setSwiper(s);
@@ -4268,14 +4328,12 @@ var HighlightsCarousel = function HighlightsCarousel(_ref) {
4268
4328
  var onNext = function onNext() {
4269
4329
  if (swiper && !swiper.animating) {
4270
4330
  swiper.slideNext();
4271
- setCurrentSlide(swiper.realIndex);
4272
4331
  }
4273
4332
  };
4274
4333
 
4275
4334
  var onPrev = function onPrev() {
4276
4335
  if (swiper && !swiper.animating) {
4277
4336
  swiper.slidePrev();
4278
- setCurrentSlide(swiper.realIndex);
4279
4337
  }
4280
4338
  };
4281
4339
 
@@ -4444,7 +4502,7 @@ var Accordions = function Accordions(_ref) {
4444
4502
  }));
4445
4503
  };
4446
4504
 
4447
- var _templateObject$B, _templateObject2$k, _templateObject3$e, _templateObject4$b, _templateObject5$7, _templateObject6$6, _templateObject7$4, _templateObject8$4;
4505
+ var _templateObject$B, _templateObject2$k, _templateObject3$e, _templateObject4$b, _templateObject5$7, _templateObject6$6, _templateObject7$4, _templateObject8$4, _templateObject9$3;
4448
4506
  var LENGTH_LARGE_TEXT = 28;
4449
4507
  var LENGTH_SMALL_TEXT = 19;
4450
4508
  var LENGTH_TEXT_TABLET = 10;
@@ -4458,10 +4516,11 @@ var ContentContainer$1 = /*#__PURE__*/styled__default.div(_templateObject4$b ||
4458
4516
  var fullWidth = _ref2.fullWidth;
4459
4517
  return fullWidth ? '0' : '20px';
4460
4518
  });
4461
- var TitleContainer$2 = /*#__PURE__*/styled__default.div(_templateObject5$7 || (_templateObject5$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin: calc(-1 * var(--editorial-margin-between)) 0 calc(-1 * var(--editorial-margin-between)) 0;\n"])));
4462
- var TextContainer = /*#__PURE__*/styled__default.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"])));
4463
- var SubtitleContainer = /*#__PURE__*/styled__default.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"])));
4464
- var ButtonsContainer$1 = /*#__PURE__*/styled__default.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) {
4519
+ var TitleContainer$2 = /*#__PURE__*/styled__default.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);
4520
+ var TitleContainerMobile = /*#__PURE__*/styled__default.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);
4521
+ var TextContainer = /*#__PURE__*/styled__default.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"])));
4522
+ var SubtitleContainer = /*#__PURE__*/styled__default.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"])));
4523
+ var ButtonsContainer$1 = /*#__PURE__*/styled__default.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) {
4465
4524
  var size = _ref3.size,
4466
4525
  primaryButtonTextLength = _ref3.primaryButtonTextLength,
4467
4526
  tertiaryButtonTextLength = _ref3.tertiaryButtonTextLength;
@@ -4600,6 +4659,8 @@ var Card = function Card(_ref) {
4600
4659
  }, tags ? /*#__PURE__*/React__default.createElement(TypeTags, {
4601
4660
  list: tags
4602
4661
  }) : null, /*#__PURE__*/React__default.createElement(TitleContainer$2, null, /*#__PURE__*/React__default.createElement(Header, {
4662
+ level: size === 'small' ? 6 : 5
4663
+ }, title)), /*#__PURE__*/React__default.createElement(TitleContainerMobile, null, /*#__PURE__*/React__default.createElement(Header, {
4603
4664
  level: 6
4604
4665
  }, title)), subtitle ? /*#__PURE__*/React__default.createElement(SubtitleContainer, null, subtitle) : null, /*#__PURE__*/React__default.createElement(TextContainer, {
4605
4666
  dangerouslySetInnerHTML: {