{"version":3,"file":"6736-3885d2f5c7649a054774.js","mappings":"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","sources":["webpack://eploy/./src/helpers/grid.ts","webpack://eploy/./src/helpers/scrollbars.ts","webpack://eploy/./src/helpers/ssr.ts","webpack://eploy/./src/helpers/typography.ts","webpack://eploy/./src/helpers/utils.ts","webpack://eploy/./src/hoc/withMotionMax.tsx","webpack://eploy/./src/hooks/useMedia.ts","webpack://eploy/./src/stories/Components/Misc/Carousels/Carousel/CarouselProvider/CarouselProvider.tsx","webpack://eploy/./src/hooks/useCarousel.ts","webpack://eploy/./src/hooks/useResize.ts","webpack://eploy/./src/stories/Components/Misc/Carousels/Carousel/MotionTrack/MotionTrack.styles.ts","webpack://eploy/./src/stories/Components/Misc/Carousels/Carousel/MotionTrack/MotionTrack.tsx","webpack://eploy/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.styles.ts","webpack://eploy/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.tsx"],"sourcesContent":["import { css } from 'styled-components';\r\nexport const siteWide = css `\r\n margin: 0 auto;\r\n max-width: calc(var(--siteWidth) + var(--sitePadding) + var(--sitePadding));\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","import { css } from 'styled-components';\r\nimport brand from './brand';\r\nexport default css `\r\n &::-webkit-scrollbar-track {\r\n background-color: ${brand.grey.dark};\r\n }\r\n\r\n &::-webkit-scrollbar {\r\n background-color: ${brand.grey.dark};\r\n height: 6px;\r\n width: 6px;\r\n }\r\n\r\n &::-webkit-scrollbar-thumb {\r\n background-color: ${brand.primary.orange};\r\n border-radius: 0;\r\n cursor: pointer;\r\n }\r\n`;\r\n","export const isSSR = () => {\r\n const returnValue = !(typeof window != 'undefined' && window.document);\r\n return returnValue;\r\n};\r\n","import svgBullet from '@img/icons/bullet-fill.svg?url';\r\nimport svgQuote from '@img/icons/quote-testimonials.svg?url';\r\nimport { css } from 'styled-components';\r\nimport { transition } from './animate';\r\nimport brand from './brand';\r\nimport { fluid } from './fluid';\r\nimport fonts from './fonts';\r\nimport scrollbars from './scrollbars';\r\nexport const headingStyles = css `\r\n ${fonts.poppins.extraBold};\r\n\r\n color: currentColor;\r\n margin: 0 0 ${fluid(30, 42)};\r\n text-wrap: pretty;\r\n`;\r\nexport const h1 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(38, 72)};\r\n line-height: ${fluid(46, 88)};\r\n`;\r\nexport const h2 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(32, 58)};\r\n line-height: ${fluid(38, 66)};\r\n`;\r\nexport const h3 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(26, 42)};\r\n line-height: ${fluid(34, 48)};\r\n`;\r\nexport const h4 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(22, 32)};\r\n line-height: ${fluid(30, 38)};\r\n`;\r\nexport const h5 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(16, 24)};\r\n line-height: ${fluid(22, 30)};\r\n font-weight: 700;\r\n`;\r\nexport const h6 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(16, 18)};\r\n line-height: 20px;\r\n font-weight: 700;\r\n`;\r\nexport const paragraphStyles = css `\r\n ${fonts.poppins.regular};\r\n\r\n color: currentColor;\r\n margin: 0 0 ${fluid(12, 14)};\r\n text-wrap: pretty;\r\n`;\r\nexport const paragraphExtraLarge = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(22, 32)};\r\n line-height: ${fluid(30, 42)};\r\n`;\r\nexport const paragraphLarge = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(17, 22)};\r\n line-height: ${fluid(25, 36)};\r\n`;\r\nexport const paragraphRegular = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(17, 20)};\r\n line-height: ${fluid(25, 36)};\r\n`;\r\nexport const paragraphSmall = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(14, 18)};\r\n line-height: ${fluid(22, 28)};\r\n`;\r\nexport const tag = css `\r\n ${fonts.poppins.bold};\r\n\r\n font-size: ${fluid(11, 14)};\r\n line-height: ${fluid(12, 16)};\r\n margin: 0 0 ${fluid(12, 20)};\r\n`;\r\nexport const authorName = css `\r\n ${fonts.caveat};\r\n\r\n font-size: ${fluid(20, 28)};\r\n line-height: ${fluid(26, 38)};\r\n`;\r\nexport const link = css `\r\n ${transition('text-decoration-color')};\r\n\r\n --textDecorationColour: ${brand.primary.orange};\r\n\r\n display: inline;\r\n color: currentColor;\r\n text-decoration: underline;\r\n text-decoration-color: var(--textDecorationColour);\r\n text-decoration-thickness: 1px;\r\n text-underline-offset: ${fluid(3, 4)};\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus-visible {\r\n outline: auto;\r\n outline-offset: 2px;\r\n outline-width: 1px;\r\n outline-style: solid;\r\n outline-color: ${brand.primary.orange};\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 ${paragraphRegular};\r\n\r\n --quoteWidth: ${fluid(56, 106)};\r\n --quoteColour: linear-gradient(\r\n 180deg,\r\n ${brand.primary.orange} 63.63%,\r\n ${brand.secondary.orangeDark} 100%\r\n );\r\n --quoteGap: ${fluid(8, 24)};\r\n --lineWidth: ${fluid(4, 8)};\r\n\r\n position: relative;\r\n color: currentColor;\r\n text-align: left;\r\n font-style: italic;\r\n padding-left: calc((var(--quoteGap) * 2) + var(--quoteWidth) + var(--lineWidth));\r\n\r\n &::before,\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n background: var(--quoteColour);\r\n }\r\n\r\n &::before {\r\n top: 50%;\r\n left: 0;\r\n width: var(--quoteWidth);\r\n aspect-ratio: 106 / 82;\r\n -webkit-mask-image: url(${svgQuote});\r\n mask-image: url(${svgQuote});\r\n mask-repeat: no-repeat;\r\n background-size: contain;\r\n transform: translateY(-50%);\r\n }\r\n\r\n &::after {\r\n left: calc(var(--quoteGap) + var(--quoteWidth));\r\n top: 0;\r\n width: var(--lineWidth);\r\n height: 100%;\r\n border-radius: 100px;\r\n }\r\n\r\n p {\r\n color: currentColor;\r\n font-size: inherit;\r\n line-height: inherit;\r\n font-style: inherit;\r\n margin-bottom: ${fluid(8, 16)};\r\n }\r\n\r\n footer {\r\n ${authorName};\r\n\r\n cite {\r\n ${paragraphRegular};\r\n\r\n margin: 0;\r\n }\r\n }\r\n`;\r\nexport const table = css `\r\n ${paragraphSmall};\r\n\r\n --borderRadius: 6px;\r\n\r\n background: ${brand.primary.white};\r\n border-spacing: 0;\r\n border-collapse: separate;\r\n color: currentColor;\r\n width: 100% !important;\r\n border-radius: var(--borderRadius);\r\n\r\n td,\r\n th {\r\n border: 1px solid ${brand.primary.black};\r\n padding: 10px 12px;\r\n text-align: left;\r\n\r\n &:not(:last-child) {\r\n border-right: 0;\r\n }\r\n }\r\n\r\n thead {\r\n tr {\r\n background: transparent;\r\n\r\n td,\r\n th {\r\n font-weight: 700;\r\n color: ${brand.primary.orange};\r\n border-bottom: 0;\r\n\r\n &:first-child {\r\n border-top-left-radius: var(--borderRadius);\r\n }\r\n\r\n &:last-child {\r\n border-top-right-radius: var(--borderRadius);\r\n }\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:last-child {\r\n td:first-child {\r\n border-bottom-left-radius: var(--borderRadius);\r\n }\r\n\r\n td:last-child {\r\n border-bottom-right-radius: var(--borderRadius);\r\n }\r\n }\r\n\r\n &:not(:last-child) {\r\n td {\r\n border-bottom: 0;\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nexport const contentStyles = css `\r\n --bulletColour: ${brand.primary.orange};\r\n\r\n h1,\r\n .h1-styles {\r\n ${h2};\r\n }\r\n\r\n h2,\r\n .h2-styles {\r\n ${h3};\r\n }\r\n\r\n h3,\r\n .h3-styles {\r\n ${h4};\r\n }\r\n\r\n h4,\r\n .h4-styles {\r\n ${h5}\r\n }\r\n\r\n h5,\r\n .h5-styles {\r\n ${h6}\r\n }\r\n\r\n h6,\r\n .h6-styles {\r\n ${h6}\r\n }\r\n\r\n h1,\r\n .h1-styles,\r\n h2,\r\n .h2-styles,\r\n h3,\r\n .h3-styles,\r\n h4,\r\n .h4-styles,\r\n h5,\r\n .h5-styles,\r\n h6,\r\n .h6-styles {\r\n margin: ${fluid(18, 32)} 0 0.48em;\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 strong {\r\n font-weight: 700;\r\n }\r\n\r\n .extra-large {\r\n ${paragraphExtraLarge};\r\n\r\n strong {\r\n font-weight: 800;\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 .tag {\r\n ${tag}\r\n }\r\n\r\n a {\r\n ${link}\r\n }\r\n\r\n ol,\r\n ul {\r\n ${paragraphRegular};\r\n\r\n margin-top: ${fluid(12, 14)};\r\n\r\n li {\r\n color: currentColor;\r\n margin: 0 0 ${fluid(10, 12)};\r\n }\r\n }\r\n\r\n ol,\r\n ul {\r\n list-style: none;\r\n padding-left: 26px;\r\n }\r\n\r\n ol {\r\n counter-reset: li;\r\n\r\n li {\r\n display: block;\r\n counter-increment: li;\r\n margin-left: -26px;\r\n\r\n &::before {\r\n color: ${brand.primary.orange};\r\n content: counter(li) '.';\r\n margin-right: 12px;\r\n }\r\n }\r\n }\r\n\r\n // Ensure that inline styling hasn't been applied\r\n ul:not([style*='list-style-type']) li {\r\n position: relative;\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: ${fluid(5.5, 12)};\r\n left: -26px;\r\n height: 13px;\r\n width: 12px;\r\n -webkit-mask-image: url(${svgBullet});\r\n mask-image: url(${svgBullet});\r\n mask-repeat: no-repeat;\r\n background-color: var(--bulletColour);\r\n }\r\n }\r\n\r\n blockquote {\r\n ${blockquote};\r\n }\r\n\r\n hr {\r\n display: block;\r\n background: var(--titleHighlight);\r\n border: 0;\r\n height: 2px;\r\n margin: ${fluid(30, 42)} 0;\r\n padding: 0;\r\n width: 100%;\r\n border-radius: 100px;\r\n }\r\n\r\n table {\r\n ${table};\r\n }\r\n\r\n .responsive-table {\r\n ${scrollbars};\r\n\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 !important;\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/** Clamp index to be within the min/max index range. */\r\nexport function clamp(value, max) {\r\n return Math.max(Math.min(value, max), 0);\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 const highlightTitleWords = (title) => title.replaceAll(/\\*(.*?)\\*/g, '$1');\r\n/**\r\n * Rule structure for react-hook-form\r\n * Pattern based on https://regexr.com/39nr7\r\n */\r\nexport const URL_RULE = {\r\n message: `Please enter a valid URL`,\r\n value: /[(http(s)?)://(www.)?a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_+.~#?&//=]*)$/,\r\n};\r\n","import { domMax, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotionMax(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotionMax = (props) => {\r\n return (React.createElement(LazyMotion, { features: domMax, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotionMax.displayName = `withMotionMax(${displayName})`;\r\n return ComponentWithMotionMax;\r\n}\r\n","import { useEffect, useState } from 'react';\r\n/**\r\n * Store a value in state based on the specified media queries.\r\n * @param {Array} queries\r\n * @param {Array} values\r\n * @param {T} defaultValue\r\n */\r\nfunction useMedia(queries, values, defaultValue) {\r\n // Function that gets value based on matching media query\r\n const getValue = () => {\r\n // Get index of first media query that matches\r\n const index = mediaQueryLists.findIndex((mql) => mql.matches);\r\n // Return related value or defaultValue if none\r\n return typeof values[index] !== 'undefined' ? values[index] : defaultValue;\r\n };\r\n // State and setter for matched value\r\n const [value, setValue] = useState(defaultValue);\r\n const [mediaQueryLists, setMediaQueryLists] = useState([]);\r\n useEffect(() => {\r\n // Array containing a media query list for each query\r\n setMediaQueryLists(queries.map((query) => window.matchMedia(query)));\r\n }, []);\r\n useEffect(() => {\r\n setValue(getValue);\r\n // Event listener callback\r\n // Note: By defining getValue outside of useEffect we ensure that it has ...\r\n // ... current values of hook args (as this hook callback is created once on mount).\r\n const handler = () => setValue(getValue);\r\n // Set a listener for each media query with above handler as callback.\r\n mediaQueryLists.forEach((mql) => mql.addListener(handler));\r\n // Remove listeners on cleanup\r\n return () => mediaQueryLists.forEach((mql) => mql.removeListener(handler));\r\n }, [mediaQueryLists]); // Empty array ensures effect is only run on mount and unmount\r\n return value;\r\n}\r\nexport default useMedia;\r\n","import { useCarousel } from '@hooks/useCarousel';\r\nimport noop from 'lodash/noop';\r\nimport * as React from 'react';\r\nconst CarouselContext = React.createContext({\r\n activeIndex: 0,\r\n goToIndex: noop,\r\n goToNext: noop,\r\n goToPrev: noop,\r\n reinitialise: noop,\r\n maxIndex: 0,\r\n offset: 0,\r\n offsets: [],\r\n recalculate: noop,\r\n refContainer: null,\r\n refTrack: null,\r\n count: 0,\r\n paddingOffset: 0,\r\n virtualActiveIndex: 0,\r\n virtualMaxIndex: 0,\r\n useVirtualForPagination: false,\r\n});\r\nexport const useCarouselContext = () => React.useContext(CarouselContext);\r\nconst CarouselProvider = ({ children, ...otherProps }) => {\r\n const carousel = useCarousel(otherProps);\r\n React.useEffect(() => {\r\n carousel.reinitialise(otherProps.count, otherProps.paddingOffset);\r\n }, [otherProps.paddingOffset, otherProps.count]);\r\n return React.createElement(CarouselContext.Provider, { value: carousel }, children);\r\n};\r\nexport default CarouselProvider;\r\n","import { clamp as doClamp } from '@helpers/utils';\r\nimport * as React from 'react';\r\nimport { useResize } from './useResize';\r\nexport function useCarousel(params) {\r\n const refContainer = React.useRef(null);\r\n const refTrack = React.useRef(null);\r\n const [carouselState, dispatch] = React.useReducer(carouselReducer, {\r\n activeIndex: 0,\r\n maxIndex: 0,\r\n offsets: [],\r\n count: 0,\r\n paddingOffset: 0,\r\n virtualActiveIndex: 0,\r\n virtualMaxIndex: 0,\r\n useVirtualForPagination: false,\r\n });\r\n useResize({\r\n callback: initCarousel,\r\n debounce: 100,\r\n immediate: true,\r\n on: 'x',\r\n });\r\n React.useEffect(() => {\r\n initCarousel();\r\n }, [carouselState.count, carouselState.paddingOffset]);\r\n return {\r\n ...carouselState,\r\n goToIndex,\r\n goToNext,\r\n goToPrev,\r\n reinitialise,\r\n recalculate: initCarousel,\r\n offset: carouselState.offsets[carouselState.activeIndex],\r\n refContainer,\r\n refTrack,\r\n count: carouselState.count,\r\n paddingOffset: carouselState.paddingOffset,\r\n };\r\n /**\r\n * Calculate the px offset for the track for the target item index.\r\n * @param index\r\n * @returns\r\n */\r\n function calculateOffset(index) {\r\n if (!refTrack.current) {\r\n return 0;\r\n }\r\n const items = Array.from(refTrack.current.children);\r\n const itemsUntilIndex = items.slice(0, index);\r\n const sum = itemsUntilIndex\r\n .map((el) => el.getBoundingClientRect().width)\r\n .reduce((p, c) => p + c, 0);\r\n return sum;\r\n }\r\n /**\r\n * Initialise the reducer state.\r\n */\r\n function initCarousel() {\r\n const offsets = [];\r\n // Pre-calculate the px offset for each item in the carousel.\r\n Array.from(Array(params.count)).forEach((_, index) => {\r\n offsets.push(calculateOffset(index));\r\n });\r\n // Determine what the max index value needs to be in order for the last item to be within view.\r\n const containerWidth = (refContainer.current?.getBoundingClientRect().width ?? 0) - (params.paddingOffset ?? 0);\r\n const trackWidth = offsets[offsets.length - 1];\r\n let maxIndex = 0;\r\n for (let index = 0; index < offsets.length; index++) {\r\n const offset = offsets[index];\r\n const remainder = trackWidth - offset;\r\n /**\r\n * If the remainder is less than the container width, then the last item is within view.\r\n * Floor the values to avoid any partial pixels causing issues\r\n */\r\n if (Math.ceil(remainder) < Math.floor(containerWidth)) {\r\n maxIndex = index;\r\n break;\r\n }\r\n }\r\n // Remove peeking amount from end of carousel\r\n offsets[maxIndex] = offsets[maxIndex] - params.paddingOffset ?? 0;\r\n // Initialise the carousel state.\r\n dispatch({\r\n type: 'init',\r\n payload: {\r\n offsets,\r\n maxIndex,\r\n count: params.count,\r\n paddingOffset: params.paddingOffset,\r\n useVirtualForPagination: params.useVirtualForPagination ?? false,\r\n },\r\n });\r\n }\r\n /**\r\n * Go to the next item.\r\n */\r\n function goToNext(wrap) {\r\n dispatch({ type: 'next', payload: { wrap: wrap ?? false } });\r\n }\r\n /**\r\n * Go to the previous item.\r\n */\r\n function goToPrev(wrap) {\r\n dispatch({ type: 'prev', payload: { wrap: wrap ?? false } });\r\n }\r\n /**\r\n * Go to the target index.\r\n */\r\n function goToIndex(index) {\r\n dispatch({ type: 'goto', payload: index });\r\n }\r\n /**\r\n * Go to the target index.\r\n */\r\n function reinitialise(count, paddingOffset) {\r\n dispatch({ type: 'reinitialise', payload: { count, paddingOffset } });\r\n }\r\n function carouselReducer(state, action) {\r\n switch (action.type) {\r\n case 'init':\r\n return {\r\n activeIndex: 0,\r\n maxIndex: action.payload.maxIndex,\r\n offsets: action.payload.offsets,\r\n count: action.payload.count,\r\n paddingOffset: action.payload.paddingOffset,\r\n virtualActiveIndex: 0,\r\n virtualMaxIndex: action.payload.count,\r\n useVirtualForPagination: action.payload.useVirtualForPagination,\r\n };\r\n case 'reinitialise':\r\n return {\r\n ...state,\r\n count: action.payload.count,\r\n paddingOffset: action.payload.paddingOffset,\r\n };\r\n case 'goto':\r\n return {\r\n ...state,\r\n activeIndex: clamp(action.payload),\r\n virtualActiveIndex: doClamp(action.payload, state.virtualMaxIndex),\r\n };\r\n case 'next':\r\n if (action.payload.wrap && state.activeIndex === state.maxIndex) {\r\n return { ...state, activeIndex: 0, virtualActiveIndex: 0 };\r\n }\r\n return {\r\n ...state,\r\n activeIndex: clamp(state.activeIndex + 1),\r\n virtualActiveIndex: doClamp(state.virtualActiveIndex + 1, state.virtualMaxIndex),\r\n };\r\n case 'prev':\r\n if (action.payload.wrap && state.activeIndex === 0) {\r\n return {\r\n ...state,\r\n activeIndex: state.maxIndex,\r\n virtualActiveIndex: state.virtualMaxIndex,\r\n };\r\n }\r\n return {\r\n ...state,\r\n activeIndex: clamp(state.virtualActiveIndex > state.activeIndex\r\n ? state.activeIndex\r\n : state.activeIndex - 1),\r\n virtualActiveIndex: doClamp(state.virtualActiveIndex - 1, state.virtualMaxIndex),\r\n };\r\n }\r\n /** Clamp index to be within the min/max index range. */\r\n function clamp(value) {\r\n return doClamp(value, state.maxIndex);\r\n }\r\n }\r\n}\r\n","import debounce from 'lodash/debounce';\r\nimport * as React from 'react';\r\nexport function useResize(params) {\r\n const refWindowHeight = React.useRef();\r\n const refWindowWidth = React.useRef();\r\n const onResize = React.useCallback(debounce(() => {\r\n const prevHeight = refWindowHeight.current;\r\n const prevWidth = refWindowWidth.current;\r\n const newHeight = window.innerHeight;\r\n const newWidth = window.innerWidth;\r\n const shouldTrigger = params.on === 'both' ||\r\n (params.on === 'y' && prevHeight !== newHeight) ||\r\n (params.on === 'x' && prevWidth !== newWidth);\r\n if (shouldTrigger) {\r\n params.callback();\r\n }\r\n refWindowHeight.current = newHeight;\r\n refWindowWidth.current = newWidth;\r\n }, params.debounce), [params.debounce, params.on]);\r\n React.useEffect(() => {\r\n if (!params.callback) {\r\n return;\r\n }\r\n if (params.immediate) {\r\n onResize();\r\n }\r\n window.addEventListener('resize', onResize);\r\n return () => {\r\n window.removeEventListener('resize', onResize);\r\n };\r\n }, [params.on]);\r\n}\r\n","import { m } from 'framer-motion';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div ``;\r\nconst Track = styled(m.ul) `\r\n display: flex;\r\n`;\r\nconst SimpleTrackStyles = {\r\n Container,\r\n Track,\r\n};\r\nexport default SimpleTrackStyles;\r\n","import { isSSR } from '@helpers/ssr';\r\nimport { useAnimation } from 'framer-motion';\r\nimport * as React from 'react';\r\nimport { useCarouselContext } from '../CarouselProvider/CarouselProvider';\r\nimport S from './MotionTrack.styles';\r\nconst MotionTrack = ({ children, enableCarousel = true, trackMutations = false, ...otherProps }) => {\r\n const animation = useAnimation();\r\n const carousel = useCarouselContext();\r\n const dragging = React.useRef(false);\r\n const xTransform = React.useRef(0);\r\n const maxOffset = carousel.offsets[carousel.maxIndex];\r\n const observer = !isSSR()\r\n ? new MutationObserver(() => {\r\n carousel.reinitialise(carousel.refTrack?.current?.childElementCount ?? 0, carousel.paddingOffset);\r\n })\r\n : null;\r\n React.useEffect(() => {\r\n if (!trackMutations || !observer || !carousel.refTrack?.current)\r\n return;\r\n observer.observe(carousel.refTrack?.current, { childList: true, subtree: true });\r\n return () => {\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n };\r\n }, [observer, trackMutations]);\r\n // Stop the drag momentum animation, and start a new animation to the correct offset.\r\n React.useEffect(() => {\r\n if (typeof carousel.offset !== 'undefined') {\r\n animation.stop();\r\n animation.start({ x: -carousel.offset });\r\n }\r\n }, [carousel.activeIndex]);\r\n return (React.createElement(S.Container, { ...otherProps, ref: carousel.refContainer },\r\n React.createElement(S.Track, { ref: carousel.refTrack, animate: animation, drag: enableCarousel ? 'x' : false, dragConstraints: { left: -maxOffset, right: 0 }, onClickCapture: (event) => {\r\n // Ignore click events after dragging, this prevents links being clicked when drag ends.\r\n if (dragging.current) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n dragging.current = false;\r\n }\r\n }, onDragStart: () => {\r\n dragging.current = true;\r\n }, onDragEnd: (_, info) => {\r\n // Get the absolute x value, avoiding overflow when dragging left.\r\n const absX = Math.abs(Math.min(xTransform.current, 0));\r\n // Determine the next target index.\r\n let targetIndex = carousel.offsets.findIndex((offset) => offset > absX) ?? 0;\r\n // If it is -1 then we scrolled past the max offset value.\r\n if (targetIndex === -1) {\r\n targetIndex = carousel.maxIndex;\r\n }\r\n // Ensure we take into account the drag direction.\r\n if (info.offset.x > 0) {\r\n targetIndex = Math.max(0, targetIndex - 1);\r\n }\r\n // Update the carousel state.\r\n carousel.goToIndex(targetIndex);\r\n // Update to false, so that it doesn't take multiple clicks on a carouselCard to register.\r\n setTimeout(function () {\r\n dragging.current = false;\r\n }, 10);\r\n }, onUpdate: (latest) => {\r\n // Store the current x position as the carousel is dragged.\r\n xTransform.current = typeof latest.x === 'number' ? latest.x : parseFloat(latest.x);\r\n } }, children)));\r\n};\r\nexport default MotionTrack;\r\n","import brand from '@helpers/brand';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nexport const SectionWrapperCSS = css `\r\n color: var(--sectionColour, ${brand.primary.black});\r\n background: var(--sectionBackground, transparent);\r\n scroll-margin: var(--headerHeight, 0px) 0 0;\r\n\r\n &[data-flush='top'] {\r\n --sectionSpacingTop: 0;\r\n }\r\n\r\n &[data-flush='bottom'] {\r\n --sectionSpacingBottom: 0;\r\n }\r\n\r\n &[data-flush='both'] {\r\n --sectionSpacingTop: 0;\r\n --sectionSpacingBottom: 0;\r\n }\r\n\r\n /* Variant text colours */\r\n &[data-variant='blue'],\r\n &[data-variant='charcoal'],\r\n &[data-variant='orange'],\r\n &[data-variant='pink'] {\r\n --sectionColour: ${brand.primary.white};\r\n }\r\n\r\n &[data-variant='stone'],\r\n &[data-variant='white'] {\r\n --sectionColour: ${brand.primary.black};\r\n }\r\n\r\n /* Variant background colours */\r\n &[data-variant='pink'] {\r\n --bgAngle: 90deg;\r\n }\r\n\r\n &[data-variant='blue'],\r\n &[data-variant='charcoal'] {\r\n --bgAngle: 105deg;\r\n }\r\n\r\n &[data-variant='orange'] {\r\n --bgAngle: 0deg;\r\n }\r\n\r\n &[data-variant='blue'] {\r\n --sectionBackground: linear-gradient(var(--bgAngle), #3372aa 0%, #1e2f6d 100%);\r\n }\r\n\r\n &[data-variant='charcoal'] {\r\n --sectionBackground: linear-gradient(var(--bgAngle), #2b2b2b 0%, #505050 100%);\r\n }\r\n\r\n &[data-variant='orange'] {\r\n --sectionBackground: linear-gradient(var(--bgAngle), #f47929 0%, #f17028 58.6%, #e24321 98.36%);\r\n }\r\n\r\n &[data-variant='pink'] {\r\n --sectionBackground: linear-gradient(var(--bgAngle), #9f4a92 0%, #cc709c 53%, #f491a4 100%);\r\n }\r\n\r\n &[data-variant='stone'] {\r\n --sectionBackground: ${brand.primary.stone};\r\n }\r\n\r\n &[data-variant='white'] {\r\n --sectionBackground: ${brand.primary.white};\r\n }\r\n`;\r\nconst Container = styled(m.section) `\r\n ${SectionWrapperCSS};\r\n`;\r\nexport const SectionWrapperInnerCSS = css `\r\n ${siteWide};\r\n\r\n padding-top: var(--sectionSpacingTop);\r\n padding-bottom: var(--sectionSpacingBottom);\r\n`;\r\nconst Inner = styled.div `\r\n ${SectionWrapperInnerCSS};\r\n`;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n Inner,\r\n};\r\nexport default SectionWrapperStyles;\r\n","import * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nconst SectionWrapper = React.forwardRef((props, ref) => {\r\n const { id, children, layout = 'default', flush = 'none', variant, ...otherProps } = props;\r\n return (React.createElement(S.Container, { ref: ref, id: id, \"data-flush\": flush, \"data-variant\": variant, ...otherProps }, renderLayout()));\r\n function renderLayout() {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n //@ts-ignore\r\n if (layout === 'fullWidth') {\r\n return children;\r\n }\r\n return React.createElement(S.Inner, null, children);\r\n }\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n"],"names":["siteWide","css","baseGrid","brand","grey","dark","primary","orange","isSSR","window","document","headingStyles","fonts","poppins","extraBold","fluid","h1","h2","h3","h4","h5","h6","paragraphStyles","regular","paragraphExtraLarge","paragraphLarge","paragraphRegular","paragraphSmall","tag","bold","authorName","caveat","link","transition","blockquote","secondary","orangeDark","svgQuote","table","white","black","contentStyles","svgBullet","scrollbars","sleep","ms","Promise","resolve","setTimeout","formatNumberValue","value","maximumDecimals","minimumDigits","Intl","NumberFormat","undefined","maximumFractionDigits","minimumIntegerDigits","format","clamp","max","Math","min","EMAIL_RULE","message","highlightTitleWords","title","replaceAll","URL_RULE","withMotionMax","WrappedComponent","displayName","name","ComponentWithMotionMax","props","React","LazyMotion","features","domMax","strict","queries","values","defaultValue","getValue","index","mediaQueryLists","findIndex","mql","matches","setValue","useState","setMediaQueryLists","useEffect","map","query","matchMedia","handler","forEach","addListener","removeListener","CarouselContext","activeIndex","goToIndex","noop","goToNext","goToPrev","reinitialise","maxIndex","offset","offsets","recalculate","refContainer","refTrack","count","paddingOffset","virtualActiveIndex","virtualMaxIndex","useVirtualForPagination","useCarouselContext","_ref","children","otherProps","carousel","params","carouselState","dispatch","state","action","type","payload","doClamp","wrap","refWindowHeight","refWindowWidth","onResize","debounce","prevHeight","current","prevWidth","newHeight","innerHeight","newWidth","innerWidth","on","callback","immediate","addEventListener","removeEventListener","useResize","initCarousel","_refContainer$current","_refContainer$current2","_params$paddingOffset","_params$useVirtualFor","Array","from","_","push","slice","el","getBoundingClientRect","width","reduce","p","c","calculateOffset","containerWidth","trackWidth","length","remainder","ceil","floor","useCarousel","Provider","Container","styled","div","withConfig","componentId","Track","m","ul","enableCarousel","trackMutations","animation","useAnimation","dragging","xTransform","maxOffset","observer","MutationObserver","_carousel$refTrack$cu","_carousel$refTrack","_carousel$refTrack$cu2","childElementCount","_carousel$refTrack2","_carousel$refTrack3","observe","childList","subtree","disconnect","stop","start","x","S","ref","animate","drag","dragConstraints","left","right","onClickCapture","event","preventDefault","stopPropagation","onDragStart","onDragEnd","info","_carousel$offsets$fin","absX","abs","targetIndex","onUpdate","latest","parseFloat","SectionWrapperCSS","stone","section","SectionWrapperInnerCSS","Inner","SectionWrapper","id","layout","flush","variant"],"sourceRoot":""}