{"version":3,"file":"static/chunks/761-3c21db6846e87626.js","mappings":"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","sources":["webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.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/animators/waapi/utils/get-final-keyframe.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/memo.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/animators/utils/can-animate.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/ease.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/back.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/anticipate.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/utils/map.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/mix/immediate.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/mix/color.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/mix/visibility.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/mix/complex.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/mix/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/interpolate.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/offsets/default.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/offsets/time.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.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/animation/utils/transitions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LazyContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionConfigContext.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/context/SwitchLayoutGroupContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/circ.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/event-info.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/render-step.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/batcher.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/frame.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/microtask.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/shallow-compare.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/animation/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/animations.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/hover.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/focus.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/gestures/press.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/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/load-features.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/projection/geometry/conversion.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/geometry/models.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.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/utils/measure.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-none.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/html/utils/make-none-animatable.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/reduced-motion/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/store.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/VisualElement.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.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/motion/utils/use-visual-element.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/context/MotionContext/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/index.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/dom/utils/camel-to-dash.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/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/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/html/config-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/render/dom/utils/is-css-variable.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/render/dom/utils/unit-conversion.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/render/dom/value-types/defaults.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/dimensions.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/dom/value-types/test.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/value-types/get-as-type.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/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/html/utils/transform.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/camel-case-attrs.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.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/svg/utils/scrape-motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/resolve-variants.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/variant-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/array.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/clamp.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/errors.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-browser.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-ref-object.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/utils/mix/number.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/noop.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/pipe.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/progress.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/resolve-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/time-conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-constant.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/velocity-per-second.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/hex.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/color/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/complex/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/types/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/use-will-change/WillChangeMotionValue.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/use-will-change/get-will-change-name.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/value/utils/resolve-motion-value.mjs"],"sourcesContent":["/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n\nexport { acceleratedValues };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\nexport { getDefaultTransition };\n","const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\nexport { getFinalKeyframe };\n","function memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n","import { complex } from '../../value/types/complex/index.mjs';\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 */\nconst isAnimatable = (value, name) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (name === \"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) || value === \"0\") && // 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 { warning } from '../../../utils/errors.mjs';\nimport { isAnimatable } from '../../utils/is-animatable.mjs';\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null)\n return false;\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(originKeyframe, name);\n const isTargetAnimatable = isAnimatable(targetKeyframe, name);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \\`style\\` property.`);\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return hasKeyframesChanged(keyframes) || (type === \"spring\" && velocity);\n}\n\nexport { canAnimate };\n","import { flushKeyframeResolvers } from '../../render/utils/KeyframesResolver.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { canAnimate } from './utils/can-animate.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nclass BaseAnimation {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", ...options }) {\n // Track whether the animation has been stopped. Stopped animations won't restart.\n this.isStopped = false;\n this.hasAttemptedResolve = false;\n this.options = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n ...options,\n };\n this.updateFinishedPromise();\n }\n /**\n * A getter for resolved data. If keyframes are not yet resolved, accessing\n * this.resolved will synchronously flush all pending keyframe resolvers.\n * This is a deoptimisation, but at its worst still batches read/writes.\n */\n get resolved() {\n if (!this._resolved && !this.hasAttemptedResolve) {\n flushKeyframeResolvers();\n }\n return this._resolved;\n }\n /**\n * A method to be called when the keyframes resolver completes. This method\n * will check if its possible to run the animation and, if not, skip it.\n * Otherwise, it will call initPlayback on the implementing class.\n */\n onKeyframesResolved(keyframes, finalKeyframe) {\n this.hasAttemptedResolve = true;\n const { name, type, velocity, delay, onComplete, onUpdate, isGenerator, } = this.options;\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!isGenerator && !canAnimate(keyframes, name, type, velocity)) {\n // Finish immediately\n if (instantAnimationState.current || !delay) {\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete === null || onComplete === void 0 ? void 0 : onComplete();\n this.resolveFinishedPromise();\n return;\n }\n // Finish after a delay\n else {\n this.options.duration = 0;\n }\n }\n const resolvedAnimation = this.initPlayback(keyframes, finalKeyframe);\n if (resolvedAnimation === false)\n return;\n this._resolved = {\n keyframes,\n finalKeyframe,\n ...resolvedAnimation,\n };\n this.onPostResolved();\n }\n onPostResolved() { }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.currentFinishedPromise.then(resolve, reject);\n }\n updateFinishedPromise() {\n this.currentFinishedPromise = new Promise((resolve) => {\n this.resolveFinishedPromise = resolve;\n });\n }\n}\n\nexport { BaseAnimation };\n","import { velocityPerSecond } from '../../../utils/velocity-per-second.mjs';\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nexport { calcGeneratorVelocity };\n","import { warning } from '../../../utils/errors.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../../utils/time-conversion.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 <= secondsToMilliseconds(maxDuration), \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\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 /**\n * Critically-damped spring\n */\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 = secondsToMilliseconds(duration);\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 { millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { findSpring, calcAngularFreq } from './find.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 = {\n velocity: 0.0,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: 1.0,\n };\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring({ keyframes, restDelta, restSpeed, ...options }) {\n const origin = keyframes[0];\n const target = keyframes[keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -millisecondsToSeconds(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale ? 0.01 : 2);\n restDelta || (restDelta = isGranularScale ? 0.005 : 0.5);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\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 return {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = initialVelocity;\n if (t !== 0) {\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity = calcGeneratorVelocity(resolveSpring, t, current);\n }\n else {\n currentVelocity = 0;\n }\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n };\n}\n\nexport { spring };\n","import { spring } from './spring/index.mjs';\nimport { calcGeneratorVelocity } from './utils/velocity.mjs';\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (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 let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: calcGeneratorVelocity(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nexport { inertia };\n","import { noop } from '../utils/noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = cubicBezier(0.42, 0, 1, 1);\nconst easeOut = cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n","const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\n","import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = reverseEasing(backOut);\nconst backInOut = mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n","import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n","import { invariant } from '../../utils/errors.mjs';\nimport { cubicBezier } from '../cubic-bezier.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { easeIn, easeInOut, easeOut } from '../ease.mjs';\nimport { circIn, circInOut, circOut } from '../circ.mjs';\nimport { backIn, backInOut, backOut } from '../back.mjs';\nimport { anticipate } from '../anticipate.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst easingDefinitionToFunction = (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 const [x1, y1, x2, y2] = definition;\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 '${definition}'`);\n return easingLookup[definition];\n }\n return definition;\n};\n\nexport { easingDefinitionToFunction };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction 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","function mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\nexport { mixImmediate };\n","import { mixNumber } from './number.mjs';\nimport { warning } from '../errors.mjs';\nimport { hslaToRgba } from '../hsla-to-rgba.mjs';\nimport { hex } from '../../value/types/color/hex.mjs';\nimport { rgba } from '../../value/types/color/rgba.mjs';\nimport { hsla } from '../../value/types/color/hsla.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Framer Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return mixImmediate(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","const invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\nexport { invisibleValues, mixVisibility };\n","import { mixNumber as mixNumber$1 } from './number.mjs';\nimport { mixColor } from './color.mjs';\nimport { pipe } from '../pipe.mjs';\nimport { warning } from '../errors.mjs';\nimport { color } from '../../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../../value/types/complex/index.mjs';\nimport { isCSSVariableToken } from '../../render/dom/utils/is-css-variable.mjs';\nimport { invisibleValues, mixVisibility } from './visibility.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\nfunction mixNumber(a, b) {\n return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject;\n }\n return mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[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 matchOrder(origin, target) {\n var _a;\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = (_a = origin.values[originIndex]) !== null && _a !== void 0 ? _a : 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (invisibleValues.has(target) &&\n !originStats.values.length)) {\n return mixVisibility(origin, target);\n }\n return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), 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 mixImmediate(origin, target);\n }\n};\n\nexport { getMixer, mixArray, mixComplex, mixObject };\n","import { getMixer } from './complex.mjs';\nimport { mixNumber } from './number.mjs';\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return mixNumber(from, to, p);\n }\n const mixer = getMixer(from);\n return mixer(from, to);\n}\n\nexport { mix };\n","import { invariant } from './errors.mjs';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\nimport { noop } from './noop.mjs';\nimport { mix } from './mix/index.mjs';\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || mix;\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] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\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 /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && input[0] === input[1])\n return () => output[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","import { mixNumber } from '../mix/number.mjs';\nimport { progress } from '../progress.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mixNumber(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n","import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\n","import { easeInOut } from '../../easing/ease.mjs';\nimport { isEasingArray } from '../../easing/utils/is-easing-array.mjs';\nimport { easingDefinitionToFunction } from '../../easing/utils/map.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { convertOffsetToTimes } from '../../utils/offsets/time.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nexport { defaultEasing, keyframes };\n","/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\nexport { calcGeneratorDuration, maxGeneratorDuration };\n","import { time } from '../../../frameloop/sync-time.mjs';\nimport { frame, cancelFrame, frameData } from '../../../frameloop/frame.mjs';\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: () => frame.update(passTimestamp, true),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (frameData.isProcessing ? frameData.timestamp : time.now()),\n };\n};\n\nexport { frameloopDriver };\n","import { KeyframeResolver } from '../../render/utils/KeyframesResolver.mjs';\nimport { spring } from '../generators/spring/index.mjs';\nimport { inertia } from '../generators/inertia.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { mix } from '../../utils/mix/index.mjs';\nimport { calcGeneratorDuration } from '../generators/utils/calc-duration.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { invariant } from '../../utils/errors.mjs';\nimport { frameloopDriver } from './drivers/driver-frameloop.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nconst generators = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\nconst percentToProgress = (percent) => percent / 100;\n/**\n * Animation that runs on the main thread. Designed to be WAAPI-spec in the subset of\n * features we expose publically. Mostly the compatibility is to ensure visual identity\n * between both WAAPI and main thread animations.\n */\nclass MainThreadAnimation extends BaseAnimation {\n constructor({ KeyframeResolver: KeyframeResolver$1 = KeyframeResolver, ...options }) {\n super(options);\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * The time at which the animation was started.\n */\n this.startTime = null;\n /**\n * The time at which the animation was cancelled.\n */\n this.cancelTime = null;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * The state of the animation to apply when the animation is resolved. This\n * allows calls to the public API to control the animation before it is resolved,\n * without us having to resolve it first.\n */\n this.pendingPlayState = \"running\";\n this.state = \"idle\";\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n const { onStop } = this.options;\n onStop && onStop();\n };\n const { name, motionValue, keyframes } = this.options;\n const onResolved = (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe);\n if (name && motionValue && motionValue.owner) {\n this.resolver = motionValue.owner.resolveKeyframes(keyframes, onResolved, name, motionValue);\n }\n else {\n this.resolver = new KeyframeResolver$1(keyframes, onResolved, name, motionValue);\n }\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes$1) {\n const { type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = this.options;\n const generatorFactory = generators[type] || keyframes;\n /**\n * If our generator doesn't support mixing numbers, we need to replace keyframes with\n * [0, 100] and then make a function that maps that to the actual keyframes.\n *\n * 100 is chosen instead of 1 as it works nicer with spring animations.\n */\n let mapPercentToKeyframes;\n let mirroredGenerator;\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(keyframes$1.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`);\n }\n mapPercentToKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...this.options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n mirroredGenerator = generatorFactory({\n ...this.options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n const resolvedDuration = calculatedDuration + repeatDelay;\n const totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n return {\n generator,\n mirroredGenerator,\n mapPercentToKeyframes,\n calculatedDuration,\n resolvedDuration,\n totalDuration,\n };\n }\n onPostResolved() {\n const { autoplay = true } = this.options;\n this.play();\n if (this.pendingPlayState === \"paused\" || !autoplay) {\n this.pause();\n }\n else {\n this.state = this.pendingPlayState;\n }\n }\n tick(timestamp, sample = false) {\n const { resolved } = this;\n // If the animations has failed to resolve, return the final keyframe.\n if (!resolved) {\n const { keyframes } = this.options;\n return { done: true, value: keyframes[keyframes.length - 1] };\n }\n const { finalKeyframe, generator, mirroredGenerator, mapPercentToKeyframes, keyframes, calculatedDuration, totalDuration, resolvedDuration, } = resolved;\n if (this.startTime === null)\n return generator.next(0);\n const { delay, repeat, repeatType, repeatDelay, onUpdate } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n // Update currentTime\n if (sample) {\n this.currentTime = timestamp;\n }\n else if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime =\n Math.round(timestamp - this.startTime) * this.speed;\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.speed >= 0 ? 1 : -1);\n const isInDelayPhase = this.speed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mapPercentToKeyframes) {\n state.value = mapPercentToKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.speed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n if (isAnimationFinished && finalKeyframe !== undefined) {\n state.value = getFinalKeyframe(keyframes, this.options, finalKeyframe);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n get duration() {\n const { resolved } = this;\n return resolved ? millisecondsToSeconds(resolved.calculatedDuration) : 0;\n }\n get time() {\n return millisecondsToSeconds(this.currentTime);\n }\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n this.currentTime = newTime;\n if (this.holdTime !== null || this.speed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.speed;\n }\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = millisecondsToSeconds(this.currentTime);\n }\n }\n play() {\n if (!this.resolver.isScheduled) {\n this.resolver.resume();\n }\n if (!this._resolved) {\n this.pendingPlayState = \"running\";\n return;\n }\n if (this.isStopped)\n return;\n const { driver = frameloopDriver, onPlay } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n onPlay && onPlay();\n const now = this.driver.now();\n if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime || this.state === \"finished\") {\n this.startTime = now;\n }\n if (this.state === \"finished\") {\n this.updateFinishedPromise();\n }\n this.cancelTime = this.startTime;\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n var _a;\n if (!this._resolved) {\n this.pendingPlayState = \"paused\";\n return;\n }\n this.state = \"paused\";\n this.holdTime = (_a = this.currentTime) !== null && _a !== void 0 ? _a : 0;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.pendingPlayState = this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.teardown();\n this.state = \"finished\";\n const { onComplete } = this.options;\n onComplete && onComplete();\n }\n cancel() {\n if (this.cancelTime !== null) {\n this.tick(this.cancelTime);\n }\n this.teardown();\n this.updateFinishedPromise();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.resolveFinishedPromise();\n this.updateFinishedPromise();\n this.startTime = this.cancelTime = null;\n this.resolver.cancel();\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(time) {\n this.startTime = 0;\n return this.tick(time, true);\n }\n}\n// Legacy interface\nfunction animateValue(options) {\n return new MainThreadAnimation(options);\n}\n\nexport { MainThreadAnimation, animateValue };\n","const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nexport { isBezierDefinition };\n","import { isBezierDefinition } from '../../../easing/utils/is-bezier-definition.mjs';\n\nfunction isWaapiSupportedEasing(easing) {\n return Boolean(!easing ||\n (typeof easing === \"string\" && easing in supportedWaapiEasing) ||\n isBezierDefinition(easing) ||\n (Array.isArray(easing) && easing.every(isWaapiSupportedEasing)));\n}\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\nfunction mapEasingToNativeEasingWithDefault(easing) {\n return (mapEasingToNativeEasing(easing) ||\n supportedWaapiEasing.easeOut);\n}\nfunction mapEasingToNativeEasing(easing) {\n if (!easing) {\n return undefined;\n }\n else if (isBezierDefinition(easing)) {\n return cubicBezierAsString(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map(mapEasingToNativeEasingWithDefault);\n }\n else {\n return supportedWaapiEasing[easing];\n }\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\n","import { mapEasingToNativeEasing } from './easing.mjs';\n\nfunction animateStyle(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease, times, } = {}) {\n const keyframeOptions = { [valueName]: keyframes };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n return element.animate(keyframeOptions, {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n });\n}\n\nexport { animateStyle };\n","import { time } from '../../frameloop/sync-time.mjs';\nimport { DOMKeyframesResolver } from '../../render/dom/DOMKeyframesResolver.mjs';\nimport { memo } from '../../utils/memo.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { MainThreadAnimation } from './MainThreadAnimation.mjs';\nimport { acceleratedValues } from './utils/accelerated-values.mjs';\nimport { animateStyle } from './waapi/index.mjs';\nimport { isWaapiSupportedEasing } from './waapi/easing.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nconst supportsWaapi = memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxDuration = 20000;\n/**\n * Check if an animation can run natively via WAAPI or requires pregenerated keyframes.\n * WAAPI doesn't support spring or function easings so we run these as JS animation before\n * handing off.\n */\nfunction requiresPregeneratedKeyframes(options) {\n return options.type === \"spring\" || !isWaapiSupportedEasing(options.ease);\n}\nfunction pregenerateKeyframes(keyframes, options) {\n /**\n * Create a main-thread animation to pregenerate keyframes.\n * We sample this at regular intervals to generate keyframes that we then\n * linearly interpolate between.\n */\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n repeat: 0,\n delay: 0,\n isGenerator: true,\n });\n let state = { done: false, value: keyframes[0] };\n const pregeneratedKeyframes = [];\n /**\n * Bail after 20 seconds of pre-generated keyframes as it's likely\n * we're heading for an infinite loop.\n */\n let t = 0;\n while (!state.done && t < maxDuration) {\n state = sampleAnimation.sample(t);\n pregeneratedKeyframes.push(state.value);\n t += sampleDelta;\n }\n return {\n times: undefined,\n keyframes: pregeneratedKeyframes,\n duration: t - sampleDelta,\n ease: \"linear\",\n };\n}\nclass AcceleratedAnimation extends BaseAnimation {\n constructor(options) {\n super(options);\n const { name, motionValue, keyframes } = this.options;\n this.resolver = new DOMKeyframesResolver(keyframes, (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe), name, motionValue);\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes, finalKeyframe) {\n var _a;\n let { duration = 300, times, ease, type, motionValue, name, } = this.options;\n /**\n * If element has since been unmounted, return false to indicate\n * the animation failed to initialised.\n */\n if (!((_a = motionValue.owner) === null || _a === void 0 ? void 0 : _a.current)) {\n return false;\n }\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (requiresPregeneratedKeyframes(this.options)) {\n const { onComplete, onUpdate, motionValue, ...options } = this.options;\n const pregeneratedAnimation = pregenerateKeyframes(keyframes, options);\n keyframes = pregeneratedAnimation.keyframes;\n // If this is a very short animation, ensure we have\n // at least two keyframes to animate between as older browsers\n // can't animate between a single keyframe.\n if (keyframes.length === 1) {\n keyframes[1] = keyframes[0];\n }\n duration = pregeneratedAnimation.duration;\n times = pregeneratedAnimation.times;\n ease = pregeneratedAnimation.ease;\n type = \"keyframes\";\n }\n const animation = animateStyle(motionValue.owner.current, name, keyframes, { ...this.options, duration, times, ease });\n // Override the browser calculated startTime with one synchronised to other JS\n // and WAAPI animations starting this event loop.\n animation.startTime = time.now();\n if (this.pendingTimeline) {\n animation.timeline = this.pendingTimeline;\n this.pendingTimeline = undefined;\n }\n else {\n /**\n * Prefer the `onfinish` prop as it's more widely supported than\n * the `finished` promise.\n *\n * Here, we synchronously set the provided MotionValue to the end\n * keyframe. If we didn't, when the WAAPI animation is finished it would\n * be removed from the element which would then revert to its old styles.\n */\n animation.onfinish = () => {\n const { onComplete } = this.options;\n motionValue.set(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete && onComplete();\n this.cancel();\n this.resolveFinishedPromise();\n };\n }\n return {\n animation,\n duration,\n times,\n type,\n ease,\n keyframes: keyframes,\n };\n }\n get duration() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { duration } = resolved;\n return millisecondsToSeconds(duration);\n }\n get time() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { animation } = resolved;\n return millisecondsToSeconds(animation.currentTime || 0);\n }\n set time(newTime) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.currentTime = secondsToMilliseconds(newTime);\n }\n get speed() {\n const { resolved } = this;\n if (!resolved)\n return 1;\n const { animation } = resolved;\n return animation.playbackRate;\n }\n set speed(newSpeed) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.playbackRate = newSpeed;\n }\n get state() {\n const { resolved } = this;\n if (!resolved)\n return \"idle\";\n const { animation } = resolved;\n return animation.playState;\n }\n /**\n * Replace the default DocumentTimeline with another AnimationTimeline.\n * Currently used for scroll animations.\n */\n attachTimeline(timeline) {\n if (!this._resolved) {\n this.pendingTimeline = timeline;\n }\n else {\n const { resolved } = this;\n if (!resolved)\n return noop;\n const { animation } = resolved;\n animation.timeline = timeline;\n animation.onfinish = null;\n }\n return noop;\n }\n play() {\n if (this.isStopped)\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n if (animation.playState === \"finished\") {\n this.updateFinishedPromise();\n }\n animation.play();\n }\n pause() {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.pause();\n }\n stop() {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation, keyframes, duration, type, ease, times } = resolved;\n if (animation.playState === \"idle\" ||\n animation.playState === \"finished\") {\n return;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n if (this.time) {\n const { motionValue, onUpdate, onComplete, ...options } = this.options;\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n duration,\n type,\n ease,\n times,\n isGenerator: true,\n });\n const sampleTime = secondsToMilliseconds(this.time);\n motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);\n }\n const { onStop } = this.options;\n onStop && onStop();\n this.cancel();\n }\n complete() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.finish();\n }\n cancel() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.cancel();\n }\n static supports(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n motionValue &&\n motionValue.owner &&\n motionValue.owner.current instanceof HTMLElement &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !motionValue.owner.getProps().onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n }\n}\n\nexport { AcceleratedAnimation };\n","import { frame, cancelFrame } from '../../../frameloop/frame.mjs';\n\nfunction observeTimeline(update, timeline) {\n let prevProgress;\n const onFrame = () => {\n const { currentTime } = timeline;\n const percentage = currentTime === null ? 0 : currentTime.value;\n const progress = percentage / 100;\n if (prevProgress !== progress) {\n update(progress);\n }\n prevProgress = progress;\n };\n frame.update(onFrame, true);\n return () => cancelFrame(onFrame);\n}\n\nexport { observeTimeline };\n","import { memo } from '../../../utils/memo.mjs';\n\nconst supportsScrollTimeline = memo(() => window.ScrollTimeline !== undefined);\n\nexport { supportsScrollTimeline };\n","import { observeTimeline } from '../render/dom/scroll/observe.mjs';\nimport { supportsScrollTimeline } from '../render/dom/scroll/supports.mjs';\n\nclass GroupPlaybackControls {\n constructor(animations) {\n // Bound to accomodate common `return animation.stop` pattern\n this.stop = () => this.runAll(\"stop\");\n this.animations = animations.filter(Boolean);\n }\n then(onResolve, onReject) {\n return Promise.all(this.animations).then(onResolve).catch(onReject);\n }\n /**\n * TODO: Filter out cancelled or stopped animations before returning\n */\n getAll(propName) {\n return this.animations[0][propName];\n }\n setAll(propName, newValue) {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i][propName] = newValue;\n }\n }\n attachTimeline(timeline) {\n const cancelAll = this.animations.map((animation) => {\n if (supportsScrollTimeline() && animation.attachTimeline) {\n animation.attachTimeline(timeline);\n }\n else {\n animation.pause();\n return observeTimeline((progress) => {\n animation.time = animation.duration * progress;\n }, timeline);\n }\n });\n return () => {\n cancelAll.forEach((cancelTimeline, i) => {\n if (cancelTimeline)\n cancelTimeline();\n this.animations[i].stop();\n });\n };\n }\n get time() {\n return this.getAll(\"time\");\n }\n set time(time) {\n this.setAll(\"time\", time);\n }\n get speed() {\n return this.getAll(\"speed\");\n }\n set speed(speed) {\n this.setAll(\"speed\", speed);\n }\n get duration() {\n let max = 0;\n for (let i = 0; i < this.animations.length; i++) {\n max = Math.max(max, this.animations[i].duration);\n }\n return max;\n }\n runAll(methodName) {\n this.animations.forEach((controls) => controls[methodName]());\n }\n play() {\n this.runAll(\"play\");\n }\n pause() {\n this.runAll(\"pause\");\n }\n cancel() {\n this.runAll(\"cancel\");\n }\n complete() {\n this.runAll(\"complete\");\n }\n}\n\nexport { GroupPlaybackControls };\n","import { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { getValueTransition, isTransitionDefined } from '../utils/transitions.mjs';\nimport { MotionGlobalConfig } from '../../utils/GlobalConfig.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { getFinalKeyframe } from '../animators/waapi/utils/get-final-keyframe.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\nimport { AcceleratedAnimation } from '../animators/AcceleratedAnimation.mjs';\nimport { MainThreadAnimation } from '../animators/MainThreadAnimation.mjs';\nimport { GroupPlaybackControls } from '../GroupPlaybackControls.mjs';\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff, \n/**\n * Currently used to remove values from will-change when an animation ends.\n * Preferably this would be handled by event listeners on the MotionValue\n * but these aren't consistent enough yet when considering the different ways\n * an animation can be cancelled.\n */\nonEnd) => (onComplete) => {\n const valueTransition = getValueTransition(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n let options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n onEnd && onEnd();\n },\n onStop: onEnd,\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unqiue transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n options = {\n ...options,\n ...getDefaultTransition(name, options),\n };\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n if (options.duration) {\n options.duration = secondsToMilliseconds(options.duration);\n }\n if (options.repeatDelay) {\n options.repeatDelay = secondsToMilliseconds(options.repeatDelay);\n }\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n options.duration = 0;\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (instantAnimationState.current ||\n MotionGlobalConfig.skipAnimations) {\n shouldSkip = true;\n options.duration = 0;\n options.delay = 0;\n }\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n // We still want to return some animation controls here rather\n // than returning undefined\n return new GroupPlaybackControls([]);\n }\n }\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n if (!isHandoff && AcceleratedAnimation.supports(options)) {\n return new AcceleratedAnimation(options);\n }\n else {\n return new MainThreadAnimation(options);\n }\n};\n\nexport { animateMotionValue };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\nimport { animateMotionValue } from './motion-value.mjs';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { getValueTransition } from '../utils/transitions.mjs';\nimport { getOptimisedAppearId } from '../optimized-appear/get-appear-id.mjs';\nimport { addValueToWillChange } from '../../value/use-will-change/add-will-change.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\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({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n var _a;\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition;\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, (_a = visualElement.latestValues[key]) !== null && _a !== void 0 ? _a : null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n elapsed: 0,\n ...getValueTransition(transition || {}, key),\n };\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.HandoffAppearAnimations) {\n const appearId = getOptimisedAppearId(visualElement);\n if (appearId) {\n const elapsed = window.HandoffAppearAnimations(appearId, key, value, frame);\n if (elapsed !== null) {\n valueTransition.elapsed = elapsed;\n isHandoff = true;\n }\n }\n }\n value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && transformProps.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff, addValueToWillChange(visualElement, key)));\n const animation = value.animation;\n if (animation) {\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n Promise.all(animations).then(() => {\n frame.update(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n });\n }\n return animations;\n}\n\nexport { animateTarget };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\n\nfunction animateVariant(visualElement, variant, options = {}) {\n var _a;\n const resolved = resolveVariant(visualElement, variant, options.type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\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 const getAnimation = resolved\n ? () => Promise.all(animateTarget(visualElement, resolved, options))\n : () => 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 const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => 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 const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n\nexport { animateVariant, sortByTreeOrder };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\nimport { animateVariant } from './visual-element-variant.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n frame.postRender(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n });\n}\n\nexport { animateVisualElement };\n","import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","import { optimizedAppearDataAttribute } from './data-id.mjs';\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.getProps()[optimizedAppearDataAttribute];\n}\n\nexport { getOptimisedAppearId };\n","function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\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({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\nfunction getValueTransition(transition, key) {\n return (transition[key] ||\n transition[\"default\"] ||\n transition);\n}\n\nexport { getValueTransition, isTransitionDefined };\n","import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { createContext } from 'react';\n\nconst MotionContext = createContext({});\n\nexport { MotionContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\n\nexport { circIn, circInOut, circOut };\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n","// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\nexport { addDomEvent };\n","import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n","import { isPrimaryPointer } from './utils/is-primary-pointer.mjs';\n\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: {\n x: event[`${pointType}X`],\n y: event[`${pointType}Y`],\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\nexport { addPointerInfo, extractEventInfo };\n","const isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\nexport { isPrimaryPointer };\n","function createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n callback(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (!queue.has(callback))\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Clear the next frame queue\n nextFrame.clear();\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(flagRunNextFrame);\n return acc;\n }, {});\n const { read, resolveKeyframes, update, preRender, render, postRender } = steps;\n const processBatch = () => {\n const timestamp = MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n read.process(state);\n resolveKeyframes.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < stepsOrder.length; i++) {\n steps[stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher, stepsOrder };\n","import { noop } from '../utils/noop.mjs';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps, } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, steps };\n","import { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);\n\nexport { cancelMicrotask, microtask };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { frameData } from './frame.mjs';\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nexport { time };\n","function createLock(name) {\n let lock = null;\n return () => {\n const openLock = () => {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nconst globalHorizontalLock = createLock(\"dragHorizontal\");\nconst globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n let lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n const openHorizontal = globalHorizontalLock();\n const openVertical = globalVerticalLock();\n if (openHorizontal && openVertical) {\n lock = () => {\n openHorizontal();\n openVertical();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal)\n openHorizontal();\n if (openVertical)\n openVertical();\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 const openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","class Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\nexport { Feature };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","import { 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 { isVariantLabel } from './is-variant-label.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { variantPriorityOrder } from './variant-props.mjs';\nimport { animateVisualElement } from '../../animation/interfaces/visual-element.mjs';\n\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n let state = createState();\n let 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 const buildResolvedTypeValues = (type) => (acc, definition) => {\n var _a;\n const resolved = resolveVariant(visualElement, definition, type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\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(changedActiveType) {\n const props = visualElement.getProps();\n const 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 const 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 const 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 let 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 let removedVariantIndex = Infinity;\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 (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined\n ? props[type]\n : context[type];\n const 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 const 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 let isInherited = prop === context[type] &&\n prop !== props[type] &&\n 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 = { ...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 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 const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let 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 let handledRemovedValues = false;\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 const 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 let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\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 const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const 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 let valueHasChanged = false;\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n valueHasChanged = !shallowCompare(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\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 = { ...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 */\n if (shouldAnimateType && (!isInherited || handledRemovedValues)) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type },\n })));\n }\n }\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 const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget !== null && fallbackTarget !== void 0 ? fallbackTarget : null;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\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) {\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((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n reset: () => {\n state = createState();\n isInitialRender = true;\n },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState };\n","import { isAnimationControls } from '../../../animation/utils/is-animation-controls.mjs';\nimport { createAnimationState } from '../../../render/utils/animation-state.mjs';\nimport { Feature } from '../Feature.mjs';\n\nclass AnimationFeature extends Feature {\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 constructor(node) {\n super(node);\n node.animationState || (node.animationState = createAnimationState(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n if (isAnimationControls(animate)) {\n this.unmountControls = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() {\n var _a;\n this.node.animationState.reset();\n (_a = this.unmountControls) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n}\n\nexport { AnimationFeature };\n","import { Feature } from '../Feature.mjs';\n\nlet id = 0;\nclass ExitAnimationFeature extends Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => onExitComplete(this.id));\n }\n }\n mount() {\n const { register } = this.node.presenceContext || {};\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\nexport { ExitAnimationFeature };\n","import { AnimationFeature } from './animation/index.mjs';\nimport { ExitAnimationFeature } from './animation/exit.mjs';\n\nconst animations = {\n animation: {\n Feature: AnimationFeature,\n },\n exit: {\n Feature: ExitAnimationFeature,\n },\n};\n\nexport { animations };\n","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nconst featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n\nexport { featureDefinitions };\n","import { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction addHoverEvent(node, isActive) {\n const eventName = isActive ? \"pointerenter\" : \"pointerleave\";\n const callbackName = isActive ? \"onHoverStart\" : \"onHoverEnd\";\n const handleEvent = (event, info) => {\n if (event.pointerType === \"touch\" || isDragActive())\n return;\n const props = node.getProps();\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", isActive);\n }\n const callback = props[callbackName];\n if (callback) {\n frame.postRender(() => callback(event, info));\n }\n };\n return addPointerEvent(node.current, eventName, handleEvent, {\n passive: !node.getProps()[callbackName],\n });\n}\nclass HoverGesture extends Feature {\n mount() {\n this.unmount = pipe(addHoverEvent(this.node, true), addHoverEvent(this.node, false));\n }\n unmount() { }\n}\n\nexport { HoverGesture };\n","import { addDomEvent } from '../events/add-dom-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\n\nclass FocusGesture extends Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = pipe(addDomEvent(this.node.current, \"focus\", () => this.onFocus()), addDomEvent(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\nexport { FocusGesture };\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 */\nconst isNodeOrChild = (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 { extractEventInfo } from '../events/event-info.mjs';\nimport { addDomEvent } from '../events/add-dom-event.mjs';\nimport { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { noop } from '../utils/noop.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction fireSyntheticPointerEvent(name, handler) {\n if (!handler)\n return;\n const syntheticPointerEvent = new PointerEvent(\"pointer\" + name);\n handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent));\n}\nclass PressGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removeStartListeners = noop;\n this.removeEndListeners = noop;\n this.removeAccessibleListeners = noop;\n this.startPointerPress = (startEvent, startInfo) => {\n if (this.isPressing)\n return;\n this.removeEndListeners();\n const props = this.node.getProps();\n const endPointerPress = (endEvent, endInfo) => {\n if (!this.checkPressEnd())\n return;\n const { onTap, onTapCancel, globalTapTarget } = this.node.getProps();\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 const handler = !globalTapTarget &&\n !isNodeOrChild(this.node.current, endEvent.target)\n ? onTapCancel\n : onTap;\n if (handler) {\n frame.update(() => handler(endEvent, endInfo));\n }\n };\n const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, {\n passive: !(props.onTap || props[\"onPointerUp\"]),\n });\n const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), {\n passive: !(props.onTapCancel ||\n props[\"onPointerCancel\"]),\n });\n this.removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n this.startPress(startEvent, startInfo);\n };\n this.startAccessiblePress = () => {\n const handleKeydown = (keydownEvent) => {\n if (keydownEvent.key !== \"Enter\" || this.isPressing)\n return;\n const handleKeyup = (keyupEvent) => {\n if (keyupEvent.key !== \"Enter\" || !this.checkPressEnd())\n return;\n fireSyntheticPointerEvent(\"up\", (event, info) => {\n const { onTap } = this.node.getProps();\n if (onTap) {\n frame.postRender(() => onTap(event, info));\n }\n });\n };\n this.removeEndListeners();\n this.removeEndListeners = addDomEvent(this.node.current, \"keyup\", handleKeyup);\n fireSyntheticPointerEvent(\"down\", (event, info) => {\n this.startPress(event, info);\n });\n };\n const removeKeydownListener = addDomEvent(this.node.current, \"keydown\", handleKeydown);\n const handleBlur = () => {\n if (!this.isPressing)\n return;\n fireSyntheticPointerEvent(\"cancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo));\n };\n const removeBlurListener = addDomEvent(this.node.current, \"blur\", handleBlur);\n this.removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n };\n }\n startPress(event, info) {\n this.isPressing = true;\n const { onTapStart, whileTap } = this.node.getProps();\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", true);\n }\n if (onTapStart) {\n frame.postRender(() => onTapStart(event, info));\n }\n }\n checkPressEnd() {\n this.removeEndListeners();\n this.isPressing = false;\n const props = this.node.getProps();\n if (props.whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", false);\n }\n return !isDragActive();\n }\n cancelPress(event, info) {\n if (!this.checkPressEnd())\n return;\n const { onTapCancel } = this.node.getProps();\n if (onTapCancel) {\n frame.postRender(() => onTapCancel(event, info));\n }\n }\n mount() {\n const props = this.node.getProps();\n const removePointerListener = addPointerEvent(props.globalTapTarget ? window : this.node.current, \"pointerdown\", this.startPointerPress, {\n passive: !(props.onTapStart ||\n props[\"onPointerStart\"]),\n });\n const removeFocusListener = addDomEvent(this.node.current, \"focus\", this.startAccessiblePress);\n this.removeStartListeners = pipe(removePointerListener, removeFocusListener);\n }\n unmount() {\n this.removeStartListeners();\n this.removeEndListeners();\n this.removeAccessibleListeners();\n }\n}\n\nexport { PressGesture };\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 */\nconst 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 */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const 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 const rootObservers = observers.get(lookupRoot);\n const 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, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { Feature } from '../Feature.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.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 && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\nexport { InViewFeature };\n","import { HoverGesture } from '../../gestures/hover.mjs';\nimport { FocusGesture } from '../../gestures/focus.mjs';\nimport { PressGesture } from '../../gestures/press.mjs';\nimport { InViewFeature } from './viewport/index.mjs';\n\nconst gestureAnimations = {\n inView: {\n Feature: InViewFeature,\n },\n tap: {\n Feature: PressGesture,\n },\n focus: {\n Feature: FocusGesture,\n },\n hover: {\n Feature: HoverGesture,\n },\n};\n\nexport { gestureAnimations };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n}\n\nexport { loadFeatures };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\nconst TREE_SCALE_SNAP_MIN = 0.999999999999;\nconst TREE_SCALE_SNAP_MAX = 1.0000000000001;\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const { visualElement } = node.options;\n if (visualElement &&\n visualElement.props.style &&\n visualElement.props.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n if (treeScale.x < TREE_SCALE_SNAP_MAX &&\n treeScale.x > TREE_SCALE_SNAP_MIN) {\n treeScale.x = 1.0;\n }\n if (treeScale.y < TREE_SCALE_SNAP_MAX &&\n treeScale.y > TREE_SCALE_SNAP_MIN) {\n treeScale.y = 1.0;\n }\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, axisTranslate, axisScale, boxScale, axisOrigin = 0.5) {\n const originPoint = mixNumber(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, axisTranslate, axisScale, originPoint, boxScale);\n}\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform.x, transform.scaleX, transform.scale, transform.originX);\n transformAxis(box.y, transform.y, transform.scaleY, transform.scale, transform.originY);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","import { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n else {\n return true;\n }\n}\n\nexport { isNone };\n","import { invariant } from '../../../utils/errors.mjs';\nimport { isNumericalString } from '../../../utils/is-numerical-string.mjs';\nimport { isCSSVariableToken } from './is-css-variable.mjs';\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 !== null && token1 !== void 0 ? token1 : token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`);\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return isCSSVariableToken(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\nexport { getVariableValue, parseCSSVariable };\n","import { analyseComplexValue } from '../../../value/types/complex/index.mjs';\nimport { getAnimatableNone } from '../../dom/value-types/animatable-none.mjs';\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n analyseComplexValue(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);\n }\n }\n}\n\nexport { makeNoneKeyframesAnimatable };\n","import { isNone } from '../../animation/utils/is-none.mjs';\nimport { getVariableValue } from './utils/css-variables-conversion.mjs';\nimport { isCSSVariableToken } from './utils/is-css-variable.mjs';\nimport { positionalKeys, isNumOrPxType, positionalValues } from './utils/unit-conversion.mjs';\nimport { findDimensionValueType } from './value-types/dimensions.mjs';\nimport { KeyframeResolver } from '../utils/KeyframesResolver.mjs';\nimport { makeNoneKeyframesAnimatable } from '../html/utils/make-none-animatable.mjs';\n\nclass DOMKeyframesResolver extends KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue) {\n super(unresolvedKeyframes, onComplete, name, motionValue, motionValue === null || motionValue === void 0 ? void 0 : motionValue.owner, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if (isCSSVariableToken(keyframe)) {\n const resolved = getVariableValue(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = findDimensionValueType(origin);\n const targetType = findDimensionValueType(target);\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (isNone(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n var _a;\n const { element, name, unresolvedKeyframes } = this;\n if (!element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if ((_a = this.removedTransforms) === null || _a === void 0 ? void 0 : _a.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\nexport { DOMKeyframesResolver };\n","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n","import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n","import { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"11.3.17\", `Attempting to mix Framer Motion versions ${nextValue.version} with 11.3.17 may not work as expected.`);\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","const visualElementStore = new WeakMap();\n\nexport { visualElementStore };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { complex } from '../../../value/types/complex/index.mjs';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","import { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { transformProps } from './html/utils/transform.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { isVariantLabel } from './utils/is-variant-label.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { variantProps } from './utils/variant-props.mjs';\nimport { visualElementStore } from './store.mjs';\nimport { KeyframeResolver } from './utils/KeyframesResolver.mjs';\nimport { isNumericalString } from '../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../utils/is-zero-value-string.mjs';\nimport { findValueType } from './dom/value-types/find.mjs';\nimport { complex } from '../value/types/complex/index.mjs';\nimport { getAnimatableNone } from './dom/value-types/animatable-none.mjs';\nimport { createBox } from '../projection/geometry/models.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\nconst numVariantProps = variantProps.length;\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState, }, options = {}) {\n /**\n * If true, will-change will be applied to the element. Only HTMLVisualElements\n * currently support this.\n */\n this.applyWillChange = false;\n this.resolveKeyframes = (keyframes, \n // We use an onComplete callback here rather than a Promise as a Promise\n // resolution is a microtask and we want to retain the ability to force\n // the resolution of keyframes synchronously.\n onComplete, name, value) => {\n return new this.KeyframeResolver(keyframes, onComplete, name, value, this);\n };\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n this.isRenderScheduled = false;\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.isRenderScheduled = false;\n this.scheduleRender = () => {\n if (!this.isRenderScheduled) {\n this.isRenderScheduled = true;\n frame.render(this.render, false, true);\n }\n };\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't necessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n }\n }\n }\n mount(instance) {\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n if (this.parent)\n this.parent.children.add(this);\n this.update(this.props, this.presenceContext);\n }\n unmount() {\n visualElementStore.delete(this.current);\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent && this.parent.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n const valueIsTransform = transformProps.has(key);\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n getVariantContext(startAtParent = false) {\n if (startAtParent) {\n return this.parent ? this.parent.getVariantContext() : undefined;\n }\n if (!this.isControllingVariants) {\n const context = this.parent\n ? this.parent.getVariantContext() || {}\n : {};\n if (this.props.initial !== undefined) {\n context.initial = this.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = this.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n var _a;\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\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(target)) {\n value = getAnimatableNone(key, target);\n }\n this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);\n }\n return isMotionValue(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n var _a;\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = resolveVariantFromProps(this.props, initial, (_a = this.presenceContext) === null || _a === void 0 ? void 0 : _a.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n}\n\nexport { VisualElement };\n","import { VisualElement } from '../VisualElement.mjs';\nimport { DOMKeyframesResolver } from './DOMKeyframesResolver.mjs';\n\nclass DOMVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n return props.style\n ? props.style[key]\n : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n}\n\nexport { DOMVisualElement };\n","import { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariableName } from '../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n this.applyWillChange = true;\n this.renderInstance = renderHTML;\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, props) {\n buildHTMLStyles(renderState, latestValues, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current)\n this.current.textContent = `${latest}`;\n });\n }\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n","import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n this.measureInstanceViewportBox = createBox;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n build(renderState, latestValues, props) {\n buildSVGAttrs(renderState, latestValues, this.isSVGTag, props.transformTemplate);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n","import { Fragment } from 'react';\nimport { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options)\n : new HTMLVisualElement(options, {\n allowProjection: Component !== Fragment,\n });\n};\n\nexport { createDomVisualElement };\n","import { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\n\nlet scheduleHandoffComplete = false;\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef();\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\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 const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (visualElement &&\n !visualElement.projection &&\n ProjectionNodeConstructor &&\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n useInsertionEffect(() => {\n visualElement && visualElement.update(props, presenceContext);\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const wantsHandoff = useRef(Boolean(props[optimizedAppearDataAttribute] &&\n !window.HandoffComplete));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n visualElement.updateFeatures();\n microtask.render(visualElement.render);\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n wantsHandoff.current = false;\n // This ensures all future calls to animateChanges() will run in useEffect\n if (!scheduleHandoffComplete) {\n scheduleHandoffComplete = true;\n queueMicrotask(completeHandoff);\n }\n }\n });\n return visualElement;\n}\nfunction completeHandoff() {\n window.HandoffComplete = true;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\n ? undefined\n : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement,\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,\n layoutScroll,\n layoutRoot,\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n\nexport { useVisualElement };\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((instance) => {\n instance && visualState.mount && visualState.mount(instance);\n if (visualElement) {\n if (instance) {\n visualElement.mount(instance);\n }\n else {\n visualElement.unmount();\n }\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 { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\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","import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { forwardRef, useContext } from 'react';\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 } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\nimport { warning, invariant } from '../utils/errors.mjs';\nimport { featureDefinitions } from './features/definitions.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({ preloadedFeatures, createVisualElement, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\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, configAndProps, createVisualElement, layoutProjection.ProjectionNode);\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 (jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)] }));\n }\n const ForwardRefComponent = forwardRef(MotionComponent);\n ForwardRefComponent[motionComponentSymbol] = Component;\n return ForwardRefComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = useContext(LazyContext).strict;\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 (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict\n ? warning(false, strictMessage)\n : invariant(false, strictMessage);\n }\n}\nfunction getProjectionFunctionality(props) {\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout)\n return {};\n const combined = { ...drag, ...layout };\n return {\n MeasureLayout: (drag === null || drag === void 0 ? void 0 : drag.isEnabled(props)) || (layout === null || layout === void 0 ? void 0 : layout.isEnabled(props))\n ? combined.MeasureLayout\n : undefined,\n ProjectionNode: combined.ProjectionNode,\n };\n}\n\nexport { createMotionComponent };\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 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 const 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: (_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 * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","import { 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 (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\nfunction useHTMLProps(props, visualState) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (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-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\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 */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\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 (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\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 const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\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\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","import { 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';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, isSVGTag(Component), props.transformTemplate);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { Fragment, useMemo, 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';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== Fragment\n ? { ...filteredProps, ...visualProps, ref }\n : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n };\n return useRender;\n}\n\nexport { createUseRender };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-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';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\nimport { getWillChangeName } from '../../value/use-will-change/get-will-change-name.mjs';\nimport { addUniqueItem } from '../../utils/array.mjs';\n\nfunction makeState({ applyWillChange = false, scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext, isStatic) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, isStatic ? false : applyWillChange, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext, isStatic);\n return isStatic ? make() : useConstant(make);\n};\nfunction addWillChange(willChange, name) {\n const memberName = getWillChangeName(name);\n if (memberName) {\n addUniqueItem(willChange, memberName);\n }\n}\nfunction forEachDefinition(props, definition, callback) {\n const list = Array.isArray(definition) ? definition : [definition];\n for (let i = 0; i < list.length; i++) {\n const resolved = resolveVariantFromProps(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n callback(target, transitionEnd);\n }\n }\n}\nfunction makeLatestValues(props, context, presenceContext, shouldApplyWillChange, scrapeMotionValues) {\n var _a;\n const values = {};\n const willChange = [];\n const applyWillChange = shouldApplyWillChange && ((_a = props.style) === null || _a === void 0 ? void 0 : _a.willChange) === undefined;\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n forEachDefinition(props, variantToSet, (target, transitionEnd) => {\n for (const key in target) {\n let 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 const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd) {\n values[key] = transitionEnd[key];\n }\n });\n }\n // Add animating values to will-change\n if (applyWillChange) {\n if (animate && initial !== false && !isAnimationControls(animate)) {\n forEachDefinition(props, animate, (target) => {\n for (const key in target) {\n addWillChange(willChange, key);\n }\n });\n }\n if (willChange.length) {\n values.willChange = willChange.join(\",\");\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';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\n frame.read(() => {\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 });\n frame.render(() => {\n buildSVGAttrs(renderState, latestValues, isSVGTag(instance.tagName), props.transformTemplate);\n renderSVG(instance, renderState);\n });\n },\n }),\n};\n\nexport { svgMotionConfig };\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\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n applyWillChange: true,\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, { forwardMotionProps = false }, preloadedFeatures, createVisualElement) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n Component,\n };\n}\n\nexport { createDomMotionConfig };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = checkStringStartsWith(\"--\");\nconst startsAsVariableToken = checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n","/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst 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 \"switch\",\n \"symbol\",\n \"svg\",\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]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","import { transformPropOrder } from '../../html/utils/transform.mjs';\nimport { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n \"translateX\",\n \"translateY\",\n]);\nconst isNumOrPxType = (v) => v === number || v === px;\nconst getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nconst getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {\n if (transform === \"none\" || !transform)\n return 0;\n const matrix3d = transform.match(/^matrix3d\\((.+)\\)$/u);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n const matrix = transform.match(/^matrix\\((.+)\\)$/u);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n};\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\nexport { isNumOrPxType, positionalKeys, positionalValues, removeNonTranslationalTransform };\n","import { complex } from '../../../value/types/complex/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n let 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 defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\nexport { getAnimatableNone };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { number } from '../../../value/types/numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from '../../../value/types/numbers/units.mjs';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","import { number } from '../../../value/types/numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { scale, alpha } from '../../../value/types/numbers/index.mjs';\nimport { px, degrees, progressPercentage } from '../../../value/types/numbers/units.mjs';\nimport { int } from './type-int.mjs';\n\nconst 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,\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 backgroundPositionX: px,\n backgroundPositionY: px,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","import { transformPropOrder } from './transform.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\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(transform, transformIsDefault, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n if (transform[key] !== undefined) {\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${transform[key]}) `;\n }\n }\n transformString = transformString.trim();\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 (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariableName } from '../../dom/utils/is-css-variable.mjs';\nimport { transformProps } 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, transformTemplate) {\n const { style, vars, transform, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n let 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 separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueType = numberValueTypes[key];\n const valueAsType = getValueAsType(value, valueType);\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\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 !== (valueType.default || 0))\n transformIsNone = false;\n }\n else if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] = valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(state.transform, transformIsNone, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n var _a;\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style &&\n isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n ((_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.getValue(key)) === null || _a === void 0 ? void 0 : _a.liveStyle) !== undefined) {\n newValues[key] = style[key];\n }\n }\n /**\n * If the willChange style has been manually set as a string, set\n * applyWillChange to false to prevent it from automatically being applied.\n */\n if (visualElement && style && typeof style.willChange === \"string\") {\n visualElement.applyWillChange = false;\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n","import { px } from '../../../value/types/numbers/units.mjs';\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 const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst 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 = 1, offset = 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 const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { 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, { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style, dimensions } = state;\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 // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\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","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst 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 \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\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 (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { removeNonTranslationalTransform } from '../dom/utils/unit-conversion.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = removeNonTranslationalTransform(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n var _a;\n (_a = element.getValue(key)) === null || _a === void 0 ? void 0 : _a.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete());\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n readAllKeyframes();\n measureAllKeyframes();\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n /**\n * Track whether this resolver has completed. Once complete, it never\n * needs to attempt keyframe resolution again.\n */\n this.isComplete = false;\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n /**\n * Track whether this resolver is currently scheduled to resolve\n * to allow it to be cancelled and resumed externally.\n */\n this.isScheduled = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.isScheduled = true;\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n frame.read(readAllKeyframes);\n frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n /**\n * If a keyframe is null, we hydrate it either by reading it from\n * the instance, or propagating from previous keyframes.\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null) {\n /**\n * If the first keyframe is null, we need to find its value by sampling the element\n */\n if (i === 0) {\n const currentValue = motionValue === null || motionValue === void 0 ? void 0 : motionValue.get();\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n else {\n unresolvedKeyframes[i] = unresolvedKeyframes[i - 1];\n }\n }\n }\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete() {\n this.isComplete = true;\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe);\n toResolve.delete(this);\n }\n cancel() {\n if (!this.isComplete) {\n this.isScheduled = false;\n toResolve.delete(this);\n }\n }\n resume() {\n if (!this.isComplete)\n this.scheduleResolve();\n }\n}\n\nexport { KeyframeResolver, flushKeyframeResolvers };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, visualElement);\n}\n\nexport { resolveVariant };\n","function getValueState(visualElement) {\n const state = [{}, {}];\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\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 = props.variants && props.variants[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 const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","import { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { resolveVariant } from './resolve-dynamic-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 const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\nexport { setTarget };\n","const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nexport { variantPriorityOrder, variantProps };\n","const MotionGlobalConfig = {\n skipAnimations: false,\n useManualTiming: false,\n};\n\nexport { MotionGlobalConfig };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n","import { noop } from './noop.mjs';\n\nlet warning = noop;\nlet invariant = noop;\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(message);\n }\n };\n invariant = (check, message) => {\n if (!check) {\n throw new Error(message);\n }\n };\n}\n\nexport { invariant, warning };\n","const isBrowser = typeof window !== \"undefined\";\n\nexport { isBrowser };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\nexport { isNumericalString };\n","function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\nexport { isZeroValueString };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n","const noop = (any) => any;\n\nexport { noop };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst resolveFinalValueInKeyframes = (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 { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\nexport { millisecondsToSeconds, secondsToMilliseconds };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n constructor(init, options = {}) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"11.3.17\";\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n const currentTime = time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\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 we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\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","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 { clamp } from '../../../utils/clamp.mjs';\nimport { alpha, number } from '../numbers/index.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\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 { isString, singleColorRegex, isNullish, floatRegex } from '../utils.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp &&\n !isNullish(v) &&\n 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 { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [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 = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n","import { color } from '../color/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n isString(v) &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","import { clamp } from '../../../utils/clamp.mjs';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\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 = {\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n};\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","/**\n * TODO: When we move from string as a source of truth to data models\n * everything in this folder should probably be referred to as models vs types\n */\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\nconst floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\nconst colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\nconst singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\nfunction isString(v) {\n return typeof v === \"string\";\n}\nfunction isNullish(v) {\n return v == null;\n}\n\nexport { colorRegex, floatRegex, isNullish, isString, sanitize, singleColorRegex };\n","import { MotionValue } from '../index.mjs';\nimport { getWillChangeName } from './get-will-change-name.mjs';\nimport { removeItem } from '../../utils/array.mjs';\n\nclass WillChangeMotionValue extends MotionValue {\n constructor() {\n super(...arguments);\n this.output = [];\n this.counts = new Map();\n }\n add(name) {\n const styleName = getWillChangeName(name);\n if (!styleName)\n return;\n /**\n * Update counter. Each value has an indepdent counter\n * as multiple sources could be requesting the same value\n * gets added to will-change.\n */\n const prevCount = this.counts.get(styleName) || 0;\n this.counts.set(styleName, prevCount + 1);\n if (prevCount === 0) {\n this.output.push(styleName);\n this.update();\n }\n /**\n * Prevents the remove function from being called multiple times.\n */\n let hasRemoved = false;\n return () => {\n if (hasRemoved)\n return;\n hasRemoved = true;\n const newCount = this.counts.get(styleName) - 1;\n this.counts.set(styleName, newCount);\n if (newCount === 0) {\n removeItem(this.output, styleName);\n this.update();\n }\n };\n }\n update() {\n this.set(this.output.length ? this.output.join(\", \") : \"auto\");\n }\n}\n\nexport { WillChangeMotionValue };\n","import { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","import { WillChangeMotionValue } from './WillChangeMotionValue.mjs';\nimport { isWillChangeMotionValue } from './is.mjs';\n\nfunction addValueToWillChange(visualElement, key) {\n var _a;\n if (!visualElement.applyWillChange)\n return;\n let willChange = visualElement.getValue(\"willChange\");\n /**\n * If we haven't created a willChange MotionValue, and the we haven't been\n * manually provided one, create one.\n */\n if (!willChange && !((_a = visualElement.props.style) === null || _a === void 0 ? void 0 : _a.willChange)) {\n willChange = new WillChangeMotionValue(\"auto\");\n visualElement.addValue(\"willChange\", willChange);\n }\n /**\n * It could be that a user has set willChange to a regular MotionValue,\n * in which case we can't add the value to it.\n */\n if (isWillChangeMotionValue(willChange)) {\n return willChange.add(key);\n }\n}\n\nexport { addValueToWillChange };\n","import { acceleratedValues } from '../../animation/animators/utils/accelerated-values.mjs';\nimport { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction getWillChangeName(name) {\n if (transformProps.has(name)) {\n return \"transform\";\n }\n else if (acceleratedValues.has(name)) {\n return camelToDash(name);\n }\n}\n\nexport { getWillChangeName };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\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 const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n"],"names":["acceleratedValues","Set","underDampedSpring","type","stiffness","damping","restSpeed","criticallyDampedSpring","target","Math","sqrt","keyframesTransition","duration","ease","getDefaultTransition","valueKey","keyframes","length","transform","G","has","startsWith","instantAnimationState","current","isNotNull","value","getFinalKeyframe","repeat","repeatType","finalKeyframe","resolvedKeyframes","filter","index","undefined","memo","callback","result","isAnimatable","name","Array","isArray","complex","P","test","BaseAnimation","constructor","autoplay","delay","repeatDelay","options","isStopped","hasAttemptedResolve","updateFinishedPromise","resolved","_resolved","KeyframesResolver","m","onKeyframesResolved","velocity","onComplete","onUpdate","isGenerator","canAnimate","originKeyframe","targetKeyframe","isOriginAnimatable","isTargetAnimatable","errors","K","hasKeyframesChanged","i","resolveFinishedPromise","resolvedAnimation","initPlayback","onPostResolved","then","resolve","reject","currentFinishedPromise","Promise","calcGeneratorVelocity","resolveValue","t","prevT","max","velocity_per_second","R","calcAngularFreq","undampedFreq","dampingRatio","durationKeys","physicsKeys","isSpringType","keys","some","key","spring","restDelta","resolveSpring","origin","state","done","mass","isResolvedFromDuration","getSpringOptions","springOptions","derived","findSpring","bounce","envelope","derivative","time_conversion","w","clamp","u","X","exponentialDecay","delta","safeMin","exp","e","pow","g","d","a","approximateRoot","initialGuess","isNaN","initialVelocity","initialDelta","undampedAngularFreq","isGranularScale","abs","angularFreq","sin","cos","dampedAngularFreq","freqForT","min","sinh","cosh","calculatedDuration","next","currentVelocity","isBelowVelocityThreshold","isBelowDisplacementThreshold","inertia","power","timeConstant","bounceDamping","bounceStiffness","modifyTarget","timeReachedBoundary","spring$1","isOutOfBounds","v","nearestBoundary","amplitude","ideal","calcDelta","calcLatest","applyFriction","latest","checkCatchBoundary","hasUpdatedFrame","calcBezier","a1","a2","cubicBezier","mX1","mY1","mX2","mY2","noop","Z","getTForX","binarySubdivide","x","lowerBound","upperBound","currentX","currentT","aX","easeIn","easeOut","easeInOut","isEasingArray","backOut","backIn","reverse","M","backInOut","mirror","o","easingLookup","linear","circIn","circ","Z7","circInOut","X7","circOut","Bn","anticipate","p","easingDefinitionToFunction","definition","k","x1","y1","x2","y2","hueToRgb","q","mixImmediate","b","mixLinearColor","from","to","fromExpo","expo","colorTypes","hex","$","rgba","hsla","J","getColorType","find","asRGBA","color","Boolean","model","parse","hslaToRgba","hue","saturation","lightness","alpha","red","green","blue","round","mixColor","fromRGBA","toRGBA","blended","number","invisibleValues","mixNumber","getMixer","is_css_variable","mixComplex","mixArray","mixObject","output","numValues","blendValue","map","template","createTransformer","originStats","V","targetStats","indexes","var","values","pipe","z","matchOrder","_a","orderedOrigin","pointers","types","originIndex","originValue","mix","mixer","keyframeValues","times","easingFunctions","mapTimeToKeyframe","interpolate","input","isClamp","inputLength","mixers","createMixers","customMixer","mixerFactory","numMixers","easingFunction","push","interpolator","progressInRange","progress","Y","offset","defaultOffset","arr","fillOffset","remaining","offsetProgress","easing","splice","frameloopDriver","passTimestamp","timestamp","update","start","frameloop_frame","Wi","stop","Pn","now","frameData","isProcessing","sync_time","generators","decay","tween","percentToProgress","percent","MainThreadAnimation","KeyframeResolver","KeyframeResolver$1","holdTime","startTime","cancelTime","currentTime","playbackSpeed","pendingPlayState","resolver","cancel","teardown","onStop","motionValue","onResolved","owner","resolveKeyframes","scheduleResolve","keyframes$1","mapPercentToKeyframes","mirroredGenerator","generatorFactory","generator","calcGeneratorDuration","Infinity","resolvedDuration","totalDuration","play","pause","tick","sample","speed","timeWithoutDelay","isInDelayPhase","elapsed","frameGenerator","currentIteration","floor","iterationProgress","isAnimationFinished","finish","time","newTime","driver","newSpeed","hasChanged","isScheduled","resume","onPlay","complete","stopDriver","isBezierDefinition","cubicBezierAsString","c","supportedWaapiEasing","mapEasingToNativeEasingWithDefault","mapEasingToNativeEasing","supportsWaapi","Object","hasOwnProperty","call","Element","prototype","AcceleratedAnimation","DOMKeyframesResolver","s","isWaapiSupportedEasing","every","pregeneratedAnimation","pregenerateKeyframes","sampleAnimation","pregeneratedKeyframes","animation","animateStyle","element","valueName","keyframeOptions","animate","fill","iterations","direction","pendingTimeline","timeline","onfinish","set","playbackRate","playState","attachTimeline","sampleTime","setWithVelocity","supports","accelerated_values","HTMLElement","getProps","supportsScrollTimeline","window","ScrollTimeline","GroupPlaybackControls","animations","runAll","onResolve","onReject","all","catch","getAll","propName","setAll","newValue","cancelAll","observeTimeline","prevProgress","onFrame","percentage","forEach","cancelTimeline","methodName","controls","animateMotionValue","transition","isHandoff","onEnd","valueTransition","transitions","getVelocity","r","shouldSkip","GlobalConfig","skipAnimations","get","animateTarget","visualElement","targetAndTransition","transitionOverride","transitionEnd","animationTypeState","animationState","getState","getValue","latestValues","valueTarget","shouldBlockAnimation","protectedKeys","needsAnimating","shouldBlock","HandoffAppearAnimations","appearId","get_appear_id","motion_value","shouldReduceMotion","add_will_change","setters","C","animateVariant","variant","resolve_dynamic_variants","presenceContext","custom","getAnimation","getChildAnimations","variantChildren","size","forwardDelay","delayChildren","staggerChildren","staggerDirection","animateChildren","maxStaggerDuration","generateStaggerDuration","sort","sortByTreeOrder","child","notify","when","first","last","sortNodePosition","animateVisualElement","resolvedDefinition","postRender","optimizedAppearDataAttribute","_render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__","D","getOptimisedAppearId","_data_id_mjs__WEBPACK_IMPORTED_MODULE_0__","isAnimationControls","isKeyframesTarget","isTransitionDefined","_delay","getValueTransition","LayoutGroupContext","react__WEBPACK_IMPORTED_MODULE_0__","createContext","LazyContext","strict","MotionConfigContext","transformPagePoint","isStatic","reducedMotion","MotionContext","PresenceContext","SwitchLayoutGroupContext","acos","_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__","_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__","mirrorEasing","reverseEasing","addDomEvent","eventName","handler","passive","addEventListener","removeEventListener","addPointerEvent","_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_0__","E","_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__","extractEventInfo","event","pointType","point","y","addPointerInfo","_utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__","isPrimaryPointer","pointerType","button","isPrimary","stepsOrder","createRenderBatcher","scheduleNextBatch","allowKeepAlive","runNextFrame","useDefaultElapsed","flagRunNextFrame","steps","reduce","acc","createRenderStep","thisFrame","nextFrame","flushNextFrame","toKeepAlive","WeakSet","latestFrameData","triggerCallback","step","schedule","keepAlive","immediate","queue","addToCurrentFrame","add","delete","process","clear","read","preRender","render","processBatch","useManualTiming","performance","wake","frame","cancelFrame","_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__","requestAnimationFrame","_utils_noop_mjs__WEBPACK_IMPORTED_MODULE_1__","microtask","cancelMicrotask","queueMicrotask","clearTime","_frame_mjs__WEBPACK_IMPORTED_MODULE_0__","_utils_GlobalConfig_mjs__WEBPACK_IMPORTED_MODULE_1__","createLock","lock","globalHorizontalLock","globalVerticalLock","getGlobalLock","drag","openHorizontal","openVertical","isDragActive","openGestureLock","Feature","node","isMounted","shallowCompare","prev","prevLength","reversePriorityOrder","variant_props","numAnimationTypes","createTypeState","isActive","prevResolvedValues","createState","whileInView","whileHover","whileTap","whileDrag","whileFocus","exit","AnimationFeature","L","createAnimationState","visual_element","isInitialRender","buildResolvedTypeValues","animateChanges","changedActiveType","props","context","getVariantContext","removedKeys","encounteredKeys","removedVariantIndex","typeState","prop","propIsVariant","is_variant_label","activeDelta","isInherited","manuallyAnimateOnMount","prevProp","is_animation_controls","H","shouldAnimateType","variantDidChange","handledRemovedValues","definitionList","resolvedValues","allKeys","markToAnimate","liveStyle","is_keyframes_target","blockInitialAnimation","fallbackAnimation","fallbackTarget","getBaseTarget","shouldAnimate","initial","setActive","setAnimateFunction","makeAnimator","reset","updateAnimationControlsSubscription","unmountControls","subscribe","mount","prevAnimate","prevProps","unmount","id","ExitAnimationFeature","arguments","isPresent","onExitComplete","prevIsPresent","prevPresenceContext","exitAnimation","register","featureProps","focus","hover","tap","pan","inView","layout","featureDefinitions","isEnabled","addHoverEvent","callbackName","add_pointer_event","info","gD","HoverGesture","FocusGesture","onFocus","isFocusVisible","matches","onBlur","add_dom_event","isNodeOrChild","parent","parentElement","fireSyntheticPointerEvent","syntheticPointerEvent","PointerEvent","event_info","Q","PressGesture","removeStartListeners","removeEndListeners","removeAccessibleListeners","startPointerPress","startEvent","startInfo","isPressing","removePointerUpListener","endEvent","endInfo","checkPressEnd","onTap","onTapCancel","globalTapTarget","removePointerCancelListener","cancelEvent","cancelInfo","cancelPress","startPress","startAccessiblePress","removeKeydownListener","keydownEvent","keyupEvent","removeBlurListener","onTapStart","removePointerListener","removeFocusListener","observerCallbacks","WeakMap","observers","fireObserverCallback","entry","fireAllObserverCallbacks","entries","thresholdNames","InViewFeature","hasEnteredView","isInView","startObserver","viewport","root","margin","rootMargin","amount","once","threshold","observeIntersection","rootInteresectionObserver","initIntersectionObserver","lookupRoot","document","rootObservers","JSON","stringify","IntersectionObserver","observe","unobserve","isIntersecting","onViewportEnter","onViewportLeave","hasViewportOptionChanged","prevViewport","gestureAnimations","loadFeatures","features","_definitions_mjs__WEBPACK_IMPORTED_MODULE_0__","isForcedMotionValue","layoutId","_render_html_utils_transform_mjs__WEBPACK_IMPORTED_MODULE_0__","_projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_1__","convertBoundingBoxToBox","top","left","right","bottom","convertBoxToBoundingBox","transformBoxPoints","transformPoint","topLeft","bottomRight","scalePoint","scale","originPoint","applyPointDelta","translate","boxScale","applyAxisDelta","axis","applyBoxDelta","box","applyTreeDeltas","treeScale","treePath","isSharedTransition","treeLength","projectionDelta","style","display","layoutScroll","scroll","transformBox","_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__","ud","translateAxis","distance","transformAxis","axisTranslate","axisScale","axisOrigin","_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__","scaleX","originX","scaleY","originY","createAxisDelta","createDelta","createAxis","createBox","scaleCorrectors","addScaleCorrector","correctors","assign","isIdentityScale","hasScale","hasTransform","has2DTranslate","rotate","rotateX","rotateY","skewX","skewY","is2DTranslate","measureViewportBox","instance","_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__","i8","d7","getBoundingClientRect","measurePageBox","rootProjectionNode","viewportBox","_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__","am","splitCSSVariableRegex","invalidTemplates","unresolvedKeyframes","readKeyframes","keyframe","trim","getVariableValue","depth","token","fallback","parseCSSVariable","match","exec","token1","token2","getComputedStyle","getPropertyValue","trimmed","is_numerical_string","parseFloat","resolveNoneKeyframes","unit_conversion","z2","originType","dimensions","targetType","mP","needsMeasurement","noneKeyframeIndexes","is_zero_value_string","W","makeNoneKeyframesAnimatable","animatableTemplate","noneIndex","animatable_none","T","measureInitialState","suspendedScrollY","pageYOffset","measuredOrigin","lw","measureKeyframe","jump","measureEndState","finalKeyframeIndex","removedTransforms","unsetTransformName","unsetTransformValue","prefersReducedMotion","hasReducedMotionListener","visualElementStore","valueTypes","findValueType","l","propEventHandlers","numVariantProps","VisualElement","scrapeMotionValuesFromProps","_props","_prevProps","_visualElement","reducedMotionConfig","visualState","applyWillChange","children","isVariantNode","isControllingVariants","Map","valueSubscriptions","prevMotionValues","events","propEventSubscriptions","notifyUpdate","isRenderScheduled","triggerBuild","renderInstance","renderState","projection","scheduleRender","baseTarget","initialValues","is_controlling_variants","willChange","initialMotionValues","is_motion_value","removeFromVariantTree","addVariantChild","bindToMotionValue","initPrefersReducedMotion","is_browser","j","matchMedia","motionMediaQuery","setReducedMotionPreferences","addListener","remove","feature","valueIsTransform","removeOnChange","on","latestValue","isTransformDirty","removeOnRenderRequest","other","sortInstanceNodePosition","updateFeatures","definitions","featureDefinition","FeatureConstructor","build","measureInstanceViewportBox","models","dO","getStaticValue","setStaticValue","transformTemplate","listener","updateMotionValuesFromProps","nextValue","prevValue","addValue","es_value","BX","hasValue","existingValue","hasAnimated","removeValue","handleChildMotionValue","getVariant","variants","getTransformPagePoint","getClosestVariantNode","startAtParent","closestVariantNode","unsubscribe","removeValueFromRenderState","defaultValue","readValue","getBaseTargetFromProps","readValueFromInstance","setBaseTarget","valueFromInitial","resolve_variants","subscription_manager","args","DOMVisualElement","compareDocumentPosition","vars","HTMLVisualElement","N","defaultType","defaults","A","default","computedStyle","f","measure","build_styles","scrape_motion_values","U","childSubscription","textContent","SVGVisualElement","isSVGTag","camel_to_dash","getAttribute","utils_scrape_motion_values","build_attrs","styleProp","utils_render","is_svg_tag","tagName","createDomVisualElement","Component","is_svg_component","allowProjection","react","Fragment","scheduleHandoffComplete","completeHandoff","HandoffComplete","variantLabelsAsDependency","join","motionComponentSymbol","Symbol","for","createMotionProxy","createConfig","customMotionComponentConfig","createMotionComponent","preloadedFeatures","createVisualElement","useRender","useVisualState","load_features","ForwardRefComponent","forwardRef","externalRef","MeasureLayout","configAndProps","useContext","_","useLayoutId","layoutGroupId","useCreateMotionContext","getCurrentTreeVariants","inherit","useMemo","layoutProjection","getProjectionFunctionality","combined","ProjectionNode","useVisualElement","ProjectionNodeConstructor","lazyContext","O","visualElementRef","useRef","renderer","initialLayoutGroupConfig","createProjectionNode","initialPromotionConfig","dragConstraints","layoutRoot","getClosestProjectingNode","setOptions","alwaysMeasureLayout","is_ref_object","I","animationType","useInsertionEffect","wantsHandoff","data_id","use_isomorphic_effect","useEffect","jsx_runtime","jsxs","Provider","jsx","useCallback","Proxy","componentCache","_target","camelToDash","str","replace","toLowerCase","isValidProp","createHtmlRenderState","transformOrigin","copyRawValuesOnly","source","is_forced_motion_value","validMotionProps","isValidMotionProp","shouldForward","require","createSvgRenderState","attrs","makeUseVisualState","make","makeState","createRenderState","onMount","makeLatestValues","shouldApplyWillChange","scrapeMotionValues","motionValues","resolve_motion_value","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","forEachDefinition","addWillChange","memberName","get_will_change_name","array","y4","config","use_constant","h","list","svgMotionConfig","getBBox","width","height","htmlMotionConfig","createDomMotionConfig","forwardMotionProps","createUseRender","ref","visualProps","useVisualProps","_isStatic","rawStyles","htmlProps","useStyle","useInitialMotionValues","dragListener","draggable","userSelect","WebkitUserSelect","WebkitTouchCallout","touchAction","tabIndex","filteredProps","filterProps","isDom","elementProps","renderedChildren","createElement","checkStringStartsWith","isCSSVariableName","startsAsVariableToken","isCSSVariableToken","singleCssVariableRegex","split","lowercaseSVGElements","isSVGComponent","includes","indexOf","positionalKeys","isNumOrPxType","_value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__","Rx","_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__","px","getPosFromMatrix","matrix","pos","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","transformKeys","nonTranslationalTransformKeys","_html_utils_transform_mjs__WEBPACK_IMPORTED_MODULE_2__","removeNonTranslationalTransform","positionalValues","paddingLeft","paddingRight","paddingTop","paddingBottom","translateX","translateY","getAnimatableNone","defaultValueType","_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__","_value_types_complex_filter_mjs__WEBPACK_IMPORTED_MODULE_1__","_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__","defaultValueTypes","_number_mjs__WEBPACK_IMPORTED_MODULE_0__","_value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_1__","backgroundColor","outlineColor","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","_value_types_complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__","WebkitFilter","getDefaultValueType","dimensionValueTypes","numbers","units","aQ","RW","vw","vh","findDimensionValueType","type_int_int","numberValueTypes","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","radius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","maxWidth","maxHeight","padding","marginTop","marginRight","marginBottom","marginLeft","rotateZ","bA","scaleZ","skew","translateZ","perspective","transformPerspective","opacity","Fq","$C","originZ","zIndex","backgroundPositionX","backgroundPositionY","fillOpacity","strokeOpacity","numOctaves","testValueType","translateAlias","numTransforms","utils_transform","getValueAsType","buildHTMLStyles","hasTransformOrigin","transformIsNone","valueType","valueAsType","buildTransform","transformIsDefault","transformString","transformName","renderHTML","getProjectionStyles","setProperty","newValues","_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__","_motion_utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__","transformPropOrder","transformProps","calcOrigin","dashKeys","camelKeys","buildSVGAttrs","attrX","attrY","attrScale","pathLength","pathSpacing","pathOffset","viewBox","calcSVGTransformOrigin","pxOriginX","pxOriginY","buildSVGPath","spacing","useDashCase","camelCaseAttributes","tag","renderSVG","_styleProp","_html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__","setAttribute","_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__","_html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__","_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__","charAt","toUpperCase","substring","toResolve","anyNeedsMeasurement","measureAllKeyframes","resolversToMeasure","elementsToMeasure","transformsToRestore","_dom_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__","Ei","restore","scrollTo","readAllKeyframes","flushKeyframeResolvers","isAsync","isComplete","_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__","currentValue","valueAsRead","setFinalKeyframe","renderEndStyles","_animation_utils_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__","_variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__","_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__","isVariantLabel","resolveVariant","_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_0__","getValueState","resolveVariantFromProps","setTarget","_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_1__","_utils_resolve_value_mjs__WEBPACK_IMPORTED_MODULE_2__","_value_index_mjs__WEBPACK_IMPORTED_MODULE_0__","variantPriorityOrder","variantProps","MotionGlobalConfig","addUniqueItem","item","removeItem","warning","_noop_mjs__WEBPACK_IMPORTED_MODULE_0__","invariant","isBrowser","isNumericalString","isRefObject","isZeroValueString","any","combineFunctions","transformers","toFromDifference","isCustomValue","toValue","resolveFinalValueInKeyframes","_animation_utils_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_0__","SubscriptionManager","subscriptions","_array_mjs__WEBPACK_IMPORTED_MODULE_0__","cl","numSubscriptions","getSize","secondsToMilliseconds","seconds","millisecondsToSeconds","milliseconds","useConstant","init","useIsomorphicLayoutEffect","_is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__","useLayoutEffect","velocityPerSecond","frameDuration","isFloat","collectMotionValues","MotionValue","version","canTrackVelocity","updateAndNotify","_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__","updatedAt","setPrevFrameValue","setCurrent","change","renderRequest","prevFrameValue","prevUpdatedAt","onChange","subscription","_utils_subscription_manager_mjs__WEBPACK_IMPORTED_MODULE_1__","_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__","clearListeners","eventManagers","attach","passiveEffect","stopPassiveEffect","endAnimation","getPrevious","_utils_velocity_per_second_mjs__WEBPACK_IMPORTED_MODULE_3__","startAnimation","animationStart","animationComplete","clearAnimation","animationCancel","isAnimating","destroy","_utils_mjs__WEBPACK_IMPORTED_MODULE_0__","parseInt","_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__","alpha$1","_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__","_utils_mjs__WEBPACK_IMPORTED_MODULE_2__","Nw","_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__","_rgba_mjs__WEBPACK_IMPORTED_MODULE_0__","_hex_mjs__WEBPACK_IMPORTED_MODULE_1__","_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__","_utils_mjs__WEBPACK_IMPORTED_MODULE_3__","HD","clampRgbUnit","_utils_clamp_mjs__WEBPACK_IMPORTED_MODULE_0__","rgbUnit","_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__","isColorString","testProp","mj","Rw","splitColor","aName","bName","cName","KP","maxDefaults","applyDefaultFilter","slice","unit","functionRegex","_index_mjs__WEBPACK_IMPORTED_MODULE_1__","functions","NUMBER_TOKEN","COLOR_TOKEN","complexRegex","analyseComplexValue","originalValue","toString","tokenised","_color_index_mjs__WEBPACK_IMPORTED_MODULE_1__","parsedValue","parseComplexValue","numSections","convertNumbersToZero","_b","dA","parsed","transformer","createUnitType","endsWith","degrees","progressPercentage","sanitize","floatRegex","colorRegex","singleColorRegex","isString","isNullish","WillChangeMotionValue","Hg","counts","styleName","prevCount","hasRemoved","newCount","addValueToWillChange","getWillChangeName","_animation_animators_utils_accelerated_values_mjs__WEBPACK_IMPORTED_MODULE_1__","_render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__","isMotionValue","resolveMotionValue","unwrappedValue","_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__","_utils_resolve_value_mjs__WEBPACK_IMPORTED_MODULE_1__"],"sourceRoot":""}