{"version":3,"file":"3074-65028c6df934148950bc.js","mappings":"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","sources":["webpack://royal-college-radiologists/./src/img/branding-graphics/curves-wheel.svg","webpack://royal-college-radiologists/./src/helpers/aspectRatio.ts","webpack://royal-college-radiologists/./src/helpers/date.ts","webpack://royal-college-radiologists/./src/helpers/global.ts","webpack://royal-college-radiologists/./src/helpers/image.ts","webpack://royal-college-radiologists/./src/helpers/utils.ts","webpack://royal-college-radiologists/./src/hooks/useIntersectionObserver.ts","webpack://royal-college-radiologists/./src/hooks/useInView.ts","webpack://royal-college-radiologists/./src/stories/Components/Buttons/GeneralButton/Button.styles.tsx","webpack://royal-college-radiologists/./src/stories/Components/Buttons/GeneralButton/Button.tsx","webpack://royal-college-radiologists/./src/stories/Components/General/CategoryPills/CategoryPills.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/General/CategoryPills/CategoryPills.tsx","webpack://royal-college-radiologists/./src/stories/Components/General/SkipLink/SkipLink.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/General/SkipLink/SkipLink.tsx","webpack://royal-college-radiologists/./src/stories/Components/General/TitleIntroBlock/TitleIntroBlock.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/General/TitleIntroBlock/TitleIntroBlock.tsx","webpack://royal-college-radiologists/./src/stories/Components/Global/SectionWrapper/SectionWrapper.styles.ts","webpack://royal-college-radiologists/./src/hoc/withBaseProps.tsx","webpack://royal-college-radiologists/./src/stories/Components/Global/SectionWrapper/SectionWrapper.tsx","webpack://royal-college-radiologists/./src/stories/Components/Cards/FeaturedArticleCard/FeaturedArticleCard.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/Cards/FeaturedArticleCard/FeaturedArticleCard.tsx","webpack://royal-college-radiologists/./src/stories/Widgets/LatestNewsAndBlogs/LatestNewsAndBlogs.styles.ts","webpack://royal-college-radiologists/./src/stories/Widgets/LatestNewsAndBlogs/LatestNewsAndBlogs.tsx","webpack://royal-college-radiologists/./node_modules/decode-uri-component/index.js","webpack://royal-college-radiologists/./node_modules/filter-obj/index.js","webpack://royal-college-radiologists/./node_modules/query-string/index.js","webpack://royal-college-radiologists/./node_modules/split-on-first/index.js","webpack://royal-college-radiologists/./node_modules/strict-uri-encode/index.js"],"sourcesContent":["var _path, _path2;\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); }\nimport * as React from \"react\";\nfunction SvgCurvesWheel(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 136.3 136.3\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"curves-wheel_svg__st3\",\n d: \"M115.2 115.2c6.3-6.3 7.2-16 2.7-23.3l-8.6-13.8c-1.8-2.9-2.8-6.3-2.8-9.9s1-7 2.8-9.9l8.6-13.8c4.5-7.3 3.6-17-2.7-23.3-6.3-6.3-16-7.2-23.3-2.7L78.1 27c-2.9 1.8-6.3 2.8-9.9 2.8-3.6 0-7-1-9.9-2.8l-13.8-8.6c-7.3-4.5-17-3.6-23.3 2.7-6.3 6.3-7.2 16-2.7 23.3L27 58.2c1.8 2.9 2.8 6.3 2.8 9.9s-1 7-2.8 9.9l-8.6 13.8c-4.5 7.3-3.6 17 2.7 23.3 6.3 6.3 16 7.2 23.3 2.7l13.8-8.6c2.9-1.8 6.3-2.8 9.9-2.8s7 1 9.9 2.8l13.8 8.6c7.4 4.6 17.1 3.7 23.4-2.6z\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 0.25,\n strokeMiterlimit: 10,\n strokeDasharray: \"0.9992,0.9992\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"curves-wheel_svg__st0\",\n d: \"M68.2 134.6c8.9 0 16.4-6.2 18.4-14.5l3.7-15.8c.8-3.3 2.5-6.4 5-9 2.6-2.6 5.7-4.2 9-5l15.8-3.7c8.3-2 14.5-9.4 14.5-18.4s-6.2-16.4-14.5-18.4l-15.8-3.7c-3.3-.8-6.4-2.5-9-5-2.6-2.6-4.2-5.7-5-9l-3.7-15.8C84.6 8 77.2 1.8 68.2 1.8c-8.9 0-16.4 6.2-18.4 14.5L46.1 32c-.8 3.3-2.5 6.4-5 9-2.6 2.6-5.7 4.2-9 5l-15.8 3.7C8 51.7 1.8 59.1 1.8 68.1 1.8 77 8 84.5 16.3 86.5L32 90.3c3.3.8 6.4 2.5 9 5 2.6 2.6 4.2 5.7 5 9l3.7 15.8c2 8.3 9.5 14.5 18.5 14.5z\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 0.25,\n strokeMiterlimit: 10\n })));\n}\nexport default SvgCurvesWheel;","import { css } from 'styled-components';\r\nimport { fluidUnit } from './fluid';\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/**\r\n * Additonal values to use if the ratio increases over time\r\n */\r\nmaxWidth, maxHeight) {\r\n if (!width && !height) {\r\n return null;\r\n }\r\n let padding;\r\n if (maxWidth && maxHeight) {\r\n padding = `${fluidUnit(aspectRatio(width, height), aspectRatio(maxWidth, maxHeight), '%')}`;\r\n }\r\n else {\r\n padding = `${aspectRatio(width, height)}%`;\r\n }\r\n return css `\r\n position: relative;\r\n height: 0;\r\n width: 100%;\r\n overflow: hidden;\r\n overflow: clip;\r\n padding-bottom: ${padding};\r\n `;\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 format from 'date-fns/format';\r\nexport function formatDateISO(value) {\r\n const date = ensureDate(value);\r\n return date.toISOString();\r\n}\r\nexport function formatDate(value, formatString = 'MMMM do yyyy', removeTimeZone = false) {\r\n const date = ensureDate(value, removeTimeZone);\r\n return format(date, formatString);\r\n}\r\nexport function ensureDate(value, removeTimeZone = false) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n if (removeTimeZone && date.toISOString().includes(\"T\")) {\r\n date = new Date(date.toISOString().slice(0, -5));\r\n }\r\n }\r\n return date;\r\n}\r\nexport function equalDates(startDate, endDate) {\r\n const sd = ensureDate(startDate);\r\n const ed = ensureDate(endDate);\r\n return sd.toDateString() === ed.toDateString();\r\n}\r\n","import { css } from 'styled-components';\r\nexport default {\r\n navHeight: 107,\r\n navHeightTablet: 80,\r\n navHeightMobile: 59,\r\n};\r\nexport const ButtonReset = css `\r\n border: none;\r\n outline: none;\r\n padding: 0px;\r\n background: none;\r\n border-radius: 0px;\r\n`;\r\n","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 center: image.focalPoint ? `${image.focalPoint.top},${image.focalPoint.left}` : undefined,\r\n ...imageParams,\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, params) {\r\n const sizes = getRange(upper, lower, steps);\r\n return sizes.map((size) => `${imageUrl(image, {\r\n width: size,\r\n height: ratio ? size * ratio : undefined,\r\n ...params,\r\n })} ${size}w`);\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\nexport function getRetinaSrcs(image, width, height) {\r\n const dprs = [1, 1.5, 2, 2.5, 3];\r\n return dprs.map((dpr) => `${imageUrl(image, {\r\n width: width * dpr,\r\n height: height ? height * dpr : undefined,\r\n })} ${dpr}x`);\r\n}\r\n","export function sleep(ms) {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\nexport function formatNumberValue(value, maximumDecimals, minimumDigits) {\r\n const formatter = new Intl.NumberFormat(undefined, {\r\n maximumFractionDigits: maximumDecimals ?? 0,\r\n minimumIntegerDigits: minimumDigits ?? 1,\r\n });\r\n return formatter.format(value);\r\n}\r\n/**\r\n * Rule structure for react-hook-form\r\n */\r\nexport const EMAIL_RULE = {\r\n message: `Please enter a valid email address`,\r\n value: /^[\\w\\-.\\d*]+@[\\w\\-\\d.]+(\\.\\w*)$/,\r\n};\r\nexport function generateAuthorsString(names) {\r\n const string = names.length > 1\r\n ? `${names.slice(0, -1).join(', ')} and ${names.slice(-1)}`\r\n : { 0: '', 1: names[0] }[names.length];\r\n return `Article by: ${string}`;\r\n}\r\nexport const highlightTitleWords = (title) => title.replaceAll(/\\*([\\w\\W]+)\\*/g, '$1');\r\n","import { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, until } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Text = styled.div ``;\r\nconst PrimaryStyles = css `\r\n border: 0;\r\n background-color: ${brand.secondary.red};\r\n color: ${brand.primary.purple};\r\n border-radius: 1000000px;\r\n overflow: hidden;\r\n\r\n &:before {\r\n ${transition('transform')};\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${brand.primary.offWhite};\r\n border-radius: 1000000px;\r\n transform: translateX(calc(-100% - 2px));\r\n }\r\n\r\n [data-variant='light'] & {\r\n span& {\r\n button.focus-ring &,\r\n button:hover &,\r\n a.focus-ring & {\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover & { \r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:hover,\r\n &:active {\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.purple};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.purple};\r\n }\r\n }\r\n\r\n [data-variant='dark'] & {\r\n span& {\r\n button.focus-ring &,\r\n button:hover &,\r\n a.focus-ring & {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover & { \r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.offWhite};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.offWhite};\r\n\r\n &:before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n background-color: ${brand.primary.offWhite};\r\n\r\n &:before {\r\n transform: translateX(0);\r\n }\r\n }\r\n`;\r\nconst OutlineStyles = css `\r\n background-color: transparent;\r\n border-radius: 1000000px;\r\n overflow: hidden;\r\n\r\n &:before {\r\n ${transition('transform')};\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${brand.primary.offWhite};\r\n border-radius: 1000000px;\r\n transform: translateX(calc(-100% - 2px));\r\n }\r\n\r\n [data-variant='light'] & {\r\n color: ${brand.primary.purple};\r\n border: 1px solid ${brand.primary.purple};\r\n\r\n span& {\r\n button.focus-ring &,\r\n button:hover &,\r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover & { \r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.purple};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.purple};\r\n }\r\n }\r\n\r\n [data-variant='dark'] & {\r\n color: ${brand.primary.offWhite};\r\n border: 1px solid ${brand.primary.offWhite};\r\n\r\n span& {\r\n button.focus-ring &,\r\n \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:hover,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.offWhite};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n span& {\r\n button.focus-ring &, \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst OutlineAltStyles = css `\r\n background-color: transparent;\r\n border-radius: 1000000px;\r\n overflow: hidden;\r\n\r\n &:before {\r\n ${transition('transform')};\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${brand.secondary.red};\r\n border-radius: 1000000px;\r\n transform: translateX(calc(-100% - 2px));\r\n }\r\n\r\n [data-variant='light'] & {\r\n color: ${brand.primary.purple};\r\n border: 1px solid ${brand.primary.purple};\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.purple};\r\n }\r\n }\r\n\r\n [data-variant='dark'] & {\r\n color: ${brand.primary.offWhite};\r\n border: 1px solid ${brand.primary.offWhite};\r\n\r\n span& {\r\n button.focus-ring &, \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.offWhite};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.secondary.red};\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n span& {\r\n button.focus-ring &, \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst Wave = styled.div `\r\n ${transition('max-width')};\r\n\r\n overflow: hidden;\r\n max-width: 0;\r\n color: ${brand.secondary.red};\r\n\r\n svg {\r\n display: block;\r\n margin-right: 5px;\r\n height: 30px;\r\n }\r\n`;\r\nconst Arrow = styled.div `\r\n ${transition('transform')};\r\n\r\n margin: 0 0 0 5px;\r\n\r\n svg {\r\n display: block;\r\n height: 12px;\r\n }\r\n`;\r\nconst TextOnlyStyles = css `\r\n display: inline-flex;\r\n align-items: center;\r\n border: 1px solid transparent;\r\n background: none;\r\n color: ${brand.primary.purple};\r\n padding: 0;\r\n\r\n [data-variant='dark'] & {\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n ${Text} {\r\n margin-bottom: 2px;\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n span& {\r\n button.focus-ring &,\r\n a.focus-ring & {\r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &:hover,\r\n &:active,\r\n &.focus-ring {\r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst Icon = styled.div `\r\n display: inline-flex;\r\n align-items: center;\r\n margin: 0 0 0 8px;\r\n\r\n svg {\r\n max-height: 24px;\r\n width: 20px;\r\n }\r\n\r\n &[data-position='left'] {\r\n order: -1;\r\n margin: 0 8px 0 0;\r\n }\r\n`;\r\nconst Button = styled.button `\r\n ${transition('color, background-color, border-color')};\r\n\r\n display: inline-flex;\r\n padding: 10px ${fluid(20, 25)} 12px;\r\n height: ${fluid(46, 48)};\r\n user-select: none;\r\n text-decoration: none;\r\n position: relative;\r\n align-items: center;\r\n\r\n ${Text} {\r\n ${fonts.graphikCompact.medium};\r\n\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(24, 26)};\r\n display: inline-block;\r\n vertical-align: middle;\r\n position: relative;\r\n z-index: 2;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.66;\r\n pointer-events: none;\r\n\r\n &:hover {\r\n opacity: 0.66;\r\n }\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('color, background-color, border-color, transform')};\r\n\r\n span& {\r\n button:active &,\r\n a:active & {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n }\r\n\r\n ${({ branding }) => {\r\n switch (branding) {\r\n case 'textOnly':\r\n return TextOnlyStyles;\r\n case 'solid':\r\n return PrimaryStyles;\r\n case 'outline':\r\n return OutlineStyles;\r\n case 'outline-alt':\r\n return OutlineAltStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n`;\r\nconst ArrowButton = styled.button `\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n background: transparent;\r\n border: none;\r\n width: ${fluid(58, 60)};\r\n height: ${fluid(48, 50)};\r\n padding: 0;\r\n color: var(--fgColour, ${brand.primary.purple});\r\n\r\n &:first-child {\r\n justify-content: flex-end;\r\n\r\n svg {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.66;\r\n pointer-events: none;\r\n\r\n &:hover {\r\n opacity: 0.66;\r\n }\r\n }\r\n\r\n svg {\r\n display: block;\r\n height: ${fluid(12, 15)};\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('transform', 0.15)};\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n`;\r\nconst ButtonInner = styled.div `\r\n ${transition('max-width')};\r\n\r\n border: 2px solid var(--fgColour, ${brand.primary.purple});\r\n border-radius: 5000000px;\r\n max-width: ${fluid(46, 48)};\r\n width: ${fluid(56, 58)};\r\n height: ${fluid(46, 48)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n ${ArrowButton}.focus-ring & {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n ${ArrowButton}.focus-ring & {\r\n max-width: ${fluid(56, 58)};\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:hover & {\r\n max-width: ${fluid(56, 58)};\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n max-width: ${fluid(56, 58)};\r\n }\r\n`;\r\nconst ButtonIcon = styled.div `\r\n ${transition('transform')};\r\n position: relative;\r\n line-height: 0;\r\n transform: translateX(0);\r\n\r\n ${ArrowButton}:last-child.focus-ring &{\r\n transform: translateX(7px);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:last-child:hover & {\r\n transform: translateX(7px);\r\n }\r\n }\r\n\r\n ${ArrowButton}.focus-ring & {\r\n transform: translateX(-7px);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:hover & {\r\n transform: translateX(-7px);\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n transform: translateX(-7px);\r\n\r\n ${ArrowButton}:last-child & {\r\n transform: translateX(7px);\r\n }\r\n }\r\n`;\r\nconst HoverLine = styled.div `\r\n ${transition('transform')};\r\n\r\n position: absolute;\r\n left: 0;\r\n top: 50%;\r\n width: 22px;\r\n height: 3px;\r\n transform-origin: 0;\r\n transform: translate(2px, -50%) scaleX(0);\r\n background-color: var(--fgColour, ${brand.primary.purple});\r\n\r\n ${ArrowButton}:last-child & {\r\n transform-origin: 100%;\r\n left: auto;\r\n right: 0;\r\n transform: translate(-2px, -50%) scaleX(0);\r\n }\r\n\r\n ${ArrowButton}.focus-ring & {\r\n transform: translate(2px, -50%) scaleX(1);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:hover & {\r\n transform: translate(2px, -50%) scaleX(1);\r\n }\r\n }\r\n\r\n ${ArrowButton}:last-child.focus-ring & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:last-child:hover & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n transform: translate(2px, -50%) scaleX(1);\r\n\r\n ${ArrowButton}:last-child & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n }\r\n`;\r\nexport const ButtonStyles = {\r\n Arrow,\r\n ArrowButton,\r\n Button,\r\n ButtonIcon,\r\n ButtonInner,\r\n HoverLine,\r\n Icon,\r\n Text,\r\n Wave,\r\n};\r\n","import { getSvgFromSystem, SystemIcon } from '@helpers/systemIcons';\r\nimport React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport { ButtonStyles } from './Button.styles';\r\nconst Button = ({ branding, className, disabled, title, toggleOn = false, type = 'button', onClick, icon, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(ButtonStyles.Button, { className: className, branding: branding, disabled: disabled, type: type, onClick: onClick, \"data-toggle-on\": toggleOn, \"data-branding\": branding, ...otherProps },\r\n branding === 'textOnly' && (React.createElement(ButtonStyles.Wave, null, getSvgFromSystem(SystemIcon.Wave1))),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n icon ? (React.createElement(ButtonStyles.Icon, { \"data-position\": iconPosition }, icon)) : branding === 'textOnly' ? (React.createElement(ButtonStyles.Arrow, null, getSvgFromSystem(SystemIcon.ArrowRight))) : null)));\r\n};\r\nconst FakeButton = ({ branding, className, title, icon, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(ButtonStyles.Button, { className: className, branding: branding, as: \"span\", ...otherProps },\r\n branding === 'textOnly' && (React.createElement(ButtonStyles.Wave, null, getSvgFromSystem(SystemIcon.Wave1))),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n icon ? (React.createElement(ButtonStyles.Icon, { \"data-position\": iconPosition }, icon)) : branding === 'textOnly' ? (React.createElement(ButtonStyles.Arrow, null, getSvgFromSystem(SystemIcon.ArrowRight))) : null));\r\n};\r\nconst LinkButton = ({ branding, className, href, target = '_self', title, icon, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(ButtonStyles.Button, { className: className, as: \"a\", branding: branding, href: href, target: target, ...otherProps },\r\n branding === 'textOnly' && (React.createElement(ButtonStyles.Wave, null, getSvgFromSystem(SystemIcon.Wave1))),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n icon ? (React.createElement(ButtonStyles.Icon, { \"data-position\": iconPosition }, icon)) : branding === 'textOnly' ? (React.createElement(ButtonStyles.Arrow, null, getSvgFromSystem(SystemIcon.ArrowRight))) : null)));\r\n};\r\nconst ArrowButton = ({ labelText, disabled, onClick, ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(ButtonStyles.ArrowButton, { \"aria-label\": labelText, disabled: disabled, onClick: onClick, ...otherProps },\r\n React.createElement(ButtonStyles.ButtonInner, null,\r\n React.createElement(ButtonStyles.ButtonIcon, null,\r\n getSvgFromSystem(SystemIcon.Chevron),\r\n React.createElement(ButtonStyles.HoverLine, null))))));\r\n};\r\nexport { Button as default, LinkButton, ArrowButton, FakeButton };\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { Device, from } from '@helpers/media';\r\nimport { paragraphSmall } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n gap: 6px;\r\n }\r\n\r\n [data-variant='light'] & {\r\n --pillBgColour: ${brand.white};\r\n --hoverpillBgColour: ${brand.primary.purple};\r\n --pillColour: ${brand.primary.purple};\r\n --pillHoverColour: ${brand.primary.offWhite};\r\n }\r\n\r\n [data-variant='dark'] & {\r\n --pillBgColour: ${brand.primary.offWhite};\r\n --hoverpillBgColour: ${brand.secondary.red};\r\n --pillColour: ${brand.primary.purple};\r\n --pillHoverColour: ${brand.primary.purple};\r\n }\r\n`;\r\nconst Pill = styled.button `\r\n --pillColour: ${(props) => props.pillColour?.fg};\r\n --pillHoverColour: ${(props) => props.pillColour?.fg};\r\n --pillBgColour: ${(props) => props.pillColour?.bg};\r\n --hoverpillBgColour: ${(props) => props.pillColour?.bg};\r\n\r\n ${ButtonReset}\r\n ${transition('background-size, color')};\r\n ${paragraphSmall};\r\n\r\n color: var(--pillColour);\r\n text-decoration: none;\r\n display: block;\r\n margin: 0;\r\n background: var(--pillBgColour);\r\n background-image: linear-gradient(to right, var(--hoverpillBgColour), var(--hoverpillBgColour));\r\n background-repeat: no-repeat;\r\n background-size: 0% 100%;\r\n border-radius: 5000px;\r\n padding: 4px ${fluid(16, 20)} 5px;\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n &.focus-ring,\r\n &[data-active='true'],\r\n &:hover {\r\n color: var(--pillHoverColour);\r\n background-size: 100% 100%;\r\n }\r\n`;\r\nconst CategoryPillsStyles = {\r\n Container,\r\n Pill,\r\n};\r\nexport default CategoryPillsStyles;\r\n","import * as React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport S from './CategoryPills.styles';\r\nconst CategoryPills = (props) => {\r\n if (props.links == null || props.links.length === 0) {\r\n return null;\r\n }\r\n return (React.createElement(S.Container, null, props.links.map((link) => (React.createElement(FocusRing, { key: link.id, focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Pill, { onClick: (e) => followLink(e, link), tabIndex: props.tabIndex, pillColour: link.pillColour || undefined }, link.text))))));\r\n /* Use JS to open link due to pills appearing inside link cards */\r\n function followLink(e, link) {\r\n e.preventDefault();\r\n window.open(link.url, link.target)?.focus();\r\n }\r\n};\r\nexport default CategoryPills;\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { Layers } from '@helpers/layers';\r\nimport { paragraphRegular } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n ${siteWide};\r\n\r\n position: relative;\r\n z-index: ${Layers.NavigationTray + 1};\r\n height: 0;\r\n`;\r\nconst Button = styled.button `\r\n ${ButtonReset};\r\n ${transition('opacity, transform')};\r\n ${paragraphRegular};\r\n\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n margin: 0;\r\n opacity: 0;\r\n transform: translate(3px, -100%);\r\n background-color: var(--fgColour, ${brand.primary.offWhite});\r\n color: var(--bgColour, ${brand.primary.purple});\r\n padding: 8px 12px;\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n outline-color: var(--fgColour, ${brand.primary.offWhite});\r\n opacity: 1;\r\n transform: translate(3px, 3px);\r\n }\r\n`;\r\nconst SkipLinkStyles = {\r\n Container,\r\n Button,\r\n};\r\nexport default SkipLinkStyles;\r\n","import { scrollIntoView } from '@helpers/animate';\r\nimport * as React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport S from './SkipLink.styles';\r\nconst SkipLink = ({ type = 'inline' }) => {\r\n const ref = React.useRef(null);\r\n return (React.createElement(S.Container, null,\r\n React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Button, { ref: ref, onClick: () => {\r\n if (type === 'header') {\r\n skipToMain();\r\n }\r\n else {\r\n skipSection();\r\n }\r\n } }, type === 'header' ? React.createElement(React.Fragment, null, \"Skip to Main Content\") : React.createElement(React.Fragment, null, \"Skip to Next Section\")))));\r\n function skipToMain() {\r\n const targetEl = document.getElementById('main');\r\n if (!targetEl) {\r\n return;\r\n }\r\n scrollIntoView(targetEl);\r\n focusNext(targetEl);\r\n }\r\n function skipSection() {\r\n let wrapperEl = ref.current?.closest('div[class^=react_Components_]');\r\n // Should only ever occur in storybook\r\n if (!wrapperEl) {\r\n wrapperEl = ref.current?.closest('section');\r\n }\r\n let targetEl = wrapperEl?.nextElementSibling;\r\n // Last element in main wrapper, next element is footer\r\n if (!targetEl) {\r\n targetEl = wrapperEl?.parentElement?.nextElementSibling;\r\n }\r\n if (!targetEl) {\r\n return;\r\n }\r\n scrollIntoView(targetEl);\r\n focusNext(targetEl);\r\n }\r\n function focusNext(el) {\r\n const focusable = el.querySelectorAll('button');\r\n focusable[0]?.focus();\r\n }\r\n};\r\nexport default SkipLink;\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { baseGrid } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport { contentStyles, h2 } from '@helpers/typography';\r\nimport { ButtonStyles } from '@stories/Components/Buttons/GeneralButton/Button.styles';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.div `\r\n ${baseGrid};\r\n\r\n row-gap: ${fluid(14, 20)};\r\n grid-template-rows: auto 1fr;\r\n margin: 0 0 ${fluid(32, 48)};\r\n overflow: hidden;\r\n`;\r\nconst Title = styled.h2 `\r\n ${h2};\r\n\r\n grid-column: 1 / span 12;\r\n line-height: 1;\r\n letter-spacing: 0.025em;\r\n margin: 0;\r\n\r\n [data-title-colour='true'] & {\r\n color: ${brand.secondary.red};\r\n }\r\n\r\n span[data-type='word'] {\r\n overflow: hidden;\r\n height: ${fluid(40, 70)};\r\n }\r\n\r\n span[data-type='highlight'] {\r\n color: ${brand.secondary.red};\r\n }\r\n\r\n span[data-type='letter'] {\r\n ${transition('transform, opacity', 0.5, 'cubic-bezier(.02,.11,.3,1.22)')}\r\n\r\n opacity: 0;\r\n transform: translateY(100%);\r\n transition-delay: calc(var(--index, 1) * 45ms);\r\n\r\n ${Container}[data-animate='true'] & {\r\n opacity: 1;\r\n transform: none;\r\n }\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: 1 / span 6;\r\n\r\n ${Container}[data-has-content='false'][data-has-cta='false'] & {\r\n grid-column: 1 / span 12;\r\n }\r\n\r\n ${Container}[data-has-content='true'][data-has-cta='true'] & {\r\n grid-row: 1 / span 2;\r\n }\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 2 / span 5;\r\n\r\n ${Container}[data-has-content='false'][data-has-cta='false'] & {\r\n grid-column: 2 / span 10;\r\n }\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 3 / span 4;\r\n\r\n ${Container}[data-has-content='false'][data-has-cta='false'] & {\r\n grid-column: 3 / span 8;\r\n }\r\n }\r\n`;\r\nconst rightSpans = css `\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: 7 / span 6;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n grid-column: 7 / span 5;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 7 / span 4;\r\n }\r\n`;\r\nconst Content = styled.div `\r\n ${transition('transform, opacity', 1)};\r\n\r\n ${contentStyles};\r\n ${rightSpans};\r\n\r\n opacity: 0;\r\n transform: translateX(66%);\r\n\r\n ${Container}[data-animate='true'] & {\r\n opacity: 1;\r\n transform: none;\r\n }\r\n`;\r\nconst ButtonWrapper = styled.div `\r\n ${transition('transform, opacity', 0.8)};\r\n ${rightSpans};\r\n\r\n margin: -6px 0 0;\r\n opacity: 0;\r\n transform: translatey(100%);\r\n\r\n ${Container}[data-animate='true'] & {\r\n opacity: 1;\r\n transform: none;\r\n }\r\n\r\n ${ButtonStyles.Text} {\r\n font-size: ${fluid(18, 24)};\r\n line-height: ${fluid(24, 32)};\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n display: flex;\r\n\r\n ${Container}[data-has-content='false'] & {\r\n margin: 0;\r\n\r\n ${ButtonStyles.Button} {\r\n ${transition('transform', 0.3)};\r\n\r\n margin-left: auto;\r\n\r\n /* Compensate for wave appearing */\r\n &.focus-ring,\r\n &:hover {\r\n transform: translateX(44px);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst TitleIntroBlockStyles = {\r\n Container,\r\n Title,\r\n Content,\r\n ButtonWrapper,\r\n};\r\nexport default TitleIntroBlockStyles;\r\n","import { rootMargin } from '@helpers/animate';\r\nimport { useInView } from '@hooks/useInView';\r\nimport { LinkButton } from '@stories/Components/Buttons/GeneralButton/Button';\r\nimport * as React from 'react';\r\nimport S from './TitleIntroBlock.styles';\r\nconst TitleIntroBlock = (props) => {\r\n const [elementRef, inView] = useInView({ rootMargin }, false);\r\n let index = 0;\r\n return (React.createElement(S.Container, { ref: elementRef, \"data-animate\": inView, \"data-has-title\": !!props.title, \"data-has-content\": !!props.intro, \"data-has-cta\": !!props.introCta, \"data-title-colour\": props.altTitleColour },\r\n splitTitleIntoWords(props.title),\r\n props.intro && React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: props.intro } }),\r\n props.introCta && (React.createElement(S.ButtonWrapper, null,\r\n React.createElement(LinkButton, { branding: 'textOnly', href: props.introCta.url, target: props.introCta.target, title: props.introCta.text ?? `View ${props.title}` })))));\r\n /**\r\n * Wraps word groups based on position of asterisks for highlighting\r\n */\r\n function splitTitleIntoWords(title) {\r\n if (!title) {\r\n return null;\r\n }\r\n const sections = title.split('*');\r\n return (React.createElement(S.Title, null, sections.map((section, i) => {\r\n if (i % 2 !== 0) {\r\n return (React.createElement(\"span\", { key: `title-word-section-${section}-${i}`, \"data-type\": \"highlight\" }, wrapTitleWords(section)));\r\n }\r\n else {\r\n return wrapTitleWords(section);\r\n }\r\n })));\r\n }\r\n /**\r\n * Wraps each letter in a span, with a span around each word\r\n */\r\n function wrapTitleWords(title) {\r\n if (!title || title === '') {\r\n return null;\r\n }\r\n const words = title.split(' ');\r\n return (React.createElement(React.Fragment, null, words.map((word, i) => {\r\n const letters = word.split('');\r\n return (React.createElement(React.Fragment, { key: `title-word-${word}-${i}` },\r\n React.createElement(\"span\", { \"data-type\": \"word\" }, letters.map((letter) => {\r\n index = index + 1;\r\n return (React.createElement(\"span\", { key: `title-word-${word}-${i}-${index}`, \"data-type\": \"letter\", style: { '--index': index } }, letter));\r\n })),\r\n i === words.length - 1 ? '' : ' '));\r\n })));\r\n }\r\n};\r\nexport default TitleIntroBlock;\r\n","import brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --sectionSpacingTop: ${fluid(32, 80)};\r\n --sectionSpacingBottom: ${fluid(32, 80)};\r\n --bgColour: transparent;\r\n --bgColourTint: ${brand.tint.offWhite};\r\n --fgColour: ${brand.primary.purple};\r\n --fgColourTint: ${brand.tint.purple};\r\n\r\n position: relative;\r\n scroll-margin: var(--stickyHeaderHeight) 0 0;\r\n background-color: var(--bgColour);\r\n color: var(--fgColour);\r\n\r\n &[data-variant='light'] {\r\n --bgColour: ${brand.primary.offWhite};\r\n --bgColourTint: ${brand.tint.offWhite};\r\n --fgColour: ${brand.primary.purple};\r\n --fgColourTint: ${brand.tint.purple};\r\n }\r\n\r\n &[data-variant='dark'] {\r\n --bgColour: ${brand.primary.purple};\r\n --bgColourTint: ${brand.tint.purple};\r\n --fgColour: ${brand.primary.offWhite};\r\n --fgColourTint: ${brand.tint.offWhite};\r\n }\r\n\r\n &[data-allow-scroll-margin='true'],\r\n &[data-has-skip='true'] {\r\n overflow: clip;\r\n overflow: hidden;\r\n }\r\n\r\n &[data-flush='top'] {\r\n --sectionSpacingTop: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingTop: 0;\r\n }\r\n }\r\n\r\n &[data-flush='bottom'] {\r\n --sectionSpacingBottom: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingBottom: 0;\r\n }\r\n }\r\n\r\n &[data-flush='both'] {\r\n --sectionSpacingTop: 0;\r\n --sectionSpacingBottom: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingTop: 0;\r\n --sectionSpacingBottom: 0;\r\n }\r\n }\r\n\r\n /* Negative margin bottom to force overlap */\r\n &[data-overlap-bottom='true'] {\r\n margin-bottom: calc(var(--sectionSpacingBottom) * -1);\r\n }\r\n\r\n .equally-ai___high-saturation & {\r\n filter: saturate(200%);\r\n }\r\n\r\n .equally-ai___reverse-contrast & {\r\n filter: invert(100%);\r\n }\r\n\r\n .equally-ai___monochrome-contrast & {\r\n filter: grayscale(100%);\r\n }\r\n\r\n .equally-ai___reverse-contrast.equally-ai___monochrome-contrast & {\r\n filter: grayscale(100%) invert(100%);\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n color: var(--fgColor);\r\n padding-top: var(--sectionSpacingTop);\r\n padding-bottom: var(--sectionSpacingBottom);\r\n\r\n /* Don't apply background color for white backgrounds */\r\n ${Container} & {\r\n background: var(--bgColor);\r\n }\r\n`;\r\nconst SiteWide = styled.div `\r\n ${siteWide}\r\n`;\r\nconst FocusAnchor = styled.button `\r\n ${ButtonReset};\r\n\r\n height: 0;\r\n width: 0;\r\n`;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n Inner,\r\n SiteWide,\r\n FocusAnchor,\r\n};\r\nexport default SectionWrapperStyles;\r\n","import * as React from 'react';\r\nconst BasePropsContext = React.createContext({});\r\nexport function withBaseProps(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithBaseProps = (props) => {\r\n return (React.createElement(BasePropsContext.Provider, { value: props },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithBaseProps.displayName = `withBaseProps(${displayName})`;\r\n return ComponentWithBaseProps;\r\n}\r\nexport const useBaseProps = () => React.useContext(BasePropsContext);\r\n","import { useBaseProps } from '@hoc/withBaseProps';\r\nimport SkipLink from '@stories/Components/General/SkipLink/SkipLink';\r\nimport * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nconst SectionWrapper = React.forwardRef((props, ref) => {\r\n const { children, layout = 'default', flush = 'none', variant = 'none', removeSkipLink, ...otherProps } = props;\r\n const baseProps = useBaseProps();\r\n return (React.createElement(S.Container, { ref: ref, id: baseProps.id, \"data-allow-scroll-margin\": !!baseProps.id, \"data-flush\": flush, \"data-variant\": variant, \"data-has-skip\": !removeSkipLink, ...otherProps },\r\n React.createElement(S.Inner, null,\r\n !removeSkipLink ? React.createElement(SkipLink, null) : React.createElement(S.FocusAnchor, { \"aria-label\": \"Skip to content anchor\" }),\r\n renderLayout())));\r\n function renderLayout() {\r\n if (layout === 'fullWidth') {\r\n return children;\r\n }\r\n return React.createElement(S.SiteWide, null, children);\r\n }\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n","import { transition } from '@helpers/animate';\r\nimport { imageCoverContainer, imageWrapperPreserveRatio } from '@helpers/aspectRatio';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { h4, paragraphRegular, paragraphSmall } from '@helpers/typography';\r\nimport CategoryPillsStyles from '@stories/Components/General/CategoryPills/CategoryPills.styles';\r\nimport styled from 'styled-components';\r\nconst Wrapper = styled.article ``;\r\nconst Container = styled.a `\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n text-decoration: none;\r\n color: var(--fgColour);\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('transform', 0.15)};\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n display: grid;\r\n grid-template-columns: repeat(2, 1fr);\r\n place-content: center;\r\n }\r\n`;\r\nconst ImageWrapper = styled.div `\r\n ${imageWrapperPreserveRatio(419, 241)};\r\n\r\n background-color: var(--fgColour);\r\n color: var(--bgColour);\r\n margin: auto 0;\r\n\r\n > svg {\r\n ${transition('transform')};\r\n\r\n position: absolute;\r\n\r\n path {\r\n stroke-width: 0.5;\r\n }\r\n\r\n path:last-of-type {\r\n stroke: var(--lineColour, currentColor);\r\n }\r\n\r\n &:first-of-type {\r\n top: 6px;\r\n left: 6px;\r\n width: 50%;\r\n transform: rotate(7deg);\r\n }\r\n\r\n &:last-of-type {\r\n right: ${fluid(8, 16)};\r\n bottom: 8px;\r\n width: 33%;\r\n transform: rotate(-9deg);\r\n }\r\n }\r\n\r\n ${Container}.focus-ring &,\r\n ${Container}:hover & {\r\n > svg:first-of-type {\r\n transform: rotate(32deg);\r\n }\r\n\r\n > svg:last-of-type {\r\n transform: rotate(-24deg);\r\n }\r\n }\r\n`;\r\nconst Image = styled.img `\r\n ${transition('filter', 0.5)};\r\n ${imageCoverContainer()};\r\n\r\n ${Container}.focus-ring &,\r\n ${Container}:hover & {\r\n filter: saturate(0.25);\r\n }\r\n`;\r\nconst TopWrapper = styled.div `\r\n display: flex;\r\n align-items: flex-start;\r\n width: 100%;\r\n flex-direction: column;\r\n\r\n @media ${from(Device.Tablet)} {\r\n flex-direction: row;\r\n }\r\n`;\r\nconst DateTimeWrapper = styled.span `\r\n ${paragraphSmall};\r\n\r\n margin: calc(${fluid(16, 20)} * -1) 0 ${fluid(8, 12)};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n padding: 6px 10px 7px;\r\n border-radius: 0 0 4px 4px;\r\n flex-shrink: 0;\r\n\r\n @media ${until(Device.Tablet)} {\r\n order: 1;\r\n width: 100%;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-left: auto;\r\n }\r\n`;\r\nconst ContentOuter = styled.div `\r\n @media ${from(Device.Tablet)} {\r\n display: flex;\r\n }\r\n`;\r\nconst ContentWrapper = styled.div `\r\n flex: 1;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: flex-start;\r\n padding: ${fluid(16, 20)} ${fluid(18, 28)};\r\n background-color: var(--bgColourTint);\r\n\r\n ${CategoryPillsStyles.Container} {\r\n margin: 0 0 20px;\r\n\r\n @media ${until(Device.Tablet)} {\r\n order: 2;\r\n }\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin: auto 0;\r\n }\r\n`;\r\nconst ContentInner = styled.div `\r\n > svg {\r\n ${transition('transform')};\r\n\r\n display: block;\r\n width: ${fluid(18, 20)};\r\n margin: auto 0 0 auto;\r\n }\r\n\r\n ${Container}.focus-ring &,\r\n ${Container}:hover & {\r\n > svg {\r\n transform: translateX(15%);\r\n }\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 0 0 0 ${fluid(18, 28)};\r\n border-left: 1px solid var(--fgColour);\r\n }\r\n`;\r\nconst Title = styled.h3 `\r\n ${transition('text-decoration-color')};\r\n\r\n ${h4};\r\n\r\n margin: 0 0 6px;\r\n text-decoration: underline;\r\n text-decoration-color: transparent;\r\n text-underline-offset: 2px;\r\n\r\n ${Container}.focus-ring &,\r\n ${Container}:hover & {\r\n text-decoration-color: currentColor;\r\n }\r\n`;\r\nconst Authors = styled.span `\r\n ${paragraphSmall};\r\n\r\n margin: 0;\r\n`;\r\nconst Summary = styled.p `\r\n ${paragraphRegular};\r\n\r\n margin: ${fluid(16, 24)} 0 ${fluid(6, 16)};\r\n`;\r\nconst FeaturedArticleCardStyles = {\r\n Authors,\r\n Container,\r\n ContentInner,\r\n ContentOuter,\r\n ContentWrapper,\r\n DateTimeWrapper,\r\n Image,\r\n ImageWrapper,\r\n Title,\r\n TopWrapper,\r\n Wrapper,\r\n Summary,\r\n};\r\nexport default FeaturedArticleCardStyles;\r\n","import brand from '@helpers/brand';\r\nimport { formatDate, formatDateISO } from '@helpers/date';\r\nimport { getSrcs } from '@helpers/image';\r\nimport { Device, until } from '@helpers/media';\r\nimport { getSvgFromSystem, SystemIcon } from '@helpers/systemIcons';\r\nimport { generateAuthorsString } from '@helpers/utils';\r\nimport SvgWheel from '@img/branding-graphics/curves-wheel.svg';\r\nimport CategoryPills from '@stories/Components/General/CategoryPills/CategoryPills';\r\nimport * as React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport S from './FeaturedArticleCard.styles';\r\nconst HighlightColours = [brand.tertiary.darkBlue, brand.secondary.red];\r\nconst FeaturedArticleCard = (props) => {\r\n const srcs = props.image ? getSrcs(props.image, 730, 375, 5, 241 / 419) : [];\r\n const sizes = `${until(Device.Tablet)} 100vw, ${until(Device.DesktopSmall)} 50vw, ${until(Device.DesktopLarge)} 40vw, 730px`;\r\n /* randomise which colour is used for each wheel */\r\n const lineColours = HighlightColours.sort(() => Math.random() - 0.5);\r\n return (React.createElement(S.Wrapper, null,\r\n React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Container, { href: props.cta.url, target: props.cta.target },\r\n React.createElement(S.ImageWrapper, null, props.image ? (React.createElement(S.Image, { src: srcs[0].split(' ')[0], srcSet: srcs.join(','), sizes: sizes, alt: props.image.altText ?? props.title, loading: 'lazy' })) : (React.createElement(React.Fragment, null,\r\n React.createElement(SvgWheel, { style: { '--lineColour': lineColours[0] } }),\r\n React.createElement(SvgWheel, { style: { '--lineColour': lineColours[1] } })))),\r\n React.createElement(S.ContentOuter, null,\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(S.ContentInner, null,\r\n React.createElement(S.TopWrapper, null,\r\n React.createElement(CategoryPills, { links: props.categories }),\r\n React.createElement(S.DateTimeWrapper, null,\r\n React.createElement(\"time\", { dateTime: formatDateISO(props.date) }, formatDate(props.date, 'd LLL yyyy')),\r\n ' ',\r\n \"| \",\r\n React.createElement(\"span\", null, props.readTime))),\r\n React.createElement(S.Title, null, props.title),\r\n props.authors.length > 0 && (React.createElement(S.Authors, { dangerouslySetInnerHTML: { __html: generateAuthorsString(props.authors) } })),\r\n React.createElement(S.Summary, null, props.summary),\r\n getSvgFromSystem(SystemIcon.ArrowRight))))))));\r\n};\r\nexport default FeaturedArticleCard;\r\n","import { baseGrid } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport FeaturedArticleCardStyles from '@stories/Components/Cards/FeaturedArticleCard/FeaturedArticleCard.styles';\r\nimport TitleIntroBlockStyles from '@stories/Components/General/TitleIntroBlock/TitleIntroBlock.styles';\r\nimport SectionWrapper from '@stories/Components/Global/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Global/SectionWrapper/SectionWrapper.styles';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n @media ${from(Device.Tablet)} {\r\n ${SectionWrapperStyles.SiteWide} {\r\n ${baseGrid};\r\n }\r\n\r\n ${TitleIntroBlockStyles.Container},\r\n ${FeaturedArticleCardStyles.Wrapper} {\r\n width: auto;\r\n grid-column: 1 / span 12;\r\n }\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n ${FeaturedArticleCardStyles.Wrapper} {\r\n grid-column: 2 / span 10;\r\n }\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n ${FeaturedArticleCardStyles.Wrapper} {\r\n width: calc(100% + (var(--sitePadding) * 2));\r\n margin: 0 calc(var(--sitePadding) * -1);\r\n }\r\n }\r\n`;\r\nconst LatestNewsAndBlogsStyles = {\r\n Container,\r\n};\r\nexport default LatestNewsAndBlogsStyles;\r\n","import FeaturedArticleCard from '@stories/Components/Cards/FeaturedArticleCard/FeaturedArticleCard';\r\nimport TitleIntroBlock from '@stories/Components/General/TitleIntroBlock/TitleIntroBlock';\r\nimport * as React from 'react';\r\nimport S from './LatestNewsAndBlogs.styles';\r\nconst LatestNewsAndBlogs = ({ title, intro, introCta, ...props }) => {\r\n if (!props.item) {\r\n return null;\r\n }\r\n return (React.createElement(S.Container, { variant: props.variant },\r\n React.createElement(TitleIntroBlock, { title: title, intro: intro, introCta: introCta }),\r\n React.createElement(FeaturedArticleCard, { ...props.item })));\r\n};\r\nexport default LatestNewsAndBlogs;\r\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n"],"names":["_path","_path2","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","xmlns","viewBox","className","d","fill","stroke","strokeWidth","strokeMiterlimit","strokeDasharray","aspectRatio","width","height","imageWrapperPreserveRatio","maxWidth","maxHeight","padding","fluidUnit","css","imageCoverContainer","relative","formatDateISO","value","ensureDate","toISOString","formatDate","formatString","undefined","date","format","removeTimeZone","Date","includes","slice","equalDates","startDate","endDate","sd","ed","toDateString","ButtonReset","imageUrl","image","imageParams","params","center","focalPoint","top","left","paramsString","queryString","src","getSrcs","upper","lower","steps","ratio","sizes","increment","Array","map","_","index","Math","ceil","getRange","size","getRetinaSrcs","dpr","sleep","ms","Promise","resolve","setTimeout","formatNumberValue","maximumDecimals","minimumDigits","Intl","NumberFormat","maximumFractionDigits","minimumIntegerDigits","EMAIL_RULE","message","generateAuthorsString","names","join","highlightTitleWords","title","replaceAll","callback","options","observerRef","useRef","rootRef","elementRef","useEffect","current","IntersectionObserver","root","observe","disconnect","useInView","reverse","isEditMode","inView","setInView","useState","useIntersectionObserver","entries","isIntersecting","Text","styled","div","withConfig","displayName","componentId","PrimaryStyles","brand","secondary","red","primary","purple","transition","offWhite","OutlineStyles","OutlineAltStyles","Wave","Arrow","TextOnlyStyles","Icon","Button","button","fluid","fonts","graphikCompact","medium","until","Device","TabletLarge","_ref","branding","ArrowButton","ButtonInner","ButtonStyles","ButtonIcon","HoverLine","disabled","toggleOn","type","onClick","icon","iconPosition","otherProps","React","FocusRing","focusRingClass","getSvgFromSystem","SystemIcon","Wave1","ArrowRight","FakeButton","_ref2","as","LinkButton","_ref3","href","_ref4","labelText","Chevron","Container","section","from","white","Pill","_props$pillColour","pillColour","fg","_props$pillColour2","_props$pillColour3","bg","_props$pillColour4","paragraphSmall","links","S","link","id","e","_window$open","preventDefault","window","open","url","focus","followLink","tabIndex","text","siteWide","Layers","NavigationTray","paragraphRegular","ref","targetEl","document","getElementById","scrollIntoView","focusNext","skipToMain","_ref$current","_wrapperEl","wrapperEl","closest","_ref$current2","nextElementSibling","_wrapperEl2","_wrapperEl2$parentEle","parentElement","skipSection","el","_focusable$","querySelectorAll","baseGrid","Title","h2","Tablet","DesktopSmall","Desktop","rightSpans","Content","contentStyles","ButtonWrapper","_props$introCta$text","rootMargin","intro","introCta","altTitleColour","sections","split","wrapTitleWords","splitTitleIntoWords","dangerouslySetInnerHTML","__html","words","word","letters","letter","style","tint","Inner","SiteWide","FocusAnchor","BasePropsContext","SectionWrapper","children","layout","flush","variant","removeSkipLink","baseProps","SkipLink","Wrapper","article","a","ImageWrapper","Image","img","TopWrapper","DateTimeWrapper","span","ContentOuter","ContentWrapper","CategoryPillsStyles","ContentInner","h3","h4","Authors","Summary","p","HighlightColours","tertiary","darkBlue","_props$image$altText","srcs","DesktopLarge","lineColours","sort","random","cta","srcSet","alt","altText","loading","SvgWheel","CategoryPills","categories","dateTime","readTime","authors","summary","SectionWrapperStyles","TitleIntroBlockStyles","FeaturedArticleCardStyles","item","TitleIntroBlock","FeaturedArticleCard","token","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","right","concat","decode","input","tokens","match","module","exports","encodedURI","TypeError","replace","replaceMap","exec","result","keys","customDecodeURIComponent","obj","predicate","ret","isArr","isArray","val","indexOf","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","encode","strict","encodeURIComponent","keysSorter","b","Number","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","isNaN","trim","parseBooleans","toLowerCase","parse","query","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","newValue","test","arrayValue","parserForArrayFormat","create","param","k","reduce","Boolean","stringify","object","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","filter","x","parseUrl","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","pick","exclude","exclusionFilter","string","separator","separatorIndex","str","charCodeAt","toString","toUpperCase"],"sourceRoot":""}