{"version":3,"file":"ServiceAccordion-Chunk-48052159916ca91d7097.js","mappings":"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","sources":["webpack://react-app/./node_modules/.pnpm/motion@12.6.3_react-dom@19.1.0_react@19.1.0/node_modules/motion/dist/es/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","webpack://react-app/./node_modules/.pnpm/motion@12.6.3_react-dom@19.1.0_react@19.1.0/node_modules/motion/dist/es/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://react-app/./node_modules/.pnpm/motion@12.6.3_react-dom@19.1.0_react@19.1.0/node_modules/motion/dist/es/framer-motion/dist/es/components/AnimatePresence/utils.mjs","webpack://react-app/./node_modules/.pnpm/motion@12.6.3_react-dom@19.1.0_react@19.1.0/node_modules/motion/dist/es/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://react-app/./node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","webpack://react-app/./node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","webpack://react-app/./components/Shared/src/utility/hooks/useDevicePixelRatio.ts","webpack://react-app/./components/Shared/src/components/atoms/Image/Image.tsx","webpack://react-app/./components/Shared/src/utility/config/animations.ts","webpack://react-app/./components/Shared/src/components/atoms/Text/Text.tsx","webpack://react-app/./node_modules/.pnpm/motion@12.6.3_react-dom@19.1.0_react@19.1.0/node_modules/motion/dist/es/framer-motion/dist/es/render/dom/viewport/index.mjs","webpack://react-app/./node_modules/.pnpm/motion@12.6.3_react-dom@19.1.0_react@19.1.0/node_modules/motion/dist/es/framer-motion/dist/es/utils/use-in-view.mjs","webpack://react-app/./components/Shared/src/models/enums/SiteEnum.ts","webpack://react-app/./components/Shared/src/components/atoms/AnimateInView/AnimateInView.tsx","webpack://react-app/./components/Shared/tailwind.config.js","webpack://react-app/./components/Shared/src/utility/hooks/useMediaQuery.ts","webpack://react-app/./components/Shared/src/utility/hooks/useBreakpoint.ts","webpack://react-app/./components/Shared/src/components/atoms/Cta/Cta.tsx","webpack://react-app/./components/Shared/src/utility/format/parseNumberInString.ts","webpack://react-app/./components/Shared/src/utility/config/breakpoints.ts","webpack://react-app/./components/Shared/src/models/enums/BreakpointEnum.ts","webpack://react-app/./components/Shared/src/utility/hooks/useIsTouchDevice.ts","webpack://react-app/./components/Shared/src/components/organisms/ServiceAccordion/ServiceAccordion.tsx","webpack://react-app/./components/organisms/ServiceAccordion/ServiceAccordionWrapper.tsx"],"sourcesContent":["\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useRef, useContext, useInsertionEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const parent = element.offsetParent;\n const parentWidth = parent instanceof HTMLElement ? parent.offsetWidth || 0 : 0;\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n size.right = parentWidth - size.width - size.left;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent, anchorX }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n });\n const { nonce } = useContext(MotionConfigContext);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left, right } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n const x = anchorX === \"left\" ? `left: ${left}` : `right: ${right}`;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce)\n style.nonce = nonce;\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n ${x}px !important;\n top: ${top}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: React.cloneElement(children, { ref }) }));\n}\n\nexport { PopChild };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useCallback, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const memoizedOnExitComplete = useCallback((childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n }, [presenceChildren, onExitComplete]);\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: memoizedOnExitComplete,\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n }), \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout\n ? [Math.random(), memoizedOnExitComplete]\n : [isPresent, memoizedOnExitComplete]);\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = (jsx(PopChild, { isPresent: isPresent, anchorX: anchorX, children: children }));\n }\n return (jsx(PresenceContext.Provider, { value: context, children: children }));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { Children, isValidElement } from 'react';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n\nexport { getChildKey, onlyElements };\n","\"use client\";\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { useMemo, useRef, useState, useContext } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { usePresence } from './use-presence.mjs';\nimport { onlyElements, getChildKey } from './utils.mjs';\n\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, anchorX = \"left\", }) => {\n const [isParentPresent, safeToRemove] = usePresence(propagate);\n /**\n * Filter any children that aren't ReactElements. We can only track components\n * between renders with a props.key.\n */\n const presentChildren = useMemo(() => onlyElements(children), [children]);\n /**\n * Track the keys of the currently rendered children. This is used to\n * determine which children are exiting.\n */\n const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey);\n /**\n * If `initial={false}` we only want to pass this to components in the first render.\n */\n const isInitialRender = useRef(true);\n /**\n * A ref containing the currently present children. When all exit animations\n * are complete, we use this to re-render the component with the latest children\n * *committed* rather than the latest children *rendered*.\n */\n const pendingPresentChildren = useRef(presentChildren);\n /**\n * Track which exiting children have finished animating out.\n */\n const exitComplete = useConstant(() => new Map());\n /**\n * Save children to render as React state. To ensure this component is concurrent-safe,\n * we check for exiting children via an effect.\n */\n const [diffedChildren, setDiffedChildren] = useState(presentChildren);\n const [renderedChildren, setRenderedChildren] = useState(presentChildren);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n pendingPresentChildren.current = presentChildren;\n /**\n * Update complete status of exiting children.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const key = getChildKey(renderedChildren[i]);\n if (!presentKeys.includes(key)) {\n if (exitComplete.get(key) !== true) {\n exitComplete.set(key, false);\n }\n }\n else {\n exitComplete.delete(key);\n }\n }\n }, [renderedChildren, presentKeys.length, presentKeys.join(\"-\")]);\n const exitingChildren = [];\n if (presentChildren !== diffedChildren) {\n let nextChildren = [...presentChildren];\n /**\n * Loop through all the currently rendered components and decide which\n * are exiting.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const child = renderedChildren[i];\n const key = getChildKey(child);\n if (!presentKeys.includes(key)) {\n nextChildren.splice(i, 0, child);\n exitingChildren.push(child);\n }\n }\n /**\n * If we're in \"wait\" mode, and we have exiting children, we want to\n * only render these until they've all exited.\n */\n if (mode === \"wait\" && exitingChildren.length) {\n nextChildren = exitingChildren;\n }\n setRenderedChildren(onlyElements(nextChildren));\n setDiffedChildren(presentChildren);\n /**\n * Early return to ensure once we've set state with the latest diffed\n * children, we can immediately re-render.\n */\n return null;\n }\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n renderedChildren.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n /**\n * If we've been provided a forceRender function by the LayoutGroupContext,\n * we can use it to force a re-render amongst all surrounding components once\n * all components have finished animating out.\n */\n const { forceRender } = useContext(LayoutGroupContext);\n return (jsx(Fragment, { children: renderedChildren.map((child) => {\n const key = getChildKey(child);\n const isPresent = propagate && !isParentPresent\n ? false\n : presentChildren === renderedChildren ||\n presentKeys.includes(key);\n const onExit = () => {\n if (exitComplete.has(key)) {\n exitComplete.set(key, true);\n }\n else {\n return;\n }\n let isEveryExitComplete = true;\n exitComplete.forEach((isExitComplete) => {\n if (!isExitComplete)\n isEveryExitComplete = false;\n });\n if (isEveryExitComplete) {\n forceRender?.();\n setRenderedChildren(pendingPresentChildren.current);\n propagate && safeToRemove?.();\n onExitComplete && onExitComplete();\n }\n };\n return (jsx(PresenceChild, { isPresent: isPresent, initial: !isInitialRender.current || initial\n ? undefined\n : false, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, onExitComplete: isPresent ? undefined : onExit, anchorX: anchorX, children: child }, key));\n }) }));\n};\n\nexport { AnimatePresence };\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;ttypeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import { useEffect, useState } from 'react';\n\nconst useDevicePixelRatio = (): number | undefined => {\n const [devicePixelRatio, setDevicePixelRatio] = useState(\n undefined\n );\n\n useEffect(() => {\n const updateDevicePixelRatio = () => {\n setDevicePixelRatio(Math.ceil(window.devicePixelRatio));\n };\n\n const mediaQuery = window.matchMedia(\n `(resolution: ${window.devicePixelRatio}dppx)`\n );\n mediaQuery.addEventListener('change', updateDevicePixelRatio);\n\n return () => {\n mediaQuery.removeEventListener('change', updateDevicePixelRatio);\n };\n }, []);\n\n return devicePixelRatio;\n};\n\nexport default useDevicePixelRatio;\n","import { IImage } from '@models/IImage';\nimport BreakpointEnum from '@models/enums/BreakpointEnum';\nimport breakpoints from '@utility/config/breakpoints';\nimport useBreakpoint from '@utility/hooks/useBreakpoint';\nimport useDevicePixelRatio from '@utility/hooks/useDevicePixelRatio';\nimport classNames from 'classnames';\nimport {\n PropsWithChildren,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\n\ninterface Props {\n readonly aspectRatio?: number;\n readonly classes?: string;\n readonly containerRef?: RefObject;\n readonly image: IImage;\n readonly imageClasses?: string;\n readonly lazyLoad?: boolean;\n readonly quality?: number;\n readonly sizes?: string;\n readonly height?: number;\n readonly width?: number;\n readonly onLoad?: () => void;\n}\n\nconst Image = ({\n aspectRatio, // width / height e.g. 0.5, 2 etc.\n children,\n classes,\n containerRef,\n image,\n imageClasses,\n lazyLoad = true,\n quality = 70,\n sizes = '',\n height,\n width,\n onLoad,\n}: PropsWithChildren) => {\n const devicePixelRatio = useDevicePixelRatio() ?? 1;\n const breakpoint = useBreakpoint() ?? BreakpointEnum.XLarge;\n const imgRef = useRef(null);\n\n const {\n url,\n altText,\n originalHeight,\n originalWidth,\n imageFocalPoint,\n srcSet: source,\n } = image ?? {};\n const fileExtension = url?.substring(url?.lastIndexOf('.') + 1);\n const hasParams = url?.includes('&'); // For images not coming from Opti\n const containerWidth = containerRef?.current?.clientWidth;\n\n const breakpointWidths = [\n 375 * devicePixelRatio,\n 752 * devicePixelRatio,\n 1024 * devicePixelRatio,\n 1408 * devicePixelRatio,\n 1600 * devicePixelRatio,\n ];\n\n const calculatedAspectRatio = useMemo(() => {\n if (aspectRatio) return aspectRatio;\n\n if (originalWidth && originalHeight) return originalWidth / originalHeight;\n }, [aspectRatio, originalWidth, originalHeight]);\n\n const generateUrlWithExtensions = useCallback(\n (width?: number) => {\n const qParam = quality ? `&quality=${quality}` : '';\n const fpParam = imageFocalPoint\n ? `&rxy=${imageFocalPoint.replace('|', ',')}`\n : '';\n\n if (!width) {\n return `${url}?format=webp$${fpParam}${qParam}`;\n }\n\n const wParam = `&width=${width}`;\n const h = aspectRatio ? width / aspectRatio : height;\n const hParam = h ? `&height=${h}` : '';\n\n return `${url}?format=webp${wParam}${hParam}${fpParam}${qParam}`;\n },\n [url, quality, calculatedAspectRatio, imageFocalPoint]\n );\n\n const srcSet = useMemo(() => {\n return source\n ? `${url} ${breakpointWidths[1]}w, ${source} ${breakpointWidths[2]}w`\n : breakpointWidths\n .map(\n (bpWidth, i) =>\n `${generateUrlWithExtensions(\n i < breakpointWidths.length - 1 ? bpWidth : 1920\n )} ${bpWidth}w`\n )\n .join(', ');\n }, [source, breakpointWidths, generateUrlWithExtensions]);\n\n useEffect(() => {\n // Fallback - sometimes onLoad does not trigger if the image is cached\n if (imgRef?.current?.complete && onLoad) onLoad();\n }, [imgRef]);\n\n if (!url || devicePixelRatio == null) return null;\n\n if (fileExtension === 'svg' || isValidBase64ImageSource(url)) {\n return (\n \n );\n }\n\n return (\n <>\n \n {!width && !containerWidth && !hasParams && (\n \n )}\n \n {children}\n \n \n );\n};\n\nconst isValidBase64ImageSource = (imageSrc: string) => {\n const regex = /^data:image\\/(png|jpg|jpeg|gif);base64,[A-Za-z0-9+/]+={0,2}$/;\n return regex.test(imageSrc);\n};\n\nexport default Image;\n","export const slideTransition = {\n duration: 0.8,\n ease: [0.74, 0, 0.19, 1.02],\n};\n\nexport const fadeTransition = {\n delay: 0.15,\n duration: 0.3,\n ease: 'easeIn',\n};\n\nexport const fadeInUp = {\n hidden: {\n opacity: 0,\n y: 50,\n transition: {\n duration: 1,\n ease: [0.22, 1, 0.36, 1],\n },\n },\n visible: {\n opacity: 1,\n y: 0,\n transition: {\n duration: 1,\n ease: [0.22, 1, 0.36, 1],\n type: 'spring',\n stiffness: 50,\n damping: 14,\n },\n },\n};\n\nexport const fadeInUpSlow = {\n hidden: {\n opacity: 0,\n y: 50,\n transition: {\n duration: 1,\n ease: [0.4, 0, 0.2, 1],\n },\n },\n visible: {\n opacity: 1,\n y: 0,\n transition: {\n duration: 1,\n ease: [0.4, 0, 0.2, 1],\n type: 'spring',\n stiffness: 50,\n damping: 14,\n },\n },\n};\n\nexport const fadeIn = {\n hidden: {\n opacity: 0,\n transition: {\n duration: 0.5,\n ease: 'easeInOut',\n },\n },\n visible: {\n opacity: 1,\n transition: {\n duration: 0.5,\n ease: 'easeInOut',\n },\n },\n};\n","import classNames from 'classnames';\n\nexport type TextVariant = keyof typeof variantClasses;\n\ninterface ExplicitProps {\n variant: TextVariant;\n className?: string;\n children?: string | string[] | TrustedHTML;\n}\n\n// This allows Text Component props to match the props of the element defined by 'as'\ntype PropsWithAs =\n Partial<\n ExplicitProps & {\n as: TElementType;\n }\n >;\n\ntype TextProps =\n PropsWithAs &\n Omit, keyof PropsWithAs>;\n\nconst __DEFAULT_ELEMENT__ = 'p';\n\nconst variantClasses = {\n 'hero-headline-large':\n 'tw-font-serif tw-text-4xl md:tw-text-7xl xl:tw-text-9xl',\n 'hero-headline': 'tw-font-serif tw-text-4xl md:tw-text-7xl xl:tw-text-8xl',\n headline: 'tw-font-serif tw-text-3xl xl:tw-text-5xl',\n 'sub-headline': 'tw-font-sans tw-text-2xl', // alt name - heading-24\n // New Design System Variants\n 'ds-sub-headline': 'tw-font-serif tw-text-4xl md:tw-text-5xl xl:tw-text-7xl',\n 'ds-headline-2': 'tw-text-3xl md:tw-text-4xl xl:tw-text-5xl tw-font-serif',\n 'ds-headline-3': 'tw-text-xl lg:tw-text-2xl tw-font-sans tw-font-light',\n 'ds-headline-4': 'tw-font-sans tw-text-lg lg:tw-text-xl',\n 'ds-quote': 'tw-font-serif tw-text-2xl lg:tw-text-3xl',\n 'ds-paragraph': 'tw-font-sans tw-text-sm lg:tw-text-base',\n body: 'tw-font-sans tw-text-base', // alt name - body-16\n 'body-small': 'tw-font-sans tw-text-sm', // alt name - body-14\n // secondary / non-responsive variants\n 'heading-56': 'tw-font-serif tw-text-8xl',\n 'heading-48': 'tw-font-serif tw-text-7xl',\n 'heading-40': 'tw-font-serif tw-text-6xl',\n 'heading-36': 'tw-font-serif tw-text-5xl',\n 'heading-32': 'tw-font-serif tw-text-4xl',\n 'heading-28': 'tw-font-serif tw-text-3xl',\n 'heading-24-light': 'tw-font-sans tw-text-2xl tw-font-light',\n 'heading-21': 'tw-font-sans tw-text-xl',\n 'heading-21-light': 'tw-font-sans tw-text-xl tw-font-light',\n 'body-18': 'tw-font-sans tw-text-lg',\n 'body-18-semibold': 'tw-font-sans tw-text-lg tw-font-semibold',\n 'body-16-semibold': 'tw-font-sans tw-font-semibold',\n 'body-14-semibold': 'tw-font-sans tw-text-sm tw-font-semibold',\n 'mono-14': 'tw-font-mono tw-text-sm',\n 'mono-12': 'tw-font-mono tw-text-xs',\n 'mono-14-semibold': 'tw-font-mono tw-text-sm tw-font-semibold',\n 'mono-12-semibold': 'tw-font-mono tw-text-xs tw-font-semibold',\n 'label-12': 'tw-font-sans tw-text-xs',\n 'label-12-semibold': 'tw-font-sans tw-text-xs tw-font-semibold',\n};\n\nconst defaultTags: Record<\n string,\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'code' | 'label'\n> = {\n 'hero-headline-large': 'h1',\n 'hero-headline': 'h1',\n headline: 'h2',\n 'sub-headline': 'h3',\n body: 'p',\n 'heading-56': 'h1',\n 'heading-48': 'h2',\n 'heading-40': 'h3',\n 'heading-36': 'h4',\n 'heading-32': 'h5',\n 'heading-28': 'h6',\n 'heading-24-light': 'h6',\n 'heading-21': 'h4',\n 'body-small': 'p',\n 'body-18': 'p',\n 'body-18-semibold': 'p',\n 'body-16-semibold': 'p',\n 'body-14-semibold': 'p',\n 'mono-14': 'code',\n 'mono-12': 'code',\n 'mono-14-semibold': 'code',\n 'mono-12-semibold': 'code',\n 'label-12': 'label',\n 'label-12-semibold': 'label',\n};\n\nfunction Text<\n TElementType extends React.ElementType = typeof __DEFAULT_ELEMENT__\n>({\n as,\n className,\n variant = 'body',\n children,\n ...props\n}: TextProps) {\n const combinedClassName = classNames(variantClasses[variant], className);\n const Tag = as ?? defaultTags[variant] ?? 'span';\n\n return (\n \n {children}\n \n );\n}\n\nexport default Text;\n","import '../../../../../../motion-utils/dist/es/errors.mjs';\nimport { resolveElements } from '../../../../../../motion-dom/dist/es/utils/resolve-elements.mjs';\n\nconst thresholds = {\n some: 0,\n all: 1,\n};\nfunction inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = \"some\" } = {}) {\n const elements = resolveElements(elementOrSelector);\n const activeIntersections = new WeakMap();\n const onIntersectionChange = (entries) => {\n entries.forEach((entry) => {\n const onEnd = activeIntersections.get(entry.target);\n /**\n * If there's no change to the intersection, we don't need to\n * do anything here.\n */\n if (entry.isIntersecting === Boolean(onEnd))\n return;\n if (entry.isIntersecting) {\n const newOnEnd = onStart(entry.target, entry);\n if (typeof newOnEnd === \"function\") {\n activeIntersections.set(entry.target, newOnEnd);\n }\n else {\n observer.unobserve(entry.target);\n }\n }\n else if (typeof onEnd === \"function\") {\n onEnd(entry);\n activeIntersections.delete(entry.target);\n }\n });\n };\n const observer = new IntersectionObserver(onIntersectionChange, {\n root,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholds[amount],\n });\n elements.forEach((element) => observer.observe(element));\n return () => observer.disconnect();\n}\n\nexport { inView };\n","import { useState, useEffect } from 'react';\nimport { inView } from '../render/dom/viewport/index.mjs';\n\nfunction useInView(ref, { root, margin, amount, once = false, initial = false, } = {}) {\n const [isInView, setInView] = useState(initial);\n useEffect(() => {\n if (!ref.current || (once && isInView))\n return;\n const onEnter = () => {\n setInView(true);\n return once ? undefined : () => setInView(false);\n };\n const options = {\n root: (root && root.current) || undefined,\n margin,\n amount,\n };\n return inView(ref.current, onEnter, options);\n }, [root, ref, margin, once, amount]);\n return isInView;\n}\n\nexport { useInView };\n","const enum SiteEnum {\n B2B = 'b2b',\n Deco = 'deco',\n}\n\nexport default SiteEnum;\n","import useMediaQuery from '@utility/hooks/useMediaQuery';\nimport { motion, useInView } from 'motion/react';\nimport { PropsWithChildren, useRef } from 'react';\n\ninterface Props extends PropsWithChildren {\n readonly className?: string;\n readonly mobileOffset?: number;\n readonly desktopOffset?: number;\n readonly element?: 'section' | 'div';\n}\n\nconst AnimateInView = ({\n children,\n className,\n element = 'section',\n mobileOffset = 0.2,\n desktopOffset = 0.5,\n}: Props) => {\n const ref = useRef(null);\n const isMobile = useMediaQuery(752);\n const inView = useInView(ref, {\n amount: isMobile ? mobileOffset : desktopOffset,\n once: true,\n });\n\n const containerVariants = {\n hidden: { opacity: 0 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: 0.1,\n duration: isMobile ? 0.3 : 0.5,\n type: 'spring',\n stiffness: 50,\n damping: 14,\n },\n },\n };\n\n const MotionElement = motion[element];\n\n return (\n \n {children}\n \n );\n};\n\nexport default AnimateInView;\n","/* eslint-env node */\n/* eslint-disable @typescript-eslint/no-var-requires */\n\n/** @type {import('tailwindcss').Config} */\n\nconst screens = {\n sm: '375px',\n md: '752px',\n lg: '1024px',\n xl: '1408px',\n xxl: '1600px',\n};\n\nmodule.exports = {\n darkMode: 'selector',\n prefix: 'tw-',\n content: [\n './.storybook/**/*.{js,jsx,mdx,ts,tsx}',\n './src/components/**/*.{js,jsx,mdx,ts,tsx}',\n ],\n theme: {\n screens,\n listStyleType: {\n none: 'none',\n disc: 'disc',\n decimal: 'decimal',\n square: 'square',\n },\n container: {\n screens,\n center: true,\n padding: {\n DEFAULT: '16px',\n sm: '16px',\n md: '32px',\n lg: '48px',\n xl: '48px',\n '2xl': '48px',\n },\n },\n fontFamily: {\n sans: '\"Noto Sans\", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"',\n serif:\n '\"Playfair Display\",ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif',\n mono: '\"Noto Sans Mono\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\n icon: 'icomoon',\n },\n fontSize: {\n xs: ['0.75rem', '1rem'],\n sm: ['0.875rem', '1.25rem'],\n base: ['1rem', '1.5rem'],\n lg: ['1.125rem', '1.625rem'],\n xl: ['1.3125rem', '1.75rem'],\n '2xl': ['1.5rem', '2rem'],\n '3xl': ['1.75rem', '2.25rem'],\n '4xl': ['2rem', '2.5rem'],\n '5xl': ['2.25rem', '2.75rem'],\n '6xl': ['2.5rem', '3rem'],\n '7xl': ['3rem', '3.5rem'],\n '8xl': ['3.5rem', '4rem'],\n },\n lineHeight: {\n xs: '1rem',\n sm: '1.25rem',\n base: '1.5rem',\n lg: '1.625rem',\n xl: '1.75rem',\n '2xl': '2rem',\n '3xl': '2.25rem',\n '4xl': '2.5rem',\n '5xl': '2.75rem',\n '6xl': '3rem',\n '7xl': '3.5rem',\n '8xl': '4rem',\n },\n fontWeight: {\n light: '300',\n normal: '400',\n semibold: '600',\n },\n colors: {\n blue: {\n DEFAULT: '#031E45',\n },\n yellow: {\n DEFAULT: '#F0AB00',\n hover: '#F1B32D',\n active: '#EDBE46',\n disabled: '#FBE6B3',\n },\n red: {\n DEFAULT: '#D52B1E',\n hover: '#E11E0F',\n active: '#EC0E00',\n disabled: '#F2BFBC',\n },\n green: {\n DEFAULT: '#329E36',\n },\n grey: {\n 100: '#202020',\n 90: '#333333',\n 80: '#4D4D4D',\n 70: '#666666',\n 60: '#808080',\n 50: '#999999',\n 40: '#B3B3B3',\n 30: '#CCCCCC',\n 20: '#E6E6E6',\n 10: '#F7F7F7',\n },\n white: {\n DEFAULT: '#FFFFFF',\n },\n black: {\n DEFAULT: '#202020',\n },\n transparent: 'transparent',\n background: {\n amber: '#AF8A76', // light\n amberDark: '#806A62', // dark\n beige: '#E9D8B8', // light\n beigeDark: '#A98259', // light\n brownGray: '#79736D', // dark\n brownGrey: '#79736D', // dark\n coral: '#DBC4B7', // light\n coralDark: '#985F56', // dark\n darkGrey: '#E6E6E6', // light\n gBSGreen: '#276D00', // dark\n gBSHarpGreen: '#E5EFEA', // light\n gBSLightGreen: '#478326', // dark\n gBSPalmGreen: '#012317', // dark\n gBSSummerGreen: '#C4D0B0', // light\n graphite: '#70666C', //dark\n jotunBlue: '#031E45', // dark\n jotunYellow: '#F0AB00', // light\n lightBlue: '#E6E9F0', // light\n lightGreen: '#E6F0EB', // light\n lightgrey: '#F7F7F7', // light\n lightGrey: '#F7F7F7', // light\n oceanDark: '#19262C', // dark\n olive: '#C9D0C5', // light\n oliveDark: '#646556', // dark\n pearl: '#F3F4ED', // light\n sand: '#E7DFCD', // light\n sandDark: '#CEC1B1', // light\n slate: '#A5BCC3', // light\n slateDark: '#4E616C', // dark\n white: '#FFFFFF', // light\n },\n },\n extend: {\n fill: {\n current: 'currentColor',\n },\n stroke: {\n current: 'currentColor',\n },\n transitionTimingFunction: {\n 'in-out-quart': 'cubic-bezier(0.76, 0, 0.24, 1)',\n },\n borderRadius: {\n DEFAULT: '4px',\n md: '10px',\n },\n borderWidth: {\n 1: '1px',\n },\n spacing: {\n '4xs': '0.125rem', // 2px\n '3xs': '0.25rem', // 4px\n xxs: '0.5rem', // 8px\n xs: '1rem', // 16px\n sm: '1.5rem', // 24px\n md: '2rem', // 32px\n lg: '2.5rem', // 40px\n xl: '3rem', // 48px\n '2xl': '4rem', // 64px\n '3xl': '5rem', // 80px\n '4xl': '6rem', // 96px\n '5xl': '7.5rem', // 120px\n buttonY: '0.875rem', // 14px\n },\n zIndex: {\n max: '999',\n 100: '100',\n 90: '90',\n 80: '80',\n 70: '70',\n 60: '60',\n },\n },\n },\n future: { hoverOnlyWhenSupported: true },\n plugins: [require('@tailwindcss/container-queries')],\n};\n","import { useCallback, useEffect, useState } from 'react';\n\nconst useMediaQuery = (minWidth: number) => {\n // Setting a default state, leaving it undefined is essentially falsey anyway\n const [isSmallerThan, setIsSmallerThan] = useState(false);\n\n const handler = useCallback(() => {\n const isDesiredWidth = window.innerWidth < minWidth;\n setIsSmallerThan(isDesiredWidth);\n }, [minWidth]);\n\n useEffect(() => {\n window.addEventListener('resize', handler);\n handler();\n\n return () => {\n window.removeEventListener('resize', handler);\n };\n }, [handler]);\n\n return isSmallerThan;\n};\n\nexport default useMediaQuery;\n","import BreakpointEnum from '@models/enums/BreakpointEnum';\nimport Breakpoint from '@models/helpers/Breakpoint';\nimport breakpoints from '@utility/config/breakpoints';\nimport { useCallback, useEffect, useState } from 'react';\n\nconst getCurrentBreakpoint = (): Breakpoint => {\n const width = window.innerWidth;\n let device;\n\n if (width < breakpoints.md) {\n device = BreakpointEnum.Small;\n } else if (width < breakpoints.lg) {\n device = BreakpointEnum.Medium;\n } else if (width < breakpoints.xl) {\n device = BreakpointEnum.Large;\n } else if (width < breakpoints.xxl) {\n device = BreakpointEnum.XLarge;\n } else device = BreakpointEnum.Max;\n\n return device;\n};\n\nconst useBreakpoint = (): Breakpoint | undefined => {\n const [screen, setScreen] = useState();\n\n const resizeHandler = useCallback(() => {\n setScreen(getCurrentBreakpoint());\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', resizeHandler);\n setScreen(getCurrentBreakpoint());\n\n return () => {\n window.removeEventListener('resize', resizeHandler);\n };\n }, [resizeHandler]);\n\n return screen;\n};\n\nexport default useBreakpoint;\n","import Icon from '@atoms/Icon/Icon';\nimport { ILink } from '@models/ILink';\nimport SiteEnum from '@models/enums/SiteEnum';\nimport { cva } from 'class-variance-authority';\nimport { ComponentPropsWithoutRef } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\ntype styles = 'yellow' | 'grey';\n\ntype Props = ComponentPropsWithoutRef<'a'> &\n ILink & {\n readonly variant?: styles;\n readonly site?: SiteEnum;\n readonly enableDarkMode?: boolean;\n };\n\nconst baseClasses =\n 'tw-inline-block tw-rounded tw-px-3xs tw-py-3xs tw-text-center tw-text-xs rtl:tw-rotate-180';\n\nexport const variants = cva(baseClasses, {\n variants: {\n style: {\n yellow:\n 'tw-bg-yellow group-hover:tw-bg-yellow-hover group-active:tw-bg-yellow-active tw-text-black',\n grey: 'tw-bg-grey-80 dark:tw-bg-white dark:group-hover:tw-bg-grey-10 group-hover:tw-bg-grey-90 group-active:tw-bg-grey-100 dark:group-active:tw-bg-grey-20 tw-fill-white dark:tw-fill-black',\n },\n },\n defaultVariants: {\n style: 'yellow',\n },\n});\n\nconst Cta = ({\n site,\n className,\n linkIcon,\n target,\n text,\n url,\n variant, // variant prop can be passed in to override the site specific styles\n enableDarkMode = true,\n ...props\n}: Props) => {\n const siteStyles = {\n [SiteEnum.B2B]: 'yellow',\n [SiteEnum.Deco]: 'grey',\n };\n\n // style is overriden if a variant is passed in, but otherwise takes on the site style\n const style = variant ?? (site && (siteStyles[site] as styles)) ?? undefined;\n\n const classes = twMerge(variants({ style: style }), className);\n\n if (!text || !url) return;\n\n const iconName =\n linkIcon ?? (target === '_blank' ? 'external-link' : 'arrow-right');\n return (\n \n \n\n {text}\n \n );\n};\n\nexport default Cta;\n","// Will parse a pixel string to a number e.g. '762px' => 762\n\nconst parseNumberInString = (pixelValue: string) => {\n const match = pixelValue.match(/\\d+/);\n\n if (match) {\n return parseInt(match[0], 10);\n }\n\n return 0;\n};\n\nexport default parseNumberInString;\n","import BreakpointEnum from '@models/enums/BreakpointEnum';\nimport Breakpoint from '@models/helpers/Breakpoint';\nimport parseNumberInString from '@utility/format/parseNumberInString';\nimport resolveConfig from 'tailwindcss/resolveConfig';\nimport tailwindConfig from '../../../tailwind.config';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst fullConfig = resolveConfig(tailwindConfig as any);\n\nconst { sm, md, lg, xl, xxl } = fullConfig.theme.screens;\n\nconst breakpoints = {\n sm: parseNumberInString(sm),\n md: parseNumberInString(md),\n lg: parseNumberInString(lg),\n xl: parseNumberInString(xl),\n xxl: parseNumberInString(xxl),\n};\n\nexport default breakpoints;\n\nconst breakpointArray: Breakpoint[] = Object.values(BreakpointEnum);\n\nexport const breakpointsBelow = (breakpoint: Breakpoint) => {\n const upperIndex = breakpointArray.indexOf(breakpoint);\n return breakpointArray.slice(0, upperIndex);\n};\n\nexport const breakpointsAbove = (breakpoint: Breakpoint) => {\n const lowerIndex = breakpointArray.indexOf(breakpoint) + 1;\n return breakpointArray.slice(lowerIndex);\n};\n","enum BreakpointEnum {\n Small = 'sm',\n Medium = 'md',\n Large = 'lg',\n XLarge = 'xl',\n Max = 'xxl',\n}\n\nexport default BreakpointEnum;\n","import { useEffect, useState } from 'react';\n\nconst useIsTouchDevice = () => {\n const [isTouchDevice, setIsTouchDevice] = useState(false);\n\n const checkIfTouchDevice = () => {\n const hasTouchPoints =\n navigator.maxTouchPoints > 0 || 'ontouchstart' in window;\n\n // Helps with detecting whether a mouse is used\n const isFinePointer = window.matchMedia('(pointer: fine)').matches;\n\n setIsTouchDevice(hasTouchPoints && !isFinePointer);\n };\n\n useEffect(() => {\n checkIfTouchDevice();\n\n window.addEventListener('resize', checkIfTouchDevice);\n window.addEventListener('pointerdown', checkIfTouchDevice);\n\n return () => {\n window.removeEventListener('resize', checkIfTouchDevice);\n window.removeEventListener('pointerdown', checkIfTouchDevice);\n };\n }, []);\n\n return isTouchDevice;\n};\n\nexport default useIsTouchDevice;\n","import AnimateInView from '@atoms/AnimateInView/AnimateInView';\nimport Cta from '@atoms/Cta/Cta';\nimport Icon from '@atoms/Icon/Icon';\nimport Image from '@atoms/Image/Image';\nimport Text from '@atoms/Text/Text';\nimport { IImage } from '@models/IImage';\nimport { ILink } from '@models/ILink';\nimport SiteEnum from '@models/enums/SiteEnum';\nimport { fadeInUp } from '@utility/config/animations';\nimport useIsTouchDevice from '@utility/hooks/useIsTouchDevice';\nimport useMediaQuery from '@utility/hooks/useMediaQuery';\nimport classNames from 'classnames';\nimport { AnimatePresence, Variants, motion } from 'motion/react';\nimport { useState, useTransition } from 'react';\n\ntype IServiceLink = {\n readonly heading: string;\n readonly subText: string;\n readonly image: IImage;\n readonly cta: ILink;\n};\n\nexport interface IServiceAccordion {\n readonly site: SiteEnum;\n readonly heading: string;\n readonly links: IServiceLink[];\n}\n\nconst ServiceAccordion = ({ heading, links, site }: IServiceAccordion) => {\n const initialAccordionState = new Array(links.length).fill(false);\n const [accordionState, setAccordionState] = useState>([\n true,\n ...initialAccordionState.slice(1),\n ]);\n const [activeImage, setActiveImage] = useState(\n links[0]?.image || null\n );\n const [previousImage, setPreviousImage] = useState(null);\n const isMobile = useMediaQuery(1408);\n const isTouch = useIsTouchDevice();\n\n const [_, startTransition] = useTransition();\n\n const handleClick = (index: number, image: IImage) => {\n let newState = isMobile ? accordionState : initialAccordionState;\n newState[index] = !newState[index];\n\n startTransition(() => {\n setAccordionState(newState);\n setPreviousImage(activeImage);\n setActiveImage(image);\n });\n };\n\n const containerVariants: Variants = {\n enter: {\n height: 'auto',\n transition: {\n when: 'beforeChildren',\n staggerChildren: 0.1,\n duration: 0.5,\n ease: 'easeInOut',\n },\n },\n exit: {\n height: 0,\n transition: {\n duration: 0.5,\n ease: 'easeInOut',\n },\n },\n };\n\n const childVariants: Variants = {\n enter: {\n y: 0,\n opacity: 1,\n transition: {\n delay: 0.1,\n duration: 0.5,\n ease: 'easeInOut',\n },\n },\n exit: {\n y: 20,\n opacity: 0,\n transition: {\n duration: 0.3,\n ease: 'easeInOut',\n },\n },\n };\n\n const imageVariants: Variants = {\n enter: {\n opacity: 1,\n transition: {\n duration: 0.3,\n ease: 'easeInOut',\n },\n },\n exit: {\n opacity: 0,\n transition: {\n duration: 0.3,\n ease: 'easeInOut',\n },\n },\n };\n\n const AccordionTriggerTag = isMobile || isTouch ? 'button' : 'a';\n\n return (\n \n \n \n {heading}\n \n
\n
\n {links.map(({ heading, subText, cta, image }, index) => (\n \n handleClick(index, image)\n : undefined\n }\n onClick={\n isMobile || isTouch\n ? () => handleClick(index, image)\n : undefined\n }\n role={isMobile || isTouch ? 'button' : 'link'}\n target={!isMobile && !isTouch ? cta.target : undefined}\n >\n {heading}\n \n \n \n
\n \n
\n \n\n \n {accordionState[index] && (\n \n \n
\n \n {subText}\n \n {isMobile || isTouch ? (\n \n ) : null}\n
\n \n \n \n )}\n
\n
\n ))}\n
\n \n \n \n
\n \n {previousImage && (\n \n \n \n )}\n \n \n {activeImage && (\n \n \n \n )}\n \n
\n \n
\n );\n};\n\nexport default ServiceAccordion;\n","import SiteEnum from '@models/enums/SiteEnum';\nimport SharedServiceAccordion, {\n IServiceAccordion,\n} from '@organisms/ServiceAccordion/ServiceAccordion';\n\nconst HeadlineAndTextBlock = (props: IServiceAccordion) => (\n
\n \n
\n);\n\nexport default HeadlineAndTextBlock;\n"],"names":["PopChildMeasure","getSnapshotBeforeUpdate","prevProps","element","this","props","childRef","current","isPresent","parent","offsetParent","parentWidth","HTMLElement","offsetWidth","size","sizeRef","height","offsetHeight","width","top","offsetTop","left","offsetLeft","right","componentDidUpdate","render","children","PopChild","anchorX","id","useId","ref","useRef","nonce","useContext","MotionConfigContext","useInsertionEffect","x","dataset","motionPopId","style","document","createElement","head","appendChild","sheet","insertRule","removeChild","jsx","PresenceChild","initial","onExitComplete","custom","presenceAffectsLayout","mode","presenceChildren","newChildrenMap","memoizedOnExitComplete","useCallback","childId","set","isComplete","values","context","useMemo","register","delete","Math","random","forEach","_","key","PresenceContext","Provider","value","Map","getChildKey","child","onlyElements","filtered","Children","isValidElement","push","AnimatePresence","propagate","isParentPresent","safeToRemove","presentChildren","presentKeys","map","isInitialRender","pendingPresentChildren","exitComplete","diffedChildren","setDiffedChildren","useState","renderedChildren","setRenderedChildren","i","length","includes","get","join","exitingChildren","nextChildren","splice","forceRender","LayoutGroupContext","L","Fragment","undefined","has","isEveryExitComplete","isExitComplete","r","e","t","f","n","Array","isArray","o","clsx","arguments","falsyToString","cx","cva","base","config","_config_compoundVariants","variants","class","className","defaultVariants","getVariantClassNames","Object","keys","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","entries","reduce","acc","param","getCompoundVariantClassNames","compoundVariants","cvClass","cvClassName","compoundVariantOptions","every","useDevicePixelRatio","devicePixelRatio","setDevicePixelRatio","useEffect","updateDevicePixelRatio","ceil","window","mediaQuery","matchMedia","addEventListener","removeEventListener","isValidBase64ImageSource","imageSrc","test","_ref","aspectRatio","classes","containerRef","image","imageClasses","lazyLoad","quality","sizes","onLoad","breakpoint","useBreakpoint","BreakpointEnum","XLarge","imgRef","url","altText","originalHeight","originalWidth","imageFocalPoint","srcSet","source","fileExtension","substring","lastIndexOf","hasParams","containerWidth","clientWidth","breakpointWidths","calculatedAspectRatio","generateUrlWithExtensions","qParam","fpParam","replace","h","bpWidth","complete","React","src","alt","draggable","classNames","type","loading","fetchPriority","breakpoints","slideTransition","duration","ease","fadeTransition","delay","fadeInUp","hidden","opacity","y","transition","visible","stiffness","damping","fadeInUpSlow","fadeIn","variantClasses","headline","body","defaultTags","as","combinedClassName","Tag","_extends","thresholds","some","all","useInView","root","margin","amount","once","isInView","setInView","options","elementOrSelector","onStart","rootMargin","elements","activeIntersections","WeakMap","observer","IntersectionObserver","entry","onEnd","target","isIntersecting","Boolean","newOnEnd","unobserve","threshold","observe","disconnect","inView","SiteEnum","mobileOffset","desktopOffset","isMobile","useMediaQuery","containerVariants","staggerChildren","MotionElement","motion","animate","screens","sm","md","lg","xl","xxl","module","exports","darkMode","prefix","content","theme","listStyleType","none","disc","decimal","square","container","center","padding","DEFAULT","fontFamily","sans","serif","mono","icon","fontSize","xs","lineHeight","fontWeight","light","normal","semibold","colors","blue","yellow","hover","active","disabled","red","green","grey","white","black","transparent","background","amber","amberDark","beige","beigeDark","brownGray","brownGrey","coral","coralDark","darkGrey","gBSGreen","gBSHarpGreen","gBSLightGreen","gBSPalmGreen","gBSSummerGreen","graphite","jotunBlue","jotunYellow","lightBlue","lightGreen","lightgrey","lightGrey","oceanDark","olive","oliveDark","pearl","sand","sandDark","slate","slateDark","extend","fill","stroke","transitionTimingFunction","borderRadius","borderWidth","spacing","xxs","buttonY","zIndex","max","future","hoverOnlyWhenSupported","plugins","minWidth","isSmallerThan","setIsSmallerThan","handler","isDesiredWidth","innerWidth","getCurrentBreakpoint","device","Small","Medium","Large","Max","screen","setScreen","resizeHandler","site","linkIcon","text","enableDarkMode","siteStyles","B2B","Deco","twMerge","iconName","href","Icon","name","pixelValue","match","parseInt","fullConfig","resolveConfig","tailwindConfig","parseNumberInString","breakpointArray","breakpointsBelow","upperIndex","indexOf","slice","breakpointsAbove","lowerIndex","useIsTouchDevice","isTouchDevice","setIsTouchDevice","checkIfTouchDevice","hasTouchPoints","navigator","maxTouchPoints","isFinePointer","matches","heading","links","initialAccordionState","accordionState","setAccordionState","activeImage","setActiveImage","previousImage","setPreviousImage","isTouch","startTransition","useTransition","handleClick","index","newState","enter","when","exit","childVariants","imageVariants","AccordionTriggerTag","AnimateInView","div","Text","_ref2","subText","cta","onMouseEnter","onClick","role","rotate","layout","Cta","Image","SharedServiceAccordion"],"sourceRoot":""}