{"version":3,"file":"static/js/8420.7870f93c.chunk.js","mappings":"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","sources":["../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/utils/mix.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix-color.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/utils/mix-complex.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/animation/animators/js/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/create-accelerated-animation.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/keyframes.mjs","../node_modules/framer-motion/dist/es/animation/animators/instant.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/utils/get-context-window.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/debug/record.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs"],"sourcesContent":["import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","class Queue {\n constructor() {\n this.order = [];\n this.scheduled = new Set();\n }\n add(process) {\n if (!this.scheduled.has(process)) {\n this.scheduled.add(process);\n this.order.push(process);\n return true;\n }\n }\n remove(process) {\n const index = this.order.indexOf(process);\n if (index !== -1) {\n this.order.splice(index, 1);\n this.scheduled.delete(process);\n }\n }\n clear() {\n this.order.length = 0;\n this.scheduled.clear();\n }\n}\nfunction 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 Queue();\n let nextFrame = new Queue();\n let numToRun = 0;\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 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.add(callback) && addToCurrentFrame && isProcessing) {\n // If we're adding it to the currently running queue, update its measured size\n numToRun = thisFrame.order.length;\n }\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.remove(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (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 numToRun = thisFrame.order.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = thisFrame.order[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\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 { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"prepare\",\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0,\n timestamp: 0,\n isProcessing: false,\n };\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n }, {});\n const processStep = (stepId) => steps[stepId].process(state);\n const processBatch = () => {\n const timestamp = 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 stepsOrder.forEach(processStep);\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) => stepsOrder.forEach((key) => steps[key].cancel(process));\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 { 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\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\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","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\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","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","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","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","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 { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import * as React from 'react';\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 { SwitchLayoutGroupContext } from '../context/SwitchLayoutGroupContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.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 /**\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);\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 const isStrict = useContext(LazyContext).strict;\n if (context.visualElement) {\n MeasureLayout = context.visualElement.loadFeatures(\n // Note: Pass the full new combined props to correctly re-render dynamic feature components.\n configAndProps, isStrict, preloadedFeatures, initialLayoutGroupConfig);\n }\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (React.createElement(MotionContext.Provider, { value: context },\n MeasureLayout && context.visualElement ? (React.createElement(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null,\n 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}\n\nexport { createMotionComponent };\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 { 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';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\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 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] && !window.HandoffComplete));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n 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 visualElement.updateFeatures();\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 window.HandoffComplete = true;\n }\n });\n return visualElement;\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 instance\n ? visualElement.mount(instance)\n : visualElement.unmount();\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig = {}) {\n 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 * We keep these listed seperately 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]/.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\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 { 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","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\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, { enableHardwareAcceleration = true, allowTransformNone = true, }, 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 if (enableHardwareAcceleration && !transform.z) {\n transformString += \"translateZ(0)\";\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 (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = checkStringStartsWith(\"--\");\nconst isCSSVariableToken = checkStringStartsWith(\"var(--\");\nconst cssVariableRegex = /var\\s*\\(\\s*--[\\w-]+(\\s*,\\s*(?:(?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)+)?\\s*\\)/g;\n\nexport { cssVariableRegex, isCSSVariableName, isCSSVariableToken };\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","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\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","/**\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])+/g;\nconst colorRegex = /(#[0-9a-f]{3,8}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3,8}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))$/i;\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nexport { colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType(\"deg\");\nconst percent = createUnitType(\"%\");\nconst px = createUnitType(\"px\");\nconst vh = createUnitType(\"vh\");\nconst vw = createUnitType(\"vw\");\nconst progressPercentage = {\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","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 // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\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, options, 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 seperately 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, options, 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","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, isStatic) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\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, isStatic));\n return props.transformValues ? props.transformValues(style) : style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState, isStatic);\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 \"transformValues\",\n \"custom\",\n \"inherit\",\n \"onLayoutAnimationStart\",\n \"onLayoutAnimationComplete\",\n \"onLayoutMeasure\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\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 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\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\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 }, options, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, options, 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","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\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, { enableHardwareAcceleration: false }, 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 { 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 = {\n ...filteredProps,\n ...visualProps,\n 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","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","/**\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","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 { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style && isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps);\n for (const key in props) {\n if (isMotionValue(props[key]) || 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","function resolveVariantFromProps(props, definition, custom, currentValues = {}, currentVelocity = {}) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = 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 definition = definition(custom !== undefined ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\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 { 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","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';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, 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);\n return isStatic ? make() : useConstant(make);\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\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 const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach((definition) => {\n const resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n const { transitionEnd, transition, ...target } = resolved;\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 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, { enableHardwareAcceleration: false }, 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 scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\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","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","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","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","/**\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","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","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 = \"pointer\" + (isActive ? \"enter\" : \"leave\");\n const callbackName = \"onHover\" + (isActive ? \"Start\" : \"End\");\n const handleEvent = (event, info) => {\n if (event.type === \"touch\" || isDragActive())\n return;\n const props = node.getProps();\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", isActive);\n }\n if (props[callbackName]) {\n frame.update(() => props[callbackName](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","/**\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 this.removeEndListeners();\n if (this.isPressing)\n return;\n const props = this.node.getProps();\n const endPointerPress = (endEvent, endInfo) => {\n if (!this.checkPressEnd())\n return;\n const { onTap, onTapCancel } = this.node.getProps();\n frame.update(() => {\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n !isNodeOrChild(this.node.current, endEvent.target)\n ? onTapCancel && onTapCancel(endEvent, endInfo)\n : onTap && onTap(endEvent, endInfo);\n });\n };\n const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, { passive: !(props.onTap || props[\"onPointerUp\"]) });\n const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), { passive: !(props.onTapCancel || props[\"onPointerCancel\"]) });\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.update(() => 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.update(() => 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.update(() => onTapCancel(event, info));\n }\n }\n mount() {\n const props = this.node.getProps();\n const removePointerListener = addPointerEvent(this.node.current, \"pointerdown\", this.startPointerPress, { passive: !(props.onTapStart || props[\"onPointerStart\"]) });\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 { 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","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 { resolveVariantFromProps } from './resolve-variants.mjs';\n\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n const current = {};\n visualElement.values.forEach((value, key) => (current[key] = value.get()));\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n const velocity = {};\n visualElement.values.forEach((value, key) => (velocity[key] = value.getVelocity()));\n return velocity;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\n\nexport { resolveVariant };\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","const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\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\" && supportedWaapiEasing[easing]) ||\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 mapEasingToNativeEasing(easing) {\n if (!easing)\n return undefined;\n return isBezierDefinition(easing)\n ? cubicBezierAsString(easing)\n : Array.isArray(easing)\n ? easing.map(mapEasingToNativeEasing)\n : supportedWaapiEasing[easing];\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\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","// 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","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","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 { 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","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 { isString, singleColorRegex, 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 && 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 { clamp } from '../../../utils/clamp.mjs';\nimport { number, alpha } 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 { 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","/*\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 mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\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","import { mix } from './mix.mjs';\nimport { invariant } 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';\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 return Math.sqrt(Math.max(0, v * (to * to - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n invariant(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\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 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 = mix(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { cssVariableRegex } from '../../../render/dom/utils/is-css-variable.mjs';\nimport { noop } from '../../../utils/noop.mjs';\nimport { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { colorRegex, floatRegex, isString, 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 cssVarTokeniser = {\n regex: cssVariableRegex,\n countKey: \"Vars\",\n token: \"${v}\",\n parse: noop,\n};\nconst colorTokeniser = {\n regex: colorRegex,\n countKey: \"Colors\",\n token: \"${c}\",\n parse: color.parse,\n};\nconst numberTokeniser = {\n regex: floatRegex,\n countKey: \"Numbers\",\n token: \"${n}\",\n parse: number.parse,\n};\nfunction tokenise(info, { regex, countKey, token, parse }) {\n const matches = info.tokenised.match(regex);\n if (!matches)\n return;\n info[\"num\" + countKey] = matches.length;\n info.tokenised = info.tokenised.replace(regex, token);\n info.values.push(...matches.map(parse));\n}\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const info = {\n value: originalValue,\n tokenised: originalValue,\n values: [],\n numVars: 0,\n numColors: 0,\n numNumbers: 0,\n };\n if (info.value.includes(\"var(--\"))\n tokenise(info, cssVarTokeniser);\n tokenise(info, colorTokeniser);\n tokenise(info, numberTokeniser);\n return info;\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { values, numColors, numVars, tokenised } = analyseComplexValue(source);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n if (i < numVars) {\n output = output.replace(cssVarTokeniser.token, v[i]);\n }\n else if (i < numVars + numColors) {\n output = output.replace(colorTokeniser.token, color.transform(v[i]));\n }\n else {\n output = output.replace(numberTokeniser.token, sanitize(v[i]));\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 { mix } from './mix.mjs';\nimport { mixColor } from './mix-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';\n\nconst mixImmediate = (origin, target) => (p) => `${p > 0 ? target : origin}`;\nfunction getMixer(origin, target) {\n if (typeof origin === \"number\") {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return origin.startsWith(\"var(\")\n ? mixImmediate(origin, target)\n : mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = { ...origin, ...target };\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.numVars === targetStats.numVars &&\n originStats.numColors === targetStats.numColors &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.values, 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 { mixArray, mixComplex, mixObject };\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 { invariant } from './errors.mjs';\nimport { color } from '../value/types/color/index.mjs';\nimport { clamp } from './clamp.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\nimport { noop } from './noop.mjs';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === \"number\") {\n return mixNumber;\n }\n else if (typeof v === \"string\") {\n return color.test(v) ? mixColor : mixComplex;\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === \"object\") {\n return mixObject;\n }\n return mixNumber;\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || 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 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 { 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","import { mix } from '../mix.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(mix(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\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","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\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 { 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 velocity: 0.0,\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, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);\n const initialVelocity = velocity ? -millisecondsToSeconds(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),\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 { 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 : performance.now(),\n };\n};\n\nexport { frameloopDriver };\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 { keyframes } from '../../generators/keyframes.mjs';\nimport { spring } from '../../generators/spring/index.mjs';\nimport { inertia } from '../../generators/inertia.mjs';\nimport { frameloopDriver } from './driver-frameloop.mjs';\nimport { interpolate } from '../../../utils/interpolate.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorDuration } from '../../generators/utils/calc-duration.mjs';\n\nconst types = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\n/**\n * Animate a single value on the main thread.\n *\n * This function is written, where functionality overlaps,\n * to be largely spec-compliant with WAAPI to allow fungibility\n * between the two.\n */\nfunction animateValue({ autoplay = true, delay = 0, driver = frameloopDriver, keyframes: keyframes$1, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", onPlay, onStop, onComplete, onUpdate, ...options }) {\n let speed = 1;\n let hasStopped = false;\n let resolveFinishedPromise;\n let currentFinishedPromise;\n /**\n * Resolve the current Promise every time we enter the\n * finished state. This is WAAPI-compatible behaviour.\n */\n const updateFinishedPromise = () => {\n currentFinishedPromise = new Promise((resolve) => {\n resolveFinishedPromise = resolve;\n });\n };\n // Create the first finished promise\n updateFinishedPromise();\n let animationDriver;\n const generatorFactory = types[type] || keyframes;\n /**\n * If this isn't the keyframes generator and we've been provided\n * strings as keyframes, we need to interpolate these.\n * TODO: Support velocity for units and complex value types/\n */\n let mapNumbersToKeyframes;\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n mapNumbersToKeyframes = interpolate([0, 100], keyframes$1, {\n clamp: false,\n });\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n let mirroredGenerator;\n if (repeatType === \"mirror\") {\n mirroredGenerator = generatorFactory({\n ...options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -(options.velocity || 0),\n });\n }\n let playState = \"idle\";\n let holdTime = null;\n let startTime = null;\n let cancelTime = null;\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 && repeat) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n let resolvedDuration = Infinity;\n let totalDuration = Infinity;\n if (calculatedDuration !== null) {\n resolvedDuration = calculatedDuration + repeatDelay;\n totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n }\n let currentTime = 0;\n const tick = (timestamp) => {\n if (startTime === null)\n return;\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 (speed > 0)\n startTime = Math.min(startTime, timestamp);\n if (speed < 0)\n startTime = Math.min(timestamp - totalDuration / speed, startTime);\n if (holdTime !== null) {\n currentTime = 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 currentTime = Math.round(timestamp - startTime) * speed;\n }\n // Rebase on delay\n const timeWithoutDelay = currentTime - delay * (speed >= 0 ? 1 : -1);\n const isInDelayPhase = speed >= 0 ? timeWithoutDelay < 0 : timeWithoutDelay > totalDuration;\n currentTime = Math.max(timeWithoutDelay, 0);\n /**\n * If this animation has finished, set the current time\n * to the total duration.\n */\n if (playState === \"finished\" && holdTime === null) {\n currentTime = totalDuration;\n }\n let elapsed = 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 = currentTime / 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 iterationIsOdd = Boolean(currentIteration % 2);\n if (iterationIsOdd) {\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 let p = clamp(0, 1, iterationProgress);\n if (currentTime > totalDuration) {\n p = repeatType === \"reverse\" && iterationIsOdd ? 1 : 0;\n }\n elapsed = p * 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$1[0] }\n : frameGenerator.next(elapsed);\n if (mapNumbersToKeyframes) {\n state.value = mapNumbersToKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done = speed >= 0 ? currentTime >= totalDuration : currentTime <= 0;\n }\n const isAnimationFinished = holdTime === null &&\n (playState === \"finished\" || (playState === \"running\" && done));\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n finish();\n }\n return state;\n };\n const stopAnimationDriver = () => {\n animationDriver && animationDriver.stop();\n animationDriver = undefined;\n };\n const cancel = () => {\n playState = \"idle\";\n stopAnimationDriver();\n resolveFinishedPromise();\n updateFinishedPromise();\n startTime = cancelTime = null;\n };\n const finish = () => {\n playState = \"finished\";\n onComplete && onComplete();\n stopAnimationDriver();\n resolveFinishedPromise();\n };\n const play = () => {\n if (hasStopped)\n return;\n if (!animationDriver)\n animationDriver = driver(tick);\n const now = animationDriver.now();\n onPlay && onPlay();\n if (holdTime !== null) {\n startTime = now - holdTime;\n }\n else if (!startTime || playState === \"finished\") {\n startTime = now;\n }\n if (playState === \"finished\") {\n updateFinishedPromise();\n }\n cancelTime = startTime;\n holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n playState = \"running\";\n animationDriver.start();\n };\n if (autoplay) {\n play();\n }\n const controls = {\n then(resolve, reject) {\n return currentFinishedPromise.then(resolve, reject);\n },\n get time() {\n return millisecondsToSeconds(currentTime);\n },\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n currentTime = newTime;\n if (holdTime !== null || !animationDriver || speed === 0) {\n holdTime = newTime;\n }\n else {\n startTime = animationDriver.now() - newTime / speed;\n }\n },\n get duration() {\n const duration = generator.calculatedDuration === null\n ? calcGeneratorDuration(generator)\n : generator.calculatedDuration;\n return millisecondsToSeconds(duration);\n },\n get speed() {\n return speed;\n },\n set speed(newSpeed) {\n if (newSpeed === speed || !animationDriver)\n return;\n speed = newSpeed;\n controls.time = millisecondsToSeconds(currentTime);\n },\n get state() {\n return playState;\n },\n play,\n pause: () => {\n playState = \"paused\";\n holdTime = currentTime;\n },\n stop: () => {\n hasStopped = true;\n if (playState === \"idle\")\n return;\n playState = \"idle\";\n onStop && onStop();\n cancel();\n },\n cancel: () => {\n if (cancelTime !== null)\n tick(cancelTime);\n cancel();\n },\n complete: () => {\n playState = \"finished\";\n },\n sample: (elapsed) => {\n startTime = 0;\n return tick(elapsed);\n },\n };\n return controls;\n}\n\nexport { animateValue };\n","import { animateStyle } from './index.mjs';\nimport { isWaapiSupportedEasing } from './easing.mjs';\nimport { getFinalKeyframe } from './utils/get-final-keyframe.mjs';\nimport { animateValue } from '../js/index.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../../utils/time-conversion.mjs';\nimport { memo } from '../../../utils/memo.mjs';\nimport { noop } from '../../../utils/noop.mjs';\nimport { frame, cancelFrame } from '../../../frameloop/frame.mjs';\n\nconst supportsWaapi = memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n \"backgroundColor\",\n]);\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;\nconst requiresPregeneratedKeyframes = (valueName, options) => options.type === \"spring\" ||\n valueName === \"backgroundColor\" ||\n !isWaapiSupportedEasing(options.ease);\nfunction createAcceleratedAnimation(value, valueName, { onUpdate, onComplete, ...options }) {\n const canAccelerateAnimation = supportsWaapi() &&\n acceleratedValues.has(valueName) &&\n !options.repeatDelay &&\n options.repeatType !== \"mirror\" &&\n options.damping !== 0 &&\n options.type !== \"inertia\";\n if (!canAccelerateAnimation)\n return false;\n /**\n * TODO: Unify with js/index\n */\n let hasStopped = false;\n let resolveFinishedPromise;\n let currentFinishedPromise;\n /**\n * Resolve the current Promise every time we enter the\n * finished state. This is WAAPI-compatible behaviour.\n */\n const updateFinishedPromise = () => {\n currentFinishedPromise = new Promise((resolve) => {\n resolveFinishedPromise = resolve;\n });\n };\n // Create the first finished promise\n updateFinishedPromise();\n let { keyframes, duration = 300, ease, times } = options;\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (requiresPregeneratedKeyframes(valueName, options)) {\n const sampleAnimation = animateValue({\n ...options,\n repeat: 0,\n delay: 0,\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 times = undefined;\n keyframes = pregeneratedKeyframes;\n duration = t - sampleDelta;\n ease = \"linear\";\n }\n const animation = animateStyle(value.owner.current, valueName, keyframes, {\n ...options,\n duration,\n /**\n * This function is currently not called if ease is provided\n * as a function so the cast is safe.\n *\n * However it would be possible for a future refinement to port\n * in easing pregeneration from Motion One for browsers that\n * support the upcoming `linear()` easing function.\n */\n ease: ease,\n times,\n });\n const cancelAnimation = () => animation.cancel();\n const safeCancel = () => {\n frame.update(cancelAnimation);\n resolveFinishedPromise();\n updateFinishedPromise();\n };\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 value.set(getFinalKeyframe(keyframes, options));\n onComplete && onComplete();\n safeCancel();\n };\n /**\n * Animation interrupt callback.\n */\n const controls = {\n then(resolve, reject) {\n return currentFinishedPromise.then(resolve, reject);\n },\n attachTimeline(timeline) {\n animation.timeline = timeline;\n animation.onfinish = null;\n return noop;\n },\n get time() {\n return millisecondsToSeconds(animation.currentTime || 0);\n },\n set time(newTime) {\n animation.currentTime = secondsToMilliseconds(newTime);\n },\n get speed() {\n return animation.playbackRate;\n },\n set speed(newSpeed) {\n animation.playbackRate = newSpeed;\n },\n get duration() {\n return millisecondsToSeconds(duration);\n },\n play: () => {\n if (hasStopped)\n return;\n animation.play();\n /**\n * Cancel any pending cancel tasks\n */\n cancelFrame(cancelAnimation);\n },\n pause: () => animation.pause(),\n stop: () => {\n hasStopped = true;\n if (animation.playState === \"idle\")\n return;\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 const { currentTime } = animation;\n if (currentTime) {\n const sampleAnimation = animateValue({\n ...options,\n autoplay: false,\n });\n value.setWithVelocity(sampleAnimation.sample(currentTime - sampleDelta).value, sampleAnimation.sample(currentTime).value, sampleDelta);\n }\n safeCancel();\n },\n complete: () => animation.finish(),\n cancel: safeCancel,\n };\n return controls;\n}\n\nexport { createAcceleratedAnimation };\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 { mapEasingToNativeEasing } from './easing.mjs';\n\nfunction animateStyle(element, valueName, keyframes, { delay = 0, duration, 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","function getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }) {\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : keyframes.length - 1;\n return keyframes[index];\n}\n\nexport { getFinalKeyframe };\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","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 = (key, value) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || 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 { 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 = /([a-z-]*)\\(.*?\\)/g;\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 '../../../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","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","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/.test(v);\n\nexport { isZeroValueString };\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}\n\nexport { isNone };\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] || transition[\"default\"] || transition;\n}\n\nexport { getValueTransition, isTransitionDefined };\n","import { warning } from '../../utils/errors.mjs';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { createAcceleratedAnimation } from '../animators/waapi/create-accelerated-animation.mjs';\nimport { createInstantAnimation } from '../animators/instant.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { isAnimatable } from '../utils/is-animatable.mjs';\nimport { getKeyframes } from '../utils/keyframes.mjs';\nimport { getValueTransition, isTransitionDefined } from '../utils/transitions.mjs';\nimport { animateValue } from '../animators/js/index.mjs';\n\nconst animateMotionValue = (valueName, value, target, transition = {}) => {\n return (onComplete) => {\n const valueTransition = getValueTransition(transition, valueName) || {};\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 const keyframes = getKeyframes(value, valueName, target, valueTransition);\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 const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(valueName, originKeyframe);\n const isTargetAnimatable = isAnimatable(valueName, targetKeyframe);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${valueName} 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 let options = {\n keyframes,\n velocity: value.getVelocity(),\n ease: \"easeOut\",\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 },\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(valueName, 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 (!isOriginAnimatable ||\n !isTargetAnimatable ||\n instantAnimationState.current ||\n valueTransition.type === false) {\n /**\n * If we can't animate this value, or the global instant animation flag is set,\n * or this is simply defined as an instant transition, return an instant transition.\n */\n return createInstantAnimation(instantAnimationState.current\n ? { ...options, delay: 0 }\n : options);\n }\n /**\n * Animate via WAAPI if possible.\n */\n if (\n /**\n * 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 !transition.isHandoff &&\n value.owner &&\n value.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 !value.owner.getProps().onUpdate) {\n const acceleratedAnimation = createAcceleratedAnimation(value, valueName, options);\n if (acceleratedAnimation)\n return acceleratedAnimation;\n }\n /**\n * If we didn't create an accelerated animation, create a JS animation\n */\n return animateValue(options);\n };\n};\n\nexport { animateMotionValue };\n","import { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { isNone } from './is-none.mjs';\n\nfunction getKeyframes(value, valueName, target, transition) {\n const isTargetAnimatable = isAnimatable(valueName, target);\n let keyframes;\n if (Array.isArray(target)) {\n keyframes = [...target];\n }\n else {\n keyframes = [null, target];\n }\n const defaultOrigin = transition.from !== undefined ? transition.from : value.get();\n let animatableTemplateValue = undefined;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < keyframes.length; i++) {\n /**\n * Fill null/wildcard keyframes\n */\n if (keyframes[i] === null) {\n keyframes[i] = i === 0 ? defaultOrigin : keyframes[i - 1];\n }\n if (isNone(keyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n // TODO: Clean this conditional, it works for now\n if (typeof keyframes[i] === \"string\" &&\n keyframes[i] !== \"none\" &&\n keyframes[i] !== \"0\") {\n animatableTemplateValue = keyframes[i];\n }\n }\n if (isTargetAnimatable &&\n noneKeyframeIndexes.length &&\n animatableTemplateValue) {\n for (let i = 0; i < noneKeyframeIndexes.length; i++) {\n const index = noneKeyframeIndexes[i];\n keyframes[index] = getAnimatableNone(valueName, animatableTemplateValue);\n }\n }\n return keyframes;\n}\n\nexport { getKeyframes };\n","import { animateValue } from './js/index.mjs';\nimport { noop } from '../../utils/noop.mjs';\n\nfunction createInstantAnimation({ keyframes, delay, onUpdate, onComplete, }) {\n const setValue = () => {\n onUpdate && onUpdate(keyframes[keyframes.length - 1]);\n onComplete && onComplete();\n /**\n * TODO: As this API grows it could make sense to always return\n * animateValue. This will be a bigger project as animateValue\n * is frame-locked whereas this function resolves instantly.\n * This is a behavioural change and also has ramifications regarding\n * assumptions within tests.\n */\n return {\n time: 0,\n speed: 1,\n duration: 0,\n play: (noop),\n pause: (noop),\n stop: (noop),\n then: (resolve) => {\n resolve();\n return Promise.resolve();\n },\n cancel: (noop),\n complete: (noop),\n };\n };\n return delay\n ? animateValue({\n keyframes: [0, 1],\n duration: 0,\n delay,\n onComplete: setValue,\n })\n : setValue();\n}\n\nexport { createInstantAnimation };\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","/**\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+$/.test(v);\n\nexport { isNumericalString };\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","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","import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { frame, frameData } from '../frameloop/frame.mjs';\n\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 = \"10.16.16\";\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\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 = false;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n this.prev = this.current;\n this.current = v;\n // Update timestamp\n const { delta, timestamp } = frameData;\n if (this.lastUpdated !== timestamp) {\n this.timeDelta = delta;\n this.lastUpdated = timestamp;\n frame.postRender(this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (this.prev !== this.current && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update velocity subscribers\n if (this.events.velocityChange) {\n this.events.velocityChange.notify(this.getVelocity());\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = () => frame.postRender(this.velocityCheck);\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = ({ timestamp }) => {\n if (timestamp !== this.lastUpdated) {\n this.prev = this.current;\n if (this.events.velocityChange) {\n this.events.velocityChange.notify(this.getVelocity());\n }\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\n this.owner = options.owner;\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