{"version":3,"file":"9708-cbe5c5dad0beed189321.js","mappings":"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","sources":["webpack://royal-college-radiologists/./src/img/branding-graphics/wave-generic.svg","webpack://royal-college-radiologists/./src/img/branding-graphics/wave-oncology.svg","webpack://royal-college-radiologists/./src/helpers/animate.ts","webpack://royal-college-radiologists/./src/helpers/brand.ts","webpack://royal-college-radiologists/./src/helpers/date.ts","webpack://royal-college-radiologists/./src/helpers/fluid.ts","webpack://royal-college-radiologists/./src/helpers/fonts.ts","webpack://royal-college-radiologists/./src/helpers/global.ts","webpack://royal-college-radiologists/./src/helpers/grid.ts","webpack://royal-college-radiologists/./src/helpers/layers.ts","webpack://royal-college-radiologists/./src/helpers/media.ts","webpack://royal-college-radiologists/./src/helpers/typography.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/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/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/img/branding-graphics/wave-radiology-lg.svg","webpack://royal-college-radiologists/./src/stories/Widgets/ArticleBanner/ArticleBanner.styles.ts","webpack://royal-college-radiologists/./src/stories/Widgets/ArticleBanner/ArticleBanner.tsx"],"sourcesContent":["var _path, _path2, _path3;\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 SvgWaveGeneric(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 2725.77 380.81\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n fill: \"none\",\n strokeWidth: 6,\n d: \"M2725.77 377.75H836.37v.07c-29.66 0-54.41-21.44-60.54-50.08L710.76 59.83c-6.73-32.44-34.7-56.78-68.21-56.78s-61.49 24.34-68.22 56.78l-65.11 267.92c-6.12 28.64-30.89 50-60.54 50.01-29.65 0-54.41-21.44-60.54-50.07L323.07 59.77C316.34 27.33 288.37 3 254.86 3c-33.51 0-61.49 24.34-68.22 56.78L121.53 327.7c-6.13 28.64-30.89 50.08-60.54 50.08\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n fill: \"none\",\n strokeWidth: 3,\n d: \"M2725.77 377.75H836.37v.07c-29.66 0-54.41-21.44-60.54-50.08L710.76 59.83c-6.73-32.44-34.7-56.78-68.21-56.78s-61.49 24.34-68.22 56.78l-65.11 267.92c-6.12 28.64-30.89 50-60.54 50.01-29.65 0-54.41-21.44-60.54-50.07L323.07 59.77C316.34 27.33 288.37 3 254.86 3c-33.51 0-61.49 24.34-68.22 56.78L121.53 327.7c-6.13 28.64-30.89 50.08-60.54 50.08\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"currentColor\",\n fill: \"none\",\n d: \"M2725.77 377.75H836.37v.07c-29.66 0-54.41-21.44-60.54-50.08L710.76 59.83c-6.73-32.44-34.7-56.78-68.21-56.78s-61.49 24.34-68.22 56.78l-65.11 267.92c-6.12 28.64-30.89 50-60.54 50.01-29.65 0-54.41-21.44-60.54-50.07L323.07 59.77C316.34 27.33 288.37 3 254.86 3c-33.51 0-61.49 24.34-68.22 56.78L121.53 327.7c-6.13 28.64-30.89 50.08-60.54 50.08\"\n })));\n}\nexport default SvgWaveGeneric;","var _defs, _g;\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 SvgWaveOncology(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1920 239.5\"\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".wave-oncology_svg__cls-3{fill:none;stroke:#2e54ff;stroke-miterlimit:10;stroke-dasharray:0 0 2 2}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#wave-oncology_svg__clippath)\",\n fill: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M169.77 225.6c-11.8 0-21.6-8.4-23.8-19.5l-34.3-170.5c-2.5-12.3-13.4-21.6-26.4-21.6s-24 9.3-26.4 21.6l-34.3 170.5c-2.2 11.1-12.1 19.5-23.8 19.5s-21.6-8.4-23.8-19.5l-34.2-170.5c-2.5-12.3-13.4-21.6-26.4-21.6s-24 9.3-26.4 21.6l-34.3 170.5c-2.2 11.1-12.1 19.5-23.8 19.5\",\n stroke: \"#2e54ff\",\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-oncology_svg__cls-3\",\n d: \"M1920 225.6H338.67c-11.8 0-21.6-8.4-23.8-19.5l-34.2-170.5c-2.5-12.3-13.4-21.6-26.4-21.6s-24 9.3-26.4 21.6l-34.3 170.5c-2.1 10.5-11 18.5-21.8 19.4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-oncology_svg__cls-3\",\n stroke: \"currentColor\",\n d: \"M1920 225.6H338.67c-11.8 0-21.6-8.4-23.8-19.5l-34.2-170.5c-2.5-12.3-13.4-21.6-26.4-21.6s-24 9.3-26.4 21.6l-34.3 170.5c-2.1 10.5-11 18.5-21.8 19.4\"\n }))));\n}\nexport default SvgWaveOncology;","import { css } from 'styled-components';\r\nexport const rootMargin = '0px 0px -15% 0px';\r\nexport const cubicEaseOut = `cubic-bezier(0.33, 1, 0.68, 1)`;\r\nexport const disableAnimationClass = '.equally-ai___toolbox-disable-buttons-animations';\r\nexport const shouldAnimate = (innerCss) => {\r\n return css `\r\n @media (prefers-reduced-motion: no-preference) {\r\n ${innerCss};\r\n\r\n ${disableAnimationClass} & {\r\n transition: none !important;\r\n animation: none !important;\r\n }\r\n }\r\n `;\r\n};\r\nexport const transition = (properties, duration = 0.35, timing = cubicEaseOut) => {\r\n return shouldAnimate(css `\r\n transition-duration: ${typeof duration === 'string' ? duration : `${duration}s`};\r\n transition-property: ${properties};\r\n transition-timing-function: ${timing};\r\n will-change: ${properties};\r\n `);\r\n};\r\nexport function scrollIntoView(el) {\r\n const disabled = document.querySelector(disableAnimationClass);\r\n el?.scrollIntoView({\r\n behavior: !disabled ? 'smooth' : 'auto',\r\n block: 'start',\r\n inline: 'start',\r\n });\r\n}\r\nexport function scrollTo(y) {\r\n const disabled = document.querySelector(disableAnimationClass);\r\n window.scrollTo({\r\n top: y,\r\n behavior: !disabled ? 'smooth' : 'auto',\r\n });\r\n}\r\n","import { hsl } from 'polished';\r\nexport default {\r\n /** Hex: #1f1f1f */\r\n black: '#1f1f1f',\r\n /** Hex: #fff */\r\n white: '#fff',\r\n primary: {\r\n /** Hex: #2D053C */\r\n purple: '#2D053C',\r\n /** Hex: #F0EFFF */\r\n offWhite: '#F0EFFF',\r\n },\r\n secondary: {\r\n /** Hex: #FF324B */\r\n red: '#FF324B',\r\n },\r\n tertiary: {\r\n /** Hex: #32FF64 */\r\n green: '#32FF64',\r\n /** Hex: #C8FF0A */\r\n yellow: '#C8FF0A',\r\n /** Hex: #00FFFF */\r\n lightBlue: '#00FFFF',\r\n /** Hex: #2E54FF */\r\n darkBlue: '#2E54FF',\r\n },\r\n tint: {\r\n /** Hex: #3E134E */\r\n purple: '#3E134E',\r\n /** Hex: #F7F7FF */\r\n offWhite: '#F7F7FF',\r\n },\r\n validation: {\r\n /** Hex: #DA291C */\r\n invalid: '#DA291C',\r\n /** Hex: #DA291C */\r\n valid: '#008C15',\r\n },\r\n grey: {\r\n /** Hex: #222222 */\r\n grey13: hsl(0, 0, 0.13),\r\n /** Hex: #585858 */\r\n grey20: hsl(0, 0, 0.2),\r\n /** Hex: #585858 */\r\n grey35: hsl(0, 0, 0.35),\r\n /** Hex: #666666 */\r\n grey40: hsl(0, 0, 0.4),\r\n /** Hex: #707070 */\r\n grey44: hsl(0, 0, 0.44),\r\n /** Hex: #999999 */\r\n grey60: hsl(0, 0, 0.6),\r\n /** Hex: #CCCCCC */\r\n grey80: hsl(0, 0, 0.8),\r\n /** Hex: #E5E5E5 */\r\n grey90: hsl(0, 0, 0.9),\r\n /** Hex: #F7F7F7 */\r\n grey97: hsl(0, 0, 0.97),\r\n },\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 { Device } from './media';\r\n/**\r\n * Base pixel value for the \"rem\" unit.\r\n */\r\nexport const PIXELS_PER_REM = 16;\r\n/**\r\n * Default pixel value for the min width.\r\n */\r\nexport const DEFAULT_MIN_VALUE = Device.Tablet;\r\n/**\r\n * Default pixel value for the max width.\r\n */\r\nexport const DEFAULT_MAX_VALUE = Device.ActualDesktop;\r\n/**\r\n * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluid(min, max, minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE) {\r\n const minRem = min / PIXELS_PER_REM;\r\n const maxRem = max / PIXELS_PER_REM;\r\n const minWidthRem = minWidth / PIXELS_PER_REM;\r\n const maxWidthRem = maxWidth / PIXELS_PER_REM;\r\n const slope = (maxRem - minRem) / (maxWidthRem - minWidthRem);\r\n const yAxisIntersection = -minWidthRem * slope + minRem;\r\n const clampMin = `${round(minRem)}rem`;\r\n const clampVal = `${round(yAxisIntersection)}rem + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(maxRem)}rem`;\r\n return `clamp(${clampMin}, ${clampVal}, ${clampMax})`;\r\n}\r\n/**\r\n * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluidUnit(min, max, unit, minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE) {\r\n const slope = (max - min) / (maxWidth - minWidth);\r\n const yAxisIntersection = -minWidth * slope + min;\r\n const clampMin = `${round(min)}`;\r\n const clampVal = `${round(yAxisIntersection)}${unit} + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(max)}`;\r\n return `clamp(${clampMin}${unit}, ${clampVal}, ${clampMax}${unit})`;\r\n}\r\n/**\r\n * Round to nearest hundredth.\r\n */\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n","import { css } from 'styled-components';\r\nexport default {\r\n graphikCompact: {\r\n regular: css `\r\n font-family: 'Graphik Compact', sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n medium: css `\r\n font-family: 'Graphik Compact', sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n semibold: css `\r\n font-family: 'Graphik Compact', sans-serif;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n },\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 { css } from 'styled-components';\r\nimport { fluid } from './fluid';\r\nexport const SitePaddingMobile = 18;\r\nexport const SitePadding = 24;\r\nexport const SiteWidth = 1700;\r\nexport const SiteWidthBreakpoint = SiteWidth + SitePadding * 2;\r\nexport const siteWide = css `\r\n --sitePadding: ${fluid(SitePaddingMobile, SitePadding)};\r\n --siteWidth: ${SiteWidth}px;\r\n --gutterWidth: ${fluid(16, 28)};\r\n\r\n margin: 0 auto;\r\n max-width: calc(var(--siteWidth) + (var(--sitePadding) * 2));\r\n padding: 0 var(--sitePadding);\r\n width: 100%;\r\n`;\r\nexport const baseGrid = css `\r\n display: grid;\r\n column-gap: var(--gutterWidth);\r\n grid-template-columns: repeat(12, 1fr);\r\n`;\r\n","/**\r\n * The various major z-index layers, adjust with caution and leave space between to add to later.\r\n */\r\nexport const Layers = {\r\n Modal: 1000,\r\n Header: 999,\r\n NavigationTray: 1000,\r\n};\r\n","export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\r\n Device[Device[\"TabletSmall\"] = 568] = \"TabletSmall\";\r\n Device[Device[\"Tablet\"] = 768] = \"Tablet\";\r\n Device[Device[\"TabletLarge\"] = 1024] = \"TabletLarge\";\r\n Device[Device[\"TabletXL\"] = 1104] = \"TabletXL\";\r\n Device[Device[\"DesktopSmall\"] = 1280] = \"DesktopSmall\";\r\n Device[Device[\"Desktop\"] = 1366] = \"Desktop\";\r\n Device[Device[\"DesktopLarge\"] = 1600] = \"DesktopLarge\";\r\n Device[Device[\"ActualDesktop\"] = 1920] = \"ActualDesktop\";\r\n Device[Device[\"DesktopXL\"] = 2560] = \"DesktopXL\";\r\n})(Device || (Device = {}));\r\nexport function from(size) {\r\n return `(min-width: ${size}px)`;\r\n}\r\nexport function until(size) {\r\n return `(max-width: ${size - 1}px)`;\r\n}\r\nexport function between(start, end) {\r\n return `${from(start)} and ${until(end)}`;\r\n}\r\n","import svgQuotePurple from '@img/icons/background/quote-purple.svg?url';\r\nimport svgQuoteWhite from '@img/icons/background/quote-white.svg?url';\r\nimport { css } from 'styled-components';\r\nimport { transition } from './animate';\r\nimport { fluid } from './fluid';\r\nimport fonts from './fonts';\r\nexport const headingStyles = css `\r\n ${fonts.graphikCompact.semibold};\r\n\r\n color: currentColor;\r\n margin: 0 0 ${fluid(18, 26)};\r\n`;\r\nexport const h1 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(32, 50)};\r\n line-height: ${fluid(40, 70)};\r\n`;\r\nexport const h2 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(28, 36)};\r\n line-height: ${fluid(36, 50)};\r\n`;\r\nexport const h3 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(24, 32)};\r\n line-height: ${fluid(32, 44)};\r\n`;\r\nexport const h4 = css `\r\n ${headingStyles};\r\n ${fonts.graphikCompact.medium};\r\n\r\n font-size: ${fluid(22, 24)};\r\n line-height: ${fluid(30, 34)};\r\n`;\r\nconst paragraphStyles = css `\r\n ${fonts.graphikCompact.regular};\r\n color: currentColor;\r\n margin: 0 0 ${fluid(16, 24)};\r\n`;\r\nexport const quotes = css `\r\n ${paragraphStyles};\r\n ${fonts.graphikCompact.medium};\r\n\r\n font-size: ${fluid(22, 24)};\r\n line-height: ${fluid(30, 34)};\r\n`;\r\nexport const paragraphLarge = css `\r\n ${paragraphStyles};\r\n ${fonts.graphikCompact.medium};\r\n\r\n font-size: ${fluid(20, 22)};\r\n line-height: ${fluid(30, 32)};\r\n`;\r\nexport const paragraphRegular = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(26, 28)};\r\n`;\r\nexport const paragraphSmall = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(14, 16)};\r\n line-height: ${fluid(20, 22)};\r\n`;\r\nexport const caption = css `\r\n ${paragraphSmall};\r\n ${fonts.graphikCompact.medium};\r\n text-transform: uppercase;\r\n`;\r\nexport const label = css `\r\n ${paragraphStyles};\r\n ${fonts.graphikCompact.regular};\r\n\r\n font-size: ${fluid(14, 16)};\r\n line-height: ${fluid(18, 20)};\r\n text-transform: uppercase;\r\n`;\r\nexport const link = css `\r\n ${transition('text-decoration-color')};\r\n\r\n color: currentColor;\r\n text-decoration: underline;\r\n text-decoration-color: currentColor;\r\n text-decoration-thickness: 1px;\r\n text-underline-offset: 2px;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus,\r\n &:hover {\r\n text-decoration-color: transparent;\r\n }\r\n`;\r\nexport const blockquote = css `\r\n ${paragraphStyles};\r\n ${fonts.graphikCompact.regular};\r\n color: currentColor;\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(28, 28)};\r\n padding-left: ${fluid(44, 88)};\r\n text-align: left;\r\n position: relative;\r\n\r\n &::before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: ${fluid(32, 64)};\r\n height: 100%;\r\n background-size: ${fluid(32, 64)};\r\n background-repeat: no-repeat;\r\n background-position: 0 5px;\r\n\r\n [data-variant='dark'] & {\r\n background-image: url(${svgQuoteWhite});\r\n }\r\n\r\n [data-variant='light'] & {\r\n background-image: url(${svgQuotePurple});\r\n }\r\n }\r\n`;\r\nexport const blockquoteName = css `\r\n ${paragraphStyles};\r\n ${fonts.graphikCompact.medium};\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(28, 28)};\r\n padding-left: 28px;\r\n text-align: left;\r\n\r\n > strong {\r\n display: block;\r\n }\r\n`;\r\nexport const table = css `\r\n border-collapse: collapse;\r\n margin-bottom: ${fluid(16, 24)};\r\n width: 100%;\r\n\r\n thead {\r\n tr {\r\n border-bottom: 2px solid var(--fgColourTint);\r\n\r\n td,\r\n th {\r\n ${fonts.graphikCompact.medium};\r\n\r\n font-size: ${fluid(18, 24)};\r\n line-height: ${fluid(28, 28)};\r\n padding: 6px 16px 12px;\r\n text-align: left;\r\n\r\n &:not(:last-child) {\r\n border-right: 1px solid var(--fgColourTint);\r\n }\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n th {\r\n ${fonts.graphikCompact.medium};\r\n font-size: ${fluid(18, 24)};\r\n line-height: ${fluid(28, 28)};\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n\r\n td {\r\n ${fonts.graphikCompact.medium};\r\n font-size: ${fluid(18, 22)};\r\n line-height: ${fluid(28, 28)};\r\n padding: 12px 16px;\r\n text-align: left;\r\n\r\n &:not(:last-child) {\r\n border-right: 1px solid var(--fgColourTint);\r\n }\r\n }\r\n }\r\n\r\n tr {\r\n &:nth-child(even) {\r\n td {\r\n background-color: var(--bgColour);\r\n }\r\n }\r\n\r\n &:nth-child(odd) {\r\n td {\r\n background-color: var(--bgColourTint);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nexport const contentStyles = css `\r\n h1,\r\n .h1-styles {\r\n ${h1}\r\n }\r\n\r\n h2,\r\n .h2-styles {\r\n ${h2}\r\n }\r\n\r\n h3,\r\n .h3-styles {\r\n ${h3}\r\n }\r\n\r\n h4,\r\n .h4-styles {\r\n ${h4}\r\n }\r\n\r\n p {\r\n ${paragraphRegular}\r\n\r\n a {\r\n ${link};\r\n }\r\n }\r\n\r\n .large {\r\n ${paragraphLarge}\r\n }\r\n\r\n .small {\r\n ${paragraphSmall}\r\n }\r\n\r\n a {\r\n ${link};\r\n\r\n color: var(--fgColour);\r\n }\r\n\r\n ol,\r\n ul {\r\n padding-left: 1.5em;\r\n margin: 0 0 ${fluid(24, 32)};\r\n\r\n li {\r\n ${paragraphStyles};\r\n ${paragraphRegular};\r\n\r\n &:last-child {\r\n margin: 0;\r\n }\r\n\r\n margin: 0 0 ${fluid(12, 24)};\r\n\r\n p {\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n ol,\r\n ul {\r\n margin-top: ${fluid(24, 32)};\r\n }\r\n }\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n }\r\n\r\n ul:not([style*='list-style-type']) {\r\n list-style: none !important;\r\n padding-left: 1.5em;\r\n\r\n li {\r\n position: relative;\r\n\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n left: -1.2em;\r\n top: 0.7em;\r\n height: 2px;\r\n width: 10px;\r\n background-color: var(--fgColour);\r\n }\r\n }\r\n }\r\n\r\n blockquote {\r\n ${blockquote};\r\n }\r\n\r\n .quote-name {\r\n ${blockquoteName}\r\n }\r\n\r\n hr {\r\n display: block;\r\n background: currentColor;\r\n border: 0;\r\n height: 2px;\r\n margin: ${fluid(32, 48)} 0;\r\n padding: 0;\r\n width: 100%;\r\n }\r\n\r\n table {\r\n ${table};\r\n }\r\n\r\n .responsive-table {\r\n position: relative;\r\n overflow-x: auto;\r\n }\r\n\r\n > *:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n > *:last-child {\r\n margin-bottom: 0;\r\n }\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 { 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 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","var _style, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10;\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 SvgWaveRadiologyLg(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1421.6 239.5\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".wave-radiology-lg_svg__st2{fill:none;stroke:#2e54ff;stroke-miterlimit:10}\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-radiology-lg_svg__st2\",\n d: \"M528.5 225.6c-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4s-34.6 13-39 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-radiology-lg_svg__st2\",\n d: \"M517.5 225.6c-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3L1.9 44.3C-2.4 26.9-18.2 13.9-37 13.9c-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-radiology-lg_svg__st2\",\n d: \"M506.6 225.6c-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3L-9 44.3c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-radiology-lg_svg__st2\",\n d: \"M495.7 225.6c-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4s-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155C-24.2 26.9-40 13.9-58.8 13.9c-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-radiology-lg_svg__st2\",\n d: \"M484.8 225.6c-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3L191 44.3c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-radiology-lg_svg__st2\",\n d: \"M540.2 225.6h-66.3c-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155C-46 26.9-61.8 13.9-80.6 13.9c-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-radiology-lg_svg__st2\",\n d: \"M572.1 225.6c-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-radiology-lg_svg__st2\",\n d: \"M561.2 225.6c-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4s-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3S87.7 214.4 84 199.3l-38.4-155C41.3 26.9 25.5 13.9 6.7 13.9c-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"wave-radiology-lg_svg__st2\",\n d: \"M550.3 225.6c-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155C30.4 26.9 14.6 13.9-4.2 13.9c-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3s-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3-16.3 0-29.9-11.2-33.6-26.3l-38.4-155c-4.3-17.4-20.1-30.4-38.9-30.4-18.8 0-34.6 12.9-38.9 30.4l-38.4 155c-3.7 15.1-17.4 26.3-33.6 26.3\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-791.5 225.6c16.3 0 29.9-11.2 33.6-26.3l38.4-155c4.3-17.4 20.1-30.4 38.9-30.4 18.8 0 34.6 12.9 38.9 30.4l38.4 155c3.7 15.1 17.4 26.3 33.6 26.3 16.3 0 29.9-11.2 33.6-26.3l38.4-155c4.3-17.4 20.1-30.4 38.9-30.4 18.8 0 34.6 12.9 38.9 30.4l38.4 155c3.7 15.1 17.4 26.3 33.6 26.3 16.3 0 29.9-11.2 33.6-26.3l38.4-155c4.3-17.4 20.1-30.4 38.9-30.4 18.8 0 34.6 12.9 38.9 30.4l38.4 155c3.7 15.1 17.4 26.3 33.6 26.3s29.9-11.2 33.6-26.3l38.4-155c4.3-17.4 20.1-30.4 38.9-30.4 18.8 0 34.6 12.9 38.9 30.4l38.4 155c3.7 15.1 17.4 26.3 33.6 26.3 16.3 0 29.9-11.2 33.6-26.3l38.4-155c4.3-17.4 20.1-30.4 38.9-30.4 18.8 0 34.6 12.9 38.9 30.4l38.4 155c3.7 15.1 17.4 26.3 33.6 26.3 16.3 0 29.9-11.2 33.6-26.3l38.4-155c4.3-17.4 20.1-30.4 38.9-30.4 18.8 0 34.6 12.9 38.9 30.4l38.4 155c3.7 15.1 17.4 26.3 33.6 26.3h882.2\",\n fill: \"none\",\n stroke: \"#ff3a53\",\n strokeMiterlimit: 10\n })));\n}\nexport default SvgWaveRadiologyLg;","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, until } from '@helpers/media';\r\nimport { h1, paragraphLarge, paragraphRegular } from '@helpers/typography';\r\nimport CategoryPillsStyles from '@stories/Components/General/CategoryPills/CategoryPills.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 overflow: hidden;\r\n\r\n ${SectionWrapperStyles.SiteWide} {\r\n ${baseGrid};\r\n }\r\n`;\r\nconst ContentWrapper = styled.div `\r\n grid-column: 1 / span 12;\r\n padding: calc(var(--headerHeight, 0px) + 52px) 0 0;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 7;\r\n margin-bottom: -96px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 2 / span 6;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n margin-bottom: -126px;\r\n }\r\n\r\n ${Container}[data-variant='light'] & {\r\n ${CategoryPillsStyles.Container} {\r\n --pillBgColour: ${brand.primary.purple};\r\n --hoverpillBgColour: ${brand.white};\r\n --pillColour: ${brand.primary.offWhite};\r\n --pillHoverColour: ${brand.primary.purple};\r\n }\r\n }\r\n`;\r\nconst Title = styled.h1 `\r\n ${h1};\r\n\r\n margin: 0 0 ${fluid(10, 20)};\r\n`;\r\nconst DateTimeWrapper = styled.div `\r\n ${paragraphRegular};\r\n\r\n margin-top: ${fluid(24, 32)};\r\n`;\r\nconst Authors = styled.p `\r\n ${paragraphLarge};\r\n`;\r\nconst BrandingWrapper = styled.div `\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 2 / span 11;\r\n }\r\n\r\n > svg {\r\n display: block;\r\n transform: scaleX(-1);\r\n width: calc(100% + var(--sitePadding));\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n width: min(calc(88vw - var(--sitePadding)), 1920px);\r\n }\r\n }\r\n\r\n &[data-type='generic'] {\r\n padding-bottom: 12px;\r\n\r\n > svg {\r\n @media ${until(Device.DesktopLarge)} {\r\n width: calc(103% + var(--sitePadding));\r\n }\r\n\r\n path {\r\n ${transition('stroke-dashoffset', 2.5, 'easeIn')}\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n transition-duration: 3s;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n transition-duration: 3.25s;\r\n }\r\n }\r\n\r\n path:nth-of-type(1),\r\n path:nth-of-type(2),\r\n path:nth-of-type(3) {\r\n stroke-dasharray: 4000;\r\n stroke-dashoffset: 4000;\r\n }\r\n\r\n path:nth-of-type(1) {\r\n transition-delay: 700ms;\r\n }\r\n\r\n path:nth-of-type(2) {\r\n transition-delay: 350ms;\r\n transform: translateX(-1%);\r\n }\r\n\r\n path:nth-of-type(3) {\r\n transform: translateX(-2%);\r\n }\r\n }\r\n }\r\n\r\n &[data-animate='true'][data-type='generic'] {\r\n > svg {\r\n path:nth-of-type(1),\r\n path:nth-of-type(2),\r\n path:nth-of-type(3) {\r\n stroke-dashoffset: 0;\r\n }\r\n }\r\n }\r\n\r\n &[data-type='oncology'] {\r\n > svg {\r\n path:nth-of-type(1),\r\n path:nth-of-type(2) {\r\n stroke: ${brand.tertiary.darkBlue} !important;\r\n }\r\n\r\n /* section after dashed line */\r\n path:nth-of-type(1) {\r\n ${transition('stroke-dashoffset', 0.4, 'linear')};\r\n\r\n transition-delay: 1.4s;\r\n stroke-dasharray: 500;\r\n stroke-dashoffset: 500;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n transition-delay: 1.6s;\r\n transition-duration: 0.35s;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n transition-delay: 2.1s;\r\n transition-duration: 0.6s;\r\n }\r\n }\r\n\r\n /* longest line, dashed */\r\n path:nth-of-type(2) {\r\n ${transition('stroke-dashoffset', 1.75, 'easeIn')}\r\n\r\n stroke-dasharray: 2250;\r\n stroke-dashoffset: 2250;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n transition-duration: 2.25s;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n transition-duration: 3s;\r\n }\r\n }\r\n\r\n /* dashed line which sits over animated line, same colour as background */\r\n path:nth-of-type(3) {\r\n stroke: var(--bgColour);\r\n stroke-dasharray: 2.5 2.5;\r\n stroke-width: 3px;\r\n }\r\n }\r\n }\r\n\r\n &[data-animate='true'][data-type='oncology'] {\r\n > svg {\r\n path:nth-of-type(1),\r\n path:nth-of-type(2) {\r\n stroke-dashoffset: 0;\r\n }\r\n }\r\n }\r\n\r\n &[data-type='radiology'] {\r\n > svg {\r\n color: ${brand.tertiary.darkBlue};\r\n\r\n path:not(:last-of-type) {\r\n ${transition('stroke-dashoffset', 1.1, 'linear')}\r\n\r\n stroke-dasharray: 1500;\r\n stroke-dashoffset: 1500;\r\n transition-delay: 1.1s;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n transition-delay: 1.2s;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n transition-duration: 1.25s;\r\n transition-delay: 1.4s;\r\n }\r\n }\r\n\r\n path:last-of-type {\r\n ${transition('stroke-dashoffset', 5, 'easeIn')}\r\n\r\n color: ${brand.secondary.red};\r\n stroke-dasharray: 4750;\r\n stroke-dashoffset: -4750;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n transition-duration: 5.5s;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n transition-duration: 6s;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &[data-animate='true'][data-type='radiology'] {\r\n > svg {\r\n path {\r\n stroke-dashoffset: 0;\r\n }\r\n }\r\n }\r\n`;\r\nconst ArticleBannerStyles = {\r\n Authors,\r\n BrandingWrapper,\r\n Container,\r\n ContentWrapper,\r\n DateTimeWrapper,\r\n Title,\r\n};\r\nexport default ArticleBannerStyles;\r\n","import { rootMargin } from '@helpers/animate';\r\nimport { formatDate, formatDateISO } from '@helpers/date';\r\nimport { generateAuthorsString } from '@helpers/utils';\r\nimport { useInView } from '@hooks/useInView';\r\nimport SvgWaveGeneric from '@img/branding-graphics/wave-generic.svg';\r\nimport SvgWaveOncology from '@img/branding-graphics/wave-oncology.svg';\r\nimport SvgWaveRadiology from '@img/branding-graphics/wave-radiology-lg.svg';\r\nimport CategoryPills from '@stories/Components/General/CategoryPills/CategoryPills';\r\nimport * as React from 'react';\r\nimport S from './ArticleBanner.styles';\r\nconst ArticleBanner = (props) => {\r\n const [ref, inView] = useInView({ rootMargin }, false, props.pageContext?.isEditMode);\r\n return (React.createElement(S.Container, { ref: ref, variant: props.variant, flush: 'bottom' },\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(CategoryPills, { links: props.categories }),\r\n !props.showPublishedInfo && (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 props.showPublishedInfo && (React.createElement(S.DateTimeWrapper, null,\r\n \"Published:\",\r\n ' ',\r\n React.createElement(\"time\", { dateTime: formatDateISO(props.date) }, formatDate(props.date, 'd LLL yyyy')),\r\n props.lastReviewDate && (React.createElement(React.Fragment, null,\r\n ' ',\r\n \"| Last Reviewed:\",\r\n ' ',\r\n React.createElement(\"time\", { dateTime: formatDateISO(props.lastReviewDate) }, formatDate(props.lastReviewDate, 'd LLL yyyy')))))),\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.BrandingWrapper, { \"data-animate\": inView, \"data-type\": props.type }, brandingGraphic())));\r\n function brandingGraphic() {\r\n switch (props.type) {\r\n case 'radiology':\r\n return React.createElement(SvgWaveRadiology, null);\r\n case 'oncology':\r\n return React.createElement(SvgWaveOncology, null);\r\n case 'generic':\r\n default:\r\n return React.createElement(SvgWaveGeneric, null);\r\n }\r\n }\r\n};\r\nexport default ArticleBanner;\r\n"],"names":["_path","_path2","_path3","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","viewBox","stroke","fill","strokeWidth","d","_defs","_g","clipPath","strokeMiterlimit","className","rootMargin","cubicEaseOut","disableAnimationClass","shouldAnimate","innerCss","css","transition","properties","duration","undefined","timing","scrollIntoView","el","disabled","document","querySelector","behavior","block","inline","scrollTo","y","window","top","black","white","primary","purple","offWhite","secondary","red","tertiary","green","yellow","lightBlue","darkBlue","tint","validation","invalid","valid","grey","grey13","hsl","grey20","grey35","grey40","grey44","grey60","grey80","grey90","grey97","formatDateISO","value","ensureDate","toISOString","formatDate","formatString","date","format","removeTimeZone","Date","includes","slice","equalDates","startDate","endDate","sd","ed","toDateString","PIXELS_PER_REM","DEFAULT_MIN_VALUE","Device","Tablet","DEFAULT_MAX_VALUE","ActualDesktop","fluid","min","max","minRem","maxRem","minWidthRem","slope","yAxisIntersection","round","fluidUnit","unit","minWidth","num","Math","graphikCompact","regular","medium","semibold","ButtonReset","SitePaddingMobile","SitePadding","SiteWidth","siteWide","baseGrid","Layers","Modal","Header","NavigationTray","from","size","until","between","start","end","headingStyles","fonts","h1","h2","h3","h4","paragraphStyles","quotes","paragraphLarge","paragraphRegular","paragraphSmall","caption","label","link","blockquote","svgQuoteWhite","svgQuotePurple","blockquoteName","table","contentStyles","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","Container","styled","section","withConfig","displayName","componentId","TabletLarge","brand","Pill","button","_props$pillColour","pillColour","fg","_props$pillColour2","_props$pillColour3","bg","_props$pillColour4","links","React","S","map","FocusRing","id","focusRingClass","onClick","e","_window$open","preventDefault","open","url","focus","followLink","tabIndex","text","div","Button","_ref","type","ref","targetEl","getElementById","focusNext","skipToMain","_ref$current","_wrapperEl","wrapperEl","closest","_ref$current2","nextElementSibling","_wrapperEl2","_wrapperEl2$parentEle","parentElement","skipSection","_focusable$","querySelectorAll","Inner","SiteWide","FocusAnchor","BasePropsContext","SectionWrapper","children","layout","flush","variant","removeSkipLink","otherProps","baseProps","SkipLink","_style","_path4","_path5","_path6","_path7","_path8","_path9","_path10","xmlns","SectionWrapperStyles","ContentWrapper","Desktop","DesktopLarge","CategoryPillsStyles","Title","DateTimeWrapper","Authors","p","BrandingWrapper","_props$pageContext","pageContext","CategoryPills","categories","showPublishedInfo","dateTime","readTime","lastReviewDate","authors","dangerouslySetInnerHTML","__html","SvgWaveRadiology","SvgWaveOncology","SvgWaveGeneric","brandingGraphic"],"sourceRoot":""}