{"version":3,"file":"3903-086a39597392822322de.js","mappings":"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","sources":["webpack://royal-college-radiologists/./src/helpers/global.ts","webpack://royal-college-radiologists/./src/helpers/utils.ts","webpack://royal-college-radiologists/./src/hoc/withMotion.tsx","webpack://royal-college-radiologists/./src/stories/Components/Buttons/GeneralButton/Button.styles.tsx","webpack://royal-college-radiologists/./src/stories/Components/Buttons/GeneralButton/Button.tsx","webpack://royal-college-radiologists/./node_modules/universal-cookie/es6/utils.js","webpack://royal-college-radiologists/./node_modules/universal-cookie/es6/Cookies.js","webpack://royal-college-radiologists/./node_modules/react-cookie/es6/Cookies.js","webpack://royal-college-radiologists/./node_modules/react-cookie/es6/CookiesContext.js","webpack://royal-college-radiologists/./src/stories/Widgets/AlertsBanner/AlertsBanner.styles.ts","webpack://royal-college-radiologists/./src/stories/Widgets/AlertsBanner/AlertsBanner.tsx","webpack://royal-college-radiologists/./node_modules/react-cookie/es6/useCookies.js","webpack://royal-college-radiologists/./node_modules/react-cookie/es6/utils.js","webpack://royal-college-radiologists/./node_modules/cookie/index.js","webpack://royal-college-radiologists/./node_modules/framer-motion/dist/es/animation/animate.mjs"],"sourcesContent":["import { css } from 'styled-components';\r\nexport default {\r\n navHeight: 107,\r\n navHeightTablet: 80,\r\n navHeightMobile: 59,\r\n};\r\nexport const ButtonReset = css `\r\n border: none;\r\n outline: none;\r\n padding: 0px;\r\n background: none;\r\n border-radius: 0px;\r\n`;\r\n","export function sleep(ms) {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\nexport function formatNumberValue(value, maximumDecimals, minimumDigits) {\r\n const formatter = new Intl.NumberFormat(undefined, {\r\n maximumFractionDigits: maximumDecimals ?? 0,\r\n minimumIntegerDigits: minimumDigits ?? 1,\r\n });\r\n return formatter.format(value);\r\n}\r\n/**\r\n * Rule structure for react-hook-form\r\n */\r\nexport const EMAIL_RULE = {\r\n message: `Please enter a valid email address`,\r\n value: /^[\\w\\-.\\d*]+@[\\w\\-\\d.]+(\\.\\w*)$/,\r\n};\r\nexport function generateAuthorsString(names) {\r\n const string = names.length > 1\r\n ? `${names.slice(0, -1).join(', ')} and ${names.slice(-1)}`\r\n : { 0: '', 1: names[0] }[names.length];\r\n return `Article by: ${string}`;\r\n}\r\nexport const highlightTitleWords = (title) => title.replaceAll(/\\*([\\w\\W]+)\\*/g, '$1');\r\n","import { domAnimation, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotion(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotion = (props) => {\r\n return (React.createElement(LazyMotion, { features: domAnimation, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotion.displayName = `withMotion(${displayName})`;\r\n return ComponentWithMotion;\r\n}\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 { Device, until } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Text = styled.div ``;\r\nconst PrimaryStyles = css `\r\n border: 0;\r\n background-color: ${brand.secondary.red};\r\n color: ${brand.primary.purple};\r\n border-radius: 1000000px;\r\n overflow: hidden;\r\n\r\n &:before {\r\n ${transition('transform')};\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${brand.primary.offWhite};\r\n border-radius: 1000000px;\r\n transform: translateX(calc(-100% - 2px));\r\n }\r\n\r\n [data-variant='light'] & {\r\n span& {\r\n button.focus-ring &,\r\n button:hover &,\r\n a.focus-ring & {\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover & { \r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:hover,\r\n &:active {\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.purple};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.purple};\r\n }\r\n }\r\n\r\n [data-variant='dark'] & {\r\n span& {\r\n button.focus-ring &,\r\n button:hover &,\r\n a.focus-ring & {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover & { \r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.offWhite};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.offWhite};\r\n\r\n &:before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n background-color: ${brand.primary.offWhite};\r\n\r\n &:before {\r\n transform: translateX(0);\r\n }\r\n }\r\n`;\r\nconst OutlineStyles = css `\r\n background-color: transparent;\r\n border-radius: 1000000px;\r\n overflow: hidden;\r\n\r\n &:before {\r\n ${transition('transform')};\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${brand.primary.offWhite};\r\n border-radius: 1000000px;\r\n transform: translateX(calc(-100% - 2px));\r\n }\r\n\r\n [data-variant='light'] & {\r\n color: ${brand.primary.purple};\r\n border: 1px solid ${brand.primary.purple};\r\n\r\n span& {\r\n button.focus-ring &,\r\n button:hover &,\r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover & { \r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.purple};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.purple};\r\n }\r\n }\r\n\r\n [data-variant='dark'] & {\r\n color: ${brand.primary.offWhite};\r\n border: 1px solid ${brand.primary.offWhite};\r\n\r\n span& {\r\n button.focus-ring &,\r\n \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:hover,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.offWhite};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n span& {\r\n button.focus-ring &, \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst OutlineAltStyles = css `\r\n background-color: transparent;\r\n border-radius: 1000000px;\r\n overflow: hidden;\r\n\r\n &:before {\r\n ${transition('transform')};\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${brand.secondary.red};\r\n border-radius: 1000000px;\r\n transform: translateX(calc(-100% - 2px));\r\n }\r\n\r\n [data-variant='light'] & {\r\n color: ${brand.primary.purple};\r\n border: 1px solid ${brand.primary.purple};\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.purple};\r\n }\r\n }\r\n\r\n [data-variant='dark'] & {\r\n color: ${brand.primary.offWhite};\r\n border: 1px solid ${brand.primary.offWhite};\r\n\r\n span& {\r\n button.focus-ring &, \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.offWhite};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.secondary.red};\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n span& {\r\n button.focus-ring &, \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst Wave = styled.div `\r\n ${transition('max-width')};\r\n\r\n overflow: hidden;\r\n max-width: 0;\r\n color: ${brand.secondary.red};\r\n\r\n svg {\r\n display: block;\r\n margin-right: 5px;\r\n height: 30px;\r\n }\r\n`;\r\nconst Arrow = styled.div `\r\n ${transition('transform')};\r\n\r\n margin: 0 0 0 5px;\r\n\r\n svg {\r\n display: block;\r\n height: 12px;\r\n }\r\n`;\r\nconst TextOnlyStyles = css `\r\n display: inline-flex;\r\n align-items: center;\r\n border: 1px solid transparent;\r\n background: none;\r\n color: ${brand.primary.purple};\r\n padding: 0;\r\n\r\n [data-variant='dark'] & {\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n ${Text} {\r\n margin-bottom: 2px;\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n span& {\r\n button.focus-ring &,\r\n a.focus-ring & {\r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &:hover,\r\n &:active,\r\n &.focus-ring {\r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst Icon = styled.div `\r\n display: inline-flex;\r\n align-items: center;\r\n margin: 0 0 0 8px;\r\n\r\n svg {\r\n max-height: 24px;\r\n width: 20px;\r\n }\r\n\r\n &[data-position='left'] {\r\n order: -1;\r\n margin: 0 8px 0 0;\r\n }\r\n`;\r\nconst Button = styled.button `\r\n ${transition('color, background-color, border-color')};\r\n\r\n display: inline-flex;\r\n padding: 10px ${fluid(20, 25)} 12px;\r\n height: ${fluid(46, 48)};\r\n user-select: none;\r\n text-decoration: none;\r\n position: relative;\r\n align-items: center;\r\n\r\n ${Text} {\r\n ${fonts.graphikCompact.medium};\r\n\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(24, 26)};\r\n display: inline-block;\r\n vertical-align: middle;\r\n position: relative;\r\n z-index: 2;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.66;\r\n pointer-events: none;\r\n\r\n &:hover {\r\n opacity: 0.66;\r\n }\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('color, background-color, border-color, transform')};\r\n\r\n span& {\r\n button:active &,\r\n a:active & {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n }\r\n\r\n ${({ branding }) => {\r\n switch (branding) {\r\n case 'textOnly':\r\n return TextOnlyStyles;\r\n case 'solid':\r\n return PrimaryStyles;\r\n case 'outline':\r\n return OutlineStyles;\r\n case 'outline-alt':\r\n return OutlineAltStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n`;\r\nconst ArrowButton = styled.button `\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n background: transparent;\r\n border: none;\r\n width: ${fluid(58, 60)};\r\n height: ${fluid(48, 50)};\r\n padding: 0;\r\n color: var(--fgColour, ${brand.primary.purple});\r\n\r\n &:first-child {\r\n justify-content: flex-end;\r\n\r\n svg {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.66;\r\n pointer-events: none;\r\n\r\n &:hover {\r\n opacity: 0.66;\r\n }\r\n }\r\n\r\n svg {\r\n display: block;\r\n height: ${fluid(12, 15)};\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('transform', 0.15)};\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n`;\r\nconst ButtonInner = styled.div `\r\n ${transition('max-width')};\r\n\r\n border: 2px solid var(--fgColour, ${brand.primary.purple});\r\n border-radius: 5000000px;\r\n max-width: ${fluid(46, 48)};\r\n width: ${fluid(56, 58)};\r\n height: ${fluid(46, 48)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n ${ArrowButton}.focus-ring & {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n ${ArrowButton}.focus-ring & {\r\n max-width: ${fluid(56, 58)};\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:hover & {\r\n max-width: ${fluid(56, 58)};\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n max-width: ${fluid(56, 58)};\r\n }\r\n`;\r\nconst ButtonIcon = styled.div `\r\n ${transition('transform')};\r\n position: relative;\r\n line-height: 0;\r\n transform: translateX(0);\r\n\r\n ${ArrowButton}:last-child.focus-ring &{\r\n transform: translateX(7px);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:last-child:hover & {\r\n transform: translateX(7px);\r\n }\r\n }\r\n\r\n ${ArrowButton}.focus-ring & {\r\n transform: translateX(-7px);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:hover & {\r\n transform: translateX(-7px);\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n transform: translateX(-7px);\r\n\r\n ${ArrowButton}:last-child & {\r\n transform: translateX(7px);\r\n }\r\n }\r\n`;\r\nconst HoverLine = styled.div `\r\n ${transition('transform')};\r\n\r\n position: absolute;\r\n left: 0;\r\n top: 50%;\r\n width: 22px;\r\n height: 3px;\r\n transform-origin: 0;\r\n transform: translate(2px, -50%) scaleX(0);\r\n background-color: var(--fgColour, ${brand.primary.purple});\r\n\r\n ${ArrowButton}:last-child & {\r\n transform-origin: 100%;\r\n left: auto;\r\n right: 0;\r\n transform: translate(-2px, -50%) scaleX(0);\r\n }\r\n\r\n ${ArrowButton}.focus-ring & {\r\n transform: translate(2px, -50%) scaleX(1);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:hover & {\r\n transform: translate(2px, -50%) scaleX(1);\r\n }\r\n }\r\n\r\n ${ArrowButton}:last-child.focus-ring & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:last-child:hover & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n transform: translate(2px, -50%) scaleX(1);\r\n\r\n ${ArrowButton}:last-child & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n }\r\n`;\r\nexport const ButtonStyles = {\r\n Arrow,\r\n ArrowButton,\r\n Button,\r\n ButtonIcon,\r\n ButtonInner,\r\n HoverLine,\r\n Icon,\r\n Text,\r\n Wave,\r\n};\r\n","import { getSvgFromSystem, SystemIcon } from '@helpers/systemIcons';\r\nimport React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport { ButtonStyles } from './Button.styles';\r\nconst Button = ({ branding, className, disabled, title, toggleOn = false, type = 'button', onClick, icon, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(ButtonStyles.Button, { className: className, branding: branding, disabled: disabled, type: type, onClick: onClick, \"data-toggle-on\": toggleOn, \"data-branding\": branding, ...otherProps },\r\n branding === 'textOnly' && (React.createElement(ButtonStyles.Wave, null, getSvgFromSystem(SystemIcon.Wave1))),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n icon ? (React.createElement(ButtonStyles.Icon, { \"data-position\": iconPosition }, icon)) : branding === 'textOnly' ? (React.createElement(ButtonStyles.Arrow, null, getSvgFromSystem(SystemIcon.ArrowRight))) : null)));\r\n};\r\nconst FakeButton = ({ branding, className, title, icon, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(ButtonStyles.Button, { className: className, branding: branding, as: \"span\", ...otherProps },\r\n branding === 'textOnly' && (React.createElement(ButtonStyles.Wave, null, getSvgFromSystem(SystemIcon.Wave1))),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n icon ? (React.createElement(ButtonStyles.Icon, { \"data-position\": iconPosition }, icon)) : branding === 'textOnly' ? (React.createElement(ButtonStyles.Arrow, null, getSvgFromSystem(SystemIcon.ArrowRight))) : null));\r\n};\r\nconst LinkButton = ({ branding, className, href, target = '_self', title, icon, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(ButtonStyles.Button, { className: className, as: \"a\", branding: branding, href: href, target: target, ...otherProps },\r\n branding === 'textOnly' && (React.createElement(ButtonStyles.Wave, null, getSvgFromSystem(SystemIcon.Wave1))),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n icon ? (React.createElement(ButtonStyles.Icon, { \"data-position\": iconPosition }, icon)) : branding === 'textOnly' ? (React.createElement(ButtonStyles.Arrow, null, getSvgFromSystem(SystemIcon.ArrowRight))) : null)));\r\n};\r\nconst ArrowButton = ({ labelText, disabled, onClick, ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(ButtonStyles.ArrowButton, { \"aria-label\": labelText, disabled: disabled, onClick: onClick, ...otherProps },\r\n React.createElement(ButtonStyles.ButtonInner, null,\r\n React.createElement(ButtonStyles.ButtonIcon, null,\r\n getSvgFromSystem(SystemIcon.Chevron),\r\n React.createElement(ButtonStyles.HoverLine, null))))));\r\n};\r\nexport { Button as default, LinkButton, ArrowButton, FakeButton };\r\n","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from 'universal-cookie';\r\nexport default Cookies;\r\n","import * as React from 'react';\r\nimport Cookies from './Cookies';\r\nvar CookiesContext = React.createContext(new Cookies());\r\nexport var Provider = CookiesContext.Provider, Consumer = CookiesContext.Consumer;\r\nexport default CookiesContext;\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { baseGrid } from '@helpers/grid';\r\nimport { Layers } from '@helpers/layers';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { label, paragraphLarge } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --fgColour: ${brand.primary.purple};\r\n\r\n position: fixed;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n z-index: ${Layers.Header + 1};\r\n\r\n /* Ensure space doesn't interfere with content beneath */\r\n pointer-events: none;\r\n\r\n &[data-type='alert'] {\r\n --bgColour: ${brand.secondary.red};\r\n --buttonColour: ${brand.primary.purple};\r\n }\r\n\r\n &[data-type='notification'] {\r\n --bgColour: ${brand.primary.offWhite};\r\n --buttonColour: ${brand.tertiary.darkBlue};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${baseGrid};\r\n }\r\n\r\n .equally-ai___high-saturation & {\r\n filter: saturate(200%);\r\n }\r\n\r\n .equally-ai___reverse-contrast & {\r\n filter: invert(100%);\r\n }\r\n\r\n .equally-ai___monochrome-contrast & {\r\n filter: grayscale(100%);\r\n }\r\n\r\n .equally-ai___reverse-contrast.equally-ai___monochrome-contrast & {\r\n filter: grayscale(100%) invert(100%);\r\n }\r\n`;\r\nconst Banner = styled.div `\r\n ${transition('opacity, transform', 1.25)};\r\n\r\n position: relative;\r\n pointer-events: all;\r\n background-color: var(--bgColour);\r\n color: var(--fgColour);\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: ${fluid(8, 60)};\r\n padding: ${fluid(16, 26)} 38px;\r\n text-align: center;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 2 / span 10;\r\n flex-direction: row;\r\n justify-content: center;\r\n text-align: left;\r\n padding-left: ${fluid(62, 80)};\r\n padding-right: ${fluid(62, 80)};\r\n }\r\n\r\n ${Container}[data-visible='true'] & {\r\n transform: translateY(0);\r\n opacity: 1;\r\n }\r\n\r\n ${Container}[data-visible='false'] & {\r\n transform: translateY(100%);\r\n opacity: 0;\r\n }\r\n`;\r\nconst Label = styled.p `\r\n ${label};\r\n\r\n margin: 0 0 8px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-bottom: 6px;\r\n }\r\n`;\r\nconst BannerText = styled.p `\r\n ${paragraphLarge};\r\n\r\n margin: 0;\r\n\r\n > span {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: ${fluid(34, 50)};\r\n width: ${fluid(28, 42)};\r\n font-size: ${fluid(22, 24)};\r\n background-color: ${brand.primary.offWhite};\r\n box-shadow: inset 0px 0px 6px 3px rgba(0, 0, 0, 0.2);\r\n border-radius: 4px;\r\n margin: 0 ${fluid(2, 3)};\r\n }\r\n`;\r\nconst Divider = styled.div `\r\n display: none;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: block;\r\n width: 2px;\r\n height: ${fluid(42, 50)};\r\n background-color: currentColor;\r\n }\r\n`;\r\nconst Close = styled.button `\r\n ${ButtonReset};\r\n\r\n position: absolute;\r\n display: grid;\r\n place-content: center;\r\n width: 48px;\r\n height: 48px;\r\n top: 2px;\r\n right: 2px;\r\n color: var(--buttonColour);\r\n\r\n > svg {\r\n ${transition('transform')};\r\n\r\n display: block;\r\n height: 16px;\r\n width: 16px;\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n &.focus-ring,\r\n &:hover {\r\n > svg {\r\n transform: scale(1.15);\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n top: 50%;\r\n right: ${fluid(8, 24)};\r\n transform: translateY(-50%);\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('transform', 0.15)};\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n`;\r\nconst AlertsBannerStyles = {\r\n Container,\r\n Banner,\r\n Close,\r\n BannerText,\r\n Label,\r\n Divider,\r\n};\r\nexport default AlertsBannerStyles;\r\n","import { getSvgFromSystem, SystemIcon } from '@helpers/systemIcons';\r\nimport { formatNumberValue } from '@helpers/utils';\r\nimport { withMotion } from '@hoc/withMotion';\r\nimport { LinkButton } from '@stories/Components/Buttons/GeneralButton/Button';\r\nimport { animate, useReducedMotion } from 'framer-motion';\r\nimport * as React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport { useCookies } from 'react-cookie';\r\nimport S from './AlertsBanner.styles';\r\nconst AlertsBanner = (props) => {\r\n const prefersReducedMotion = useReducedMotion();\r\n const cookieName = props.name ?? 'notification-cookie';\r\n const [cookies, setCookie] = useCookies([cookieName]);\r\n const [animation, setAnimation] = React.useState(false);\r\n const [count, setCount] = React.useState(wrapNumbers(formatNumberValue(props.count?.from ?? 0, 0, 2).split('')));\r\n /** After .6s set animate state to true so banner will slide in if it should be displayed */\r\n React.useEffect(() => {\r\n setTimeout(() => setAnimation(true), 600);\r\n }, []);\r\n /** If using count, count up once the banner has slid in */\r\n React.useEffect(() => {\r\n if (!props.count) {\r\n return;\r\n }\r\n const value = props.count?.to ?? 0;\r\n // Only perform animation if user hasn't doesn't prefer reduced motion\r\n if (prefersReducedMotion) {\r\n const numbers = formatNumberValue(value, 0, 2).split('');\r\n const number = wrapNumbers(numbers);\r\n setCount(number);\r\n }\r\n else {\r\n const controls = animate(props.count.from, value, {\r\n type: 'tween',\r\n delay: 1.5,\r\n duration: 1.5,\r\n ease: 'easeOut',\r\n onUpdate(val) {\r\n const numbers = formatNumberValue(val, 0, 2).split('');\r\n const number = wrapNumbers(numbers);\r\n setCount(number);\r\n },\r\n });\r\n return () => controls.stop();\r\n }\r\n }, [props.count?.to]);\r\n if (!props.text) {\r\n return null;\r\n }\r\n return (React.createElement(S.Container, { \"data-type\": props.type, \"data-visible\": !cookies[cookieName] && animation },\r\n React.createElement(S.Banner, null,\r\n React.createElement(\"span\", null,\r\n props.title && React.createElement(S.Label, null, props.title),\r\n React.createElement(S.BannerText, { dangerouslySetInnerHTML: {\r\n __html: props.count ? props.text.replace('##count##', count) : props.text,\r\n } })),\r\n props.cta && (React.createElement(React.Fragment, null,\r\n React.createElement(S.Divider, null),\r\n React.createElement(\"span\", { \"data-variant\": \"light\" },\r\n React.createElement(LinkButton, { branding: \"outline\", href: props.cta.url, target: props.cta.target, title: props.cta.text ?? `Read More` })))),\r\n React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Close, { \"aria-label\": \"Dismiss Banner\", onClick: () => setCookie(cookieName, true, { path: '/', maxAge: 24 * 60 * 60 }) }, getSvgFromSystem(SystemIcon.Cross))))));\r\n function wrapNumbers(value) {\r\n return value.map((n) => `${n}`).join('');\r\n }\r\n};\r\nexport default withMotion(AlertsBanner);\r\n","import { useContext, useLayoutEffect, useState, useRef, useMemo } from 'react';\r\nimport CookiesContext from './CookiesContext';\r\nimport { isInBrowser } from './utils';\r\nexport default function useCookies(dependencies) {\r\n var cookies = useContext(CookiesContext);\r\n if (!cookies) {\r\n throw new Error('Missing ');\r\n }\r\n var initialCookies = cookies.getAll();\r\n var _a = useState(initialCookies), allCookies = _a[0], setCookies = _a[1];\r\n var previousCookiesRef = useRef(allCookies);\r\n if (isInBrowser()) {\r\n useLayoutEffect(function () {\r\n function onChange() {\r\n var newCookies = cookies.getAll();\r\n if (shouldUpdate(dependencies || null, newCookies, previousCookiesRef.current)) {\r\n setCookies(newCookies);\r\n }\r\n previousCookiesRef.current = newCookies;\r\n }\r\n cookies.addChangeListener(onChange);\r\n return function () {\r\n cookies.removeChangeListener(onChange);\r\n };\r\n }, [cookies]);\r\n }\r\n var setCookie = useMemo(function () { return cookies.set.bind(cookies); }, [cookies]);\r\n var removeCookie = useMemo(function () { return cookies.remove.bind(cookies); }, [cookies]);\r\n return [allCookies, setCookie, removeCookie];\r\n}\r\nfunction shouldUpdate(dependencies, newCookies, oldCookies) {\r\n if (!dependencies) {\r\n return true;\r\n }\r\n for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) {\r\n var dependency = dependencies_1[_i];\r\n if (newCookies[dependency] !== oldCookies[dependency]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n","export function isInBrowser() {\r\n return (typeof window !== 'undefined' &&\r\n typeof window.document !== 'undefined' &&\r\n typeof window.document.createElement !== 'undefined');\r\n}\r\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","import { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { startAnimation } from './utils/transitions.mjs';\n\n/**\n * Animate a single value or a `MotionValue`.\n *\n * The first argument is either a `MotionValue` to animate, or an initial animation value.\n *\n * The second is either a value to animate to, or an array of keyframes to animate through.\n *\n * The third argument can be either tween or spring options, and optional lifecycle methods: `onUpdate`, `onPlay`, `onComplete`, `onRepeat` and `onStop`.\n *\n * Returns `AnimationPlaybackControls`, currently just a `stop` method.\n *\n * ```javascript\n * const x = useMotionValue(0)\n *\n * useEffect(() => {\n * const controls = animate(x, 100, {\n * type: \"spring\",\n * stiffness: 2000,\n * onComplete: v => {}\n * })\n *\n * return controls.stop\n * })\n * ```\n *\n * @public\n */\nfunction animate(from, to, transition) {\n if (transition === void 0) { transition = {}; }\n var value = isMotionValue(from) ? from : motionValue(from);\n startAnimation(\"\", value, to, transition);\n return {\n stop: function () { return value.stop(); },\n isAnimating: function () { return value.isAnimating(); },\n };\n}\n\nexport { animate };\n"],"names":["ButtonReset","css","sleep","ms","Promise","resolve","setTimeout","formatNumberValue","value","maximumDecimals","minimumDigits","Intl","NumberFormat","undefined","maximumFractionDigits","minimumIntegerDigits","format","EMAIL_RULE","message","generateAuthorsString","names","length","slice","join","highlightTitleWords","title","replaceAll","withMotion","WrappedComponent","displayName","name","ComponentWithMotion","props","React","LazyMotion","features","domAnimation","strict","Text","styled","div","withConfig","componentId","PrimaryStyles","brand","secondary","red","primary","purple","transition","offWhite","OutlineStyles","OutlineAltStyles","Wave","Arrow","TextOnlyStyles","Icon","Button","button","fluid","fonts","graphikCompact","medium","until","Device","TabletLarge","_ref","branding","ArrowButton","ButtonInner","ButtonStyles","ButtonIcon","HoverLine","className","disabled","toggleOn","type","onClick","icon","iconPosition","otherProps","FocusRing","focusRingClass","getSvgFromSystem","SystemIcon","Wave1","ArrowRight","FakeButton","_ref2","as","LinkButton","_ref3","href","target","_ref4","labelText","Chevron","readCookie","options","cleanValue","substr","cleanupCookieValue","doNotParse","isParsingCookie","JSON","parse","e","__assign","Object","assign","t","s","i","n","arguments","p","prototype","hasOwnProperty","call","apply","this","Cookies","cookies","_this","changeListeners","HAS_DOCUMENT_COOKIE","cookie","parseCookies","document","catch","_updateBrowserValues","parseOptions","_emitChange","params","get","getAll","result","name_1","set","_a","stringify","remove","finalOptions","expires","Date","maxAge","addChangeListener","callback","push","removeChangeListener","idx","indexOf","splice","CookiesContext","Provider","Consumer","Container","section","Layers","Header","tertiary","darkBlue","from","baseGrid","Banner","Label","label","BannerText","paragraphLarge","Divider","Close","_props$name","_props$count$from","_props$count","_props$count3","_props$cta$text","prefersReducedMotion","useReducedMotion","cookieName","setCookie","dependencies","useContext","Error","initialCookies","useState","allCookies","setCookies","previousCookiesRef","useRef","window","createElement","useLayoutEffect","onChange","newCookies","oldCookies","_i","dependencies_1","dependency","shouldUpdate","current","useMemo","bind","useCookies","animation","setAnimation","count","setCount","wrapNumbers","split","_props$count$to","_props$count2","to","controls","animate","delay","duration","ease","onUpdate","val","number","stop","text","S","dangerouslySetInnerHTML","__html","replace","cta","url","path","Cross","map","exports","str","TypeError","obj","opt","pairs","dec","decode","pair","index","key","substring","trim","tryDecode","enc","encode","fieldContentRegExp","test","isNaN","isFinite","Math","floor","domain","toUTCString","httpOnly","secure","sameSite","toLowerCase","decodeURIComponent","encodeURIComponent","isAnimating"],"sourceRoot":""}