{"version":3,"file":"motion-CmY8Wivt.js","sources":["../../node_modules/motion/dist/es/framer-motion/dist/es/context/LayoutGroupContext.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/use-constant.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/context/PresenceContext.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/context/MotionConfigContext.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/components/AnimatePresence/utils.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/is-browser.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/components/AnimatePresence/index.mjs","../../node_modules/motion/dist/es/motion-utils/dist/es/noop.mjs","../../node_modules/motion/dist/es/motion-utils/dist/es/errors.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/GlobalConfig.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/frameloop/render-step.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/frameloop/batcher.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/frameloop/frame.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/context/LazyContext.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/definitions.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/load-features.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/utils/valid-prop.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/components/create-proxy.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/context/MotionContext/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/is-variant-label.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/variant-props.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/context/MotionContext/utils.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/context/MotionContext/create.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/utils/symbol.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/is-ref-object.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/frameloop/microtask.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/resolve-variants.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/resolve-value.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/utils/is-motion-value.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/utils/keys-transform.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/clamp.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/numbers/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/numbers/units.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/number-browser.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/transform.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/number.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/utils/build-transform.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/utils/build-styles.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/utils/path.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/utils/render.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/utils/render.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/styles/scale-correction.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/config-motion.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/config-motion.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/use-props.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/use-props.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/use-render.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/components/create-factory.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/shallow-compare.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/animation/utils/get-value-transition.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/utils/keys-position.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/frameloop/sync-time.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/array.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/subscription-manager.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/velocity-per-second.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/setters.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/use-will-change/is.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/use-will-change/add-will-change.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs","../../node_modules/motion/dist/es/motion-utils/dist/es/memo.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/utils/supports/scroll-timeline.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/animation/controls/BaseGroup.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/animation/controls/Group.mjs","../../node_modules/motion/dist/es/motion-utils/dist/es/time-conversion.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/animation/generators/utils/is-generator.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/animation/waapi/utils/attach-timeline.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/utils/is-bezier-definition.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/utils/supports/flags.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/utils/supports/memo.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/utils/supports/linear-easing.mjs","../../node_modules/motion/dist/es/motion-utils/dist/es/progress.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/animation/waapi/utils/linear.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/animation/waapi/utils/easing.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/easing/cubic-bezier.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/easing/modifiers/mirror.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/easing/modifiers/reverse.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/easing/back.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/easing/anticipate.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/easing/circ.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/is-zero-value-string.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/utils/is-none.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/utils/sanitize.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/utils/float-regex.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/utils/is-nullish.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/utils/single-color-regex.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/color/utils.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/color/rgba.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/color/hex.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/color/hsla.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/color/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/utils/color-regex.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/complex/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/value/types/complex/filter.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/KeyframesResolver.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/is-numerical-string.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/test.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/utils/is-animatable.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animators/utils/can-animate.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/mix/number.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/mix/immediate.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/mix/color.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/pipe.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/mix/visibility.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/mix/complex.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/mix/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/generators/spring/defaults.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/generators/spring/find.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/generators/spring/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/generators/inertia.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/easing/ease.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/easing/utils/map.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/interpolate.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/offsets/fill.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/offsets/default.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/offsets/time.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/generators/keyframes.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animators/waapi/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/utils/default-transitions.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/utils/is-transition-defined.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/get-variant-context.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/animation-state.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/Feature.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/animation/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/animation/exit.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/animations.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/drag/state/is-active.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/drag/state/set-active.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/events/add-dom-event.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/events/event-info.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/events/add-pointer-event.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/distance.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/gestures/pan/PanSession.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/geometry/models.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/utils/each-axis.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/geometry/conversion.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/utils/has-transform.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/utils/measure.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/get-context-window.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/gestures/drag/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/gestures/pan/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/node/state.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/animate/single-value.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/flat-tree.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/delay.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/animation/mix-values.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/geometry/copy.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/geometry/utils.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/shared/stack.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/styles/transform.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/node/create-projection-node.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/drag.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/utils/resolve-elements.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/utils/setup.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/hover.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/gestures/hover.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/gestures/focus.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/press/utils/state.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/press/utils/keyboard.mjs","../../node_modules/motion/dist/es/motion-dom/dist/es/gestures/press/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/gestures/press.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/viewport/observers.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/viewport/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/gestures.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/motion/features/layout.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/reduced-motion/state.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/utils/reduced-motion/index.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/value-types/find.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/store.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/utils/motion-values.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/VisualElement.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/dom/create-visual-element.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/components/motion/create.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/render/components/motion/proxy.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/hooks/animation-controls.mjs","../../node_modules/motion/dist/es/framer-motion/dist/es/animation/hooks/use-animation.mjs"],"sourcesContent":["\"use client\";\nimport { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","\"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 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 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 } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\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 top: ${top}px !important;\n left: ${left}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, }) => {\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, 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 { useContext, useId, useEffect, useCallback } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence(subscribe = true) {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => {\n if (subscribe)\n register(id);\n }, [subscribe]);\n const safeToRemove = useCallback(() => subscribe && onExitComplete && onExitComplete(id), [id, onExitComplete, subscribe]);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return \n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\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","const isBrowser = typeof window !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\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 { PresenceChild } from './PresenceChild.mjs';\nimport { usePresence } from './use-presence.mjs';\nimport { onlyElements, getChildKey } from './utils.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.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 *