{"version":3,"file":"7221-9881b80e5fdb473de278.js","mappings":"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","sources":["webpack://brc/./src/helpers/api.ts","webpack://brc/./src/helpers/utils.ts","webpack://brc/./src/hoc/withMotion.tsx","webpack://brc/./src/hooks/useApi.ts","webpack://brc/./src/hooks/useDebounce.ts","webpack://brc/./src/hooks/useForm.ts","webpack://brc/./src/hooks/useOutsideClick.ts","webpack://brc/./src/stories/Components/Misc/Forms/Form.styles.ts","webpack://brc/./src/stories/Components/Misc/Forms/FormField.tsx","webpack://brc/./src/stories/Components/Misc/Forms/Inputs/CheckboxList/CheckboxList.styles.ts","webpack://brc/./src/stories/Components/Misc/Forms/Inputs/CheckboxList/CheckboxList.tsx","webpack://brc/./src/stories/Components/Misc/Forms/Inputs/Textbox/Textbox.styles.ts","webpack://brc/./src/stories/Components/Misc/LoadingIndicator/LoadingIndicator.styles.ts","webpack://brc/./src/stories/Components/Misc/LoadingIndicator/LoadingIndicator.tsx","webpack://brc/./src/stories/Components/Misc/Searchbox/Searchbox.styles.ts","webpack://brc/./src/stories/Components/Misc/Searchbox/Searchbox.tsx"],"sourcesContent":["export const API_URLS = {\r\n brandCardsListing: '/umbraco/api/brandapi/cards',\r\n contentCardsListing: '/umbraco/api/contentapi/cards',\r\n searchSubmit: '/api/search/submit',\r\n searchTypeahead: '/api/search/typeahead',\r\n savePage: '/umbraco/api/favouritesapi/postfavouriteupdate',\r\n // SIGN IN\r\n signIn: '/auth/login',\r\n forgottenPassword: '/auth/forgotpassword',\r\n resetPassword: '/auth/resetpassword',\r\n signUp: '/umbraco/api/crmapi/createaccount',\r\n checkCompanyName: '/umbraco/api/crmapi/checkcompanyname',\r\n // PORTAL FORMS\r\n communities: '/umbraco/api/portalapi/communities',\r\n myAccount: '/umbraco/api/portalapi/myaccount',\r\n newsletters: '/umbraco/api/portalapi/newsletters',\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","import { domAnimation, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotion(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotion = (props) => {\r\n return (React.createElement(LazyMotion, { features: domAnimation, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotion.displayName = `withMotion(${displayName})`;\r\n return ComponentWithMotion;\r\n}\r\n","import { sleep } from '@helpers/utils';\r\nimport * as React from 'react';\r\nimport { useFirstMountState } from 'react-use';\r\nexport function useApi(params) {\r\n const refAbortController = React.useRef();\r\n const isFirstMount = useFirstMountState();\r\n const [data, setData] = React.useState(params.initialData);\r\n const [status, setStatus] = React.useState('initial');\r\n const minTime = 500;\r\n const clear = () => {\r\n setData(undefined);\r\n };\r\n React.useEffect(() => {\r\n // Ignore first mount if initial data is supplied.\r\n if (isFirstMount && params.initialData) {\r\n return;\r\n }\r\n // Ignore if validate is supplied and returns false.\r\n if (params.validate && !params.validate()) {\r\n return;\r\n }\r\n // Setup abortable fetch.\r\n refAbortController.current = new AbortController();\r\n const signal = refAbortController.current.signal;\r\n // Trigger fetch with abort signal.\r\n doAsync(signal);\r\n return () => {\r\n // Abort pending request if re-fetching.\r\n refAbortController.current?.abort();\r\n };\r\n async function doAsync(signal) {\r\n setStatus('loading');\r\n const start = Date.now();\r\n const res = await fetch(params.url, {\r\n cache: 'no-cache',\r\n credentials: 'same-origin',\r\n headers: {\r\n Accept: 'application/json',\r\n },\r\n method: 'get',\r\n signal,\r\n });\r\n const resData = await res.json();\r\n setData(undefined);\r\n const end = Date.now();\r\n const diff = end - start;\r\n /** Ensure at least 500ms is taken to return results to prevent loader flash */\r\n if (diff < minTime) {\r\n await sleep(minTime - diff);\r\n }\r\n setData(resData);\r\n setStatus('complete');\r\n }\r\n }, [params.url]);\r\n return { clear, data, status };\r\n}\r\n","import React from 'react';\r\nimport debounce from 'lodash/debounce';\r\nexport const useDebounce = (callback, value) => {\r\n const ref = React.useRef();\r\n React.useEffect(() => {\r\n ref.current = callback;\r\n }, [callback]);\r\n const debouncedCallback = React.useMemo(() => {\r\n const func = () => {\r\n ref.current?.();\r\n };\r\n return debounce(func, value);\r\n }, []);\r\n return debouncedCallback;\r\n};\r\n","import * as React from 'react';\r\nimport { useForm as useReactHookForm, } from 'react-hook-form';\r\nexport const validateNotWhitespaceOnly = (value, error) => typeof value === 'string' ? value.trim().length > 0 || error : true;\r\nexport function useForm(params) {\r\n const refContainer = React.useRef(null);\r\n const useReactHookFormReturn = useReactHookForm({\r\n defaultValues: params.defaultValues,\r\n mode: 'onSubmit',\r\n reValidateMode: 'onChange',\r\n shouldUseNativeValidation: false,\r\n });\r\n const { handleSubmit } = useReactHookFormReturn;\r\n const [status, setStatus] = React.useState('initial');\r\n const [confirmationMessage, setConfirmationMessage] = React.useState('');\r\n const [serverErrors, setServerErrors] = React.useState([]);\r\n const onSubmit = async (formData, event) => {\r\n let res;\r\n if (params.mode === 'multipart') {\r\n const formData = new FormData(event?.target);\r\n // We have to create the FormData instance before changing status\r\n // as disabled fields/fieldsets are not included otherwise.\r\n setStatus('pending');\r\n res = await fetch(params.endpoint, {\r\n body: formData,\r\n method: 'POST',\r\n });\r\n }\r\n else {\r\n setStatus('pending');\r\n res = await fetch(params.endpoint, {\r\n body: JSON.stringify(formData),\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n }\r\n // If we're showing an error message then change to error.\r\n if (!res.ok) {\r\n setStatus('error');\r\n setServerErrors([`Something went wrong.`]);\r\n if (!params.disableSuccessScroll) {\r\n // Add a delay to ensure the errors are rendered before scrolling\r\n setTimeout(() => {\r\n refContainer.current?.scrollIntoView({ behavior: 'auto', block: 'start' });\r\n }, 375);\r\n }\r\n if (params.initialPostSubmit) {\r\n setTimeout(() => {\r\n setStatus('initial');\r\n }, 3000);\r\n }\r\n return;\r\n }\r\n const resData = (await res.json());\r\n // If we're showing an error message then change to error.\r\n if (resData.errors?.length) {\r\n setStatus('error');\r\n setServerErrors(resData.errors);\r\n // Add a delay to ensure the errors are rendered before scrolling\r\n setTimeout(() => {\r\n refContainer.current?.scrollIntoView({ behavior: 'auto', block: 'start' });\r\n }, 375);\r\n if (params.initialPostSubmit) {\r\n setTimeout(() => {\r\n setStatus('initial');\r\n }, 3000);\r\n }\r\n return;\r\n }\r\n // At this stage we consider the submission successful so we\r\n // can trigger the optional callback.\r\n if (params.postSubmitCallback) {\r\n await params.postSubmitCallback();\r\n }\r\n // If we're showing a message then change to fulfilled.\r\n if (resData.message) {\r\n setStatus(params.initialPostSubmit ? 'initial' : 'fulfilled');\r\n setConfirmationMessage(resData.message);\r\n if (!params.disableSuccessScroll) {\r\n // Add a delay to ensure the messag ise rendered before scrolling\r\n setTimeout(() => {\r\n refContainer.current?.scrollIntoView({ behavior: 'auto', block: 'start' });\r\n }, 375);\r\n }\r\n return;\r\n }\r\n // If we're redirecting leave status pending.\r\n if (resData.redirect) {\r\n window.location.href = resData.redirect;\r\n return;\r\n }\r\n };\r\n return {\r\n confirmationMessage,\r\n refContainer,\r\n serverErrors,\r\n status,\r\n onSubmit: handleSubmit(onSubmit),\r\n useReactHookFormReturn,\r\n };\r\n}\r\n","import * as React from 'react';\r\nexport const useOutsideClick = (callback) => {\r\n const ref = React.useRef(null);\r\n React.useEffect(() => {\r\n const handleClick = (event) => {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n callback();\r\n }\r\n };\r\n document.addEventListener('click', handleClick, true);\r\n document.addEventListener('focus', handleClick, true);\r\n return () => {\r\n document.removeEventListener('click', handleClick, true);\r\n document.removeEventListener('focus', handleClick, true);\r\n };\r\n }, [ref]);\r\n return ref;\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 { ButtonReset } from '@helpers/global';\r\nimport { Device, from } from '@helpers/media';\r\nimport srOnly from '@helpers/srOnly';\r\nimport { contentStyles, paragraphRegular } from '@helpers/typography';\r\nimport ButtonStyles from '@stories/Components/Buttons/Button/Button.styles';\r\nimport { m } from 'framer-motion';\r\nimport { rgba } from 'polished';\r\nimport styled, { css } from 'styled-components';\r\nconst Form = styled.form `\r\n --tooltipFgColour: ${brand.global.white};\r\n --tooltipBgColour: ${brand.global.black};\r\n --borderColour: ${brand.global.black};\r\n --infoBgColour: ${brand.grey.grey80};\r\n --textColour: ${brand.global.black};\r\n --labelBgColour: ${brand.global.white};\r\n\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n gap: ${fluid(32, 40)} 0;\r\n scroll-margin: var(--headerHeight, 0px) 0 0;\r\n`;\r\nconst Section = styled.fieldset `\r\n display: flex;\r\n flex-direction: column;\r\n gap: ${fluid(32, 44)};\r\n\r\n &[data-visible='false'] {\r\n display: none;\r\n }\r\n`;\r\nconst Title = styled.legend `\r\n ${fonts.lato.bold};\r\n\r\n display: block;\r\n font-size: ${fluid(18, 20)};\r\n margin: 0 0 30px;\r\n padding: 0 0 8px;\r\n color: var(--textColour);\r\n border-bottom: 1px solid var(--borderColour);\r\n width: 100%;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-bottom: ${fluid(20, 24)};\r\n }\r\n`;\r\nconst Content = styled.p `\r\n ${paragraphRegular}\r\n`;\r\nconst Row = styled.div `\r\n --count: 1;\r\n\r\n display: grid;\r\n grid-template-columns: repeat(var(--count), 1fr);\r\n gap: ${fluid(20, 24)};\r\n\r\n @media ${from(Device.Tablet)} {\r\n --count: 2;\r\n\r\n &[data-layout='full'] {\r\n --count: 1;\r\n }\r\n }\r\n`;\r\nconst Field = styled.div `\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n\r\n @media ${from(Device.Tablet)} {\r\n &[data-size='wide'] {\r\n grid-column: span 2;\r\n }\r\n\r\n &[data-size='full'] {\r\n grid-column: span 2;\r\n }\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n &[data-size='full'] {\r\n grid-column: span 4;\r\n }\r\n }\r\n`;\r\nexport const CommonLabelStyles = css `\r\n ${fonts.lato.regular};\r\n\r\n font-size: ${fluid(12, 12)};\r\n display: block;\r\n margin: 0;\r\n padding: 4px;\r\n color: var(--textColour);\r\n background-color: var(--labelBgColour);\r\n\r\n position: absolute;\r\n left: 12px;\r\n top: -10px;\r\n z-index: 1;\r\n\r\n &.required,\r\n &[data-required='true'] {\r\n &::after {\r\n content: ' *';\r\n display: inline;\r\n }\r\n }\r\n\r\n &[data-hide='true'] {\r\n ${srOnly}\r\n }\r\n\r\n [data-error='true'] & {\r\n color: ${brand.validation.invalid};\r\n }\r\n\r\n [data-disabled='true'] & {\r\n color: ${brand.grey.grey44};\r\n }\r\n\r\n ${Field}:focus-within & {\r\n color: ${brand.primary.blue.dark};\r\n }\r\n`;\r\nconst Label = styled.label `\r\n ${CommonLabelStyles};\r\n`;\r\nconst Description = styled.div `\r\n ${paragraphRegular};\r\n`;\r\nexport const CommonErrorStyles = css `\r\n ${paragraphRegular};\r\n\r\n display: block;\r\n color: ${brand.validation.invalid};\r\n margin: 8px 0 0;\r\n font-size: ${fluid(12, 12)};\r\n line-height: ${fluid(12, 12)};\r\n padding: 0 16px;\r\n\r\n > span {\r\n font-size: ${fluid(16, 16)};\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n top: ${fluid(14, 18)};\r\n right: ${fluid(16, 16)};\r\n width: ${fluid(16, 20)};\r\n height: ${fluid(16, 20)};\r\n border-radius: 50%;\r\n background-color: ${brand.validation.invalid};\r\n color: ${brand.global.white};\r\n }\r\n`;\r\nconst Error = styled.span `\r\n ${CommonErrorStyles};\r\n`;\r\nconst Divider = styled.hr `\r\n display: block;\r\n border: 0;\r\n border-bottom: 1px solid var(--borderColour);\r\n margin: 0;\r\n padding: 0;\r\n`;\r\nconst SubmitWrapper = styled.div `\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n gap: 30px;\r\n\r\n ${ButtonStyles.Container} {\r\n width: auto;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n flex-direction: row;\r\n align-items: center;\r\n gap: ${fluid(20, 24)};\r\n\r\n ${ButtonStyles.Container} {\r\n margin-left: auto;\r\n }\r\n }\r\n`;\r\nconst Loader = styled.div `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: flex;\r\n background: ${rgba(brand.global.black, 0.2)};\r\n color: ${brand.global.white};\r\n flex-direction: column;\r\n height: 100%;\r\n place-content: center;\r\n place-items: center;\r\n text-align: center;\r\n width: 100%;\r\n`;\r\nconst LoaderText = styled.span `\r\n ${paragraphRegular};\r\n ${fonts.lato.bold};\r\n\r\n display: block;\r\n margin: 1rem 0 0;\r\n`;\r\nconst ErrorList = styled(m.ul) `\r\n display: flex;\r\n color: ${brand.validation.invalid};\r\n flex-direction: column;\r\n margin: 0;\r\n`;\r\nconst ErrorListItem = styled.li `\r\n ${CommonErrorStyles};\r\n\r\n display: flex;\r\n align-items: center;\r\n gap: ${fluid(12, 16)};\r\n margin: 0;\r\n padding: 0;\r\n\r\n span {\r\n position: static;\r\n }\r\n\r\n > div {\r\n ${contentStyles};\r\n\r\n flex: 1 1;\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: 0 0 ${fluid(16, 22)};\r\n }\r\n\r\n p {\r\n font-size: ${fluid(14, 16)};\r\n line-height: ${fluid(22, 24)};\r\n }\r\n }\r\n\r\n &:not(:last-child) {\r\n margin-bottom: 1em;\r\n }\r\n`;\r\nconst ConfirmationMessage = styled(m.div) `\r\n ${contentStyles};\r\n\r\n p:last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\r\nconst Info = styled.button `\r\n ${ButtonReset};\r\n ${fonts.lato.regular};\r\n\r\n position: relative;\r\n border-radius: 5000px;\r\n color: currentColor;\r\n font-size: 14px;\r\n height: 18px;\r\n width: 18px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0 0 0 5px;\r\n cursor: help;\r\n text-transform: none;\r\n background-color: var(--infoBgColour);\r\n transform: translateY(-1.5px);\r\n z-index: 2;\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-width: 1px;\r\n outline-style: solid;\r\n }\r\n`;\r\nconst Tooltip = styled.span `\r\n --shadowColour: rgba(0, 0, 0, 0.05);\r\n\r\n ${transition('opacity', 0.2)};\r\n\r\n position: absolute;\r\n color: var(--tooltipFgColour);\r\n background-color: var(--tooltipBgColour);\r\n top: 95%;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n opacity: 0;\r\n z-index: -1;\r\n width: 125px;\r\n padding: 6px 8px;\r\n box-shadow: -0.1px 1px 1.1px var(--shadowColour), -0.2px 2.7px 3px -0.8px var(--shadowColour),\r\n -0.4px 6.3px 7.1px -1.7px var(--shadowColour), -0.9px 15px 16.9px -2.5px var(--shadowColour);\r\n white-space: normal;\r\n pointer-events: none;\r\n border-radius: 4px;\r\n\r\n ${Info}:hover &,\r\n ${Info}:active &,\r\n ${Info}.focus-ring & {\r\n opacity: 1;\r\n z-index: 1;\r\n pointer-events: all;\r\n }\r\n`;\r\nconst FormStyles = {\r\n ConfirmationMessage,\r\n Content,\r\n Description,\r\n Divider,\r\n Error,\r\n ErrorList,\r\n ErrorListItem,\r\n Field,\r\n Form,\r\n Label,\r\n Loader,\r\n LoaderText,\r\n Row,\r\n Section,\r\n SubmitWrapper,\r\n Title,\r\n Info,\r\n Tooltip,\r\n};\r\nexport default FormStyles;\r\n","import * as React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport S from './Form.styles';\r\nconst FormField = ({ showLabel = true, ...otherProps }) => {\r\n const errorToShow = Array.isArray(otherProps.error)\r\n ? otherProps.error.find((error) => !!error)\r\n : otherProps.error;\r\n const name = Array.isArray(otherProps.name) ? otherProps.name[0] : otherProps.name;\r\n return (React.createElement(S.Field, { \"data-size\": otherProps.size ?? 'default', \"data-error\": !!errorToShow, \"data-disabled\": otherProps.disabled ?? false },\r\n otherProps.label && (React.createElement(S.Label, { htmlFor: name, \"data-hide\": !showLabel, \"data-required\": otherProps.required },\r\n otherProps.label,\r\n otherProps.tooltip && (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Info, { \"aria-label\": \"More Information\", \"aria-describedby\": `${name}-label`, onClick: (e) => e.preventDefault() },\r\n \"?\",\r\n React.createElement(S.Tooltip, { id: `${name}-label`, role: \"tooltip\" }, otherProps.tooltip)))))),\r\n otherProps.description && (React.createElement(S.Description, { dangerouslySetInnerHTML: { __html: otherProps.description } })),\r\n otherProps.children,\r\n errorToShow && (React.createElement(S.Error, null,\r\n React.createElement(\"span\", null, \"!\"),\r\n \" \",\r\n errorToShow.message))));\r\n};\r\nexport default FormField;\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 } from '@helpers/media';\r\nimport srOnly from '@helpers/srOnly';\r\nimport { link } from '@helpers/typography';\r\nimport svgTick from '@img/icons/interface/tick.svg?url';\r\nimport styled, { css } from 'styled-components';\r\nexport const CommonCheckboxContainerStyles = css `\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: ${fluid(12, 16)} ${fluid(24, 48)};\r\n\r\n flex-direction: column;\r\n\r\n @media ${from(Device.Tablet)} {\r\n flex-direction: row;\r\n }\r\n\r\n &[data-layout='vertical'] {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst Container = styled.div `\r\n ${CommonCheckboxContainerStyles};\r\n`;\r\nconst Option = styled.div `\r\n display: flex;\r\n\r\n &:has(input:focus-visible) {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-width: 2px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n white-space: nowrap;\r\n }\r\n`;\r\nconst Input = styled.input `\r\n /* Ensure iOS doesn't apply default border radius */\r\n -webkit-appearance: none !important;\r\n\r\n ${srOnly};\r\n`;\r\nexport const CommonCheckboxLabelStyles = css `\r\n ${fonts.lato.regular};\r\n\r\n --bgColour: ${brand.global.white};\r\n --borderColour: ${brand.global.black};\r\n --borderRadius: 5px;\r\n --textColour: ${brand.global.black};\r\n --boxSize: 26px;\r\n\r\n position: relative;\r\n display: inline-flex;\r\n align-items: center;\r\n cursor: pointer;\r\n font-size: ${fluid(14, 16)};\r\n line-height: var(--boxSize);\r\n color: var(--textColour);\r\n padding-left: calc(var(--boxSize) + ${fluid(10, 12)});\r\n\r\n &::before,\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n top: 50%;\r\n left: 0;\r\n border-radius: var(--borderRadius);\r\n transform: translateY(-50%);\r\n }\r\n\r\n &::before {\r\n ${transition('opacity', 0.2)};\r\n\r\n background: var(--textColour);\r\n -webkit-mask-image: url(${svgTick});\r\n mask-image: url(${svgTick});\r\n mask-repeat: no-repeat;\r\n background-size: contain;\r\n background-position: center;\r\n opacity: 0;\r\n z-index: 1;\r\n height: calc(var(--boxSize) + 2px);\r\n width: calc(var(--boxSize) + 2px);\r\n }\r\n\r\n &::after {\r\n background: var(--bgColour);\r\n border: 1px solid var(--borderColour);\r\n height: var(--boxSize);\r\n width: var(--boxSize);\r\n }\r\n\r\n a {\r\n ${link};\r\n }\r\n\r\n ${Input}:disabled + & {\r\n pointer-events: none;\r\n opacity: 0.5;\r\n }\r\n\r\n ${Input}:checked + &::before {\r\n opacity: 1;\r\n }\r\n`;\r\nconst Label = styled.label `\r\n ${CommonCheckboxLabelStyles};\r\n`;\r\nconst CheckboxListStyles = {\r\n Container,\r\n Input,\r\n Label,\r\n Option,\r\n};\r\nexport default CheckboxListStyles;\r\n","import * as React from 'react';\r\nimport S from './CheckboxList.styles';\r\nconst CheckboxListOption = React.forwardRef((props, ref) => {\r\n const { id: initialId, children, ...otherProps } = props;\r\n const id = `${initialId ? `${initialId}-` : ''}${otherProps.name}${otherProps.value ? `-${otherProps.value}` : ''}`;\r\n return (React.createElement(S.Option, null,\r\n React.createElement(S.Input, { ref: ref, id: id, type: \"checkbox\", value: otherProps.value, ...otherProps }),\r\n React.createElement(S.Label, { htmlFor: id }, children)));\r\n});\r\nCheckboxListOption.displayName = 'CheckboxListOption';\r\nexport { CheckboxListOption };\r\nconst CheckboxList = React.forwardRef(({ children, layout, ...props }, ref) => {\r\n return (React.createElement(S.Container, { ref: ref, \"data-layout\": layout ?? 'horizontal', ...props }, children));\r\n});\r\nCheckboxList.displayName = 'CheckboxList';\r\nexport default CheckboxList;\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 styled, { css } from 'styled-components';\r\nexport const CommonTextInputStyles = css `\r\n ${transition('border-width, border-color')};\r\n ${fonts.lato.regular};\r\n\r\n --bgColour: ${brand.global.white};\r\n --borderColour: ${brand.grey.dark};\r\n --borderRadius: 4px;\r\n --placeholderColour: ${brand.global.black};\r\n --readOnlyColour: ${brand.global.black};\r\n --disabledColour: ${brand.grey.light};\r\n\r\n /* Ensure iOS doesn't apply default border radius */\r\n -webkit-appearance: none !important;\r\n display: block;\r\n background: var(--bgColour);\r\n border: 1px solid var(--borderColour);\r\n border-radius: var(--borderRadius);\r\n color: var(--textColour);\r\n height: 56px;\r\n font-size: ${fluid(14, 16)};\r\n margin: 0;\r\n padding: 7px 12px;\r\n width: 100%;\r\n\r\n [data-error='true'] & {\r\n border-color: ${brand.validation.invalid};\r\n border-width: 3px;\r\n }\r\n\r\n &:disabled,\r\n &[aria-disabled='true'] {\r\n color: var(--disabledColour);\r\n border-color: var(--disabledColour);\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n }\r\n\r\n &:read-only,\r\n &[readonly] {\r\n color: var(--readOnlyColour);\r\n cursor: not-allowed;\r\n }\r\n\r\n &::placeholder {\r\n color: var(--placeholderColour);\r\n opacity: 0.5;\r\n }\r\n\r\n &:not([readonly], :read-only):focus {\r\n border-color: ${brand.primary.blue.dark};\r\n border-width: 3px;\r\n }\r\n`;\r\nconst Input = styled.input `\r\n ${CommonTextInputStyles};\r\n`;\r\nconst TextboxStyles = {\r\n Input,\r\n};\r\nexport default TextboxStyles;\r\n","import { fluid } from '@helpers/fluid';\r\nimport { paragraphRegular } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Loader = styled.div `\r\n position: relative;\r\n display: flex;\r\n background: var(--bgColour);\r\n color: var(--fgColour);\r\n flex-direction: column;\r\n height: 100%;\r\n place-content: center;\r\n place-items: center;\r\n text-align: center;\r\n width: 100%;\r\n z-index: 999;\r\n\r\n &[data-layout='inline'] {\r\n padding: ${fluid(48, 96)};\r\n }\r\n\r\n &[data-layout='absolute'] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n &[data-layout='fixed'] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n &[data-alignment='top'] {\r\n place-content: flex-start;\r\n padding-top: 24px;\r\n }\r\n`;\r\nconst LoaderText = styled.span `\r\n ${paragraphRegular};\r\n\r\n display: block;\r\n margin: 1rem 0 0;\r\n`;\r\nconst LoadingIndicatorStyles = {\r\n Loader,\r\n LoaderText,\r\n};\r\nexport default LoadingIndicatorStyles;\r\n","import brand from '@helpers/brand';\r\nimport { rgba } from 'polished';\r\nimport * as React from 'react';\r\nimport { PuffLoader } from 'react-spinners';\r\nimport S from './LoadingIndicator.styles';\r\nconst LoadingIndicator = (props) => {\r\n return (React.createElement(S.Loader, { \"data-layout\": props.layout ?? 'inline', \"data-alignment\": props.alignment ?? 'center', style: {\r\n '--bgColour': props.bgColour ?? rgba(brand.primary.purple.dark, 0.7),\r\n '--fgColour': props.fgColour ?? brand.global.white,\r\n } },\r\n React.createElement(PuffLoader, { color: \"currentColor\", size: props.size ?? 64 }),\r\n props.label && React.createElement(S.LoaderText, null, props.label)));\r\n};\r\nexport default LoadingIndicator;\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 { ButtonReset } from '@helpers/global';\r\nimport { Device, from } from '@helpers/media';\r\nimport scrollbars from '@helpers/scrollbars';\r\nimport srOnly from '@helpers/srOnly';\r\nimport { link } from '@helpers/typography';\r\nimport { rgba } from 'polished';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n ${transition('opacity')};\r\n\r\n --textLinkColour: ${brand.global.black};\r\n\r\n position: relative;\r\n\r\n &:has(input[aria-disabled='true'], button[aria-disabled='true']) {\r\n opacity: 0.5;\r\n pointer-events: none;\r\n }\r\n`;\r\nconst Form = styled.form `\r\n ${transition('border-color')};\r\n\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n border-radius: 50px;\r\n border: 1px solid ${rgba(brand.grey.dark, 0.6)};\r\n width: 100%;\r\n padding: 0 12px;\r\n height: ${fluid(36, 50)};\r\n\r\n &:focus-within {\r\n border-color: ${brand.grey.dark};\r\n }\r\n\r\n &:has(span) {\r\n border-color: ${brand.validation.invalid} !important;\r\n }\r\n`;\r\nconst Label = styled.label `\r\n ${srOnly};\r\n`;\r\nconst Input = styled.input `\r\n ${fonts.lato.regular};\r\n\r\n border: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n font-size: 14px;\r\n line-height: 22px;\r\n flex: 1;\r\n color: ${brand.global.black};\r\n\r\n &::placeholder {\r\n color: ${brand.grey.dark};\r\n }\r\n`;\r\nconst Button = styled.button `\r\n ${ButtonReset};\r\n ${transition('transform')};\r\n\r\n order: -1;\r\n border-radius: 50%;\r\n\r\n svg {\r\n display: block;\r\n width: 24px;\r\n }\r\n\r\n &:focus-visible {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-width: 1px;\r\n }\r\n\r\n &:focus-visible,\r\n &:hover {\r\n transform: scale(1.1);\r\n }\r\n`;\r\nconst Suggestions = styled.ul `\r\n ${transition('opacity, transform')};\r\n\r\n position: absolute;\r\n top: calc(100% + 16px);\r\n left: 0;\r\n background-color: ${brand.primary.grey};\r\n box-shadow: 0px 4px 13px 0px rgba(0, 0, 0, 0.25);\r\n display: flex;\r\n flex-direction: column;\r\n gap: 23px;\r\n padding: 12px;\r\n border-radius: 10px;\r\n min-width: 252px;\r\n max-height: 500px;\r\n overflow: auto;\r\n\r\n ${Container}:has(${Input}[aria-expanded='false']) & {\r\n opacity: 0;\r\n pointer-events: none;\r\n transform: translateY(-20px);\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n ${scrollbars};\r\n }\r\n`;\r\nconst AutosuggestOption = styled.button `\r\n ${ButtonReset};\r\n ${fonts.lato.semiBold};\r\n ${link};\r\n\r\n font-size: 16px;\r\n line-height: 32px;\r\n`;\r\nconst SearchboxStyles = {\r\n Container,\r\n Button,\r\n Label,\r\n Input,\r\n AutosuggestOption,\r\n Form,\r\n Suggestions,\r\n};\r\nexport default SearchboxStyles;\r\n","import { API_URLS } from '@helpers/api';\r\nimport { InterfaceIcon, getSvgIcon } from '@helpers/icons';\r\nimport { clamp } from '@helpers/utils';\r\nimport { useApi } from '@hooks/useApi';\r\nimport { useDebounce } from '@hooks/useDebounce';\r\nimport { useForm, validateNotWhitespaceOnly } from '@hooks/useForm';\r\nimport { useOutsideClick } from '@hooks/useOutsideClick';\r\nimport qs from 'qs';\r\nimport * as React from 'react';\r\nimport S from './Searchbox.styles';\r\nconst Searchbox = (props) => {\r\n const { onSubmit, useReactHookFormReturn: { watch, register, setValue, setFocus, formState: { errors }, }, status, } = useForm({\r\n defaultValues: { searchTerm: props.searchTerm },\r\n endpoint: API_URLS.searchSubmit,\r\n mode: 'json',\r\n });\r\n const { searchTerm: searchValue } = watch();\r\n const [searchTerm, setSearchTerm] = React.useState(props.searchTerm ?? '');\r\n const [showSuggestions, setShowSuggestions] = React.useState(false);\r\n const [selectedTerm, setSelectedTerm] = React.useState('');\r\n React.useEffect(() => {\r\n debouncedUpdateSearchTerm();\r\n }, [searchValue]);\r\n const updateSearchTerm = () => {\r\n if (searchValue &&\r\n searchValue.length > 1 &&\r\n searchTerm !== searchValue &&\r\n searchValue !== selectedTerm) {\r\n setSearchTerm(searchValue);\r\n setShowSuggestions(true);\r\n }\r\n else {\r\n setShowSuggestions(false);\r\n }\r\n };\r\n const debouncedUpdateSearchTerm = useDebounce(updateSearchTerm, 200);\r\n React.useEffect(() => {\r\n setSearchTerm(props.searchTerm ?? '');\r\n setValue('searchTerm', props.searchTerm ?? '');\r\n }, [props.searchTerm]);\r\n const result = useApi({\r\n url: `${API_URLS.searchTypeahead}?${qs.stringify({\r\n searchTerm,\r\n cultureCode: props.cultureCode,\r\n })}`,\r\n validate: () => !props.noTypeahead && !!searchTerm && searchTerm !== props.searchTerm,\r\n });\r\n const itemsRef = React.useRef([]);\r\n const containerRef = useOutsideClick(() => setShowSuggestions(false));\r\n return (React.createElement(S.Container, { ref: containerRef },\r\n React.createElement(S.Form, { onSubmit: props.onSubmit !== undefined\r\n ? (event) => {\r\n event.preventDefault();\r\n props.onSubmit?.(searchTerm);\r\n showSuggestions && setShowSuggestions(false);\r\n }\r\n : props.submitUrl\r\n ? (event) => {\r\n event.preventDefault();\r\n window.location.href = `${props.submitUrl}?${qs.stringify({\r\n searchTerm: searchTerm,\r\n cultureCode: props.cultureCode,\r\n })}`;\r\n }\r\n : onSubmit },\r\n React.createElement(S.Label, { id: `${props.idPrefix ?? ''}-searchbox-label` }, props.label),\r\n React.createElement(S.Input, { type: \"search\", placeholder: props.placeholder, role: \"combobox\", \"aria-autocomplete\": \"list\", \"aria-expanded\": showSuggestions && !!result.data && result.data.suggestions.length > 0, \"aria-controls\": `${props.idPrefix ?? ''}-typeahead-listbox`, \"aria-labelledby\": `${props.idPrefix ?? ''}-searchbox-label`, ...register('searchTerm', {\r\n required: props.translations?.['global.search.validation'] ?? '',\r\n validate: (value) => validateNotWhitespaceOnly(value, props.translations?.['global.search.validation'] ?? ''),\r\n }), \"aria-invalid\": !!errors.searchTerm, \"aria-errormessage\": `${props.idPrefix ?? ''}-searchbox-error`, onKeyDown: (event) => {\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n if (itemsRef.current.length > 0) {\r\n itemsRef.current[0]?.focus();\r\n }\r\n break;\r\n case 'Escape':\r\n setShowSuggestions(false);\r\n break;\r\n }\r\n }, \"aria-disabled\": status === 'pending', autoComplete: \"off\" }),\r\n errors.searchTerm && React.createElement(S.Label, { id: `${props.idPrefix ?? ''}-searchbox-error`, as: \"span\" }),\r\n React.createElement(S.Button, { type: \"submit\", \"aria-label\": props.buttonLabel, \"aria-disabled\": status === 'pending' }, getSvgIcon(InterfaceIcon.Search))),\r\n React.createElement(S.Suggestions, { id: `${props.idPrefix ?? ''}-typeahead-listbox`, \"aria-hidden\": !result.data || result.data.suggestions.length === 0, tabIndex: showSuggestions ? -1 : undefined }, !!result.data && (React.createElement(React.Fragment, null, result.data.suggestions.map((suggestion, i) => (React.createElement(\"li\", { key: suggestion.id }, suggestion.url !== undefined ? (React.createElement(S.AutosuggestOption, { ref: (el) => (itemsRef.current[i] = el), as: \"a\", href: suggestion.url, onKeyDown: (e) => onKeyPress(e, i, (result.data?.suggestions).length - 1), tabIndex: showSuggestions ? -1 : undefined }, suggestion.value)) : (React.createElement(S.AutosuggestOption, { ref: (el) => (itemsRef.current[i] = el), onClick: (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setSelectedTerm(suggestion.value);\r\n setValue('searchTerm', suggestion.value);\r\n }, onKeyDown: (e) => onKeyPress(e, i, (result.data?.suggestions).length - 1), tabIndex: showSuggestions ? -1 : undefined }, suggestion.value))))))))));\r\n function onKeyPress(event, i, maxIndex) {\r\n const nextIndex = i === maxIndex ? 0 : clamp(i + 1, maxIndex);\r\n const prevIndex = i === 0 ? maxIndex : clamp(i - 1, maxIndex);\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[nextIndex]?.focus();\r\n break;\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n event.stopPropagation();\r\n itemsRef.current[prevIndex]?.focus();\r\n break;\r\n case 'Escape':\r\n setShowSuggestions(false);\r\n setFocus('searchTerm');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n};\r\nexport default Searchbox;\r\n"],"names":["API_URLS","brandCardsListing","contentCardsListing","searchSubmit","searchTypeahead","savePage","signIn","forgottenPassword","resetPassword","signUp","checkCompanyName","communities","myAccount","newsletters","sleep","ms","Promise","resolve","setTimeout","clamp","value","max","Math","min","highlightTitleWords","title","replaceAll","withMotion","WrappedComponent","displayName","name","ComponentWithMotion","props","React","LazyMotion","features","domAnimation","strict","useApi","params","refAbortController","isFirstMount","useFirstMountState","data","setData","initialData","status","setStatus","validate","current","AbortController","async","signal","start","Date","now","res","fetch","url","cache","credentials","headers","Accept","method","resData","json","undefined","diff","doAsync","_refAbortController$c","abort","clear","useDebounce","callback","ref","debounce","func","_ref$current","call","validateNotWhitespaceOnly","error","trim","length","useForm","refContainer","useReactHookFormReturn","useReactHookForm","defaultValues","mode","reValidateMode","shouldUseNativeValidation","handleSubmit","confirmationMessage","setConfirmationMessage","serverErrors","setServerErrors","onSubmit","formData","event","_resData$errors","FormData","target","endpoint","body","JSON","stringify","ok","disableSuccessScroll","_refContainer$current","scrollIntoView","behavior","block","initialPostSubmit","errors","_refContainer$current2","postSubmitCallback","message","_refContainer$current3","redirect","window","location","href","useOutsideClick","handleClick","contains","document","addEventListener","removeEventListener","Form","styled","form","withConfig","componentId","brand","global","white","black","grey","grey80","fluid","Section","fieldset","Title","legend","fonts","lato","bold","from","Device","Tablet","Content","p","paragraphRegular","Row","div","Field","Desktop","CommonLabelStyles","css","regular","srOnly","validation","invalid","grey44","primary","blue","dark","Label","label","Description","CommonErrorStyles","Error","span","Divider","hr","SubmitWrapper","ButtonStyles","Container","Loader","rgba","LoaderText","ErrorList","m","ul","ErrorListItem","li","contentStyles","ConfirmationMessage","Info","button","ButtonReset","Tooltip","transition","_ref","_otherProps$size","_otherProps$disabled","showLabel","otherProps","errorToShow","Array","isArray","find","S","size","disabled","htmlFor","required","tooltip","FocusRing","focusRingClass","onClick","e","preventDefault","id","role","description","dangerouslySetInnerHTML","__html","children","CommonCheckboxContainerStyles","Option","Input","input","CommonCheckboxLabelStyles","svgTick","link","CheckboxListOption","initialId","type","CheckboxList","layout","CommonTextInputStyles","light","_props$layout","_props$alignment","_props$bgColour","_props$fgColour","_props$size","alignment","style","bgColour","purple","fgColour","PuffLoader","color","Button","Suggestions","DesktopSmall","scrollbars","AutosuggestOption","semiBold","_props$searchTerm","_props$idPrefix","_props$idPrefix2","_props$idPrefix3","_props$translations$g","_props$translations","_props$idPrefix4","_props$idPrefix5","_props$idPrefix6","watch","register","setValue","setFocus","formState","searchTerm","searchValue","setSearchTerm","showSuggestions","setShowSuggestions","selectedTerm","setSelectedTerm","debouncedUpdateSearchTerm","updateSearchTerm","_props$searchTerm2","_props$searchTerm3","result","qs","cultureCode","noTypeahead","itemsRef","containerRef","_props$onSubmit","submitUrl","idPrefix","placeholder","suggestions","translations","_props$translations$g2","_props$translations2","onKeyDown","key","_itemsRef$current$","focus","autoComplete","as","buttonLabel","getSvgIcon","InterfaceIcon","Search","tabIndex","map","suggestion","i","el","_result$data","onKeyPress","stopPropagation","_result$data2","maxIndex","_itemsRef$current$nex","_itemsRef$current$pre","nextIndex","prevIndex"],"sourceRoot":""}