{"version":3,"file":"489-590046ce2e03344aaea9.js","mappings":"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","sources":["webpack://james-fisher/./src/stories/Widgets/ImageCarousel/ImageCarousel.styles.ts","webpack://james-fisher/./src/stories/Widgets/ImageCarousel/ImageCarousel.tsx","webpack://james-fisher/./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","webpack://james-fisher/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://james-fisher/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://james-fisher/./node_modules/framer-motion/dist/es/utils/use-force-update.mjs"],"sourcesContent":["import { inViewFadeUp } from '@helpers/animate';\r\nimport { baseGrid } from '@helpers/grid';\r\nimport { from, Device, until } from '@helpers/media';\r\nimport { h3, contentStyles, paragraph } from '@helpers/typography';\r\nimport ButtonStyles from '@stories/Components/Button/Button.styles';\r\nimport SectionWrapper from '@stories/Components/SectionWrapper/SectionWrapper';\r\nimport { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n padding: var(--sectionSpacing) 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 15px;\r\n`;\r\nconst IntroContent = styled.div `\r\n ${baseGrid};\r\n width: 100%;\r\n margin-bottom: var(--introSpacing);\r\n`;\r\nconst Title = styled.h2 `\r\n ${h3};\r\n margin: 0;\r\n grid-column: 1 / span 12;\r\n grid-row: 1;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 6;\r\n grid-row: 1;\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0, duration: 0.3 })};\r\n`;\r\nconst Content = styled.div `\r\n ${contentStyles};\r\n grid-column: 1 / span 12;\r\n grid-row: 2;\r\n margin: calc(var(--introSpacing) / 2) 0 0;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 6;\r\n grid-row: 1;\r\n margin: 0;\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0, duration: 0.3 })};\r\n`;\r\nconst CarouselContainer = styled.div `\r\n overflow: hidden;\r\n`;\r\nconst CarouselInner = styled.div `\r\n --visibleItems: 1;\r\n`;\r\nconst CarouselWrapper = styled.div ``;\r\nconst Item = styled.li `\r\n display: block;\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n padding-right: var(--itemGutter);\r\n user-select: none;\r\n\r\n img {\r\n pointer-events: none;\r\n }\r\n`;\r\nconst Image = styled.img `\r\n display: block;\r\n height: 100%;\r\n object-fit: contain;\r\n object-position: center center;\r\n\r\n ${({ maxHeight }) => maxHeight &&\r\n css `\r\n max-height: ${maxHeight}px;\r\n `}\r\n`;\r\nconst ItemInner = styled.div `\r\n aspect-ratio: 16 / 9;\r\n width: 100%;\r\n overflow: hidden;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\nconst ControlsWrapper = styled.div `\r\n display: flex;\r\n gap: 8px;\r\n user-select: none;\r\n margin-bottom: 15px;\r\n justify-content: flex-end;\r\n\r\n ${() => ButtonStyles.Container}:focus {\r\n outline: none;\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n gap: 8px;\r\n grid-column: 1 / span 12;\r\n grid-row: 3;\r\n justify-self: flex-end;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n gap: 32px;\r\n grid-column: 1 / span 3;\r\n grid-row: 2;\r\n }\r\n\r\n ${inViewFadeUp({ delay: 0.3, duration: 0.3 })};\r\n`;\r\nconst CaptionWrapper = styled.div `\r\n overflow: hidden;\r\n width: 100%;\r\n position: relative;\r\n`;\r\nconst Picture = styled.picture `\r\n ${({ isCustomHeight }) => isCustomHeight &&\r\n css `\r\n margin: auto;\r\n `}\r\n`;\r\nconst Caption = styled(m.div).attrs(() => ({\r\n initial: 'hidden-bottom',\r\n animate: 'visible',\r\n exit: 'hidden-top',\r\n variants: {\r\n 'hidden-bottom': {\r\n y: '100%',\r\n opacity: 0,\r\n position: 'absolute',\r\n },\r\n visible: {\r\n y: 0,\r\n opacity: 1,\r\n position: 'relative',\r\n },\r\n 'hidden-top': {\r\n y: '-100%',\r\n opacity: 0,\r\n position: 'absolute',\r\n },\r\n },\r\n})) `\r\n display: block;\r\n ${paragraph};\r\n margin-top: 2rem;\r\n`;\r\nexport const ImageCarouselStyles = {\r\n Container,\r\n IntroContent,\r\n Title,\r\n Content,\r\n CarouselContainer,\r\n CarouselInner,\r\n CarouselWrapper,\r\n Item,\r\n Image,\r\n ItemInner,\r\n ControlsWrapper,\r\n Caption,\r\n CaptionWrapper,\r\n Picture,\r\n};\r\n","import React from 'react';\r\nimport { ImageCarouselStyles as S } from './ImageCarousel.styles';\r\nimport { withMotionMax } from '@hoc/withMotionMax';\r\nimport CarouselProvider from '@stories/Components/Carousel/CarouselProvider/CarouselProvider';\r\nimport { AnimatePresence, MotionConfig } from 'framer-motion';\r\nimport Connected from '@stories/Components/Carousel/Connected/Connected';\r\nimport LiveRegion from '@stories/Components/Carousel/LiveRegion/LiveRegion';\r\nimport MotionTrack from '@stories/Components/Carousel/MotionTrack/MotionTrack';\r\nimport { Device, from } from '@helpers/media';\r\nimport { imageUrl, srcSet } from '@helpers/image';\r\nimport Button from '@stories/Components/Button/Button';\r\nimport SvgNext from '@img/icons/carousel-next.svg';\r\nimport SvgPrev from '@img/icons/carousel-prev.svg';\r\nconst ImageCarousel = ({ title, content, images }) => {\r\n return (React.createElement(S.Container, null,\r\n (title || content) && (React.createElement(S.IntroContent, null,\r\n title && React.createElement(S.Title, { id: title.replaceAll(/[\\W_]+/g, '-').toLowerCase() }, title),\r\n content && React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: content } }))),\r\n React.createElement(S.CarouselContainer, null,\r\n React.createElement(MotionConfig, { transition: { duration: 0.45, ease: 'easeOut' } },\r\n React.createElement(CarouselProvider, { count: images.length },\r\n React.createElement(S.CarouselInner, null,\r\n React.createElement(S.CarouselWrapper, null,\r\n React.createElement(LiveRegion, null),\r\n React.createElement(MotionTrack, null, images.map((item, index) => (React.createElement(S.Item, { key: index },\r\n React.createElement(S.ItemInner, null,\r\n React.createElement(S.Picture, { isCustomHeight: !!item.image.maxHeight },\r\n React.createElement(\"source\", { media: from(Device.Desktop), srcSet: srcSet(item.image, { width: 1604, height: 902.25 }) }),\r\n React.createElement(\"source\", { media: from(Device.DesktopSmall), srcSet: srcSet(item.image, { width: 1329, height: 747.56 }) }),\r\n React.createElement(\"source\", { media: from(Device.TabletLarge), srcSet: srcSet(item.image, { width: 1243, height: 699.19 }) }),\r\n React.createElement(\"source\", { media: from(Device.Tablet), srcSet: srcSet(item.image, { width: 987, height: 555.19 }) }),\r\n React.createElement(\"source\", { media: from(Device.MobileLarge), srcSet: srcSet(item.image, { width: 731, height: 411.19 }) }),\r\n React.createElement(S.Image, { alt: item.image.altText, loading: index === 0 ? 'eager' : 'lazy', role: !item.image.altText ? 'presentation' : undefined, src: imageUrl(item.image, { width: 443, height: 249.19 }), srcSet: srcSet(item.image, { width: 443, height: 249.19 }), maxHeight: item.image.maxHeight })))))))),\r\n React.createElement(Connected, null, ({ activeIndex }) => (React.createElement(S.CaptionWrapper, null,\r\n React.createElement(AnimatePresence, null,\r\n React.createElement(S.Caption, { key: `ImageCarousel_Caption_${activeIndex}` }, images[activeIndex].caption))))),\r\n React.createElement(Connected, null, ({ activeIndex, goToNext, goToPrev, maxIndex }) => (React.createElement(S.ControlsWrapper, null,\r\n React.createElement(Button, { buttonType: 'default', disabled: activeIndex === 0, fillDirection: \"left\", icon: React.createElement(SvgPrev, null), iconOnly: true, onClick: (event) => {\r\n event.preventDefault();\r\n goToPrev();\r\n } }, \"Previous\"),\r\n React.createElement(Button, { buttonType: 'default', disabled: activeIndex === maxIndex, fillDirection: \"right\", icon: React.createElement(SvgNext, null), iconOnly: true, onClick: (event) => {\r\n event.preventDefault();\r\n goToNext();\r\n } }, \"Next\"))))))))));\r\n};\r\nexport default withMotionMax(ImageCarousel);\r\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","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"],"names":["Container","styled","SectionWrapper","IntroContent","baseGrid","Title","h3","from","Device","inViewFadeUp","delay","duration","Content","contentStyles","CarouselContainer","CarouselInner","CarouselWrapper","Item","Image","maxHeight","css","ItemInner","ControlsWrapper","ButtonStyles","until","CaptionWrapper","Picture","isCustomHeight","ImageCarouselStyles","Caption","m","attrs","initial","animate","exit","variants","y","opacity","position","visible","paragraph","withMotionMax","title","content","images","React","S","id","replaceAll","toLowerCase","dangerouslySetInnerHTML","__html","MotionConfig","transition","ease","CarouselProvider","count","length","LiveRegion","MotionTrack","map","item","index","key","image","media","srcSet","width","height","alt","altText","loading","role","undefined","src","imageUrl","Connected","activeIndex","AnimatePresence","caption","goToNext","goToPrev","maxIndex","Button","buttonType","disabled","fillDirection","icon","SvgPrev","iconOnly","onClick","event","preventDefault","SvgNext","useIsMounted","isMounted","useRef","current","PresenceChild","_a","children","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","Map","getChildKey","child","exitBeforeEnter","_d","useState","forcedRenderCount","setForcedRenderCount","forceRender","useCallback","useForceUpdate","forceRenderLayoutGroup","useContext","LayoutGroupContext","filteredChildren","filtered","Children","isValidElement","push","onlyElements","childrenToRender","exiting","Set","presentChildren","allChildren","isInitialRender","updateChildLookup","clear","presentKeys","targetKeys","numPresent","i","indexOf","add","get","insertionIndex","splice","removeIndex","findIndex","presentChild","has","console","warn","cloneElement"],"sourceRoot":""}