{"version":3,"file":"1140-377d9cec4d1089ba7656.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/global.ts","webpack://royal-college-radiologists/./src/helpers/image.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/Pagination/Pagination.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/General/Pagination/Pagination.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/PageLinkCard/PageLinkCard.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/Cards/PageLinkCard/PageLinkCard.tsx","webpack://royal-college-radiologists/./src/stories/Widgets/PageLinkListing/PageLinkListing.styles.ts","webpack://royal-college-radiologists/./src/stories/Widgets/PageLinkListing/PageLinkListing.tsx"],"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 { 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","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 fonts from '@helpers/fonts';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { paragraphLarge } from '@helpers/typography';\r\nimport { rgba } from 'polished';\r\nimport styled from 'styled-components';\r\nconst Wrapper = styled.div `\r\n display: block;\r\n user-select: none;\r\n margin-top: 40px;\r\n\r\n ul {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n place-content: center;\r\n place-items: center;\r\n width: 100%;\r\n\r\n li {\r\n ${transition('opacity')};\r\n display: inline-block;\r\n opacity: 1;\r\n padding: 0 3px;\r\n\r\n &:nth-child(2) {\r\n @media ${until(Device.Tablet)} {\r\n flex: 1 1 25%;\r\n display: flex;\r\n justify-content: flex-end;\r\n }\r\n }\r\n\r\n &:nth-last-child(2) {\r\n @media ${until(Device.Tablet)} {\r\n flex: 1 1 25%;\r\n }\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 0 5px;\r\n }\r\n\r\n a,\r\n span {\r\n ${transition('background-color')};\r\n ${paragraphLarge}\r\n ${fonts.graphikCompact.regular};\r\n\r\n font-size: ${fluid(20, 26)};\r\n display: flex;\r\n color: var(--fgColour);\r\n background-color: ${rgba(brand.white, 0)};\r\n font-feature-settings: 'tnum' on;\r\n margin: 0;\r\n place-content: center;\r\n place-items: center;\r\n text-decoration: none;\r\n width: ${fluid(30, 40)};\r\n }\r\n\r\n a {\r\n ${transition('color')};\r\n cursor: pointer;\r\n position: relative;\r\n\r\n &::after {\r\n ${transition('opacity')};\r\n\r\n content: '';\r\n position: absolute;\r\n bottom: -5px;\r\n height: 2px;\r\n width: 8px;\r\n background-color: var(--fgColour);\r\n opacity: 0;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n @supports selector(:focus-visible) {\r\n &:focus-visible,\r\n &:hover {\r\n &::after {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n\r\n @supports not selector(:focus-visible) {\r\n &:focus,\r\n &:hover {\r\n &::after {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &.previous,\r\n &.next {\r\n text-indent: -100vw;\r\n\r\n &:focus {\r\n background-color: ${brand.black};\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n flex: 1 0 50%;\r\n display: flex;\r\n padding: 0;\r\n }\r\n\r\n a {\r\n display: flex;\r\n border: none;\r\n background-color: transparent;\r\n color: var(--fgColour);\r\n border-radius: 5000px;\r\n width: 58px;\r\n height: 48px;\r\n\r\n &::after {\r\n content: none;\r\n }\r\n }\r\n\r\n svg {\r\n display: block;\r\n height: 15px;\r\n }\r\n }\r\n\r\n &.previous {\r\n transform: scaleX(-1);\r\n padding-left: 10px;\r\n\r\n a {\r\n @media ${until(Device.Tablet)} {\r\n margin-top: 10px;\r\n margin-right: 5px;\r\n }\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n order: 1;\r\n margin-top: 10px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding-right: 25px;\r\n }\r\n }\r\n\r\n &.next {\r\n padding-left: 10px;\r\n\r\n a {\r\n justify-content: flex-start;\r\n\r\n @media ${until(Device.Tablet)} {\r\n margin-top: 10px;\r\n margin-left: 5px;\r\n }\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n order: 2;\r\n margin-top: 10px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding-left: 25px;\r\n }\r\n }\r\n\r\n &.break {\r\n a {\r\n border: none;\r\n width: 20px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n width: 30px;\r\n }\r\n }\r\n }\r\n\r\n &.selected {\r\n a {\r\n ${fonts.graphikCompact.medium};\r\n\r\n &::after {\r\n opacity: 1;\r\n }\r\n\r\n @supports selector(:focus-visible) {\r\n &:focus-visible {\r\n background-color: ${brand.grey.grey35};\r\n color: ${brand.white};\r\n }\r\n }\r\n\r\n @supports not selector(:focus-visible) {\r\n &:focus {\r\n background-color: ${brand.grey.grey35};\r\n color: ${brand.white};\r\n }\r\n }\r\n }\r\n }\r\n\r\n &.disabled {\r\n cursor: default;\r\n opacity: 0.5;\r\n pointer-events: none;\r\n }\r\n }\r\n }\r\n\r\n &[data-page-count='2'] {\r\n ul {\r\n li {\r\n @media ${until(Device.Tablet)} {\r\n flex: 1 1 50%;\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst ButtonInner = styled.div `\r\n ${transition('width')};\r\n border: 2px solid var(--fgColour);\r\n border-radius: 5000000px;\r\n width: 48px;\r\n height: 48px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n @media ${until(Device.Tablet)} {\r\n width: 58px;\r\n }\r\n\r\n a:focus-visible & {\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 a:hover & {\r\n width: 58px;\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 @media ${until(Device.Tablet)} {\r\n transform: translateX(-7px);\r\n\r\n a:last-child & {\r\n transform: translateX(7px);\r\n }\r\n }\r\n\r\n a:focus-visible &,\r\n a:last-child:hover & {\r\n transform: translateX(7px);\r\n }\r\n\r\n a:focus-visible &,\r\n a:hover & {\r\n transform: translateX(-7px);\r\n }\r\n`;\r\nconst HoverLine = styled.div `\r\n ${transition('transform')};\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);\r\n\r\n a: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 a:hover & {\r\n transform: translate(2px, -50%) scaleX(1);\r\n }\r\n\r\n a:last-child:hover & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n transform: translate(2px, -50%) scaleX(1);\r\n\r\n a:last-child & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n }\r\n`;\r\nexport default {\r\n ButtonIcon,\r\n ButtonInner,\r\n HoverLine,\r\n Wrapper,\r\n};\r\n","import { Device, until } from '@helpers/media';\r\nimport { getSvgFromSystem, SystemIcon } from '@helpers/systemIcons';\r\nimport React from 'react';\r\nimport ReactPaginate from 'react-paginate';\r\nimport { useMedia } from 'react-use';\r\nimport PaginationStyles from './Pagination.styles';\r\nconst Pagination = ({ pageIndex, pageSize, totalCount, onPageChange, }) => {\r\n const isMobile = useMedia(until(Device.Tablet), false);\r\n const pageRange = isMobile ? 1 : 3;\r\n return (React.createElement(PaginationStyles.Wrapper, { \"data-page-count\": Math.ceil(totalCount / pageSize) },\r\n React.createElement(ReactPaginate, { pageCount: Math.ceil(totalCount / pageSize), pageRangeDisplayed: pageRange, marginPagesDisplayed: 1, previousLabel: React.createElement(PaginationStyles.ButtonInner, null,\r\n React.createElement(PaginationStyles.ButtonIcon, null,\r\n getSvgFromSystem(SystemIcon.Chevron),\r\n React.createElement(PaginationStyles.HoverLine, null))), nextLabel: React.createElement(PaginationStyles.ButtonInner, null,\r\n React.createElement(PaginationStyles.ButtonIcon, null,\r\n getSvgFromSystem(SystemIcon.Chevron),\r\n React.createElement(PaginationStyles.HoverLine, null))), forcePage: pageIndex - 1, hrefBuilder: (page, pageCount) => (page >= 1 && page <= pageCount ? `/page/${page}` : '#'), hrefAllControls: true, onPageChange: ({ selected }) => {\r\n onPageChange(selected + 1);\r\n } })));\r\n};\r\nexport default Pagination;\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 { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { paragraphLarge } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Container = styled.a `\r\n display: flex;\r\n text-decoration: none;\r\n flex-direction: column;\r\n width: 100%;\r\n\r\n &[data-variant='default'] {\r\n --backgroundColour: var(--fgColour);\r\n --backgroundHoverColour: var(--fgColourTint);\r\n\r\n color: var(--bgColour);\r\n }\r\n\r\n &[data-variant='textOnly'] {\r\n --backgroundColour: var(--bgColour);\r\n --backgroundHoverColour: var(--bgColourTint);\r\n\r\n color: var(--fgColour);\r\n border-bottom: 2px solid var(--fgColour);\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 /* 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.MobileLarge)} {\r\n flex-direction: row;\r\n }\r\n`;\r\nconst ImageWrapper = styled.div `\r\n @media ${from(Device.MobileLarge)} {\r\n width: 37%;\r\n }\r\n`;\r\nconst ImageInner = styled.div `\r\n ${imageWrapperPreserveRatio(339, 90)};\r\n\r\n background-color: var(--backgroundColour);\r\n\r\n ${Container}[data-has-image='false'] & {\r\n display: none;\r\n }\r\n\r\n > svg {\r\n ${transition('transform')};\r\n\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 66%;\r\n transform: translate(-50%, -50%) rotate(7deg);\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\r\n ${Container}.focus-ring &,\r\n ${Container}:hover & {\r\n > svg {\r\n transform: translate(-50%, -50%) rotate(32deg);\r\n }\r\n }\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n height: 100%;\r\n padding: 0;\r\n\r\n > svg {\r\n width: 80%;\r\n }\r\n }\r\n`;\r\nconst Image = styled.img `\r\n ${transition('transform')}\r\n ${imageCoverContainer()};\r\n\r\n ${Container}.focus-ring &,\r\n ${Container}:hover & {\r\n transform: scale(1.15);\r\n }\r\n`;\r\nconst ContentWrapper = styled.div `\r\n ${transition('background-color')};\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n background-color: var(--backgroundColour);\r\n padding: ${fluid(12, 16)} ${fluid(18, 20)} ${fluid(28, 28)};\r\n position: relative;\r\n\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 position: absolute;\r\n right: ${fluid(18, 20)};\r\n bottom: ${fluid(12, 32)};;\r\n\r\n }\r\n\r\n ${Container}.focus-ring &,\r\n ${Container}:hover & {\r\n background-color: var(--backgroundHoverColour);\r\n\r\n > svg {\r\n transform: translateX(15%);\r\n }\r\n }\r\n`;\r\nconst Title = styled.h3 `\r\n ${transition('text-decoration-color')};\r\n ${paragraphLarge};\r\n\r\n margin: 0;\r\n text-decoration: underline;\r\n text-decoration-color: transparent;\r\n text-underline-offset: 2px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n ${Container}[data-title-only='true'] & {\r\n margin-right: 36px;\r\n }\r\n }\r\n\r\n ${Container}.focus-ring &,\r\n ${Container}:hover & {\r\n text-decoration-color: currentColor;\r\n }\r\n`;\r\nconst Summary = styled.p `\r\n ${fonts.graphikCompact.regular};\r\n\r\n font-size: ${fluid(16, 20)};\r\n line-height: ${fluid(28, 30)};\r\n margin: ${fluid(6, 12)} 0 10px;\r\n display: -webkit-box;\r\n -webkit-line-clamp: 3;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n\r\n @media ${from(Device.Tablet)} {\r\n -webkit-line-clamp: 4;\r\n margin-right: 36px;\r\n margin-bottom: 0;\r\n }\r\n`;\r\nconst PageLinkCardStyles = {\r\n Container,\r\n Title,\r\n Summary,\r\n ContentWrapper,\r\n ImageWrapper,\r\n Image,\r\n ImageInner,\r\n};\r\nexport default PageLinkCardStyles;\r\n","import brand from '@helpers/brand';\r\nimport { getSrcs } from '@helpers/image';\r\nimport { Device, until } from '@helpers/media';\r\nimport { getSvgFromSystem, SystemIcon } from '@helpers/systemIcons';\r\nimport SvgWheel from '@img/branding-graphics/curves-wheel.svg';\r\nimport * as React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport S from './PageLinkCard.styles';\r\nconst HighlightColours = [brand.tertiary.darkBlue, brand.secondary.red];\r\nconst PageLinkCard = (props) => {\r\n const srcs = props.image ? getSrcs(props.image, 483, 339, 3, 241 / 419) : [];\r\n const sizes = `${until(Device.MobileLarge)} 100vw, ${until(Device.Tablet)} 50vw, ${until(Device.Desktop)} 15vw, 270px`;\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(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Container, { href: props.cta.url, target: props.cta.target, \"data-variant\": props.variant, \"data-title-only\": !props.summary },\r\n props.variant !== 'textOnly' && (React.createElement(S.ImageWrapper, null,\r\n React.createElement(S.ImageInner, 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(SvgWheel, { style: { '--lineColour': lineColours[0] } }))))),\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(S.Title, null, props.title),\r\n props.summary && React.createElement(S.Summary, null, props.summary),\r\n getSvgFromSystem(SystemIcon.ArrowRight)))));\r\n};\r\nexport default PageLinkCard;\r\n","import { fluid } from '@helpers/fluid';\r\nimport { baseGrid } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport PageLinkCardStyles from '@stories/Components/Cards/PageLinkCard/PageLinkCard.styles';\r\nimport SectionWrapper from '@stories/Components/Global/SectionWrapper/SectionWrapper';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) ``;\r\nconst Grid = styled.div `\r\n ${baseGrid};\r\n\r\n row-gap: ${fluid(20, 22)};\r\n scroll-margin: var(--stickyHeaderHeight) 0 0;\r\n\r\n ${PageLinkCardStyles.Container} {\r\n grid-column: span 12;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: span 6;\r\n }\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n ${PageLinkCardStyles.Container}:nth-child(odd) {\r\n grid-column: 2 / span 5;\r\n }\r\n\r\n ${PageLinkCardStyles.Container}:nth-child(even) {\r\n grid-column: 7 / span 5;\r\n }\r\n }\r\n`;\r\nconst PageLinkListingStyles = {\r\n Container,\r\n Grid,\r\n};\r\nexport default PageLinkListingStyles;\r\n","import { scrollIntoView } from '@helpers/animate';\r\nimport PageLinkCard from '@stories/Components/Cards/PageLinkCard/PageLinkCard';\r\nimport Pagination from '@stories/Components/General/Pagination/Pagination';\r\nimport TitleIntroBlock from '@stories/Components/General/TitleIntroBlock/TitleIntroBlock';\r\nimport * as React from 'react';\r\nimport S from './PageLinkListing.styles';\r\nconst PageLinkListing = ({ title, intro, introCta, ...props }) => {\r\n const resultsRef = React.useRef(null);\r\n const [pageIndex, setPageIndex] = React.useState(1);\r\n if (props.items.length === 0) {\r\n return null;\r\n }\r\n const items = props.items.slice(pageIndex * 8 - 8, pageIndex * 8);\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(S.Grid, { ref: resultsRef }, items.map((item) => (React.createElement(PageLinkCard, { key: item.id, ...item, variant: props.cardVariant })))),\r\n props.items.length > 8 ? (React.createElement(Pagination, { pageIndex: pageIndex, pageSize: 8, totalCount: props.items.length, onPageChange: (value) => {\r\n setPageIndex(value);\r\n scrollToTop();\r\n } })) : null));\r\n function scrollToTop() {\r\n /** timeout required to ensure scrolling occurs on prev/next buttons */\r\n setTimeout(() => scrollIntoView(resultsRef.current), 50);\r\n }\r\n};\r\nexport default PageLinkListing;\r\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","ButtonReset","imageUrl","image","imageParams","params","center","focalPoint","top","left","undefined","paramsString","queryString","src","getSrcs","upper","lower","steps","ratio","sizes","increment","Array","map","_","index","Math","ceil","getRange","size","getRetinaSrcs","dpr","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","title","toggleOn","type","onClick","icon","iconPosition","otherProps","React","FocusRing","focusRingClass","getSvgFromSystem","SystemIcon","Wave1","ArrowRight","FakeButton","_ref2","as","LinkButton","_ref3","href","_ref4","labelText","Chevron","Wrapper","Tablet","from","paragraphLarge","regular","rgba","white","black","grey","grey35","pageIndex","pageSize","totalCount","onPageChange","pageRange","useMedia","PaginationStyles","ReactPaginate","pageCount","pageRangeDisplayed","marginPagesDisplayed","previousLabel","nextLabel","forcePage","hrefBuilder","page","hrefAllControls","selected","Container","siteWide","Layers","NavigationTray","paragraphRegular","ref","S","targetEl","document","getElementById","scrollIntoView","focusNext","skipToMain","_ref$current","_wrapperEl","wrapperEl","closest","_ref$current2","nextElementSibling","_wrapperEl2","_wrapperEl2$parentEle","parentElement","skipSection","el","_focusable$","querySelectorAll","focus","baseGrid","Title","h2","DesktopSmall","Desktop","rightSpans","Content","contentStyles","ButtonWrapper","_props$introCta$text","rootMargin","intro","introCta","altTitleColour","sections","split","section","wrapTitleWords","splitTitleIntoWords","dangerouslySetInnerHTML","__html","url","text","words","word","letters","letter","style","tint","Inner","SiteWide","FocusAnchor","BasePropsContext","SectionWrapper","children","layout","flush","variant","removeSkipLink","baseProps","id","SkipLink","a","MobileLarge","ImageWrapper","ImageInner","Image","img","ContentWrapper","h3","Summary","p","HighlightColours","tertiary","darkBlue","_props$image$altText","srcs","lineColours","sort","random","cta","summary","srcSet","join","alt","altText","loading","SvgWheel","Grid","PageLinkCardStyles","resultsRef","setPageIndex","items","slice","TitleIntroBlock","item","PageLinkCard","cardVariant","Pagination","value","setTimeout"],"sourceRoot":""}