{"version":3,"file":"static/chunks/4742-c2b40eb28bbcb90b.js","mappings":"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","sources":["webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/process.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LazyContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/use-features.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-browser.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-reduced-motion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/variants.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/id.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/use-projection.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/utils.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/numbers/units.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/numbers/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/use-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/render.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/resolve-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/types.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/config-motion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/use-dom-event.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/event-info.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/pipe.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/warn-once.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-id.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/clamp.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/generators/spring.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/progress.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/mix.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/utils.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/rgba.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/hex.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/hsla.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/mix-color.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/index.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/complex/index.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/inc.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/mix-complex.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/interpolate.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/easing/utils.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/easing/index.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/generators/decay.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/time-conversion.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/easing/cubic-bezier.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/easing.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/complex/filter.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/inertia.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/setters.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/animation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/animations.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/is-point.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/is-point-3d.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/distance.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/PanSession.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/utils/measure.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/drag.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/shared/stack.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animate.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/motion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/array.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-constant.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/index.mjs","webpack://_N_E/./node_modules/framesync/dist/es/on-next-frame.mjs","webpack://_N_E/./node_modules/framesync/dist/es/index.mjs","webpack://_N_E/./node_modules/framesync/dist/es/create-render-step.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/velocity-per-second.mjs"],"sourcesContent":["import { createContext } from 'react';\n\n/**\n * @public\n */\nvar MotionConfigContext = createContext({\n transformPagePoint: function (p) { return p; },\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","/**\n * Browser-safe usage of process\n */\nvar defaultEnvironment = \"production\";\nvar env = typeof process === \"undefined\" || process.env === undefined\n ? defaultEnvironment\n : process.env.NODE_ENV || defaultEnvironment;\n\nexport { env };\n","var createDefinition = function (propNames) { return ({\n isEnabled: function (props) { return propNames.some(function (name) { return !!props[name]; }); },\n}); };\nvar featureDefinitions = {\n measureLayout: createDefinition([\"layout\", \"layoutId\", \"drag\"]),\n animation: createDefinition([\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n ]),\n exit: createDefinition([\"exit\"]),\n drag: createDefinition([\"drag\", \"dragControls\"]),\n focus: createDefinition([\"whileFocus\"]),\n hover: createDefinition([\"whileHover\", \"onHoverStart\", \"onHoverEnd\"]),\n tap: createDefinition([\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"]),\n pan: createDefinition([\n \"onPan\",\n \"onPanStart\",\n \"onPanSessionStart\",\n \"onPanEnd\",\n ]),\n inView: createDefinition([\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n ]),\n};\nfunction loadFeatures(features) {\n for (var key in features) {\n if (features[key] === null)\n continue;\n if (key === \"projectionNodeConstructor\") {\n featureDefinitions.projectionNodeConstructor = features[key];\n }\n else {\n featureDefinitions[key].Component = features[key];\n }\n }\n}\n\nexport { featureDefinitions, loadFeatures };\n","import { createContext } from 'react';\n\nvar LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { env } from '../../utils/process.mjs';\nimport { featureDefinitions } from './definitions.mjs';\nimport { invariant } from 'hey-listen';\nimport { LazyContext } from '../../context/LazyContext.mjs';\n\nvar featureNames = Object.keys(featureDefinitions);\nvar numFeatures = featureNames.length;\n/**\n * Load features via renderless components based on the provided MotionProps.\n */\nfunction useFeatures(props, visualElement, preloadedFeatures) {\n var features = [];\n var lazyContext = useContext(LazyContext);\n if (!visualElement)\n return null;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (env !== \"production\" && preloadedFeatures && lazyContext.strict) {\n invariant(false, \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\");\n }\n for (var i = 0; i < numFeatures; i++) {\n var name_1 = featureNames[i];\n var _a = featureDefinitions[name_1], isEnabled = _a.isEnabled, Component = _a.Component;\n /**\n * It might be possible in the future to use this moment to\n * dynamically request functionality. In initial tests this\n * was producing a lot of duplication amongst bundles.\n */\n if (isEnabled(props) && Component) {\n features.push(React.createElement(Component, __assign({ key: name_1 }, props, { visualElement: visualElement })));\n }\n }\n return features;\n}\n\nexport { useFeatures };\n","import { createContext, useContext } from 'react';\n\nvar MotionContext = createContext({});\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","var isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { __read } from 'tslib';\nimport { useState, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { isBrowser } from './is-browser.mjs';\n\n// Does this device prefer reduced motion? Returns `null` server-side.\nvar prefersReducedMotion = { current: null };\nvar hasDetected = false;\nfunction initPrefersReducedMotion() {\n hasDetected = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n var motionMediaQuery_1 = window.matchMedia(\"(prefers-reduced-motion)\");\n var setReducedMotionPreferences = function () {\n return (prefersReducedMotion.current = motionMediaQuery_1.matches);\n };\n motionMediaQuery_1.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n/**\n * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.\n *\n * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing\n * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.\n *\n * It will actively respond to changes and re-render your components with the latest setting.\n *\n * ```jsx\n * export function Sidebar({ isOpen }) {\n * const shouldReduceMotion = useReducedMotion()\n * const closedX = shouldReduceMotion ? 0 : \"-100%\"\n *\n * return (\n * \n * )\n * }\n * ```\n *\n * @return boolean\n *\n * @public\n */\nfunction useReducedMotion() {\n /**\n * Lazy initialisation of prefersReducedMotion\n */\n !hasDetected && initPrefersReducedMotion();\n var _a = __read(useState(prefersReducedMotion.current), 1), shouldReduceMotion = _a[0];\n /**\n * TODO See if people miss automatically updating shouldReduceMotion setting\n */\n return shouldReduceMotion;\n}\nfunction useReducedMotionConfig() {\n var reducedMotionPreference = useReducedMotion();\n var reducedMotion = useContext(MotionConfigContext).reducedMotion;\n if (reducedMotion === \"never\") {\n return false;\n }\n else if (reducedMotion === \"always\") {\n return true;\n }\n else {\n return reducedMotionPreference;\n }\n}\n\nexport { useReducedMotion, useReducedMotionConfig };\n","import { useContext, useRef, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useVisualElementContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { useReducedMotionConfig } from '../../utils/use-reduced-motion.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n var lazyContext = useContext(LazyContext);\n var parent = useVisualElementContext();\n var presenceContext = useContext(PresenceContext);\n var shouldReduceMotion = useReducedMotionConfig();\n var visualElementRef = useRef(undefined);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n if (!createVisualElement)\n createVisualElement = lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState: visualState,\n parent: parent,\n props: props,\n presenceId: presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id,\n blockInitialAnimation: (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false,\n shouldReduceMotion: shouldReduceMotion,\n });\n }\n var visualElement = visualElementRef.current;\n useIsomorphicLayoutEffect(function () {\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.syncRender();\n });\n useEffect(function () {\n var _a;\n (_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.animationState) === null || _a === void 0 ? void 0 : _a.animateChanges();\n });\n useIsomorphicLayoutEffect(function () { return function () { return visualElement === null || visualElement === void 0 ? void 0 : visualElement.notifyUnmount(); }; }, []);\n return visualElement;\n}\n\nexport { useVisualElement };\n","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","/**\n * Decides if the supplied variable is an array of variant labels\n */\nfunction isVariantLabels(v) {\n return Array.isArray(v);\n}\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || isVariantLabels(v);\n}\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n var current = {};\n visualElement.forEachValue(function (value, key) { return (current[key] = value.get()); });\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n var velocity = {};\n visualElement.forEachValue(function (value, key) { return (velocity[key] = value.getVelocity()); });\n return velocity;\n}\nfunction resolveVariantFromProps(props, definition, custom, currentValues, currentVelocity) {\n var _a;\n if (currentValues === void 0) { currentValues = {}; }\n if (currentVelocity === void 0) { currentVelocity = {}; }\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = (_a = props.variants) === null || _a === void 0 ? void 0 : _a[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n var props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== null && custom !== void 0 ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\nfunction checkIfControllingVariants(props) {\n var _a;\n return (typeof ((_a = props.animate) === null || _a === void 0 ? void 0 : _a.start) === \"function\" ||\n isVariantLabel(props.initial) ||\n isVariantLabel(props.animate) ||\n isVariantLabel(props.whileHover) ||\n isVariantLabel(props.whileDrag) ||\n isVariantLabel(props.whileTap) ||\n isVariantLabel(props.whileFocus) ||\n isVariantLabel(props.exit));\n}\nfunction checkIfVariantNode(props) {\n return Boolean(checkIfControllingVariants(props) || props.variants);\n}\n\nexport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel, isVariantLabels, resolveVariant, resolveVariantFromProps };\n","import { useMemo, useContext } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n var _a = getCurrentTreeVariants(props, useContext(MotionContext)), initial = _a.initial, animate = _a.animate;\n return useMemo(function () { return ({ initial: initial, animate: animate }); }, [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { checkIfControllingVariants, isVariantLabel } from '../../render/utils/variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (checkIfControllingVariants(props)) {\n var initial = props.initial, animate = props.animate;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nvar globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { useConstant } from '../../utils/use-constant.mjs';\nimport { globalProjectionState } from './state.mjs';\n\nvar id = 1;\nfunction useProjectionId() {\n return useConstant(function () {\n if (globalProjectionState.hasEverUpdated) {\n return id++;\n }\n });\n}\n\nexport { useProjectionId };\n","import { createContext } from 'react';\n\nvar LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nvar SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { __extends } from 'tslib';\nimport React__default from 'react';\n\nvar VisualElementHandler = /** @class */ (function (_super) {\n __extends(VisualElementHandler, _super);\n function VisualElementHandler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Update visual element props as soon as we know this update is going to be commited.\n */\n VisualElementHandler.prototype.getSnapshotBeforeUpdate = function () {\n this.updateProps();\n return null;\n };\n VisualElementHandler.prototype.componentDidUpdate = function () { };\n VisualElementHandler.prototype.updateProps = function () {\n var _a = this.props, visualElement = _a.visualElement, props = _a.props;\n if (visualElement)\n visualElement.setProps(props);\n };\n VisualElementHandler.prototype.render = function () {\n return this.props.children;\n };\n return VisualElementHandler;\n}(React__default.Component));\n\nexport { VisualElementHandler };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { useFeatures } from './features/use-features.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { loadFeatures, featureDefinitions } from './features/definitions.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { useProjectionId } from '../projection/node/id.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { useProjection } from './features/use-projection.mjs';\nimport { VisualElementHandler } from './utils/VisualElementHandler.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent(_a) {\n var preloadedFeatures = _a.preloadedFeatures, createVisualElement = _a.createVisualElement, projectionNodeConstructor = _a.projectionNodeConstructor, useRender = _a.useRender, useVisualState = _a.useVisualState, Component = _a.Component;\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n var layoutId = useLayoutId(props);\n props = __assign(__assign({}, props), { layoutId: layoutId });\n /**\n * If we're rendering in a static environment, we only visually update the component\n * as a result of a React-rerender rather than interactions or animations. This\n * means we don't need to load additional memory structures like VisualElement,\n * or any gesture/animation features.\n */\n var config = useContext(MotionConfigContext);\n var features = null;\n var context = useCreateMotionContext(props);\n /**\n * Create a unique projection ID for this component. If a new component is added\n * during a layout animation we'll use this to query the DOM and hydrate its ref early, allowing\n * us to measure it as soon as any layout effect flushes pending layout animations.\n *\n * Performance note: It'd be better not to have to search the DOM for these elements.\n * For newly-entering components it could be enough to only correct treeScale, in which\n * case we could mount in a scale-correction mode. This wouldn't be enough for\n * shared element transitions however. Perhaps for those we could revert to a root node\n * that gets forceRendered and layout animations are triggered on its layout effect.\n */\n var projectionId = config.isStatic ? undefined : useProjectionId();\n /**\n *\n */\n var visualState = useVisualState(props, config.isStatic);\n if (!config.isStatic && isBrowser) {\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, __assign(__assign({}, config), props), createVisualElement);\n useProjection(projectionId, props, context.visualElement, projectionNodeConstructor ||\n featureDefinitions.projectionNodeConstructor);\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n features = useFeatures(props, context.visualElement, preloadedFeatures);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (React.createElement(VisualElementHandler, { visualElement: context.visualElement, props: __assign(__assign({}, config), props) },\n features,\n React.createElement(MotionContext.Provider, { value: context }, useRender(Component, props, projectionId, useMotionRef(visualState, context.visualElement, externalRef), visualState, config.isStatic, context.visualElement))));\n }\n return forwardRef(MotionComponent);\n}\nfunction useLayoutId(_a) {\n var _b;\n var layoutId = _a.layoutId;\n var layoutGroupId = (_b = useContext(LayoutGroupContext)) === null || _b === void 0 ? void 0 : _b.id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\n\nexport { createMotionComponent };\n","import { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { useContext } from 'react';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\n\nfunction useProjection(projectionId, _a, visualElement, ProjectionNodeConstructor) {\n var _b;\n var layoutId = _a.layoutId, layout = _a.layout, drag = _a.drag, dragConstraints = _a.dragConstraints, layoutScroll = _a.layoutScroll;\n var initialPromotionConfig = useContext(SwitchLayoutGroupContext);\n if (!ProjectionNodeConstructor ||\n !visualElement ||\n (visualElement === null || visualElement === void 0 ? void 0 : visualElement.projection)) {\n return;\n }\n visualElement.projection = new ProjectionNodeConstructor(projectionId, visualElement.getLatestValues(), (_b = visualElement.parent) === null || _b === void 0 ? void 0 : _b.projection);\n visualElement.projection.setOptions({\n layoutId: layoutId,\n layout: layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement: visualElement,\n scheduleRender: function () { return visualElement.scheduleRender(); },\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig: initialPromotionConfig,\n layoutScroll: layoutScroll,\n });\n}\n\nexport { useProjection };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback(function (instance) {\n var _a;\n instance && ((_a = visualState.mount) === null || _a === void 0 ? void 0 : _a.call(visualState, instance));\n if (visualElement) {\n instance\n ? visualElement.mount(instance)\n : visualElement.unmount();\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig) {\n if (customMotionComponentConfig === void 0) { customMotionComponentConfig = {}; }\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n var componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: function (_target, key) {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nvar lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"svg\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","var scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nvar transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nvar order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\n/**\n * Generate a list of every possible transform key.\n */\nvar transformProps = [\"transformPerspective\", \"x\", \"y\", \"z\"];\norder.forEach(function (operationKey) {\n return transformAxes.forEach(function (axesKey) {\n return transformProps.push(operationKey + axesKey);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nfunction sortTransformProps(a, b) {\n return transformProps.indexOf(a) - transformProps.indexOf(b);\n}\n/**\n * A quick lookup for transform props.\n */\nvar transformPropSet = new Set(transformProps);\nfunction isTransformProp(key) {\n return transformPropSet.has(key);\n}\n/**\n * A quick lookup for transform origin props\n */\nvar transformOriginProps = new Set([\"originX\", \"originY\", \"originZ\"]);\nfunction isTransformOriginProp(key) {\n return transformOriginProps.has(key);\n}\n\nexport { isTransformOriginProp, isTransformProp, sortTransformProps, transformAxes, transformProps };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { isTransformProp, isTransformOriginProp } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, _a) {\n var layout = _a.layout, layoutId = _a.layoutId;\n return (isTransformProp(key) ||\n isTransformOriginProp(key) ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","var isMotionValue = function (value) {\n return Boolean(value !== null && typeof value === \"object\" && value.getVelocity);\n};\n\nexport { isMotionValue };\n","import { sortTransformProps } from './transform.mjs';\n\nvar translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(_a, _b, transformIsDefault, transformTemplate) {\n var transform = _a.transform, transformKeys = _a.transformKeys;\n var _c = _b.enableHardwareAcceleration, enableHardwareAcceleration = _c === void 0 ? true : _c, _d = _b.allowTransformNone, allowTransformNone = _d === void 0 ? true : _d;\n // The transform string we're going to build into.\n var transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Track whether the defined transform has a defined z so we don't add a\n // second to enable hardware acceleration\n var transformHasZ = false;\n // Loop over each transform and build them into transformString\n var numTransformKeys = transformKeys.length;\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n transformString += \"\".concat(translateAlias[key] || key, \"(\").concat(transform[key], \") \");\n if (key === \"z\")\n transformHasZ = true;\n }\n if (!transformHasZ && enableHardwareAcceleration) {\n transformString += \"translateZ(0)\";\n }\n else {\n transformString = transformString.trim();\n }\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n/**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\nfunction buildTransformOrigin(_a) {\n var _b = _a.originX, originX = _b === void 0 ? \"50%\" : _b, _c = _a.originY, originY = _c === void 0 ? \"50%\" : _c, _d = _a.originZ, originZ = _d === void 0 ? 0 : _d;\n return \"\".concat(originX, \" \").concat(originY, \" \").concat(originZ);\n}\n\nexport { buildTransform, buildTransformOrigin };\n","/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nvar getValueAsType = function (value, type) {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const clamp = (min, max) => (v) => Math.max(Math.min(v, max), min);\nconst sanitize = (v) => (v % 1 ? Number(v.toFixed(5)) : v);\nconst floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nconst colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nexport { clamp, colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(' ').length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType('deg');\nconst percent = createUnitType('%');\nconst px = createUnitType('px');\nconst vh = createUnitType('vh');\nconst vw = createUnitType('vw');\nconst progressPercentage = Object.assign(Object.assign({}, percent), { parse: (v) => percent.parse(v) / 100, transform: (v) => percent.transform(v * 100) });\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { clamp } from '../utils.mjs';\n\nconst number = {\n test: (v) => typeof v === 'number',\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = Object.assign(Object.assign({}, number), { transform: clamp(0, 1) });\nconst scale = Object.assign(Object.assign({}, number), { default: 1 });\n\nexport { alpha, number, scale };\n","import { __assign } from 'tslib';\nimport { number } from 'style-value-types';\n\nvar int = __assign(__assign({}, number), { transform: Math.round });\n\nexport { int };\n","import { px, degrees, scale, alpha, progressPercentage } from 'style-value-types';\nimport { int } from './type-int.mjs';\n\nvar numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale: scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { buildTransform, buildTransformOrigin } from './build-transform.mjs';\nimport { isCSSVariable } from '../../dom/utils/is-css-variable.mjs';\nimport { isTransformProp, isTransformOriginProp } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n var _a;\n var style = state.style, vars = state.vars, transform = state.transform, transformKeys = state.transformKeys, transformOrigin = state.transformOrigin;\n // Empty the transformKeys array. As we're throwing out refs to its items\n // this might not be as cheap as suspected. Maybe using the array as a buffer\n // with a manual incrementation would be better.\n transformKeys.length = 0;\n // Track whether we encounter any transform or transformOrigin values.\n var hasTransform = false;\n var hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n var transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n for (var key in latestValues) {\n var value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariable(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n var valueType = numberValueTypes[key];\n var valueAsType = getValueAsType(value, valueType);\n if (isTransformProp(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== ((_a = valueType.default) !== null && _a !== void 0 ? _a : 0))\n transformIsNone = false;\n }\n else if (isTransformOriginProp(key)) {\n transformOrigin[key] = valueAsType;\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (hasTransform) {\n style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n }\n else if (transformTemplate) {\n style.transform = transformTemplate({}, \"\");\n }\n else if (!latestValues.transform && style.transform) {\n style.transform = \"none\";\n }\n if (hasTransformOrigin) {\n style.transformOrigin = buildTransformOrigin(transformOrigin);\n }\n}\n\nexport { buildHTMLStyles };\n","var createHtmlRenderState = function () { return ({\n style: {},\n transform: {},\n transformKeys: [],\n transformOrigin: {},\n vars: {},\n}); };\n\nexport { createHtmlRenderState };\n","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (var key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues(_a, visualState, isStatic) {\n var transformTemplate = _a.transformTemplate;\n return useMemo(function () {\n var state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n var vars = state.vars, style = state.style;\n return __assign(__assign({}, vars), style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n var styleProp = props.style || {};\n var style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n if (props.transformValues) {\n style = props.transformValues(style);\n }\n return style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n var htmlProps = {};\n var style = useStyle(props, visualState, isStatic);\n if (Boolean(props.drag) && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : \"pan-\".concat(props.drag === \"x\" ? \"y\" : \"x\");\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps, useStyle };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nvar validMotionProps = new Set([\n \"initial\",\n \"animate\",\n \"exit\",\n \"style\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"layoutDependency\",\n \"onLayoutAnimationStart\",\n \"onLayoutAnimationComplete\",\n \"onLayoutMeasure\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"dragSnapToOrigin\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"whileDrag\",\n \"onPan\",\n \"onPanStart\",\n \"onPanEnd\",\n \"onPanSessionStart\",\n \"onTap\",\n \"onTapStart\",\n \"onTapCancel\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"whileFocus\",\n \"whileTap\",\n \"whileHover\",\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"viewport\",\n \"layoutScroll\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return validMotionProps.has(key);\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nvar shouldForward = function (key) { return !isValidMotionProp(key); };\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = function (key) {\n return key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n };\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n var filteredProps = {};\n for (var key in props) {\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { px } from 'style-value-types';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n var pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n var pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return \"\".concat(pxOriginX, \" \").concat(pxOriginY);\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from 'style-value-types';\n\nvar dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nvar camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing, offset, useDashCase) {\n if (spacing === void 0) { spacing = 1; }\n if (offset === void 0) { offset = 0; }\n if (useDashCase === void 0) { useDashCase = true; }\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n var keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n var pathLength = px.transform(length);\n var pathSpacing = px.transform(spacing);\n attrs[keys.array] = \"\".concat(pathLength, \" \").concat(pathSpacing);\n}\n\nexport { buildSVGPath };\n","import { __rest } from 'tslib';\nimport { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, _a, options, transformTemplate) {\n var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, \n // This is object creation, which we try to avoid per-frame.\n latest = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n buildHTMLStyles(state, latest, options, transformTemplate);\n state.attrs = state.style;\n state.style = {};\n var attrs = state.attrs, style = state.style, dimensions = state.dimensions;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","import { __assign } from 'tslib';\nimport { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nvar createSvgRenderState = function () { return (__assign(__assign({}, createHtmlRenderState()), { attrs: {} })); };\n\nexport { createSvgRenderState };\n","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\n\nfunction useSVGProps(props, visualState) {\n var visualProps = useMemo(function () {\n var state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);\n return __assign(__assign({}, state.attrs), { style: __assign({}, state.style) });\n }, [visualState]);\n if (props.style) {\n var rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = __assign(__assign({}, rawStyles), visualProps.style);\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { __assign } from 'tslib';\nimport { createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\n\nfunction createUseRender(forwardMotionProps) {\n if (forwardMotionProps === void 0) { forwardMotionProps = false; }\n var useRender = function (Component, props, projectionId, ref, _a, isStatic) {\n var latestValues = _a.latestValues;\n var useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n var visualProps = useVisualProps(props, latestValues, isStatic);\n var filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n var elementProps = __assign(__assign(__assign({}, filteredProps), visualProps), { ref: ref });\n if (projectionId) {\n elementProps[\"data-projection-id\"] = projectionId;\n }\n return createElement(Component, elementProps);\n };\n return useRender;\n}\n\nexport { createUseRender };\n","var CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\n/**\n * Convert camelCase to dash-case properties.\n */\nvar camelToDash = function (str) {\n return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\n\nexport { camelToDash };\n","function renderHTML(element, _a, styleProp, projection) {\n var style = _a.style, vars = _a.vars;\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (var key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nvar camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (var key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n var style = props.style;\n var newValues = {};\n for (var key in style) {\n if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n var newValues = scrapeMotionValuesFromProps$1(props);\n for (var key in props) {\n if (isMotionValue(props[key])) {\n var targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","var isKeyframesTarget = function (v) {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nvar isCustomValue = function (v) {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nvar resolveFinalValueInKeyframes = function (v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n var unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { __rest } from 'tslib';\nimport { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { checkIfControllingVariants, checkIfVariantNode, resolveVariantFromProps } from '../../render/utils/variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\n\nfunction makeState(_a, props, context, presenceContext) {\n var scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps, createRenderState = _a.createRenderState, onMount = _a.onMount;\n var state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = function (instance) { return onMount(props, instance, state); };\n }\n return state;\n}\nvar makeUseVisualState = function (config) {\n return function (props, isStatic) {\n var context = useContext(MotionContext);\n var presenceContext = useContext(PresenceContext);\n return isStatic\n ? makeState(config, props, context, presenceContext)\n : useConstant(function () {\n return makeState(config, props, context, presenceContext);\n });\n };\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n var values = {};\n var blockInitialAnimation = (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false;\n var motionValues = scrapeMotionValues(props);\n for (var key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n var initial = props.initial, animate = props.animate;\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n if (context &&\n isVariantNode &&\n !isControllingVariants &&\n props.inherit !== false) {\n initial !== null && initial !== void 0 ? initial : (initial = context.initial);\n animate !== null && animate !== void 0 ? animate : (animate = context.animate);\n }\n var initialAnimationIsBlocked = blockInitialAnimation || initial === false;\n var variantToSet = initialAnimationIsBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n var list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach(function (definition) {\n var resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n var transitionEnd = resolved.transitionEnd; resolved.transition; var target = __rest(resolved, [\"transitionEnd\", \"transition\"]);\n for (var key in target) {\n var valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n var index = initialAnimationIsBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (var key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\n\nvar svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: function (props, instance, _a) {\n var renderState = _a.renderState, latestValues = _a.latestValues;\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, props.transformTemplate);\n renderSVG(instance, renderState);\n },\n }),\n};\n\nexport { svgMotionConfig };\n","var AnimationType;\n(function (AnimationType) {\n AnimationType[\"Animate\"] = \"animate\";\n AnimationType[\"Hover\"] = \"whileHover\";\n AnimationType[\"Tap\"] = \"whileTap\";\n AnimationType[\"Drag\"] = \"whileDrag\";\n AnimationType[\"Focus\"] = \"whileFocus\";\n AnimationType[\"InView\"] = \"whileInView\";\n AnimationType[\"Exit\"] = \"exit\";\n})(AnimationType || (AnimationType = {}));\n\nexport { AnimationType };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nvar htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options) {\n if (options === void 0) { options = { passive: true }; }\n target.addEventListener(eventName, handler, options);\n return function () { return target.removeEventListener(eventName, handler); };\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return
\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(function () {\n var element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };\n","function isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { isTouchEvent } from '../gestures/utils/event-type.mjs';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var isMouseEvent = event instanceof MouseEvent;\n var isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nvar wrapHandler = function (handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }\n var listener = function (event) {\n return handler(event, extractEventInfo(event));\n };\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nexport { extractEventInfo, wrapHandler };\n","import { addDomEvent, useDomEvent } from './use-dom-event.mjs';\nimport { wrapHandler } from './event-info.mjs';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.mjs';\n\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };\n","import { isBrowser } from '../utils/is-browser.mjs';\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nvar supportsPointerEvents = function () {\n return isBrowser && window.onpointerdown === null;\n};\nvar supportsTouchEvents = function () {\n return isBrowser && window.ontouchstart === null;\n};\nvar supportsMouseEvents = function () {\n return isBrowser && window.onmousedown === null;\n};\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };\n","function createLock(name) {\n var lock = null;\n return function () {\n var openLock = function () {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nvar globalHorizontalLock = createLock(\"dragHorizontal\");\nvar globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n var lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n var openHorizontal_1 = globalHorizontalLock();\n var openVertical_1 = globalVerticalLock();\n if (openHorizontal_1 && openVertical_1) {\n lock = function () {\n openHorizontal_1();\n openVertical_1();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal_1)\n openHorizontal_1();\n if (openVertical_1)\n openVertical_1();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n var openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","import { isMouseEvent } from './utils/event-type.mjs';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n return function (event, info) {\n var _a;\n if (!isMouseEvent(event) || isDragActive())\n return;\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Hover, isActive);\n callback === null || callback === void 0 ? void 0 : callback(event, info);\n };\n}\nfunction useHoverGesture(_a) {\n var onHoverStart = _a.onHoverStart, onHoverEnd = _a.onHoverEnd, whileHover = _a.whileHover, visualElement = _a.visualElement;\n usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover\n ? createHoverEvent(visualElement, true, onHoverStart)\n : undefined, { passive: !onHoverStart });\n usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover\n ? createHoverEvent(visualElement, false, onHoverEnd)\n : undefined, { passive: !onHoverEnd });\n}\n\nexport { useHoverGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nvar isNodeOrChild = function (parent, child) {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(function () { return function () { return callback(); }; }, []);\n}\n\nexport { useUnmountEffect };\n","const combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","var warned = new Set();\nfunction warnOnce(condition, message, element) {\n if (condition || warned.has(message))\n return;\n console.warn(message);\n if (element)\n console.warn(element);\n warned.add(message);\n}\n\nexport { warnOnce };\n","import { __rest, __assign } from 'tslib';\n\n/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nvar observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nvar observers = new WeakMap();\nvar fireObserverCallback = function (entry) {\n var _a;\n (_a = observerCallbacks.get(entry.target)) === null || _a === void 0 ? void 0 : _a(entry);\n};\nvar fireAllObserverCallbacks = function (entries) {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver(_a) {\n var root = _a.root, options = __rest(_a, [\"root\"]);\n var lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n var rootObservers = observers.get(lookupRoot);\n var key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, __assign({ root: root }, options));\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n var rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return function () {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { env } from '../../../utils/process.mjs';\nimport { useRef, useEffect } from 'react';\nimport { AnimationType } from '../../../render/utils/types.mjs';\nimport { warnOnce } from '../../../utils/warn-once.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nfunction useViewport(_a) {\n var visualElement = _a.visualElement, whileInView = _a.whileInView, onViewportEnter = _a.onViewportEnter, onViewportLeave = _a.onViewportLeave, _b = _a.viewport, viewport = _b === void 0 ? {} : _b;\n var state = useRef({\n hasEnteredView: false,\n isInView: false,\n });\n var shouldObserve = Boolean(whileInView || onViewportEnter || onViewportLeave);\n if (viewport.once && state.current.hasEnteredView)\n shouldObserve = false;\n var useObserver = typeof IntersectionObserver === \"undefined\"\n ? useMissingIntersectionObserver\n : useIntersectionObserver;\n useObserver(shouldObserve, state.current, visualElement, viewport);\n}\nvar thresholdNames = {\n some: 0,\n all: 1,\n};\nfunction useIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var root = _a.root, rootMargin = _a.margin, _b = _a.amount, amount = _b === void 0 ? \"some\" : _b, once = _a.once;\n useEffect(function () {\n if (!shouldObserve)\n return;\n var options = {\n root: root === null || root === void 0 ? void 0 : root.current,\n rootMargin: rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n var intersectionCallback = function (entry) {\n var _a;\n var isIntersecting = entry.isIntersecting;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (state.isInView === isIntersecting)\n return;\n state.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && state.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n state.hasEnteredView = true;\n }\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, isIntersecting);\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n var props = visualElement.getProps();\n var callback = isIntersecting\n ? props.onViewportEnter\n : props.onViewportLeave;\n callback === null || callback === void 0 ? void 0 : callback(entry);\n };\n return observeIntersection(visualElement.getInstance(), options, intersectionCallback);\n }, [shouldObserve, root, rootMargin, amount]);\n}\n/**\n * If IntersectionObserver is missing, we activate inView and fire onViewportEnter\n * on mount. This way, the page will be in the state the author expects users\n * to see it in for everyone.\n */\nfunction useMissingIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var _b = _a.fallback, fallback = _b === void 0 ? true : _b;\n useEffect(function () {\n if (!shouldObserve || !fallback)\n return;\n if (env !== \"production\") {\n warnOnce(false, \"IntersectionObserver not available on this device. whileInView animations will trigger on mount.\");\n }\n /**\n * Fire this in an rAF because, at this point, the animation state\n * won't have flushed for the first time and there's certain logic in\n * there that behaves differently on the initial animation.\n *\n * This hook should be quite rarely called so setting this in an rAF\n * is preferred to changing the behaviour of the animation state.\n */\n requestAnimationFrame(function () {\n var _a;\n state.hasEnteredView = true;\n var onViewportEnter = visualElement.getProps().onViewportEnter;\n onViewportEnter === null || onViewportEnter === void 0 ? void 0 : onViewportEnter(null);\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, true);\n });\n }, [shouldObserve]);\n}\n\nexport { useViewport };\n","var makeRenderlessComponent = function (hook) { return function (props) {\n hook(props);\n return null;\n}; };\n\nexport { makeRenderlessComponent };\n","import { useFocusGesture } from '../../gestures/use-focus-gesture.mjs';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.mjs';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.mjs';\nimport { useViewport } from './viewport/use-viewport.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar gestureAnimations = {\n inView: makeRenderlessComponent(useViewport),\n tap: makeRenderlessComponent(useTapGesture),\n focus: makeRenderlessComponent(useFocusGesture),\n hover: makeRenderlessComponent(useHoverGesture),\n};\n\nexport { gestureAnimations };\n","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { pipe } from 'popmotion';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\n/**\n * @param handlers -\n * @internal\n */\nfunction useTapGesture(_a) {\n var onTap = _a.onTap, onTapStart = _a.onTapStart, onTapCancel = _a.onTapCancel, whileTap = _a.whileTap, visualElement = _a.visualElement;\n var hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n var isPressing = useRef(false);\n var cancelPointerEndListeners = useRef(null);\n /**\n * Only set listener to passive if there are no external listeners.\n */\n var eventOptions = {\n passive: !(onTapStart || onTap || onTapCancel || onPointerDown),\n };\n function removePointerEndListener() {\n var _a;\n (_a = cancelPointerEndListeners.current) === null || _a === void 0 ? void 0 : _a.call(cancelPointerEndListeners);\n cancelPointerEndListeners.current = null;\n }\n function checkPointerEnd() {\n var _a;\n removePointerEndListener();\n isPressing.current = false;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, false);\n return !isDragActive();\n }\n function onPointerUp(event, info) {\n if (!checkPointerEnd())\n return;\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n !isNodeOrChild(visualElement.getInstance(), event.target)\n ? onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info)\n : onTap === null || onTap === void 0 ? void 0 : onTap(event, info);\n }\n function onPointerCancel(event, info) {\n if (!checkPointerEnd())\n return;\n onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info);\n }\n function onPointerDown(event, info) {\n var _a;\n removePointerEndListener();\n if (isPressing.current)\n return;\n isPressing.current = true;\n cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp, eventOptions), addPointerEvent(window, \"pointercancel\", onPointerCancel, eventOptions));\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, true);\n onTapStart === null || onTapStart === void 0 ? void 0 : onTapStart(event, info);\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined, eventOptions);\n useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };\n","import { AnimationType } from '../render/utils/types.mjs';\nimport { useDomEvent } from '../events/use-dom-event.mjs';\n\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\nfunction useFocusGesture(_a) {\n var whileFocus = _a.whileFocus, visualElement = _a.visualElement;\n var onFocus = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, true);\n };\n var onBlur = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, false);\n };\n useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };\n","import { useConstant } from './use-constant.mjs';\n\nvar counter = 0;\nvar incrementId = function () { return counter++; };\nvar useId = function () { return useConstant(incrementId); };\n/**\n * Ideally we'd use the following code to support React 18 optionally.\n * But this fairly fails in Webpack (otherwise treeshaking wouldn't work at all).\n * Need to come up with a different way of figuring this out.\n */\n// export const useId = (React as any).useId\n// ? (React as any).useId\n// : () => useConstant(incrementId)\n\nexport { useId };\n","import { useContext, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useId } from '../../utils/use-id.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() {\n var context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;\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 // Replace with useId when released in React\n var id = useId();\n useEffect(function () { return register(id); }, []);\n var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };\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","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n var prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (var i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, duration / 1000);\n if (dampingRatio < 1) {\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = duration * 1000;\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { __rest } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = Object.assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = Object.assign(Object.assign(Object.assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring(_a) {\n var { from = 0.0, to = 1.0, restSpeed = 2, restDelta } = _a, options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n const state = { done: false, value: from };\n let { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);\n let resolveSpring = zero;\n let resolveVelocity = zero;\n function createSpring() {\n const initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n const initialDelta = to - from;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n if (restDelta === undefined) {\n restDelta = Math.min(Math.abs(to - from) / 100, 0.4);\n }\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (to -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n resolveVelocity = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (dampingRatio *\n undampedAngularFreq *\n envelope *\n ((Math.sin(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta)) /\n angularFreq +\n initialDelta * Math.cos(angularFreq * t)) -\n envelope *\n (Math.cos(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta) -\n angularFreq *\n initialDelta *\n Math.sin(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n resolveSpring = (t) => to -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) *\n t);\n }\n else {\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (to -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n }\n createSpring();\n return {\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n const currentVelocity = resolveVelocity(t) * 1000;\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? to : current;\n return state;\n },\n flipTarget: () => {\n velocity = -velocity;\n [from, to] = [to, from];\n createSpring();\n },\n };\n}\nspring.needsInterpolation = (a, b) => typeof a === \"string\" || typeof b === \"string\";\nconst zero = (_t) => 0;\n\nexport { spring };\n","const progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","const mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { number, alpha } from '../numbers/index.mjs';\nimport { sanitize, clamp } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = clamp(0, 255);\nconst rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });\nconst rgba = {\n test: isColorString('rgb', 'red'),\n parse: splitColor('red', 'green', 'blue'),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => 'rgba(' +\n rgbUnit.transform(red) +\n ', ' +\n rgbUnit.transform(green) +\n ', ' +\n rgbUnit.transform(blue) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')',\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = '';\n let g = '';\n let b = '';\n let a = '';\n if (v.length > 5) {\n r = v.substr(1, 2);\n g = v.substr(3, 2);\n b = v.substr(5, 2);\n a = v.substr(7, 2);\n }\n else {\n r = v.substr(1, 1);\n g = v.substr(2, 1);\n b = v.substr(3, 1);\n a = v.substr(4, 1);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString('#'),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString('hsl', 'hue'),\n parse: splitColor('hue', 'saturation', 'lightness'),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return ('hsla(' +\n Math.round(hue) +\n ', ' +\n percent.transform(sanitize(saturation)) +\n ', ' +\n percent.transform(sanitize(lightness)) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')');\n },\n};\n\nexport { hsla };\n","function hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { mix } from './mix.mjs';\nimport { hsla, rgba, hex } from 'style-value-types';\nimport { invariant } from 'hey-listen';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\n\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const toExpo = to * to;\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nconst notAnimatable = (color) => `'${color}' is not an animatable color. Use the equivalent color code instead.`;\nconst mixColor = (from, to) => {\n let fromColorType = getColorType(from);\n let toColorType = getColorType(to);\n invariant(!!fromColorType, notAnimatable(from));\n invariant(!!toColorType, notAnimatable(to));\n let fromColor = fromColorType.parse(from);\n let toColor = toColorType.parse(to);\n if (fromColorType === hsla) {\n fromColor = hslaToRgba(fromColor);\n fromColorType = rgba;\n }\n if (toColorType === hsla) {\n toColor = hslaToRgba(toColor);\n toColorType = rgba;\n }\n const blended = Object.assign({}, fromColor);\n return (v) => {\n for (const key in blended) {\n if (key !== \"alpha\") {\n blended[key] = mixLinearColor(fromColor[key], toColor[key], v);\n }\n }\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n return fromColorType.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty('red')\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nconst colorToken = '${c}';\nconst numberToken = '${n}';\nfunction test(v) {\n var _a, _b, _c, _d;\n return (isNaN(v) &&\n isString(v) &&\n ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0);\n}\nfunction analyse(v) {\n if (typeof v === 'number')\n v = `${v}`;\n const values = [];\n let numColors = 0;\n const colors = v.match(colorRegex);\n if (colors) {\n numColors = colors.length;\n v = v.replace(colorRegex, colorToken);\n values.push(...colors.map(color.parse));\n }\n const numbers = v.match(floatRegex);\n if (numbers) {\n v = v.replace(floatRegex, numberToken);\n values.push(...numbers.map(number.parse));\n }\n return { values, numColors, tokenised: v };\n}\nfunction parse(v) {\n return analyse(v).values;\n}\nfunction createTransformer(v) {\n const { values, numColors, tokenised } = analyse(v);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === 'number' ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parse(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = { test, parse, createTransformer, getAnimatableNone };\n\nexport { complex };\n","const zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\nconst isNum = (v) => typeof v === 'number';\n\nexport { isNum, zeroPoint };\n","import { complex, color } from 'style-value-types';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { isNum } from './inc.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from 'hey-listen';\n\nfunction getMixer(origin, target) {\n if (isNum(origin)) {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = Object.assign(Object.assign({}, origin), target);\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nfunction analyse(value) {\n const parsed = complex.parse(value);\n const numValues = parsed.length;\n let numNumbers = 0;\n let numRGB = 0;\n let numHSL = 0;\n for (let i = 0; i < numValues; i++) {\n if (numNumbers || typeof parsed[i] === \"number\") {\n numNumbers++;\n }\n else {\n if (parsed[i].hue !== undefined) {\n numHSL++;\n }\n else {\n numRGB++;\n }\n }\n }\n return { parsed, numNumbers, numRGB, numHSL };\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyse(origin);\n const targetStats = analyse(target);\n const canInterpolate = originStats.numHSL === targetStats.numHSL &&\n originStats.numRGB === targetStats.numRGB &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.parsed, targetStats.parsed), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return (p) => `${p > 0 ? target : origin}`;\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","import { progress } from './progress.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { invariant } from 'hey-listen';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === 'number') {\n return mixNumber;\n }\n else if (typeof v === 'string') {\n if (color.test(v)) {\n return mixColor;\n }\n else {\n return mixComplex;\n }\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === 'object') {\n return mixObject;\n }\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\nfunction fastInterpolate([from, to], [mixer]) {\n return (v) => mixer(progress(from, to, v));\n}\nfunction slowInterpolate(input, mixers) {\n const inputLength = input.length;\n const lastInputIndex = inputLength - 1;\n return (v) => {\n let mixerIndex = 0;\n let foundMixerIndex = false;\n if (v <= input[0]) {\n foundMixerIndex = true;\n }\n else if (v >= input[lastInputIndex]) {\n mixerIndex = lastInputIndex - 1;\n foundMixerIndex = true;\n }\n if (!foundMixerIndex) {\n let i = 1;\n for (; i < inputLength; i++) {\n if (input[i] > v || i === lastInputIndex) {\n break;\n }\n }\n mixerIndex = i - 1;\n }\n const progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n return mixers[mixerIndex](progressInRange);\n };\n}\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\n invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n if (input[0] > input[inputLength - 1]) {\n input = [].concat(input);\n output = [].concat(output);\n input.reverse();\n output.reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const interpolator = inputLength === 2\n ? fastInterpolate(input, mixers)\n : slowInterpolate(input, mixers);\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","const reverseEasing = easing => p => 1 - easing(1 - p);\nconst mirrorEasing = easing => p => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\nconst createExpoIn = (power) => p => Math.pow(p, power);\nconst createBackIn = (power) => p => p * p * ((power + 1) * p - power);\nconst createAnticipate = (power) => {\n const backEasing = createBackIn(power);\n return p => (p *= 2) < 1\n ? 0.5 * backEasing(p)\n : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n};\n\nexport { createAnticipate, createBackIn, createExpoIn, mirrorEasing, reverseEasing };\n","import { createExpoIn, reverseEasing, mirrorEasing, createBackIn, createAnticipate } from './utils.mjs';\n\nconst DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nconst BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nconst BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nconst BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nconst linear = p => p;\nconst easeIn = createExpoIn(2);\nconst easeOut = reverseEasing(easeIn);\nconst easeInOut = mirrorEasing(easeIn);\nconst circIn = p => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circOut);\nconst backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nconst backOut = reverseEasing(backIn);\nconst backInOut = mirrorEasing(backIn);\nconst anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nconst ca = 4356.0 / 361.0;\nconst cb = 35442.0 / 1805.0;\nconst cc = 16061.0 / 1805.0;\nconst bounceOut = (p) => {\n if (p === 1 || p === 0)\n return p;\n const p2 = p * p;\n return p < BOUNCE_FIRST_THRESHOLD\n ? 7.5625 * p2\n : p < BOUNCE_SECOND_THRESHOLD\n ? 9.075 * p2 - 9.9 * p + 3.4\n : p < BOUNCE_THIRD_THRESHOLD\n ? ca * p2 - cb * p + cc\n : 10.8 * p * p - 20.52 * p + 10.72;\n};\nconst bounceIn = reverseEasing(bounceOut);\nconst bounceInOut = (p) => p < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0))\n : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n\nexport { anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, linear };\n","import { interpolate } from '../../utils/interpolate.mjs';\nimport { easeInOut } from '../../easing/index.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction defaultOffset(values) {\n const numValues = values.length;\n return values.map((_value, i) => i !== 0 ? i / (numValues - 1) : 0);\n}\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\nfunction keyframes({ from = 0, to = 1, ease, offset, duration = 300, }) {\n const state = { done: false, value: from };\n const values = Array.isArray(to) ? to : [from, to];\n const times = convertOffsetToTimes(offset && offset.length === values.length\n ? offset\n : defaultOffset(values), duration);\n function createInterpolator() {\n return interpolate(times, values, {\n ease: Array.isArray(ease) ? ease : defaultEasing(values, ease),\n });\n }\n let interpolator = createInterpolator();\n return {\n next: (t) => {\n state.value = interpolator(t);\n state.done = t >= duration;\n return state;\n },\n flipTarget: () => {\n values.reverse();\n interpolator = createInterpolator();\n },\n };\n}\n\nexport { convertOffsetToTimes, defaultEasing, defaultOffset, keyframes };\n","import { spring } from '../generators/spring.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { decay } from '../generators/decay.mjs';\n\nconst types = { keyframes, spring, decay };\nfunction detectAnimationFromOptions(config) {\n if (Array.isArray(config.to)) {\n return keyframes;\n }\n else if (types[config.type]) {\n return types[config.type];\n }\n const keys = new Set(Object.keys(config));\n if (keys.has(\"ease\") ||\n (keys.has(\"duration\") && !keys.has(\"dampingRatio\"))) {\n return keyframes;\n }\n else if (keys.has(\"dampingRatio\") ||\n keys.has(\"stiffness\") ||\n keys.has(\"mass\") ||\n keys.has(\"damping\") ||\n keys.has(\"restSpeed\") ||\n keys.has(\"restDelta\")) {\n return spring;\n }\n return keyframes;\n}\n\nexport { detectAnimationFromOptions };\n","function decay({ velocity = 0, from = 0, power = 0.8, timeConstant = 350, restDelta = 0.5, modifyTarget, }) {\n const state = { done: false, value: from };\n let amplitude = power * velocity;\n const ideal = from + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n if (target !== ideal)\n amplitude = target - from;\n return {\n next: (t) => {\n const delta = -amplitude * Math.exp(-t / timeConstant);\n state.done = !(delta > restDelta || delta < -restDelta);\n state.value = state.done ? target : target + delta;\n return state;\n },\n flipTarget: () => { },\n };\n}\n\nexport { decay };\n","function loopElapsed(elapsed, duration, delay = 0) {\n return elapsed - duration - delay;\n}\nfunction reverseElapsed(elapsed, duration, delay = 0, isForwardPlayback = true) {\n return isForwardPlayback\n ? loopElapsed(duration + -elapsed, duration, delay)\n : duration - (elapsed - duration) + delay;\n}\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\n\nexport { hasRepeatDelayElapsed, loopElapsed, reverseElapsed };\n","import { __rest } from 'tslib';\nimport { detectAnimationFromOptions } from './utils/detect-animation-from-options.mjs';\nimport sync, { cancelSync } from 'framesync';\nimport { interpolate } from '../utils/interpolate.mjs';\nimport { hasRepeatDelayElapsed, reverseElapsed, loopElapsed } from './utils/elapsed.mjs';\n\nconst framesync = (update) => {\n const passTimestamp = ({ delta }) => update(delta);\n return {\n start: () => sync.update(passTimestamp, true),\n stop: () => cancelSync.update(passTimestamp),\n };\n};\nfunction animate(_a) {\n var _b, _c;\n var { from, autoplay = true, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = \"loop\", repeatDelay = 0, onPlay, onStop, onComplete, onRepeat, onUpdate } = _a, options = __rest(_a, [\"from\", \"autoplay\", \"driver\", \"elapsed\", \"repeat\", \"repeatType\", \"repeatDelay\", \"onPlay\", \"onStop\", \"onComplete\", \"onRepeat\", \"onUpdate\"]);\n let { to } = options;\n let driverControls;\n let repeatCount = 0;\n let computedDuration = options.duration;\n let latest;\n let isComplete = false;\n let isForwardPlayback = true;\n let interpolateFromNumber;\n const animator = detectAnimationFromOptions(options);\n if ((_c = (_b = animator).needsInterpolation) === null || _c === void 0 ? void 0 : _c.call(_b, from, to)) {\n interpolateFromNumber = interpolate([0, 100], [from, to], {\n clamp: false,\n });\n from = 0;\n to = 100;\n }\n const animation = animator(Object.assign(Object.assign({}, options), { from, to }));\n function repeat() {\n repeatCount++;\n if (repeatType === \"reverse\") {\n isForwardPlayback = repeatCount % 2 === 0;\n elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n }\n else {\n elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n if (repeatType === \"mirror\")\n animation.flipTarget();\n }\n isComplete = false;\n onRepeat && onRepeat();\n }\n function complete() {\n driverControls.stop();\n onComplete && onComplete();\n }\n function update(delta) {\n if (!isForwardPlayback)\n delta = -delta;\n elapsed += delta;\n if (!isComplete) {\n const state = animation.next(Math.max(0, elapsed));\n latest = state.value;\n if (interpolateFromNumber)\n latest = interpolateFromNumber(latest);\n isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n }\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);\n if (isComplete) {\n if (repeatCount === 0)\n computedDuration !== null && computedDuration !== void 0 ? computedDuration : (computedDuration = elapsed);\n if (repeatCount < repeatMax) {\n hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n }\n else {\n complete();\n }\n }\n }\n function play() {\n onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n driverControls = driver(update);\n driverControls.start();\n }\n autoplay && play();\n return {\n stop: () => {\n onStop === null || onStop === void 0 ? void 0 : onStop();\n driverControls.stop();\n },\n };\n}\n\nexport { animate };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function (seconds) { return seconds * 1000; };\n\nexport { secondsToMilliseconds };\n","import { linear } from './index.mjs';\n\nconst a = (a1, a2) => 1.0 - 3.0 * a2 + 3.0 * a1;\nconst b = (a1, a2) => 3.0 * a2 - 6.0 * a1;\nconst c = (a1) => 3.0 * a1;\nconst calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\nconst getSlope = (t, a1, a2) => 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n }\n else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nconst newtonIterations = 8;\nconst newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (let i = 0; i < newtonIterations; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n if (mX1 === mY1 && mX2 === mY2)\n return linear;\n const sampleValues = new Float32Array(kSplineTableSize);\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n const dist = (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= newtonMinSlope) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n else if (initialSlope === 0.0) {\n return guessForT;\n }\n else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\n\nvar easingLookup = {\n linear: linear,\n easeIn: easeIn,\n easeInOut: easeInOut,\n easeOut: easeOut,\n circIn: circIn,\n circInOut: circInOut,\n circOut: circOut,\n backIn: backIn,\n backInOut: backInOut,\n backOut: backOut,\n anticipate: anticipate,\n bounceIn: bounceIn,\n bounceInOut: bounceInOut,\n bounceOut: bounceOut,\n};\nvar easingDefinitionToFunction = function (definition) {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, \"Cubic bezier arrays must contain four numerical values.\");\n var _a = __read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, \"Invalid easing type '\".concat(definition, \"'\"));\n return easingLookup[definition];\n }\n return definition;\n};\nvar isEasingArray = function (ease) {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };\n","import { complex } from 'style-value-types';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nvar isAnimatable = function (key, value) {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n complex.test(value) && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { __assign } from 'tslib';\nimport { isKeyframesTarget } from './is-keyframes-target.mjs';\n\nvar underDampedSpring = function () { return ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n}); };\nvar criticallyDampedSpring = function (to) { return ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n}); };\nvar linearTween = function () { return ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n}); };\nvar keyframes = function (values) { return ({\n type: \"keyframes\",\n duration: 0.8,\n values: values,\n}); };\nvar defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: criticallyDampedSpring,\n scaleY: criticallyDampedSpring,\n scale: criticallyDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: criticallyDampedSpring,\n};\nvar getDefaultTransition = function (valueKey, to) {\n var transitionFactory;\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n }\n else {\n transitionFactory =\n defaultTransitions[valueKey] || defaultTransitions.default;\n }\n return __assign({ to: to }, transitionFactory(to));\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\nconst maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity']);\nfunction applyDefaultFilter(v) {\n let [name, value] = v.slice(0, -1).split('(');\n if (name === 'drop-shadow')\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, '');\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + '(' + defaultValue + unit + ')';\n}\nconst functionRegex = /([a-z-]*)\\(.*?\\)/g;\nconst filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(' ') : v;\n } });\n\nexport { filter };\n","import { __assign } from 'tslib';\nimport { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nvar defaultValueTypes = __assign(__assign({}, numberValueTypes), { \n // Color props\n color: color, backgroundColor: color, outlineColor: color, fill: color, stroke: color, \n // Border props\n borderColor: color, borderTopColor: color, borderRightColor: color, borderBottomColor: color, borderLeftColor: color, filter: filter, WebkitFilter: filter });\n/**\n * Gets the default ValueType for the provided value key\n */\nvar getDefaultValueType = function (key) { return defaultValueTypes[key]; };\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n var _a;\n var defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","var instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","import { __assign, __rest, __spreadArray, __read } from 'tslib';\nimport { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { getDefaultTransition } from './default-transitions.mjs';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\n\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined(_a) {\n _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n return !!Object.keys(transition).length;\n}\nvar legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions(_a) {\n var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest(_a, [\"ease\", \"times\", \"yoyo\", \"flip\", \"loop\"]);\n var options = __assign({}, transition);\n if (times)\n options[\"offset\"] = times;\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n if (transition.duration)\n options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay)\n options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n if (ease) {\n options[\"ease\"] = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n if (transition.type === \"tween\")\n options.type = \"keyframes\";\n /**\n * TODO: These options are officially removed from the API.\n */\n if (yoyo || loop || flip) {\n warning(!legacyRepeatWarning, \"yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.\");\n legacyRepeatWarning = true;\n if (yoyo) {\n options.repeatType = \"reverse\";\n }\n else if (loop) {\n options.repeatType = \"loop\";\n }\n else if (flip) {\n options.repeatType = \"mirror\";\n }\n options.repeat = loop || yoyo || flip || transition.repeat;\n }\n /**\n * TODO: Popmotion 9 has the ability to automatically detect whether to use\n * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n * It'd be good to introduce a similar thing here.\n */\n if (transition.type !== \"spring\")\n options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n var _a, _b;\n var valueTransition = getValueTransition(transition, key) || {};\n return (_b = (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : transition.delay) !== null && _b !== void 0 ? _b : 0;\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = __spreadArray([], __read(options.to), false);\n options.to[0] = options.from;\n }\n return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n var _a;\n if (Array.isArray(options.to)) {\n (_a = transition.duration) !== null && _a !== void 0 ? _a : (transition.duration = 0.8);\n }\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n if (!isTransitionDefined(transition)) {\n transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));\n }\n return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n var _a;\n var valueTransition = getValueTransition(transition, key);\n var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();\n var isTargetAnimatable = isAnimatable(key, target);\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n origin = getAnimatableNone(key, target);\n }\n else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n }\n else if (!Array.isArray(target) &&\n isZero(target) &&\n typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n var isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \".concat(key, \" from \\\"\").concat(origin, \"\\\" to \\\"\").concat(target, \"\\\". \").concat(origin, \" is not an animatable value - to enable this animation set \").concat(origin, \" to a value animatable to \").concat(target, \" via the `style` property.\"));\n function start() {\n var options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete: onComplete,\n onUpdate: function (v) { return value.set(v); },\n };\n return valueTransition.type === \"inertia\" ||\n valueTransition.type === \"decay\"\n ? inertia(__assign(__assign({}, options), valueTransition))\n : animate(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), { onUpdate: function (v) {\n var _a;\n options.onUpdate(v);\n (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);\n }, onComplete: function () {\n var _a;\n options.onComplete();\n (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n } }));\n }\n function set() {\n var _a, _b;\n var finalTarget = resolveFinalValueInKeyframes(target);\n value.set(finalTarget);\n onComplete();\n (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, finalTarget);\n (_b = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _b === void 0 ? void 0 : _b.call(valueTransition);\n return { stop: function () { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction isZero(value) {\n return (value === 0 ||\n (typeof value === \"string\" &&\n parseFloat(value) === 0 &&\n value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\"\n ? 0\n : getAnimatableNone(\"\", potentialUnitType);\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n */\nfunction startAnimation(key, value, target, transition) {\n if (transition === void 0) { transition = {}; }\n if (instantAnimationState.current) {\n transition = { type: false };\n }\n return value.start(function (onComplete) {\n var delayTimer;\n var controls;\n var animation = getAnimation(key, value, target, transition, onComplete);\n var delay = getDelayFromTransition(transition, key);\n var start = function () { return (controls = animation()); };\n if (delay) {\n delayTimer = window.setTimeout(start, secondsToMilliseconds(delay));\n }\n else {\n start();\n }\n return function () {\n clearTimeout(delayTimer);\n controls === null || controls === void 0 ? void 0 : controls.stop();\n };\n });\n}\n\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };\n","import { animate } from './index.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { getFrameData } from 'framesync';\n\nfunction inertia({ from = 0, velocity = 0, min, max, power = 0.8, timeConstant = 750, bounceStiffness = 500, bounceDamping = 10, restDelta = 1, modifyTarget, driver, onUpdate, onComplete, onStop, }) {\n let currentAnimation;\n function isOutOfBounds(v) {\n return (min !== undefined && v < min) || (max !== undefined && v > max);\n }\n function boundaryNearest(v) {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n }\n function startAnimation(options) {\n currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n currentAnimation = animate(Object.assign(Object.assign({}, options), { driver, onUpdate: (v) => {\n var _a;\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(v);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);\n }, onComplete,\n onStop }));\n }\n function startSpring(options) {\n startAnimation(Object.assign({ type: \"spring\", stiffness: bounceStiffness, damping: bounceDamping, restDelta }, options));\n }\n if (isOutOfBounds(from)) {\n startSpring({ from, velocity, to: boundaryNearest(from) });\n }\n else {\n let target = power * velocity + from;\n if (typeof modifyTarget !== \"undefined\")\n target = modifyTarget(target);\n const boundary = boundaryNearest(target);\n const heading = boundary === min ? -1 : 1;\n let prev;\n let current;\n const checkBoundary = (v) => {\n prev = current;\n current = v;\n velocity = velocityPerSecond(v - prev, getFrameData().delta);\n if ((heading === 1 && v > boundary) ||\n (heading === -1 && v < boundary)) {\n startSpring({ from: v, to: boundary, velocity });\n }\n };\n startAnimation({\n type: \"decay\",\n from,\n velocity,\n timeConstant,\n power,\n restDelta,\n modifyTarget,\n onUpdate: isOutOfBounds(target) ? checkBoundary : undefined,\n });\n }\n return {\n stop: () => currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop(),\n };\n}\n\nexport { inertia };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nvar isNumericalString = function (v) { return /^\\-?\\d*\\.?\\d+$/.test(v); };\n\nexport { isNumericalString };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nvar isZeroValueString = function (v) { return /^0[^.\\s]+$/.test(v); };\n\nexport { isZeroValueString };\n","/**\n * Tests a provided value against a ValueType\n */\nvar testValueType = function (v) { return function (type) { return type.test(v); }; };\n\nexport { testValueType };\n","import { number, px, percent, degrees, vw, vh } from 'style-value-types';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nvar findDimensionValueType = function (v) {\n return dimensionValueTypes.find(testValueType(v));\n};\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nvar auto = {\n test: function (v) { return v === \"auto\"; },\n parse: function (v) { return v; },\n};\n\nexport { auto };\n","import { __spreadArray, __read } from 'tslib';\nimport { color, complex } from 'style-value-types';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nvar valueTypes = __spreadArray(__spreadArray([], __read(dimensionValueTypes), false), [color, complex], false);\n/**\n * Tests a value against the list of ValueTypes\n */\nvar findValueType = function (v) { return valueTypes.find(testValueType(v)); };\n\nexport { findValueType };\n","import { __rest, __assign, __spreadArray, __read } from 'tslib';\nimport { complex } from 'style-value-types';\nimport { isNumericalString } from '../../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.mjs';\nimport { resolveVariant } from './variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n var resolved = resolveVariant(visualElement, definition);\n var _a = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {}, _b = _a.transitionEnd, transitionEnd = _b === void 0 ? {} : _b; _a.transition; var target = __rest(_a, [\"transitionEnd\", \"transition\"]);\n target = __assign(__assign({}, target), transitionEnd);\n for (var key in target) {\n var value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n var reversedLabels = __spreadArray([], __read(variantLabels), false).reverse();\n reversedLabels.forEach(function (key) {\n var _a;\n var variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setVariants(child, variantLabels);\n });\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b, _c;\n var _d;\n var newValueKeys = Object.keys(target).filter(function (key) { return !visualElement.hasValue(key); });\n var numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (var i = 0; i < numNewValues; i++) {\n var key = newValueKeys[i];\n var targetValue = target[key];\n var value = null;\n /**\n * If the target is a series of keyframes, we can use the first value\n * in the array. If this first value is null, we'll still need to read from the DOM.\n */\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n /**\n * If the target isn't keyframes, or the first keyframe was null, we need to\n * first check if an origin value was explicitly defined in the transition as \"from\",\n * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n */\n if (value === null) {\n value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n }\n /**\n * If value is still undefined or null, ignore it. Preferably this would throw,\n * but this was causing issues in Framer.\n */\n if (value === undefined || value === null)\n continue;\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n visualElement.addValue(key, motionValue(value));\n (_c = (_d = origin)[key]) !== null && _c !== void 0 ? _c : (_d[key] = value);\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n var valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a, _b;\n var origin = {};\n for (var key in target) {\n origin[key] =\n (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","import { __read, __rest, __assign } from 'tslib';\nimport { startAnimation } from '../../animation/utils/transitions.mjs';\nimport { setTarget } from './setters.mjs';\nimport { resolveVariant } from './variants.mjs';\nimport { isTransformProp } from '../html/utils/transform.mjs';\n\nfunction animateVisualElement(visualElement, definition, options) {\n if (options === void 0) { options = {}; }\n visualElement.notifyAnimationStart(definition);\n var animation;\n if (Array.isArray(definition)) {\n var animations = definition.map(function (variant) {\n return animateVariant(visualElement, variant, options);\n });\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n var resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = animateTarget(visualElement, resolvedDefinition, options);\n }\n return animation.then(function () {\n return visualElement.notifyAnimationComplete(definition);\n });\n}\nfunction animateVariant(visualElement, variant, options) {\n var _a;\n if (options === void 0) { options = {}; }\n var resolved = resolveVariant(visualElement, variant, options.custom);\n var _b = (resolved || {}).transition, transition = _b === void 0 ? visualElement.getDefaultTransition() || {} : _b;\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getAnimation = resolved\n ? function () { return animateTarget(visualElement, resolved, options); }\n : function () { return Promise.resolve(); };\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getChildAnimations = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.size)\n ? function (forwardDelay) {\n if (forwardDelay === void 0) { forwardDelay = 0; }\n var _a = transition.delayChildren, delayChildren = _a === void 0 ? 0 : _a, staggerChildren = transition.staggerChildren, staggerDirection = transition.staggerDirection;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : function () { return Promise.resolve(); };\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n var when = transition.when;\n if (when) {\n var _c = __read(when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation], 2), first = _c[0], last = _c[1];\n return first().then(last);\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\n/**\n * @internal\n */\nfunction animateTarget(visualElement, definition, _a) {\n var _b;\n var _c = _a === void 0 ? {} : _a, _d = _c.delay, delay = _d === void 0 ? 0 : _d, transitionOverride = _c.transitionOverride, type = _c.type;\n var _e = visualElement.makeTargetAnimatable(definition), _f = _e.transition, transition = _f === void 0 ? visualElement.getDefaultTransition() : _f, transitionEnd = _e.transitionEnd, target = __rest(_e, [\"transition\", \"transitionEnd\"]);\n if (transitionOverride)\n transition = transitionOverride;\n var animations = [];\n var animationTypeState = type && ((_b = visualElement.animationState) === null || _b === void 0 ? void 0 : _b.getState()[type]);\n for (var key in target) {\n var value = visualElement.getValue(key);\n var valueTarget = target[key];\n if (!value ||\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n var valueTransition = __assign({ delay: delay }, transition);\n /**\n * Make animation instant if this is a transform prop and we should reduce motion.\n */\n if (visualElement.shouldReduceMotion && isTransformProp(key)) {\n valueTransition = __assign(__assign({}, valueTransition), { type: false, delay: 0 });\n }\n var animation = startAnimation(key, value, valueTarget, valueTransition);\n animations.push(animation);\n }\n return Promise.all(animations).then(function () {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n}\nfunction animateChildren(visualElement, variant, delayChildren, staggerChildren, staggerDirection, options) {\n if (delayChildren === void 0) { delayChildren = 0; }\n if (staggerChildren === void 0) { staggerChildren = 0; }\n if (staggerDirection === void 0) { staggerDirection = 1; }\n var animations = [];\n var maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n var generateStaggerDuration = staggerDirection === 1\n ? function (i) {\n if (i === void 0) { i = 0; }\n return i * staggerChildren;\n }\n : function (i) {\n if (i === void 0) { i = 0; }\n return maxStaggerDuration - i * staggerChildren;\n };\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach(function (child, i) {\n animations.push(animateVariant(child, variant, __assign(__assign({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function () { return child.notifyAnimationComplete(variant); }));\n });\n return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n visualElement.forEachValue(function (value) { return value.stop(); });\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation(_a, key) {\n var protectedKeys = _a.protectedKeys, needsAnimating = _a.needsAnimating;\n var shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\n\nexport { animateVisualElement, sortByTreeOrder, stopAnimation };\n","import { __spreadArray, __read, __assign, __rest } from 'tslib';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { animateVisualElement } from './animation.mjs';\nimport { AnimationType } from './types.mjs';\nimport { isVariantLabels, resolveVariant, isVariantLabel } from './variants.mjs';\n\nvar variantPriorityOrder = [\n AnimationType.Animate,\n AnimationType.InView,\n AnimationType.Focus,\n AnimationType.Hover,\n AnimationType.Tap,\n AnimationType.Drag,\n AnimationType.Exit,\n];\nvar reversePriorityOrder = __spreadArray([], __read(variantPriorityOrder), false).reverse();\nvar numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return function (animations) {\n return Promise.all(animations.map(function (_a) {\n var animation = _a.animation, options = _a.options;\n return animateVisualElement(visualElement, animation, options);\n }));\n };\n}\nfunction createAnimationState(visualElement) {\n var animate = animateList(visualElement);\n var state = createState();\n var allAnimatedKeys = {};\n var isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n var buildResolvedTypeValues = function (acc, definition) {\n var resolved = resolveVariant(visualElement, definition);\n if (resolved) {\n resolved.transition; var transitionEnd = resolved.transitionEnd, target = __rest(resolved, [\"transition\", \"transitionEnd\"]);\n acc = __assign(__assign(__assign({}, acc), target), transitionEnd);\n }\n return acc;\n };\n function isAnimated(key) {\n return allAnimatedKeys[key] !== undefined;\n }\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(options, changedActiveType) {\n var _a;\n var props = visualElement.getProps();\n var context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n var animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n var removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n var encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n var removedVariantIndex = Infinity;\n var _loop_1 = function (i) {\n var type = reversePriorityOrder[i];\n var typeState = state[type];\n var prop = (_a = props[type]) !== null && _a !== void 0 ? _a : context[type];\n var propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n var activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n var isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = __assign({}, encounteredKeys);\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n return \"continue\";\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n var variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n var shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n var definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n var resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n var _b = typeState.prevResolvedValues, prevResolvedValues = _b === void 0 ? {} : _b;\n var allKeys = __assign(__assign({}, prevResolvedValues), resolvedValues);\n var markToAnimate = function (key) {\n shouldAnimateType = true;\n removedKeys.delete(key);\n typeState.needsAnimating[key] = true;\n };\n for (var key in allKeys) {\n var next = resolvedValues[key];\n var prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n if (next !== prev) {\n /**\n * If both values are keyframes, we need to shallow compare them to\n * detect whether any value has changed. If it has, we animate it.\n */\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n if (!shallowCompare(next, prev) || variantDidChange) {\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we want to ensure it doesn't animate by\n * adding it to the list of protected keys.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n else if (next !== undefined) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = __assign(__assign({}, encounteredKeys), resolvedValues);\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n * TODO: Test as this should probably still handle animations triggered\n * by removed values?\n */\n if (shouldAnimateType && !isInherited) {\n animations.push.apply(animations, __spreadArray([], __read(definitionList.map(function (animation) { return ({\n animation: animation,\n options: __assign({ type: type }, options),\n }); })), false));\n }\n };\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (var i = 0; i < numAnimationTypes; i++) {\n _loop_1(i);\n }\n allAnimatedKeys = __assign({}, encounteredKeys);\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n var fallbackAnimation_1 = {};\n removedKeys.forEach(function (key) {\n var fallbackTarget = visualElement.getBaseTarget(key);\n if (fallbackTarget !== undefined) {\n fallbackAnimation_1[key] = fallbackTarget;\n }\n });\n animations.push({ animation: fallbackAnimation_1 });\n }\n var shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n props.initial === false &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive, options) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n var animations = animateChanges(options, type);\n for (var key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n isAnimated: isAnimated,\n animateChanges: animateChanges,\n setActive: setActive,\n setAnimateFunction: setAnimateFunction,\n getState: function () { return state; },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (isVariantLabels(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive) {\n if (isActive === void 0) { isActive = false; }\n return {\n isActive: isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n var _a;\n return _a = {},\n _a[AnimationType.Animate] = createTypeState(true),\n _a[AnimationType.InView] = createTypeState(),\n _a[AnimationType.Hover] = createTypeState(),\n _a[AnimationType.Tap] = createTypeState(),\n _a[AnimationType.Drag] = createTypeState(),\n _a[AnimationType.Focus] = createTypeState(),\n _a[AnimationType.Exit] = createTypeState(),\n _a;\n}\n\nexport { checkVariantsDidChange, createAnimationState, variantPriorityOrder };\n","import { __read } from 'tslib';\nimport { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { createAnimationState } from '../../render/utils/animation-state.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar animations = {\n animation: makeRenderlessComponent(function (_a) {\n var visualElement = _a.visualElement, animate = _a.animate;\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n if (isAnimationControls(animate)) {\n useEffect(function () { return animate.subscribe(visualElement); }, [animate]);\n }\n }),\n exit: makeRenderlessComponent(function (props) {\n var custom = props.custom, visualElement = props.visualElement;\n var _a = __read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];\n var presenceContext = useContext(PresenceContext);\n useEffect(function () {\n var _a, _b;\n visualElement.isPresent = isPresent;\n var animation = (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Exit, !isPresent, { custom: (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.custom) !== null && _b !== void 0 ? _b : custom });\n !isPresent && (animation === null || animation === void 0 ? void 0 : animation.then(safeToRemove));\n }, [isPresent]);\n }),\n};\n\nexport { animations };\n","const isPoint = (point) => point.hasOwnProperty('x') && point.hasOwnProperty('y');\n\nexport { isPoint };\n","import { isPoint } from './is-point.mjs';\n\nconst isPoint3D = (point) => isPoint(point) && point.hasOwnProperty('z');\n\nexport { isPoint3D };\n","import { isPoint } from './is-point.mjs';\nimport { isPoint3D } from './is-point-3d.mjs';\nimport { isNum } from './inc.mjs';\n\nconst distance1D = (a, b) => Math.abs(a - b);\nfunction distance(a, b) {\n if (isNum(a) && isNum(b)) {\n return distance1D(a, b);\n }\n else if (isPoint(a) && isPoint(b)) {\n const xDelta = distance1D(a.x, b.x);\n const yDelta = distance1D(a.y, b.y);\n const zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));\n }\n}\n\nexport { distance };\n","import { __assign } from 'tslib';\nimport { isMouseEvent, isTouchEvent } from './utils/event-type.mjs';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { secondsToMilliseconds } from '../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { distance, pipe } from 'popmotion';\n\n/**\n * @internal\n */\nvar PanSession = /** @class */ (function () {\n function PanSession(event, handlers, _a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, transformPagePoint = _b.transformPagePoint;\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = function () {\n if (!(_this.lastMoveEvent && _this.lastMoveEventInfo))\n return;\n var info = getPanInfo(_this.lastMoveEventInfo, _this.history);\n var isPanStarted = _this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n var isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n var point = info.point;\n var timestamp = getFrameData().timestamp;\n _this.history.push(__assign(__assign({}, point), { timestamp: timestamp }));\n var _a = _this.handlers, onStart = _a.onStart, onMove = _a.onMove;\n if (!isPanStarted) {\n onStart && onStart(_this.lastMoveEvent, info);\n _this.startEvent = _this.lastMoveEvent;\n }\n onMove && onMove(_this.lastMoveEvent, info);\n };\n this.handlePointerMove = function (event, info) {\n _this.lastMoveEvent = event;\n _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a `