{"version":3,"file":"index.4b75acd0.js","sources":["../../../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../../../node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../../../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs"],"sourcesContent":["import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\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 const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import * as React from 'react';\nimport { useId, useRef, useInsertionEffect } from 'react';\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 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 }\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 }) {\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 });\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 } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\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 top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (React.createElement(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size }, React.cloneElement(children, { ref })));\n}\n\nexport { PopChild };\n","import * as React from 'react';\nimport { useId, 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, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (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 },\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 ? undefined : [isPresent]);\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 = React.createElement(PopChild, { isPresent: isPresent }, children);\n }\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","import * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\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';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\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/**\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, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\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 const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exitingChildren = useRef(new Map()).current;\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 const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const 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 const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exitingChildren.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map((child) => (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child)))));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) {\n exitingChildren.set(key, undefined);\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 (mode === \"wait\" && exitingChildren.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 exitingChildren.forEach((component, key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n let exitingComponent = component;\n if (!exitingComponent) {\n const onExit = () => {\n allChildren.delete(key);\n exitingChildren.delete(key);\n // Remove this child from the present children\n const removeIndex = presentChildren.current.findIndex((presentChild) => presentChild.key === key);\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exitingChildren.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n exitingComponent = (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n exitingChildren.set(key, exitingComponent);\n }\n childrenToRender.splice(insertionIndex, 0, exitingComponent);\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((child) => {\n const key = child.key;\n return exitingChildren.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.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 return (React.createElement(React.Fragment, null, exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child))));\n};\n\nexport { AnimatePresence };\n"],"names":["useIsMounted","isMounted","useRef","useIsomorphicLayoutEffect","useForceUpdate","forcedRenderCount","setForcedRenderCount","useState","forceRender","useCallback","frame","PopChildMeasure","React.Component","prevProps","element","size","PopChild","children","isPresent","id","useId","ref","useInsertionEffect","width","height","top","left","style","React.createElement","React.cloneElement","PresenceChild","initial","onExitComplete","custom","presenceAffectsLayout","mode","presenceChildren","useConstant","newChildrenMap","context","useMemo","childId","isComplete","_","key","React.useEffect","PresenceContext","useUnmountEffect","callback","useEffect","getChildKey","child","updateChildLookup","allChildren","onlyElements","filtered","Children","isValidElement","AnimatePresence","exitBeforeEnter","invariant","useContext","LayoutGroupContext","filteredChildren","childrenToRender","exitingChildren","presentChildren","isInitialRender","React.Fragment","presentKeys","targetKeys","numPresent","i","component","insertionIndex","exitingComponent","onExit","removeIndex","presentChild","cloneElement"],"mappings":"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"}