@royaloperahouse/harmonic 0.1.8-k → 0.1.8-m

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.
@@ -5097,8 +5097,82 @@ var _templateObject$w, _templateObject2$n;
5097
5097
  var MediaLinksWrapper = /*#__PURE__*/styled__default.div(_templateObject$w || (_templateObject$w = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n gap: var(--footer-media-gap);\n"])));
5098
5098
  var MediaIconWrapper = /*#__PURE__*/styled__default.a(_templateObject2$n || (_templateObject2$n = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: var(--footer-media-icon-height);\n width: var(--footer-media-icon-width);\n\n &:focus {\n outline: 2px solid var(--color-base-white);\n }\n"])));
5099
5099
 
5100
+ // WARNING: Do not use this on server side rendering, it may throw an error.
5101
+ var isIOS = function isIOS() {
5102
+ try {
5103
+ console.warn('Do not use this on server side rendering, it may throw an error.');
5104
+ if (typeof navigator === undefined) return false;
5105
+ return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||
5106
+ // iPad on iOS 13 detection
5107
+ navigator.userAgent.includes('Mac') && 'ontouchend' in document;
5108
+ } catch (e) {
5109
+ console.warn('Error checking if device is iOS.', e);
5110
+ return false;
5111
+ }
5112
+ };
5113
+ // React hook version of isIOS (for server side rendering)
5114
+ var useIOS = function useIOS() {
5115
+ var _useState = React.useState(false),
5116
+ IOS = _useState[0],
5117
+ setIOS = _useState[1];
5118
+ React.useEffect(function () {
5119
+ if (typeof navigator === undefined) return;
5120
+ setIOS(isIOS());
5121
+ }, []);
5122
+ return IOS;
5123
+ };
5124
+ // Checks device size based on window width
5125
+ var isMobile = function isMobile() {
5126
+ try {
5127
+ console.warn('Do not use this on server side rendering, it may throw an error.');
5128
+ if (typeof window === undefined) return false;
5129
+ return window.innerWidth < breakpoints.sm;
5130
+ } catch (e) {
5131
+ console.warn('Error checking if device is mobile.', e);
5132
+ return false;
5133
+ }
5134
+ };
5135
+ // React hook version of isMobile (for server side rendering)
5136
+ var useMobile = function useMobile() {
5137
+ var _useState2 = React.useState(false),
5138
+ mobile = _useState2[0],
5139
+ setMobile = _useState2[1];
5140
+ React.useEffect(function () {
5141
+ if (typeof window === undefined) return;
5142
+ setMobile(isMobile());
5143
+ }, []);
5144
+ return mobile;
5145
+ };
5146
+ var useViewport = function useViewport() {
5147
+ var _useState3 = React.useState({
5148
+ width: window.innerWidth,
5149
+ isMobile: window.innerWidth < breakpoints.sm,
5150
+ isTablet: window.innerWidth >= breakpoints.sm && window.innerWidth < breakpoints.md,
5151
+ isDesktop: window.innerWidth >= breakpoints.md
5152
+ }),
5153
+ viewport = _useState3[0],
5154
+ setViewport = _useState3[1];
5155
+ React.useEffect(function () {
5156
+ var handleResize = function handleResize() {
5157
+ setViewport({
5158
+ width: window.innerWidth,
5159
+ isMobile: window.innerWidth < breakpoints.sm,
5160
+ isTablet: window.innerWidth >= breakpoints.sm && window.innerWidth < breakpoints.md,
5161
+ isDesktop: window.innerWidth >= breakpoints.md
5162
+ });
5163
+ };
5164
+ window.addEventListener('resize', handleResize);
5165
+ return function () {
5166
+ return window.removeEventListener('resize', handleResize);
5167
+ };
5168
+ }, []);
5169
+ return viewport;
5170
+ };
5171
+
5100
5172
  var SocialLinks = function SocialLinks(_ref) {
5101
5173
  var items = _ref.items;
5174
+ var _useViewport = useViewport(),
5175
+ isMobile = _useViewport.isMobile;
5102
5176
  return /*#__PURE__*/React__default.createElement(MediaLinksWrapper, null, items.map(function (mediaLink, idx) {
5103
5177
  return /*#__PURE__*/React__default.createElement(MediaIconWrapper, {
5104
5178
  key: mediaLink.name + "-" + idx,
@@ -5107,7 +5181,8 @@ var SocialLinks = function SocialLinks(_ref) {
5107
5181
  "aria-label": mediaLink.name,
5108
5182
  rel: "noopener noreferrer" // Ensures security for external links
5109
5183
  ,
5110
- target: "_blank"
5184
+ target: "_blank",
5185
+ tabIndex: isMobile ? 1 : undefined
5111
5186
  }, /*#__PURE__*/React__default.createElement(Icon, {
5112
5187
  iconName: mediaLink.name,
5113
5188
  color: "white",
@@ -5121,8 +5196,8 @@ var NavigationWrapper = /*#__PURE__*/styled__default.div(_templateObject$x || (_
5121
5196
  var isMenuOpen = _ref.isMenuOpen;
5122
5197
  return isMenuOpen && "\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: " + zIndexes.overlay + ";\n background-color: var(--color-base-white);\n overflow-y: auto;\n scrollbar-width: none;\n ::-webkit-scrollbar {\n display: none;\n }\n ";
5123
5198
  });
5124
- var FullScreenContainer = /*#__PURE__*/styled__default.div(_templateObject2$o || (_templateObject2$o = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: var(--color-base-white);\n width: 100vw;\n position: absolute;\n z-index: ", ";\n opacity: 0;\n animation: fadeIn 0.3s ease forwards;\n\n @media ", " {\n top: 230px;\n background-color: var(--color-base-black);\n }\n\n @keyframes fadeIn {\n to {\n opacity: 0.5;\n }\n }\n"])), zIndexes.searchOverlay, devices.mobileAndTablet);
5125
- var NavigationGrid = /*#__PURE__*/styled__default(Grid)(_templateObject3$e || (_templateObject3$e = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n background-color: var(--color-base-white);\n height: 140px;\n width: 100%;\n z-index: ", ";\n\n @media ", " {\n height: 60px;\n }\n"])), zIndexes.navigation, devices.mobileAndTablet);
5199
+ var FullScreenContainer = /*#__PURE__*/styled__default.div(_templateObject2$o || (_templateObject2$o = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: var(--color-base-white);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n width: 100%;\n z-index: ", ";\n opacity: 0;\n animation: fadeIn 0.3s ease forwards;\n\n @media ", " {\n top: 230px;\n background-color: var(--color-base-black);\n }\n\n @keyframes fadeIn {\n to {\n opacity: 0.5;\n }\n }\n"])), zIndexes.searchOverlay, devices.mobileAndTablet);
5200
+ var NavigationGrid = /*#__PURE__*/styled__default(Grid)(_templateObject3$e || (_templateObject3$e = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n background-color: var(--color-base-white);\n height: 140px;\n justify-content: space-evenly;\n width: 100%;\n z-index: ", ";\n\n @media ", " {\n height: 60px;\n }\n"])), zIndexes.navigation, devices.mobileAndTablet);
5126
5201
  var SearchBackground = /*#__PURE__*/styled__default.div(_templateObject4$b || (_templateObject4$b = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n visibility: ", ";\n opacity: ", ";\n transform: ", ";\n transition:\n opacity 0.3s ease,\n transform 0.3s ease,\n visibility 0.3s ease;\n background-color: var(--color-base-white);\n height: 100px;\n border-top: 1px solid var(--color-base-light-grey);\n width: 100%;\n position: absolute;\n top: 140px;\n z-index: ", ";\n\n @media ", " {\n height: 86px;\n top: 144px;\n }\n"])), function (_ref2) {
5127
5202
  var visible = _ref2.visible;
5128
5203
  return visible ? 'visible' : 'hidden';
@@ -5148,13 +5223,13 @@ var MobileMenuContainer = /*#__PURE__*/styled__default(Grid)(_templateObject7$2
5148
5223
  var showSearch = _ref8.showSearch;
5149
5224
  return showSearch ? '110px' : '12px';
5150
5225
  });
5151
- var LogoContainer = /*#__PURE__*/styled__default.a(_templateObject8$2 || (_templateObject8$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n &&& .logoImg {\n height: 96px;\n width: 80px;\n }\n\n span > svg path,\n span > svg g path {\n fill: var(--color-primary-black);\n }\n\n @media ", " {\n display: none;\n }\n"])), devices.mobileAndTablet);
5152
- var LogoContainerMobile = /*#__PURE__*/styled__default.div(_templateObject9$1 || (_templateObject9$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: none;\n\n @media ", " {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 235px;\n padding: 16px;\n\n &&& .logoImg {\n width: 235px;\n }\n\n span > svg path {\n fill: var(--color-primary-black);\n }\n }\n"])), devices.mobileAndTablet);
5153
- var MenuContainer = /*#__PURE__*/styled__default.div(_templateObject10$1 || (_templateObject10$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 140px;\n width: 100%;\n\n @media ", " {\n flex-direction: row;\n justify-content: space-between;\n height: 60px;\n width 100%;\n }\n"])), devices.mobileAndTablet);
5154
- var NavWrapper = /*#__PURE__*/styled__default.div(_templateObject11 || (_templateObject11 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n height: 50%;\n width: 100%;\n gap: 32px;\n\n @media ", " {\n flex-direction: row;\n height: 60px;\n width: 30%;\n justify-content: flex-end;\n }\n"])), devices.mobileAndTablet);
5155
- var NavContainer = /*#__PURE__*/styled__default.div(_templateObject12 || (_templateObject12 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 50%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n flex-gap: 32px;\n width: fit-content;\n\n @media ", " {\n flex-gap: 0;\n height: auto;\n width: fit-content;\n margin-left: 20px;\n margin-right: 20px;\n }\n"])), devices.mobileAndTablet);
5226
+ var LogoContainer = /*#__PURE__*/styled__default.a(_templateObject8$2 || (_templateObject8$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n &&& .logoImg {\n height: 96px;\n width: 80px;\n }\n\n span > svg path,\n span > svg g path {\n fill: var(--color-primary-black);\n }\n\n @media ", " {\n display: none;\n }\n"])), devices.mobileAndTablet);
5227
+ var LogoContainerMobile = /*#__PURE__*/styled__default.div(_templateObject9$1 || (_templateObject9$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: none;\n\n @media ", " {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n\n span > svg path {\n fill: var(--color-primary-black);\n }\n }\n"])), devices.mobileAndTablet);
5228
+ var MenuContainer = /*#__PURE__*/styled__default.div(_templateObject10$1 || (_templateObject10$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n align-items: center;\n height: 140px;\n justify-content: space-evenly;\n width: 100%;\n\n @media ", " {\n flex-direction: row;\n justify-content: space-between;\n height: 60px;\n width 100%;\n }\n"])), devices.mobileAndTablet);
5229
+ var NavWrapper = /*#__PURE__*/styled__default.div(_templateObject11 || (_templateObject11 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n width: 100%;\n gap: 32px;\n\n @media ", " {\n flex-direction: row;\n height: 60px;\n justify-content: flex-end;\n }\n"])), devices.mobileAndTablet);
5230
+ var NavContainer = /*#__PURE__*/styled__default.div(_templateObject12 || (_templateObject12 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n flex-gap: 32px;\n width: fit-content;\n\n @media ", " {\n flex-gap: 0;\n height: auto;\n width: fit-content;\n margin-left: 20px;\n margin-right: 20px;\n }\n"])), devices.mobileAndTablet);
5156
5231
  var NavContainerGridItem = /*#__PURE__*/styled__default(GridItem)(_templateObject13 || (_templateObject13 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
5157
- var NavTopContainer = /*#__PURE__*/styled__default.div(_templateObject14 || (_templateObject14 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n height: 50%;\n\n @media ", " {\n display: none;\n }\n"])), devices.mobileAndTablet);
5232
+ var NavTopContainer = /*#__PURE__*/styled__default.div(_templateObject14 || (_templateObject14 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n\n @media ", " {\n display: none;\n }\n"])), devices.mobileAndTablet);
5158
5233
  var NavTopContainerMobile = /*#__PURE__*/styled__default.div(_templateObject15 || (_templateObject15 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: none;\n\n @media ", " {\n display: flex;\n width: fit-content;\n align-items: center;\n height: 10%;\n margin-left: 20px;\n padding-bottom: 36px;\n }\n"])), devices.mobileAndTablet);
5159
5234
 
5160
5235
  var _templateObject$y;
@@ -5176,7 +5251,7 @@ var BasketContainer = /*#__PURE__*/styled__default.div(_templateObject$z || (_te
5176
5251
  });
5177
5252
  var SvgContainer = /*#__PURE__*/styled__default.div(_templateObject2$p || (_templateObject2$p = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n\n svg {\n width: var(--navigation-large-gap);\n height: var(--navigation-large-gap);\n }\n"])));
5178
5253
  var NumContainer = /*#__PURE__*/styled__default.div(_templateObject3$f || (_templateObject3$f = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n width: 12px;\n height: 12px;\n position: absolute;\n top: 8px;\n margin-left: 6px;\n"])));
5179
- var BasketInfo = /*#__PURE__*/styled__default.div(_templateObject4$c || (_templateObject4$c = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n @media ", " {\n width: max-content;\n }\n"])), devices.mobileAndTablet);
5254
+ var BasketInfo = /*#__PURE__*/styled__default.div(_templateObject4$c || (_templateObject4$c = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n @media ", " {\n width: max-content;\n }\n"])), devices.mobileAndTablet);
5180
5255
  var BasketNum = /*#__PURE__*/styled__default.span(_templateObject5$9 || (_templateObject5$9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: var(--color-base-white);\n font-size: 10px;\n font-family: var(--font-family-sans);\n"])));
5181
5256
  var BasketText = /*#__PURE__*/styled__default.a(_templateObject6$6 || (_templateObject6$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--harmonic-font-size-navigation);\n font-family: var(--font-family-sans);\n font-weight: var(--font-weight-navigation);\n color: var(--color-primary-black);\n margin-left: 6px;\n text-decoration: none;\n"])));
5182
5257
 
@@ -5721,78 +5796,6 @@ var InputContainer = /*#__PURE__*/styled__default.div(_templateObject5$a || (_te
5721
5796
  var TextLinkWrapper$1 = /*#__PURE__*/styled__default(TextLink)(_templateObject6$7 || (_templateObject6$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: var(--color-primary-red);\n"])));
5722
5797
  var SearchArrowContainer = /*#__PURE__*/styled__default.a(_templateObject7$3 || (_templateObject7$3 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding-right: 8px;\n\n svg {\n width: var(--navigation-large-gap);\n height: var(--navigation-large-gap);\n }\n"])));
5723
5798
 
5724
- // WARNING: Do not use this on server side rendering, it may throw an error.
5725
- var isIOS = function isIOS() {
5726
- try {
5727
- console.warn('Do not use this on server side rendering, it may throw an error.');
5728
- if (typeof navigator === undefined) return false;
5729
- return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||
5730
- // iPad on iOS 13 detection
5731
- navigator.userAgent.includes('Mac') && 'ontouchend' in document;
5732
- } catch (e) {
5733
- console.warn('Error checking if device is iOS.', e);
5734
- return false;
5735
- }
5736
- };
5737
- // React hook version of isIOS (for server side rendering)
5738
- var useIOS = function useIOS() {
5739
- var _useState = React.useState(false),
5740
- IOS = _useState[0],
5741
- setIOS = _useState[1];
5742
- React.useEffect(function () {
5743
- if (typeof navigator === undefined) return;
5744
- setIOS(isIOS());
5745
- }, []);
5746
- return IOS;
5747
- };
5748
- // Checks device size based on window width
5749
- var isMobile = function isMobile() {
5750
- try {
5751
- console.warn('Do not use this on server side rendering, it may throw an error.');
5752
- if (typeof window === undefined) return false;
5753
- return window.innerWidth < breakpoints.sm;
5754
- } catch (e) {
5755
- console.warn('Error checking if device is mobile.', e);
5756
- return false;
5757
- }
5758
- };
5759
- // React hook version of isMobile (for server side rendering)
5760
- var useMobile = function useMobile() {
5761
- var _useState2 = React.useState(false),
5762
- mobile = _useState2[0],
5763
- setMobile = _useState2[1];
5764
- React.useEffect(function () {
5765
- if (typeof window === undefined) return;
5766
- setMobile(isMobile());
5767
- }, []);
5768
- return mobile;
5769
- };
5770
- var useViewport = function useViewport() {
5771
- var _useState3 = React.useState({
5772
- width: window.innerWidth,
5773
- isMobile: window.innerWidth < breakpoints.sm,
5774
- isTablet: window.innerWidth >= breakpoints.sm && window.innerWidth < breakpoints.md,
5775
- isDesktop: window.innerWidth >= breakpoints.md
5776
- }),
5777
- viewport = _useState3[0],
5778
- setViewport = _useState3[1];
5779
- React.useEffect(function () {
5780
- var handleResize = function handleResize() {
5781
- setViewport({
5782
- width: window.innerWidth,
5783
- isMobile: window.innerWidth < breakpoints.sm,
5784
- isTablet: window.innerWidth >= breakpoints.sm && window.innerWidth < breakpoints.md,
5785
- isDesktop: window.innerWidth >= breakpoints.md
5786
- });
5787
- };
5788
- window.addEventListener('resize', handleResize);
5789
- return function () {
5790
- return window.removeEventListener('resize', handleResize);
5791
- };
5792
- }, []);
5793
- return viewport;
5794
- };
5795
-
5796
5799
  var SearchBar = function SearchBar(_ref) {
5797
5800
  var onClick = _ref.onClick,
5798
5801
  onClose = _ref.onClose,
@@ -6047,13 +6050,16 @@ var PolicyLinksTextLinkWrapper = /*#__PURE__*/styled__default(TextLink)(_templat
6047
6050
 
6048
6051
  var PolicyLinks = function PolicyLinks(_ref) {
6049
6052
  var items = _ref.items;
6053
+ var _useViewport = useViewport(),
6054
+ isMobile = _useViewport.isMobile;
6050
6055
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, items.map(function (link, idx) {
6051
6056
  return /*#__PURE__*/React__default.createElement(PolicyLinksTextLinkWrapper, {
6052
6057
  key: link.href + "-" + idx,
6053
6058
  target: link.href,
6054
6059
  href: link.href,
6055
6060
  "data-roh": link.dataRoh,
6056
- "aria-label": link.title
6061
+ "aria-label": link.title,
6062
+ tabIndex: isMobile ? 4 : undefined
6057
6063
  }, link.title);
6058
6064
  }));
6059
6065
  };
@@ -6073,7 +6079,9 @@ var Footer = function Footer(_ref) {
6073
6079
  var _useViewport = useViewport(),
6074
6080
  isMobile = _useViewport.isMobile;
6075
6081
  return /*#__PURE__*/React__default.createElement(FooterSection, {
6076
- className: className
6082
+ className: className,
6083
+ "aria-label": "Footer",
6084
+ role: "contentinfo"
6077
6085
  }, /*#__PURE__*/React__default.createElement(FooterContainer, null, /*#__PURE__*/React__default.createElement(PolicyLinksSection, {
6078
6086
  "data-testid": "policy-links"
6079
6087
  }, /*#__PURE__*/React__default.createElement(PolicyLinks, {
@@ -6084,14 +6092,16 @@ var Footer = function Footer(_ref) {
6084
6092
  items: rawSocialMediaLinks
6085
6093
  }), /*#__PURE__*/React__default.createElement(TextLinkWrapper$2, {
6086
6094
  href: contact.href,
6087
- "aria-label": contact.title
6095
+ "aria-label": contact.title,
6096
+ tabIndex: isMobile ? 2 : undefined
6088
6097
  }, contact.title)), /*#__PURE__*/React__default.createElement(SectionWrapper, null, /*#__PURE__*/React__default.createElement(BodyCopyHarmonic, {
6089
6098
  size: "large",
6090
6099
  color: "white"
6091
6100
  }, newsletter.text), /*#__PURE__*/React__default.createElement(TextLinkWrapper$2, {
6092
6101
  href: newsletter.link.href,
6093
6102
  "data-roh": newsletter.link.dataRoh,
6094
- "aria-label": newsletter.link.title
6103
+ "aria-label": newsletter.link.title,
6104
+ tabIndex: isMobile ? 3 : undefined
6095
6105
  }, newsletter.link.title))), /*#__PURE__*/React__default.createElement(LogoAndDescriptionSection, null, /*#__PURE__*/React__default.createElement("div", {
6096
6106
  "data-testid": "arts-logo"
6097
6107
  }, /*#__PURE__*/React__default.createElement("a", Object.assign({
@@ -7316,6 +7326,8 @@ var GRID_VALUES = {
7316
7326
  desktop: {
7317
7327
  gapsNumber: 13,
7318
7328
  columnsNumber: 13,
7329
+ gapsNumberOffset: 15,
7330
+ columnsNumberOffset: 14,
7319
7331
  largeCard: {
7320
7332
  gapsPerSlide: 4,
7321
7333
  columnsPerSlide: 5
@@ -7343,16 +7355,20 @@ var calculateSlideGapsSpace = function calculateSlideGapsSpace(gapsPerSlide) {
7343
7355
  return "calc(" + GRID_COLUMN_GAP + " * " + gapsPerSlide + ")";
7344
7356
  };
7345
7357
  // Slide styles
7346
- var getCardSlideDesktopStyles = function getCardSlideDesktopStyles(type) {
7358
+ var getCardSlideDesktopStyles = function getCardSlideDesktopStyles(type, isActive) {
7347
7359
  var _GRID_VALUES$desktop = GRID_VALUES.desktop,
7348
7360
  gapsNumber = _GRID_VALUES$desktop.gapsNumber,
7349
- columnsNumber = _GRID_VALUES$desktop.columnsNumber;
7361
+ columnsNumber = _GRID_VALUES$desktop.columnsNumber,
7362
+ columnsNumberOffset = _GRID_VALUES$desktop.columnsNumberOffset,
7363
+ gapsNumberOffset = _GRID_VALUES$desktop.gapsNumberOffset;
7350
7364
  var _ref = type === exports.CarouselType.LargeCard ? GRID_VALUES.desktop.largeCard : GRID_VALUES.desktop.smallCard,
7351
7365
  gapsPerSlide = _ref.gapsPerSlide,
7352
7366
  columnsPerSlide = _ref.columnsPerSlide;
7353
- var gapsSpaceInMainGrid = calculateGapsSpaceInMainGrid(gapsNumber);
7367
+ var columns = isActive ? columnsNumberOffset : columnsNumber;
7368
+ var gaps = isActive ? gapsNumberOffset : gapsNumber;
7369
+ var gapsSpaceInMainGrid = calculateGapsSpaceInMainGrid(gaps);
7354
7370
  var slideGapsSpace = calculateSlideGapsSpace(gapsPerSlide);
7355
- return "\n width: calc( (" + columnsPerSlide + " * (100% - " + gapsSpaceInMainGrid + ") / " + columnsNumber + ") + " + slideGapsSpace + " );\n margin-right: " + GRID_COLUMN_GAP + ";\n ";
7371
+ return "\n width: calc( (" + columnsPerSlide + " * (100% - " + gapsSpaceInMainGrid + ") / " + columns + ") + " + slideGapsSpace + " );\n margin-right: " + GRID_COLUMN_GAP + ";\n ";
7356
7372
  };
7357
7373
  var getCardSlideMobileStyles = function getCardSlideMobileStyles() {
7358
7374
  var _GRID_VALUES$mobile = GRID_VALUES.mobile,
@@ -7376,8 +7392,9 @@ var ImageCarouselWrapper = /*#__PURE__*/styled__default.div(_templateObject$N ||
7376
7392
  return "&&& {\n .swipe-slide > figure {\n " + getImageSlideStyles(imagesHeightDevice) + "\n }\n }";
7377
7393
  });
7378
7394
  var CardsCarouselWrapper = /*#__PURE__*/styled__default.div(_templateObject2$A || (_templateObject2$A = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n\n @media ", " {\n && {\n .swipe-slide {\n ", "\n }\n }\n}}"])), function (_ref3) {
7379
- var type = _ref3.type;
7380
- return "\n & {\n .swipe-slide {\n " + getCardSlideDesktopStyles(type) + "\n }\n }\n ";
7395
+ var type = _ref3.type,
7396
+ isActive = _ref3.isActive;
7397
+ return "\n & {\n .swipe-slide {\n " + getCardSlideDesktopStyles(type, isActive) + "\n }\n }\n ";
7381
7398
  }, devices.mobile, /*#__PURE__*/getCardSlideMobileStyles());
7382
7399
  var TitleButtonsGrid = /*#__PURE__*/styled__default(Grid)(_templateObject3$o || (_templateObject3$o = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 28px;\n\n @media ", " {\n padding-bottom: 0;\n }\n\n @media ", " {\n margin-bottom: 20px;\n }\n"])), devices.mobile, devices.mobile);
7383
7400
  var CarouselInfoWrapper = /*#__PURE__*/styled__default.div(_templateObject4$j || (_templateObject4$j = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n user-select: text;\n"])));
@@ -7395,10 +7412,12 @@ var SwipeGridWrapper = /*#__PURE__*/styled__default(GridItem)(_templateObject8$5
7395
7412
  var _templateObject$O, _templateObject2$B;
7396
7413
  var SWIPE_SLIDE_CLASS_NAME = 'swipe-slide';
7397
7414
  var SwipeContainer = /*#__PURE__*/styled__default.div(_templateObject$O || (_templateObject$O = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n overflow: hidden;\n width: 100%;\n touch-action: pan-y;\n"])));
7398
- var SwipeTrack = /*#__PURE__*/styled__default.div(_templateObject2$B || (_templateObject2$B = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n transition: ", ";\n transform: translateX(", "px);\n\n .", " {\n flex-shrink: 0;\n }\n"])), function (props) {
7399
- return props.transitioning ? 'transform 0.3s ease-in-out' : 'none';
7400
- }, function (props) {
7401
- return props.translateX;
7415
+ var SwipeTrack = /*#__PURE__*/styled__default.div(_templateObject2$B || (_templateObject2$B = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n transition: ", ";\n transform: translateX(", ");\n\n .", " {\n flex-shrink: 0;\n }\n"])), function (_ref) {
7416
+ var transitioning = _ref.transitioning;
7417
+ return transitioning ? 'transform 0.3s ease' : 'none';
7418
+ }, function (_ref2) {
7419
+ var translateX = _ref2.translateX;
7420
+ return translateX + "px";
7402
7421
  }, SWIPE_SLIDE_CLASS_NAME);
7403
7422
 
7404
7423
  /**
@@ -7426,9 +7445,26 @@ var getVisibleIndexes = function getVisibleIndexes(currentIndex, slideWidths, co
7426
7445
  }
7427
7446
  return visible;
7428
7447
  };
7448
+ var getMovedSlides = function getMovedSlides(delta, slideWidths) {
7449
+ var absDelta = Math.abs(delta);
7450
+ var movedSlides = 0;
7451
+ var accumulated = 0;
7452
+ for (var i = 0; i < slideWidths.length; i++) {
7453
+ accumulated += slideWidths[i];
7454
+ // Allow partial slide (e.g. 50% of next slide) to count
7455
+ var partialThreshold = slideWidths[i] * 0.5;
7456
+ if (absDelta > accumulated - partialThreshold) {
7457
+ movedSlides++;
7458
+ } else {
7459
+ break;
7460
+ }
7461
+ }
7462
+ return movedSlides;
7463
+ };
7429
7464
 
7430
- var _excluded$h = ["children", "infinite", "onIndexChange", "slidesOffsetBefore"];
7465
+ var _excluded$h = ["children", "infinite", "onIndexChange", "slidesOffsetBefore", "onActiveChange"];
7431
7466
  var MAX_CLONES_NUMBER = 6;
7467
+ var CLICK_DRAG_THRESHOLD = 20;
7432
7468
  var getClonesCount = function getClonesCount(infinite, childrenLength) {
7433
7469
  if (!infinite) return 0;
7434
7470
  if (childrenLength > MAX_CLONES_NUMBER) return MAX_CLONES_NUMBER;
@@ -7448,13 +7484,29 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7448
7484
  onIndexChange = _ref.onIndexChange,
7449
7485
  _ref$slidesOffsetBefo = _ref.slidesOffsetBefore,
7450
7486
  slidesOffsetBefore = _ref$slidesOffsetBefo === void 0 ? 0 : _ref$slidesOffsetBefo,
7487
+ onActiveChange = _ref.onActiveChange,
7451
7488
  props = _objectWithoutPropertiesLoose(_ref, _excluded$h);
7452
7489
  var containerRef = React.useRef(null);
7453
7490
  var childRefs = React.useRef([]);
7454
7491
  var startX = React.useRef(0);
7455
7492
  var currentTranslate = React.useRef(0);
7456
7493
  var isDragging = React.useRef(false);
7494
+ var isMouseDown = React.useRef(false);
7495
+ var isActive = React.useRef(false);
7496
+ var isClickPrevented = React.useRef(false);
7457
7497
  var uniqueIdRef = React.useRef(generateDomElementId());
7498
+ var _useState = React.useState(null),
7499
+ dragTranslateX = _useState[0],
7500
+ setDragTranslateX = _useState[1];
7501
+ var _useState2 = React.useState(false),
7502
+ transitioning = _useState2[0],
7503
+ setTransitioning = _useState2[1];
7504
+ var _useState3 = React.useState([]),
7505
+ slideWidths = _useState3[0],
7506
+ setSlideWidths = _useState3[1];
7507
+ var _useState4 = React.useState(0),
7508
+ containerWidth = _useState4[0],
7509
+ setContainerWidth = _useState4[1];
7458
7510
  var _useMemo = React.useMemo(function () {
7459
7511
  var count = getClonesCount(infinite, children.length);
7460
7512
  var leftClones = infinite ? children.slice(-count) : [];
@@ -7467,65 +7519,74 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7467
7519
  }, [children, infinite]),
7468
7520
  slides = _useMemo.slides,
7469
7521
  clonesCount = _useMemo.clonesCount;
7470
- // Set the initial index to clonesCount (so the first real slide is shown)
7471
- var _useState = React.useState(infinite ? clonesCount : 0),
7472
- currentIndex = _useState[0],
7473
- setCurrentIndex = _useState[1];
7474
- var _useState2 = React.useState(false),
7475
- transitioning = _useState2[0],
7476
- setTransitioning = _useState2[1];
7477
- var _useState3 = React.useState([]),
7478
- slideWidths = _useState3[0],
7479
- setSlideWidths = _useState3[1];
7480
- var _useState4 = React.useState(0),
7481
- containerWidth = _useState4[0],
7482
- setContainerWidth = _useState4[1];
7522
+ var _useState5 = React.useState(infinite ? clonesCount : 0),
7523
+ currentIndex = _useState5[0],
7524
+ setCurrentIndex = _useState5[1];
7483
7525
  React.useEffect(function () {
7484
7526
  if (!onIndexChange) return;
7485
7527
  if (!infinite) {
7486
7528
  onIndexChange(currentIndex);
7487
- return;
7529
+ } else {
7530
+ var offset = currentIndex - clonesCount + children.length;
7531
+ var realIndex = offset % children.length;
7532
+ onIndexChange(realIndex);
7488
7533
  }
7489
- var offset = currentIndex - clonesCount + children.length;
7490
- var realIndex = offset % children.length;
7491
- onIndexChange(realIndex);
7492
- }, [currentIndex, onIndexChange, infinite, children.length]);
7493
- // Update dimensions
7534
+ }, [currentIndex, onIndexChange, infinite, children.length, clonesCount]);
7494
7535
  var updateDimensions = React.useCallback(function () {
7495
7536
  if (containerRef.current) setContainerWidth(containerRef.current.offsetWidth);
7496
7537
  if (childRefs.current.length) setSlideWidths(childRefs.current.map(getSlidedWidth));
7497
7538
  }, []);
7498
7539
  React.useEffect(function () {
7499
- var animationFrameRequestId = requestAnimationFrame(function () {
7500
- updateDimensions();
7501
- });
7540
+ var animationFrameRequestId = requestAnimationFrame(updateDimensions);
7502
7541
  return function () {
7503
- cancelAnimationFrame(animationFrameRequestId);
7542
+ return cancelAnimationFrame(animationFrameRequestId);
7504
7543
  };
7505
7544
  }, [children]);
7506
7545
  React.useEffect(function () {
7507
7546
  var observer = new ResizeObserver(updateDimensions);
7508
7547
  if (containerRef.current) observer.observe(containerRef.current);
7509
7548
  return function () {
7510
- observer.disconnect();
7549
+ return observer.disconnect();
7511
7550
  };
7512
7551
  }, [children]);
7513
- // Compute current translate X value by summing widths of all slides before currentIndex.
7552
+ var setIsActive = function setIsActive() {
7553
+ if (!isActive.current) {
7554
+ isActive.current = true;
7555
+ onActiveChange == null || onActiveChange(true);
7556
+ }
7557
+ };
7514
7558
  var getTranslateX = function getTranslateX() {
7515
- var slideOffset = slidesOffsetBefore - slideWidths.slice(0, currentIndex).reduce(function (acc, width) {
7559
+ var offset = slidesOffsetBefore - slideWidths.slice(0, currentIndex).reduce(function (acc, width) {
7516
7560
  return acc + width;
7517
7561
  }, 0);
7518
- return slideOffset + (slidesOffsetBefore || 0); // Apply offsetBefore
7562
+ return offset + (slidesOffsetBefore || 0);
7563
+ };
7564
+ var navigateOnSwipeEnd = function navigateOnSwipeEnd() {
7565
+ var delta = currentTranslate.current - getTranslateX();
7566
+ var direction = delta > 0 ? -1 : 1;
7567
+ var movedSlides = getMovedSlides(delta, slideWidths);
7568
+ if (Math.abs(delta) > 20) {
7569
+ movedSlides = Math.max(1, movedSlides);
7570
+ var targetIndex = currentIndex + direction * movedSlides;
7571
+ var finalIndex = infinite ? targetIndex : Math.max(0, Math.min(slides.length - 1, targetIndex));
7572
+ setTransitioning(true);
7573
+ setCurrentIndex(finalIndex);
7574
+ } else {
7575
+ setTransitioning(true);
7576
+ setCurrentIndex(function (prev) {
7577
+ return prev;
7578
+ });
7579
+ }
7580
+ setDragTranslateX(null);
7519
7581
  };
7520
7582
  var canMoveNext = function canMoveNext() {
7521
7583
  var totalVisibleWidth = slideWidths.slice(currentIndex).reduce(function (acc, width) {
7522
7584
  return acc + width;
7523
7585
  }, 0);
7524
- // In non-infinite mode, only move if there is more to show
7525
7586
  return infinite || totalVisibleWidth > containerWidth - (slidesOffsetBefore || 0);
7526
7587
  };
7527
7588
  var handleTransitionEnd = function handleTransitionEnd() {
7528
- setTransitioning(false); // Reset transitioning after animation ends
7589
+ setTransitioning(false);
7529
7590
  if (!infinite) return;
7530
7591
  if (currentIndex >= children.length + clonesCount) {
7531
7592
  setCurrentIndex(clonesCount);
@@ -7534,22 +7595,16 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7534
7595
  }
7535
7596
  };
7536
7597
  var goToPrev = function goToPrev() {
7537
- if (transitioning) return; // Prevent clicks during transition
7538
- if (currentIndex === 0 && !infinite) {
7539
- setTransitioning(false); // Reset immediately if no more slides
7540
- return;
7541
- }
7598
+ if (transitioning) return;
7599
+ setIsActive();
7542
7600
  setTransitioning(true);
7543
7601
  setCurrentIndex(function (prev) {
7544
7602
  return infinite ? prev - 1 : Math.max(0, prev - 1);
7545
7603
  });
7546
7604
  };
7547
7605
  var goToNext = function goToNext() {
7548
- if (transitioning || !canMoveNext()) return; // Prevent clicks during transition
7549
- if (currentIndex === children.length - 1 && !infinite) {
7550
- setTransitioning(false); // Reset immediately if no more slides
7551
- return;
7552
- }
7606
+ if (transitioning || !canMoveNext()) return;
7607
+ setIsActive();
7553
7608
  setTransitioning(true);
7554
7609
  setCurrentIndex(function (prev) {
7555
7610
  return infinite ? prev + 1 : Math.min(children.length - 1, prev + 1);
@@ -7562,26 +7617,70 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7562
7617
  };
7563
7618
  });
7564
7619
  var handleTouchStart = function handleTouchStart(e) {
7620
+ setIsActive();
7565
7621
  startX.current = e.touches[0].clientX;
7566
7622
  isDragging.current = true;
7623
+ isClickPrevented.current = false;
7567
7624
  setTransitioning(false);
7568
7625
  };
7569
7626
  var handleTouchMove = function handleTouchMove(e) {
7570
7627
  if (!isDragging.current) return;
7571
7628
  var deltaX = e.touches[0].clientX - startX.current;
7572
- currentTranslate.current = getTranslateX() + deltaX;
7629
+ if (Math.abs(deltaX) > CLICK_DRAG_THRESHOLD) {
7630
+ isClickPrevented.current = true;
7631
+ }
7632
+ var visualOffset = getTranslateX() + deltaX;
7633
+ currentTranslate.current = visualOffset;
7634
+ setDragTranslateX(visualOffset);
7573
7635
  };
7574
7636
  var handleTouchEnd = function handleTouchEnd() {
7575
7637
  isDragging.current = false;
7576
- setTransitioning(true);
7577
- if (currentTranslate.current > getTranslateX()) {
7578
- goToPrev();
7579
- } else if (currentTranslate.current < getTranslateX()) {
7580
- goToNext();
7638
+ navigateOnSwipeEnd();
7639
+ };
7640
+ var handleMouseMove = function handleMouseMove(e) {
7641
+ if (!isDragging.current || !isMouseDown.current || transitioning) return;
7642
+ var deltaX = e.clientX - startX.current;
7643
+ if (Math.abs(deltaX) > CLICK_DRAG_THRESHOLD) {
7644
+ isClickPrevented.current = true;
7645
+ }
7646
+ var visualOffset = getTranslateX() + deltaX;
7647
+ currentTranslate.current = visualOffset;
7648
+ setDragTranslateX(visualOffset);
7649
+ };
7650
+ var _handleMouseUp = function handleMouseUp() {
7651
+ if (!isDragging.current || !isMouseDown.current) return;
7652
+ isDragging.current = false;
7653
+ isMouseDown.current = false;
7654
+ window.removeEventListener('mousemove', handleMouseMove);
7655
+ window.removeEventListener('mouseup', _handleMouseUp);
7656
+ if (!isClickPrevented.current) {
7657
+ setDragTranslateX(null);
7658
+ return;
7581
7659
  }
7660
+ navigateOnSwipeEnd();
7661
+ };
7662
+ var handleMouseDown = function handleMouseDown(e) {
7663
+ if (transitioning || e.button !== 0) return;
7664
+ e.preventDefault();
7665
+ setIsActive();
7666
+ startX.current = e.clientX;
7667
+ isDragging.current = true;
7668
+ isMouseDown.current = true;
7669
+ isClickPrevented.current = false;
7670
+ setTransitioning(false);
7671
+ window.addEventListener('mousemove', handleMouseMove);
7672
+ window.addEventListener('mouseup', _handleMouseUp);
7582
7673
  };
7583
7674
  var onSlideFocus = function onSlideFocus(isVisible, index) {
7584
- if (!isVisible) setCurrentIndex(index);
7675
+ if (!isVisible) {
7676
+ setCurrentIndex(index);
7677
+ }
7678
+ };
7679
+ var onClickCapture = function onClickCapture(e) {
7680
+ if (isClickPrevented.current) {
7681
+ e.preventDefault();
7682
+ e.stopPropagation();
7683
+ }
7585
7684
  };
7586
7685
  var visibleIndexes = getVisibleIndexes(currentIndex, slideWidths, containerWidth, slides.length);
7587
7686
  return /*#__PURE__*/React__default.createElement(SwipeContainer, Object.assign({
@@ -7589,11 +7688,12 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7589
7688
  onTouchStart: handleTouchStart,
7590
7689
  onTouchMove: handleTouchMove,
7591
7690
  onTouchEnd: handleTouchEnd,
7691
+ onMouseDown: handleMouseDown,
7592
7692
  className: "swipe"
7593
7693
  }, props), /*#__PURE__*/React__default.createElement(SwipeTrack, {
7594
7694
  className: "swipe-track-wrapper",
7595
- translateX: getTranslateX(),
7596
- transitioning: transitioning,
7695
+ translateX: dragTranslateX !== null ? dragTranslateX : getTranslateX(),
7696
+ transitioning: transitioning && dragTranslateX === null,
7597
7697
  onTransitionEnd: handleTransitionEnd
7598
7698
  }, slides.map(function (child, index) {
7599
7699
  var isVisible = visibleIndexes.includes(index);
@@ -7606,7 +7706,8 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7606
7706
  },
7607
7707
  onFocus: function onFocus() {
7608
7708
  return onSlideFocus(isVisible, index);
7609
- }
7709
+ },
7710
+ onClickCapture: onClickCapture
7610
7711
  });
7611
7712
  })));
7612
7713
  });
@@ -7660,19 +7761,23 @@ var Carousel = function Carousel(_ref) {
7660
7761
  }, [useOffset, active]);
7661
7762
  var onNext = function onNext() {
7662
7763
  var _swipeRef$current;
7663
- if (useOffset && !active) setActive(true);
7664
7764
  (_swipeRef$current = swipeRef.current) == null || _swipeRef$current.nextSlide();
7665
7765
  };
7666
7766
  var onPrev = function onPrev() {
7667
7767
  var _swipeRef$current2;
7668
- if (useOffset && !active) setActive(true);
7669
7768
  (_swipeRef$current2 = swipeRef.current) == null || _swipeRef$current2.prevSlide();
7670
7769
  };
7770
+ var onActiveChangeHandler = function onActiveChangeHandler(value) {
7771
+ if (useOffset && !active) {
7772
+ setActive(value);
7773
+ }
7774
+ };
7671
7775
  var carouselTitleId = "carousel-title-" + title;
7672
7776
  var Wrapper = type === exports.CarouselType.Image ? ImageCarouselWrapper : CardsCarouselWrapper;
7673
7777
  return /*#__PURE__*/React__default.createElement(Wrapper, {
7674
7778
  className: className,
7675
7779
  type: type,
7780
+ isActive: active,
7676
7781
  imagesHeightDevice: imagesHeightDevice,
7677
7782
  imagesHeightDesktop: imagesHeightDesktop,
7678
7783
  role: "region",
@@ -7711,6 +7816,9 @@ var Carousel = function Carousel(_ref) {
7711
7816
  columnStartDevice: 2,
7712
7817
  columnSpanDevice: 13
7713
7818
  }, /*#__PURE__*/React__default.createElement(Swipe, {
7819
+ onActiveChange: function onActiveChange(value) {
7820
+ return onActiveChangeHandler(value);
7821
+ },
7714
7822
  "data-testid": "carousel-swipe",
7715
7823
  ref: swipeRef,
7716
7824
  infinite: infinite,
@@ -8047,7 +8155,7 @@ var SvgContainer$2 = /*#__PURE__*/styled__default.div(_templateObject2$E || (_te
8047
8155
  var isClickable = _ref2.isClickable;
8048
8156
  return isClickable && "\n :hover:not(:active) {\n && svg path {\n fill: var(--announcement-banner-hover-color);\n }\n }\n :active {\n && svg path {\n fill: var(--announcement-banner-pressed-color);\n }\n }\n ";
8049
8157
  });
8050
- var ContentContainer$1 = /*#__PURE__*/styled__default.div(_templateObject3$r || (_templateObject3$r = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n overflow: auto;\n transition: max-height 0.2s ease;\n font-size: var(--font-size-body-1);\n font-family: var(--font-family-sans);\n font-feature-settings: var(--font-feature-settings-body);\n font-weight: var(--font-weight-body-1);\n letter-spacing: var(--letter-spacing-body-1);\n line-height: var(--line-height-body-1);\n text-transform: var(--text-transform-body);\n color: var(--announcement-banner-color);\n a {\n color: var(--announcement-banner-color);\n text-decoration: underline;\n }\n"])));
8158
+ var ContentContainer$1 = /*#__PURE__*/styled__default.div(_templateObject3$r || (_templateObject3$r = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n overflow: auto;\n transition: max-height 0.2s ease;\n font-size: var(--font-size-body-1);\n font-family: var(--font-family-sans);\n font-feature-settings: var(--font-feature-settings-body);\n font-weight: var(--font-weight-body-1);\n letter-spacing: var(--letter-spacing-body-1);\n line-height: var(--line-height-body-1);\n text-transform: var(--text-transform-body);\n color: var(--announcement-banner-color);\n a {\n color: var(--announcement-banner-color);\n text-decoration: underline;\n }\n\n * {\n margin-block-start: 0;\n margin-block-end: 0;\n margin-inline-start: 0;\n margin-inline-end: 0;\n }\n"])));
8051
8159
  var OverlineWrapper = /*#__PURE__*/styled__default(HarmonicOverline)(_templateObject4$m || (_templateObject4$m = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding-bottom: 4px;\n && {\n color: var(--announcement-banner-color);\n }\n"])));
8052
8160
  var BannerContentWrapper = /*#__PURE__*/styled__default(GridItem)(_templateObject5$h || (_templateObject5$h = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n && {\n grid-column: 3 / span 10;\n }\n\n @media ", ", ", " {\n && {\n grid-column: 3 / span 12;\n }\n }\n\n @media ", " {\n margin-left: ", ";\n margin-right: ", ";\n }\n"])), devices.desktop, devices.largeDesktop, devices.mobile, function (_ref3) {
8053
8161
  var variant = _ref3.variant;