igloo-d2c-components 1.0.28 → 1.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -351,7 +351,7 @@ const ammetlifeTypography = Object.assign(Object.assign({}, iglooTypography), {
351
351
  fontWeight: 700,
352
352
  lineHeight: '38px',
353
353
  letterSpacing: 0,
354
- wordSpacing: '-5px',
354
+ wordSpacing: '-10px',
355
355
  },
356
356
  // Title Medium (H2) - MetLife Circular Bold 16/24
357
357
  titleMedium: {
@@ -890,11 +890,12 @@ function Banner(_a) {
890
890
  * Design Specifications:
891
891
  * - Header height: 80px
892
892
  * - Background: white (#ffffff)
893
- * - Content max-width: 1128px (equivalent to 156px padding on 1440px width)
894
- * - Logo width: 126px
895
- * - Gap between logo and menu items: 32px
896
- * - Menu text: MetLife Circular Bold, 18px, #13131B
897
- * - Login button: Text style, #0090da (teal/cyan)
893
+ * - Content padding: 156px horizontal on 1440px viewport
894
+ * - Logo dimensions: 126px × 16px
895
+ * - Gap between menu items: 32px
896
+ * - Menu text: MetLife Circular Bold, 18px, #13131B, line-height 24px
897
+ * - CTA Button: Filled, #0090da, border-radius 24px, height 48px
898
+ * - CTA text: MetLife Circular Medium, 16px, white, line-height 20px
898
899
  */
899
900
  /**
900
901
  * Design System Colors (from Figma node 1581-22604)
@@ -912,7 +913,7 @@ const designColors = {
912
913
  * Main AppBar container
913
914
  * Height: 80px, white background, centered content
914
915
  */
915
- const StyledAppBar$2 = styles.styled(AppBar)(({ theme }) => ({
916
+ const StyledAppBar$2 = styles.styled(AppBar)(() => ({
916
917
  backgroundColor: designColors.natural.light00,
917
918
  boxShadow: 'none',
918
919
  position: 'fixed',
@@ -942,13 +943,12 @@ const HeaderContainer$1 = styles.styled(material.Box)(({ theme }) => ({
942
943
  },
943
944
  }));
944
945
  /**
945
- * Left section containing logo and menu items
946
- * Gap: 32px between all children (logo and menu items)
946
+ * Left section containing logo only
947
+ * Per Figma: Logo on left side of header
947
948
  */
948
949
  const LeftSection = styles.styled(material.Box)({
949
950
  display: 'flex',
950
951
  alignItems: 'center',
951
- gap: '32px',
952
952
  height: '100%',
953
953
  });
954
954
  /**
@@ -963,11 +963,11 @@ const LogoContainer$2 = styles.styled(material.Box)({
963
963
  });
964
964
  /**
965
965
  * Logo image
966
- * Width: 126px, height: 16px (per Figma)
966
+ * Width: 126px, height: 16px (per Figma node 1328:28463)
967
967
  */
968
968
  const LogoImage$1 = styles.styled('img')({
969
- width: '94px',
970
- height: '32px',
969
+ width: '126px',
970
+ height: '16px',
971
971
  objectFit: 'contain',
972
972
  });
973
973
  /**
@@ -985,7 +985,7 @@ styles.styled(material.Box)({
985
985
  * Font: MetLife Circular Bold, 18px, color: #13131B
986
986
  * Padding: 10px horizontal (creates visual spacing between items)
987
987
  */
988
- const MenuItemButton = styles.styled(material.Button)(({ theme }) => ({
988
+ const MenuItemButton = styles.styled(material.Button)(() => ({
989
989
  display: 'flex',
990
990
  alignItems: 'center',
991
991
  gap: '8px',
@@ -999,6 +999,7 @@ const MenuItemButton = styles.styled(material.Button)(({ theme }) => ({
999
999
  fontSize: '18px',
1000
1000
  lineHeight: '24px',
1001
1001
  letterSpacing: '0px',
1002
+ wordSpacing: '-5px',
1002
1003
  borderRadius: 0,
1003
1004
  '&:hover': {
1004
1005
  backgroundColor: 'transparent',
@@ -1015,6 +1016,7 @@ const MenuItemText = styles.styled(material.Typography)({
1015
1016
  fontSize: '18px',
1016
1017
  lineHeight: '24px',
1017
1018
  letterSpacing: '0px',
1019
+ wordSpacing: '-5px',
1018
1020
  color: 'inherit',
1019
1021
  });
1020
1022
  /**
@@ -1027,19 +1029,22 @@ const DropdownIcon = styles.styled(ArrowDropDownIcon)({
1027
1029
  color: designColors.natural.dim100,
1028
1030
  });
1029
1031
  /**
1030
- * Right section containing login button
1032
+ * Right section containing menu items and CTA button
1033
+ * Gap: 32px between menu items (per Figma node 3506:35611)
1031
1034
  */
1032
1035
  const RightSection = styles.styled(material.Box)({
1033
1036
  display: 'flex',
1034
1037
  alignItems: 'center',
1038
+ gap: '32px',
1035
1039
  height: '100%',
1036
1040
  });
1037
1041
  /**
1038
- * Login button (text style)
1042
+ * Login button (text style) - DEPRECATED
1043
+ * @deprecated Use PurchaseButton instead
1039
1044
  * Based on Figma: Style=Text, State=enabled, Show Icon=False
1040
1045
  * Color: #0090da (primary blue/teal)
1041
1046
  */
1042
- const LoginButton = styles.styled(material.Button)(({ theme }) => ({
1047
+ styles.styled(material.Button)(() => ({
1043
1048
  display: 'flex',
1044
1049
  alignItems: 'center',
1045
1050
  padding: '0 10px',
@@ -1052,6 +1057,7 @@ const LoginButton = styles.styled(material.Button)(({ theme }) => ({
1052
1057
  fontSize: '18px',
1053
1058
  lineHeight: '24px',
1054
1059
  letterSpacing: '0px',
1060
+ wordSpacing: '-5px',
1055
1061
  borderRadius: 0,
1056
1062
  backgroundColor: 'transparent',
1057
1063
  '&:hover': {
@@ -1059,10 +1065,41 @@ const LoginButton = styles.styled(material.Button)(({ theme }) => ({
1059
1065
  textDecoration: 'underline',
1060
1066
  },
1061
1067
  }));
1068
+ /**
1069
+ * Purchase Now CTA Button (filled style)
1070
+ * Based on Figma: Style=Filled, State=Enabled (node 3506:36976)
1071
+ * Background: #0090da, border-radius: 24px, height: 48px
1072
+ * Text: MetLife Circular Medium, 16px, white, line-height 20px
1073
+ */
1074
+ const PurchaseButton = styles.styled(material.Button)(() => ({
1075
+ display: 'flex',
1076
+ alignItems: 'center',
1077
+ justifyContent: 'center',
1078
+ padding: '10px 24px',
1079
+ height: '48px',
1080
+ minWidth: 'auto',
1081
+ textTransform: 'none',
1082
+ color: designColors.natural.light00,
1083
+ backgroundColor: designColors.primary.main60,
1084
+ fontFamily: '"MetLifeCircular", "Montserrat", "Roboto", "Helvetica", "Arial", sans-serif',
1085
+ fontWeight: 500,
1086
+ fontSize: '16px',
1087
+ lineHeight: '20px',
1088
+ letterSpacing: '0px',
1089
+ wordSpacing: '-5px',
1090
+ borderRadius: '24px',
1091
+ whiteSpace: 'nowrap',
1092
+ '&:hover': {
1093
+ backgroundColor: '#007bb8',
1094
+ },
1095
+ '&:active': {
1096
+ backgroundColor: '#006a9e',
1097
+ },
1098
+ }));
1062
1099
  /**
1063
1100
  * Dropdown menu container
1064
1101
  */
1065
- const StyledMenu$1 = styles.styled(material.Menu)(({ theme }) => ({
1102
+ const StyledMenu$1 = styles.styled(material.Menu)(() => ({
1066
1103
  '& .MuiPaper-root': {
1067
1104
  borderRadius: '16px',
1068
1105
  marginTop: '8px',
@@ -1073,7 +1110,7 @@ const StyledMenu$1 = styles.styled(material.Menu)(({ theme }) => ({
1073
1110
  /**
1074
1111
  * Dropdown menu item
1075
1112
  */
1076
- const StyledMenuItem$1 = styles.styled(material.MenuItem)(({ theme }) => ({
1113
+ const StyledMenuItem$1 = styles.styled(material.MenuItem)(() => ({
1077
1114
  display: 'flex',
1078
1115
  alignItems: 'center',
1079
1116
  gap: '12px',
@@ -1082,6 +1119,7 @@ const StyledMenuItem$1 = styles.styled(material.MenuItem)(({ theme }) => ({
1082
1119
  fontWeight: 500,
1083
1120
  fontSize: '16px',
1084
1121
  lineHeight: '24px',
1122
+ wordSpacing: '-5px',
1085
1123
  color: designColors.natural.dim100,
1086
1124
  '&:hover': {
1087
1125
  backgroundColor: 'rgba(0, 144, 218, 0.08)',
@@ -1096,28 +1134,65 @@ const MenuItemIcon = styles.styled('img')({
1096
1134
  objectFit: 'contain',
1097
1135
  });
1098
1136
 
1137
+ /**
1138
+ * Smooth scroll utility function
1139
+ * Scrolls to a target element by ID with smooth behavior
1140
+ */
1141
+ const scrollToElement = (targetId, offset = 80) => {
1142
+ const element = document.getElementById(targetId);
1143
+ if (element) {
1144
+ const elementPosition = element.getBoundingClientRect().top;
1145
+ const offsetPosition = elementPosition + window.pageYOffset - offset;
1146
+ window.scrollTo({
1147
+ top: offsetPosition,
1148
+ behavior: 'smooth',
1149
+ });
1150
+ }
1151
+ };
1099
1152
  /**
1100
1153
  * DesktopHeaderMenuBar Component
1101
1154
  *
1102
- * A responsive desktop header with navigation menu items and dropdown support.
1155
+ * A desktop header with logo on left, navigation menu items and CTA button on right.
1156
+ * Supports scroll-to-section interactions for menu items.
1103
1157
  *
1104
1158
  * @param logo - Logo image source URL
1105
1159
  * @param logoAlt - Alt text for the logo image
1106
1160
  * @param menuItems - Array of menu items to display
1107
- * @param showLoginButton - Whether to show the login button (default: true)
1108
- * @param loginButtonText - Text for the login button (default: 'Log in')
1161
+ * @param showCtaButton - Whether to show the CTA button (default: true)
1162
+ * @param ctaButtonText - Text for the CTA button (default: 'Purchase Now')
1163
+ * @param onCtaClick - Handler for CTA button click
1164
+ * @param ctaScrollTargetId - Target element ID for CTA scroll action
1165
+ * @param onScrollToSection - Callback when menu item triggers scroll
1109
1166
  * @param onLogoClick - Handler for logo click
1110
- * @param onLoginClick - Handler for login button click
1111
1167
  * @param formatMessage - i18n function for translations
1112
1168
  */
1113
- function DesktopHeaderMenuBar({ logo, logoAlt = 'Logo', menuItems, showLoginButton = true, loginButtonText = 'Log in', onLogoClick, onLoginClick, formatMessage = (descriptor) => descriptor.id, className, }) {
1114
- // Track which dropdown is currently open
1169
+ function DesktopHeaderMenuBar({ logo, logoAlt = 'Logo', menuItems,
1170
+ // Legacy props (deprecated)
1171
+ showLoginButton, loginButtonText, onLoginClick,
1172
+ // New CTA props
1173
+ showCtaButton = true, ctaButtonText = 'Purchase Now', onCtaClick, ctaScrollTargetId, onScrollToSection, onLogoClick, formatMessage = (descriptor) => descriptor.id, className, }) {
1174
+ var _a;
1175
+ // Track which dropdown is currently open (for backward compatibility)
1115
1176
  const [openMenuKey, setOpenMenuKey] = React__namespace.useState(null);
1116
1177
  const [anchorEl, setAnchorEl] = React__namespace.useState(null);
1178
+ // Determine which button props to use (support legacy props)
1179
+ const shouldShowCtaButton = (_a = showCtaButton !== null && showCtaButton !== void 0 ? showCtaButton : showLoginButton) !== null && _a !== void 0 ? _a : true;
1180
+ const ctaText = ctaButtonText || loginButtonText || 'Purchase Now';
1181
+ const handleCtaClick = onCtaClick || onLoginClick;
1117
1182
  const handleMenuClick = (event, item) => {
1118
1183
  var _a;
1184
+ // Handle scroll-to-section behavior
1185
+ if (item.scrollTargetId) {
1186
+ if (onScrollToSection) {
1187
+ onScrollToSection(item.scrollTargetId, item.scrollTargetProductCode);
1188
+ }
1189
+ else {
1190
+ scrollToElement(item.scrollTargetId);
1191
+ }
1192
+ return;
1193
+ }
1194
+ // Handle dropdown behavior (backward compatibility)
1119
1195
  if (item.hasDropdown && item.subItems && item.subItems.length > 0) {
1120
- // Toggle dropdown
1121
1196
  if (openMenuKey === item.key) {
1122
1197
  handleCloseMenu();
1123
1198
  }
@@ -1147,7 +1222,18 @@ function DesktopHeaderMenuBar({ logo, logoAlt = 'Logo', menuItems, showLoginButt
1147
1222
  e.preventDefault();
1148
1223
  onLogoClick === null || onLogoClick === void 0 ? void 0 : onLogoClick();
1149
1224
  };
1150
- return (jsxRuntime.jsx(StyledAppBar$2, Object.assign({ className: className }, { children: jsxRuntime.jsxs(HeaderContainer$1, { children: [jsxRuntime.jsxs(LeftSection, { children: [jsxRuntime.jsx(LogoContainer$2, Object.assign({ onClick: handleLogoClick }, { children: jsxRuntime.jsx(LogoImage$1, { src: logo, alt: logoAlt }) })), menuItems.map((item) => (jsxRuntime.jsxs(React__namespace.Fragment, { children: [jsxRuntime.jsxs(MenuItemButton, Object.assign({ onClick: (e) => handleMenuClick(e, item), "aria-haspopup": item.hasDropdown ? 'true' : undefined, "aria-expanded": item.hasDropdown ? openMenuKey === item.key : undefined, "data-testid": `menu-item-${item.key}` }, { children: [jsxRuntime.jsx(MenuItemText, { children: formatMessage({ id: item.label }) }), item.hasDropdown && jsxRuntime.jsx(DropdownIcon, {})] })), item.hasDropdown && item.subItems && (jsxRuntime.jsx(StyledMenu$1, Object.assign({ id: `menu-${item.key}`, anchorEl: anchorEl, open: openMenuKey === item.key, onClose: handleCloseMenu, anchorOrigin: {
1225
+ const handleCtaButtonClick = () => {
1226
+ if (ctaScrollTargetId) {
1227
+ if (onScrollToSection) {
1228
+ onScrollToSection(ctaScrollTargetId);
1229
+ }
1230
+ else {
1231
+ scrollToElement(ctaScrollTargetId);
1232
+ }
1233
+ }
1234
+ handleCtaClick === null || handleCtaClick === void 0 ? void 0 : handleCtaClick();
1235
+ };
1236
+ return (jsxRuntime.jsx(StyledAppBar$2, Object.assign({ className: className }, { children: jsxRuntime.jsxs(HeaderContainer$1, { children: [jsxRuntime.jsx(LeftSection, { children: jsxRuntime.jsx(LogoContainer$2, Object.assign({ onClick: handleLogoClick }, { children: jsxRuntime.jsx(LogoImage$1, { src: logo, alt: logoAlt }) })) }), jsxRuntime.jsxs(RightSection, { children: [menuItems.map((item) => (jsxRuntime.jsxs(React__namespace.Fragment, { children: [jsxRuntime.jsxs(MenuItemButton, Object.assign({ onClick: (e) => handleMenuClick(e, item), "aria-haspopup": item.hasDropdown ? 'true' : undefined, "aria-expanded": item.hasDropdown ? openMenuKey === item.key : undefined, "data-testid": `menu-item-${item.key}` }, { children: [jsxRuntime.jsx(MenuItemText, { children: formatMessage({ id: item.label }) }), item.hasDropdown && jsxRuntime.jsx(DropdownIcon, {})] })), item.hasDropdown && item.subItems && (jsxRuntime.jsx(StyledMenu$1, Object.assign({ id: `menu-${item.key}`, anchorEl: anchorEl, open: openMenuKey === item.key, onClose: handleCloseMenu, anchorOrigin: {
1151
1237
  vertical: 'bottom',
1152
1238
  horizontal: 'left',
1153
1239
  }, transformOrigin: {
@@ -1155,7 +1241,7 @@ function DesktopHeaderMenuBar({ logo, logoAlt = 'Logo', menuItems, showLoginButt
1155
1241
  horizontal: 'left',
1156
1242
  }, MenuListProps: {
1157
1243
  'aria-labelledby': `menu-button-${item.key}`,
1158
- } }, { children: item.subItems.map((subItem) => (jsxRuntime.jsxs(StyledMenuItem$1, Object.assign({ onClick: () => handleSubItemClick(item, subItem.key), "data-testid": `submenu-item-${subItem.key}` }, { children: [subItem.icon && (jsxRuntime.jsx(MenuItemIcon, { src: subItem.icon, alt: subItem.label })), formatMessage({ id: subItem.label })] }), subItem.key))) })))] }, item.key)))] }), jsxRuntime.jsx(RightSection, { children: showLoginButton && (jsxRuntime.jsx(LoginButton, Object.assign({ onClick: onLoginClick, "data-testid": "header-login-button" }, { children: formatMessage({ id: loginButtonText }) }))) })] }) })));
1244
+ } }, { children: item.subItems.map((subItem) => (jsxRuntime.jsxs(StyledMenuItem$1, Object.assign({ onClick: () => handleSubItemClick(item, subItem.key), "data-testid": `submenu-item-${subItem.key}` }, { children: [subItem.icon && (jsxRuntime.jsx(MenuItemIcon, { src: subItem.icon, alt: subItem.label })), formatMessage({ id: subItem.label })] }), subItem.key))) })))] }, item.key))), shouldShowCtaButton && (jsxRuntime.jsx(PurchaseButton, Object.assign({ onClick: handleCtaButtonClick, "data-testid": "header-cta-button" }, { children: formatMessage({ id: ctaText }) })))] })] }) })));
1159
1245
  }
1160
1246
 
1161
1247
  const StyledAppBar$1 = styles.styled(AppBar)(({ theme, ispartnershippagemobileview, scrolled }) => {
@@ -1521,7 +1607,7 @@ const TypographyBtnText = styles.styled(material.Typography)(({ theme }) => {
1521
1607
  * />
1522
1608
  * ```
1523
1609
  */
1524
- function Header$1({ logo, alternateLogo, showAlternateLogo = false, navigationLinks, languages, currentLocale, currentLang, userToken, userFirstName, isMobile: propIsMobile, scrolled = false, isPartnershipPageMobileView = false, isPartnershipPagePCView = false, isSeoPageView = false, showGetQuoteButton = false, bannerData, ctaData, host = '', welcomeMessage, formatMessage = (descriptor) => descriptor.id, menuItems, userProfileComponent, onLogoClick, onProductMenuClick, onLanguageChange, onLoginClick, onSignupClick, onLogoutClick, onPartnershipClick, onAboutUsClick, onBlogClick, onMyProfileClick, onGetQuoteClick, onPartnershipCTAClick, useNewDesktopLayout = false, desktopMenuItems = [], }) {
1610
+ function Header$1({ logo, alternateLogo, showAlternateLogo = false, navigationLinks, languages, currentLocale, currentLang, userToken, userFirstName, isMobile: propIsMobile, scrolled = false, isPartnershipPageMobileView = false, isPartnershipPagePCView = false, isSeoPageView = false, showGetQuoteButton = false, bannerData, ctaData, host = '', welcomeMessage, formatMessage = (descriptor) => descriptor.id, menuItems, userProfileComponent, onLogoClick, onProductMenuClick, onLanguageChange, onLoginClick, onSignupClick, onLogoutClick, onPartnershipClick, onAboutUsClick, onBlogClick, onMyProfileClick, onGetQuoteClick, onPartnershipCTAClick, useNewDesktopLayout = false, desktopMenuItems = [], showCtaButton = true, ctaButtonText = 'Purchase Now', onCtaClick, ctaScrollTargetId, onScrollToSection, }) {
1525
1611
  var _a, _b, _c;
1526
1612
  const tenantTheme = useTenantTheme();
1527
1613
  tenantTheme === null || tenantTheme === void 0 ? void 0 : tenantTheme.theme;
@@ -1568,12 +1654,14 @@ function Header$1({ logo, alternateLogo, showAlternateLogo = false, navigationLi
1568
1654
  onClick: subItem.onClick,
1569
1655
  })),
1570
1656
  onClick: item.onClick,
1657
+ scrollTargetId: item.scrollTargetId,
1658
+ scrollTargetProductCode: item.scrollTargetProductCode,
1571
1659
  });
1572
1660
  });
1573
1661
  // Render new desktop layout when enabled and on actual desktop viewport
1574
1662
  // Uses isActuallyDesktop to avoid SSR/prop issues with isMobile detection
1575
1663
  if (useNewDesktopLayout && isActuallyDesktop) {
1576
- return (jsxRuntime.jsx(DesktopHeaderMenuBar, { logo: logo, logoAlt: "Logo", menuItems: convertedDesktopMenuItems, showLoginButton: !userToken, loginButtonText: "Log in", onLogoClick: onLogoClick, onLoginClick: onLoginClick, formatMessage: formatMessage }));
1664
+ return (jsxRuntime.jsx(DesktopHeaderMenuBar, { logo: logo, logoAlt: "Logo", menuItems: convertedDesktopMenuItems, showCtaButton: showCtaButton, ctaButtonText: ctaButtonText, onCtaClick: onCtaClick, ctaScrollTargetId: ctaScrollTargetId, onScrollToSection: onScrollToSection, onLogoClick: onLogoClick, formatMessage: formatMessage }));
1577
1665
  }
1578
1666
  return (jsxRuntime.jsx(StyledAppBar$1, Object.assign({ ispartnershippagemobileview: isPartnershipPageMobileView, scrolled: scrolled }, { children: jsxRuntime.jsx(ResponsiveB2CLayout, { children: jsxRuntime.jsx(StyledContainer, Object.assign({ ispartnershippagemobileview: isPartnershipPageMobileView, scrolled: scrolled, maxWidth: "xl" }, { children: jsxRuntime.jsxs(material.Toolbar, Object.assign({ disableGutters: true }, { children: [jsxRuntime.jsx("a", Object.assign({ href: host || '#', onClick: (e) => {
1579
1667
  e === null || e === void 0 ? void 0 : e.preventDefault();
@@ -2052,6 +2140,7 @@ const TitleText = styles.styled(material.Typography)(({ theme }) => ({
2052
2140
  fontWeight: 700,
2053
2141
  fontSize: '28px',
2054
2142
  lineHeight: '28px',
2143
+ wordSpacing: '-5px',
2055
2144
  color: '#13131B',
2056
2145
  [theme.breakpoints.down('md')]: {
2057
2146
  fontSize: '20px',
@@ -2062,6 +2151,7 @@ const SubtitleText = styles.styled(material.Typography)(({ theme }) => ({
2062
2151
  fontWeight: 400,
2063
2152
  fontSize: '14px',
2064
2153
  lineHeight: '18px',
2154
+ wordSpacing: '-5px',
2065
2155
  color: '#5F5E62',
2066
2156
  }));
2067
2157
  const FooterButtons = styles.styled(material.Box)(({ theme }) => ({
@@ -2079,6 +2169,7 @@ const PrimaryButton = styles.styled(material.Button)(({ theme }) => ({
2079
2169
  fontWeight: 500,
2080
2170
  fontSize: '14px',
2081
2171
  lineHeight: '18px',
2172
+ wordSpacing: '-5px',
2082
2173
  '&:disabled': {
2083
2174
  backgroundColor: '#C8C5CA',
2084
2175
  color: '#FFFFFF',
@@ -2091,6 +2182,7 @@ const SecondaryButton = styles.styled(material.Button)(({ theme }) => ({
2091
2182
  fontWeight: 500,
2092
2183
  fontSize: '14px',
2093
2184
  lineHeight: '18px',
2185
+ wordSpacing: '-5px',
2094
2186
  }));
2095
2187
 
2096
2188
  /**
@@ -2199,6 +2291,7 @@ const HeaderTitle = material.styled(material.Typography)({
2199
2291
  fontSize: '20px',
2200
2292
  fontWeight: 700,
2201
2293
  lineHeight: '28px',
2294
+ wordSpacing: '-5px',
2202
2295
  color: '#13131b',
2203
2296
  });
2204
2297
  const HeaderSubtitle = material.styled(material.Typography)({
@@ -2206,6 +2299,7 @@ const HeaderSubtitle = material.styled(material.Typography)({
2206
2299
  fontSize: '14px',
2207
2300
  fontWeight: 400,
2208
2301
  lineHeight: '18px',
2302
+ wordSpacing: '-5px',
2209
2303
  color: 'rgba(0, 0, 0, 0.6)',
2210
2304
  });
2211
2305
  const ProductsContainer = material.styled(material.Box)({
@@ -2246,6 +2340,7 @@ const ProductName$1 = material.styled(material.Typography)({
2246
2340
  fontSize: '14px',
2247
2341
  fontWeight: 700,
2248
2342
  lineHeight: '22px',
2343
+ wordSpacing: '-5px',
2249
2344
  color: '#13131b',
2250
2345
  textAlign: 'center',
2251
2346
  });
@@ -2254,6 +2349,7 @@ const ProductType = material.styled(material.Typography)({
2254
2349
  fontSize: '12px',
2255
2350
  fontWeight: 400,
2256
2351
  lineHeight: '16px',
2352
+ wordSpacing: '-5px',
2257
2353
  color: '#13131b',
2258
2354
  textAlign: 'center',
2259
2355
  });
@@ -2267,6 +2363,7 @@ const ViewPlansButton = material.styled(material.Button)({
2267
2363
  fontSize: '14px',
2268
2364
  fontWeight: 500,
2269
2365
  lineHeight: '18px',
2366
+ wordSpacing: '-5px',
2270
2367
  });
2271
2368
 
2272
2369
  function ProductSelectionDrawer({ open, onClose, products, onProductSelect, title = 'Select your product', subtitle = 'Pick the product that suits your protection goals to view available plans', viewPlansButtonText = 'View plans', }) {
@@ -2309,6 +2406,7 @@ const QuestionTitle = styles.styled(material.Typography)(({ theme }) => ({
2309
2406
  fontWeight: 700,
2310
2407
  fontSize: '18px',
2311
2408
  lineHeight: '24px',
2409
+ wordSpacing: '-5px',
2312
2410
  color: '#13131B',
2313
2411
  [theme.breakpoints.down('md')]: {
2314
2412
  fontSize: '14px',
@@ -2319,6 +2417,7 @@ const QuestionSubtext = styles.styled(material.Typography)(({ theme }) => ({
2319
2417
  fontWeight: 400,
2320
2418
  fontSize: '16px',
2321
2419
  lineHeight: '20px',
2420
+ wordSpacing: '-5px',
2322
2421
  color: '#5F5E62',
2323
2422
  [theme.breakpoints.down('md')]: {
2324
2423
  fontSize: '12px',
@@ -2447,6 +2546,7 @@ const OptionLabel = styles.styled(material.Typography)(({ theme, selected, color
2447
2546
  fontWeight: selected ? 700 : 500,
2448
2547
  fontSize: '14px',
2449
2548
  lineHeight: '20px',
2549
+ wordSpacing: '0px',
2450
2550
  color: selected ? '#0090DA' : colors.unselectedText,
2451
2551
  textAlign: 'center',
2452
2552
  fontFamily: '"MetLifeCircular", "Montserrat", sans-serif',
@@ -2526,6 +2626,7 @@ const ToggleLabel = styles.styled(material.Typography)(({ theme, selected }) =>
2526
2626
  fontWeight: 600,
2527
2627
  fontSize: '14px',
2528
2628
  lineHeight: '20px',
2629
+ wordSpacing: '-5px',
2529
2630
  color: selected ? '#FEFBFF' : '#5F5E62',
2530
2631
  whiteSpace: 'nowrap',
2531
2632
  }));
@@ -2674,6 +2775,7 @@ const ToggleText = styles.styled(material.Typography)(({ theme }) => {
2674
2775
  fontWeight: ((_d = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _d === void 0 ? void 0 : _d.fontWeightSemiBold) || 600,
2675
2776
  lineHeight: ((_f = (_e = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _e === void 0 ? void 0 : _e.bodyMedium) === null || _f === void 0 ? void 0 : _f.lineHeight) || '20px',
2676
2777
  whiteSpace: 'nowrap',
2778
+ wordSpacing: '-5px',
2677
2779
  });
2678
2780
  });
2679
2781
 
@@ -2752,6 +2854,7 @@ const CalloutTitle = styles.styled(material.Typography)(({ theme }) => {
2752
2854
  fontSize: ((_c = (_b = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _b === void 0 ? void 0 : _b.bodyMedium) === null || _c === void 0 ? void 0 : _c.fontSize) || '16px',
2753
2855
  fontWeight: ((_d = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _d === void 0 ? void 0 : _d.fontWeightSemiBold) || 700,
2754
2856
  lineHeight: ((_f = (_e = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _e === void 0 ? void 0 : _e.bodyMedium) === null || _f === void 0 ? void 0 : _f.lineHeight) || '20px',
2857
+ wordSpacing: '-5px',
2755
2858
  color: ((_h = (_g = theme === null || theme === void 0 ? void 0 : theme.palette) === null || _g === void 0 ? void 0 : _g.natural) === null || _h === void 0 ? void 0 : _h.dim) || '#13131b',
2756
2859
  [theme.breakpoints.down('md')]: {
2757
2860
  fontSize: '14px',
@@ -2767,6 +2870,7 @@ const CalloutText = styles.styled(material.Typography)(({ theme }) => {
2767
2870
  fontSize: ((_c = (_b = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _b === void 0 ? void 0 : _b.bodySmall) === null || _c === void 0 ? void 0 : _c.fontSize) || '14px',
2768
2871
  fontWeight: ((_e = (_d = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _d === void 0 ? void 0 : _d.bodySmall) === null || _e === void 0 ? void 0 : _e.fontWeight) || 400,
2769
2872
  lineHeight: ((_g = (_f = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _f === void 0 ? void 0 : _f.bodySmall) === null || _g === void 0 ? void 0 : _g.lineHeight) || '16px',
2873
+ wordSpacing: '-5px',
2770
2874
  color: ((_j = (_h = theme === null || theme === void 0 ? void 0 : theme.palette) === null || _h === void 0 ? void 0 : _h.natural) === null || _j === void 0 ? void 0 : _j.dark) || '#5f5e62',
2771
2875
  [theme.breakpoints.down('md')]: {
2772
2876
  fontSize: '12px',
@@ -2829,6 +2933,7 @@ const InputLabel = styles.styled(material.Typography)(({ theme }) => {
2829
2933
  fontSize: ((_c = (_b = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _b === void 0 ? void 0 : _b.bodySmall) === null || _c === void 0 ? void 0 : _c.fontSize) || '12px',
2830
2934
  fontWeight: ((_e = (_d = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _d === void 0 ? void 0 : _d.bodySmall) === null || _e === void 0 ? void 0 : _e.fontWeight) || 400,
2831
2935
  lineHeight: ((_g = (_f = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _f === void 0 ? void 0 : _f.bodySmall) === null || _g === void 0 ? void 0 : _g.lineHeight) || '16px',
2936
+ wordSpacing: '-5px',
2832
2937
  color: ((_j = (_h = theme === null || theme === void 0 ? void 0 : theme.palette) === null || _h === void 0 ? void 0 : _h.natural) === null || _j === void 0 ? void 0 : _j.dim) || '#13131b',
2833
2938
  });
2834
2939
  });
@@ -2856,6 +2961,7 @@ const InputValue = styles.styled(material.Typography)(({ theme }) => {
2856
2961
  fontSize: ((_c = (_b = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _b === void 0 ? void 0 : _b.bodyMedium) === null || _c === void 0 ? void 0 : _c.fontSize) || '14px',
2857
2962
  fontWeight: ((_e = (_d = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _d === void 0 ? void 0 : _d.bodyMedium) === null || _e === void 0 ? void 0 : _e.fontWeight) || 400,
2858
2963
  lineHeight: ((_g = (_f = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _f === void 0 ? void 0 : _f.bodyMedium) === null || _g === void 0 ? void 0 : _g.lineHeight) || '18px',
2964
+ wordSpacing: '-5px',
2859
2965
  color: ((_j = (_h = theme === null || theme === void 0 ? void 0 : theme.palette) === null || _h === void 0 ? void 0 : _h.natural) === null || _j === void 0 ? void 0 : _j.dim) || '#13131b',
2860
2966
  textAlign: 'center',
2861
2967
  flex: 1,
@@ -2944,6 +3050,7 @@ const RangeLabel = styles.styled(material.Typography)(({ theme }) => {
2944
3050
  fontSize: ((_c = (_b = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _b === void 0 ? void 0 : _b.smallText) === null || _c === void 0 ? void 0 : _c.fontSize) || '8px',
2945
3051
  fontWeight: ((_e = (_d = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _d === void 0 ? void 0 : _d.smallText) === null || _e === void 0 ? void 0 : _e.fontWeight) || 500,
2946
3052
  lineHeight: ((_g = (_f = theme === null || theme === void 0 ? void 0 : theme.typography) === null || _f === void 0 ? void 0 : _f.smallText) === null || _g === void 0 ? void 0 : _g.lineHeight) || '16px',
3053
+ wordSpacing: '-5px',
2947
3054
  color: ((_j = (_h = theme === null || theme === void 0 ? void 0 : theme.palette) === null || _h === void 0 ? void 0 : _h.natural) === null || _j === void 0 ? void 0 : _j.main) || '#929094',
2948
3055
  });
2949
3056
  });
@@ -3159,6 +3266,7 @@ const ProgressText = styles.styled(material.Typography)({
3159
3266
  color: '#5F5E62',
3160
3267
  fontWeight: 400,
3161
3268
  lineHeight: '16px',
3269
+ wordSpacing: '-5px',
3162
3270
  });
3163
3271
 
3164
3272
  const CheckoutProgress = ({ currentStep, totalSteps, onBack, showBackButton = true, progressBarTheme, sx, }) => {
@@ -3201,12 +3309,14 @@ const ProductName = styles.styled(material.Typography)({
3201
3309
  fontWeight: 600,
3202
3310
  color: '#13131B',
3203
3311
  lineHeight: '20px',
3312
+ wordSpacing: '-5px',
3204
3313
  });
3205
3314
  const PlanName = styles.styled(material.Typography)({
3206
3315
  fontSize: '12px',
3207
3316
  fontWeight: 400,
3208
3317
  color: '#13131B',
3209
3318
  lineHeight: '16px',
3319
+ wordSpacing: '-5px',
3210
3320
  });
3211
3321
  const PriceContainer = styles.styled(material.Box)({
3212
3322
  display: 'flex',
@@ -3218,12 +3328,14 @@ const Price = styles.styled(material.Typography)({
3218
3328
  fontWeight: 600,
3219
3329
  color: '#13131B',
3220
3330
  lineHeight: '20px',
3331
+ wordSpacing: '-5px',
3221
3332
  });
3222
3333
  const PricePeriod = styles.styled(material.Typography)({
3223
3334
  fontSize: '12px',
3224
3335
  fontWeight: 400,
3225
3336
  color: '#13131B',
3226
3337
  lineHeight: '16px',
3338
+ wordSpacing: '-5px',
3227
3339
  });
3228
3340
 
3229
3341
  const ProductCard = ({ productName, planName, logoUrl, price, currency = 'RM', period = '/month', sx, showIndicator = true, }) => {
@@ -3243,6 +3355,7 @@ const SectionTitle$2 = styles.styled(material.Typography)({
3243
3355
  fontWeight: 700,
3244
3356
  color: '#13131B',
3245
3357
  lineHeight: '28px',
3358
+ wordSpacing: '-5px',
3246
3359
  marginBottom: '8px',
3247
3360
  });
3248
3361
  const SectionDescription = styles.styled(material.Typography)({
@@ -3250,6 +3363,7 @@ const SectionDescription = styles.styled(material.Typography)({
3250
3363
  fontWeight: 400,
3251
3364
  color: '#5F5E62',
3252
3365
  lineHeight: '18px',
3366
+ wordSpacing: '-5px',
3253
3367
  });
3254
3368
 
3255
3369
  const CheckoutHeader = ({ progress, product, sectionTitle, sectionDescription, sticky = true, progressBarTheme, sx, }) => {
@@ -3291,6 +3405,7 @@ const StyledButton = styles.styled('button')(({ isDisabled, desktopWidth }) => (
3291
3405
  fontSize: '14px',
3292
3406
  fontWeight: 500,
3293
3407
  lineHeight: '18px',
3408
+ wordSpacing: '-5px',
3294
3409
  cursor: isDisabled ? 'not-allowed' : 'pointer',
3295
3410
  transition: 'all 0.2s ease',
3296
3411
  '&:hover': {
@@ -3321,6 +3436,7 @@ const QuestionText = styles.styled(material.Typography)({
3321
3436
  fontWeight: 400,
3322
3437
  color: '#13131B',
3323
3438
  lineHeight: '24px',
3439
+ wordSpacing: '-5px',
3324
3440
  fontFamily: '"MetLifeCircular", "Montserrat", sans-serif',
3325
3441
  });
3326
3442
  const OptionsContainer = styles.styled(material.Box)({
@@ -3351,6 +3467,7 @@ styles.styled(material.Typography)(({ selected }) => ({
3351
3467
  fontWeight: 600,
3352
3468
  color: selected ? '#13131B' : '#5F5E62',
3353
3469
  lineHeight: '20px',
3470
+ wordSpacing: '-5px',
3354
3471
  }));
3355
3472
 
3356
3473
  const HealthQuestionGroup = ({ question, questionNumber, value, onChange, error, labels = { yes: 'Yes', no: 'No' }, sx, }) => {
@@ -3402,7 +3519,7 @@ const FullWidthField$1 = styles.styled(material.Box)({
3402
3519
  const CheckboxContainer$1 = styles.styled(material.Box)({
3403
3520
  marginTop: '12px',
3404
3521
  '& .MuiFormControlLabel-root': {
3405
- alignItems: 'flex-start',
3522
+ alignItems: 'center',
3406
3523
  marginLeft: 0,
3407
3524
  },
3408
3525
  '& .MuiCheckbox-root': {
@@ -3414,6 +3531,7 @@ const CheckboxLabel$1 = styles.styled(material.Typography)({
3414
3531
  fontWeight: 400,
3415
3532
  color: '#5F5E62',
3416
3533
  lineHeight: '18px',
3534
+ wordSpacing: '-5px',
3417
3535
  });
3418
3536
 
3419
3537
  const PersonalInformationForm = ({ renderField, fields, consents, onSubmit, formRef, sx, desktopGridLayout = false, }) => {
@@ -3501,12 +3619,14 @@ const CheckboxLabel = styles.styled(material.Typography)({
3501
3619
  fontWeight: 400,
3502
3620
  color: '#5F5E62',
3503
3621
  lineHeight: '18px',
3622
+ wordSpacing: '-5px',
3504
3623
  });
3505
3624
  const SectionTitle$1 = styles.styled(material.Typography)({
3506
3625
  fontSize: '16px',
3507
3626
  fontWeight: 600,
3508
3627
  color: '#13131B',
3509
3628
  lineHeight: '24px',
3629
+ wordSpacing: '-5px',
3510
3630
  });
3511
3631
 
3512
3632
  const ContactDetailsForm = ({ renderField, fields, mailingFields, mailingAddressSame, onSubmit, formRef, sx, desktopGridLayout = false, }) => {
@@ -3679,7 +3799,7 @@ const FAQContainer = material.styled(material.Box)(({ theme }) => ({
3679
3799
  width: '100%',
3680
3800
  backgroundColor: '#ffffff',
3681
3801
  [theme.breakpoints.up('md')]: {
3682
- padding: '64px 32px',
3802
+ padding: '70px 0',
3683
3803
  gap: '32px',
3684
3804
  },
3685
3805
  }));
@@ -3687,6 +3807,7 @@ const FAQTitle = material.styled(material.Typography)(({ theme }) => ({
3687
3807
  fontWeight: 700,
3688
3808
  fontSize: '20px',
3689
3809
  lineHeight: '28px',
3810
+ wordSpacing: '-5px',
3690
3811
  textAlign: 'center',
3691
3812
  width: '100%',
3692
3813
  margin: 0,
@@ -3708,6 +3829,14 @@ const StyledAccordion = material.styled(material.Accordion)(({ theme }) => ({
3708
3829
  '&.Mui-expanded': {
3709
3830
  margin: 0,
3710
3831
  },
3832
+ [theme.breakpoints.up('md')]: {
3833
+ marginTop: '12px',
3834
+ marginBottom: '12px',
3835
+ '&.Mui-expanded': {
3836
+ marginTop: '12px',
3837
+ marginBottom: '12px',
3838
+ },
3839
+ },
3711
3840
  }));
3712
3841
  const StyledAccordionSummary = material.styled(material.AccordionSummary)(({ theme }) => ({
3713
3842
  minHeight: '48px',
@@ -3730,6 +3859,7 @@ const FAQQuestion = material.styled(material.Typography)(({ theme }) => ({
3730
3859
  fontWeight: 700,
3731
3860
  fontSize: '14px',
3732
3861
  lineHeight: '20px',
3862
+ wordSpacing: '-5px',
3733
3863
  flex: 1,
3734
3864
  [theme.breakpoints.up('md')]: {
3735
3865
  fontSize: '15px',
@@ -3740,6 +3870,7 @@ const StyledAccordionDetails = material.styled(material.AccordionDetails)(({ the
3740
3870
  fontWeight: 400,
3741
3871
  fontSize: '14px',
3742
3872
  lineHeight: '20px',
3873
+ wordSpacing: '-5px',
3743
3874
  padding: '0 0 16px 0',
3744
3875
  [theme.breakpoints.up('md')]: {
3745
3876
  fontSize: '15px',
@@ -3800,13 +3931,14 @@ const SectionContainer = material.styled(material.Box)(({ theme }) => ({
3800
3931
  width: '100%',
3801
3932
  backgroundColor: '#ffffff',
3802
3933
  [theme.breakpoints.up('md')]: {
3803
- padding: '64px 32px',
3934
+ padding: '70px 0',
3804
3935
  gap: '40px',
3805
3936
  },
3806
3937
  }));
3807
3938
  const SectionTitle = material.styled(material.Typography)(({ theme }) => ({
3808
3939
  fontWeight: 700,
3809
3940
  fontSize: '20px',
3941
+ wordSpacing: '-5px',
3810
3942
  lineHeight: '28px',
3811
3943
  textAlign: 'center',
3812
3944
  width: '100%',
@@ -3822,7 +3954,7 @@ const BenefitsList = material.styled(material.Box)(({ theme }) => ({
3822
3954
  gap: '16px',
3823
3955
  width: '100%',
3824
3956
  [theme.breakpoints.up('md')]: {
3825
- gap: '24px',
3957
+ gap: '16px',
3826
3958
  },
3827
3959
  }));
3828
3960
  const BenefitItemContainer = material.styled(material.Box)(({ theme }) => ({
@@ -3831,7 +3963,7 @@ const BenefitItemContainer = material.styled(material.Box)(({ theme }) => ({
3831
3963
  alignItems: 'flex-start',
3832
3964
  width: '100%',
3833
3965
  [theme.breakpoints.up('md')]: {
3834
- gap: '16px',
3966
+ gap: '6px',
3835
3967
  },
3836
3968
  }));
3837
3969
  const BenefitIcon = material.styled(material.Box)({
@@ -3850,6 +3982,7 @@ const BenefitTitle = material.styled(material.Typography)(({ theme }) => ({
3850
3982
  fontWeight: 700,
3851
3983
  fontSize: '14px',
3852
3984
  lineHeight: '20px',
3985
+ wordSpacing: '-5px',
3853
3986
  margin: 0,
3854
3987
  [theme.breakpoints.up('md')]: {
3855
3988
  fontSize: '18px',
@@ -3860,6 +3993,7 @@ const BenefitDescription = material.styled(material.Typography)(({ theme }) => (
3860
3993
  fontWeight: 400,
3861
3994
  fontSize: '14px',
3862
3995
  lineHeight: '18px',
3996
+ wordSpacing: '-5px',
3863
3997
  margin: 0,
3864
3998
  [theme.breakpoints.up('md')]: {
3865
3999
  fontSize: '16px',