{"version":3,"file":"9917-029eca60a91a08f9e423.js","mappings":"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","sources":["webpack://eploy/./src/hoc/withMotion.tsx","webpack://eploy/./src/hooks/useIntersectionObserver.ts","webpack://eploy/./src/hooks/useInView.ts","webpack://eploy/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.styles.ts","webpack://eploy/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.tsx","webpack://eploy/./src/stories/Widgets/LogoList/LogoList.styles.ts","webpack://eploy/./src/stories/Widgets/LogoList/LogoList.tsx","webpack://eploy/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://eploy/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://eploy/./node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack://eploy/./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs"],"sourcesContent":["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 { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","import 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","import { verticalFadeIn } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { baseGrid } from '@helpers/grid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { h2, h3, paragraphLarge } from '@helpers/typography';\r\nimport SectionWrapper from '@stories/Components/Misc/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Misc/SectionWrapper/SectionWrapper.styles';\r\nimport { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nconst MotionWrapper = styled(m.div).attrs((props) => ({\r\n initial: 'hidden',\r\n animate: props['data-in-view'] ? 'visible' : 'hidden',\r\n transition: {\r\n staggerChildren: 0.1,\r\n },\r\n})) `\r\n display: contents;\r\n`;\r\nexport const logoSizes = css `\r\n --width: ${fluid(135, 173)};\r\n --height: ${fluid(84, 108)};\r\n`;\r\nconst Container = styled(SectionWrapper) `\r\n ${logoSizes};\r\n\r\n &[data-variant='blue'] {\r\n --titleHighlight: ${brand.secondary.ice};\r\n --textColour: ${brand.primary.white};\r\n\r\n background: linear-gradient(104.72deg, #3372aa 0%, #1e2f6d 100%);\r\n }\r\n\r\n &[data-variant='white'] {\r\n --textColour: ${brand.primary.black};\r\n }\r\n\r\n overflow: hidden;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n &[data-use-reduced-layout='false'] {\r\n ${SectionWrapperStyles.Inner} {\r\n padding-top: calc(var(--sectionSpacingBottom) * 0.66);\r\n padding-bottom: calc(var(--sectionSpacingBottom) * 0.75);\r\n }\r\n }\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n @media ${until(Device.TabletLarge)} {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n [data-use-reduced-layout='false'] & {\r\n ${baseGrid}\r\n align-items: center;\r\n min-height: calc(980px - (var(--sitePadding) * 2));\r\n }\r\n\r\n [data-use-reduced-layout='true'] & {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n }\r\n`;\r\nconst ContentSection = styled.div `\r\n display: flex;\r\n flex-direction: column;\r\n grid-column: 8 / -1;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n order: -1;\r\n margin-bottom: 35px;\r\n }\r\n`;\r\nconst Title = styled.h2 `\r\n ${h2};\r\n\r\n color: var(--textColour) !important;\r\n margin-bottom: 0 !important;\r\n line-height: 1.25 !important; // ensure that the text doesn't get cut off within highlight\r\n\r\n [data-use-reduced-layout='true'] & {\r\n ${h3};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n [data-use-reduced-layout='true'] & {\r\n text-align: center;\r\n }\r\n }\r\n\r\n span {\r\n background: var(--titleHighlight, currentColor);\r\n background-clip: text;\r\n color: transparent;\r\n display: inline;\r\n }\r\n`;\r\nconst Content = styled.div `\r\n ${paragraphLarge};\r\n\r\n color: var(--textColour);\r\n margin: ${fluid(16, 24)} 0 0;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n [data-use-reduced-layout='true'] & {\r\n text-align: center;\r\n }\r\n }\r\n`;\r\nconst CTAsContainer = styled.div `\r\n display: flex;\r\n gap: ${fluid(8, 24)};\r\n margin-top: ${fluid(32, 40)};\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n align-items: center;\r\n [data-use-reduced-layout='true'] & {\r\n justify-content: center;\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n flex-direction: column;\r\n width: max-content;\r\n max-width: 100%;\r\n }\r\n`;\r\nconst LogoGridWrapper = styled(m.div).attrs(() => ({\r\n variants: {\r\n visible: {\r\n transition: { staggerChildren: 0.025 },\r\n },\r\n },\r\n})) `\r\n grid-column: 1 / span 6;\r\n transform: rotate(-8deg);\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n transform: rotate(-8deg) translateX(-50px);\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n max-height: 320px;\r\n }\r\n`;\r\nconst LogoGridCompact = styled.div `\r\n --gap: ${fluid(10, 26)};\r\n\r\n order: 1;\r\n display: flex;\r\n gap: var(--gap);\r\n margin-top: ${fluid(11, 70)};\r\n left: 0;\r\n position: relative;\r\n animation: scroll calc(var(--count) * 1.15s) linear infinite;\r\n\r\n @keyframes scroll {\r\n 0% {\r\n transform: translateX(calc((var(--width) + var(--gap)) * (var(--count) * -1)));\r\n }\r\n\r\n 100% {\r\n transform: translateX(calc((var(--width) + var(--gap)) * (var(--count) * -2)));\r\n }\r\n }\r\n`;\r\nconst LogoGridInner = styled.div `\r\n --offset: calc(var(--gridColumnWidth) * 2 + var(--gutterWidth));\r\n\r\n width: calc(100% + var(--offset));\r\n position: relative;\r\n left: calc(-1 * (var(--offset) / 2));\r\n display: flex;\r\n flex-direction: column;\r\n gap: ${fluid(8, 15)};\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n left: calc(-1 * var(--offset));\r\n }\r\n`;\r\nconst LogoGridRow = styled.div `\r\n display: flex;\r\n gap: ${fluid(8, 15)};\r\n justify-content: center;\r\n`;\r\nconst Logo = styled(m.div).attrs(() => ({ variants: verticalFadeIn() })) `\r\n width: var(--width);\r\n min-width: var(--width);\r\n height: var(--height);\r\n min-height: var(--height);\r\n background-color: ${brand.primary.white};\r\n border-radius: ${fluid(25, 32)};\r\n padding: ${fluid(15, 20)};\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n overflow: hidden;\r\n`;\r\nconst LogoImage = styled(m.img).attrs((props) => ({\r\n initial: 'hidden',\r\n animate: props['data-loaded'] ? 'visible' : 'hidden',\r\n exit: 'hidden',\r\n variants: {\r\n hidden: {\r\n opacity: 0,\r\n },\r\n visible: {\r\n opacity: 1,\r\n },\r\n },\r\n})) `\r\n width: 100%;\r\n height: 100%;\r\n object-fit: scale-down;\r\n object-position: center center;\r\n max-height: 35px;\r\n`;\r\nexport const LogoListStyles = {\r\n Container,\r\n Inner,\r\n ContentSection,\r\n Title,\r\n Content,\r\n CTAsContainer,\r\n LogoGridWrapper,\r\n LogoGridInner,\r\n LogoGridRow,\r\n Logo,\r\n LogoImage,\r\n LogoGridCompact,\r\n MotionWrapper,\r\n};\r\n","import { rootMargin } from '@helpers/animate';\r\nimport { Icon } from '@helpers/icons';\r\nimport { highlightTitleWords } from '@helpers/utils';\r\nimport { withMotion } from '@hoc/withMotion';\r\nimport { useInView } from '@hooks/useInView';\r\nimport { LinkButton } from '@stories/Components/Buttons/Button/Button';\r\nimport { AnimatePresence } from 'framer-motion';\r\nimport React from 'react';\r\nimport { LogoListStyles as S } from './LogoList.styles';\r\nconst LogoItem = ({ logo }) => {\r\n const [imageLoaded, setImageLoaded] = React.useState(false);\r\n const imgRef = React.useRef(null);\r\n React.useEffect(() => {\r\n if (imgRef.current?.complete) {\r\n setImageLoaded(true);\r\n }\r\n }, [imgRef]);\r\n return (React.createElement(S.Logo, null,\r\n React.createElement(AnimatePresence, { exitBeforeEnter: true },\r\n React.createElement(S.LogoImage, { draggable: false, \"data-loaded\": imageLoaded, key: `LogoList_${logo.name}`, ref: imgRef, alt: logo.name, src: logo.image, onLoad: () => setImageLoaded(true), loading: \"lazy\" }))));\r\n};\r\nexport const LogoGrid = (props) => {\r\n const [splitLogos, setSplitLogos] = React.useState([]);\r\n React.useEffect(() => {\r\n if (props.useReducedLayout) {\r\n return;\r\n }\r\n const logoRows = [];\r\n const rowLimit = props.rowLimit ?? 6;\r\n let iterator = 0;\r\n let groupSize = rowLimit - 1;\r\n while (iterator < (props.logoLimit ?? 33)) {\r\n // Take a slice of the logos //\r\n const startPoint = iterator % props.logos.length;\r\n const endPoint = (iterator + groupSize) % props.logos.length;\r\n let slice = [];\r\n if (startPoint > endPoint) {\r\n slice = props.logos\r\n .slice(startPoint, props.logos.length)\r\n .concat(props.logos.slice(0, endPoint));\r\n }\r\n else {\r\n slice = props.logos.slice(iterator % props.logos.length, (iterator + groupSize) % props.logos.length);\r\n }\r\n logoRows.push(slice.map((logo) => ({ ...logo })));\r\n iterator += groupSize;\r\n if (groupSize === rowLimit - 1) {\r\n groupSize = rowLimit;\r\n }\r\n else {\r\n groupSize = rowLimit - 1;\r\n }\r\n }\r\n setSplitLogos(logoRows);\r\n }, [props.logos, props.useReducedLayout]);\r\n const chooseNewRandomLogo = React.useCallback(() => {\r\n function getRandomItem() {\r\n const row = Math.floor(Math.random() * splitLogos.length);\r\n const col = Math.floor(Math.random() * splitLogos[row].length);\r\n return [row, col];\r\n }\r\n const [randomRow, randomCol] = getRandomItem();\r\n let randomLogoIndex = Math.floor(Math.random() * props.logos.length);\r\n while (props.logos[randomLogoIndex].image === splitLogos[randomRow][randomCol].image ||\r\n (randomCol === 0\r\n ? false\r\n : props.logos[randomLogoIndex].image === splitLogos[randomRow][randomCol - 1].image) ||\r\n (randomCol === splitLogos[randomRow].length - 1\r\n ? false\r\n : props.logos[randomLogoIndex].image === splitLogos[randomRow][randomCol + 1].image)) {\r\n randomLogoIndex = Math.floor(Math.random() * props.logos.length);\r\n }\r\n const clone = [...splitLogos];\r\n clone[randomRow][randomCol] = props.logos[randomLogoIndex];\r\n setSplitLogos(clone);\r\n }, [props.logos.length, splitLogos]);\r\n React.useEffect(() => {\r\n if (!props.useReducedLayout) {\r\n const interval = setInterval(chooseNewRandomLogo, 5000);\r\n return () => clearInterval(interval);\r\n }\r\n }, [splitLogos.length, props.useReducedLayout]);\r\n return (React.createElement(React.Fragment, null, props.useReducedLayout ? (React.createElement(React.Fragment, null,\r\n React.createElement(S.LogoGridCompact, { style: { '--count': props.logos.length } },\r\n props.logos.map((logo, i) => (React.createElement(LogoItem, { key: `LogoList_${i}`, logo: logo }))),\r\n props.logos.map((logo, i) => (React.createElement(LogoItem, { key: `LogoList_${i}_2`, logo: logo }))),\r\n props.logos.map((logo, i) => (React.createElement(LogoItem, { key: `LogoList_${i}_3`, logo: logo }))),\r\n props.logos.length < 10 && (React.createElement(React.Fragment, null, props.logos.map((logo, i) => (React.createElement(LogoItem, { key: `LogoList_${i}_4`, logo: logo }))))),\r\n props.logos.length < 5 && (React.createElement(React.Fragment, null, props.logos.map((logo, i) => (React.createElement(LogoItem, { key: `LogoList_${i}_5`, logo: logo })))))))) : (React.createElement(S.LogoGridWrapper, null,\r\n React.createElement(S.LogoGridInner, null, splitLogos.map((row, i) => (React.createElement(S.LogoGridRow, { key: `LogoList_${i}` }, row.map((logo, j) => (React.createElement(LogoItem, { key: `LogoList_${i}_${j}`, logo: logo })))))))))));\r\n};\r\nconst LogoList = (props) => {\r\n const [containerRef, inView] = useInView({ rootMargin }, false, props.pageContext?.isEditMode);\r\n const useReducedLayout = React.useMemo(() => {\r\n return props.logos.length < 11;\r\n }, [props.logos.length]);\r\n return (React.createElement(S.MotionWrapper, { \"data-in-view\": inView },\r\n React.createElement(S.Container, { ref: containerRef, \"data-use-reduced-layout\": props.forceReduced || useReducedLayout, variant: props.variant ?? 'blue' },\r\n React.createElement(S.Inner, null,\r\n React.createElement(LogoGrid, { logos: props.logos, useReducedLayout: props.forceReduced || useReducedLayout }),\r\n React.createElement(S.ContentSection, null,\r\n React.createElement(S.Title, { dangerouslySetInnerHTML: { __html: highlightTitleWords(props.title) } }),\r\n props.content && React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: props.content } }),\r\n props.cta1 || props.cta2 ? (React.createElement(S.CTAsContainer, null,\r\n props.cta1 && (React.createElement(LinkButton, { icon: props.cta1.icon, buttonType: \"solid\", target: props.cta1.target, href: props.cta1.url }, props.cta1.text)),\r\n props.cta2 && (React.createElement(LinkButton, { icon: props.cta2.icon ?? Icon.None, buttonType: props.variant === 'white' ? 'text-black' : 'text-white', target: props.cta2.target, href: props.cta2.url }, props.cta2.text)))) : null)))));\r\n};\r\nexport default withMotion(LogoList);\r\n","import { __values } from 'tslib';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useId } from '../../utils/use-id.mjs';\n\nvar PresenceChild = function (_a) {\n var children = _a.children, initial = _a.initial, isPresent = _a.isPresent, onExitComplete = _a.onExitComplete, custom = _a.custom, presenceAffectsLayout = _a.presenceAffectsLayout;\n var presenceChildren = useConstant(newChildrenMap);\n var id = useId();\n var context = useMemo(function () { return ({\n id: id,\n initial: initial,\n isPresent: isPresent,\n custom: custom,\n onExitComplete: function (childId) {\n var e_1, _a;\n presenceChildren.set(childId, true);\n try {\n for (var _b = __values(presenceChildren.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var isComplete = _c.value;\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete();\n },\n register: function (childId) {\n presenceChildren.set(childId, false);\n return function () { 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 ? undefined : [isPresent]);\n useMemo(function () {\n presenceChildren.forEach(function (_, key) { return 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(function () {\n !isPresent && !presenceChildren.size && (onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete());\n }, [isPresent]);\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { __read, __spreadArray } from 'tslib';\nimport * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { env } from '../../utils/process.mjs';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\n\nvar getChildKey = function (child) { return child.key || \"\"; };\nfunction updateChildLookup(children, allChildren) {\n children.forEach(function (child) {\n var key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n var filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, function (child) {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\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 */\nvar AnimatePresence = function (_a) {\n var children = _a.children, custom = _a.custom, _b = _a.initial, initial = _b === void 0 ? true : _b, onExitComplete = _a.onExitComplete, exitBeforeEnter = _a.exitBeforeEnter, _c = _a.presenceAffectsLayout, presenceAffectsLayout = _c === void 0 ? true : _c;\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n var _d = __read(useForceUpdate(), 1), forceRender = _d[0];\n var forceRenderLayoutGroup = useContext(LayoutGroupContext).forceRender;\n if (forceRenderLayoutGroup)\n forceRender = forceRenderLayoutGroup;\n var isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n var filteredChildren = onlyElements(children);\n var childrenToRender = filteredChildren;\n var exiting = new Set();\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n var presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n var allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n var isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(function () {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(function () {\n isInitialRender.current = true;\n allChildren.clear();\n exiting.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map(function (child) { return (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout }, child)); })));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = __spreadArray([], __read(childrenToRender), false);\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n var presentKeys = presentChildren.current.map(getChildKey);\n var targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n var numPresent = presentKeys.length;\n for (var i = 0; i < numPresent; i++) {\n var key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1) {\n exiting.add(key);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (exitBeforeEnter && exiting.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exiting.forEach(function (key) {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n var child = allChildren.get(key);\n if (!child)\n return;\n var insertionIndex = presentKeys.indexOf(key);\n var onExit = function () {\n allChildren.delete(key);\n exiting.delete(key);\n // Remove this child from the present children\n var removeIndex = presentChildren.current.findIndex(function (presentChild) { return presentChild.key === key; });\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exiting.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n childrenToRender.splice(insertionIndex, 0, React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map(function (child) {\n var key = child.key;\n return exiting.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n if (env !== \"production\" &&\n exitBeforeEnter &&\n childrenToRender.length > 1) {\n console.warn(\"You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.\");\n }\n return (React.createElement(React.Fragment, null, exiting.size\n ? childrenToRender\n : childrenToRender.map(function (child) { return cloneElement(child); })));\n};\n\nexport { AnimatePresence };\n","import { __read } from 'tslib';\nimport sync from 'framesync';\nimport { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\n\nfunction useForceUpdate() {\n var isMounted = useIsMounted();\n var _a = __read(useState(0), 2), forcedRenderCount = _a[0], setForcedRenderCount = _a[1];\n var forceRender = useCallback(function () {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n var deferredForceRender = useCallback(function () { return sync.postRender(forceRender); }, [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n var isMounted = useRef(false);\n useIsomorphicLayoutEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n"],"names":["withMotion","WrappedComponent","displayName","name","ComponentWithMotion","props","React","LazyMotion","features","domAnimation","strict","callback","options","arguments","length","undefined","observerRef","useRef","rootRef","elementRef","useEffect","current","IntersectionObserver","root","observe","disconnect","useInView","reverse","isEditMode","inView","setInView","useState","useIntersectionObserver","entries","isIntersecting","SectionWrapperCSS","css","brand","primary","black","white","stone","Container","styled","m","section","withConfig","componentId","SectionWrapperInnerCSS","siteWide","Inner","div","SectionWrapper","ref","id","children","layout","flush","variant","otherProps","S","MotionWrapper","attrs","initial","animate","transition","staggerChildren","logoSizes","fluid","secondary","ice","from","Device","TabletLarge","SectionWrapperStyles","until","baseGrid","ContentSection","Title","h2","h3","Content","paragraphLarge","CTAsContainer","LogoGridWrapper","variants","visible","LogoGridCompact","LogoListStyles","LogoGridInner","LogoGridRow","Logo","verticalFadeIn","LogoImage","img","exit","hidden","opacity","LogoItem","_ref","logo","imageLoaded","setImageLoaded","imgRef","_imgRef$current","complete","AnimatePresence","exitBeforeEnter","draggable","key","alt","src","image","onLoad","loading","LogoGrid","splitLogos","setSplitLogos","_props$rowLimit","useReducedLayout","logoRows","rowLimit","iterator","groupSize","_props$logoLimit","logoLimit","startPoint","logos","endPoint","slice","concat","push","map","chooseNewRandomLogo","randomRow","randomCol","row","Math","floor","random","getRandomItem","randomLogoIndex","clone","interval","setInterval","clearInterval","style","i","j","_props$pageContext","_props$variant","_props$cta2$icon","containerRef","rootMargin","pageContext","forceReduced","dangerouslySetInnerHTML","__html","highlightTitleWords","title","content","cta1","cta2","LinkButton","icon","buttonType","target","href","url","text","Icon","None","PresenceChild","_a","isPresent","onExitComplete","custom","presenceAffectsLayout","presenceChildren","newChildrenMap","context","useMemo","childId","e_1","set","_b","values","_c","next","done","value","e_1_1","error","return","call","register","delete","forEach","_","size","PresenceContext","Provider","Map","getChildKey","child","forceRender","forceRenderLayoutGroup","useContext","LayoutGroupContext","L","isMounted","filteredChildren","filtered","Children","isValidElement","onlyElements","childrenToRender","exiting","Set","presentChildren","allChildren","isInitialRender","updateChildLookup","clear","presentKeys","targetKeys","numPresent","indexOf","add","get","insertionIndex","splice","removeIndex","findIndex","presentChild","has","console","warn","cloneElement","useForceUpdate","forcedRenderCount","setForcedRenderCount","useCallback","postRender","useIsMounted"],"sourceRoot":""}