{"version":3,"file":"3411-23d0bef58288f8c1a6d1.js","mappings":"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","sources":["webpack://tipton/./src/helpers/layers.ts","webpack://tipton/./src/helpers/scrollbars.ts","webpack://tipton/./src/helpers/srOnly.ts","webpack://tipton/./src/helpers/typography.ts","webpack://tipton/./src/hoc/withMotionMax.tsx","webpack://tipton/./src/stories/Components/Buttons/Button/Button.styles.ts","webpack://tipton/./src/stories/Components/Buttons/Button/Button.tsx","webpack://tipton/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.styles.ts","webpack://tipton/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.tsx","webpack://tipton/./src/stories/Components/Misc/SkipLink/SkipLink.styles.ts","webpack://tipton/./src/stories/Components/Misc/SkipLink/SkipLink.tsx","webpack://tipton/./src/stories/Widgets/ProductDetails/ProductDetails.styles.ts","webpack://tipton/./src/stories/Widgets/ProductDetails/ProductDetails.tsx","webpack://tipton/./node_modules/react-use/esm/misc/util.js","webpack://tipton/./node_modules/react-use/esm/useMedia.js"],"sourcesContent":["/**\r\n * The various major z-index layers, adjust with caution and leave space between to add to later.\r\n */\r\nexport const Layers = {\r\n Navigation: 999,\r\n Modal: 1000,\r\n};\r\n","import { css } from 'styled-components';\r\nimport brand from './brand';\r\nexport default css `\r\n &::-webkit-scrollbar-track {\r\n background-color: ${brand.grey.light};\r\n border-radius: 16px;\r\n }\r\n\r\n &::-webkit-scrollbar {\r\n background-color: ${brand.grey.light};\r\n height: 10px;\r\n width: 10px;\r\n border-radius: 16px;\r\n }\r\n\r\n &::-webkit-scrollbar-thumb {\r\n background-color: ${brand.blue.navy};\r\n border-radius: 16px;\r\n cursor: pointer;\r\n }\r\n`;\r\n","import { css } from 'styled-components';\r\n/**\r\n * Show only for screen readers.\r\n * @description Sourced from https://gist.github.com/ffoodd/000b59f431e3e64e4ce1a24d5bb36034\r\n */\r\nconst srOnly = css `\r\n border: 0 !important;\r\n clip: rect(1px, 1px, 1px, 1px) !important;\r\n -webkit-clip-path: inset(50%) !important;\r\n clip-path: inset(50%) !important;\r\n height: 1px !important;\r\n margin: -1px !important;\r\n overflow: hidden !important;\r\n padding: 0 !important;\r\n position: absolute !important;\r\n width: 1px !important;\r\n white-space: nowrap !important;\r\n`;\r\nexport default srOnly;\r\n","import svgQuote from '@img/icons/quote.svg?url';\r\nimport { css } from 'styled-components';\r\nimport { transition } from './animate';\r\nimport brand from './brand';\r\nimport { fluid } from './fluid';\r\nimport fonts from './fonts';\r\nimport scrollbars from './scrollbars';\r\nexport const headingStyles = css `\r\n ${fonts.proximaNova.bold};\r\n\r\n color: currentColor;\r\n margin: 0 0 ${fluid(8, 22)};\r\n line-height: 1.2;\r\n`;\r\nexport const h1 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(34, 74)};\r\n`;\r\nexport const h2 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(30, 55)};\r\n`;\r\nexport const h3 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(28, 45)};\r\n`;\r\nexport const h4 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(24, 38)};\r\n`;\r\nexport const h5 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(20, 30)};\r\n`;\r\nexport const h6 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(16, 24)};\r\n`;\r\nconst paragraphMargin = fluid(24, 32);\r\nconst paragraphStyles = css `\r\n ${fonts.proximaNova.regular};\r\n\r\n color: currentColor;\r\n margin: 0 0 ${paragraphMargin};\r\n`;\r\nexport const paragraphLarge = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(16, 20)};\r\n line-height: ${fluid(26, 30)};\r\n`;\r\nexport const paragraphRegular = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(14, 18)};\r\n line-height: ${fluid(24, 26)};\r\n`;\r\nexport const paragraphSmall = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(12, 16)};\r\n line-height: ${fluid(20, 26)};\r\n`;\r\nexport const subtitle = css `\r\n ${fonts.proximaNova.regular};\r\n\r\n font-size: ${fluid(10, 14)};\r\n line-height: 26px;\r\n color: var(--subtitleColour, ${brand.grey.dark});\r\n letter-spacing: 2.24px;\r\n text-transform: uppercase;\r\n margin-bottom: ${fluid(0, 4)};\r\n`;\r\nexport const link = css `\r\n ${transition('text-decoration-color')};\r\n\r\n display: inline;\r\n color: currentColor;\r\n text-decoration: underline;\r\n text-decoration-color: currentColor;\r\n text-decoration-thickness: 1px;\r\n text-underline-offset: 3px;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus-visible {\r\n outline: auto;\r\n outline-offset: 2px;\r\n outline-width: 1px;\r\n outline-style: solid;\r\n }\r\n\r\n &:focus-visible,\r\n &:hover {\r\n text-decoration-color: transparent;\r\n }\r\n`;\r\nexport const blockquote = css `\r\n ${paragraphRegular};\r\n font-size: ${fluid(16, 20)};\r\n line-height: ${fluid(26, 30)};\r\n\r\n color: currentColor;\r\n text-align: left;\r\n position: relative;\r\n\r\n p {\r\n ${fonts.proximaNova.boldItalic};\r\n font-size: ${fluid(16, 24)};\r\n line-height: ${fluid(24, 34)};\r\n }\r\n\r\n p:last-of-type {\r\n margin: 0;\r\n }\r\n\r\n footer {\r\n ${fonts.proximaNova.bold}\r\n\r\n margin: 16px 0 0;\r\n }\r\n\r\n cite {\r\n ${fonts.proximaNova.medium};\r\n\r\n display: block;\r\n\r\n font-style: normal;\r\n margin: 4px 0 0;\r\n }\r\n\r\n &::before {\r\n content: '';\r\n display: block;\r\n margin: 0 0 16px;\r\n width: 49px;\r\n height: 38px;\r\n background: var(--quoteColour, ${brand.green.default});\r\n background-size: contain;\r\n background-position: center;\r\n -webkit-mask-image: url(${svgQuote});\r\n mask-image: url(${svgQuote});\r\n -webkit-mask-repeat: no-repeat;\r\n mask-repeat: no-repeat;\r\n -webkit-mask-size: contain;\r\n mask-size: contain;\r\n -webkit-mask-position: center;\r\n mask-position: center;\r\n }\r\n`;\r\nexport const table = css `\r\n ${paragraphRegular};\r\n\r\n --borderRadius: ${fluid(10, 20)};\r\n\r\n background: transparent;\r\n border-collapse: separate;\r\n color: currentColor;\r\n width: 100% !important;\r\n\r\n td,\r\n th {\r\n border: ${fluid(1, 2)} solid ${brand.blue.navy};\r\n padding: 12px ${fluid(8, 16)};\r\n text-align: left;\r\n\r\n &:not(:first-of-type) {\r\n border-left: 0;\r\n }\r\n }\r\n\r\n thead {\r\n tr {\r\n background: ${brand.global.beige};\r\n\r\n td,\r\n th {\r\n ${paragraphLarge};\r\n ${fonts.proximaNova.bold};\r\n\r\n margin: 0;\r\n border-bottom: 0;\r\n\r\n &:first-of-type {\r\n border-top-left-radius: var(--borderRadius);\r\n }\r\n\r\n &:last-of-type {\r\n border-top-right-radius: var(--borderRadius);\r\n }\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:nth-child(odd) {\r\n background-color: ${brand.grey.background};\r\n }\r\n\r\n &:nth-child(even) {\r\n background-color: ${brand.global.white};\r\n }\r\n\r\n &:not(:first-of-type) {\r\n td {\r\n border-top: 0;\r\n }\r\n }\r\n\r\n &:last-of-type td:last-of-type {\r\n border-bottom-right-radius: var(--borderRadius);\r\n }\r\n }\r\n }\r\n`;\r\nexport const contentStyles = css `\r\n h1,\r\n .h1-styles {\r\n ${h1};\r\n }\r\n\r\n h2,\r\n .h2-styles {\r\n ${h2};\r\n }\r\n\r\n h3,\r\n .h3-styles {\r\n ${h3};\r\n }\r\n\r\n h4,\r\n .h4-styles {\r\n ${h4}\r\n }\r\n\r\n h5,\r\n .h5-styles {\r\n ${h5}\r\n }\r\n\r\n h6,\r\n .h6-styles {\r\n ${h6}\r\n }\r\n\r\n .subtitle {\r\n ${subtitle};\r\n }\r\n\r\n h1,\r\n .h1-styles,\r\n h2,\r\n .h2-styles,\r\n h3,\r\n .h3-styles,\r\n h4,\r\n .h4-styles,\r\n h5,\r\n .h5-styles,\r\n h6,\r\n .h6-styles {\r\n margin-bottom: 0.65em;\r\n }\r\n\r\n h2,\r\n .h2-styles,\r\n h3,\r\n .h3-styles,\r\n h4,\r\n .h4-styles,\r\n h5,\r\n .h5-styles,\r\n h6,\r\n .h6-styles {\r\n margin-top: 1.25em;\r\n }\r\n\r\n p {\r\n ${paragraphRegular}\r\n\r\n a {\r\n ${link};\r\n }\r\n }\r\n\r\n .large {\r\n ${paragraphLarge}\r\n }\r\n\r\n .small {\r\n ${paragraphSmall}\r\n }\r\n\r\n .normal-weight {\r\n ${fonts.proximaNova.regular};\r\n }\r\n\r\n .medium-weight {\r\n ${fonts.proximaNova.medium};\r\n }\r\n\r\n .semibold-weight {\r\n ${fonts.proximaNova.semiBold};\r\n }\r\n\r\n a {\r\n ${link}\r\n }\r\n\r\n ol,\r\n ul {\r\n ${paragraphRegular};\r\n\r\n li {\r\n color: currentColor;\r\n margin: 0 0 ${fluid(8, 12)} ${fluid(8, 12)};\r\n }\r\n }\r\n\r\n ol,\r\n ul {\r\n list-style: none;\r\n color: currentColor;\r\n\r\n li::before {\r\n display: inline-block;\r\n }\r\n }\r\n\r\n ol {\r\n counter-reset: li;\r\n padding-left: 2.5ch;\r\n\r\n li {\r\n counter-increment: li;\r\n\r\n &::before {\r\n content: counter(li) '.';\r\n width: 2.5ch; // Allow space for double digit numbers\r\n margin-left: -2.5ch;\r\n }\r\n }\r\n }\r\n\r\n // Ensure that inline styling hasn't been applied\r\n ul:not([style*='list-style-type']) {\r\n padding-left: 1em;\r\n\r\n li::before {\r\n content: '\\\\2022';\r\n width: 1em;\r\n margin-left: -1em;\r\n }\r\n }\r\n\r\n blockquote {\r\n ${blockquote};\r\n }\r\n\r\n hr {\r\n display: block;\r\n background: var(--listColour, ${brand.green.dark});\r\n border: 0;\r\n height: 2px;\r\n margin: ${fluid(24, 32)} 0;\r\n padding: 0;\r\n width: 100%;\r\n }\r\n\r\n table {\r\n ${table};\r\n }\r\n\r\n .responsive-table {\r\n ${scrollbars};\r\n\r\n position: relative;\r\n overflow-x: auto;\r\n }\r\n\r\n > *:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n .no-bottom-margin {\r\n margin-bottom: 4px;\r\n }\r\n\r\n > *:last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n","import { domMax, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotionMax(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotionMax = (props) => {\r\n return (React.createElement(LazyMotion, { features: domMax, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotionMax.displayName = `withMotionMax(${displayName})`;\r\n return ComponentWithMotionMax;\r\n}\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { SystemIcon } from '@helpers/icons';\r\nimport { Device, until } from '@helpers/media';\r\nimport srOnly from '@helpers/srOnly';\r\nimport styled, { css } from 'styled-components';\r\nconst hoverStyles = css `\r\n color: var(--textColourHover, var(--contrastColour));\r\n background-color: var(--primaryColour);\r\n background-size: 100% 100%;\r\n border-color: var(--borderColourHover, var(--borderColour, var(--primaryColour)));\r\n\r\n ${() => IconWrapper} {\r\n color: var(--iconTextColour, var(--primaryColour));\r\n background-color: var(--iconBackgroundColour, var(--contrastColour));\r\n }\r\n\r\n &[data-icon-only='false'][data-icon-type=${SystemIcon.ArrowRight}] {\r\n ${() => IconWrapper} {\r\n transform: translateX(4px);\r\n }\r\n }\r\n\r\n &[data-icon-only='false'][data-icon-type=${SystemIcon.ArrowDown}] {\r\n ${() => IconWrapper} {\r\n transform: rotate(90deg) translateX(2px);\r\n }\r\n }\r\n`;\r\nexport const DefaultButtonStyles = css `\r\n ${ButtonReset};\r\n ${transition('background-color, border-color, color', 0.2)};\r\n\r\n --buttonHeight: 44px;\r\n --primaryColour: ${brand.green.default};\r\n --contrastColour: ${brand.global.white};\r\n\r\n display: inline-flex;\r\n gap: 12px;\r\n align-items: center;\r\n border: 1px solid var(--borderColour, var(--primaryColour));\r\n background-color: var(--contrastColour);\r\n color: var(--textColour, var(--primaryColour));\r\n min-height: var(--buttonHeight);\r\n padding: 4px 16px;\r\n text-decoration: none;\r\n user-select: none;\r\n width: auto;\r\n border-radius: 30px;\r\n\r\n &[data-fill='right'] {\r\n background-position: left center;\r\n }\r\n\r\n &[data-fill='left'] {\r\n background-position: right center;\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('background-size, border-color, color, transform', 0.15)};\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n\r\n span& {\r\n :focus-visible & {\r\n outline: auto;\r\n outline-offset: 5px;\r\n outline-width: 2px;\r\n outline-color: var(--textColour, var(--primaryColour));\r\n }\r\n\r\n button:focus-visible &,\r\n a:focus-visible &,\r\n button:hover &,\r\n a:hover & {\r\n ${hoverStyles};\r\n }\r\n }\r\n\r\n &:not(span) {\r\n cursor: pointer;\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 5px;\r\n outline-width: 2px;\r\n outline-color: var(--textColour, var(--primaryColour));\r\n }\r\n\r\n &.focus-ring,\r\n &:hover {\r\n ${hoverStyles};\r\n }\r\n }\r\n\r\n /* Increase specificity to override :not(span) style */\r\n &:disabled:disabled:disabled {\r\n opacity: 0.66;\r\n background-size: 0% 100%;\r\n pointer-events: none;\r\n }\r\n`;\r\nexport const SavingsButtonStyles = css `\r\n --primaryColour: ${brand.blue.default};\r\n --textColour: ${brand.blue.dark};\r\n`;\r\nexport const TertiaryButtonStyles = css `\r\n --borderColour: ${brand.global.white};\r\n --borderColourHover: ${brand.blue.dark};\r\n --contrastColour: ${brand.blue.dark};\r\n --iconBackgroundColour: ${brand.green.default};\r\n --iconTextColour: ${brand.global.white};\r\n --primaryColour: ${brand.global.white};\r\n`;\r\nexport const IntermediariesButtonStyles = css `\r\n --primaryColour: ${brand.blue.navy};\r\n --contrastColour: ${brand.green.light};\r\n`;\r\nconst Container = styled.button `\r\n ${DefaultButtonStyles};\r\n\r\n &[data-type='default'] {\r\n --textColour: ${brand.green.dark};\r\n }\r\n\r\n &[data-type='savings'] {\r\n ${SavingsButtonStyles};\r\n }\r\n\r\n &[data-type='tertiary'] {\r\n ${TertiaryButtonStyles};\r\n }\r\n\r\n &[data-type='intermediaries'] {\r\n ${IntermediariesButtonStyles};\r\n }\r\n\r\n &[data-type='intermediaries-secondary'] {\r\n --borderColour: ${brand.blue.navy};\r\n --contrastColour: ${brand.global.white};\r\n --iconBackgroundColour: ${brand.blue.navy};\r\n --primaryColour: ${brand.green.light};\r\n --textColour: ${brand.blue.navy};\r\n --textColourHover: ${brand.blue.navy};\r\n }\r\n\r\n &[data-icon-only='true'] {\r\n height: var(--buttonHeight);\r\n justify-content: center;\r\n padding: 0;\r\n width: var(--buttonHeight);\r\n }\r\n`;\r\nexport const CommonButtonTextStyles = css `\r\n ${transition('color', 0.2)};\r\n ${fonts.proximaNova.bold};\r\n\r\n color: currentColor;\r\n text-decoration: none;\r\n font-size: 18px;\r\n line-height: 26px;\r\n`;\r\nconst Text = styled.span `\r\n ${CommonButtonTextStyles};\r\n\r\n [data-icon-only='true'] & {\r\n ${srOnly};\r\n }\r\n`;\r\nexport const ButtonIconWrapperStyles = css `\r\n --padding: 3px;\r\n --iconHeight: 12px;\r\n\r\n display: grid;\r\n place-content: center;\r\n color: var(--iconTextColour, var(--contrastColour));\r\n background-color: var(--iconBackgroundColour, var(--primaryColour));\r\n margin: 0;\r\n height: calc(var(--iconHeight) + (var(--padding) * 2));\r\n width: calc(var(--iconHeight) + (var(--padding) * 2));\r\n border-radius: 5000px;\r\n\r\n > span,\r\n > svg {\r\n display: block;\r\n height: var(--iconHeight);\r\n width: var(--iconHeight);\r\n }\r\n`;\r\nconst IconWrapper = styled.div `\r\n ${transition('color, background-color', 0.2)};\r\n ${ButtonIconWrapperStyles};\r\n\r\n [data-icon-position='left'] & {\r\n order: -1;\r\n }\r\n\r\n [data-icon-only='true'] & {\r\n --iconHeight: 24px;\r\n\r\n height: calc(var(--buttonHeight) - 2px);\r\n width: var(--buttonHeight);\r\n }\r\n\r\n [data-icon-type=${SystemIcon.Loader}] & {\r\n --iconHeight: 16px\r\n --padding: 0;\r\n\r\n background-color: var(--iconTextColour, var(--contrastColour));\r\n color: var(--iconBackgroundColour, var(--primaryColour));\r\n }\r\n\r\n [data-icon-type=${SystemIcon.ArrowDown}] & {\r\n transform: rotate(90deg);\r\n }\r\n\r\n [data-icon-type=${SystemIcon.ArrowDown}] &,\r\n [data-icon-type=${SystemIcon.ArrowRight}] & {\r\n ${transition('transform, color, background-color', 0.2)};\r\n }\r\n`;\r\nconst ButtonStyles = {\r\n Container,\r\n IconWrapper,\r\n Text,\r\n};\r\nexport default ButtonStyles;\r\n","import { getSystemIcon, SystemIcon } from '@helpers/icons';\r\nimport { FocusRing } from '@react-aria/focus';\r\nimport * as React from 'react';\r\nimport S from './Button.styles';\r\nconst Button = React.forwardRef(({ buttonType, children, fillDirection = 'right', icon, iconOnly, iconPosition = 'right', ...otherProps }, ref) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Container, { ref: ref, \"data-fill\": fillDirection, \"data-icon-only\": iconOnly ?? false, \"data-icon-position\": iconPosition, \"data-icon-type\": icon ?? SystemIcon.ArrowRight, \"data-type\": buttonType, ...otherProps },\r\n React.createElement(S.Text, null, children),\r\n icon !== SystemIcon.None && (React.createElement(S.IconWrapper, null, getSystemIcon(icon ?? SystemIcon.ArrowRight))))));\r\n});\r\nButton.displayName = 'Button';\r\nconst FakeButton = React.forwardRef(({ buttonType, children, fillDirection = 'right', icon, iconOnly, iconPosition = 'right', ...otherProps }, ref) => {\r\n return (React.createElement(S.Container, { ref: ref, as: \"span\", \"data-fill\": fillDirection, \"data-icon-only\": iconOnly ?? false, \"data-icon-position\": iconPosition, \"data-icon-type\": icon ?? SystemIcon.ArrowRight, \"data-type\": buttonType, ...otherProps },\r\n React.createElement(S.Text, null, children),\r\n icon !== SystemIcon.None && (React.createElement(S.IconWrapper, null, getSystemIcon(icon ?? SystemIcon.ArrowRight)))));\r\n});\r\nFakeButton.displayName = 'FakeButton';\r\nconst LinkButton = React.forwardRef(({ buttonType, children, fillDirection = 'right', icon, iconOnly, iconPosition = 'right', ...otherProps }, ref) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Container, { ref: ref, as: \"a\", \"data-fill\": fillDirection, \"data-icon-only\": iconOnly ?? false, \"data-icon-position\": iconPosition, \"data-icon-type\": icon ?? SystemIcon.ArrowRight, \"data-type\": buttonType, ...otherProps },\r\n React.createElement(S.Text, null, children),\r\n icon !== SystemIcon.None && (React.createElement(S.IconWrapper, null, getSystemIcon(icon ?? SystemIcon.ArrowRight))))));\r\n});\r\nLinkButton.displayName = 'LinkButton';\r\nexport { Button as default, FakeButton, LinkButton };\r\n","import brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { siteWide } from '@helpers/grid';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --sectionBackground: transparent;\r\n --sectionColour: ${brand.blue.navy};\r\n --sectionTitleColour: ${brand.blue.dark};\r\n\r\n scroll-margin: calc(var(--headerHeight, 0px) + ${fluid(16, 32)}) 0 0;\r\n color: var(--sectionColour);\r\n background-color: var(--sectionBackground);\r\n\r\n /* Background.Beige */\r\n &[data-background='beige'] {\r\n --sectionBackground: ${brand.global.beige};\r\n }\r\n\r\n /* Background.Blue */\r\n &[data-background='light-blue'] {\r\n --sectionBackground: ${brand.blue.light};\r\n }\r\n\r\n /* Background.Green */\r\n &[data-background='light-green'] {\r\n --sectionBackground: ${brand.green.light};\r\n }\r\n\r\n /* Background.Grey */\r\n &[data-background='grey'] {\r\n --sectionBackground: ${brand.grey.background};\r\n }\r\n\r\n /* Background.Navy */\r\n &[data-background='navy'] {\r\n --sectionColour: ${brand.global.white};\r\n --sectionBackground: ${brand.blue.navy};\r\n }\r\n\r\n &[data-flush='top'] {\r\n --sectionSpacingTop: 0;\r\n }\r\n\r\n &[data-flush='bottom'] {\r\n --sectionSpacingBottom: 0;\r\n }\r\n\r\n &[data-flush='both'] {\r\n --sectionSpacingTop: 0;\r\n --sectionSpacingBottom: 0;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n ${siteWide};\r\n\r\n padding-top: var(--sectionSpacingTop);\r\n padding-bottom: var(--sectionSpacingBottom);\r\n`;\r\nconst FocusAnchor = styled.button `\r\n ${ButtonReset};\r\n\r\n height: 0;\r\n width: 0;\r\n`;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n Inner,\r\n FocusAnchor,\r\n};\r\nexport default SectionWrapperStyles;\r\n","import * as React from 'react';\r\nimport SkipLink from '../SkipLink/SkipLink';\r\nimport S from './SectionWrapper.styles';\r\nexport var ContentType;\r\n(function (ContentType) {\r\n ContentType[\"Default\"] = \"mortgages\";\r\n ContentType[\"Intermediaries\"] = \"intermediaries\";\r\n ContentType[\"Savings\"] = \"savings\";\r\n})(ContentType || (ContentType = {}));\r\nexport var Background;\r\n(function (Background) {\r\n Background[\"Beige\"] = \"beige\";\r\n Background[\"Blue\"] = \"light-blue\";\r\n Background[\"Green\"] = \"light-green\";\r\n Background[\"Grey\"] = \"grey\";\r\n Background[\"Navy\"] = \"navy\";\r\n Background[\"White\"] = \"white\";\r\n})(Background || (Background = {}));\r\nconst SectionWrapper = React.forwardRef((props, ref) => {\r\n const { id, background, children, flush = 'none', layout = 'default', removeSkipLink, skipLinkType, translations, ...otherProps } = props;\r\n return (React.createElement(S.Container, { ref: ref, id: id, \"data-background\": background, \"data-flush\": flush, ...otherProps },\r\n !removeSkipLink ? (React.createElement(SkipLink, { type: skipLinkType, translations: translations })) : (React.createElement(S.FocusAnchor, { \"aria-label\": translations?.['global.skip.anchor'] })),\r\n renderLayout()));\r\n function renderLayout() {\r\n if (layout === 'fullWidth') {\r\n return children;\r\n }\r\n return React.createElement(S.Inner, null, children);\r\n }\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n","import { transition } from '@helpers/animate';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { Layers } from '@helpers/layers';\r\nimport ButtonStyles from '@stories/Components/Buttons/Button/Button.styles';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n ${siteWide};\r\n\r\n position: relative;\r\n height: 0;\r\n z-index: -1;\r\n\r\n &:focus-within {\r\n z-index: ${Layers.Navigation + 1};\r\n }\r\n\r\n ${ButtonStyles.Container} {\r\n ${transition('opacity, transform')};\r\n\r\n opacity: 0;\r\n transform: translate(3px, -100%);\r\n\r\n &:focus-visible,\r\n &.focus-ring {\r\n opacity: 1;\r\n transform: translate(3px, 3px);\r\n }\r\n }\r\n`;\r\nconst SkipLinkStyles = {\r\n Container,\r\n};\r\nexport default SkipLinkStyles;\r\n","import Button from '@stories/Components/Buttons/Button/Button';\r\nimport * as React from 'react';\r\nimport S from './SkipLink.styles';\r\nconst SkipLink = ({ type = 'inline', translations }) => {\r\n const ref = React.useRef(null);\r\n return (React.createElement(S.Container, { \"data-type\": type },\r\n React.createElement(Button, { ref: ref, buttonType: \"default\", onClick: () => {\r\n if (type === 'header') {\r\n skipToMain();\r\n }\r\n else {\r\n skipSection();\r\n }\r\n } }, type === 'header' ? (React.createElement(React.Fragment, null, translations?.['global.skip.main'] ?? '')) : (React.createElement(React.Fragment, null, translations?.['global.skip.section'] ?? '')))));\r\n function skipToMain() {\r\n const targetEl = document.getElementsByTagName('main')[0];\r\n if (!targetEl) {\r\n return;\r\n }\r\n targetEl.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n inline: 'start',\r\n });\r\n focusNext(targetEl);\r\n }\r\n function skipSection() {\r\n let wrapperEl = ref.current?.closest('div[class^=react_Components_]');\r\n // Should only ever occur in storybook\r\n if (!wrapperEl) {\r\n wrapperEl = ref.current?.closest('section');\r\n }\r\n let targetEl = wrapperEl?.nextElementSibling;\r\n // Last element in main wrapper, next element is footer\r\n if (!targetEl) {\r\n targetEl = wrapperEl?.parentElement?.nextElementSibling;\r\n }\r\n if (!targetEl) {\r\n return;\r\n }\r\n targetEl.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n inline: 'start',\r\n });\r\n focusNext(targetEl);\r\n }\r\n function focusNext(el) {\r\n const focusable = el.querySelectorAll('button');\r\n focusable[0]?.focus();\r\n }\r\n};\r\nexport default SkipLink;\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { contentStyles, paragraphLarge } from '@helpers/typography';\r\nimport SectionWrapper from '@stories/Components/Misc/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Misc/SectionWrapper/SectionWrapper.styles';\r\nimport { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n overflow: hidden;\r\n\r\n ${SectionWrapperStyles.Inner} {\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n gap: 16px;\r\n }\r\n`;\r\nconst Table = styled.div `\r\n grid-column: span 12;\r\n \r\n border: ${fluid(1, 2)} solid ${brand.blue.navy};\r\n border-radius: ${fluid(10, 20)} ${fluid(10, 20)} ${fluid(10, 20)} 0;\r\n overflow: hidden;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: 2 / span 10;\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n }\r\n`;\r\nconst TableRow = styled(m.div) ` \r\n border-bottom: ${fluid(1, 2)} solid ${brand.blue.navy};\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: span 12;\r\n display: grid;\r\n grid-template-columns: subgrid;\r\n }\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n`;\r\nconst Title = styled.button `\r\n ${ButtonReset};\r\n ${paragraphLarge};\r\n ${fonts.proximaNova.bold};\r\n margin: 0;\r\n display: flex;\r\n align-items: flex-start;\r\n text-align: left;\r\n justify-content: space-between;\r\n gap: 8px;\r\n grid-column: 1 / span 4;\r\n padding: 16px 40px 16px 16px;\r\n background-color: ${brand.global.beige};\r\n width: 100%;\r\n position: relative;\r\n\r\n @media ${from(Device.Tablet)} {\r\n cursor: initial;\r\n justify-content: flex-start;\r\n gap: 0;\r\n padding: ${fluid(16, 24)} ;\r\n }\r\n\r\n &.focus-ring {\r\n @media ${until(Device.Tablet)} {\r\n outline: auto;\r\n outline-offset: -5px;\r\n outline-width: 2px;\r\n outline-color: var(--textColour, var(--primaryColour));\r\n }\r\n }\r\n\r\n &[data-show='true'] {\r\n svg {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n\r\n svg {\r\n ${transition('transform', 0.25)};\r\n position: absolute;\r\n right: 16px;\r\n top: 20px;\r\n width: 18px;\r\n height: 18px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n display: none;\r\n }\r\n }\r\n`;\r\nconst ContentWrapper = styled(m.div) `\r\n overflow: hidden;\r\n grid-column: 5 / span 7;\r\n\r\n @media ${from(Device.Tablet)} {\r\n border-left: 2px solid ${brand.blue.navy};\r\n }\r\n`;\r\nconst Content = styled.div `\r\n ${contentStyles};\r\n --listColour: ${brand.blue.navy};\r\n \r\n padding: ${fluid(16, 24)};\r\n\r\n ul {\r\n ${fonts.proximaNova.regular};\r\n\r\n li {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n \r\n`;\r\nconst LinkArea = styled.div `\r\n grid-column: 1 / span 12;\r\n padding: 0;\r\n display: flex;\r\n justify-content: flex-end;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: 2 / span 10;\r\n }\r\n`;\r\nconst ProductDetailstyles = {\r\n Container,\r\n Content,\r\n ContentWrapper,\r\n LinkArea,\r\n Table,\r\n TableRow,\r\n Title,\r\n};\r\nexport default ProductDetailstyles;\r\n","import { getSystemIcon, SystemIcon } from '@helpers/icons';\r\nimport { Device, from } from '@helpers/media';\r\nimport { withMotionMax } from '@hoc/withMotionMax';\r\nimport { LinkButton } from '@stories/Components/Buttons/Button/Button';\r\nimport * as React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport { useMedia } from 'react-use';\r\nimport S from './ProductDetails.styles';\r\nconst TableRow = (props) => {\r\n const isDesktop = useMedia(from(Device.Tablet), false);\r\n const [showContent, setShowContent] = React.useState(true);\r\n return (React.createElement(S.TableRow, { initial: isDesktop ? 'opened' : showContent ? 'opened' : 'closed', animate: isDesktop ? 'opened' : showContent ? 'opened' : 'closed' },\r\n React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Title, { type: \"button\", \"data-show\": showContent, onClick: () => setShowContent(!showContent), \"aria-label\": !isDesktop\r\n ? `${props.title} ${props.translations?.['global.accordion.toggle']}`\r\n : undefined },\r\n props.title,\r\n \" \",\r\n getSystemIcon(SystemIcon.ChevronDown))),\r\n React.createElement(S.ContentWrapper, { variants: {\r\n closed: {\r\n height: 0,\r\n transitionEnd: {\r\n visibility: 'hidden',\r\n },\r\n },\r\n opened: {\r\n visibility: 'visible',\r\n height: 'auto',\r\n },\r\n } },\r\n React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: props.content } }))));\r\n};\r\nconst ProductDetails = (props) => {\r\n if (props.productDetails.length === 0) {\r\n return null;\r\n }\r\n return (React.createElement(S.Container, { translations: props.translations },\r\n React.createElement(S.Table, null, props.productDetails.map((row, index) => (React.createElement(TableRow, { key: index, title: row.title, content: row.content })))),\r\n props.link && (React.createElement(S.LinkArea, null,\r\n React.createElement(LinkButton, { buttonType: \"tertiary\", href: props.link?.url }, props.link?.text)))));\r\n};\r\nexport default withMotionMax(ProductDetails);\r\n","export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","import { useEffect, useState } from 'react';\nimport { isBrowser } from './misc/util';\nvar getInitialState = function (query, defaultState) {\n // Prevent a React hydration mismatch when a default value is provided by not defaulting to window.matchMedia(query).matches.\n if (defaultState !== undefined) {\n return defaultState;\n }\n if (isBrowser) {\n return window.matchMedia(query).matches;\n }\n // A default value has not been provided, and you are rendering on the server, warn of a possible hydration mismatch when defaulting to false.\n if (process.env.NODE_ENV !== 'production') {\n console.warn('`useMedia` When server side rendering, defaultState should be defined to prevent a hydration mismatches.');\n }\n return false;\n};\nvar useMedia = function (query, defaultState) {\n var _a = useState(getInitialState(query, defaultState)), state = _a[0], setState = _a[1];\n useEffect(function () {\n var mounted = true;\n var mql = window.matchMedia(query);\n var onChange = function () {\n if (!mounted) {\n return;\n }\n setState(!!mql.matches);\n };\n mql.addEventListener('change', onChange);\n setState(mql.matches);\n return function () {\n mounted = false;\n mql.removeEventListener('change', onChange);\n };\n }, [query]);\n return state;\n};\nexport default useMedia;\n"],"names":["Layers","Navigation","Modal","css","brand","grey","light","blue","navy","headingStyles","fonts","proximaNova","bold","fluid","h1","h2","h3","h4","h5","h6","paragraphMargin","paragraphStyles","regular","paragraphLarge","paragraphRegular","paragraphSmall","subtitle","dark","link","transition","blockquote","boldItalic","medium","green","default","svgQuote","table","global","beige","background","white","contentStyles","semiBold","scrollbars","withMotionMax","WrappedComponent","displayName","name","ComponentWithMotionMax","props","React","LazyMotion","features","domMax","strict","hoverStyles","IconWrapper","SystemIcon","ArrowRight","ArrowDown","DefaultButtonStyles","ButtonReset","until","Device","TabletLarge","SavingsButtonStyles","TertiaryButtonStyles","IntermediariesButtonStyles","Container","styled","button","withConfig","componentId","CommonButtonTextStyles","Text","span","srOnly","ButtonIconWrapperStyles","div","Loader","Button","_ref","ref","buttonType","children","fillDirection","icon","iconOnly","iconPosition","otherProps","FocusRing","focusRingClass","S","None","getSystemIcon","FakeButton","_ref2","as","LinkButton","_ref3","section","Inner","siteWide","FocusAnchor","ContentType","Background","SectionWrapper","id","flush","layout","removeSkipLink","skipLinkType","translations","SkipLink","type","ButtonStyles","_translations$global","_translations$global2","onClick","targetEl","document","getElementsByTagName","scrollIntoView","behavior","block","inline","focusNext","skipToMain","_ref$current","_wrapperEl","wrapperEl","current","closest","_ref$current2","nextElementSibling","_wrapperEl2","_wrapperEl2$parentEle","parentElement","skipSection","el","_focusable$","querySelectorAll","focus","SectionWrapperStyles","Table","from","Tablet","TableRow","m","Title","ContentWrapper","Content","LinkArea","_props$translations","isDesktop","useMedia","showContent","setShowContent","initial","animate","undefined","title","ChevronDown","variants","closed","height","transitionEnd","visibility","opened","dangerouslySetInnerHTML","__html","content","_props$link","_props$link2","productDetails","length","map","row","index","key","href","url","text","isBrowser","window","query","defaultState","_a","useState","matchMedia","matches","getInitialState","state","setState","useEffect","mounted","mql","onChange","addEventListener","removeEventListener"],"sourceRoot":""}