@royaloperahouse/harmonic 0.7.1-f → 0.7.1-h

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,3 +1,8 @@
1
+ ## [TBD]
2
+ - Upsell Card, Upsell Cards, Upsell section:
3
+ - Add secondary CTA
4
+ - Update device styling
5
+
1
6
  ## [0.2.3]
2
7
  - Restyle PromoWithTitle component
3
8
 
@@ -3,7 +3,7 @@ import { IGenericTypographyProps, IHarmonicHeaderProps } from '../../types/typog
3
3
  export declare const DisplayHeader: ({ children, size, em, color, serif, className }: IGenericTypographyProps) => React.JSX.Element;
4
4
  export declare const HarmonicHeader: ({ children, size, em, color, serif, hierarchy: Tag, className, }: IHarmonicHeaderProps) => React.JSX.Element;
5
5
  export declare const HarmonicSubtitle: ({ children, size, color, className }: IGenericTypographyProps) => React.JSX.Element;
6
- export declare const BodyCopyHarmonic: ({ children, size, color, className, ...props }: IGenericTypographyProps) => React.JSX.Element;
6
+ export declare const BodyCopyHarmonic: ({ children, size, color, className, bold, ...props }: IGenericTypographyProps) => React.JSX.Element;
7
7
  export declare const HarmonicOverline: ({ children, size, color, className, ...props }: IGenericTypographyProps) => React.JSX.Element;
8
8
  export declare const ButtonText: ({ children, color, className }: IGenericTypographyProps) => React.JSX.Element;
9
9
  export declare const Caption: ({ children, color, className }: IGenericTypographyProps) => React.JSX.Element;
@@ -8,7 +8,7 @@ export declare const COLORS: {
8
8
  readonly hover: "var(--button-secondary-hover-color)";
9
9
  readonly pressed: "var(--button-secondary-pressed-color)";
10
10
  };
11
- export declare const getTextColor: ({ disabled, textColor }: SecondaryButtonProps) => string;
12
- export declare const getBorderColor: ({ disabled, borderColor }: SecondaryButtonProps) => string;
13
- export declare const getHoveredColor: ({ disabled, hoveredColor }: SecondaryButtonProps) => string;
14
- export declare const getPressedColor: ({ disabled, pressedColor }: SecondaryButtonProps) => string;
11
+ export declare const getTextColor: ({ disabled, textColor, theme }: SecondaryButtonProps) => string;
12
+ export declare const getBorderColor: ({ disabled, borderColor, theme }: SecondaryButtonProps) => string;
13
+ export declare const getHoveredColor: ({ disabled, hoveredColor, theme }: SecondaryButtonProps) => string;
14
+ export declare const getPressedColor: ({ disabled, pressedColor, theme }: SecondaryButtonProps) => string;
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { ISearchBarProps } from '../../../types/navigation';
3
- declare const SearchBar: ({ onClick, onClose, className, inputRef }: ISearchBarProps) => React.JSX.Element;
3
+ declare const SearchBar: ({ onClick, onClose, className, inputRef, trapFocus }: ISearchBarProps) => React.JSX.Element;
4
4
  export default SearchBar;
@@ -7,7 +7,9 @@ declare type WithColor = {
7
7
  export declare const Wrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
8
8
  export declare const PromoLabelWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
9
9
  export declare const PromoLabel: import("styled-components").StyledComponent<"div", any, WithColor, never>;
10
- export declare const ButtonContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
10
+ export declare const ButtonContainer: import("styled-components").StyledComponent<"div", any, {
11
+ stackCtasEarly: boolean;
12
+ }, never>;
11
13
  export declare const TitleContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
12
14
  export declare const OfferTextWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
13
15
  export declare const PriceRow: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -12,7 +12,6 @@ var moment = _interopDefault(require('moment'));
12
12
  var Modal = _interopDefault(require('react-modal'));
13
13
  var ScrollLock = _interopDefault(require('react-scrolllock'));
14
14
  var server = require('react-dom/server');
15
- var reactRouterDom = require('react-router-dom');
16
15
  var Select$1 = require('react-select');
17
16
  var Select$1__default = _interopDefault(Select$1);
18
17
  var Select$2 = _interopDefault(require('react-select/async'));
@@ -367,7 +366,7 @@ var createClassNames = function createClassNames(baseClass, options, styles) {
367
366
 
368
367
  var styles = {"display":"typography-module_display__ZHsz9","header":"typography-module_header__FVsLI","subtitle":"typography-module_subtitle__x3sSn","bodycopy":"typography-module_bodycopy__-BY2U","overline":"typography-module_overline__y1yCC","buttontext":"typography-module_buttontext__Gp0W-","captiontext":"typography-module_captiontext__zyA--","navigationtext":"typography-module_navigationtext__Qj6Zw","display--large":"typography-module_display--large__RwPQD","display--small":"typography-module_display--small__XWUSJ","header--large":"typography-module_header--large__2vP3p","header--medium":"typography-module_header--medium__OgzlB","header--small":"typography-module_header--small__zLuFf","subtitle--large":"typography-module_subtitle--large__1Ep9J","subtitle--small":"typography-module_subtitle--small__Vt9bZ","bodycopy--large":"typography-module_bodycopy--large__BNzf2","bodycopy--medium":"typography-module_bodycopy--medium__cwJEu","bodycopy--small":"typography-module_bodycopy--small__fTLSM","overline--large":"typography-module_overline--large__79WUM","overline--small":"typography-module_overline--small__MGEG6","display--primary":"typography-module_display--primary__9sTwU","header--primary":"typography-module_header--primary__KF0PJ","subtitle--primary":"typography-module_subtitle--primary__yL-hS","bodycopy--primary":"typography-module_bodycopy--primary__5Uo2D","overline--primary":"typography-module_overline--primary__a2NSa","buttontext--primary":"typography-module_buttontext--primary__HnmE3","captiontext--primary":"typography-module_captiontext--primary__mmafI","navigationtext--primary":"typography-module_navigationtext--primary__vIsUl","display--black":"typography-module_display--black__8hmsx","header--black":"typography-module_header--black__M3I14","subtitle--black":"typography-module_subtitle--black__IQRSo","bodycopy--black":"typography-module_bodycopy--black__J8BNP","overline--black":"typography-module_overline--black__RUDoj","buttontext--black":"typography-module_buttontext--black__irjmz","captiontext--black":"typography-module_captiontext--black__7axhP","navigationtext--black":"typography-module_navigationtext--black__wDz-G","display--white":"typography-module_display--white__3QA6W","header--white":"typography-module_header--white__mm-ex","subtitle--white":"typography-module_subtitle--white__VzQ3K","bodycopy--white":"typography-module_bodycopy--white__NJ8J8","overline--white":"typography-module_overline--white__cV5QV","buttontext--white":"typography-module_buttontext--white__rrr8U","captiontext--white":"typography-module_captiontext--white__OMFwW","navigationtext--white":"typography-module_navigationtext--white__5YDdY","display--red":"typography-module_display--red__khdLJ","header--red":"typography-module_header--red__hxuj9","subtitle--red":"typography-module_subtitle--red__gSK7d","bodycopy--red":"typography-module_bodycopy--red__P5Mau","overline--red":"typography-module_overline--red__OW5dE","buttontext--red":"typography-module_buttontext--red__mlRi2","captiontext--red":"typography-module_captiontext--red__jMQIK","navigationtext--red":"typography-module_navigationtext--red__-QADV","display--grey":"typography-module_display--grey__RsgTf","header--grey":"typography-module_header--grey__rC0vN","subtitle--grey":"typography-module_subtitle--grey__1nkEx","bodycopy--grey":"typography-module_bodycopy--grey__SNnaU","overline--grey":"typography-module_overline--grey__lGOsK","buttontext--grey":"typography-module_buttontext--grey__1Y4oX","captiontext--grey":"typography-module_captiontext--grey__V0MLc","navigationtext--grey":"typography-module_navigationtext--grey__xi3sz","display--inherit":"typography-module_display--inherit__ZNOHM","header--inherit":"typography-module_header--inherit__qmHQE","subtitle--inherit":"typography-module_subtitle--inherit__mly-X","bodycopy--inherit":"typography-module_bodycopy--inherit__CoC-f","overline--inherit":"typography-module_overline--inherit__Cq4ni","buttontext--inherit":"typography-module_buttontext--inherit__vguWx","captiontext--inherit":"typography-module_captiontext--inherit__ya6gm","navigationtext--inherit":"typography-module_navigationtext--inherit__cJLWf","display--serif":"typography-module_display--serif__C0-Ve","header--serif":"typography-module_header--serif__uTGCc","display--em":"typography-module_display--em__h2bPV","header--em":"typography-module_header--em__UFQIA","display--bold":"typography-module_display--bold__PG-8g","header--bold":"typography-module_header--bold__InvJk","subtitle--bold":"typography-module_subtitle--bold__Subov","bodycopy--bold":"typography-module_bodycopy--bold__nZX3C","overline--bold":"typography-module_overline--bold__3mUXy","buttontext--bold":"typography-module_buttontext--bold__rBKIJ","captiontext--bold":"typography-module_captiontext--bold__ebTyV","navigationtext--bold":"typography-module_navigationtext--bold__SRlV2"};
369
368
 
370
- var _excluded = ["children", "size", "color", "className"],
369
+ var _excluded = ["children", "size", "color", "className", "bold"],
371
370
  _excluded2 = ["children", "size", "color", "className"];
372
371
  /* ~~~ Headers - size and hierarchy set separately ~~~ */
373
372
  var HarmonicHeader = function HarmonicHeader(_ref2) {
@@ -414,10 +413,12 @@ var BodyCopyHarmonic = function BodyCopyHarmonic(_ref4) {
414
413
  _ref4$color = _ref4.color,
415
414
  color = _ref4$color === void 0 ? 'inherit' : _ref4$color,
416
415
  className = _ref4.className,
416
+ bold = _ref4.bold,
417
417
  props = _objectWithoutPropertiesLoose(_ref4, _excluded);
418
418
  var classNames = createClassNames('bodycopy', {
419
419
  size: size,
420
420
  color: color,
421
+ bold: bold,
421
422
  className: className
422
423
  }, styles);
423
424
  return /*#__PURE__*/React__default.createElement("p", Object.assign({
@@ -2828,48 +2829,70 @@ var COLORS$1 = {
2828
2829
  hover: 'var(--button-secondary-hover-color)',
2829
2830
  pressed: 'var(--button-secondary-pressed-color)'
2830
2831
  };
2832
+ var isObjectWithKey = function isObjectWithKey(object, key) {
2833
+ return typeof object === 'object' && object !== null && key in object;
2834
+ };
2835
+ var hasSecondaryButtonColor = function hasSecondaryButtonColor(theme) {
2836
+ return isObjectWithKey(theme, 'colors') && isObjectWithKey(theme.colors, 'secondaryButton') && typeof theme.colors.secondaryButton === 'string';
2837
+ };
2831
2838
  var getTextColor$1 = function getTextColor(_ref) {
2832
2839
  var disabled = _ref.disabled,
2833
- textColor = _ref.textColor;
2840
+ textColor = _ref.textColor,
2841
+ theme = _ref.theme;
2834
2842
  if (disabled) {
2835
2843
  return COLORS$1.darkGrey;
2836
2844
  }
2837
2845
  if (textColor) {
2838
2846
  return "var(--color-" + textColor + ")";
2839
2847
  }
2848
+ if (hasSecondaryButtonColor(theme)) {
2849
+ return theme.colors.secondaryButton;
2850
+ }
2840
2851
  return COLORS$1["default"];
2841
2852
  };
2842
2853
  var getBorderColor = function getBorderColor(_ref2) {
2843
2854
  var disabled = _ref2.disabled,
2844
- borderColor = _ref2.borderColor;
2855
+ borderColor = _ref2.borderColor,
2856
+ theme = _ref2.theme;
2845
2857
  if (disabled) {
2846
2858
  return COLORS$1.disabled;
2847
2859
  }
2848
2860
  if (borderColor) {
2849
2861
  return "var(--color-" + borderColor + ")";
2850
2862
  }
2863
+ if (hasSecondaryButtonColor(theme)) {
2864
+ return theme.colors.secondaryButton;
2865
+ }
2851
2866
  return COLORS$1.border;
2852
2867
  };
2853
2868
  var getHoveredColor$1 = function getHoveredColor(_ref3) {
2854
2869
  var disabled = _ref3.disabled,
2855
- hoveredColor = _ref3.hoveredColor;
2870
+ hoveredColor = _ref3.hoveredColor,
2871
+ theme = _ref3.theme;
2856
2872
  if (disabled) {
2857
2873
  return COLORS$1.disabled;
2858
2874
  }
2859
2875
  if (hoveredColor) {
2860
2876
  return "var(--color-" + hoveredColor + ")";
2861
2877
  }
2878
+ if (hasSecondaryButtonColor(theme)) {
2879
+ return theme.colors.secondaryButton;
2880
+ }
2862
2881
  return COLORS$1.hover;
2863
2882
  };
2864
2883
  var getPressedColor$1 = function getPressedColor(_ref4) {
2865
2884
  var disabled = _ref4.disabled,
2866
- pressedColor = _ref4.pressedColor;
2885
+ pressedColor = _ref4.pressedColor,
2886
+ theme = _ref4.theme;
2867
2887
  if (disabled) {
2868
2888
  return COLORS$1.disabled;
2869
2889
  }
2870
2890
  if (pressedColor) {
2871
2891
  return "var(--color-" + pressedColor + ")";
2872
2892
  }
2893
+ if (hasSecondaryButtonColor(theme)) {
2894
+ return theme.colors.secondaryButton;
2895
+ }
2873
2896
  return COLORS$1.pressed;
2874
2897
  };
2875
2898
 
@@ -5764,8 +5787,12 @@ var InputContainer = /*#__PURE__*/styled__default.div(_templateObject5$a || (_te
5764
5787
  var TextLinkWrapper$1 = /*#__PURE__*/styled__default(TextLink)(_templateObject6$7 || (_templateObject6$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: var(--color-primary-red);\n"])));
5765
5788
  var SearchArrowContainer = /*#__PURE__*/styled__default.a(_templateObject7$4 || (_templateObject7$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding-right: 8px;\n\n svg {\n width: var(--navigation-large-gap);\n height: var(--navigation-large-gap);\n }\n"])));
5766
5789
 
5767
- function useFocusTrap(containerRef, onEscape) {
5790
+ function useFocusTrap(containerRef, onEscape, enabled) {
5791
+ if (enabled === void 0) {
5792
+ enabled = true;
5793
+ }
5768
5794
  React.useEffect(function () {
5795
+ if (!enabled) return undefined;
5769
5796
  var container = containerRef.current;
5770
5797
  if (!container) return undefined;
5771
5798
  var focusableSelectors = 'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])';
@@ -5798,7 +5825,9 @@ var SearchBar = function SearchBar(_ref) {
5798
5825
  var onClick = _ref.onClick,
5799
5826
  onClose = _ref.onClose,
5800
5827
  className = _ref.className,
5801
- inputRef = _ref.inputRef;
5828
+ inputRef = _ref.inputRef,
5829
+ _ref$trapFocus = _ref.trapFocus,
5830
+ trapFocus = _ref$trapFocus === void 0 ? true : _ref$trapFocus;
5802
5831
  var _useState = React.useState(false),
5803
5832
  showSearchLink = _useState[0],
5804
5833
  setShowSearchLink = _useState[1];
@@ -5808,7 +5837,7 @@ var SearchBar = function SearchBar(_ref) {
5808
5837
  var internalRef = React.useRef(null);
5809
5838
  var finalInputRef = inputRef != null ? inputRef : internalRef;
5810
5839
  var containerRef = React.useRef(null);
5811
- useFocusTrap(containerRef, onClose);
5840
+ useFocusTrap(containerRef, onClose, trapFocus);
5812
5841
  var onSearchHandler = function onSearchHandler(value) {
5813
5842
  onClick(value);
5814
5843
  setSearchValue('');
@@ -5888,7 +5917,7 @@ var SearchBar = function SearchBar(_ref) {
5888
5917
  onClick: onCloseHandler,
5889
5918
  onKeyDown: onKeyboardCloseHandler,
5890
5919
  "data-testid": "close-icon",
5891
- "aria-label": "Close search bar"
5920
+ "aria-label": "Clear the search bar"
5892
5921
  }, /*#__PURE__*/React__default.createElement(Icon, {
5893
5922
  iconName: "Close"
5894
5923
  })));
@@ -6932,7 +6961,7 @@ var core = /*#__PURE__*/_extends({}, common, {
6932
6961
  colors: /*#__PURE__*/_extends({}, commonColors, colors, {
6933
6962
  primary: colors.core,
6934
6963
  primaryButton: colors.core,
6935
- secondaryButton: commonColors.white,
6964
+ secondaryButton: colors.core,
6936
6965
  tertiaryButton: 'transparent',
6937
6966
  auxiliaryButton: 'transparent',
6938
6967
  primaryButtonReverseBg: colors.cinema,
@@ -6945,7 +6974,7 @@ var stream = /*#__PURE__*/_extends({}, common, {
6945
6974
  primaryButton: colors.stream,
6946
6975
  primaryButtonReverseBg: colors.cinema,
6947
6976
  primaryButtonReverse: commonColors.white,
6948
- secondaryButton: commonColors.white,
6977
+ secondaryButton: colors.stream,
6949
6978
  tertiaryButton: 'transparent',
6950
6979
  auxiliaryButton: 'transparent'
6951
6980
  })
@@ -6956,7 +6985,7 @@ var cinema = /*#__PURE__*/_extends({}, common, {
6956
6985
  primaryButton: commonColors.white,
6957
6986
  primaryButtonReverseBg: commonColors.white,
6958
6987
  primaryButtonReverse: colors.cinema,
6959
- secondaryButton: commonColors.white,
6988
+ secondaryButton: colors.cinema,
6960
6989
  tertiaryButton: 'transparent',
6961
6990
  auxiliaryButton: 'transparent'
6962
6991
  })
@@ -6967,7 +6996,7 @@ var schools = /*#__PURE__*/_extends({}, common, {
6967
6996
  primaryButton: colors.core,
6968
6997
  primaryButtonReverseBg: colors.cinema,
6969
6998
  primaryButtonReverse: commonColors.white,
6970
- secondaryButton: commonColors.white,
6999
+ secondaryButton: colors.core,
6971
7000
  tertiaryButton: 'transparent',
6972
7001
  auxiliaryButton: 'transparent'
6973
7002
  }),
@@ -7055,17 +7084,23 @@ var TextOnly = function TextOnly(_ref) {
7055
7084
  })(exports.ButtonType || (exports.ButtonType = {}));
7056
7085
 
7057
7086
  var _templateObject$J, _templateObject2$x, _templateObject3$n, _templateObject4$i, _templateObject5$d, _templateObject6$b, _templateObject7$7, _templateObject8$4;
7058
- var Wrapper$2 = /*#__PURE__*/styled__default.div(_templateObject$J || (_templateObject$J = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: var(--base-color-light-grey);\n padding: 40px;\n\n display: block;\n position: relative;\n\n @media ", " {\n margin-top: 0;\n padding: 40px 20px;\n }\n"])), devices.tablet);
7087
+ var Wrapper$2 = /*#__PURE__*/styled__default.div(_templateObject$J || (_templateObject$J = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background-color: var(--base-color-lightgrey);\n padding: 40px;\n\n display: block;\n position: relative;\n\n @media ", " {\n margin-top: 0;\n padding: 40px 20px;\n }\n"])), devices.tablet);
7059
7088
  var PromoLabelWrapper = /*#__PURE__*/styled__default.div(_templateObject2$x || (_templateObject2$x = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-self: flex-end;\n height: 15px;\n"])));
7060
7089
  var PromoLabel = /*#__PURE__*/styled__default.div(_templateObject3$n || (_templateObject3$n = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background: ", ";\n color: ", ";\n padding: 6px 8px;\n width: fit-content;\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n right: 20px;\n top: 0;\n width: auto;\n margin: auto;\n font-family: var(--font-family-header);\n font-feature-settings:\n 'tnum' on,\n 'lnum' on,\n 'liga' off,\n 'calt' off;\n font-size: var(--font-size-overline-2);\n line-height: 12px;\n text-align: center;\n letter-spacing: 1px;\n text-transform: uppercase;\n"])), function (_ref) {
7061
7090
  var theme = _ref.theme;
7062
7091
  return theme.colors.primary;
7063
7092
  }, exports.Colors.White);
7064
- var ButtonContainer = /*#__PURE__*/styled__default.div(_templateObject4$i || (_templateObject4$i = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-top: 2em;\n width: fit-content;\n"])));
7093
+ var ButtonContainer = /*#__PURE__*/styled__default.div(_templateObject4$i || (_templateObject4$i = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-top: 2em;\n width: fit-content;\n display: flex;\n flex-direction: row;\n gap: 20px;\n\n @media ", " {\n width: 100%;\n flex-direction: column;\n gap: 16px;\n }\n\n ", "\n"])), function (_ref2) {
7094
+ var stackCtasEarly = _ref2.stackCtasEarly;
7095
+ return stackCtasEarly ? devices.smallDesktop + ", " + devices.mobileAndTablet : devices.mobile;
7096
+ }, function (_ref3) {
7097
+ var stackCtasEarly = _ref3.stackCtasEarly;
7098
+ return stackCtasEarly && "\n @media " + devices.smallDesktop + ", " + devices.mobileAndTablet + " {\n * {\n width: 100%;\n }\n }\n ";
7099
+ });
7065
7100
  var TitleContainer$2 = /*#__PURE__*/styled__default.div(_templateObject5$d || (_templateObject5$d = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n & > * {\n margin-top: 0;\n margin-bottom: 0.5em;\n }\n"])));
7066
7101
  var OfferTextWrapper = /*#__PURE__*/styled__default.div(_templateObject6$b || (_templateObject6$b = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n & > * {\n margin-bottom: 0.5em;\n }\n margin-bottom: 1em;\n"])));
7067
7102
  var PriceRow = /*#__PURE__*/styled__default.div(_templateObject7$7 || (_templateObject7$7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-wrap: wrap;\n gap: 6px 12px;\n padding: 5px 0 8px 0;\n"])));
7068
- var LineThrough = /*#__PURE__*/styled__default.div(_templateObject8$4 || (_templateObject8$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n text-decoration-line: line-through;\n color: var(--base-color-dark-grey);\n"])));
7103
+ var LineThrough = /*#__PURE__*/styled__default.div(_templateObject8$4 || (_templateObject8$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n text-decoration-line: line-through;\n color: var(--base-color-darkgrey);\n"])));
7069
7104
 
7070
7105
  // Set max. character length
7071
7106
  var setMaxCharLength = function setMaxCharLength(value, maxLength) {
@@ -7108,8 +7143,13 @@ var UpsellCard = function UpsellCard(_ref) {
7108
7143
  flag = _ref.flag,
7109
7144
  offerTexts = _ref.offerTexts,
7110
7145
  link = _ref.link,
7146
+ secondaryLink = _ref.secondaryLink,
7147
+ _ref$stackCtasEarly = _ref.stackCtasEarly,
7148
+ stackCtasEarly = _ref$stackCtasEarly === void 0 ? false : _ref$stackCtasEarly,
7111
7149
  _ref$theme = _ref.theme,
7112
- theme = _ref$theme === void 0 ? exports.ThemeType.Core : _ref$theme;
7150
+ theme = _ref$theme === void 0 ? exports.ThemeType.Core : _ref$theme,
7151
+ _ref$secondaryTheme = _ref.secondaryTheme,
7152
+ secondaryTheme = _ref$secondaryTheme === void 0 ? exports.ThemeType.Core : _ref$secondaryTheme;
7113
7153
  var truncate = function truncate(str, n) {
7114
7154
  return str.length >= n ? str.slice(0, n) : str;
7115
7155
  };
@@ -7128,13 +7168,17 @@ var UpsellCard = function UpsellCard(_ref) {
7128
7168
  level: 4
7129
7169
  }, formatPrice(promoPrice)))) : (/*#__PURE__*/React__default.createElement(PriceRow, null, /*#__PURE__*/React__default.createElement(AltHeader, {
7130
7170
  level: 4
7131
- }, formatPrice(price))))), (reducedOfferTexts == null ? void 0 : reducedOfferTexts.length) && reducedOfferTexts.map(function (offerText) {
7171
+ }, formatPrice(price))))), (reducedOfferTexts == null ? void 0 : reducedOfferTexts.length) && reducedOfferTexts.map(function (offerText, index) {
7132
7172
  return /*#__PURE__*/React__default.createElement(OfferText, {
7133
- key: offerText.title,
7173
+ key: "offer-" + index,
7134
7174
  title: offerText.title,
7135
7175
  description: offerText.description
7136
7176
  });
7137
- }), link && (/*#__PURE__*/React__default.createElement(ButtonContainer, null, /*#__PURE__*/React__default.createElement(PrimaryButton, Object.assign({}, link), truncate(link.text, LENGTH_SMALL_TEXT))))));
7177
+ }), ((link == null ? void 0 : link.text) || (secondaryLink == null ? void 0 : secondaryLink.text)) && (/*#__PURE__*/React__default.createElement(ButtonContainer, {
7178
+ stackCtasEarly: stackCtasEarly
7179
+ }, (link == null ? void 0 : link.text) && /*#__PURE__*/React__default.createElement(PrimaryButton, Object.assign({}, link), truncate(link.text, LENGTH_SMALL_TEXT)), (secondaryLink == null ? void 0 : secondaryLink.text) && (/*#__PURE__*/React__default.createElement(Theme, {
7180
+ theme: secondaryTheme
7181
+ }, /*#__PURE__*/React__default.createElement(SecondaryButton, Object.assign({}, secondaryLink), truncate(secondaryLink.text, LENGTH_SMALL_TEXT))))))));
7138
7182
  };
7139
7183
 
7140
7184
  var _templateObject$K;
@@ -7144,7 +7188,7 @@ var UpsellCards = function UpsellCards(_ref) {
7144
7188
  var upsellCards = _ref.upsellCards;
7145
7189
  return /*#__PURE__*/React__default.createElement(Wrapper$3, null, upsellCards == null ? void 0 : upsellCards.map(function (card, index) {
7146
7190
  return /*#__PURE__*/React__default.createElement(UpsellCard, {
7147
- key: "upsell-card-" + index,
7191
+ key: "card-" + index,
7148
7192
  title: card.title,
7149
7193
  subTitle: card.subTitle,
7150
7194
  price: card.price,
@@ -7152,7 +7196,10 @@ var UpsellCards = function UpsellCards(_ref) {
7152
7196
  flag: card.flag,
7153
7197
  offerTexts: card.offerTexts,
7154
7198
  link: card.link,
7155
- theme: card.theme
7199
+ secondaryLink: card.secondaryLink,
7200
+ stackCtasEarly: true,
7201
+ theme: card.theme,
7202
+ secondaryTheme: card.secondaryTheme
7156
7203
  });
7157
7204
  }));
7158
7205
  };
@@ -7166,7 +7213,8 @@ var UpsellSection = function UpsellSection(_ref) {
7166
7213
  theme = _ref$theme === void 0 ? exports.ThemeType.Core : _ref$theme;
7167
7214
  var themedUpsellCards = upsellCards ? [].concat(upsellCards).map(function (card) {
7168
7215
  return _extends({}, card, {
7169
- theme: card.theme || theme
7216
+ theme: card.theme || theme,
7217
+ secondaryTheme: card.secondaryTheme || theme
7170
7218
  });
7171
7219
  }) : [];
7172
7220
  return /*#__PURE__*/React__default.createElement(Theme, {
@@ -8682,14 +8730,16 @@ var ContentSummary = function ContentSummary(_ref) {
8682
8730
  "data-roh": "content-summary-item"
8683
8731
  }, showImage && image && (/*#__PURE__*/React__default.createElement(ContentSummaryImageWrapper, {
8684
8732
  "data-testid": "image-wrapper"
8685
- }, /*#__PURE__*/React__default.createElement(ImageAspectRatioWrapper, {
8686
- aspectRatio: exports.AspectRatio['4:3']
8687
8733
  }, link != null && link.href ? (/*#__PURE__*/React__default.createElement("a", {
8688
8734
  href: link.href
8735
+ }, /*#__PURE__*/React__default.createElement(ImageAspectRatioWrapper, {
8736
+ aspectRatio: exports.AspectRatio['4:3']
8689
8737
  }, /*#__PURE__*/React__default.createElement("img", {
8690
8738
  src: image.src,
8691
8739
  alt: image.alt
8692
- }))) : (/*#__PURE__*/React__default.createElement("img", {
8740
+ })))) : (/*#__PURE__*/React__default.createElement(ImageAspectRatioWrapper, {
8741
+ aspectRatio: exports.AspectRatio['4:3']
8742
+ }, /*#__PURE__*/React__default.createElement("img", {
8693
8743
  src: image.src,
8694
8744
  alt: image.alt
8695
8745
  }))))), /*#__PURE__*/React__default.createElement(ContentSummaryTextWrapper, {
@@ -9718,17 +9768,11 @@ var reducePages = function reducePages(pages, currentPage) {
9718
9768
  // Otherwise, show 3 pages before and 2 pages after
9719
9769
  return pages.slice(currentPage - 2, currentPage + 4);
9720
9770
  };
9721
- var buildUrlWithPage = function buildUrlWithPage(baseUrl, page, search) {
9722
- var params = new URLSearchParams(search);
9723
- params.set('page', page.toString());
9724
- return baseUrl + "?" + params.toString();
9725
- };
9726
9771
  var Pagination = function Pagination(_ref) {
9727
9772
  var pageCount = _ref.pageCount,
9728
9773
  currentPage = _ref.currentPage,
9729
9774
  baseUrl = _ref.baseUrl,
9730
9775
  className = _ref.className;
9731
- var location = reactRouterDom.useLocation();
9732
9776
  // Array of page numbers starting at 1
9733
9777
  var pageNumbers = Array.from(Array(pageCount + 1).keys()).slice(1);
9734
9778
  var reducedPageNumbers = reducePages(pageNumbers, currentPage);
@@ -9737,7 +9781,7 @@ var Pagination = function Pagination(_ref) {
9737
9781
  },
9738
9782
  // {/* Left arrow only appears after page 1 */
9739
9783
  currentPage > 1 && (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement(PageNav, {
9740
- href: buildUrlWithPage(baseUrl, 1, location.search)
9784
+ href: baseUrl + "1"
9741
9785
  }, /*#__PURE__*/React__default.createElement(Icon, {
9742
9786
  iconName: "LastPageArrow",
9743
9787
  direction: "right"
@@ -9745,7 +9789,7 @@ var Pagination = function Pagination(_ref) {
9745
9789
  key: "previous-page",
9746
9790
  "data-testid": "left-arrow"
9747
9791
  }, /*#__PURE__*/React__default.createElement(PageNav, {
9748
- href: buildUrlWithPage(baseUrl, currentPage - 1, location.search)
9792
+ href: "" + baseUrl + (currentPage - 1)
9749
9793
  }, /*#__PURE__*/React__default.createElement(Icon, {
9750
9794
  iconName: "ArrowPagination",
9751
9795
  direction: "right"
@@ -9753,7 +9797,7 @@ var Pagination = function Pagination(_ref) {
9753
9797
  return /*#__PURE__*/React__default.createElement("li", {
9754
9798
  key: page
9755
9799
  }, /*#__PURE__*/React__default.createElement(PaginationLink, {
9756
- href: buildUrlWithPage(baseUrl, page, location.search),
9800
+ href: "" + baseUrl + page,
9757
9801
  "data-testid": "page-number"
9758
9802
  }, /*#__PURE__*/React__default.createElement(TextLinkPagination, {
9759
9803
  size: "large",
@@ -9763,12 +9807,12 @@ var Pagination = function Pagination(_ref) {
9763
9807
  key: "next-page",
9764
9808
  "data-testid": "right-arrow"
9765
9809
  }, /*#__PURE__*/React__default.createElement(PageNav, {
9766
- href: buildUrlWithPage(baseUrl, currentPage + 1, location.search)
9810
+ href: "" + baseUrl + (currentPage + 1)
9767
9811
  }, /*#__PURE__*/React__default.createElement(Icon, {
9768
9812
  iconName: "ArrowPagination",
9769
9813
  direction: "left"
9770
9814
  }))), /*#__PURE__*/React__default.createElement(LastPageItem, null, /*#__PURE__*/React__default.createElement(PageNav, {
9771
- href: buildUrlWithPage(baseUrl, pageCount, location.search)
9815
+ href: "" + baseUrl + pageCount
9772
9816
  }, /*#__PURE__*/React__default.createElement(Icon, {
9773
9817
  iconName: "LastPageArrow",
9774
9818
  direction: "left"