{"version":3,"file":"9761-d7eb875032ace9c6f0bd.js","mappings":"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","sources":["webpack://brc/./src/helpers/aspectRatio.ts","webpack://brc/./src/helpers/image.ts","webpack://brc/./src/hooks/useMedia.ts","webpack://brc/./src/stories/Components/Misc/RegionSelector/RegionSelector.styles.ts","webpack://brc/./src/stories/Components/Misc/RegionSelector/RegionSelector.tsx","webpack://brc/./src/img/logos/brc-purple.svg","webpack://brc/./src/img/logos/nirc-purple.svg","webpack://brc/./src/img/logos/src-purple.svg","webpack://brc/./src/img/logos/wrc-purple.svg","webpack://brc/./src/stories/Widgets/Global/Header/AccountDropdown/AccountDropdown.styles.ts","webpack://brc/./src/stories/Widgets/Global/Header/AccountDropdown/AccountDropdown.tsx","webpack://brc/./src/stories/Widgets/Global/Header/AnnouncementBar/AnnouncementBar.styles.ts","webpack://brc/./src/stories/Widgets/Global/Header/AnnouncementBar/AnnouncementBar.tsx","webpack://brc/./src/stories/Widgets/Global/Header/Navigation/Navigation.styles.ts","webpack://brc/./src/stories/Widgets/Global/Header/Header.styles.ts","webpack://brc/./src/stories/Widgets/Global/Header/Navigation/Navigation.tsx","webpack://brc/./src/stories/Widgets/Global/Header/Header.tsx"],"sourcesContent":["import { css } from 'styled-components';\r\n/**\r\n * Returns the aspect ratio of the given width and height as a percentage.\r\n */\r\nexport function aspectRatio(width, height) {\r\n return (height / width) * 100;\r\n}\r\n/**\r\n * Re-usable styles for image container where the\r\n * image needs to maintain it's aspect ratio\r\n *\r\n * @param width\r\n * @param height\r\n * @returns\r\n */\r\nexport function imageWrapperPreserveRatio(width, height) {\r\n if (!width && !height) {\r\n return null;\r\n }\r\n return css `\r\n position: relative;\r\n overflow: hidden;\r\n overflow: clip;\r\n width: 100%;\r\n aspect-ratio: ${width / height};\r\n `;\r\n}\r\n/**\r\n * Calculates the percentage bottom padding\r\n * required to maintain a certain ratio.\r\n *\r\n * To be used in cases where the image ratio\r\n * changes based on viewport.\r\n *\r\n * @param width\r\n * @param height\r\n * @returns padding-bottom: {ratioPercentage}%\r\n */\r\nexport function imageWrapperRatioPadding(width, height) {\r\n if (!width && !height) {\r\n return '';\r\n }\r\n const ratioPercentage = aspectRatio(width, height).toFixed(2);\r\n return `padding-bottom: ${ratioPercentage}%`;\r\n}\r\n/**\r\n * Re-usable styles for an image placed within\r\n * a container maintaining aspect ratio\r\n */\r\nexport const imageCoverContainer = (relative) => css `\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n ${!relative && 'position: absolute; top: 0;left: 0;'}\r\n`;\r\n","import queryString from 'query-string';\r\n/**\r\n * Create an image URL for ImageProcessor\r\n * @param image The image model\r\n * @param imageParams The image parameters\r\n * @returns The image URL\r\n */\r\nexport function imageUrl(image, imageParams) {\r\n if (!image) {\r\n return '';\r\n }\r\n const params = {\r\n rxy: image.focalPoint ? `${image.focalPoint.top},${image.focalPoint.left}` : undefined,\r\n ...imageParams,\r\n };\r\n if (params.width && params.heightratio) {\r\n params.height = Math.round(params.width / params.heightratio);\r\n }\r\n if (params.height && params.widthratio) {\r\n params.width = Math.round(params.height / params.widthratio);\r\n }\r\n const paramsString = queryString.stringify(params);\r\n return `${image.src}${paramsString ? `?${queryString.stringify(params)}` : ''}`;\r\n}\r\nexport function getSrcs(image, upper, lower, steps, ratio, imageParams) {\r\n if (!image) {\r\n return undefined;\r\n }\r\n const sizes = getRange(upper, lower, steps);\r\n const sizesArr = sizes.map((size) => `${imageUrl(image, { ...imageParams, width: size, heightratio: ratio })} ${size}w`);\r\n return {\r\n src: sizesArr[0].split(' ')[0],\r\n srcSet: sizesArr.join(','),\r\n };\r\n}\r\nexport function getRetinaSrcs(image, width, ratio) {\r\n const dprs = [1, 1.5, 2, 2.5, 3];\r\n const dprsArr = dprs.map((dpr) => `${imageUrl(image, { width: width * dpr, heightratio: ratio })} ${dpr}x`);\r\n return {\r\n src: dprsArr[0].split(' ')[0],\r\n srcSet: dprsArr.join(','),\r\n };\r\n}\r\nfunction getRange(upper, lower, steps) {\r\n const difference = upper - lower;\r\n const increment = difference / (steps - 1);\r\n return [\r\n lower,\r\n ...Array(steps - 2)\r\n .fill('')\r\n .map((_, index) => Math.ceil(lower + increment * (index + 1))),\r\n upper,\r\n ];\r\n}\r\n","import { useEffect, useState } from 'react';\r\n/**\r\n * Store a value in state based on the specified media queries.\r\n * @param {Array} queries\r\n * @param {Array} values\r\n * @param {T} defaultValue\r\n */\r\nfunction useMedia(queries, values, defaultValue) {\r\n // Function that gets value based on matching media query\r\n const getValue = () => {\r\n // Get index of first media query that matches\r\n const index = mediaQueryLists.findIndex((mql) => mql.matches);\r\n // Return related value or defaultValue if none\r\n return typeof values[index] !== 'undefined' ? values[index] : defaultValue;\r\n };\r\n // State and setter for matched value\r\n const [value, setValue] = useState(defaultValue);\r\n const [mediaQueryLists, setMediaQueryLists] = useState([]);\r\n useEffect(() => {\r\n // Array containing a media query list for each query\r\n setMediaQueryLists(queries.map((query) => window.matchMedia(query)));\r\n }, []);\r\n useEffect(() => {\r\n setValue(getValue);\r\n // Event listener callback\r\n // Note: By defining getValue outside of useEffect we ensure that it has ...\r\n // ... current values of hook args (as this hook callback is created once on mount).\r\n const handler = () => setValue(getValue);\r\n // Set a listener for each media query with above handler as callback.\r\n mediaQueryLists.forEach((mql) => mql.addListener(handler));\r\n // Remove listeners on cleanup\r\n return () => mediaQueryLists.forEach((mql) => mql.removeListener(handler));\r\n }, [mediaQueryLists]); // Empty array ensures effect is only run on mount and unmount\r\n return value;\r\n}\r\nexport default useMedia;\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 { Layers } from '@helpers/layers';\r\nimport { Device, from } from '@helpers/media';\r\nimport { link } from '@helpers/typography';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.div `\r\n --textLinkColour: ${brand.global.black};\r\n\r\n position: relative;\r\n display: inline-block;\r\n color: ${brand.global.black};\r\n`;\r\nconst linkStyles = css `\r\n ${fonts.lato.semiBold};\r\n ${link};\r\n\r\n display: flex;\r\n gap: 6px;\r\n font-size: 16px;\r\n line-height: 32px;\r\n white-space: nowrap;\r\n`;\r\nconst Button = styled.button `\r\n ${ButtonReset};\r\n ${linkStyles};\r\n\r\n --textLinkColour: currentColor;\r\n\r\n align-items: center;\r\n\r\n svg {\r\n width: 20px;\r\n\r\n &:nth-of-type(2) {\r\n ${transition('transform')};\r\n }\r\n }\r\n\r\n &:focus-visible,\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-width: 2px;\r\n }\r\n\r\n &[aria-expanded='true'] {\r\n svg:nth-of-type(2) {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n`;\r\nconst Regions = styled.ul `\r\n ${transition('opacity, transform')};\r\n\r\n position: absolute;\r\n z-index: ${Layers.Navigation};\r\n bottom: calc(100% + 16px);\r\n left: 0;\r\n background-color: ${brand.primary.grey};\r\n box-shadow: 0px 4px 13px 0px rgba(0, 0, 0, 0.25);\r\n display: flex;\r\n flex-direction: column;\r\n gap: 23px;\r\n padding: 12px 12px 12px 8px;\r\n border-radius: 10px;\r\n\r\n ${Container}:has(${Button}[aria-expanded='false']) & {\r\n opacity: 0;\r\n pointer-events: none;\r\n transform: translateY(20px);\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n top: calc(100% + 16px);\r\n bottom: auto;\r\n\r\n ${Container}:has(${Button}[aria-expanded='false']) & {\r\n transform: translateY(-20px);\r\n }\r\n }\r\n`;\r\nconst Region = styled.a `\r\n ${linkStyles};\r\n\r\n align-items: flex-start;\r\n\r\n > svg {\r\n display: block;\r\n width: 44px;\r\n margin-top: 4.5px;\r\n }\r\n`;\r\nconst LanguageLinks = styled.div `\r\n --textLinkColour: ${brand.primary.purple.light};\r\n\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 12px;\r\n`;\r\nconst Language = styled.a `\r\n ${fonts.lato.regular};\r\n ${link};\r\n\r\n font-size: 14px;\r\n line-height: 24px;\r\n`;\r\nconst RegionSelectorStyles = {\r\n Button,\r\n Container,\r\n Language,\r\n LanguageLinks,\r\n Region,\r\n Regions,\r\n};\r\nexport default RegionSelectorStyles;\r\n","import { InterfaceIcon, getSvgIcon } from '@helpers/icons';\r\nimport { clamp } from '@helpers/utils';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport { FocusRing } from '@react-aria/focus';\r\nimport { renderLogo } from '@stories/Widgets/Global/Header/Header';\r\nimport * as React from 'react';\r\nimport S from './RegionSelector.styles';\r\nconst RegionSelector = (props) => {\r\n const [open, setOpen] = React.useState(false);\r\n const containerRef = useOutsideClick(() => setOpen(false));\r\n const buttonRef = React.useRef(null);\r\n const itemsRef = React.useRef([]);\r\n if (!props.regions || props.regions.length === 0) {\r\n return null;\r\n }\r\n return (React.createElement(S.Container, { ref: containerRef },\r\n React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Button, { ref: buttonRef, \"aria-haspopup\": \"menu\", \"aria-expanded\": open, \"aria-controls\": `${props.idPrefix ?? ''}-region-options`, onClick: () => setOpen(!open), onKeyDown: (event) => {\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n if (!open) {\r\n setOpen(true);\r\n }\r\n focusRegion(0);\r\n break;\r\n case 'Escape':\r\n setOpen(false);\r\n break;\r\n }\r\n } },\r\n getSvgIcon(InterfaceIcon.Language),\r\n \" \",\r\n props.label,\r\n \" \",\r\n getSvgIcon(InterfaceIcon.Chevron))),\r\n React.createElement(S.Regions, { id: `${props.idPrefix ?? ''}-region-options`, role: \"menu\" }, props.regions.map((region, i) => (React.createElement(\"li\", { key: `${props.idPrefix ?? ''}-${region.site}`, role: \"none\" },\r\n React.createElement(S.Region, { ref: (el) => (itemsRef.current[i] = el), tabIndex: open ? undefined : -1, role: region.languages && region.languages.length > 0 ? 'menu' : 'menuitem', onKeyDown: (event) => {\r\n const nextIndex = i === props.regions.length - 1 ? 0 : clamp(i + 1, props.regions.length - 1);\r\n const prevIndex = i === 0 ? props.regions.length - 1 : clamp(i - 1, props.regions.length - 1);\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n focusRegion(nextIndex);\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n focusRegion(prevIndex);\r\n break;\r\n case 'Escape':\r\n setOpen(false);\r\n buttonRef.current?.focus();\r\n break;\r\n default:\r\n break;\r\n }\r\n }, ...(region.languages && region.languages.length > 0\r\n ? { as: 'span' }\r\n : { href: region.url }) },\r\n renderLogo(region.site),\r\n React.createElement(\"span\", null,\r\n region.text,\r\n region.languages && region.languages.length > 0 && (React.createElement(S.LanguageLinks, { role: \"none\" }, region.languages.map((language, j) => (React.createElement(S.Language, { key: `${props.idPrefix ?? ''}-${region.site}-${j}`, role: \"menuitem\", href: language.url, onKeyDown: (event) => {\r\n const nextIndex = i === props.regions.length - 1\r\n ? 0\r\n : clamp(i + 1, props.regions.length - 1);\r\n const nextLanguageIndex = j === region.languages.length - 1\r\n ? 0\r\n : clamp(j + 1, region.languages.length);\r\n const prevIndex = i === 0\r\n ? props.regions.length - 1\r\n : clamp(i - 1, props.regions.length - 1);\r\n const prevLanguageIndex = j === 0\r\n ? region.languages.length\r\n : clamp(j - 1, region.languages.length);\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n focusRegion(nextIndex);\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n focusRegion(prevIndex);\r\n break;\r\n case 'ArrowRight':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // prettier-ignore\r\n itemsRef.current[i]?.querySelectorAll('a')[nextLanguageIndex]?.focus();\r\n break;\r\n case 'ArrowLeft':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n // prettier-ignore\r\n itemsRef.current[i]?.querySelectorAll('a')[prevLanguageIndex]?.focus();\r\n break;\r\n case 'Escape':\r\n setOpen(false);\r\n buttonRef.current?.focus();\r\n break;\r\n default:\r\n break;\r\n }\r\n }, \"aria-label\": `${region.text}: ${language.text}`, tabIndex: open ? undefined : -1 }, language.text)))))))))))));\r\n function focusRegion(index) {\r\n if (props.regions[index].languages && props.regions[index].languages.length > 0) {\r\n itemsRef.current[index]?.querySelectorAll('a')[0]?.focus();\r\n }\r\n else {\r\n itemsRef.current[index]?.focus();\r\n }\r\n }\r\n};\r\nexport default RegionSelector;\r\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgBrcPurple = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 380 172\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M354.948 126.552c-6.081 7.384-14.9 12.032-24.718 12.032-18.34 0-33.205-16.208-33.205-36.204 0-19.997 14.865-36.204 33.205-36.204 9.818 0 18.637 4.647 24.718 12.032L380 53.18c-12.883-12.616-30.686-20.422-50.359-20.422-17.626 0-36.547 6.745-49.83 19.92 3.432 2.792 26.51 36.44-20.469 59.168 17.846 15.182 34.724 60.072 70.303 60.158 19.678 0 37.476-7.806 50.36-20.422l-25.053-25.027-.004-.004ZM250.957 77.306c0-31.093-36.577-31.093-36.577-31.093h-7.685v62.172h8.691s35.571.013 35.571-31.08ZM206.695 119.386v50.363h63.389c-32.514-17.526-35.73-50.363-63.389-50.363ZM107.706 74.028c0-8.991-7.362-16.345-16.362-16.345H78.267v32.69h13.077c9 0 16.362-7.354 16.362-16.345ZM97.304 114.644H78.267v35.602h19.037c9.533 0 17.334-7.792 17.334-17.316v-.966c0-9.524-7.801-17.316-17.334-17.316v-.004Z\",\n fill: \"#92278F\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.815 36.342 54.191 0 0 100.365l45.156 36.698V34.989h58.946c19.394 0 35.262 15.85 35.262 35.224 0 12.286-6.386 23.15-16.001 29.456 14.599 4.712 25.237 18.446 25.237 34.546v2.028c0 14.957-9.181 27.879-22.193 33.416h28.605c7.869 0 14.306-6.431 14.306-14.292V49.783c0-6.177-3.986-11.461-9.507-13.446l.004.005Z\",\n fill: \"#92278F\"\n})));\nexport default SvgBrcPurple;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgNircPurple = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 217 101\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.746 66.325c-3.01 3.664-7.377 5.97-12.237 5.97-9.079 0-16.438-8.041-16.438-17.962 0-9.92 7.359-17.962 16.438-17.962 4.86 0 9.227 2.306 12.237 5.97l12.402-12.417c-6.378-6.26-15.191-10.131-24.93-10.131-8.726 0-18.093 3.346-24.669 9.882 1.699 1.385 13.124 18.079-10.133 29.355 8.835 7.532 17.19 29.803 34.804 29.846 9.741 0 18.552-3.873 24.93-10.132l-12.402-12.417-.002-.002ZM152.265 41.895c0-15.425-18.108-15.425-18.108-15.425h-3.804v30.845h4.302s17.61.006 17.61-15.42ZM130.353 62.77v24.987h31.381c-16.096-8.696-17.688-24.987-31.381-24.987ZM107.349 21.61 51.885 0 0 25.566l23.28 33.017V24.289h11.162L63.304 60.69v-36.4h14.302v61.98h-11.51L37.581 50.826V86.27H23.353L18.902 101l82.846-12.176s10.033-.456 10.3-8.318V28.264c0-3.058-1.967-5.671-4.697-6.651l-.002-.003Zm-6.499 64.657h-14.3v-61.98h14.3v61.98Z\",\n fill: \"#92278F\"\n})));\nexport default SvgNircPurple;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgSrcPurple = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 223 101\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.916 68.361c-3.622 4.403-8.874 7.173-14.721 7.173-10.922 0-19.775-9.662-19.775-21.583 0-11.921 8.853-21.583 19.775-21.583 5.847 0 11.099 2.77 14.721 7.173l14.92-14.92c-7.673-7.521-18.275-12.175-29.991-12.175-10.498 0-21.766 4.02-29.676 11.875 2.043 1.665 15.788 21.724-12.19 35.274 10.628 9.05 20.679 35.812 41.868 35.863 11.719 0 22.319-4.653 29.991-12.174l-14.92-14.92-.002-.003ZM145.985 39.003c0-18.536-21.783-18.536-21.783-18.536h-4.577v37.064h5.176s21.184.008 21.184-18.528ZM119.625 64.09v30.024h37.751c-19.363-10.449-21.279-30.024-37.751-30.024ZM91.832 11.995 45.832 0l3.712 15.401c3.203-.942 6.579-1.418 10.128-1.418 2.715 0 5.355.25 7.928.75 2.572.5 5.017 1.142 7.338 1.928 2.32.787 4.517 1.68 6.589 2.679 2.072 1.001 3.928 2 5.57 2.999L79.49 36.908c-.287-.284-1.07-.82-2.356-1.606-1.286-.786-2.894-1.605-4.822-2.463-1.929-.858-4.036-1.606-6.32-2.249a25.228 25.228 0 0 0-6.856-.963c-3 0-5.304.536-6.91 1.606-1.605 1.07-2.41 2.643-2.41 4.712 0 1.286.356 2.356 1.071 3.214.715.858 1.731 1.626 3.053 2.305 1.321.678 2.963 1.303 4.927 1.874 1.964.574 4.23 1.217 6.802 1.929 3.641 1.001 6.927 2.09 9.854 3.267 2.927 1.178 5.427 2.643 7.498 4.392a17.585 17.585 0 0 1 4.769 6.375c1.106 2.499 1.66 5.5 1.66 8.999 0 4.284-.805 7.91-2.413 10.873-1.606 2.963-3.731 5.358-6.374 7.179-2.643 1.82-5.696 3.142-9.158 3.964a46.152 46.152 0 0 1-10.661 1.232c-2.786 0-5.624-.216-8.518-.643a62.273 62.273 0 0 1-8.517-1.875 70.37 70.37 0 0 1-8.142-2.947c-2.642-1.142-5.073-2.464-7.285-3.965L36.096 66.8c.356.358 1.322 1.037 2.891 2.036 1.57 1.001 3.499 2 5.785 2.999 2.285 1.001 4.856 1.892 7.714 2.678a32.536 32.536 0 0 0 8.676 1.178c6.213 0 9.32-1.892 9.32-5.677 0-1.427-.466-2.607-1.394-3.534-.93-.927-2.215-1.767-3.856-2.517-1.644-.75-3.573-1.448-5.785-2.09a995.115 995.115 0 0 1-7.286-2.144c-3.501-1.07-6.536-2.23-9.107-3.483-2.571-1.25-4.715-2.694-6.428-4.338-1.713-1.641-2.983-3.536-3.803-5.677-.822-2.144-1.232-4.64-1.232-7.499 0-1.18.075-2.317.205-3.416l-23.85 3.29L0 62.554 24.77 101l61.922-6.226s10.707-1.121 10.91-9.76V20.16c0-3.751-2.418-6.957-5.767-8.161l-.003-.003Z\",\n fill: \"#92278F\"\n})));\nexport default SvgSrcPurple;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgWrcPurple = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 191 101\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M178.443 62.57c-2.95 3.586-7.228 5.843-11.991 5.843-8.896 0-16.108-7.87-16.108-17.581 0-9.71 7.212-17.581 16.108-17.581 4.763 0 9.041 2.257 11.991 5.843l12.153-12.153c-6.25-6.127-14.886-9.917-24.429-9.917-8.551 0-17.729 3.275-24.173 9.673 1.665 1.356 12.86 17.695-9.929 28.732 8.657 7.372 16.844 29.17 34.104 29.213 9.545 0 18.179-3.79 24.429-9.917l-12.153-12.153-.002-.002ZM127.995 38.658c0-15.098-17.744-15.098-17.744-15.098h-3.727v30.19h4.215s17.256.007 17.256-15.092ZM106.524 59.09v24.457h30.749c-15.772-8.511-17.332-24.457-30.749-24.457ZM25.727 61.247 37.26 22.848h14.431l11.536 38.4 11.108-38.4h13.859a6.988 6.988 0 0 0-4.074-3.878L38.249 0l-23.63 22.85 11.108 38.4v-.003Z\",\n fill: \"#92278F\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.916 83.698H55.678L44.476 48.864 33.274 83.698H18.036L2.62 37.062 0 101l79.933-16.584s8.518-.747 8.785-7.822v-46.75L70.916 83.701v-.002Z\",\n fill: \"#92278F\"\n})));\nexport default SvgWrcPurple;","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 { link } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n --textLinkColour: ${brand.global.black};\r\n\r\n position: relative;\r\n display: inline-block;\r\n`;\r\nconst Button = styled.button `\r\n ${ButtonReset};\r\n ${fonts.lato.bold};\r\n\r\n display: flex;\r\n gap: 8px;\r\n align-items: center;\r\n font-size: 16px;\r\n height: ${fluid(36, 50)};\r\n border: 1px solid ${brand.primary.purple.light};\r\n border-radius: 50px;\r\n position: relative;\r\n\r\n svg {\r\n width: 24px;\r\n\r\n &:nth-of-type(2) {\r\n ${transition('transform')};\r\n }\r\n }\r\n\r\n &:focus-visible,\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-width: 2px;\r\n }\r\n\r\n &[aria-expanded='true'] {\r\n svg:nth-of-type(2) {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n\r\n @media ${until(Device.DesktopSmall)} {\r\n justify-content: center;\r\n aspect-ratio: 1;\r\n color: ${brand.grey.dark};\r\n\r\n svg:nth-of-type(2),\r\n span {\r\n display: none;\r\n }\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n ${transition('background-color, color')};\r\n\r\n padding-left: ${fluid(16, 20)};\r\n padding-right: ${fluid(14, 16)};\r\n background-color: ${brand.primary.purple.light};\r\n color: ${brand.global.white};\r\n\r\n &:focus-visible,\r\n &.focus-ring,\r\n &:hover {\r\n background-color: transparent;\r\n color: ${brand.global.black};\r\n }\r\n }\r\n`;\r\nconst ActiveIndicator = styled.div `\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n display: grid;\r\n place-content: center;\r\n height: ${fluid(12, 14)};\r\n width: ${fluid(12, 14)};\r\n background-color: ${brand.primary.purple.light};\r\n color: ${brand.global.white};\r\n border-radius: 50%;\r\n\r\n svg {\r\n display: block;\r\n width: 100%;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n display: none;\r\n }\r\n`;\r\nconst Links = styled.ul `\r\n ${transition('opacity, transform')};\r\n\r\n position: absolute;\r\n top: calc(100% + 16px);\r\n right: 0;\r\n background-color: ${brand.primary.grey};\r\n box-shadow: 0px 4px 13px 0px rgba(0, 0, 0, 0.25);\r\n display: flex;\r\n flex-direction: column;\r\n gap: 23px;\r\n padding: 12px;\r\n border-radius: 10px;\r\n min-width: 252px;\r\n\r\n ${Container}:has(${Button}[aria-expanded='false']) & {\r\n opacity: 0;\r\n pointer-events: none;\r\n transform: translateY(-20px);\r\n }\r\n`;\r\nconst Link = styled.a `\r\n ${fonts.lato.semiBold};\r\n ${link};\r\n\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n font-size: 16px;\r\n line-height: 32px;\r\n white-space: nowrap;\r\n\r\n > svg {\r\n display: block;\r\n width: 24px;\r\n }\r\n`;\r\nconst AccountDropdownStyles = {\r\n Button,\r\n Container,\r\n Link,\r\n Links,\r\n ActiveIndicator,\r\n};\r\nexport default AccountDropdownStyles;\r\n","import { InterfaceIcon, getSvgIcon } from '@helpers/icons';\r\nimport { clamp } from '@helpers/utils';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport { FocusRing } from '@react-aria/focus';\r\nimport * as React from 'react';\r\nimport S from './AccountDropdown.styles';\r\nconst AccountDropdown = (props) => {\r\n const [open, setOpen] = React.useState(false);\r\n const containerRef = useOutsideClick(() => setOpen(false));\r\n const buttonRef = React.useRef(null);\r\n const itemsRef = React.useRef([]);\r\n if (!props.items || props.items.length === 0) {\r\n return null;\r\n }\r\n return (React.createElement(S.Container, { ref: containerRef },\r\n React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Button, { ref: buttonRef, \"aria-haspopup\": \"menu\", \"aria-expanded\": open, \"aria-controls\": `account-options`, \"aria-label\": props.label, onClick: () => {\r\n setOpen(!open);\r\n props.onClick?.();\r\n }, onKeyDown: (event) => {\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n if (!open) {\r\n setOpen(true);\r\n }\r\n itemsRef.current[0]?.focus();\r\n break;\r\n case 'Escape':\r\n setOpen(false);\r\n break;\r\n }\r\n } },\r\n React.createElement(\"span\", null, props.label),\r\n \" \",\r\n getSvgIcon(InterfaceIcon.User),\r\n ' ',\r\n getSvgIcon(InterfaceIcon.Chevron),\r\n React.createElement(S.ActiveIndicator, null, getSvgIcon(InterfaceIcon.Tick)))),\r\n React.createElement(S.Links, { id: `account-options`, role: \"menu\" }, props.items.map((item, i) => (React.createElement(\"li\", { key: `account-options-${i}`, role: \"none\" },\r\n React.createElement(S.Link, { ref: (el) => (itemsRef.current[i] = el), tabIndex: open ? undefined : -1, href: item.url, role: \"menuitem\", onKeyDown: (event) => {\r\n const nextIndex = i === props.items.length - 1 ? 0 : clamp(i + 1, props.items.length - 1);\r\n const prevIndex = i === 0 ? props.items.length - 1 : clamp(i - 1, props.items.length - 1);\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[nextIndex]?.focus();\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[prevIndex]?.focus();\r\n break;\r\n case 'Escape':\r\n setOpen(false);\r\n buttonRef.current?.focus();\r\n break;\r\n default:\r\n break;\r\n }\r\n } },\r\n getSvgIcon(item.icon),\r\n React.createElement(\"span\", null, item.text))))))));\r\n};\r\nexport default AccountDropdown;\r\n","import brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { link, reverseLinkUnderline } from '@helpers/typography';\r\nimport RegionSelectorStyles from '@stories/Components/Misc/RegionSelector/RegionSelector.styles';\r\nimport SectionWrapper from '@stories/Components/Misc/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Misc/SectionWrapper/SectionWrapper.styles';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n &[data-variant='blue'] {\r\n background-color: ${brand.primary.blue.dark};\r\n color: ${brand.global.white};\r\n }\r\n\r\n &[data-variant='yellow'] {\r\n background-color: ${brand.secondary.yellow.light};\r\n color: ${brand.primary.purple.dark};\r\n }\r\n\r\n ${SectionWrapperStyles.Inner} {\r\n --textLinkColour: currentColor;\r\n\r\n display: grid;\r\n gap: 24px;\r\n height: var(--announcementHeight);\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-template-columns: 1fr auto 1fr;\r\n }\r\n }\r\n\r\n @media ${until(Device.DesktopSmall)} {\r\n ${() => CtaWrapper} {\r\n display: none;\r\n }\r\n }\r\n`;\r\nconst Announcement = styled.p `\r\n ${fonts.lato.regular};\r\n\r\n font-size: ${fluid(12, 16)};\r\n line-height: ${fluid(16, 24)};\r\n margin: auto;\r\n\r\n a {\r\n ${link};\r\n ${reverseLinkUnderline};\r\n\r\n font-weight: 700;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2;\r\n }\r\n`;\r\nconst CtaWrapper = styled.div `\r\n display: flex;\r\n gap: 16px;\r\n align-items: center;\r\n justify-content: flex-end;\r\n grid-column: 3;\r\n\r\n ${RegionSelectorStyles.Container} {\r\n color: currentColor;\r\n }\r\n\r\n > a {\r\n ${fonts.lato.semiBold};\r\n ${link};\r\n\r\n font-size: 16px;\r\n line-height: 24px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n ${RegionSelectorStyles.Regions} {\r\n left: auto;\r\n right: 0;\r\n }\r\n }\r\n`;\r\nconst AnnouncementBarStyles = {\r\n Container,\r\n CtaWrapper,\r\n Announcement,\r\n};\r\nexport default AnnouncementBarStyles;\r\n","import RegionSelector from '@stories/Components/Misc/RegionSelector/RegionSelector';\r\nimport * as React from 'react';\r\nimport S from './AnnouncementBar.styles';\r\nconst AnnouncementBar = (props) => {\r\n return (React.createElement(S.Container, { \"data-variant\": props.announcementVariant ?? 'blue', flush: \"both\", skipLinkType: \"header\", translations: props.translations },\r\n props.announcement && (React.createElement(S.Announcement, { role: \"alert\" },\r\n props.announcement.text,\r\n props.announcement.cta && (React.createElement(React.Fragment, null,\r\n ' ',\r\n React.createElement(\"a\", { href: props.announcement.cta.url, target: props.announcement.cta.target }, props.announcement.cta.text))))),\r\n React.createElement(AnnouncementCtas, { ...props, regionSelector: { ...props.regionSelector, idPrefix: 'announcement-bar' } })));\r\n};\r\nexport const AnnouncementCtas = (props) => {\r\n return (React.createElement(S.CtaWrapper, null,\r\n React.createElement(RegionSelector, { ...props.regionSelector }),\r\n props.contactCta && (React.createElement(\"a\", { href: props.contactCta.url, target: props.contactCta.target }, props.contactCta.text))));\r\n};\r\nexport default AnnouncementBar;\r\n","import { transition } from '@helpers/animate';\r\nimport { imageCoverContainer, imageWrapperPreserveRatio } from '@helpers/aspectRatio';\r\nimport brand, { BrandColours } from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { Layers } from '@helpers/layers';\r\nimport { between, Device, from, until } from '@helpers/media';\r\nimport scrollbars from '@helpers/scrollbars';\r\nimport { h5, h6, paragraphSmall } from '@helpers/typography';\r\nimport ButtonStyles from '@stories/Components/Buttons/Button/Button.styles';\r\nimport { rgba } from 'polished';\r\nimport styled from 'styled-components';\r\nimport AnnouncementBarStyles from '../AnnouncementBar/AnnouncementBar.styles';\r\nconst Container = styled.nav `\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('opacity, visibility, transform', 0.5)};\r\n\r\n position: fixed;\r\n z-index: ${Layers.Navigation};\r\n top: calc(var(--headerHeight));\r\n right: 0;\r\n width: 100%;\r\n height: 100%;\r\n max-height: calc(100dvh - var(--headerHeight));\r\n display: grid;\r\n grid-template-rows: auto 1fr;\r\n gap: 40px;\r\n padding: 24px var(--sitePadding) 30px;\r\n max-width: 767px;\r\n background-color: ${brand.global.white};\r\n box-shadow: inset -4px 4px 8px 0px rgba(0, 0, 0, 0.08), 0 4px 8px 0px rgba(0, 0, 0, 0.08);\r\n overscroll-behavior: contain;\r\n\r\n &[data-active='false'] {\r\n opacity: 0;\r\n pointer-events: none;\r\n visibility: hidden;\r\n transform: translateX(100%);\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n flex: 2 1 100%;\r\n }\r\n`;\r\nconst Background = styled.div `\r\n ${transition('opacity, visibility, transform', 0.5)};\r\n\r\n position: fixed;\r\n z-index: -1;\r\n top: var(--headerHeight);\r\n right: 0;\r\n width: 100%;\r\n height: 100%;\r\n max-height: calc(100dvh - var(--headerHeight));\r\n backdrop-filter: blur(3px);\r\n cursor: zoom-out;\r\n\r\n &[data-active='false'] {\r\n opacity: 0;\r\n pointer-events: none;\r\n visibility: hidden;\r\n }\r\n`;\r\nconst Links = styled.ul `\r\n display: flex;\r\n flex-direction: column;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n position: relative;\r\n overflow: auto;\r\n grid-row: 1;\r\n grid-column: 1;\r\n overscroll-behavior: contain;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n flex-direction: row;\r\n gap: ${fluid(8, 18, Device.Desktop)};\r\n\r\n li {\r\n position: relative;\r\n }\r\n }\r\n`;\r\nconst TopLevelLink = styled.a `\r\n ${ButtonReset};\r\n ${fonts.lato.semiBold};\r\n\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n padding: 16px;\r\n font-size: 16px;\r\n line-height: 24px;\r\n text-decoration: none;\r\n color: ${brand.global.black};\r\n text-align: left;\r\n\r\n svg {\r\n width: 24px;\r\n margin-left: auto;\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 width: 100%;\r\n\r\n &[aria-haspopup] svg {\r\n transform: rotate(-90deg);\r\n }\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${transition('background-color', 0.25)};\r\n\r\n padding: 0 6px;\r\n background-color: transparent;\r\n height: ${fluid(42, 48)};\r\n line-height: 1.5;\r\n border-radius: 10px;\r\n font-size: ${fluid(12, 16, Device.Desktop)};\r\n\r\n &:hover,\r\n &:focus-visible {\r\n background-color: ${rgba(brand.primary.blue.light, 0.2)};\r\n }\r\n\r\n svg {\r\n ${transition('transform', 0.25)};\r\n\r\n width: 20px;\r\n }\r\n\r\n &[data-link-only] {\r\n svg {\r\n display: none;\r\n }\r\n }\r\n\r\n &[aria-expanded='true'] svg {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n white-space: nowrap;\r\n }\r\n`;\r\nconst BottomContainer = styled.div `\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n gap: 24px;\r\n margin-top: auto;\r\n\r\n ${ButtonStyles.Container} {\r\n --buttonHeight: 44px;\r\n }\r\n\r\n ${AnnouncementBarStyles.CtaWrapper} a {\r\n --textLinkColour: ${brand.global.black};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n`;\r\nconst Dropdown = styled.div `\r\n display: contents;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n --spacing: ${fluid(28, 46, Device.DesktopSmall)};\r\n\r\n display: grid;\r\n max-height: calc(100vh - var(--headerHeight) - 32px);\r\n grid-template-columns: 0.9fr 1fr 1fr 1fr;\r\n overscroll-behavior: contain;\r\n\r\n &[data-relative='true'] {\r\n position: absolute;\r\n top: calc(100% + ${fluid(30, 32)});\r\n left: 50%;\r\n transform: translateX(-50%);\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n left: 0;\r\n transform: none;\r\n }\r\n }\r\n\r\n &[data-relative='false'] {\r\n ${siteWide};\r\n\r\n position: fixed;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n top: calc(var(--headerHeight) + 16px);\r\n }\r\n }\r\n\r\n &[data-active='false'] {\r\n pointer-events: none;\r\n }\r\n`;\r\nconst Level = styled.ul `\r\n ${transition('opacity, visibility, transform', 0.5)};\r\n\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n overflow: auto;\r\n background-color: ${brand.global.white};\r\n overscroll-behavior: contain;\r\n\r\n &[data-full='true'] {\r\n display: grid;\r\n\r\n &:has(${() => SubLink}[data-card]) {\r\n gap: ${fluid(16, 24)} 16px;\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n grid-row: 1;\r\n grid-column: 1;\r\n margin: -16px 0 0 calc(var(--sitePadding) * -1);\r\n height: calc(100% + 16px);\r\n width: calc(100% + var(--sitePadding) * 2);\r\n z-index: 1;\r\n\r\n ${Dropdown}[data-relative='true'] & {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n height: calc(100% - 146px);\r\n width: calc(100% + var(--sitePadding));\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${scrollbars};\r\n\r\n gap: ${fluid(4, 8)};\r\n border-radius: 10px;\r\n padding: ${fluid(12, 14, Device.DesktopSmall)};\r\n box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.08);\r\n max-height: calc(100vh - var(--headerHeight) - 32px);\r\n\r\n ${Dropdown}[data-relative='true'] & {\r\n width: ${fluid(320, 404, Device.TabletLarge, Device.Desktop)};\r\n }\r\n\r\n ${Dropdown}[data-relative='false'] & {\r\n grid-row: 1 / span 1;\r\n grid-column: 1 / span 1;\r\n\r\n &[data-level] {\r\n position: relative;\r\n padding-left: var(--spacing);\r\n border-top-left-radius: 0;\r\n border-bottom-left-radius: 0;\r\n box-shadow: -8px 0px 0px 0px #fff, 0px 4px 8px 0px rgba(0, 0, 0, 0.08);\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n width: 1.5px;\r\n height: calc(100% - 32px);\r\n background-color: ${brand.grey.lightest};\r\n top: 16px;\r\n left: calc(var(--spacing) * 0.5 - 0.75px);\r\n }\r\n }\r\n\r\n &[data-level='1'] {\r\n grid-column: 2 / span 1;\r\n }\r\n\r\n &[data-level='2'] {\r\n grid-column: 3 / span 1;\r\n }\r\n\r\n &[data-level='3'] {\r\n grid-column: 4 / span 1;\r\n }\r\n\r\n &[data-full='true'] {\r\n grid-column: 2 / span 3;\r\n grid-template-columns: repeat(3, 1fr);\r\n grid-auto-rows: min-content;\r\n }\r\n\r\n &[data-level][data-active='false'] {\r\n transform: translateX(-20px);\r\n }\r\n }\r\n\r\n li[data-mobile] {\r\n display: none;\r\n }\r\n }\r\n\r\n &[data-active='false'] {\r\n opacity: 0;\r\n pointer-events: none;\r\n visibility: hidden;\r\n transform: translateX(100%);\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n &[data-active='false'] {\r\n transform: translateY(-20px);\r\n }\r\n }\r\n }\r\n`;\r\nconst SubLink = styled.a `\r\n ${transition('background-color', 0.25)};\r\n ${ButtonReset};\r\n\r\n --bgColour: transparent;\r\n --hoverColour: ${rgba(brand.primary.blue.light, 0.2)};\r\n --textColour: ${brand.global.black};\r\n\r\n display: block;\r\n padding: 8px;\r\n text-decoration: none;\r\n color: var(--textColour);\r\n border-radius: 10px;\r\n background-color: var(--bgColour);\r\n text-align: left;\r\n width: 100%;\r\n\r\n &[data-parent='true'] {\r\n --bgColour: ${brand.primary.purple.light};\r\n --hoverColour: ${brand.primary.purple.dark};\r\n --textColour: ${brand.global.white};\r\n\r\n margin-bottom: ${fluid(2, 4)};\r\n padding: ${fluid(10, 12)};\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('transform, background-color', 0.15)};\r\n\r\n margin: 0 var(--sitePadding);\r\n width: calc(100% - var(--sitePadding) * 2);\r\n padding: 12px;\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n\r\n &[data-active='true'],\r\n &:hover,\r\n &:focus-visible {\r\n background-color: var(--hoverColour);\r\n }\r\n\r\n &[data-card] {\r\n background-color: ${brand.primary.grey};\r\n height: 100%;\r\n }\r\n\r\n ${ButtonStyles.Container} {\r\n flex: 0 0 var(--buttonHeight);\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n --buttonHeight: ${fluid(26, 42, Device.TabletLarge)} !important;\r\n\r\n ${ButtonStyles.IconWrapper} {\r\n --iconSize: ${fluid(20, 32)};\r\n }\r\n }\r\n }\r\n`;\r\nconst SubLinkTitle = styled.span `\r\n ${transition('text-decoration-color')};\r\n ${fonts.lato.semiBold};\r\n\r\n display: flex;\r\n gap: ${fluid(8, 10)};\r\n align-items: center;\r\n font-size: ${fluid(16, 18)};\r\n line-height: ${fluid(24, 26)};\r\n text-decoration: underline;\r\n text-decoration-color: transparent;\r\n text-decoration-thickness: 2px;\r\n text-underline-offset: 3px;\r\n\r\n @media ${between(Device.TabletLarge, Device.DesktopSmall)} {\r\n font-size: ${fluid(14, 16, Device.TabletLarge, Device.Desktop)};\r\n line-height: ${fluid(20, 22, Device.TabletLarge, Device.Desktop)};\r\n }\r\n\r\n > svg {\r\n ${transition('transform', 0.25)};\r\n\r\n width: 24px;\r\n }\r\n\r\n > svg,\r\n ${ButtonStyles.Container} {\r\n margin-left: auto;\r\n }\r\n\r\n ${SubLink}button& {\r\n svg {\r\n transform: rotate(-90deg);\r\n }\r\n }\r\n\r\n ${SubLink}[data-parent='true'] & {\r\n ${h5};\r\n\r\n margin: 0;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${h6};\r\n\r\n margin: 0;\r\n }\r\n }\r\n\r\n ${SubLink}:hover &,\r\n ${SubLink}:focus-visible &,\r\n ${SubLink}[data-active='true'] & {\r\n text-decoration-color: currentColor;\r\n }\r\n\r\n ${SubLink}:hover &,\r\n ${SubLink}:focus-visible & {\r\n > svg {\r\n transform: translateX(4px);\r\n }\r\n }\r\n`;\r\nconst SubLinkDescription = styled.p `\r\n ${paragraphSmall};\r\n\r\n margin: ${fluid(4, 8)} 0 0;\r\n\r\n @media ${between(Device.TabletLarge, Device.Desktop)} {\r\n font-size: ${fluid(12, 14, Device.TabletLarge, Device.Desktop)};\r\n line-height: ${fluid(18, 20, Device.TabletLarge, Device.Desktop)};\r\n }\r\n`;\r\nconst SubLinkIcon = styled.span `\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 32px;\r\n height: 32px;\r\n color: var(--iconColour, ${brand.primary.purple.light});\r\n\r\n svg {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n &[data-colour=${BrandColours.BlueDark}] {\r\n --iconColour: ${brand.primary.blue.dark};\r\n }\r\n\r\n &[data-colour=${BrandColours.BlueLight}] {\r\n --iconColour: ${brand.primary.blue.light};\r\n }\r\n\r\n &[data-colour=${BrandColours.GreenDark}] {\r\n --iconColour: ${brand.secondary.green.dark};\r\n }\r\n\r\n &[data-colour=${BrandColours.GreenLight}] {\r\n --iconColour: ${brand.secondary.green.dark};\r\n }\r\n\r\n &[data-colour=${BrandColours.OrangeDark}] {\r\n --iconColour: ${brand.secondary.orange.dark};\r\n }\r\n\r\n &[data-colour=${BrandColours.OrangeLight}] {\r\n --iconColour: ${brand.secondary.orange.light};\r\n }\r\n\r\n &[data-colour=${BrandColours.PinkDark}] {\r\n --iconColour: ${brand.secondary.pink.dark};\r\n }\r\n\r\n &[data-colour=${BrandColours.PinkLight}] {\r\n --iconColour: ${brand.secondary.pink.light};\r\n }\r\n\r\n &[data-colour=${BrandColours.PurpleDark}] {\r\n --iconColour: ${brand.primary.purple.dark};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n width: 28px;\r\n height: 28px;\r\n }\r\n`;\r\nconst SubLinkImage = styled.div `\r\n ${imageWrapperPreserveRatio(72, 102)};\r\n\r\n width: 72px;\r\n`;\r\nconst Image = styled.img `\r\n ${imageCoverContainer()}\r\n`;\r\nconst BackButton = styled.button `\r\n ${ButtonReset};\r\n ${fonts.intro};\r\n ${transition('transform', 0.15)};\r\n\r\n display: flex;\r\n align-items: center;\r\n gap: 16px;\r\n font-size: 20px;\r\n line-height: 26px;\r\n padding: 16px var(--sitePadding);\r\n margin: 0 0 16px;\r\n border-bottom: 1px solid ${brand.primary.grey};\r\n width: 100%;\r\n text-align: left;\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n\r\n svg {\r\n width: 32px;\r\n transform: scale(-1);\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n`;\r\nconst NavigationStyles = {\r\n BackButton,\r\n Background,\r\n BottomContainer,\r\n Container,\r\n Dropdown,\r\n Image,\r\n Level,\r\n Links,\r\n SubLink,\r\n SubLinkDescription,\r\n SubLinkIcon,\r\n SubLinkImage,\r\n SubLinkTitle,\r\n TopLevelLink,\r\n};\r\nexport default NavigationStyles;\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { InterfaceIcon } from '@helpers/icons';\r\nimport { Layers } from '@helpers/layers';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport srOnly from '@helpers/srOnly';\r\nimport ButtonStyles from '@stories/Components/Buttons/Button/Button.styles';\r\nimport SearchboxStyles from '@stories/Components/Misc/Searchbox/Searchbox.styles';\r\nimport styled, { createGlobalStyle } from 'styled-components';\r\nimport AnnouncementBarStyles from './AnnouncementBar/AnnouncementBar.styles';\r\nimport NavigationStyles from './Navigation/Navigation.styles';\r\nconst GlobalStyles = createGlobalStyle `\r\n :root {\r\n --headerInnerHeight: ${fluid(68, 80)};\r\n --announcementHeight: ${fluid(36, 40)};\r\n --headerHeight: calc(var(--headerInnerHeight) + var(--announcementHeight));\r\n \r\n padding-top: var(--headerHeight);\r\n\r\n /* Hide announcement bar on mobile devices if no announcement is configured */\r\n @media ${until(Device.DesktopSmall)} {\r\n &:not(:has(${AnnouncementBarStyles.Announcement})) {\r\n --announcementHeight: 0px\r\n }\r\n }\r\n }\r\n`;\r\nconst Container = styled.header `\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n z-index: ${Layers.Navigation};\r\n box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.08);\r\n background-color: ${brand.global.white};\r\n\r\n ${ButtonStyles.Container} {\r\n --buttonHeight: ${fluid(36, 50)};\r\n\r\n white-space: nowrap;\r\n }\r\n\r\n @media print {\r\n display: none;\r\n }\r\n`;\r\nconst Header = styled.div `\r\n ${siteWide};\r\n\r\n --logoWidth: ${fluid(72, 106)};\r\n\r\n display: flex;\r\n align-items: center;\r\n gap: 22px;\r\n height: var(--headerInnerHeight);\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n gap: ${fluid(16, 26, Device.Desktop)};\r\n }\r\n`;\r\nconst Logo = styled.a `\r\n display: block;\r\n width: var(--logoWidth);\r\n flex: 0 0 var(--logoWidth);\r\n`;\r\nconst CtaWrapper = styled.div `\r\n display: flex;\r\n align-items: center;\r\n gap: ${fluid(8, 20, Device.Desktop)};\r\n\r\n @media ${until(Device.Desktop)} {\r\n margin-left: auto;\r\n\r\n ${ButtonStyles.Container} {\r\n --colourText: ${brand.grey.dark};\r\n\r\n height: var(--buttonHeight);\r\n justify-content: center;\r\n padding: 0;\r\n width: var(--buttonHeight);\r\n\r\n &[data-type='primary'] {\r\n display: none;\r\n }\r\n }\r\n\r\n ${ButtonStyles.Container}:not([data-icon-type=${InterfaceIcon.Search}]) {\r\n --borderColour: ${brand.primary.purple.light};\r\n }\r\n\r\n ${ButtonStyles.Text} {\r\n ${srOnly};\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${ButtonStyles.Container}[data-icon-type=${InterfaceIcon.Menu}] {\r\n display: none;\r\n }\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n flex: 1 1 100%;\r\n\r\n ${ButtonStyles.Container}[data-mobile-only] {\r\n display: none;\r\n }\r\n }\r\n\r\n ${SearchboxStyles.Container} {\r\n margin-left: auto;\r\n flex: 1 1 100%;\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n max-width: ${fluid(180, 273)};\r\n }\r\n }\r\n`;\r\nconst SearchboxContainer = styled.div `\r\n ${transition('max-height, overflow')};\r\n\r\n position: absolute;\r\n top: 100%;\r\n width: 100%;\r\n left: 0;\r\n height: 74px;\r\n max-height: 74px;\r\n\r\n ${SearchboxStyles.Container} {\r\n ${transition('opacity, visibility')};\r\n }\r\n\r\n &[data-open='false'] {\r\n max-height: 0;\r\n overflow: hidden;\r\n\r\n @media ${until(Device.Desktop)} {\r\n ${SearchboxStyles.Container} {\r\n visibility: hidden;\r\n opacity: 0;\r\n }\r\n }\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n display: contents;\r\n }\r\n`;\r\nconst SearchBoxInner = styled.div `\r\n background-color: ${brand.global.white};\r\n display: flex;\r\n align-items: center;\r\n height: 100%;\r\n padding: 0 var(--sitePadding);\r\n\r\n @media ${from(Device.Desktop)} {\r\n display: contents;\r\n }\r\n`;\r\nconst SearchBackground = styled(NavigationStyles.Background) `\r\n @media ${from(Device.Desktop)} {\r\n display: none;\r\n }\r\n`;\r\nconst HeaderStyles = {\r\n Container,\r\n GlobalStyles,\r\n Header,\r\n Logo,\r\n CtaWrapper,\r\n SearchboxContainer,\r\n SearchBoxInner,\r\n SearchBackground,\r\n};\r\nexport default HeaderStyles;\r\n","import { InterfaceIcon, getSvgIcon } from '@helpers/icons';\r\nimport { imageUrl } from '@helpers/image';\r\nimport { Device, until } from '@helpers/media';\r\nimport { clamp } from '@helpers/utils';\r\nimport useMedia from '@hooks/useMedia';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport { FakeButton, LinkButton } from '@stories/Components/Buttons/Button/Button';\r\nimport * as React from 'react';\r\nimport { AnnouncementCtas } from '../AnnouncementBar/AnnouncementBar';\r\nimport S from './Navigation.styles';\r\nconst Navigation = (props) => {\r\n const isDesktop = useMedia([until(Device.TabletLarge)], [false], true);\r\n const [focus, setFocus] = React.useState();\r\n const itemsRef = React.useRef([]);\r\n const containerRef = useOutsideClick(() => {\r\n props.setActiveLink(-1);\r\n });\r\n React.useEffect(() => {\r\n window.addEventListener('scroll', () => props.setActiveLink(-1), { passive: true });\r\n return () => {\r\n window.removeEventListener('scroll', () => props.setActiveLink(-1));\r\n };\r\n }, []);\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(S.Container, { ref: containerRef, id: \"main-nav\", \"data-active\": props.active, \"aria-label\": props.translations?.['global.menu.nav'] ?? '' },\r\n React.createElement(S.Links, { role: \"menubar\" }, props.links?.map((link, i) => (React.createElement(\"li\", { key: link.id, role: \"none\" },\r\n React.createElement(S.TopLevelLink, { ref: (el) => (itemsRef.current[i] = el), id: i === 0 ? 'nav-first-link' : undefined, role: \"menuitem\", href: link.url, target: link.target, onKeyDown: (event) => {\r\n const maxIndex = props.links.length - 1;\r\n const nextIndex = i === maxIndex ? 0 : clamp(i + 1, maxIndex);\r\n const prevIndex = i === 0 ? maxIndex : clamp(i - 1, maxIndex);\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n case 'Space':\r\n case 'Enter':\r\n if (link.children && link.children.length > 0) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n props.setActiveLink(i);\r\n setFocus('first');\r\n }\r\n break;\r\n case 'ArrowUp':\r\n if (link.children && link.children.length > 0) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n props.setActiveLink(i);\r\n setFocus('last');\r\n }\r\n break;\r\n case 'ArrowRight':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[nextIndex]?.focus();\r\n break;\r\n case 'ArrowLeft':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[prevIndex]?.focus();\r\n break;\r\n case 'Home':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[0]?.focus();\r\n break;\r\n case 'End':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[maxIndex]?.focus();\r\n break;\r\n default:\r\n break;\r\n }\r\n }, ...(link.children && link.children.length > 0\r\n ? {\r\n 'aria-haspopup': 'menu',\r\n 'aria-expanded': props.activeLink === i,\r\n onMouseEnter: () => {\r\n if (isDesktop) {\r\n props.setActiveLink(i);\r\n }\r\n },\r\n onFocus: () => {\r\n if (isDesktop) {\r\n props.setActiveLink(i);\r\n }\r\n },\r\n onClick: (e) => {\r\n if (!isDesktop) {\r\n e.preventDefault();\r\n props.setActiveLink(i);\r\n }\r\n },\r\n }\r\n : {\r\n 'data-link-only': true,\r\n onMouseEnter: () => props.setActiveLink(-1),\r\n }) },\r\n link.text,\r\n link.children && link.children.length > 0 ? (React.createElement(React.Fragment, null, getSvgIcon(InterfaceIcon.Chevron))) : (React.createElement(React.Fragment, null, getSvgIcon(InterfaceIcon.ArrowRight)))),\r\n link.children &&\r\n link.children.length > 0 &&\r\n !link.children.find((l) => l.children && l.children.length > 0) ? (React.createElement(NavigationDropdown, { parent: link, links: link.children, active: props.activeLink === i, goBack: (doFocus) => {\r\n props.setActiveLink(-1);\r\n if (doFocus) {\r\n itemsRef.current[i]?.focus();\r\n }\r\n }, toFocus: focus, removeFocus: () => setFocus(undefined), hasChildren: false, isDesktop: isDesktop, onMouseLeave: () => {\r\n if (isDesktop) {\r\n props.setActiveLink(-1);\r\n }\r\n } })) : null)))),\r\n props.links.map((link, i) => (React.createElement(React.Fragment, { key: `${link.id}-dropdown` }, link.children &&\r\n link.children.length > 0 &&\r\n link.children.find((l) => l.children && l.children.length > 0) ? (React.createElement(NavigationDropdown, { parent: link, links: link.children, active: props.activeLink === i, goBack: (doFocus) => {\r\n props.setActiveLink(-1);\r\n if (doFocus) {\r\n itemsRef.current[i]?.focus();\r\n }\r\n }, toFocus: focus, removeFocus: () => setFocus(undefined), hasChildren: true, isDesktop: isDesktop, onMouseLeave: () => {\r\n if (isDesktop) {\r\n props.setActiveLink(-1);\r\n }\r\n } })) : null))),\r\n React.createElement(S.BottomContainer, null,\r\n props.signUpCta && (React.createElement(LinkButton, { buttonType: props.signUpCta.buttonType ? props.signUpCta.buttonType : 'primary', href: props.signUpCta.url, target: props.signUpCta.target, icon: props.signUpCta.icon }, props.signUpCta.text)),\r\n React.createElement(AnnouncementCtas, { ...props, regionSelector: { ...props.regionSelector, idPrefix: 'mobile-navigation' } }))),\r\n React.createElement(S.Background, { \"aria-hidden\": \"true\", \"data-active\": props.active || props.activeLink !== -1 })));\r\n};\r\nconst NavigationDropdown = ({ onMouseLeave, ...props }) => {\r\n const [active, setActive] = React.useState(-1);\r\n const [focus, setFocus] = React.useState();\r\n const itemsRef = React.useRef([]);\r\n React.useEffect(() => {\r\n if (!props.active) {\r\n setActive(-1);\r\n setFocus(undefined);\r\n props.removeFocus();\r\n }\r\n }, [props.active]);\r\n React.useEffect(() => {\r\n setActive(-1);\r\n }, [props.isDesktop]);\r\n React.useEffect(() => {\r\n if (props.active && props.toFocus) {\r\n setTimeout(() => {\r\n itemsRef.current[props.toFocus === 'first'\r\n ? 0\r\n : props.parent.url\r\n ? props.links.length\r\n : props.links.length - 1]?.focus();\r\n }, 150);\r\n }\r\n }, [props.toFocus]);\r\n return (React.createElement(S.Dropdown, { role: \"none\", \"data-relative\": !props.hasChildren, \"data-active\": props.active, onMouseLeave: onMouseLeave },\r\n React.createElement(S.Level, { role: \"menu\", \"aria-label\": props.parent.text, \"data-active\": props.active },\r\n React.createElement(S.BackButton, { onClick: () => props.goBack(false), onKeyDown: (e) => handleBackButtonKeypress(e, props.goBack) },\r\n getSvgIcon(InterfaceIcon.ArrowRight),\r\n props.parent.text),\r\n props.parent.url && (React.createElement(\"li\", { role: \"none\" },\r\n React.createElement(S.SubLink, { ref: (el) => (itemsRef.current[0] = el), href: props.parent.url, target: props.parent.target, role: \"menuitem\", \"data-parent\": true, onKeyDown: (event) => handleSubLinkKeypress(event, 0, props.links.length, itemsRef, false, setActive, setFocus, props.goBack), onMouseEnter: () => setActive(-1) },\r\n React.createElement(S.SubLinkTitle, null,\r\n props.parent.text,\r\n \" \",\r\n React.createElement(FakeButton, { buttonType: \"primary\", iconOnly: true })),\r\n props.parent.description && (React.createElement(S.SubLinkDescription, null, props.parent.description))))),\r\n props.links.map((link, i) => (React.createElement(\"li\", { key: link.id, role: \"none\" },\r\n React.createElement(S.SubLink, { role: \"menuitem\", ref: (el) => (itemsRef.current[props.parent.url ? i + 1 : i] =\r\n el), href: link.url, target: link.target, ...(link.children && link.children.length > 0\r\n ? {\r\n 'aria-haspopup': 'menu',\r\n 'aria-expanded': active === (props.parent.url ? i + 1 : i),\r\n 'data-active': active === (props.parent.url ? i + 1 : i),\r\n onClick: (e) => {\r\n if (!props.isDesktop) {\r\n e.preventDefault();\r\n setActive(props.parent.url ? i + 1 : i);\r\n }\r\n },\r\n }\r\n : {}), onKeyDown: (event) => handleSubLinkKeypress(event, props.parent.url ? i + 1 : i, props.parent.url ? props.links.length : props.links.length - 1, itemsRef, !!link.children && link.children.length > 0, setActive, setFocus, props.goBack), onMouseEnter: () => {\r\n if (props.isDesktop) {\r\n setActive(props.parent.url ? i + 1 : i);\r\n }\r\n }, onFocus: () => {\r\n if (props.isDesktop) {\r\n setActive(props.parent.url ? i + 1 : i);\r\n }\r\n } },\r\n React.createElement(S.SubLinkTitle, null,\r\n link.text,\r\n (!link.children || link.children.length === 0) && (React.createElement(React.Fragment, null, getSvgIcon(InterfaceIcon.ArrowRight)))),\r\n link.description && React.createElement(S.SubLinkDescription, null, link.description)))))),\r\n props.links.map((link, i) => (React.createElement(React.Fragment, { key: `${link.id}-column` }, link.children && link.children.length > 0 && (React.createElement(NavigationColumns, { active: props.active && active === (props.parent.url ? i + 1 : i), ariaLabel: link.text, goBack: (doFocus) => {\r\n setActive(-1);\r\n if (doFocus) {\r\n itemsRef.current[props.parent.url ? i + 1 : i]?.focus();\r\n }\r\n }, items: link.children, level: 1, toFocus: focus, removeFocus: () => setFocus(undefined), parent: link, isDesktop: props.isDesktop })))))));\r\n};\r\nconst NavigationColumns = (props) => {\r\n const [active, setActive] = React.useState(-1);\r\n const [focus, setFocus] = React.useState();\r\n const itemsRef = React.useRef([]);\r\n const singleLevel = React.useMemo(() => props.level === 1 &&\r\n (props.items[0].type === 'nav-card' ||\r\n (props.items[0].type === 'nav-link' &&\r\n (!props.items[0].children || props.items[0].children.length === 0) &&\r\n props.items.length > 6)), []);\r\n React.useEffect(() => {\r\n if (!props.active) {\r\n setActive(-1);\r\n setFocus(undefined);\r\n props.removeFocus();\r\n }\r\n }, [props.active]);\r\n React.useEffect(() => {\r\n if (props.active && props.toFocus) {\r\n setTimeout(() => {\r\n itemsRef.current[props.toFocus === 'first' ? 0 : props.items.length - 1]?.focus();\r\n }, 150);\r\n }\r\n }, [props.toFocus]);\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(S.Level, { role: \"menu\", \"aria-label\": props.ariaLabel, \"data-full\": singleLevel, \"data-level\": props.level, \"data-active\": props.active },\r\n React.createElement(S.BackButton, { onClick: () => props.goBack(false), onKeyDown: (e) => handleBackButtonKeypress(e, props.goBack) },\r\n getSvgIcon(InterfaceIcon.ArrowRight),\r\n props.ariaLabel),\r\n props.parent.url && (React.createElement(\"li\", { \"data-mobile\": true },\r\n React.createElement(S.SubLink, { href: props.parent.url, target: props.parent.target, onMouseEnter: () => {\r\n if (props.isDesktop) {\r\n setActive(-1);\r\n }\r\n } },\r\n React.createElement(S.SubLinkTitle, null,\r\n props.parent.text,\r\n getSvgIcon(InterfaceIcon.ArrowRight))))),\r\n props.items.map((link, i) => (React.createElement(\"li\", { key: link.id, role: \"none\" }, link.type === 'nav-link' ? (React.createElement(S.SubLink, { ref: (el) => (itemsRef.current[i] = el), href: link.url, target: link.target, role: \"menuitem\", ...(link.children && link.children.length > 0\r\n ? {\r\n 'aria-haspopup': 'menu',\r\n 'aria-expanded': active === i,\r\n 'data-active': active === i,\r\n onClick: (e) => {\r\n if (!props.isDesktop) {\r\n e.preventDefault();\r\n setActive(i);\r\n }\r\n },\r\n }\r\n : {}), onKeyDown: (event) => handleSubLinkKeypress(event, i, props.items.length - 1, itemsRef, !!link.children && link.children.length > 0, setActive, setFocus, props.goBack), onMouseEnter: () => {\r\n if (props.isDesktop) {\r\n setActive(i);\r\n }\r\n }, onFocus: () => {\r\n if (props.isDesktop) {\r\n setActive(i);\r\n }\r\n } },\r\n React.createElement(S.SubLinkTitle, null,\r\n link.icon && link.icon.type && (React.createElement(S.SubLinkIcon, { \"data-colour\": link.icon.colour }, getSvgIcon(link.icon.type))),\r\n link.text,\r\n (!link.children || link.children.length === 0) && (React.createElement(React.Fragment, null, getSvgIcon(InterfaceIcon.ArrowRight)))))) : (React.createElement(S.SubLink, { ref: (el) => (itemsRef.current[i] = el), href: link.url, target: link.target, \"data-card\": true, onKeyDown: (event) => handleSubLinkKeypress(event, i, props.items.length - 1, itemsRef, false, setActive, setFocus, props.goBack) },\r\n link.image && (React.createElement(S.SubLinkImage, null,\r\n React.createElement(S.Image, { src: imageUrl(link.image, { width: 104, height: 204 }), alt: link.image.altText, loading: \"lazy\" }))),\r\n React.createElement(S.SubLinkTitle, null,\r\n link.text,\r\n React.createElement(React.Fragment, null, getSvgIcon(InterfaceIcon.ArrowRight))),\r\n link.description && (React.createElement(S.SubLinkDescription, null, link.description)))))))),\r\n props.items.map((link, i) => (React.createElement(React.Fragment, { key: `${link.id}-column` }, link.type !== 'nav-card' && link.children && link.children.length > 0 && (React.createElement(NavigationColumns, { active: active === i, ariaLabel: link.text, goBack: (doFocus) => {\r\n setActive(-1);\r\n if (doFocus) {\r\n itemsRef.current[i]?.focus();\r\n }\r\n }, items: link.children, level: props.level + 1, toFocus: focus, removeFocus: () => setFocus(undefined), parent: link, isDesktop: props.isDesktop })))))));\r\n};\r\nfunction handleSubLinkKeypress(event, i, maxIndex, itemsRef, isButton, setActive, setFocus, goBack) {\r\n const nextIndex = i === maxIndex ? 0 : clamp(i + 1, maxIndex);\r\n const prevIndex = i === 0 ? maxIndex : clamp(i - 1, maxIndex);\r\n switch (event.key) {\r\n case 'Space':\r\n case 'Enter':\r\n case 'ArrowRight':\r\n if (isButton) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n setActive(i);\r\n setFocus('first');\r\n }\r\n break;\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[nextIndex]?.focus();\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[prevIndex]?.focus();\r\n break;\r\n case 'Home':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[0]?.focus();\r\n break;\r\n case 'End':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[maxIndex]?.focus();\r\n break;\r\n case 'ArrowLeft':\r\n case 'Escape':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n goBack(true);\r\n break;\r\n default:\r\n break;\r\n }\r\n}\r\nfunction handleBackButtonKeypress(event, goBack) {\r\n switch (event.key) {\r\n case 'Space':\r\n case 'Enter':\r\n case 'ArrowLeft':\r\n case 'Escape':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n goBack(true);\r\n break;\r\n default:\r\n break;\r\n }\r\n}\r\nexport default Navigation;\r\n","import { InterfaceIcon } from '@helpers/icons';\r\nimport SvgBRC from '@img/logos/brc-purple.svg';\r\nimport SvgNIRC from '@img/logos/nirc-purple.svg';\r\nimport SvgSRC from '@img/logos/src-purple.svg';\r\nimport SvgWRC from '@img/logos/wrc-purple.svg';\r\nimport Button, { LinkButton } from '@stories/Components/Buttons/Button/Button';\r\nimport Searchbox from '@stories/Components/Misc/Searchbox/Searchbox';\r\nimport * as React from 'react';\r\nimport AccountDropdown from './AccountDropdown/AccountDropdown';\r\nimport AnnouncementBar from './AnnouncementBar/AnnouncementBar';\r\nimport S from './Header.styles';\r\nimport Navigation from './Navigation/Navigation';\r\nexport var Site;\r\n(function (Site) {\r\n Site[\"BRC\"] = \"brc\";\r\n Site[\"NIRC\"] = \"nirc\";\r\n Site[\"SRC\"] = \"src\";\r\n Site[\"WRC\"] = \"wrc\";\r\n})(Site || (Site = {}));\r\nconst Header = (props) => {\r\n const [active, setActive] = React.useState(-1);\r\n const [menuOpen, setMenuOpen] = React.useState(false);\r\n const [searchOpen, setSearchOpen] = React.useState(false);\r\n return (React.createElement(S.Container, null,\r\n React.createElement(S.GlobalStyles, null),\r\n React.createElement(AnnouncementBar, { ...props }),\r\n React.createElement(S.Header, { onMouseLeave: () => setActive(-1) },\r\n React.createElement(S.Logo, { href: props.site.url, \"aria-label\": props.site.label, onMouseEnter: () => setActive(-1) }, renderLogo(props.site.type)),\r\n React.createElement(Navigation, { active: menuOpen, contactCta: props.contactCta, links: props.links, regionSelector: props.regionSelector, signUpCta: !props.accountDropdown ? props.signUpCta : undefined, translations: props.translations, activeLink: active, setActiveLink: setActive }),\r\n React.createElement(S.CtaWrapper, { onMouseEnter: () => setActive(-1) },\r\n React.createElement(Button, { buttonType: \"secondary\", onClick: () => {\r\n setSearchOpen(!searchOpen);\r\n setMenuOpen(false);\r\n }, icon: !searchOpen ? InterfaceIcon.Search : InterfaceIcon.Close, \"data-mobile-only\": true }, !searchOpen ? (React.createElement(React.Fragment, null, props.translations?.['global.search.open'] ?? '')) : (React.createElement(React.Fragment, null, props.translations?.['global.search.close'] ?? ''))),\r\n React.createElement(S.SearchboxContainer, { \"data-open\": searchOpen },\r\n React.createElement(S.SearchBoxInner, null,\r\n React.createElement(Searchbox, { ...props.searchbox, idPrefix: \"header-\" }))),\r\n React.createElement(S.SearchBackground, { \"data-active\": searchOpen }),\r\n props.accountDropdown ? (React.createElement(AccountDropdown, { ...props.accountDropdown, onClick: () => {\r\n setSearchOpen(false);\r\n setMenuOpen(false);\r\n } })) : props.signInCta || props.signUpCta ? (React.createElement(React.Fragment, null,\r\n props.signInCta && (React.createElement(LinkButton, { buttonType: props.signInCta.buttonType ? props.signInCta.buttonType : 'secondary', href: props.signInCta.url, target: props.signInCta.target, icon: props.signInCta.icon ?? InterfaceIcon.User }, props.signInCta.text)),\r\n props.signUpCta && (React.createElement(LinkButton, { buttonType: props.signUpCta.buttonType ? props.signUpCta.buttonType : 'primary', href: props.signUpCta.url, target: props.signUpCta.target, icon: props.signUpCta.icon }, props.signUpCta.text)))) : null,\r\n React.createElement(Button, { buttonType: \"secondary\", onClick: () => {\r\n if (!menuOpen) {\r\n document.getElementById('nav-first-link')?.focus();\r\n }\r\n setMenuOpen(!menuOpen);\r\n setSearchOpen(false);\r\n }, icon: !menuOpen ? InterfaceIcon.Menu : InterfaceIcon.Close, \"aria-controls\": \"main-nav\", \"aria-expanded\": menuOpen, \"data-mobile-only\": true }, !menuOpen ? (React.createElement(React.Fragment, null, props.translations?.['global.menu.open'] ?? '')) : (React.createElement(React.Fragment, null, props.translations?.['global.menu.close'] ?? '')))))));\r\n};\r\nexport function renderLogo(site) {\r\n switch (site) {\r\n case Site.BRC:\r\n return React.createElement(SvgBRC, null);\r\n case Site.NIRC:\r\n return React.createElement(SvgNIRC, null);\r\n case Site.SRC:\r\n return React.createElement(SvgSRC, null);\r\n case Site.WRC:\r\n return React.createElement(SvgWRC, null);\r\n }\r\n}\r\nexport default Header;\r\n"],"names":["imageWrapperPreserveRatio","width","height","css","imageCoverContainer","relative","imageUrl","image","imageParams","params","rxy","focalPoint","top","left","undefined","heightratio","Math","round","widthratio","paramsString","queryString","src","getSrcs","upper","lower","steps","ratio","sizes","increment","Array","fill","map","_","index","ceil","getRange","sizesArr","size","split","srcSet","join","queries","values","defaultValue","getValue","mediaQueryLists","findIndex","mql","matches","value","setValue","useState","setMediaQueryLists","useEffect","query","window","matchMedia","handler","forEach","addListener","removeListener","Container","styled","div","withConfig","displayName","componentId","brand","global","black","linkStyles","fonts","lato","semiBold","link","Button","button","ButtonReset","transition","Regions","ul","Layers","Navigation","primary","grey","from","Device","TabletLarge","Region","a","LanguageLinks","purple","light","Language","regular","props","_props$idPrefix","_props$idPrefix2","open","setOpen","React","containerRef","useOutsideClick","buttonRef","itemsRef","regions","length","S","ref","FocusRing","focusRingClass","idPrefix","onClick","onKeyDown","event","key","focusRegion","getSvgIcon","InterfaceIcon","label","Chevron","id","role","region","i","_props$idPrefix3","site","el","current","tabIndex","languages","_buttonRef$current","nextIndex","clamp","prevIndex","preventDefault","stopPropagation","focus","as","href","url","renderLogo","text","language","j","_props$idPrefix4","_itemsRef$current$i","_itemsRef$current$i$q","_itemsRef$current$i2","_itemsRef$current$i2$","_buttonRef$current2","nextLanguageIndex","prevLanguageIndex","querySelectorAll","_itemsRef$current$ind","_itemsRef$current$ind2","_itemsRef$current$ind3","_path","_path2","_extends","Object","assign","bind","n","e","arguments","t","r","hasOwnProperty","call","apply","viewBox","xmlns","d","bold","fluid","until","DesktopSmall","dark","white","ActiveIndicator","Links","Link","items","_props$onClick","_itemsRef$current$","User","Tick","item","_itemsRef$current$nex","_itemsRef$current$pre","icon","SectionWrapper","blue","secondary","yellow","SectionWrapperStyles","Inner","CtaWrapper","Announcement","p","reverseLinkUnderline","RegionSelectorStyles","AnnouncementCtas","RegionSelector","regionSelector","contactCta","target","_props$announcementVa","announcementVariant","flush","skipLinkType","translations","announcement","cta","nav","Background","Desktop","TopLevelLink","rgba","BottomContainer","ButtonStyles","AnnouncementBarStyles","Dropdown","siteWide","Level","SubLink","scrollbars","lightest","IconWrapper","SubLinkTitle","span","between","h5","h6","SubLinkDescription","paragraphSmall","SubLinkIcon","BrandColours","BlueDark","BlueLight","GreenDark","green","GreenLight","OrangeDark","orange","OrangeLight","PinkDark","pink","PinkLight","PurpleDark","SubLinkImage","Image","img","BackButton","intro","GlobalStyles","createGlobalStyle","header","Header","Logo","Search","Text","srOnly","Menu","SearchboxStyles","SearchboxContainer","SearchBoxInner","SearchBackground","NavigationStyles","NavigationDropdown","_ref","onMouseLeave","active","setActive","setFocus","removeFocus","isDesktop","toFocus","setTimeout","_itemsRef$current","parent","links","hasChildren","goBack","handleBackButtonKeypress","ArrowRight","handleSubLinkKeypress","onMouseEnter","FakeButton","buttonType","iconOnly","description","children","onFocus","NavigationColumns","ariaLabel","doFocus","_itemsRef$current2","level","singleLevel","type","_itemsRef$current3","colour","alt","altText","loading","_itemsRef$current$i3","maxIndex","isButton","_itemsRef$current$nex2","_itemsRef$current$pre2","_itemsRef$current$2","_itemsRef$current$max2","_props$translations$g","_props$translations","_props$links","useMedia","setActiveLink","addEventListener","passive","removeEventListener","_itemsRef$current$max","activeLink","find","l","signUpCta","LinkButton","Site","BRC","SvgBRC","NIRC","SvgNIRC","SRC","SvgSRC","WRC","SvgWRC","_props$translations$g2","_props$translations2","_props$signInCta$icon","_props$translations$g3","_props$translations3","_props$translations$g4","_props$translations4","menuOpen","setMenuOpen","searchOpen","setSearchOpen","AnnouncementBar","accountDropdown","Close","Searchbox","searchbox","AccountDropdown","signInCta","_document$getElementB","document","getElementById"],"sourceRoot":""}