{"version":3,"file":"Header-74dd4ed37cda0c36354d.js","mappings":"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","sources":["webpack://james-fisher/./src/helpers/layers.ts","webpack://james-fisher/./src/img/icons/search.svg","webpack://james-fisher/./src/img/icons/nav-chevron.svg","webpack://james-fisher/./src/stories/Widgets/Header/ArticleSummary/ArticleSummary.styles.ts","webpack://james-fisher/./src/stories/Widgets/Header/ArticleSummary/ArticleSummary.tsx","webpack://james-fisher/./src/stories/Widgets/Header/DesktopDropdown/DesktopDropdown.styles.ts","webpack://james-fisher/./src/stories/Widgets/Header/DesktopDropdown/DesktopDropdown.tsx","webpack://james-fisher/./src/stories/Widgets/Header/DesktopNavigation/DesktopNavigation.styles.ts","webpack://james-fisher/./src/stories/Widgets/Header/DesktopNavigationLink/DesktopNavigationLink.tsx","webpack://james-fisher/./src/stories/Widgets/Header/DesktopNavigation/DesktopNavigation.tsx","webpack://james-fisher/./src/stories/Widgets/Header/TopLinks/TopLinks.styles.ts","webpack://james-fisher/./src/stories/Widgets/Header/Header.styles.ts","webpack://james-fisher/./src/img/icons/search-close.svg","webpack://james-fisher/./src/stories/Widgets/Header/MobileHeader/MobileHeader.styles.ts","webpack://james-fisher/./src/stories/Widgets/Header/MobileHeader/MobileHeader.tsx","webpack://james-fisher/./src/img/icons/nav-back.svg","webpack://james-fisher/./src/stories/Widgets/Header/MobileNavigation/MobileNavigation.styles.ts","webpack://james-fisher/./src/stories/Widgets/Header/MobileNavigation/MobileNavigation.tsx","webpack://james-fisher/./src/img/icons/search-submit.svg","webpack://james-fisher/./src/stories/Widgets/Header/SearchOverlay/SearchOverlay.styles.ts","webpack://james-fisher/./src/stories/Widgets/Header/SearchOverlay/SearchOverlay.tsx","webpack://james-fisher/./src/stories/Widgets/Header/TopLinks/TopLinks.tsx","webpack://james-fisher/./src/stories/Widgets/Header/Header.tsx","webpack://james-fisher/./src/hooks/useScrollHandler.ts"],"sourcesContent":["/**\r\n * The various major z-index layers, adjust with caution and leave space between to add to later.\r\n */\r\nexport const Layers = {\r\n Overlays: 50,\r\n Header: 100,\r\n Modal: 1000,\r\n};\r\n","var _path;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nconst SvgSearch = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 19.818 21\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.817 15.244a8.464 8.464 0 0 1-4.427 1.239A8.317 8.317 0 0 1 0 8.242 8.318 8.318 0 0 1 8.391 0a8.318 8.318 0 0 1 8.392 8.242 8.131 8.131 0 0 1-2.083 5.435l5.12 5.687L18 21l-5.183-5.756Zm-4.426-.867a6.2 6.2 0 0 0 6.25-6.138A6.2 6.2 0 0 0 8.391 2.1a6.2 6.2 0 0 0-6.25 6.139 6.2 6.2 0 0 0 6.25 6.138Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n})));\n\nexport default SvgSearch;","var _defs, _g;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nconst SvgNavChevron = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 14,\n height: 14\n}, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"nav-chevron_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n transform: \"translate(0 -2)\",\n fill: \"#4d4d4d\",\n stroke: \"#4d4d4d\",\n d: \"M0 0h14v14H0z\"\n})))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(180 7 6)\",\n clipPath: \"url(#nav-chevron_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"#4d4d4d\",\n strokeLinecap: \"square\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 107\",\n d: \"m4.281 4.996 5.743-5.743\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 108\",\n d: \"m4.281 4.996 5.743 5.743\"\n})))));\n\nexport default SvgNavChevron;","import brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from } from '@helpers/media';\r\nimport { tag } from '@helpers/typography';\r\nimport { imageWrapperPreserveRatio, imageCoverContainer } from '@helpers/image';\r\nimport SimpleImage from '@stories/Components/SimpleImage/SimpleImage';\r\nimport styled from 'styled-components';\r\nconst Container = styled.article `\r\n display: block;\r\n\r\n &:not(:last-child) {\r\n padding-bottom: 24px;\r\n border-bottom: 1px solid ${brand.grey.otherGrey};\r\n margin-bottom: 24px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n &:not(:last-child) {\r\n padding-bottom: 48px;\r\n border-bottom: 1px solid ${brand.grey.otherGrey};\r\n margin-bottom: 48px;\r\n }\r\n }\r\n`;\r\nconst Link = styled.a `\r\n display: grid;\r\n align-items: center;\r\n gap: 12px;\r\n grid-template-columns: min(50%, 185px) 1fr;\r\n text-decoration: none;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n gap: 32px;\r\n }\r\n`;\r\nconst ImageWrapper = styled.div `\r\n ${imageWrapperPreserveRatio(185, 134)}\r\n`;\r\nconst Image = styled(SimpleImage) `\r\n ${imageCoverContainer()}\r\n`;\r\nconst ContentWrapper = styled.div `\r\n display: block;\r\n`;\r\nconst Tag = styled.small `\r\n ${tag};\r\n display: block;\r\n color: ${brand.grey.otherGrey};\r\n margin: 0 0 12px;\r\n`;\r\nconst Title = styled.h3 `\r\n display: block;\r\n color: ${brand.grey.grey6};\r\n ${fonts.helvetica.bold};\r\n font-size: 16px;\r\n letter-spacing: -0.01em;\r\n line-height: 24px;\r\n text-decoration: none;\r\n text-underline-position: under;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 18px;\r\n line-height: 30px;\r\n }\r\n\r\n ${Link}:focus &,\r\n ${Link}:hover & {\r\n text-decoration: underline;\r\n }\r\n`;\r\nconst ArticleSummaryStyles = {\r\n Container,\r\n ContentWrapper,\r\n ImageWrapper,\r\n Image,\r\n Link,\r\n Tag,\r\n Title,\r\n};\r\nexport default ArticleSummaryStyles;\r\n","import { imageUrl } from '@helpers/image';\r\nimport * as React from 'react';\r\nimport S from './ArticleSummary.styles';\r\nconst ArticleSummary = ({ image, tabIndex, tag, title, url }) => {\r\n return (React.createElement(S.Container, null,\r\n React.createElement(S.Link, { href: url, tabIndex: tabIndex },\r\n React.createElement(S.ImageWrapper, null,\r\n React.createElement(S.Image, { alt: \"\", loading: \"lazy\", role: \"presentation\", src: imageUrl(image, { width: 185, height: 134 }) })),\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(S.Tag, null, tag),\r\n React.createElement(S.Title, { id: title.replaceAll(/[\\W_]+/g, '-').toLowerCase() }, title)))));\r\n};\r\nexport default ArticleSummary;\r\n","import { cubicEaseOut } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport { baseGrid, siteWide } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n --fgColor: ${brand.grey.grey6};\r\n --bgColor: ${brand.white};\r\n\r\n position: fixed;\r\n top: var(--headerHeight);\r\n left: 0;\r\n display: flex;\r\n flex-direction: column;\r\n background: var(--bgColor);\r\n color: var(--fgColor);\r\n height: calc(100% - var(--headerHeight));\r\n opacity: 0;\r\n overflow-y: auto;\r\n padding: 36px 0;\r\n pointer-events: none;\r\n transition: opacity 0.15s ${cubicEaseOut};\r\n width: 100%;\r\n\r\n [data-d-active='true'] & {\r\n opacity: 1;\r\n pointer-events: all;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n padding: 72px 0;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n ${siteWide};\r\n ${baseGrid};\r\n grid-template-rows: auto 1fr;\r\n height: 100%;\r\n`;\r\nconst Current = styled.span `\r\n display: block;\r\n color: ${brand.blue.base};\r\n ${fonts.helvetica.bold};\r\n font-size: 20px;\r\n grid-column: 1 / span 4;\r\n grid-row: 1;\r\n line-height: 1em;\r\n margin: 0 0 24px;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 24px;\r\n grid-column: 2 / span 3;\r\n margin: 0 0 48px;\r\n }\r\n`;\r\nconst Column = styled.div `\r\n border-right: 1px solid ${brand.grey.grey3};\r\n padding-right: 32px;\r\n`;\r\nconst Column1 = styled(Column) `\r\n grid-column: 1 / span 4;\r\n grid-row: 2;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n grid-column: 2 / span 3;\r\n }\r\n`;\r\nconst Column2 = styled(Column) `\r\n grid-column: 5 / span 4;\r\n grid-row: 2;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n grid-column: 5 / span 3;\r\n }\r\n`;\r\nconst Column3 = styled(Column) `\r\n border-right: 0;\r\n grid-column: 9 / span 4;\r\n grid-row: 2;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n grid-column: 8 / span 3;\r\n }\r\n`;\r\nconst ArticleColumn = styled(Column) `\r\n border-right: 0;\r\n grid-column: -5 / span 4;\r\n grid-row: 1 / span 2;\r\n justify-self: flex-end;\r\n max-width: 417px;\r\n padding-right: 0;\r\n`;\r\nconst List = styled.ul ``;\r\nconst Item = styled.li `\r\n display: block;\r\n`;\r\nconst Link = styled.a `\r\n display: flex;\r\n align-items: center;\r\n color: ${brand.grey.grey5};\r\n ${fonts.helvetica.bold};\r\n font-size: 16px;\r\n height: 56px;\r\n line-height: 1em;\r\n padding: 0;\r\n text-decoration: none;\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 20px;\r\n height: 72px;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n`;\r\nconst Text = styled.span `\r\n overflow: hidden;\r\n overflow: clip;\r\n padding: 0 0 5px;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n width: 100%;\r\n\r\n ${Link}[data-active=\"true\"] &,\r\n ${Link}:focus &,\r\n ${Link}:hover & {\r\n color: ${brand.blue.base};\r\n text-decoration: underline;\r\n text-underline-position: under;\r\n }\r\n`;\r\nconst DesktopDropdownStyles = {\r\n ArticleColumn,\r\n Column1,\r\n Column2,\r\n Column3,\r\n Container,\r\n Current,\r\n Inner,\r\n Item,\r\n Link,\r\n List,\r\n Text,\r\n};\r\nexport default DesktopDropdownStyles;\r\n","import SvgChevron from '@img/icons/nav-chevron.svg';\r\nimport * as React from 'react';\r\nimport ArticleSummary from '../ArticleSummary/ArticleSummary';\r\nimport S from './DesktopDropdown.styles';\r\nconst DesktopDropdown = ({ articles, isActive, items, title }) => {\r\n const [activeLevel1, setActiveLevel1] = React.useState();\r\n const [activeLevel2, setActiveLevel2] = React.useState();\r\n // Reset state if navigation is toggled.\r\n React.useEffect(() => {\r\n if (isActive) {\r\n setActiveLevel1(undefined);\r\n setActiveLevel2(undefined);\r\n }\r\n }, [isActive]);\r\n const articlesToShow = activeLevel2?.articles ?? activeLevel1?.articles ?? articles ?? [];\r\n return (React.createElement(S.Container, null,\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.Current, null, title),\r\n React.createElement(S.Column1, null,\r\n React.createElement(S.List, null, items.map((item) => (React.createElement(S.Item, { key: item.id },\r\n React.createElement(S.Link, { href: item.url, tabIndex: isActive ? 0 : -1, target: item.target, \"data-active\": item.id === activeLevel1?.id, onMouseEnter: () => {\r\n setActiveLevel2(undefined);\r\n if (item.children?.length) {\r\n setActiveLevel1(item);\r\n }\r\n else {\r\n setActiveLevel1(undefined);\r\n }\r\n }, onKeyDown: (event) => {\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n setActiveLevel1(item);\r\n break;\r\n case 'ArrowLeft':\r\n setActiveLevel1(undefined);\r\n break;\r\n default:\r\n break;\r\n }\r\n } },\r\n React.createElement(S.Text, null, item.text),\r\n !!item.children?.length && React.createElement(SvgChevron, null))))))),\r\n !!activeLevel1?.children?.length && (React.createElement(S.Column2, null,\r\n React.createElement(S.List, null, activeLevel1.children.map((item) => (React.createElement(S.Item, { key: item.id },\r\n React.createElement(S.Link, { href: item.url, tabIndex: isActive ? 0 : -1, target: item.target, \"data-active\": item.id === activeLevel2?.id, onMouseEnter: () => {\r\n if (item.children?.length) {\r\n setActiveLevel2(item);\r\n }\r\n else {\r\n setActiveLevel2(undefined);\r\n }\r\n }, onKeyDown: (event) => {\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n setActiveLevel2(item);\r\n break;\r\n case 'ArrowLeft':\r\n setActiveLevel2(undefined);\r\n break;\r\n default:\r\n break;\r\n }\r\n } },\r\n React.createElement(S.Text, null, item.text),\r\n !!item.children?.length && React.createElement(SvgChevron, null)))))))),\r\n !!activeLevel2?.children?.length && (React.createElement(S.Column3, null,\r\n React.createElement(S.List, null, activeLevel2.children.map((item) => (React.createElement(S.Item, { key: item.id },\r\n React.createElement(S.Link, { href: item.url, tabIndex: isActive ? 0 : -1, target: item.target },\r\n React.createElement(S.Text, null, item.text)))))))),\r\n !!articlesToShow.length && activeLevel2 === undefined && (React.createElement(S.ArticleColumn, null,\r\n React.createElement(S.List, { as: \"div\" }, articlesToShow.map((item) => (React.createElement(ArticleSummary, { key: item.id, ...item, tabIndex: isActive ? 0 : -1 })))))))));\r\n};\r\nexport default DesktopDropdown;\r\n","import { cubicEaseOut } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.nav ``;\r\nconst ItemList = styled.ul `\r\n display: flex;\r\n align-items: center;\r\n`;\r\nconst Item = styled.li `\r\n display: flex;\r\n align-items: center;\r\n`;\r\nconst Link = styled.a `\r\n --itemHeight: ${fluid(14, 18, Device.TabletLarge)};\r\n --padding: ${fluid(12, 32, Device.TabletLarge)};\r\n\r\n position: relative;\r\n display: inline-block;\r\n background: none;\r\n border: 0;\r\n box-sizing: content-box;\r\n color: var(--fgColor);\r\n ${fonts.helvetica.bold};\r\n font-size: var(--itemHeight);\r\n height: var(--itemHeight);\r\n letter-spacing: -0.01em;\r\n line-height: 1em;\r\n padding: 16px var(--padding) calc((var(--headerHeight) - var(--itemHeight)) / 2);\r\n text-decoration: none;\r\n text-underline-position: under;\r\n transform: translateX(calc(var(--padding)));\r\n\r\n > svg {\r\n display: block;\r\n height: 20px;\r\n width: 20px;\r\n }\r\n\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n bottom: -1px;\r\n left: 50%;\r\n background: ${brand.blue.base};\r\n height: 4px;\r\n transform: translateX(-50%) scaleX(0);\r\n transform-origin: center;\r\n transition: transform 0.15s ${cubicEaseOut};\r\n width: calc(100% - var(--padding) - var(--padding));\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n ${Item}[data-d-active='true'] &,\r\n &:focus,\r\n &:hover {\r\n &::after {\r\n transform: translateX(-50%) scaleX(1);\r\n }\r\n }\r\n`;\r\nconst DesktopNavigationStyles = {\r\n Container,\r\n Item,\r\n ItemList,\r\n Link,\r\n};\r\nexport default DesktopNavigationStyles;\r\n","import { useHoverIntent } from 'react-use-hoverintent';\r\nimport * as React from 'react';\r\nimport DesktopDropdown from '../DesktopDropdown/DesktopDropdown';\r\nimport S from '../DesktopNavigation/DesktopNavigation.styles';\r\nconst DesktopNavigation = ({ item, onClick }) => {\r\n const [active, setActive] = React.useState(false);\r\n const [hovered, anchorRef] = useHoverIntent({\r\n // These settings ensure the drop down doesn't appear until the user stops moving the mouse for 100ms\r\n interval: 100,\r\n sensitivity: 100,\r\n // This allows 250ms before hiding the drop down if the mouse leaves the item or drop down\r\n timeout: 250,\r\n });\r\n return (React.createElement(S.Item, { ref: anchorRef, \"data-d-active\": active || hovered },\r\n React.createElement(S.Link, { href: item.url, target: item.target, onKeyDown: (event) => {\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n case 'Escape':\r\n setActive(true);\r\n break;\r\n case 'ArrowUp':\r\n setActive(false);\r\n break;\r\n default:\r\n break;\r\n }\r\n }, onClick: onClick }, item.text),\r\n !!item.children?.length && (React.createElement(DesktopDropdown, { articles: item.articles, isActive: active || hovered, items: item.children, title: item.text }))));\r\n};\r\nexport default DesktopNavigation;\r\n","import SvgSearch from '@img/icons/search.svg';\r\nimport * as React from 'react';\r\nimport DesktopNavigationLink from '../DesktopNavigationLink/DesktopNavigationLink';\r\nimport S from './DesktopNavigation.styles';\r\nconst DesktopNavigation = ({ items, reduced = false, onSearchToggle, }) => {\r\n return (React.createElement(S.Container, { \"aria-label\": \"Main Navigation - Desktop\" },\r\n React.createElement(S.ItemList, null,\r\n items.map((item) => (React.createElement(DesktopNavigationLink, { key: item.id, item: item }))),\r\n !reduced && (React.createElement(S.Item, null,\r\n React.createElement(S.Link, { as: \"button\", \"aria-label\": \"Toggle Search Overlay\", onClick: (event) => {\r\n event.preventDefault();\r\n onSearchToggle();\r\n } },\r\n React.createElement(SvgSearch, null)))))));\r\n};\r\nexport default DesktopNavigation;\r\n","import fonts from '@helpers/fonts';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.nav ``;\r\nconst ItemList = styled.ul `\r\n display: flex;\r\n align-items: center;\r\n`;\r\nconst Item = styled.li `\r\n display: flex;\r\n align-items: center;\r\n\r\n &::after {\r\n display: inline-block;\r\n border-left: 1px solid #b1b3b5;\r\n height: 16px;\r\n margin: 0 32px;\r\n }\r\n\r\n &:not(:last-child)::after {\r\n content: '';\r\n }\r\n`;\r\nconst Link = styled.a `\r\n display: inline-block;\r\n color: #b1b3b5;\r\n ${fonts.helvetica.bold};\r\n font-size: 13px;\r\n height: 16px;\r\n line-height: 1em;\r\n text-decoration: none;\r\n text-underline-position: under;\r\n\r\n &:focus {\r\n outline: auto;\r\n outline-offset: 5px;\r\n }\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 14px;\r\n }\r\n`;\r\nconst TopLinksStyles = {\r\n Container,\r\n Item,\r\n ItemList,\r\n Link,\r\n};\r\nexport default TopLinksStyles;\r\n","import { cubicEaseOut } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { Layers } from '@helpers/layers';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport SimpleImage from '@stories/Components/SimpleImage/SimpleImage';\r\nimport { rgba } from 'polished';\r\nimport styled, { createGlobalStyle } from 'styled-components';\r\nimport DesktopNavigationStyles from './DesktopNavigation/DesktopNavigation.styles';\r\nimport TopLinksStyles from './TopLinks/TopLinks.styles';\r\nconst GlobalStyles = createGlobalStyle `\r\n /* Declare global header CSS variables. */\r\n :root {\r\n --headerHeight: ${(props) => (props.reduced ? fluid(64, 110) : fluid(64, 175))};\r\n scroll-padding-top: calc(var(--headerHeight) - 2px);\r\n }\r\n\r\n /* Ensure all body content is below fixed header. */\r\n #main {\r\n padding-top: var(--headerHeight);\r\n }\r\n\r\n /* Define attribute to allow header overlap. */\r\n [data-header-overlap=\"true\"] {\r\n margin-top: calc(var(--headerHeight) * -1);\r\n }\r\n`;\r\n/**\r\n * Just used to declare CSS variables for the rest of the components.\r\n */\r\nconst Root = styled.div `\r\n --fgColor: ${brand.white};\r\n --bgColor: ${rgba(brand.white, 0)};\r\n\r\n &[data-active='true'],\r\n &:focus-within,\r\n &:hover {\r\n --fgColor: ${brand.grey.grey6};\r\n --bgColor: ${rgba(brand.white, 1)};\r\n }\r\n`;\r\nconst Container = styled.header `\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n display: grid;\r\n background-color: var(--bgColor);\r\n border-bottom: 1px solid ${rgba('#B1B3B5', 0.5)};\r\n color: var(--fgColor);\r\n height: var(--headerHeight);\r\n transition: background-color 0.15s ${cubicEaseOut}, color 0.15s ${cubicEaseOut};\r\n width: 100%;\r\n z-index: ${Layers.Header};\r\n\r\n ${TopLinksStyles.Container} {\r\n @media ${until(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n position: absolute;\r\n top: 12px;\r\n right: 18px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n position: absolute;\r\n top: 12px;\r\n right: 18px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n top: 32px;\r\n right: 18px;\r\n }\r\n }\r\n\r\n ${DesktopNavigationStyles.Container} {\r\n align-self: flex-end;\r\n margin-left: auto;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n ${siteWide};\r\n position: relative;\r\n align-items: center;\r\n flex-direction: row;\r\n`;\r\nconst LogoWrapper = styled.a `\r\n display: grid;\r\n color: var(--fgColor);\r\n height: ${fluid(40, 78)};\r\n user-select: none;\r\n width: ${fluid(146, 286)};\r\n\r\n &:focus {\r\n outline: auto;\r\n outline-offset: 5px;\r\n }\r\n`;\r\nconst LogoGreyscale = styled(SimpleImage) `\r\n grid-area: 1 / 1;\r\n height: 100%;\r\n object-fit: contain;\r\n object-position: left center;\r\n opacity: 1;\r\n transition: opacity 0.15s ${cubicEaseOut};\r\n\r\n ${Root}[data-active='true'] &,\r\n ${Root}:focus-within &,\r\n ${Root}:hover & {\r\n opacity: 0;\r\n }\r\n`;\r\nconst LogoColor = styled(SimpleImage) `\r\n grid-area: 1 / 1;\r\n height: 100%;\r\n object-fit: contain;\r\n object-position: left center;\r\n opacity: 0;\r\n transition: opacity 0.15s ${cubicEaseOut};\r\n\r\n ${Root}[data-active='true'] &,\r\n ${Root}:focus-within &,\r\n ${Root}:hover & {\r\n opacity: 1;\r\n }\r\n`;\r\nconst HeaderStyles = {\r\n Container,\r\n GlobalStyles,\r\n Inner,\r\n LogoColor,\r\n LogoGreyscale,\r\n LogoWrapper,\r\n Root,\r\n};\r\nexport default HeaderStyles;\r\n","var _g;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nconst SvgSearchClose = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20.627,\n height: 20.626\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Group 79\",\n fill: \"#4b555b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 44\",\n d: \"m19 20.626-19-19L1.626 0l19 19Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 44\",\n d: \"m1.626 20.626 19-19L19 0 0 19Z\"\n}))));\n\nexport default SvgSearchClose;","import { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n display: flex;\r\n align-items: center;\r\n margin-left: auto;\r\n transform: translateX(14px);\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n`;\r\nconst Button = styled.button `\r\n display: inline-flex;\r\n background: none;\r\n border: 0;\r\n color: currentColor;\r\n height: 48px;\r\n padding: 0;\r\n place-content: center;\r\n place-items: center;\r\n width: 48px;\r\n\r\n svg {\r\n display: block;\r\n height: 20px;\r\n width: 20px;\r\n }\r\n\r\n &:focus {\r\n outline: auto;\r\n }\r\n`;\r\nconst MobileHeaderStyles = {\r\n Button,\r\n Container,\r\n};\r\nexport default MobileHeaderStyles;\r\n","import SvgSearchClose from '@img/icons/search-close.svg';\r\nimport SvgSearch from '@img/icons/search.svg';\r\nimport { Divide as Hamburger } from 'hamburger-react';\r\nimport * as React from 'react';\r\nimport S from './MobileHeader.styles';\r\nconst MobileHeader = ({ isActive, isSearchActive, reduced = false, onNavigationToggle, onSearchToggle, }) => {\r\n return (React.createElement(S.Container, null,\r\n !reduced && (React.createElement(S.Button, { onClick: (event) => {\r\n event.preventDefault();\r\n onSearchToggle();\r\n }, \"aria-label\": isSearchActive ? 'Toggle Search Closed' : 'Toggle Search Open' }, isSearchActive ? React.createElement(SvgSearchClose, null) : React.createElement(SvgSearch, null))),\r\n !reduced && (React.createElement(S.Button, { onClick: (event) => {\r\n event.preventDefault();\r\n onNavigationToggle();\r\n }, \"aria-label\": isActive ? 'Toggle Menu Closed' : 'Toggle Menu Open' },\r\n React.createElement(Hamburger, { color: \"currentColor\", size: 28, toggled: isActive, label: \"Toggle Menu Icon\" })))));\r\n};\r\nexport default MobileHeader;\r\n","var _defs, _g;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nconst SvgNavBack = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 10,\n height: 10\n}, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"nav-back_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#4d4d4d\",\n stroke: \"#4d4d4d\",\n d: \"M0 0h10v10H0z\"\n})))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"#4d4d4d\",\n clipPath: \"url(#nav-back_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n strokeLinecap: \"square\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 61\",\n d: \"M.965 4.996 5.339.622\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 62\",\n d: \"M.965 4.996 5.339 9.37\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 20\",\n d: \"M8.823 5.112H.996\"\n}))));\n\nexport default SvgNavBack;","import { cubicEaseOut } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport { Layers } from '@helpers/layers';\r\nimport styled from 'styled-components';\r\nconst Container = styled.nav `\r\n --fgColor: ${brand.grey.grey6};\r\n --bgColor: ${brand.white};\r\n\r\n position: fixed;\r\n top: var(--headerHeight);\r\n left: 0;\r\n display: flex;\r\n flex-direction: column;\r\n background: var(--bgColor);\r\n color: var(--fgColor);\r\n height: calc(100% - var(--headerHeight));\r\n opacity: 0;\r\n overflow-y: auto;\r\n padding: 0 18px;\r\n pointer-events: none;\r\n transition: opacity 0.15s ${cubicEaseOut};\r\n width: 100%;\r\n z-index: ${Layers.Header};\r\n\r\n &[data-m-active='true'] {\r\n opacity: 1;\r\n pointer-events: all;\r\n }\r\n`;\r\nconst List = styled.ul `\r\n padding: 32px 0;\r\n`;\r\nconst Item = styled.li `\r\n &:not(:last-child) {\r\n margin-bottom: 32px;\r\n }\r\n`;\r\nconst Link = styled.a `\r\n display: flex;\r\n align-items: center;\r\n color: currentColor;\r\n ${fonts.helvetica.bold};\r\n font-size: 18px;\r\n letter-spacing: -0.01em;\r\n line-height: 1em;\r\n text-decoration: none;\r\n\r\n &:focus,\r\n &:hover {\r\n color: ${brand.blue.base};\r\n text-decoration: underline;\r\n text-underline-position: under;\r\n }\r\n`;\r\nconst Text = styled.span ``;\r\nconst Arrow = styled.span `\r\n margin-left: auto;\r\n`;\r\nconst Header = styled.header `\r\n padding: 24px 0;\r\n border-bottom: 1px solid ${brand.grey.grey3};\r\n`;\r\nconst Back = styled.button `\r\n display: flex;\r\n align-items: center;\r\n background: none;\r\n border: 0;\r\n ${fonts.helvetica.regular};\r\n font-size: 14px;\r\n line-height: 1em;\r\n margin: 0 0 16px;\r\n padding: 0;\r\n\r\n > svg {\r\n margin-right: 12px;\r\n }\r\n`;\r\nconst Current = styled(Link) `\r\n color: ${brand.blue.base};\r\n text-decoration: underline;\r\n text-underline-position: under;\r\n`;\r\nconst SmallList = styled(List) `\r\n padding: 32px 0;\r\n`;\r\nconst SmallItem = styled(Item) ``;\r\nconst SmallLink = styled(Link) `\r\n color: ${brand.grey.grey3};\r\n ${fonts.helvetica.bold};\r\n font-size: 16px;\r\n`;\r\nconst Divider = styled.hr `\r\n display: block;\r\n border: 0;\r\n border-bottom: 1px solid ${brand.grey.grey3};\r\n width: 100%;\r\n`;\r\nconst MobileNavigationStyles = {\r\n Arrow,\r\n Back,\r\n Container,\r\n Current,\r\n Divider,\r\n Header,\r\n Item,\r\n Link,\r\n List,\r\n SmallItem,\r\n SmallLink,\r\n SmallList,\r\n Text,\r\n};\r\nexport default MobileNavigationStyles;\r\n","import SvgBack from '@img/icons/nav-back.svg';\r\nimport SvgChevron from '@img/icons/nav-chevron.svg';\r\nimport * as React from 'react';\r\nimport S from './MobileNavigation.styles';\r\nconst MobileNavigation = ({ isActive, items, otherItems = [], }) => {\r\n const [stack, setStack] = React.useState([]);\r\n // Reset state if navigation is toggled.\r\n React.useEffect(() => {\r\n if (isActive) {\r\n setStack([]);\r\n }\r\n }, [isActive]);\r\n // Render top level navigation...\r\n if (stack.length === 0) {\r\n return renderDefault();\r\n }\r\n // ...or current level.\r\n return renderLevel(stack[stack.length - 1]);\r\n /**\r\n * Render the top-level layout.\r\n * @returns\r\n */\r\n function renderDefault() {\r\n return (React.createElement(S.Container, { \"data-m-active\": isActive, \"aria-hidden\": !isActive, \"aria-label\": \"Main Navigation - Mobile\" },\r\n React.createElement(S.List, null, items.map((item) => (React.createElement(S.Item, { key: item.id },\r\n React.createElement(S.Link, { href: item.url, tabIndex: isActive ? 0 : -1, target: item.target, onClick: (event) => {\r\n if (item.children) {\r\n event.preventDefault();\r\n push(item);\r\n }\r\n } },\r\n React.createElement(S.Text, null, item.text),\r\n !!item.children?.length && React.createElement(S.Arrow, { as: SvgChevron })))))),\r\n React.createElement(S.Divider, null),\r\n React.createElement(S.SmallList, null, otherItems.map((item) => (React.createElement(S.SmallItem, { key: item.id },\r\n React.createElement(S.SmallLink, { href: item.url, tabIndex: isActive ? 0 : -1, target: item.target }, item.text)))))));\r\n }\r\n /**\r\n * Render the layout for the current active item (last in stack).\r\n * @returns\r\n */\r\n function renderLevel(activeItem) {\r\n return (React.createElement(S.Container, { \"data-m-active\": isActive },\r\n React.createElement(S.Header, null,\r\n React.createElement(S.Back, { onClick: (event) => {\r\n event.preventDefault();\r\n pop();\r\n } },\r\n React.createElement(SvgBack, null),\r\n React.createElement(\"span\", null, \"Back\")),\r\n React.createElement(S.Current, { href: activeItem.url, target: activeItem.target }, activeItem.text)),\r\n activeItem.children && (React.createElement(S.List, null, activeItem.children.map((item) => (React.createElement(S.Item, { key: item.id },\r\n React.createElement(S.Link, { href: item.url, target: item.target, onClick: (event) => {\r\n if (item.children) {\r\n event.preventDefault();\r\n push(item);\r\n }\r\n } },\r\n React.createElement(S.Text, null, item.text),\r\n !!item.children?.length && React.createElement(S.Arrow, { as: SvgChevron })))))))));\r\n }\r\n /**\r\n * Push navigation item to stack.\r\n * @param item\r\n */\r\n function push(item) {\r\n const newStack = [...stack, item];\r\n setStack(newStack);\r\n }\r\n /**\r\n * Pop last item from stack.\r\n * @param item\r\n */\r\n function pop() {\r\n const newStack = stack.slice(0, stack.length - 1);\r\n setStack(newStack);\r\n }\r\n};\r\nexport default MobileNavigation;\r\n","var _defs, _g;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nconst SvgSearchSubmit = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 15.689,\n height: 15.689\n}, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"search-submit_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n stroke: \"#707070\",\n d: \"M0 0h15.689v15.689H0z\"\n})))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"#b1b3b5\",\n clipPath: \"url(#search-submit_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n strokeLinecap: \"square\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 67\",\n d: \"M14.175 7.839 7.313.977\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 68\",\n d: \"m14.175 7.839-6.862 6.862\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Line 23\",\n d: \"M1.846 8.02h12.28\"\n}))));\n\nexport default SvgSearchSubmit;","import { cubicEaseOut } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport { Layers } from '@helpers/layers';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --fgColor: ${brand.grey.grey6};\r\n --bgColor: ${brand.white};\r\n\r\n position: fixed;\r\n top: var(--headerHeight);\r\n left: 0;\r\n display: flex;\r\n flex-direction: column;\r\n background: var(--bgColor);\r\n color: var(--fgColor);\r\n height: calc(100% - var(--headerHeight));\r\n opacity: 0;\r\n overflow-y: auto;\r\n padding: 36px 18px;\r\n pointer-events: none;\r\n transition: opacity 0.15s ${cubicEaseOut};\r\n width: 100%;\r\n z-index: ${Layers.Header};\r\n\r\n &[data-s-active='true'] {\r\n opacity: 1;\r\n pointer-events: all;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding: 72px 18px;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n margin: 0 auto;\r\n max-width: 568px;\r\n width: 100%;\r\n`;\r\nconst FieldWrapper = styled.form `\r\n position: relative;\r\n display: block;\r\n border-bottom: 1px solid var(--fgColor);\r\n margin: 0 0 32px;\r\n padding: 0 0 8px;\r\n`;\r\nconst Input = styled.input `\r\n display: block;\r\n appearance: none !important;\r\n background: none;\r\n border: 0;\r\n color: currentColor;\r\n ${fonts.helvetica.bold};\r\n font-size: 20px;\r\n letter-spacing: -0.01em;\r\n line-height: 1em;\r\n margin: 0;\r\n padding: 0;\r\n text-indent: 6px;\r\n width: 95%;\r\n\r\n &::placeholder {\r\n color: currentColor;\r\n opacity: 1;\r\n text-indent: 12px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 32px;\r\n }\r\n`;\r\nconst Submit = styled.button `\r\n position: absolute;\r\n top: 50%;\r\n right: 0;\r\n display: flex;\r\n background: none;\r\n border: 0;\r\n margin: 0;\r\n padding: 0;\r\n place-content: center;\r\n place-items: center;\r\n transform: translateY(-50%) translateY(-4px);\r\n\r\n &:focus {\r\n outline: auto;\r\n outline-offset: 5px;\r\n }\r\n`;\r\nconst SuggestionTitle = styled.span `\r\n display: block;\r\n color: currentColor;\r\n ${fonts.helvetica.bold};\r\n font-size: 16px;\r\n letter-spacing: -0.01em;\r\n line-height: 1em;\r\n margin: 0 0 24px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 18px;\r\n }\r\n`;\r\nconst SuggestionList = styled.ul `\r\n display: block;\r\n margin: 0;\r\n padding: 0;\r\n`;\r\nconst SuggestionItem = styled.li `\r\n display: block;\r\n\r\n &:not(:last-child) {\r\n margin-bottom: 24px;\r\n }\r\n`;\r\nconst SuggestionLink = styled.a `\r\n display: block;\r\n color: ${brand.grey.grey3};\r\n ${fonts.helvetica.regular};\r\n font-size: 16px;\r\n letter-spacing: -0.01em;\r\n line-height: 1em;\r\n text-decoration: none;\r\n\r\n &:focus,\r\n &:hover {\r\n color: ${brand.blue.base};\r\n text-decoration: underline;\r\n text-underline-position: under;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 18px;\r\n }\r\n`;\r\nconst SearchOverlayStyles = {\r\n Container,\r\n FieldWrapper,\r\n Inner,\r\n Input,\r\n Submit,\r\n SuggestionItem,\r\n SuggestionLink,\r\n SuggestionList,\r\n SuggestionTitle,\r\n};\r\nexport default SearchOverlayStyles;\r\n","import { GET_SUGGESTIONS_ENDPOINT } from '@helpers/api';\r\nimport { useApi } from '@hooks/useApi';\r\nimport SvgSubmit from '@img/icons/search-submit.svg';\r\nimport * as React from 'react';\r\nimport { useDebounce } from 'react-use';\r\nimport S from './SearchOverlay.styles';\r\nconst SearchOverlay = ({ initialSearchTerm = '', isActive, placeholder = 'Search James Fisher', searchUrl, suggestions, }) => {\r\n // Store ref to input element.\r\n const refInput = React.useRef(null);\r\n // Auto-focus search input when overlay is opened.\r\n React.useEffect(() => {\r\n if (isActive) {\r\n refInput.current?.focus();\r\n }\r\n }, [isActive]);\r\n // Store raw value for input field.\r\n const [searchTermRaw, setSearchTermRaw] = React.useState(initialSearchTerm);\r\n // Store debounced value for suggestion search.\r\n const [searchTermDebounced, setSearchTermDebounced] = React.useState(initialSearchTerm);\r\n // Fetch suggestions for debounced search term.\r\n const url = `${GET_SUGGESTIONS_ENDPOINT}?searchTerm=${searchTermDebounced}`;\r\n const { clear, data: typeahead } = useApi({\r\n url,\r\n validate: () => !!searchTermDebounced,\r\n });\r\n // Update debounced value when raw value stops changing.\r\n useDebounce(() => {\r\n setSearchTermDebounced(searchTermRaw);\r\n if (!searchTermRaw) {\r\n clear();\r\n }\r\n }, 400, [searchTermRaw]);\r\n // Determine suggestions to be displayed, and whether they're typeahead or not.\r\n const suggestionsToShow = typeahead ?? suggestions ?? [];\r\n const suggestionsAreTypehead = !!typeahead;\r\n return (React.createElement(S.Container, { \"data-s-active\": isActive, \"aria-hidden\": !isActive },\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.FieldWrapper, { action: searchUrl, method: \"GET\" },\r\n React.createElement(S.Input, { ref: refInput, id: \"search-overlay-term\", name: \"searchTerm\", placeholder: placeholder, tabIndex: isActive ? 0 : -1, type: \"search\", value: searchTermRaw, onChange: (event) => setSearchTermRaw(event.target.value) }),\r\n React.createElement(S.Submit, { \"aria-label\": \"Search\", tabIndex: isActive ? 0 : -1, type: \"submit\" },\r\n React.createElement(SvgSubmit, null))),\r\n suggestionsToShow.length > 0 && (React.createElement(React.Fragment, null,\r\n React.createElement(S.SuggestionTitle, null, suggestionsAreTypehead ? 'Suggestions' : 'Popular Items'),\r\n React.createElement(S.SuggestionList, null, suggestionsToShow.map((item) => (React.createElement(S.SuggestionItem, { key: item.id },\r\n React.createElement(S.SuggestionLink, { href: item.url ?? `${searchUrl}?searchTerm=${item.text}`, tabIndex: isActive ? 0 : -1 }, item.text))))))))));\r\n};\r\nexport default SearchOverlay;\r\n","import * as React from 'react';\r\nimport S from './TopLinks.styles';\r\nconst TopLinks = ({ items }) => {\r\n return (React.createElement(S.Container, { \"aria-label\": \"Secondary Links\" },\r\n React.createElement(S.ItemList, null, items.map((item) => (React.createElement(S.Item, { key: item.id },\r\n React.createElement(S.Link, { href: item.url, target: item.target }, item.text)))))));\r\n};\r\nexport default TopLinks;\r\n","import { imageUrl } from '@helpers/image';\r\nimport { useScrollHandler } from '@hooks/useScrollHandler';\r\nimport * as React from 'react';\r\nimport DesktopNavigation from './DesktopNavigation/DesktopNavigation';\r\nimport S from './Header.styles';\r\nimport MobileHeader from './MobileHeader/MobileHeader';\r\nimport MobileNavigation from './MobileNavigation/MobileNavigation';\r\nimport SearchOverlay from './SearchOverlay/SearchOverlay';\r\nimport TopLinks from './TopLinks/TopLinks';\r\nconst SCROLL_THRESHOLD = 50;\r\nconst Header = ({ alwaysActive, logoAltText, logoColor, logoGreyscale, navigation, reduced = false, scrollThreshold = SCROLL_THRESHOLD, search, topLinks, }) => {\r\n const [isScrolled, setIsScrolled] = React.useState(false);\r\n const [isNavigationActive, setIsNavigationActive] = React.useState(false);\r\n const [isSearchActive, setIsSearchActive] = React.useState(false);\r\n useScrollHandler(() => setIsScrolled(window.scrollY > scrollThreshold), true);\r\n React.useEffect(() => {\r\n if (isNavigationActive) {\r\n setIsSearchActive(false);\r\n }\r\n }, [isNavigationActive]);\r\n React.useEffect(() => {\r\n if (isSearchActive) {\r\n setIsNavigationActive(false);\r\n }\r\n }, [isSearchActive]);\r\n return (React.createElement(S.Root, { \"data-active\": alwaysActive || isScrolled || isNavigationActive || isSearchActive, \"data-reduced\": reduced },\r\n React.createElement(S.GlobalStyles, { reduced: reduced }),\r\n React.createElement(S.Container, null,\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.LogoWrapper, { href: \"/\" },\r\n React.createElement(S.LogoGreyscale, { alt: logoAltText, loading: \"eager\", src: imageUrl({ src: logoGreyscale }, { width: 286, height: 78 }), width: \"286\", height: \"78\" }),\r\n React.createElement(S.LogoColor, { alt: logoAltText, role: \"presentation\", loading: \"eager\", src: imageUrl({ src: logoColor }, { width: 286, height: 78 }), width: \"286\", height: \"78\", \"aria-hidden\": true })),\r\n topLinks && React.createElement(TopLinks, { items: topLinks }),\r\n React.createElement(DesktopNavigation, { items: navigation, reduced: reduced, onSearchToggle: () => {\r\n setIsSearchActive(!isSearchActive);\r\n } }),\r\n React.createElement(MobileHeader, { isActive: isNavigationActive, isSearchActive: isSearchActive, reduced: reduced, onNavigationToggle: () => {\r\n setIsNavigationActive(!isNavigationActive);\r\n }, onSearchToggle: () => {\r\n setIsSearchActive(!isSearchActive);\r\n } }))),\r\n !reduced && (React.createElement(MobileNavigation, { isActive: isNavigationActive, items: navigation, otherItems: topLinks })),\r\n React.createElement(SearchOverlay, { ...search, isActive: isSearchActive })));\r\n};\r\nexport default Header;\r\n","import throttle from 'lodash/throttle';\r\nimport { useEffect } from 'react';\r\n/**\r\n * Call the specified scroll handler using the supplied throttle timing.\r\n * @param handler\r\n */\r\nexport function useScrollHandler(handler, passive = false, wait = 100) {\r\n useEffect(() => {\r\n handler();\r\n window.addEventListener('scroll', throttle(handler, wait), { passive });\r\n }, []);\r\n}\r\n"],"names":["Layers","Overlays","Header","Modal","_path","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","xmlns","viewBox","d","fill","fillRule","_defs","_g","width","height","id","transform","stroke","clipPath","strokeLinecap","Container","styled","brand","from","Device","Link","ImageWrapper","imageWrapperPreserveRatio","Image","SimpleImage","imageCoverContainer","ContentWrapper","Tag","tag","Title","fonts","image","tabIndex","title","url","React","S","href","alt","loading","role","src","imageUrl","replaceAll","toLowerCase","cubicEaseOut","Inner","siteWide","baseGrid","Current","Column","Column1","Column2","Column3","ArticleColumn","List","Item","Text","articles","isActive","items","activeLevel1","setActiveLevel1","activeLevel2","setActiveLevel2","undefined","articlesToShow","map","item","onMouseEnter","children","onKeyDown","event","text","SvgChevron","as","ArticleSummary","ItemList","fluid","onClick","active","setActive","hovered","anchorRef","useHoverIntent","interval","sensitivity","timeout","ref","DesktopDropdown","reduced","onSearchToggle","DesktopNavigationLink","preventDefault","SvgSearch","GlobalStyles","createGlobalStyle","Root","rgba","TopLinksStyles","until","DesktopNavigationStyles","LogoWrapper","LogoGreyscale","LogoColor","Button","isSearchActive","onNavigationToggle","SvgSearchClose","Hamburger","color","size","toggled","label","Arrow","Back","SmallList","SmallItem","SmallLink","Divider","otherItems","stack","setStack","push","activeItem","newStack","slice","pop","SvgBack","FieldWrapper","Input","Submit","SuggestionTitle","SuggestionList","SuggestionItem","SuggestionLink","initialSearchTerm","placeholder","searchUrl","suggestions","refInput","current","focus","searchTermRaw","setSearchTermRaw","searchTermDebounced","setSearchTermDebounced","GET_SUGGESTIONS_ENDPOINT","clear","data","typeahead","useApi","validate","useDebounce","suggestionsToShow","suggestionsAreTypehead","action","method","name","type","value","onChange","SvgSubmit","SCROLL_THRESHOLD","alwaysActive","logoAltText","logoColor","logoGreyscale","navigation","scrollThreshold","search","topLinks","isScrolled","setIsScrolled","isNavigationActive","setIsNavigationActive","setIsSearchActive","handler","passive","wait","useEffect","window","addEventListener","throttle","useScrollHandler","scrollY","TopLinks","DesktopNavigation","MobileHeader","MobileNavigation","SearchOverlay"],"sourceRoot":""}