{"file":"index-gp9YHkeR.js","mappings":"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","names":["frameData","process","isAnimationControls","resolveVariant","isNumber","isSVGElement","Feature","id","invariant","keyframes","transforms","buildSVGPath","convertBoundingBoxToBox","transformBoxPoints","transformPoint","measureViewportBox","createAxis","createBox","motionValue","alpha","getAnimatableNone","number","now","style","hasTransform","scrapeMotionValuesFromProps","getComputedStyle","isSVGTag","mixNumber","progress","ease","scale","delay","getValueTransition","isWillChangeMotionValue","addValueToWillChange","isNotNull","getFinalKeyframe","color","percent","hasChanged","createVisualElement","time","animationTarget","finishAnimation","isHTMLElement","isPrimaryPointer","extractEventInfo","handleHoverEvent","addDomEvent","scaleX","scaleY","translateAxis","distance","calcLength","rotate","eachAxis","ref","rootProjectionNode","isDragging","inertia","warning","style2","hover","press","inView"],"sources":["../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/order.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/render-step.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/global-config.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/batcher.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/sync-time.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/utils/delay.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/is-css-variable.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/styles/scale-correction.mjs","../../../../node_modules/motion-v/dist/es/utils/createContext.mjs","../../../../node_modules/motion-v/dist/es/components/context.mjs","../../../../node_modules/motion-v/dist/es/animation/utils.mjs","../../../../node_modules/motion-v/dist/es/features/feature.mjs","../../../../node_modules/motion-v/dist/es/state/utils.mjs","../../../../node_modules/motion-v/dist/es/features/feature-manager.mjs","../../../../node_modules/motion-v/dist/es/components/animate-presence/presence.mjs","../../../../node_modules/motion-v/dist/es/state/utils/is-variant-labels.mjs","../../../../node_modules/motion-v/dist/es/state/motion-state.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/store.mjs","../../../../node_modules/motion-v/dist/es/state/event.mjs","../../../../node_modules/motion-v/dist/es/state/transform.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/numbers/units.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs","../../../../node_modules/motion-v/dist/es/state/style.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/geometry/conversion.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/utils/measure.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/motion/features/definitions.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/geometry/models.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/utils/reduced-motion/state.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/utils/is-variant-label.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/utils/variant-props.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/format-error-message.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/warn-once.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/array.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/subscription-manager.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/velocity-per-second.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/index.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/utils/motion-values.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/utils/resolve-variants.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/render/dom/parse-transform.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-transform.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/clamp.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/numbers/index.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/is-numerical-string.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/is-zero-value-string.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/sanitize.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/float-regex.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/is-nullish.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/single-color-regex.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/color/utils.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/color/rgba.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/color/hex.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/color/hsla.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/color/index.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/color-regex.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/complex/index.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/auto.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/test.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/dimensions.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/find.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/complex/filter.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/int.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/maps/transform.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/maps/number.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/maps/defaults.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/animatable-none.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/microtask.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/VisualElement.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-position.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/get-as-type.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/html/utils/build-transform.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/html/utils/build-styles.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/html/utils/render.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/svg/utils/path.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/svg/utils/render.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../../../../node_modules/motion-v/dist/es/state/create-visual-element.mjs","../../../../node_modules/motion-v/dist/es/features/animation/calc-child-stagger.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/resolve-elements.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/animate/resolve-subjects.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/sequence/utils/calc-repeat-duration.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/wrap.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/utils/is-easing-array.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/utils/get-easing-for-segment.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/sequence/utils/edit.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/sequence/utils/normalize-times.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/sequence/utils/sort.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/progress.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/offsets/default.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/utils/is-generator.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/sequence/create.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/utils/setters.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/value/use-will-change/is.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/value/use-will-change/add-will-change.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/utils/default-transitions.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/utils/is-transition-defined.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/get-value-transition.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/make-animation-instant.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/immediate.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/color.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/visibility.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/pipe.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/complex.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/index.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/drivers/frame.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/waapi/utils/linear.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/utils/velocity.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/spring/defaults.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/spring/find.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/spring/index.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/inertia.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/interpolate.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/offsets/time.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/cubic-bezier.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/ease.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/modifiers/mirror.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/modifiers/reverse.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/back.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/anticipate.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/circ.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/easing/utils/map.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/keyframes.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/get-final.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/replace-transition-type.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/WithPromise.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/JSAnimation.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/render/dom/is-css-var.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/render/dom/style-set.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/memo.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/supports/scroll-timeline.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/supports/flags.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/supports/memo.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/supports/linear-easing.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/waapi/easing/supported.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/NativeAnimation.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/NativeAnimationExtended.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/is-animatable.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/can-animate.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/waapi/supports/waapi.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/object/ObjectVisualElement.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/is-object.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/is-svg-element.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/is-svg-svg-element.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/utils/create-visual-element.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/animate/single-value.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/animate/subject.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/animate/sequence.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/GroupAnimation.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/animation/GroupAnimationWithThen.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/animate/index.mjs","../../../../node_modules/motion-v/dist/es/features/animation/animation.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/is-html-element.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/drag/state/is-active.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/utils/setup.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/press/utils/state.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/press/utils/keyboard.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/press/index.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/press/index.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/hover.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/hover/index.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/dom/viewport/index.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/in-view/index.mjs","../../../../node_modules/motion-v/dist/es/events/add-dom-event.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/focus/index.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/utils/flat-tree.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/animation/mix-values.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/geometry/copy.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/utils/has-transform.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/geometry/utils.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/shared/stack.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/styles/transform.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/utils/each-axis.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/node/state.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/node/create-projection-node.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/events/add-dom-event.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../../../../node_modules/motion-v/dist/es/features/layout/utils.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../../../../node_modules/motion-v/dist/es/features/layout/config.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/drag/utils/is.mjs","../../../../node_modules/motion-v/dist/es/features/layout/projection.mjs","../../../../node_modules/motion-v/dist/es/events/utils/is-primary-pointer.mjs","../../../../node_modules/motion-v/dist/es/events/event-info.mjs","../../../../node_modules/motion-v/dist/es/events/add-pointer-event.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/drag/lock.mjs","../../../../node_modules/motion-v/dist/es/projection/geometry/delta-calc.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/drag/utils/constraints.mjs","../../../../node_modules/motion-v/dist/es/external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/utils/distance.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/pan/PanSession.mjs","../../../../node_modules/motion-v/dist/es/projection/geometry/models.mjs","../../../../node_modules/motion-v/dist/es/projection/utils/each-axis.mjs","../../../../node_modules/motion-v/dist/es/value/use-will-change/is.mjs","../../../../node_modules/motion-v/dist/es/value/use-will-change/add-will-change.mjs","../../../../node_modules/motion-v/dist/es/projection/conversion.mjs","../../../../node_modules/motion-v/dist/es/projection/geometry/delta-apply.mjs","../../../../node_modules/motion-v/dist/es/projection/utils/measure.mjs","../../../../node_modules/motion-v/dist/es/state/utils/is-present.mjs","../../../../node_modules/motion-v/dist/es/utils/get-context-window.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/drag/VisualElementDragControls.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/drag/index.mjs","../../../../node_modules/motion-v/dist/es/features/layout/layout.mjs","../../../../node_modules/motion-v/dist/es/features/gestures/pan/index.mjs","../../../../node_modules/motion-v/dist/es/features/dom-max.mjs","../../../../node_modules/motion-v/dist/es/components/motion-config/context.mjs","../../../../node_modules/motion-v/dist/es/components/lazy-motion/context.mjs","../../../../node_modules/motion-v/dist/es/components/motion/use-motion-state.mjs","../../../../node_modules/motion-v/dist/es/components/motion/props.mjs","../../../../node_modules/motion-v/dist/es/components/motion/utils.mjs","../../../../node_modules/motion-v/dist/es/components/motion/index.mjs"],"sourcesContent":["const stepsOrder = [\n  \"setup\",\n  // Compute\n  \"read\",\n  // Read\n  \"resolveKeyframes\",\n  // Write/Read/Write/Read\n  \"preUpdate\",\n  // Compute\n  \"update\",\n  // Compute\n  \"preRender\",\n  // Compute\n  \"render\",\n  // Write\n  \"postRender\"\n  // Compute\n];\nexport {\n  stepsOrder\n};\n","import { statsBuffer } from \"../stats/buffer.mjs\";\nfunction createRenderStep(runNextFrame, stepName) {\n  let thisFrame = /* @__PURE__ */ new Set();\n  let nextFrame = /* @__PURE__ */ new Set();\n  let isProcessing = false;\n  let flushNextFrame = false;\n  const toKeepAlive = /* @__PURE__ */ new WeakSet();\n  let latestFrameData = {\n    delta: 0,\n    timestamp: 0,\n    isProcessing: false\n  };\n  let numCalls = 0;\n  function triggerCallback(callback) {\n    if (toKeepAlive.has(callback)) {\n      step.schedule(callback);\n      runNextFrame();\n    }\n    numCalls++;\n    callback(latestFrameData);\n  }\n  const step = {\n    /**\n     * Schedule a process to run on the next frame.\n     */\n    schedule: (callback, keepAlive = false, immediate = false) => {\n      const addToCurrentFrame = immediate && isProcessing;\n      const queue = addToCurrentFrame ? thisFrame : nextFrame;\n      if (keepAlive)\n        toKeepAlive.add(callback);\n      if (!queue.has(callback))\n        queue.add(callback);\n      return callback;\n    },\n    /**\n     * Cancel the provided callback from running on the next frame.\n     */\n    cancel: (callback) => {\n      nextFrame.delete(callback);\n      toKeepAlive.delete(callback);\n    },\n    /**\n     * Execute all schedule callbacks.\n     */\n    process: (frameData) => {\n      latestFrameData = frameData;\n      if (isProcessing) {\n        flushNextFrame = true;\n        return;\n      }\n      isProcessing = true;\n      [thisFrame, nextFrame] = [nextFrame, thisFrame];\n      thisFrame.forEach(triggerCallback);\n      if (stepName && statsBuffer.value) {\n        statsBuffer.value.frameloop[stepName].push(numCalls);\n      }\n      numCalls = 0;\n      thisFrame.clear();\n      isProcessing = false;\n      if (flushNextFrame) {\n        flushNextFrame = false;\n        step.process(frameData);\n      }\n    }\n  };\n  return step;\n}\nexport {\n  createRenderStep\n};\n","const MotionGlobalConfig = {};\nexport {\n  MotionGlobalConfig\n};\n","import { stepsOrder } from \"./order.mjs\";\nimport { createRenderStep } from \"./render-step.mjs\";\nimport { MotionGlobalConfig } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/global-config.mjs\";\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 flagRunNextFrame = () => runNextFrame = true;\n  const steps = stepsOrder.reduce((acc, key) => {\n    acc[key] = createRenderStep(flagRunNextFrame, allowKeepAlive ? key : void 0);\n    return acc;\n  }, {});\n  const { setup, read, resolveKeyframes, preUpdate, update, preRender, render, postRender } = steps;\n  const processBatch = () => {\n    const timestamp = MotionGlobalConfig.useManualTiming ? state.timestamp : performance.now();\n    runNextFrame = false;\n    if (!MotionGlobalConfig.useManualTiming) {\n      state.delta = useDefaultElapsed ? 1e3 / 60 : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n    }\n    state.timestamp = timestamp;\n    state.isProcessing = true;\n    setup.process(state);\n    read.process(state);\n    resolveKeyframes.process(state);\n    preUpdate.process(state);\n    update.process(state);\n    preRender.process(state);\n    render.process(state);\n    postRender.process(state);\n    state.isProcessing = false;\n    if (runNextFrame && allowKeepAlive) {\n      useDefaultElapsed = false;\n      scheduleNextBatch(processBatch);\n    }\n  };\n  const wake = () => {\n    runNextFrame = true;\n    useDefaultElapsed = true;\n    if (!state.isProcessing) {\n      scheduleNextBatch(processBatch);\n    }\n  };\n  const schedule = stepsOrder.reduce((acc, key) => {\n    const step = steps[key];\n    acc[key] = (process, keepAlive = false, immediate = false) => {\n      if (!runNextFrame)\n        wake();\n      return step.schedule(process, keepAlive, immediate);\n    };\n    return acc;\n  }, {});\n  const cancel = (process) => {\n    for (let i = 0; i < stepsOrder.length; i++) {\n      steps[stepsOrder[i]].cancel(process);\n    }\n  };\n  return { schedule, cancel, state, steps };\n}\nexport {\n  createRenderBatcher\n};\n","const noop = /* @__NO_SIDE_EFFECTS__ */ (any) => any;\nexport {\n  noop\n};\n","import { createRenderBatcher } from \"./batcher.mjs\";\nimport { noop } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps } = /* @__PURE__ */ createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\nexport {\n  cancelFrame,\n  frame,\n  frameData,\n  frameSteps\n};\n","import { frameData } from \"./frame.mjs\";\nimport { MotionGlobalConfig } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/global-config.mjs\";\nlet now;\nfunction clearTime() {\n  now = void 0;\n}\nconst time = {\n  now: () => {\n    if (now === void 0) {\n      time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming ? frameData.timestamp : performance.now());\n    }\n    return now;\n  },\n  set: (newTime) => {\n    now = newTime;\n    queueMicrotask(clearTime);\n  }\n};\nexport {\n  time\n};\n","const secondsToMilliseconds = /* @__NO_SIDE_EFFECTS__ */ (seconds) => seconds * 1e3;\nconst millisecondsToSeconds = /* @__NO_SIDE_EFFECTS__ */ (milliseconds) => milliseconds / 1e3;\nexport {\n  millisecondsToSeconds,\n  secondsToMilliseconds\n};\n","import { time } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/sync-time.mjs\";\nimport { frame, cancelFrame } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nimport { secondsToMilliseconds } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nfunction delay(callback, timeout) {\n  const start = time.now();\n  const checkElapsed = ({ timestamp }) => {\n    const elapsed = timestamp - start;\n    if (elapsed >= timeout) {\n      cancelFrame(checkElapsed);\n      callback(elapsed - timeout);\n    }\n  };\n  frame.setup(checkElapsed, true);\n  return () => cancelFrame(checkElapsed);\n}\nfunction delayInSeconds(callback, timeout) {\n  return delay(callback, secondsToMilliseconds(timeout));\n}\nexport {\n  delay,\n  delayInSeconds\n};\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = /* @__PURE__ */ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = /* @__PURE__ */ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n  const startsWithToken = startsAsVariableToken(value);\n  if (!startsWithToken)\n    return false;\n  return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\nexport {\n  isCSSVariableName,\n  isCSSVariableToken\n};\n","import { isCSSVariableName } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/is-css-variable.mjs\";\nconst scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n  for (const key in correctors) {\n    scaleCorrectors[key] = correctors[key];\n    if (isCSSVariableName(key)) {\n      scaleCorrectors[key].isCSSVariable = true;\n    }\n  }\n}\nexport {\n  addScaleCorrector,\n  scaleCorrectors\n};\n","import { inject, provide } from \"vue\";\nfunction createContext(providerComponentName, contextName) {\n  const symbolDescription = typeof providerComponentName === \"string\" && !contextName ? `${providerComponentName}Context` : contextName;\n  const injectionKey = Symbol(symbolDescription);\n  const injectContext = (fallback) => {\n    const context = inject(injectionKey, fallback);\n    if (context === void 0) {\n      throw new Error(\n        `Injection \\`${injectionKey.toString()}\\` not found. Component must be used within ${Array.isArray(providerComponentName) ? `one of the following components: ${providerComponentName.join(\n          \", \"\n        )}` : `\\`${providerComponentName}\\``}`\n      );\n    }\n    return context;\n  };\n  const provideContext = (contextValue) => {\n    provide(injectionKey, contextValue);\n    return contextValue;\n  };\n  return [injectContext, provideContext];\n}\nexport {\n  createContext\n};\n","import { createContext } from \"../utils/createContext.mjs\";\nconst [injectMotion, provideMotion] = createContext(\"Motion\");\nconst [injectLayoutGroup, provideLayoutGroup] = createContext(\"LayoutGroup\");\nexport {\n  injectLayoutGroup,\n  injectMotion,\n  provideLayoutGroup,\n  provideMotion\n};\n","function isAnimationControls(v) {\n  return v !== null && typeof v === \"object\" && typeof v.start === \"function\";\n}\nexport {\n  isAnimationControls\n};\n","class Feature {\n  constructor(state) {\n    this.state = state;\n  }\n  beforeMount() {\n  }\n  mount() {\n  }\n  unmount() {\n  }\n  update() {\n  }\n  beforeUpdate() {\n  }\n  beforeUnmount() {\n  }\n}\nexport {\n  Feature\n};\n","function resolveVariant(definition, variants, custom) {\n  if (Array.isArray(definition)) {\n    return definition.reduce((acc, item) => {\n      const resolvedVariant = resolveVariant(item, variants, custom);\n      return resolvedVariant ? { ...acc, ...resolvedVariant } : acc;\n    }, {});\n  } else if (typeof definition === \"object\") {\n    return definition;\n  } else if (definition && variants) {\n    const variant = variants[definition];\n    return typeof variant === \"function\" ? variant(custom) : variant;\n  }\n}\nfunction hasChanged(a, b) {\n  if (typeof a !== typeof b)\n    return true;\n  if (Array.isArray(a) && Array.isArray(b))\n    return !shallowCompare(a, b);\n  return a !== b;\n}\nfunction shallowCompare(next, prev) {\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}\nfunction isCssVar(name) {\n  return name == null ? void 0 : name.startsWith(\"--\");\n}\nconst noopReturn = (v) => v;\nfunction isNumber(value) {\n  return typeof value === \"number\";\n}\nconst svgElements = [\n  \"animate\",\n  \"circle\",\n  \"defs\",\n  \"desc\",\n  \"ellipse\",\n  \"g\",\n  \"image\",\n  \"line\",\n  \"filter\",\n  \"marker\",\n  \"mask\",\n  \"metadata\",\n  \"path\",\n  \"pattern\",\n  \"polygon\",\n  \"polyline\",\n  \"rect\",\n  \"stop\",\n  \"svg\",\n  \"switch\",\n  \"symbol\",\n  \"text\",\n  \"tspan\",\n  \"use\",\n  \"view\",\n  \"clipPath\",\n  \"feBlend\",\n  \"feColorMatrix\",\n  \"feComponentTransfer\",\n  \"feComposite\",\n  \"feConvolveMatrix\",\n  \"feDiffuseLighting\",\n  \"feDisplacementMap\",\n  \"feDistantLight\",\n  \"feDropShadow\",\n  \"feFlood\",\n  \"feFuncA\",\n  \"feFuncB\",\n  \"feFuncG\",\n  \"feFuncR\",\n  \"feGaussianBlur\",\n  \"feImage\",\n  \"feMerge\",\n  \"feMergeNode\",\n  \"feMorphology\",\n  \"feOffset\",\n  \"fePointLight\",\n  \"feSpecularLighting\",\n  \"feSpotLight\",\n  \"feTile\",\n  \"feTurbulence\",\n  \"foreignObject\",\n  \"linearGradient\",\n  \"radialGradient\",\n  \"textPath\"\n];\nconst svgElementSet = new Set(svgElements);\nfunction isSVGElement(as) {\n  return svgElementSet.has(as);\n}\nexport {\n  hasChanged,\n  isCssVar,\n  isNumber,\n  isSVGElement,\n  noopReturn,\n  resolveVariant,\n  shallowCompare,\n  svgElements\n};\n","import { watch } from \"vue\";\nclass FeatureManager {\n  constructor(state) {\n    this.features = [];\n    const { features = [], lazyMotionContext } = state.options;\n    const allFeatures = features.concat(lazyMotionContext.features.value);\n    this.features = allFeatures.map((Feature) => new Feature(state));\n    const featureInstances = this.features;\n    watch(lazyMotionContext.features, (features2) => {\n      features2.forEach((feature) => {\n        if (!allFeatures.includes(feature)) {\n          allFeatures.push(feature);\n          const featureInstance = new feature(state);\n          featureInstances.push(featureInstance);\n          if (state.isMounted()) {\n            featureInstance.beforeMount();\n            featureInstance.mount();\n          }\n        }\n      });\n    }, {\n      flush: \"pre\"\n    });\n  }\n  mount() {\n    this.features.forEach((feature) => feature.mount());\n  }\n  beforeMount() {\n    this.features.forEach((feature) => {\n      var _a;\n      return (_a = feature.beforeMount) == null ? void 0 : _a.call(feature);\n    });\n  }\n  unmount() {\n    this.features.forEach((feature) => feature.unmount());\n  }\n  update() {\n    this.features.forEach((feature) => {\n      var _a;\n      return (_a = feature.update) == null ? void 0 : _a.call(feature);\n    });\n  }\n  beforeUpdate() {\n    this.features.forEach((feature) => feature.beforeUpdate());\n  }\n  beforeUnmount() {\n    this.features.forEach((feature) => feature.beforeUnmount());\n  }\n}\nexport {\n  FeatureManager\n};\n","import { watch, onMounted } from \"vue\";\nimport { createContext } from \"../../utils/createContext.mjs\";\nconst doneCallbacks = /* @__PURE__ */ new WeakMap();\nfunction removeDoneCallback(element) {\n  const prevDoneCallback = doneCallbacks.get(element);\n  if (prevDoneCallback) {\n    element.removeEventListener(\"motioncomplete\", prevDoneCallback);\n  }\n  doneCallbacks.delete(element);\n}\nconst [injectAnimatePresence, provideAnimatePresence] = createContext(\"AnimatePresenceContext\");\nfunction useAnimatePresence(props) {\n  const presenceContext = {\n    initial: props.initial,\n    custom: props.custom\n  };\n  watch(() => props.custom, (v) => {\n    presenceContext.custom = v;\n  }, {\n    flush: \"pre\"\n  });\n  provideAnimatePresence(presenceContext);\n  onMounted(() => {\n    presenceContext.initial = void 0;\n  });\n}\nexport {\n  doneCallbacks,\n  injectAnimatePresence,\n  provideAnimatePresence,\n  removeDoneCallback,\n  useAnimatePresence\n};\n","function isVariantLabels(value) {\n  return typeof value === \"string\" || value === false || Array.isArray(value);\n}\nexport {\n  isVariantLabels\n};\n","import { invariant } from \"hey-listen\";\nimport { isSVGElement, resolveVariant } from \"./utils.mjs\";\nimport { FeatureManager } from \"../features/feature-manager.mjs\";\nimport { doneCallbacks } from \"../components/animate-presence/presence.mjs\";\nimport { isVariantLabels } from \"./utils/is-variant-labels.mjs\";\nimport { noop } from \"../external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nimport { cancelFrame, frame } from \"../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nconst mountedStates = /* @__PURE__ */ new WeakMap();\nlet id = 0;\nclass MotionState {\n  constructor(options, parent) {\n    var _a;\n    this.element = null;\n    this.isSafeToRemove = false;\n    this.isVShow = false;\n    this.children = /* @__PURE__ */ new Set();\n    this.activeStates = {\n      initial: true,\n      animate: true\n    };\n    this.currentProcess = null;\n    this._context = null;\n    this.animateUpdates = noop;\n    this.id = `motion-state-${id++}`;\n    this.options = options;\n    this.parent = parent;\n    (_a = parent == null ? void 0 : parent.children) == null ? void 0 : _a.add(this);\n    const initial = options.initial === void 0 && options.variants ? this.context.initial : options.initial;\n    const initialVariantSource = initial === false ? [\"initial\", \"animate\"] : [\"initial\"];\n    this.initTarget(initialVariantSource);\n    this.featureManager = new FeatureManager(this);\n    this.type = isSVGElement(this.options.as) ? \"svg\" : \"html\";\n  }\n  // Get animation context, falling back to parent context for inheritance\n  get context() {\n    if (!this._context) {\n      const handler = {\n        get: (target, prop) => {\n          var _a;\n          return isVariantLabels(this.options[prop]) ? this.options[prop] : (_a = this.parent) == null ? void 0 : _a.context[prop];\n        }\n      };\n      this._context = new Proxy({}, handler);\n    }\n    return this._context;\n  }\n  // Initialize animation target values\n  initTarget(initialVariantSource) {\n    var _a;\n    const custom = this.options.custom ?? ((_a = this.options.animatePresenceContext) == null ? void 0 : _a.custom);\n    this.baseTarget = initialVariantSource.reduce((acc, variant) => {\n      return {\n        ...acc,\n        ...resolveVariant(this.options[variant] || this.context[variant], this.options.variants, custom)\n      };\n    }, {});\n    this.target = {};\n  }\n  // Update visual element with new options\n  updateOptions(options) {\n    var _a;\n    this.options = options;\n    (_a = this.visualElement) == null ? void 0 : _a.update({\n      ...this.options,\n      whileTap: this.options.whilePress\n    }, {\n      isPresent: !doneCallbacks.has(this.element)\n    });\n  }\n  // Called before mounting, executes in parent-to-child order\n  beforeMount() {\n    this.featureManager.beforeMount();\n  }\n  // Mount motion state to DOM element, handles parent-child relationships\n  mount(element, options, notAnimate = false) {\n    var _a, _b;\n    invariant(\n      Boolean(element),\n      \"Animation state must be mounted with valid Element\"\n    );\n    this.element = element;\n    this.updateOptions(options);\n    this.options.layoutId && ((_a = this.visualElement.projection.getStack()) == null ? void 0 : _a.members.length) > 0;\n    this.featureManager.mount();\n    if (!notAnimate && this.options.animate) {\n      (_b = this.startAnimation) == null ? void 0 : _b.call(this);\n    }\n  }\n  clearAnimation() {\n    var _a, _b;\n    this.currentProcess && cancelFrame(this.currentProcess);\n    this.currentProcess = null;\n    (_b = (_a = this.visualElement) == null ? void 0 : _a.variantChildren) == null ? void 0 : _b.forEach((child) => {\n      child.state.clearAnimation();\n    });\n  }\n  // update trigger animation\n  startAnimation() {\n    this.clearAnimation();\n    this.currentProcess = frame.render(() => {\n      this.currentProcess = null;\n      this.animateUpdates();\n    });\n  }\n  // Called before unmounting, executes in child-to-parent order\n  beforeUnmount() {\n    this.featureManager.beforeUnmount();\n  }\n  unmount(unMountChildren = false) {\n    var _a;\n    const shouldDelay = this.options.layoutId && ((_a = this.visualElement.projection) == null ? void 0 : _a.getStack().lead) === this.visualElement.projection && this.visualElement.projection.isProjecting();\n    const unmountState = () => {\n      var _a2, _b, _c;\n      if (unMountChildren) {\n        Array.from(this.children).reverse().forEach(this.unmountChild);\n      }\n      (_b = (_a2 = this.parent) == null ? void 0 : _a2.children) == null ? void 0 : _b.delete(this);\n      mountedStates.delete(this.element);\n      this.featureManager.unmount();\n      (_c = this.visualElement) == null ? void 0 : _c.unmount();\n      this.clearAnimation();\n    };\n    if (shouldDelay) {\n      Promise.resolve().then(() => {\n        unmountState();\n      });\n    } else {\n      unmountState();\n    }\n  }\n  unmountChild(child) {\n    child.unmount(true);\n  }\n  // Called before updating, executes in parent-to-child order\n  beforeUpdate() {\n    this.featureManager.beforeUpdate();\n  }\n  // Update motion state with new options\n  update(options) {\n    this.updateOptions(options);\n    this.featureManager.update();\n    this.startAnimation();\n  }\n  // Set animation state active status and propagate to children\n  setActive(name, isActive, isAnimate = true) {\n    var _a;\n    if (!this.element || this.activeStates[name] === isActive)\n      return;\n    this.activeStates[name] = isActive;\n    (_a = this.visualElement.variantChildren) == null ? void 0 : _a.forEach((child) => {\n      child.state.setActive(name, isActive, false);\n    });\n    if (isAnimate) {\n      this.animateUpdates({\n        isExit: name === \"exit\" && this.activeStates.exit\n      });\n    }\n  }\n  isMounted() {\n    return Boolean(this.element);\n  }\n  // Called before layout updates to prepare for changes\n  willUpdate(label) {\n    var _a;\n    if (this.options.layout || this.options.layoutId) {\n      (_a = this.visualElement.projection) == null ? void 0 : _a.willUpdate();\n    }\n  }\n}\nexport {\n  MotionState,\n  mountedStates\n};\n","const visualElementStore = /* @__PURE__ */ new WeakMap();\nexport {\n  visualElementStore\n};\n","function motionEvent(name, target, isExit) {\n  return new CustomEvent(name, { detail: { target, isExit } });\n}\nexport {\n  motionEvent\n};\n","import { noopReturn } from \"./utils.mjs\";\nconst rotation = {\n  syntax: \"<angle>\",\n  initialValue: \"0deg\",\n  toDefaultUnit: (v) => `${v}deg`\n};\nconst baseTransformProperties = {\n  translate: {\n    syntax: \"<length-percentage>\",\n    initialValue: \"0px\",\n    toDefaultUnit: (v) => `${v}px`\n  },\n  rotate: rotation,\n  scale: {\n    syntax: \"<number>\",\n    initialValue: 1,\n    toDefaultUnit: noopReturn\n  },\n  skew: rotation\n};\nconst order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\nconst axes = [\"\", \"X\", \"Y\", \"Z\"];\nconst transformDefinitions = /* @__PURE__ */ new Map();\nconst transforms = [\"transformPerspective\", \"x\", \"y\", \"z\", \"translateX\", \"translateY\", \"translateZ\", \"scale\", \"scaleX\", \"scaleY\", \"rotate\", \"rotateX\", \"rotateY\", \"rotateZ\", \"skew\", \"skewX\", \"skewY\"];\norder.forEach((name) => {\n  axes.forEach((axis) => {\n    transforms.push(name + axis);\n    transformDefinitions.set(\n      name + axis,\n      baseTransformProperties[name]\n    );\n  });\n});\nconst transformLookup = new Set(transforms);\nconst isTransform = (name) => transformLookup.has(name);\nconst transformAlias = {\n  x: \"translateX\",\n  y: \"translateY\",\n  z: \"translateZ\"\n};\nfunction compareTransformOrder([a], [b]) {\n  return transforms.indexOf(a) - transforms.indexOf(b);\n}\nfunction transformListToString(template, [name, value]) {\n  return `${template} ${name}(${value})`;\n}\nfunction buildTransformTemplate(transforms2) {\n  return transforms2.sort(compareTransformOrder).reduce(transformListToString, \"\").trim();\n}\nconst transformResetValue = {\n  translate: [0, 0],\n  rotate: 0,\n  scale: 1,\n  skew: 0,\n  x: 0,\n  y: 0,\n  z: 0\n};\nexport {\n  axes,\n  buildTransformTemplate,\n  compareTransformOrder,\n  isTransform,\n  transformAlias,\n  transformDefinitions,\n  transformResetValue\n};\n","const createUnitType = /* @__NO_SIDE_EFFECTS__ */ (unit) => ({\n  test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n  parse: parseFloat,\n  transform: (v) => `${v}${unit}`\n});\nconst degrees = /* @__PURE__ */ createUnitType(\"deg\");\nconst percent = /* @__PURE__ */ createUnitType(\"%\");\nconst px = /* @__PURE__ */ createUnitType(\"px\");\nconst vh = /* @__PURE__ */ createUnitType(\"vh\");\nconst vw = /* @__PURE__ */ createUnitType(\"vw\");\nconst progressPercentage = /* @__PURE__ */ (() => ({\n  ...percent,\n  parse: (v) => percent.parse(v) / 100,\n  transform: (v) => percent.transform(v * 100)\n}))();\nexport {\n  degrees,\n  percent,\n  progressPercentage,\n  px,\n  vh,\n  vw\n};\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\nexport {\n  isMotionValue\n};\n","import { isCssVar, isNumber } from \"./utils.mjs\";\nimport { transformDefinitions, isTransform, transformAlias, buildTransformTemplate } from \"./transform.mjs\";\nimport { px } from \"../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/numbers/units.mjs\";\nimport { isMotionValue } from \"../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nconst style = {\n  get: (element, name) => {\n    let value = isCssVar(name) ? element.style.getPropertyValue(name) : getComputedStyle(element)[name];\n    if (!value && value !== \"0\") {\n      const definition = transformDefinitions.get(name);\n      if (definition)\n        value = definition.initialValue;\n    }\n    return value;\n  },\n  set: (element, name, value) => {\n    if (isCssVar(name)) {\n      element.style.setProperty(name, value);\n    } else {\n      element.style[name] = value;\n    }\n  }\n};\nfunction createStyles(keyframes) {\n  var _a;\n  const initialKeyframes = {};\n  const transforms = [];\n  for (let key in keyframes) {\n    let value = keyframes[key];\n    value = isMotionValue(value) ? value.get() : value;\n    if (isTransform(key)) {\n      if (key in transformAlias) {\n        key = transformAlias[key];\n      }\n    }\n    let initialKeyframe = Array.isArray(value) ? value[0] : value;\n    const definition = transformDefinitions.get(key);\n    if (definition) {\n      initialKeyframe = isNumber(value) ? (_a = definition.toDefaultUnit) == null ? void 0 : _a.call(definition, value) : value;\n      transforms.push([key, initialKeyframe]);\n    } else {\n      initialKeyframes[key] = initialKeyframe;\n    }\n  }\n  if (transforms.length) {\n    initialKeyframes.transform = buildTransformTemplate(transforms);\n  }\n  if (Object.keys(initialKeyframes).length === 0) {\n    return null;\n  }\n  return initialKeyframes;\n}\nconst SVG_STYLE_TO_ATTRIBUTES = {\n  \"fill\": true,\n  \"stroke\": true,\n  \"opacity\": true,\n  \"stroke-width\": true,\n  \"fill-opacity\": true,\n  \"stroke-opacity\": true,\n  \"stroke-linecap\": true,\n  \"stroke-linejoin\": true,\n  \"stroke-dasharray\": true,\n  \"stroke-dashoffset\": true,\n  \"cx\": true,\n  \"cy\": true,\n  \"r\": true,\n  \"d\": true,\n  \"x1\": true,\n  \"y1\": true,\n  \"x2\": true,\n  \"y2\": true,\n  \"points\": true,\n  \"path-length\": true,\n  \"viewBox\": true,\n  \"width\": true,\n  \"height\": true,\n  \"preserve-aspect-ratio\": true,\n  \"clip-path\": true,\n  \"filter\": true,\n  \"mask\": true,\n  \"stop-color\": true,\n  \"stop-opacity\": true,\n  \"gradient-transform\": true,\n  \"gradient-units\": true,\n  \"spread-method\": true,\n  \"marker-end\": true,\n  \"marker-mid\": true,\n  \"marker-start\": true,\n  \"text-anchor\": true,\n  \"dominant-baseline\": true,\n  \"font-family\": true,\n  \"font-size\": true,\n  \"font-weight\": true,\n  \"letter-spacing\": true,\n  \"vector-effect\": true\n};\nfunction camelToKebab(str) {\n  return str.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0) {\n  attrs.pathLength = 1;\n  delete attrs[\"path-length\"];\n  attrs[\"stroke-dashoffset\"] = px.transform(-offset);\n  const pathLength = px.transform(length);\n  const pathSpacing = px.transform(spacing);\n  attrs[\"stroke-dasharray\"] = `${pathLength} ${pathSpacing}`;\n}\nfunction convertSvgStyleToAttributes(keyframes) {\n  const attrs = {};\n  const styleProps = {};\n  for (const key in keyframes) {\n    const kebabKey = camelToKebab(key);\n    if (kebabKey in SVG_STYLE_TO_ATTRIBUTES) {\n      const value = keyframes[key];\n      attrs[kebabKey] = isMotionValue(value) ? value.get() : value;\n    } else {\n      styleProps[key] = keyframes[key];\n    }\n  }\n  if (attrs[\"path-length\"] !== void 0) {\n    buildSVGPath(attrs, attrs[\"path-length\"], attrs[\"path-spacing\"], attrs[\"path-offset\"]);\n  }\n  return {\n    attrs,\n    style: styleProps\n  };\n}\nexport {\n  convertSvgStyleToAttributes,\n  createStyles,\n  style\n};\n","function convertBoundingBoxToBox({ top, left, right, bottom }) {\n  return {\n    x: { min: left, max: right },\n    y: { min: top, max: bottom }\n  };\n}\nfunction transformBoxPoints(point, transformPoint) {\n  if (!transformPoint)\n    return point;\n  const topLeft = transformPoint({ x: point.left, y: point.top });\n  const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n  return {\n    top: topLeft.y,\n    left: topLeft.x,\n    bottom: bottomRight.y,\n    right: bottomRight.x\n  };\n}\nexport {\n  convertBoundingBoxToBox,\n  transformBoxPoints\n};\n","import { convertBoundingBoxToBox, transformBoxPoints } from \"../geometry/conversion.mjs\";\nfunction measureViewportBox(instance, transformPoint) {\n  return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nexport {\n  measureViewportBox\n};\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}\nexport {\n  featureDefinitions\n};\n","const createAxisDelta = () => ({\n  translate: 0,\n  scale: 1,\n  origin: 0,\n  originPoint: 0\n});\nconst createDelta = () => ({\n  x: createAxisDelta(),\n  y: createAxisDelta()\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n  x: createAxis(),\n  y: createAxis()\n});\nexport {\n  createAxis,\n  createAxisDelta,\n  createBox,\n  createDelta\n};\n","const prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\nexport {\n  hasReducedMotionListener,\n  prefersReducedMotion\n};\n","function isAnimationControls(v) {\n  return v !== null && typeof v === \"object\" && typeof v.start === \"function\";\n}\nexport {\n  isAnimationControls\n};\n","function isVariantLabel(v) {\n  return typeof v === \"string\" || Array.isArray(v);\n}\nexport {\n  isVariantLabel\n};\n","const variantPriorityOrder = [\n  \"animate\",\n  \"whileInView\",\n  \"whileFocus\",\n  \"whileHover\",\n  \"whileTap\",\n  \"whileDrag\",\n  \"exit\"\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\nexport {\n  variantPriorityOrder,\n  variantProps\n};\n","import { isAnimationControls } from \"../../animation/utils/is-animation-controls.mjs\";\nimport { isVariantLabel } from \"./is-variant-label.mjs\";\nimport { variantProps } from \"./variant-props.mjs\";\nfunction isControllingVariants(props) {\n  return isAnimationControls(props.animate) || variantProps.some((name) => isVariantLabel(props[name]));\n}\nfunction isVariantNode(props) {\n  return Boolean(isControllingVariants(props) || props.variants);\n}\nexport {\n  isControllingVariants,\n  isVariantNode\n};\n","function formatErrorMessage(message, errorCode) {\n  return errorCode ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}` : message;\n}\nexport {\n  formatErrorMessage\n};\n","import { formatErrorMessage } from \"./format-error-message.mjs\";\nconst warned = /* @__PURE__ */ new Set();\nfunction hasWarned(message) {\n  return warned.has(message);\n}\nfunction warnOnce(condition, message, errorCode) {\n  if (condition || warned.has(message))\n    return;\n  console.warn(formatErrorMessage(message, errorCode));\n  warned.add(message);\n}\nexport {\n  hasWarned,\n  warnOnce\n};\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}\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}\nexport {\n  addUniqueItem,\n  moveItem,\n  removeItem\n};\n","import { addUniqueItem, removeItem } from \"./array.mjs\";\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      this.subscriptions[0](a, b, c);\n    } else {\n      for (let i = 0; i < numSubscriptions; i++) {\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}\nexport {\n  SubscriptionManager\n};\n","function velocityPerSecond(velocity, frameDuration) {\n  return frameDuration ? velocity * (1e3 / frameDuration) : 0;\n}\nexport {\n  velocityPerSecond\n};\n","import { time } from \"../frameloop/sync-time.mjs\";\nimport { frame } from \"../frameloop/frame.mjs\";\nimport { warnOnce } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/warn-once.mjs\";\nimport { SubscriptionManager } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/subscription-manager.mjs\";\nimport { velocityPerSecond } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/velocity-per-second.mjs\";\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n  return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n  current: void 0\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  constructor(init, options = {}) {\n    this.canTrackVelocity = null;\n    this.events = {};\n    this.updateAndNotify = (v) => {\n      var _a;\n      const currentTime = time.now();\n      if (this.updatedAt !== currentTime) {\n        this.setPrevFrameValue();\n      }\n      this.prev = this.current;\n      this.setCurrent(v);\n      if (this.current !== this.prev) {\n        (_a = this.events.change) == null ? void 0 : _a.notify(this.current);\n        if (this.dependents) {\n          for (const dependent of this.dependents) {\n            dependent.dirty();\n          }\n        }\n      }\n    };\n    this.hasAnimated = false;\n    this.setCurrent(init);\n    this.owner = options.owner;\n  }\n  setCurrent(current) {\n    this.current = current;\n    this.updatedAt = time.now();\n    if (this.canTrackVelocity === null && current !== void 0) {\n      this.canTrackVelocity = isFloat(this.current);\n    }\n  }\n  setPrevFrameValue(prevFrameValue = this.current) {\n    this.prevFrameValue = prevFrameValue;\n    this.prevUpdatedAt = this.updatedAt;\n  }\n  /**\n   * Adds a function that will be notified when the `MotionValue` is updated.\n   *\n   * It returns a function that, when called, will cancel the subscription.\n   *\n   * When calling `onChange` inside a React component, it should be wrapped with the\n   * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n   * from the `useEffect` function to ensure you don't add duplicate subscribers..\n   *\n   * ```jsx\n   * export const MyComponent = () => {\n   *   const x = useMotionValue(0)\n   *   const y = useMotionValue(0)\n   *   const opacity = useMotionValue(1)\n   *\n   *   useEffect(() => {\n   *     function updateOpacity() {\n   *       const maxXY = Math.max(x.get(), y.get())\n   *       const newOpacity = transform(maxXY, [0, 100], [1, 0])\n   *       opacity.set(newOpacity)\n   *     }\n   *\n   *     const unsubscribeX = x.on(\"change\", updateOpacity)\n   *     const unsubscribeY = y.on(\"change\", updateOpacity)\n   *\n   *     return () => {\n   *       unsubscribeX()\n   *       unsubscribeY()\n   *     }\n   *   }, [])\n   *\n   *   return <motion.div style={{ x }} />\n   * }\n   * ```\n   *\n   * @param subscriber - A function that receives the latest value.\n   * @returns A function that, when called, will cancel this subscription.\n   *\n   * @deprecated\n   */\n  onChange(subscription) {\n    if (process.env.NODE_ENV !== \"production\") {\n      warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n    }\n    return this.on(\"change\", subscription);\n  }\n  on(eventName, callback) {\n    if (!this.events[eventName]) {\n      this.events[eventName] = new SubscriptionManager();\n    }\n    const unsubscribe = this.events[eventName].add(callback);\n    if (eventName === \"change\") {\n      return () => {\n        unsubscribe();\n        frame.read(() => {\n          if (!this.events.change.getSize()) {\n            this.stop();\n          }\n        });\n      };\n    }\n    return unsubscribe;\n  }\n  clearListeners() {\n    for (const eventManagers in this.events) {\n      this.events[eventManagers].clear();\n    }\n  }\n  /**\n   * Attaches a passive effect to the `MotionValue`.\n   */\n  attach(passiveEffect, stopPassiveEffect) {\n    this.passiveEffect = passiveEffect;\n    this.stopPassiveEffect = stopPassiveEffect;\n  }\n  /**\n   * Sets the state of the `MotionValue`.\n   *\n   * @remarks\n   *\n   * ```jsx\n   * const x = useMotionValue(0)\n   * x.set(10)\n   * ```\n   *\n   * @param latest - Latest value to set.\n   * @param render - Whether to notify render subscribers. Defaults to `true`\n   *\n   * @public\n   */\n  set(v) {\n    if (!this.passiveEffect) {\n      this.updateAndNotify(v);\n    } else {\n      this.passiveEffect(v, this.updateAndNotify);\n    }\n  }\n  setWithVelocity(prev, current, delta) {\n    this.set(current);\n    this.prev = void 0;\n    this.prevFrameValue = prev;\n    this.prevUpdatedAt = this.updatedAt - delta;\n  }\n  /**\n   * Set the state of the `MotionValue`, stopping any active animations,\n   * effects, and resets velocity to `0`.\n   */\n  jump(v, endAnimation = true) {\n    this.updateAndNotify(v);\n    this.prev = v;\n    this.prevUpdatedAt = this.prevFrameValue = void 0;\n    endAnimation && this.stop();\n    if (this.stopPassiveEffect)\n      this.stopPassiveEffect();\n  }\n  dirty() {\n    var _a;\n    (_a = this.events.change) == null ? void 0 : _a.notify(this.current);\n  }\n  addDependent(dependent) {\n    if (!this.dependents) {\n      this.dependents = /* @__PURE__ */ new Set();\n    }\n    this.dependents.add(dependent);\n  }\n  removeDependent(dependent) {\n    if (this.dependents) {\n      this.dependents.delete(dependent);\n    }\n  }\n  /**\n   * Returns the latest state of `MotionValue`\n   *\n   * @returns - The latest state of `MotionValue`\n   *\n   * @public\n   */\n  get() {\n    if (collectMotionValues.current) {\n      collectMotionValues.current.push(this);\n    }\n    return this.current;\n  }\n  /**\n   * @public\n   */\n  getPrevious() {\n    return this.prev;\n  }\n  /**\n   * Returns the latest velocity of `MotionValue`\n   *\n   * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n   *\n   * @public\n   */\n  getVelocity() {\n    const currentTime = time.now();\n    if (!this.canTrackVelocity || this.prevFrameValue === void 0 || currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n      return 0;\n    }\n    const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n    return velocityPerSecond(parseFloat(this.current) - parseFloat(this.prevFrameValue), delta);\n  }\n  /**\n   * Registers a new animation to control this `MotionValue`. Only one\n   * animation can drive a `MotionValue` at one time.\n   *\n   * ```jsx\n   * value.start()\n   * ```\n   *\n   * @param animation - A function that starts the provided animation\n   */\n  start(startAnimation) {\n    this.stop();\n    return new Promise((resolve) => {\n      this.hasAnimated = true;\n      this.animation = startAnimation(resolve);\n      if (this.events.animationStart) {\n        this.events.animationStart.notify();\n      }\n    }).then(() => {\n      if (this.events.animationComplete) {\n        this.events.animationComplete.notify();\n      }\n      this.clearAnimation();\n    });\n  }\n  /**\n   * Stop the currently active animation.\n   *\n   * @public\n   */\n  stop() {\n    if (this.animation) {\n      this.animation.stop();\n      if (this.events.animationCancel) {\n        this.events.animationCancel.notify();\n      }\n    }\n    this.clearAnimation();\n  }\n  /**\n   * Returns `true` if this value is currently animating.\n   *\n   * @public\n   */\n  isAnimating() {\n    return !!this.animation;\n  }\n  clearAnimation() {\n    delete this.animation;\n  }\n  /**\n   * Destroy and clean up subscribers to this `MotionValue`.\n   *\n   * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n   * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n   * created a `MotionValue` via the `motionValue` function.\n   *\n   * @public\n   */\n  destroy() {\n    var _a, _b;\n    (_a = this.dependents) == null ? void 0 : _a.clear();\n    (_b = this.events.destroy) == null ? void 0 : _b.notify();\n    this.clearListeners();\n    this.stop();\n    if (this.stopPassiveEffect) {\n      this.stopPassiveEffect();\n    }\n  }\n}\nfunction motionValue(init, options) {\n  return new MotionValue(init, options);\n}\nexport {\n  MotionValue,\n  collectMotionValues,\n  motionValue\n};\n","import { isMotionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nimport { motionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/index.mjs\";\nfunction updateMotionValuesFromProps(element, next, prev) {\n  for (const key in next) {\n    const nextValue = next[key];\n    const prevValue = prev[key];\n    if (isMotionValue(nextValue)) {\n      element.addValue(key, nextValue);\n    } else if (isMotionValue(prevValue)) {\n      element.addValue(key, motionValue(nextValue, { owner: element }));\n    } else if (prevValue !== nextValue) {\n      if (element.hasValue(key)) {\n        const existingValue = element.getValue(key);\n        if (existingValue.liveStyle === true) {\n          existingValue.jump(nextValue);\n        } else if (!existingValue.hasAnimated) {\n          existingValue.set(nextValue);\n        }\n      } else {\n        const latestValue = element.getStaticValue(key);\n        element.addValue(key, motionValue(latestValue !== void 0 ? latestValue : nextValue, { owner: element }));\n      }\n    }\n  }\n  for (const key in prev) {\n    if (next[key] === void 0)\n      element.removeValue(key);\n  }\n  return next;\n}\nexport {\n  updateMotionValuesFromProps\n};\n","function getValueState(visualElement) {\n  const state = [{}, {}];\n  visualElement == null ? void 0 : visualElement.values.forEach((value, key) => {\n    state[0][key] = value.get();\n    state[1][key] = value.getVelocity();\n  });\n  return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n  if (typeof definition === \"function\") {\n    const [current, velocity] = getValueState(visualElement);\n    definition = definition(custom !== void 0 ? custom : props.custom, current, velocity);\n  }\n  if (typeof definition === \"string\") {\n    definition = props.variants && props.variants[definition];\n  }\n  if (typeof definition === \"function\") {\n    const [current, velocity] = getValueState(visualElement);\n    definition = definition(custom !== void 0 ? custom : props.custom, current, velocity);\n  }\n  return definition;\n}\nexport {\n  resolveVariantFromProps\n};\n","function fillWildcards(keyframes) {\n  for (let i = 1; i < keyframes.length; i++) {\n    keyframes[i] ?? (keyframes[i] = keyframes[i - 1]);\n  }\n}\nexport {\n  fillWildcards\n};\n","const radToDeg = (rad) => rad * 180 / Math.PI;\nconst rotate = (v) => {\n  const angle = radToDeg(Math.atan2(v[1], v[0]));\n  return rebaseAngle(angle);\n};\nconst matrix2dParsers = {\n  x: 4,\n  y: 5,\n  translateX: 4,\n  translateY: 5,\n  scaleX: 0,\n  scaleY: 3,\n  scale: (v) => (Math.abs(v[0]) + Math.abs(v[3])) / 2,\n  rotate,\n  rotateZ: rotate,\n  skewX: (v) => radToDeg(Math.atan(v[1])),\n  skewY: (v) => radToDeg(Math.atan(v[2])),\n  skew: (v) => (Math.abs(v[1]) + Math.abs(v[2])) / 2\n};\nconst rebaseAngle = (angle) => {\n  angle = angle % 360;\n  if (angle < 0)\n    angle += 360;\n  return angle;\n};\nconst rotateZ = rotate;\nconst scaleX = (v) => Math.sqrt(v[0] * v[0] + v[1] * v[1]);\nconst scaleY = (v) => Math.sqrt(v[4] * v[4] + v[5] * v[5]);\nconst matrix3dParsers = {\n  x: 12,\n  y: 13,\n  z: 14,\n  translateX: 12,\n  translateY: 13,\n  translateZ: 14,\n  scaleX,\n  scaleY,\n  scale: (v) => (scaleX(v) + scaleY(v)) / 2,\n  rotateX: (v) => rebaseAngle(radToDeg(Math.atan2(v[6], v[5]))),\n  rotateY: (v) => rebaseAngle(radToDeg(Math.atan2(-v[2], v[0]))),\n  rotateZ,\n  rotate: rotateZ,\n  skewX: (v) => radToDeg(Math.atan(v[4])),\n  skewY: (v) => radToDeg(Math.atan(v[1])),\n  skew: (v) => (Math.abs(v[1]) + Math.abs(v[4])) / 2\n};\nfunction defaultTransformValue(name) {\n  return name.includes(\"scale\") ? 1 : 0;\n}\nfunction parseValueFromTransform(transform, name) {\n  if (!transform || transform === \"none\") {\n    return defaultTransformValue(name);\n  }\n  const matrix3dMatch = transform.match(/^matrix3d\\(([-\\d.e\\s,]+)\\)$/u);\n  let parsers;\n  let match;\n  if (matrix3dMatch) {\n    parsers = matrix3dParsers;\n    match = matrix3dMatch;\n  } else {\n    const matrix2dMatch = transform.match(/^matrix\\(([-\\d.e\\s,]+)\\)$/u);\n    parsers = matrix2dParsers;\n    match = matrix2dMatch;\n  }\n  if (!match) {\n    return defaultTransformValue(name);\n  }\n  const valueParser = parsers[name];\n  const values = match[1].split(\",\").map(convertTransformToNumber);\n  return typeof valueParser === \"function\" ? valueParser(values) : values[valueParser];\n}\nconst readTransformValue = (instance, name) => {\n  const { transform = \"none\" } = getComputedStyle(instance);\n  return parseValueFromTransform(transform, name);\n};\nfunction convertTransformToNumber(value) {\n  return parseFloat(value.trim());\n}\nexport {\n  defaultTransformValue,\n  parseValueFromTransform,\n  readTransformValue\n};\n","const 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];\nconst transformProps = /* @__PURE__ */ (() => new Set(transformPropOrder))();\nexport {\n  transformPropOrder,\n  transformProps\n};\n","const clamp = (min, max, v) => {\n  if (v > max)\n    return max;\n  if (v < min)\n    return min;\n  return v;\n};\nexport {\n  clamp\n};\n","import { clamp } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/clamp.mjs\";\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};\nexport {\n  alpha,\n  number,\n  scale\n};\n","import { parseValueFromTransform } from \"../../../render/dom/parse-transform.mjs\";\nimport { transformPropOrder } from \"../../../render/utils/keys-transform.mjs\";\nimport { number } from \"../../../value/types/numbers/index.mjs\";\nimport { px } from \"../../../value/types/numbers/units.mjs\";\nconst isNumOrPxType = (v) => v === number || v === px;\nconst transformKeys = /* @__PURE__ */ new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n  const removedTransforms = [];\n  nonTranslationalTransformKeys.forEach((key) => {\n    const value = visualElement.getValue(key);\n    if (value !== void 0) {\n      removedTransforms.push([key, value.get()]);\n      value.set(key.startsWith(\"scale\") ? 1 : 0);\n    }\n  });\n  return removedTransforms;\n}\nconst positionalValues = {\n  // Dimensions\n  width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n  height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n  top: (_bbox, { top }) => parseFloat(top),\n  left: (_bbox, { left }) => parseFloat(left),\n  bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n  right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n  // Transform\n  x: (_bbox, { transform }) => parseValueFromTransform(transform, \"x\"),\n  y: (_bbox, { transform }) => parseValueFromTransform(transform, \"y\")\n};\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\nexport {\n  isNumOrPxType,\n  positionalValues,\n  removeNonTranslationalTransform\n};\n","import { fillWildcards } from \"./utils/fill-wildcards.mjs\";\nimport { removeNonTranslationalTransform } from \"./utils/unit-conversion.mjs\";\nimport { frame } from \"../../frameloop/frame.mjs\";\nconst toResolve = /* @__PURE__ */ new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nlet isForced = false;\nfunction measureAllKeyframes() {\n  if (anyNeedsMeasurement) {\n    const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n    const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n    const transformsToRestore = /* @__PURE__ */ new Map();\n    elementsToMeasure.forEach((element) => {\n      const removedTransforms = removeNonTranslationalTransform(element);\n      if (!removedTransforms.length)\n        return;\n      transformsToRestore.set(element, removedTransforms);\n      element.render();\n    });\n    resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n    elementsToMeasure.forEach((element) => {\n      element.render();\n      const restore = transformsToRestore.get(element);\n      if (restore) {\n        restore.forEach(([key, value]) => {\n          var _a;\n          (_a = element.getValue(key)) == null ? void 0 : _a.set(value);\n        });\n      }\n    });\n    resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n    resolversToMeasure.forEach((resolver) => {\n      if (resolver.suspendedScrollY !== void 0) {\n        window.scrollTo(0, resolver.suspendedScrollY);\n      }\n    });\n  }\n  anyNeedsMeasurement = false;\n  isScheduled = false;\n  toResolve.forEach((resolver) => resolver.complete(isForced));\n  toResolve.clear();\n}\nfunction readAllKeyframes() {\n  toResolve.forEach((resolver) => {\n    resolver.readKeyframes();\n    if (resolver.needsMeasurement) {\n      anyNeedsMeasurement = true;\n    }\n  });\n}\nfunction flushKeyframeResolvers() {\n  isForced = true;\n  readAllKeyframes();\n  measureAllKeyframes();\n  isForced = false;\n}\nclass KeyframeResolver {\n  constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n    this.state = \"pending\";\n    this.isAsync = false;\n    this.needsMeasurement = false;\n    this.unresolvedKeyframes = [...unresolvedKeyframes];\n    this.onComplete = onComplete;\n    this.name = name;\n    this.motionValue = motionValue;\n    this.element = element;\n    this.isAsync = isAsync;\n  }\n  scheduleResolve() {\n    this.state = \"scheduled\";\n    if (this.isAsync) {\n      toResolve.add(this);\n      if (!isScheduled) {\n        isScheduled = true;\n        frame.read(readAllKeyframes);\n        frame.resolveKeyframes(measureAllKeyframes);\n      }\n    } else {\n      this.readKeyframes();\n      this.complete();\n    }\n  }\n  readKeyframes() {\n    const { unresolvedKeyframes, name, element, motionValue } = this;\n    if (unresolvedKeyframes[0] === null) {\n      const currentValue = motionValue == null ? void 0 : motionValue.get();\n      const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n      if (currentValue !== void 0) {\n        unresolvedKeyframes[0] = currentValue;\n      } else if (element && name) {\n        const valueAsRead = element.readValue(name, finalKeyframe);\n        if (valueAsRead !== void 0 && valueAsRead !== null) {\n          unresolvedKeyframes[0] = valueAsRead;\n        }\n      }\n      if (unresolvedKeyframes[0] === void 0) {\n        unresolvedKeyframes[0] = finalKeyframe;\n      }\n      if (motionValue && currentValue === void 0) {\n        motionValue.set(unresolvedKeyframes[0]);\n      }\n    }\n    fillWildcards(unresolvedKeyframes);\n  }\n  setFinalKeyframe() {\n  }\n  measureInitialState() {\n  }\n  renderEndStyles() {\n  }\n  measureEndState() {\n  }\n  complete(isForcedComplete = false) {\n    this.state = \"complete\";\n    this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, isForcedComplete);\n    toResolve.delete(this);\n  }\n  cancel() {\n    if (this.state === \"scheduled\") {\n      toResolve.delete(this);\n      this.state = \"pending\";\n    }\n  }\n  resume() {\n    if (this.state === \"pending\")\n      this.scheduleResolve();\n  }\n}\nexport {\n  KeyframeResolver,\n  flushKeyframeResolvers\n};\n","const isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\nexport {\n  isNumericalString\n};\n","const isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\nexport {\n  isZeroValueString\n};\n","const sanitize = (v) => Math.round(v * 1e5) / 1e5;\nexport {\n  sanitize\n};\n","const floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\nexport {\n  floatRegex\n};\n","function isNullish(v) {\n  return v == null;\n}\nexport {\n  isNullish\n};\n","const singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\nexport {\n  singleColorRegex\n};\n","import { floatRegex } from \"../utils/float-regex.mjs\";\nimport { isNullish } from \"../utils/is-nullish.mjs\";\nimport { singleColorRegex } from \"../utils/single-color-regex.mjs\";\nconst isColorString = (type, testProp) => (v) => {\n  return Boolean(typeof v === \"string\" && singleColorRegex.test(v) && v.startsWith(type) || testProp && !isNullish(v) && Object.prototype.hasOwnProperty.call(v, testProp));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n  if (typeof v !== \"string\")\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 !== void 0 ? parseFloat(alpha) : 1\n  };\n};\nexport {\n  isColorString,\n  splitColor\n};\n","import { number, alpha } from \"../numbers/index.mjs\";\nimport { sanitize } from \"../utils/sanitize.mjs\";\nimport { isColorString, splitColor } from \"./utils.mjs\";\nimport { clamp } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/clamp.mjs\";\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n  ...number,\n  transform: (v) => Math.round(clampRgbUnit(v))\n};\nconst rgba = {\n  test: /* @__PURE__ */ isColorString(\"rgb\", \"red\"),\n  parse: /* @__PURE__ */ splitColor(\"red\", \"green\", \"blue\"),\n  transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" + rgbUnit.transform(red) + \", \" + rgbUnit.transform(green) + \", \" + rgbUnit.transform(blue) + \", \" + sanitize(alpha.transform(alpha$1)) + \")\"\n};\nexport {\n  rgbUnit,\n  rgba\n};\n","import { rgba } from \"./rgba.mjs\";\nimport { isColorString } from \"./utils.mjs\";\nfunction parseHex(v) {\n  let r = \"\";\n  let g = \"\";\n  let b = \"\";\n  let a = \"\";\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  } 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: /* @__PURE__ */ isColorString(\"#\"),\n  parse: parseHex,\n  transform: rgba.transform\n};\nexport {\n  hex\n};\n","import { alpha } from \"../numbers/index.mjs\";\nimport { percent } from \"../numbers/units.mjs\";\nimport { sanitize } from \"../utils/sanitize.mjs\";\nimport { isColorString, splitColor } from \"./utils.mjs\";\nconst hsla = {\n  test: /* @__PURE__ */ isColorString(\"hsl\", \"hue\"),\n  parse: /* @__PURE__ */ splitColor(\"hue\", \"saturation\", \"lightness\"),\n  transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n    return \"hsla(\" + Math.round(hue) + \", \" + percent.transform(sanitize(saturation)) + \", \" + percent.transform(sanitize(lightness)) + \", \" + sanitize(alpha.transform(alpha$1)) + \")\";\n  }\n};\nexport {\n  hsla\n};\n","import { hex } from \"./hex.mjs\";\nimport { hsla } from \"./hsla.mjs\";\nimport { rgba } from \"./rgba.mjs\";\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    } else if (hsla.test(v)) {\n      return hsla.parse(v);\n    } else {\n      return hex.parse(v);\n    }\n  },\n  transform: (v) => {\n    return typeof v === \"string\" ? v : v.hasOwnProperty(\"red\") ? rgba.transform(v) : hsla.transform(v);\n  },\n  getAnimatableNone: (v) => {\n    const parsed = color.parse(v);\n    parsed.alpha = 0;\n    return color.transform(parsed);\n  }\n};\nexport {\n  color\n};\n","const colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\nexport {\n  colorRegex\n};\n","import { color } from \"../color/index.mjs\";\nimport { colorRegex } from \"../utils/color-regex.mjs\";\nimport { floatRegex } from \"../utils/float-regex.mjs\";\nimport { sanitize } from \"../utils/sanitize.mjs\";\nfunction test(v) {\n  var _a, _b;\n  return isNaN(v) && typeof v === \"string\" && (((_a = v.match(floatRegex)) == null ? void 0 : _a.length) || 0) + (((_b = v.match(colorRegex)) == null ? void 0 : _b.length) || 0) > 0;\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n  const originalValue = value.toString();\n  const values = [];\n  const indexes = {\n    color: [],\n    number: [],\n    var: []\n  };\n  const types = [];\n  let i = 0;\n  const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n    if (color.test(parsedValue)) {\n      indexes.color.push(i);\n      types.push(COLOR_TOKEN);\n      values.push(color.parse(parsedValue));\n    } else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n      indexes.var.push(i);\n      types.push(VAR_TOKEN);\n      values.push(parsedValue);\n    } else {\n      indexes.number.push(i);\n      types.push(NUMBER_TOKEN);\n      values.push(parseFloat(parsedValue));\n    }\n    ++i;\n    return SPLIT_TOKEN;\n  });\n  const split = tokenised.split(SPLIT_TOKEN);\n  return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n  return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n  const { split, types } = analyseComplexValue(source);\n  const numSections = split.length;\n  return (v) => {\n    let output = \"\";\n    for (let i = 0; i < numSections; i++) {\n      output += split[i];\n      if (v[i] !== void 0) {\n        const type = types[i];\n        if (type === NUMBER_TOKEN) {\n          output += sanitize(v[i]);\n        } else if (type === COLOR_TOKEN) {\n          output += color.transform(v[i]);\n        } else {\n          output += v[i];\n        }\n      }\n    }\n    return output;\n  };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : color.test(v) ? color.getAnimatableNone(v) : 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};\nexport {\n  analyseComplexValue,\n  complex\n};\n","const auto = {\n  test: (v) => v === \"auto\",\n  parse: (v) => v\n};\nexport {\n  auto\n};\n","const testValueType = (v) => (type) => type.test(v);\nexport {\n  testValueType\n};\n","import { auto } from \"./auto.mjs\";\nimport { number } from \"./numbers/index.mjs\";\nimport { px, percent, degrees, vw, vh } from \"./numbers/units.mjs\";\nimport { testValueType } from \"./test.mjs\";\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\nexport {\n  dimensionValueTypes,\n  findDimensionValueType\n};\n","import { color } from \"../color/index.mjs\";\nimport { complex } from \"../complex/index.mjs\";\nimport { dimensionValueTypes } from \"../dimensions.mjs\";\nimport { testValueType } from \"../test.mjs\";\nconst valueTypes = [...dimensionValueTypes, color, complex];\nconst findValueType = (v) => valueTypes.find(testValueType(v));\nexport {\n  findValueType\n};\n","import { complex } from \"./index.mjs\";\nimport { floatRegex } from \"../utils/float-regex.mjs\";\nconst maxDefaults = /* @__PURE__ */ new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n  const [name, value] = v.slice(0, -1).split(\"(\");\n  if (name === \"drop-shadow\")\n    return v;\n  const [number] = value.match(floatRegex) || [];\n  if (!number)\n    return v;\n  const unit = value.replace(number, \"\");\n  let defaultValue = maxDefaults.has(name) ? 1 : 0;\n  if (number !== value)\n    defaultValue *= 100;\n  return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n  ...complex,\n  getAnimatableNone: (v) => {\n    const functions = v.match(functionRegex);\n    return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n  }\n};\nexport {\n  filter\n};\n","import { number } from \"./numbers/index.mjs\";\nconst int = {\n  ...number,\n  transform: Math.round\n};\nexport {\n  int\n};\n","import { scale, alpha } from \"../numbers/index.mjs\";\nimport { degrees, px, progressPercentage } from \"../numbers/units.mjs\";\nconst transformValueTypes = {\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};\nexport {\n  transformValueTypes\n};\n","import { int } from \"../int.mjs\";\nimport { alpha } from \"../numbers/index.mjs\";\nimport { px } from \"../numbers/units.mjs\";\nimport { transformValueTypes } from \"./transform.mjs\";\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  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  // Misc\n  backgroundPositionX: px,\n  backgroundPositionY: px,\n  ...transformValueTypes,\n  zIndex: int,\n  // SVG\n  fillOpacity: alpha,\n  strokeOpacity: alpha,\n  numOctaves: int\n};\nexport {\n  numberValueTypes\n};\n","import { color } from \"../color/index.mjs\";\nimport { filter } from \"../complex/filter.mjs\";\nimport { numberValueTypes } from \"./number.mjs\";\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};\nconst getDefaultValueType = (key) => defaultValueTypes[key];\nexport {\n  defaultValueTypes,\n  getDefaultValueType\n};\n","import { complex } from \"../complex/index.mjs\";\nimport { filter } from \"../complex/filter.mjs\";\nimport { getDefaultValueType } from \"../maps/defaults.mjs\";\nfunction getAnimatableNone(key, value) {\n  let defaultValueType = getDefaultValueType(key);\n  if (defaultValueType !== filter)\n    defaultValueType = complex;\n  return defaultValueType.getAnimatableNone ? defaultValueType.getAnimatableNone(value) : void 0;\n}\nexport {\n  getAnimatableNone\n};\n","import { createRenderBatcher } from \"./batcher.mjs\";\nconst { schedule: microtask, cancel: cancelMicrotask } = /* @__PURE__ */ createRenderBatcher(queueMicrotask, true);\nexport {\n  cancelMicrotask,\n  microtask\n};\n","import { featureDefinitions } from \"../motion/features/definitions.mjs\";\nimport { createBox } from \"../projection/geometry/models.mjs\";\nimport { initPrefersReducedMotion } from \"../utils/reduced-motion/index.mjs\";\nimport { hasReducedMotionListener, prefersReducedMotion } from \"../utils/reduced-motion/state.mjs\";\nimport { visualElementStore } from \"./store.mjs\";\nimport { isControllingVariants, isVariantNode } from \"./utils/is-controlling-variants.mjs\";\nimport { updateMotionValuesFromProps } from \"./utils/motion-values.mjs\";\nimport { resolveVariantFromProps } from \"./utils/resolve-variants.mjs\";\nimport { KeyframeResolver } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\";\nimport { time } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/sync-time.mjs\";\nimport { frame, cancelFrame } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nimport { isMotionValue } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nimport { warnOnce } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/warn-once.mjs\";\nimport { transformProps } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-transform.mjs\";\nimport { motionValue } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/index.mjs\";\nimport { isNumericalString } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/is-numerical-string.mjs\";\nimport { isZeroValueString } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/is-zero-value-string.mjs\";\nimport { findValueType } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/find.mjs\";\nimport { complex } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/complex/index.mjs\";\nimport { getAnimatableNone } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/animatable-none.mjs\";\nimport { SubscriptionManager } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/subscription-manager.mjs\";\nimport { microtask } from \"../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/microtask.mjs\";\nconst propEventHandlers = [\n  \"AnimationStart\",\n  \"AnimationComplete\",\n  \"Update\",\n  \"BeforeLayoutMeasure\",\n  \"LayoutMeasure\",\n  \"LayoutAnimationStart\",\n  \"LayoutAnimationComplete\"\n];\nclass VisualElement {\n  /**\n   * This method takes React props and returns found MotionValues. For example, HTML\n   * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n   *\n   * This isn't an abstract method as it needs calling in the constructor, but it is\n   * intended to be one.\n   */\n  scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n    return {};\n  }\n  constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState }, options = {}) {\n    this.current = null;\n    this.children = /* @__PURE__ */ new Set();\n    this.isVariantNode = false;\n    this.isControllingVariants = false;\n    this.shouldReduceMotion = null;\n    this.values = /* @__PURE__ */ new Map();\n    this.KeyframeResolver = KeyframeResolver;\n    this.features = {};\n    this.valueSubscriptions = /* @__PURE__ */ new Map();\n    this.prevMotionValues = {};\n    this.events = {};\n    this.propEventSubscriptions = {};\n    this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n    this.render = () => {\n      if (!this.current)\n        return;\n      this.triggerBuild();\n      this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n    };\n    this.renderScheduledAt = 0;\n    this.scheduleRender = () => {\n      const now = time.now();\n      if (this.renderScheduledAt < now) {\n        this.renderScheduledAt = now;\n        frame.render(this.render, false, true);\n      }\n    };\n    const { latestValues, renderState } = visualState;\n    this.latestValues = latestValues;\n    this.baseTarget = { ...latestValues };\n    this.initialValues = props.initial ? { ...latestValues } : {};\n    this.renderState = renderState;\n    this.parent = parent;\n    this.props = props;\n    this.presenceContext = presenceContext;\n    this.depth = parent ? parent.depth + 1 : 0;\n    this.reducedMotionConfig = reducedMotionConfig;\n    this.options = options;\n    this.blockInitialAnimation = Boolean(blockInitialAnimation);\n    this.isControllingVariants = isControllingVariants(props);\n    this.isVariantNode = isVariantNode(props);\n    if (this.isVariantNode) {\n      this.variantChildren = /* @__PURE__ */ new Set();\n    }\n    this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n    const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n    for (const key in initialMotionValues) {\n      const value = initialMotionValues[key];\n      if (latestValues[key] !== void 0 && isMotionValue(value)) {\n        value.set(latestValues[key]);\n      }\n    }\n  }\n  mount(instance) {\n    var _a;\n    this.current = instance;\n    visualElementStore.set(instance, this);\n    if (this.projection && !this.projection.instance) {\n      this.projection.mount(instance);\n    }\n    if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n      this.removeFromVariantTree = this.parent.addVariantChild(this);\n    }\n    this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n    if (!hasReducedMotionListener.current) {\n      initPrefersReducedMotion();\n    }\n    this.shouldReduceMotion = this.reducedMotionConfig === \"never\" ? false : this.reducedMotionConfig === \"always\" ? true : prefersReducedMotion.current;\n    if (process.env.NODE_ENV !== \"production\") {\n      warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\", \"reduced-motion-disabled\");\n    }\n    (_a = this.parent) == null ? void 0 : _a.addChild(this);\n    this.update(this.props, this.presenceContext);\n  }\n  unmount() {\n    var _a;\n    this.projection && this.projection.unmount();\n    cancelFrame(this.notifyUpdate);\n    cancelFrame(this.render);\n    this.valueSubscriptions.forEach((remove) => remove());\n    this.valueSubscriptions.clear();\n    this.removeFromVariantTree && this.removeFromVariantTree();\n    (_a = this.parent) == null ? void 0 : _a.removeChild(this);\n    for (const key in this.events) {\n      this.events[key].clear();\n    }\n    for (const key in this.features) {\n      const feature = this.features[key];\n      if (feature) {\n        feature.unmount();\n        feature.isMounted = false;\n      }\n    }\n    this.current = null;\n  }\n  addChild(child) {\n    this.children.add(child);\n    this.enteringChildren ?? (this.enteringChildren = /* @__PURE__ */ new Set());\n    this.enteringChildren.add(child);\n  }\n  removeChild(child) {\n    this.children.delete(child);\n    this.enteringChildren && this.enteringChildren.delete(child);\n  }\n  bindToMotionValue(key, value) {\n    if (this.valueSubscriptions.has(key)) {\n      this.valueSubscriptions.get(key)();\n    }\n    const valueIsTransform = transformProps.has(key);\n    if (valueIsTransform && this.onBindTransform) {\n      this.onBindTransform();\n    }\n    const removeOnChange = value.on(\"change\", (latestValue) => {\n      this.latestValues[key] = latestValue;\n      this.props.onUpdate && frame.preRender(this.notifyUpdate);\n      if (valueIsTransform && this.projection) {\n        this.projection.isTransformDirty = true;\n      }\n      this.scheduleRender();\n    });\n    let removeSyncCheck;\n    if (window.MotionCheckAppearSync) {\n      removeSyncCheck = window.MotionCheckAppearSync(this, key, value);\n    }\n    this.valueSubscriptions.set(key, () => {\n      removeOnChange();\n      if (removeSyncCheck)\n        removeSyncCheck();\n      if (value.owner)\n        value.stop();\n    });\n  }\n  sortNodePosition(other) {\n    if (!this.current || !this.sortInstanceNodePosition || this.type !== other.type) {\n      return 0;\n    }\n    return this.sortInstanceNodePosition(this.current, other.current);\n  }\n  updateFeatures() {\n    let key = \"animation\";\n    for (key in featureDefinitions) {\n      const featureDefinition = featureDefinitions[key];\n      if (!featureDefinition)\n        continue;\n      const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n      if (!this.features[key] && FeatureConstructor && isEnabled(this.props)) {\n        this.features[key] = new FeatureConstructor(this);\n      }\n      if (this.features[key]) {\n        const feature = this.features[key];\n        if (feature.isMounted) {\n          feature.update();\n        } else {\n          feature.mount();\n          feature.isMounted = true;\n        }\n      }\n    }\n  }\n  triggerBuild() {\n    this.build(this.renderState, this.latestValues, this.props);\n  }\n  /**\n   * Measure the current viewport box with or without transforms.\n   * Only measures axis-aligned boxes, rotate and skew must be manually\n   * removed with a re-render to work.\n   */\n  measureViewportBox() {\n    return this.current ? this.measureInstanceViewportBox(this.current, this.props) : createBox();\n  }\n  getStaticValue(key) {\n    return this.latestValues[key];\n  }\n  setStaticValue(key, value) {\n    this.latestValues[key] = value;\n  }\n  /**\n   * Update the provided props. Ensure any newly-added motion values are\n   * added to our map, old ones removed, and listeners updated.\n   */\n  update(props, presenceContext) {\n    if (props.transformTemplate || this.props.transformTemplate) {\n      this.scheduleRender();\n    }\n    this.prevProps = this.props;\n    this.props = props;\n    this.prevPresenceContext = this.presenceContext;\n    this.presenceContext = presenceContext;\n    for (let i = 0; i < propEventHandlers.length; i++) {\n      const key = propEventHandlers[i];\n      if (this.propEventSubscriptions[key]) {\n        this.propEventSubscriptions[key]();\n        delete this.propEventSubscriptions[key];\n      }\n      const listenerName = \"on\" + key;\n      const listener = props[listenerName];\n      if (listener) {\n        this.propEventSubscriptions[key] = this.on(key, listener);\n      }\n    }\n    this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);\n    if (this.handleChildMotionValue) {\n      this.handleChildMotionValue();\n    }\n  }\n  getProps() {\n    return this.props;\n  }\n  /**\n   * Returns the variant definition with a given name.\n   */\n  getVariant(name) {\n    return this.props.variants ? this.props.variants[name] : void 0;\n  }\n  /**\n   * Returns the defined default transition on this component.\n   */\n  getDefaultTransition() {\n    return this.props.transition;\n  }\n  getTransformPagePoint() {\n    return this.props.transformPagePoint;\n  }\n  getClosestVariantNode() {\n    return this.isVariantNode ? this : this.parent ? this.parent.getClosestVariantNode() : void 0;\n  }\n  /**\n   * Add a child visual element to our set of children.\n   */\n  addVariantChild(child) {\n    const closestVariantNode = this.getClosestVariantNode();\n    if (closestVariantNode) {\n      closestVariantNode.variantChildren && closestVariantNode.variantChildren.add(child);\n      return () => closestVariantNode.variantChildren.delete(child);\n    }\n  }\n  /**\n   * Add a motion value and bind it to this visual element.\n   */\n  addValue(key, value) {\n    const existingValue = this.values.get(key);\n    if (value !== existingValue) {\n      if (existingValue)\n        this.removeValue(key);\n      this.bindToMotionValue(key, value);\n      this.values.set(key, value);\n      this.latestValues[key] = value.get();\n    }\n  }\n  /**\n   * Remove a motion value and unbind any active subscriptions.\n   */\n  removeValue(key) {\n    this.values.delete(key);\n    const unsubscribe = this.valueSubscriptions.get(key);\n    if (unsubscribe) {\n      unsubscribe();\n      this.valueSubscriptions.delete(key);\n    }\n    delete this.latestValues[key];\n    this.removeValueFromRenderState(key, this.renderState);\n  }\n  /**\n   * Check whether we have a motion value for this key\n   */\n  hasValue(key) {\n    return this.values.has(key);\n  }\n  getValue(key, defaultValue) {\n    if (this.props.values && this.props.values[key]) {\n      return this.props.values[key];\n    }\n    let value = this.values.get(key);\n    if (value === void 0 && defaultValue !== void 0) {\n      value = motionValue(defaultValue === null ? void 0 : defaultValue, { owner: this });\n      this.addValue(key, value);\n    }\n    return value;\n  }\n  /**\n   * If we're trying to animate to a previously unencountered value,\n   * we need to check for it in our state and as a last resort read it\n   * directly from the instance (which might have performance implications).\n   */\n  readValue(key, target) {\n    let value = this.latestValues[key] !== void 0 || !this.current ? this.latestValues[key] : this.getBaseTargetFromProps(this.props, key) ?? this.readValueFromInstance(this.current, key, this.options);\n    if (value !== void 0 && value !== null) {\n      if (typeof value === \"string\" && (isNumericalString(value) || isZeroValueString(value))) {\n        value = parseFloat(value);\n      } else if (!findValueType(value) && complex.test(target)) {\n        value = getAnimatableNone(key, target);\n      }\n      this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);\n    }\n    return isMotionValue(value) ? value.get() : value;\n  }\n  /**\n   * Set the base target to later animate back to. This is currently\n   * only hydrated on creation and when we first read a value.\n   */\n  setBaseTarget(key, value) {\n    this.baseTarget[key] = value;\n  }\n  /**\n   * Find the base target for a value thats been removed from all animation\n   * props.\n   */\n  getBaseTarget(key) {\n    var _a;\n    const { initial } = this.props;\n    let valueFromInitial;\n    if (typeof initial === \"string\" || typeof initial === \"object\") {\n      const variant = resolveVariantFromProps(this.props, initial, (_a = this.presenceContext) == null ? void 0 : _a.custom);\n      if (variant) {\n        valueFromInitial = variant[key];\n      }\n    }\n    if (initial && valueFromInitial !== void 0) {\n      return valueFromInitial;\n    }\n    const target = this.getBaseTargetFromProps(this.props, key);\n    if (target !== void 0 && !isMotionValue(target))\n      return target;\n    return this.initialValues[key] !== void 0 && valueFromInitial === void 0 ? void 0 : this.baseTarget[key];\n  }\n  on(eventName, callback) {\n    if (!this.events[eventName]) {\n      this.events[eventName] = new SubscriptionManager();\n    }\n    return this.events[eventName].add(callback);\n  }\n  notify(eventName, ...args) {\n    if (this.events[eventName]) {\n      this.events[eventName].notify(...args);\n    }\n  }\n  scheduleRenderMicrotask() {\n    microtask.render(this.render);\n  }\n}\nexport {\n  VisualElement\n};\n","import { transformPropOrder } from \"./keys-transform.mjs\";\nconst positionalKeys = /* @__PURE__ */ new Set([\n  \"width\",\n  \"height\",\n  \"top\",\n  \"left\",\n  \"right\",\n  \"bottom\",\n  ...transformPropOrder\n]);\nexport {\n  positionalKeys\n};\n","import { formatErrorMessage } from \"./format-error-message.mjs\";\nlet warning = () => {\n};\nlet invariant = () => {\n};\nif (process.env.NODE_ENV !== \"production\") {\n  warning = (check, message, errorCode) => {\n    if (!check && typeof console !== \"undefined\") {\n      console.warn(formatErrorMessage(message, errorCode));\n    }\n  };\n  invariant = (check, message, errorCode) => {\n    if (!check) {\n      throw new Error(formatErrorMessage(message, errorCode));\n    }\n  };\n}\nexport {\n  invariant,\n  warning\n};\n","import { isCSSVariableToken } from \"./is-css-variable.mjs\";\nimport { invariant } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nimport { isNumericalString } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/is-numerical-string.mjs\";\nconst splitCSSVariableRegex = (\n  // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n  /^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u\n);\nfunction parseCSSVariable(current) {\n  const match = splitCSSVariableRegex.exec(current);\n  if (!match)\n    return [,];\n  const [, token1, token2, fallback] = match;\n  return [`--${token1 ?? token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n  invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`, \"max-css-var-depth\");\n  const [token, fallback] = parseCSSVariable(current);\n  if (!token)\n    return;\n  const resolved = window.getComputedStyle(element).getPropertyValue(token);\n  if (resolved) {\n    const trimmed = resolved.trim();\n    return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n  }\n  return isCSSVariableToken(fallback) ? getVariableValue(fallback, element, depth + 1) : fallback;\n}\nexport {\n  getVariableValue,\n  parseCSSVariable\n};\n","import { isZeroValueString } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/is-zero-value-string.mjs\";\nfunction isNone(value) {\n  if (typeof value === \"number\") {\n    return value === 0;\n  } else if (value !== null) {\n    return value === \"none\" || value === \"0\" || isZeroValueString(value);\n  } else {\n    return true;\n  }\n}\nexport {\n  isNone\n};\n","import { analyseComplexValue } from \"../../../value/types/complex/index.mjs\";\nimport { getAnimatableNone } from \"../../../value/types/utils/animatable-none.mjs\";\nconst invalidTemplates = /* @__PURE__ */ new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n  let i = 0;\n  let animatableTemplate = void 0;\n  while (i < unresolvedKeyframes.length && !animatableTemplate) {\n    const keyframe = unresolvedKeyframes[i];\n    if (typeof keyframe === \"string\" && !invalidTemplates.has(keyframe) && analyseComplexValue(keyframe).values.length) {\n      animatableTemplate = unresolvedKeyframes[i];\n    }\n    i++;\n  }\n  if (animatableTemplate && name) {\n    for (const noneIndex of noneKeyframeIndexes) {\n      unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);\n    }\n  }\n}\nexport {\n  makeNoneKeyframesAnimatable\n};\n","import { positionalKeys } from \"../../render/utils/keys-position.mjs\";\nimport { findDimensionValueType } from \"../../value/types/dimensions.mjs\";\nimport { getVariableValue } from \"../utils/css-variables-conversion.mjs\";\nimport { isCSSVariableToken } from \"../utils/is-css-variable.mjs\";\nimport { KeyframeResolver } from \"./KeyframesResolver.mjs\";\nimport { isNone } from \"./utils/is-none.mjs\";\nimport { makeNoneKeyframesAnimatable } from \"./utils/make-none-animatable.mjs\";\nimport { isNumOrPxType, positionalValues } from \"./utils/unit-conversion.mjs\";\nclass DOMKeyframesResolver extends KeyframeResolver {\n  constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {\n    super(unresolvedKeyframes, onComplete, name, motionValue, element, true);\n  }\n  readKeyframes() {\n    const { unresolvedKeyframes, element, name } = this;\n    if (!element || !element.current)\n      return;\n    super.readKeyframes();\n    for (let i = 0; i < unresolvedKeyframes.length; i++) {\n      let keyframe = unresolvedKeyframes[i];\n      if (typeof keyframe === \"string\") {\n        keyframe = keyframe.trim();\n        if (isCSSVariableToken(keyframe)) {\n          const resolved = getVariableValue(keyframe, element.current);\n          if (resolved !== void 0) {\n            unresolvedKeyframes[i] = resolved;\n          }\n          if (i === unresolvedKeyframes.length - 1) {\n            this.finalKeyframe = keyframe;\n          }\n        }\n      }\n    }\n    this.resolveNoneKeyframes();\n    if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n      return;\n    }\n    const [origin, target] = unresolvedKeyframes;\n    const originType = findDimensionValueType(origin);\n    const targetType = findDimensionValueType(target);\n    if (originType === targetType)\n      return;\n    if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {\n      for (let i = 0; i < unresolvedKeyframes.length; i++) {\n        const value = unresolvedKeyframes[i];\n        if (typeof value === \"string\") {\n          unresolvedKeyframes[i] = parseFloat(value);\n        }\n      }\n    } else if (positionalValues[name]) {\n      this.needsMeasurement = true;\n    }\n  }\n  resolveNoneKeyframes() {\n    const { unresolvedKeyframes, name } = this;\n    const noneKeyframeIndexes = [];\n    for (let i = 0; i < unresolvedKeyframes.length; i++) {\n      if (unresolvedKeyframes[i] === null || isNone(unresolvedKeyframes[i])) {\n        noneKeyframeIndexes.push(i);\n      }\n    }\n    if (noneKeyframeIndexes.length) {\n      makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);\n    }\n  }\n  measureInitialState() {\n    const { element, unresolvedKeyframes, name } = this;\n    if (!element || !element.current)\n      return;\n    if (name === \"height\") {\n      this.suspendedScrollY = window.pageYOffset;\n    }\n    this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n    unresolvedKeyframes[0] = this.measuredOrigin;\n    const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n    if (measureKeyframe !== void 0) {\n      element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n    }\n  }\n  measureEndState() {\n    var _a;\n    const { element, name, unresolvedKeyframes } = this;\n    if (!element || !element.current)\n      return;\n    const value = element.getValue(name);\n    value && value.jump(this.measuredOrigin, false);\n    const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n    const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n    unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n    if (finalKeyframe !== null && this.finalKeyframe === void 0) {\n      this.finalKeyframe = finalKeyframe;\n    }\n    if ((_a = this.removedTransforms) == null ? void 0 : _a.length) {\n      this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n        element.getValue(unsetTransformName).set(unsetTransformValue);\n      });\n    }\n    this.resolveNoneKeyframes();\n  }\n}\nexport {\n  DOMKeyframesResolver\n};\n","import { VisualElement } from \"../VisualElement.mjs\";\nimport { DOMKeyframesResolver } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs\";\nimport { isMotionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nclass DOMVisualElement extends VisualElement {\n  constructor() {\n    super(...arguments);\n    this.KeyframeResolver = DOMKeyframesResolver;\n  }\n  sortInstanceNodePosition(a, b) {\n    return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n  }\n  getBaseTargetFromProps(props, key) {\n    return props.style ? props.style[key] : void 0;\n  }\n  removeValueFromRenderState(key, { vars, style }) {\n    delete vars[key];\n    delete style[key];\n  }\n  handleChildMotionValue() {\n    if (this.childSubscription) {\n      this.childSubscription();\n      delete this.childSubscription;\n    }\n    const { children } = this.props;\n    if (isMotionValue(children)) {\n      this.childSubscription = children.on(\"change\", (latest) => {\n        if (this.current) {\n          this.current.textContent = `${latest}`;\n        }\n      });\n    }\n  }\n}\nexport {\n  DOMVisualElement\n};\n","const getValueAsType = (value, type) => {\n  return type && typeof value === \"number\" ? type.transform(value) : value;\n};\nexport {\n  getValueAsType\n};\n","import { transformPropOrder } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-transform.mjs\";\nimport { getValueAsType } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/get-as-type.mjs\";\nimport { numberValueTypes } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/maps/number.mjs\";\nconst translateAlias = {\n  x: \"translateX\",\n  y: \"translateY\",\n  z: \"translateZ\",\n  transformPerspective: \"perspective\"\n};\nconst numTransforms = transformPropOrder.length;\nfunction buildTransform(latestValues, transform, transformTemplate) {\n  let transformString = \"\";\n  let transformIsDefault = true;\n  for (let i = 0; i < numTransforms; i++) {\n    const key = transformPropOrder[i];\n    const value = latestValues[key];\n    if (value === void 0)\n      continue;\n    let valueIsDefault = true;\n    if (typeof value === \"number\") {\n      valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n    } else {\n      valueIsDefault = parseFloat(value) === 0;\n    }\n    if (!valueIsDefault || transformTemplate) {\n      const valueAsType = getValueAsType(value, numberValueTypes[key]);\n      if (!valueIsDefault) {\n        transformIsDefault = false;\n        const transformName = translateAlias[key] || key;\n        transformString += `${transformName}(${valueAsType}) `;\n      }\n      if (transformTemplate) {\n        transform[key] = valueAsType;\n      }\n    }\n  }\n  transformString = transformString.trim();\n  if (transformTemplate) {\n    transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n  } else if (transformIsDefault) {\n    transformString = \"none\";\n  }\n  return transformString;\n}\nexport {\n  buildTransform\n};\n","import { buildTransform } from \"./build-transform.mjs\";\nimport { transformProps } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-transform.mjs\";\nimport { isCSSVariableName } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/is-css-variable.mjs\";\nimport { getValueAsType } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/utils/get-as-type.mjs\";\nimport { numberValueTypes } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/maps/number.mjs\";\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\n  const { style, vars, transformOrigin } = state;\n  let hasTransform = false;\n  let hasTransformOrigin = false;\n  for (const key in latestValues) {\n    const value = latestValues[key];\n    if (transformProps.has(key)) {\n      hasTransform = true;\n      continue;\n    } else if (isCSSVariableName(key)) {\n      vars[key] = value;\n      continue;\n    } else {\n      const valueAsType = getValueAsType(value, numberValueTypes[key]);\n      if (key.startsWith(\"origin\")) {\n        hasTransformOrigin = true;\n        transformOrigin[key] = valueAsType;\n      } else {\n        style[key] = valueAsType;\n      }\n    }\n  }\n  if (!latestValues.transform) {\n    if (hasTransform || transformTemplate) {\n      style.transform = buildTransform(latestValues, state.transform, transformTemplate);\n    } else if (style.transform) {\n      style.transform = \"none\";\n    }\n  }\n  if (hasTransformOrigin) {\n    const { originX = \"50%\", originY = \"50%\", originZ = 0 } = transformOrigin;\n    style.transformOrigin = `${originX} ${originY} ${originZ}`;\n  }\n}\nexport {\n  buildHTMLStyles\n};\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n  const elementStyle = element.style;\n  let key;\n  for (key in style) {\n    elementStyle[key] = style[key];\n  }\n  projection == null ? void 0 : projection.applyProjectionStyles(elementStyle, styleProp);\n  for (key in vars) {\n    elementStyle.setProperty(key, vars[key]);\n  }\n}\nexport {\n  renderHTML\n};\n","import { scaleCorrectors } from \"../../projection/styles/scale-correction.mjs\";\nimport { transformProps } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-transform.mjs\";\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n  return transformProps.has(key) || key.startsWith(\"origin\") || (layout || layoutId !== void 0) && (!!scaleCorrectors[key] || key === \"opacity\");\n}\nexport {\n  isForcedMotionValue\n};\n","import { isForcedMotionValue } from \"../../../motion/utils/is-forced-motion-value.mjs\";\nimport { isMotionValue } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n  var _a;\n  const { style } = props;\n  const newValues = {};\n  for (const key in style) {\n    if (isMotionValue(style[key]) || prevProps.style && isMotionValue(prevProps.style[key]) || isForcedMotionValue(key, props) || ((_a = visualElement == null ? void 0 : visualElement.getValue(key)) == null ? void 0 : _a.liveStyle) !== void 0) {\n      newValues[key] = style[key];\n    }\n  }\n  return newValues;\n}\nexport {\n  scrapeMotionValuesFromProps\n};\n","import { measureViewportBox } from \"../../projection/utils/measure.mjs\";\nimport { DOMVisualElement } from \"../dom/DOMVisualElement.mjs\";\nimport { buildHTMLStyles } from \"./utils/build-styles.mjs\";\nimport { renderHTML } from \"./utils/render.mjs\";\nimport { scrapeMotionValuesFromProps } from \"./utils/scrape-motion-values.mjs\";\nimport { transformProps } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-transform.mjs\";\nimport { defaultTransformValue, readTransformValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/dom/parse-transform.mjs\";\nimport { isCSSVariableName } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/is-css-variable.mjs\";\nfunction getComputedStyle(element) {\n  return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n  constructor() {\n    super(...arguments);\n    this.type = \"html\";\n    this.renderInstance = renderHTML;\n  }\n  readValueFromInstance(instance, key) {\n    var _a;\n    if (transformProps.has(key)) {\n      return ((_a = this.projection) == null ? void 0 : _a.isProjecting) ? defaultTransformValue(key) : readTransformValue(instance, key);\n    } else {\n      const computedStyle = getComputedStyle(instance);\n      const value = (isCSSVariableName(key) ? computedStyle.getPropertyValue(key) : computedStyle[key]) || 0;\n      return typeof value === \"string\" ? value.trim() : value;\n    }\n  }\n  measureInstanceViewportBox(instance, { transformPagePoint }) {\n    return measureViewportBox(instance, transformPagePoint);\n  }\n  build(renderState, latestValues, props) {\n    buildHTMLStyles(renderState, latestValues, props.transformTemplate);\n  }\n  scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n    return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n  }\n}\nexport {\n  HTMLVisualElement,\n  getComputedStyle\n};\n","const camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\nexport {\n  camelToDash\n};\n","import { px } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/numbers/units.mjs\";\nconst dashKeys = {\n  offset: \"stroke-dashoffset\",\n  array: \"stroke-dasharray\"\n};\nconst camelKeys = {\n  offset: \"strokeDashoffset\",\n  array: \"strokeDasharray\"\n};\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n  attrs.pathLength = 1;\n  const keys = useDashCase ? dashKeys : camelKeys;\n  attrs[keys.offset] = px.transform(-offset);\n  const pathLength = px.transform(length);\n  const pathSpacing = px.transform(spacing);\n  attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\nexport {\n  buildSVGPath\n};\n","import { buildHTMLStyles } from \"../../html/utils/build-styles.mjs\";\nimport { buildSVGPath } from \"./path.mjs\";\nfunction buildSVGAttrs(state, {\n  attrX,\n  attrY,\n  attrScale,\n  pathLength,\n  pathSpacing = 1,\n  pathOffset = 0,\n  // This is object creation, which we try to avoid per-frame.\n  ...latest\n}, isSVGTag, transformTemplate, styleProp) {\n  buildHTMLStyles(state, latest, transformTemplate);\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 } = state;\n  if (attrs.transform) {\n    style.transform = attrs.transform;\n    delete attrs.transform;\n  }\n  if (style.transform || attrs.transformOrigin) {\n    style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\n    delete attrs.transformOrigin;\n  }\n  if (style.transform) {\n    style.transformBox = (styleProp == null ? void 0 : styleProp.transformBox) ?? \"fill-box\";\n    delete attrs.transformBox;\n  }\n  if (attrX !== void 0)\n    attrs.x = attrX;\n  if (attrY !== void 0)\n    attrs.y = attrY;\n  if (attrScale !== void 0)\n    attrs.scale = attrScale;\n  if (pathLength !== void 0) {\n    buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n  }\n}\nexport {\n  buildSVGAttrs\n};\n","const camelCaseAttributes = /* @__PURE__ */ 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]);\nexport {\n  camelCaseAttributes\n};\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\nexport {\n  isSVGTag\n};\n","import { camelToDash } from \"../../dom/utils/camel-to-dash.mjs\";\nimport { renderHTML } from \"../../html/utils/render.mjs\";\nimport { camelCaseAttributes } from \"./camel-case-attrs.mjs\";\nfunction renderSVG(element, renderState, _styleProp, projection) {\n  renderHTML(element, renderState, void 0, projection);\n  for (const key in renderState.attrs) {\n    element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n  }\n}\nexport {\n  renderSVG\n};\n","import { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from \"../../html/utils/scrape-motion-values.mjs\";\nimport { isMotionValue } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nimport { transformPropOrder } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-transform.mjs\";\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n  const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n  for (const key in props) {\n    if (isMotionValue(props[key]) || isMotionValue(prevProps[key])) {\n      const targetKey = transformPropOrder.indexOf(key) !== -1 ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1) : key;\n      newValues[targetKey] = props[key];\n    }\n  }\n  return newValues;\n}\nexport {\n  scrapeMotionValuesFromProps\n};\n","import { createBox } from \"../../projection/geometry/models.mjs\";\nimport { DOMVisualElement } from \"../dom/DOMVisualElement.mjs\";\nimport { camelToDash } from \"../dom/utils/camel-to-dash.mjs\";\nimport { buildSVGAttrs } from \"./utils/build-attrs.mjs\";\nimport { camelCaseAttributes } from \"./utils/camel-case-attrs.mjs\";\nimport { isSVGTag } from \"./utils/is-svg-tag.mjs\";\nimport { renderSVG } from \"./utils/render.mjs\";\nimport { scrapeMotionValuesFromProps } from \"./utils/scrape-motion-values.mjs\";\nimport { transformProps } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-transform.mjs\";\nimport { getDefaultValueType } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/maps/defaults.mjs\";\nclass SVGVisualElement extends DOMVisualElement {\n  constructor() {\n    super(...arguments);\n    this.type = \"svg\";\n    this.isSVGTag = false;\n    this.measureInstanceViewportBox = createBox;\n  }\n  getBaseTargetFromProps(props, key) {\n    return props[key];\n  }\n  readValueFromInstance(instance, key) {\n    if (transformProps.has(key)) {\n      const defaultType = getDefaultValueType(key);\n      return defaultType ? defaultType.default || 0 : 0;\n    }\n    key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n    return instance.getAttribute(key);\n  }\n  scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n    return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n  }\n  build(renderState, latestValues, props) {\n    buildSVGAttrs(renderState, latestValues, this.isSVGTag, props.transformTemplate, props.style);\n  }\n  renderInstance(instance, renderState, styleProp, projection) {\n    renderSVG(instance, renderState, styleProp, projection);\n  }\n  mount(instance) {\n    this.isSVGTag = isSVGTag(instance.tagName);\n    super.mount(instance);\n  }\n}\nexport {\n  SVGVisualElement\n};\n","import { isSVGElement } from \"./utils.mjs\";\nimport { HTMLVisualElement } from \"../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/html/HTMLVisualElement.mjs\";\nimport { SVGVisualElement } from \"../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/svg/SVGVisualElement.mjs\";\nfunction createVisualElement(Component, options) {\n  return isSVGElement(Component) ? new SVGVisualElement(options) : new HTMLVisualElement(options);\n}\nexport {\n  createVisualElement\n};\n","function calcChildStagger(children, child, delayChildren, staggerChildren = 0, staggerDirection = 1) {\n  const sortedChildren = Array.from(children);\n  const index = sortedChildren.indexOf(child);\n  const numChildren = children.size;\n  const maxStaggerDuration = (numChildren - 1) * staggerChildren;\n  const delayIsFunction = typeof delayChildren === \"function\";\n  if (index === sortedChildren.length - 1) {\n    child.parent.enteringChildren = void 0;\n  }\n  return delayIsFunction ? delayChildren(index, numChildren) : staggerDirection === 1 ? index * staggerChildren : maxStaggerDuration - index * staggerChildren;\n}\nexport {\n  calcChildStagger\n};\n","function isDOMKeyframes(keyframes) {\n  return typeof keyframes === \"object\" && !Array.isArray(keyframes);\n}\nexport {\n  isDOMKeyframes\n};\n","function resolveElements(elementOrSelector, scope, selectorCache) {\n  if (elementOrSelector instanceof EventTarget) {\n    return [elementOrSelector];\n  } else if (typeof elementOrSelector === \"string\") {\n    let root = document;\n    if (scope) {\n      root = scope.current;\n    }\n    const elements = (selectorCache == null ? void 0 : selectorCache[elementOrSelector]) ?? root.querySelectorAll(elementOrSelector);\n    return elements ? Array.from(elements) : [];\n  }\n  return Array.from(elementOrSelector);\n}\nexport {\n  resolveElements\n};\n","import { isDOMKeyframes } from \"../utils/is-dom-keyframes.mjs\";\nimport { resolveElements } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/resolve-elements.mjs\";\nfunction resolveSubjects(subject, keyframes, scope, selectorCache) {\n  if (typeof subject === \"string\" && isDOMKeyframes(keyframes)) {\n    return resolveElements(subject, scope, selectorCache);\n  } else if (subject instanceof NodeList) {\n    return Array.from(subject);\n  } else if (Array.isArray(subject)) {\n    return subject;\n  } else {\n    return [subject];\n  }\n}\nexport {\n  resolveSubjects\n};\n","function calculateRepeatDuration(duration, repeat, _repeatDelay) {\n  return duration * (repeat + 1);\n}\nexport {\n  calculateRepeatDuration\n};\n","function calcNextTime(current, next, prev, labels) {\n  if (typeof next === \"number\") {\n    return next;\n  } else if (next.startsWith(\"-\") || next.startsWith(\"+\")) {\n    return Math.max(0, current + parseFloat(next));\n  } else if (next === \"<\") {\n    return prev;\n  } else if (next.startsWith(\"<\")) {\n    return Math.max(0, prev + parseFloat(next.slice(1)));\n  } else {\n    return labels.get(next) ?? current;\n  }\n}\nexport {\n  calcNextTime\n};\n","const mixNumber = (from, to, progress) => {\n  return from + (to - from) * progress;\n};\nexport {\n  mixNumber\n};\n","const wrap = (min, max, v) => {\n  const rangeSize = max - min;\n  return ((v - min) % rangeSize + rangeSize) % rangeSize + min;\n};\nexport {\n  wrap\n};\n","const isEasingArray = (ease) => {\n  return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\nexport {\n  isEasingArray\n};\n","import { wrap } from \"../../wrap.mjs\";\nimport { isEasingArray } from \"./is-easing-array.mjs\";\nfunction getEasingForSegment(easing, i) {\n  return isEasingArray(easing) ? easing[wrap(0, easing.length, i)] : easing;\n}\nexport {\n  getEasingForSegment\n};\n","import { mixNumber } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs\";\nimport { getEasingForSegment } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/utils/get-easing-for-segment.mjs\";\nimport { removeItem } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/array.mjs\";\nfunction eraseKeyframes(sequence, startTime, endTime) {\n  for (let i = 0; i < sequence.length; i++) {\n    const keyframe = sequence[i];\n    if (keyframe.at > startTime && keyframe.at < endTime) {\n      removeItem(sequence, keyframe);\n      i--;\n    }\n  }\n}\nfunction addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) {\n  eraseKeyframes(sequence, startTime, endTime);\n  for (let i = 0; i < keyframes.length; i++) {\n    sequence.push({\n      value: keyframes[i],\n      at: mixNumber(startTime, endTime, offset[i]),\n      easing: getEasingForSegment(easing, i)\n    });\n  }\n}\nexport {\n  addKeyframes,\n  eraseKeyframes\n};\n","function normalizeTimes(times, repeat) {\n  for (let i = 0; i < times.length; i++) {\n    times[i] = times[i] / (repeat + 1);\n  }\n}\nexport {\n  normalizeTimes\n};\n","function compareByTime(a, b) {\n  if (a.at === b.at) {\n    if (a.value === null)\n      return 1;\n    if (b.value === null)\n      return -1;\n    return 0;\n  } else {\n    return a.at - b.at;\n  }\n}\nexport {\n  compareByTime\n};\n","const progress = /* @__NO_SIDE_EFFECTS__ */ (from, to, value) => {\n  const toFromDifference = to - from;\n  return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\nexport {\n  progress\n};\n","import { mixNumber } from \"../../../utils/mix/number.mjs\";\nimport { progress } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/progress.mjs\";\nfunction fillOffset(offset, remaining) {\n  const min = offset[offset.length - 1];\n  for (let i = 1; i <= remaining; i++) {\n    const offsetProgress = progress(0, remaining, i);\n    offset.push(mixNumber(min, 1, offsetProgress));\n  }\n}\nexport {\n  fillOffset\n};\n","import { fillOffset } from \"./fill.mjs\";\nfunction defaultOffset(arr) {\n  const offset = [0];\n  fillOffset(offset, arr.length - 1);\n  return offset;\n}\nexport {\n  defaultOffset\n};\n","const maxGeneratorDuration = 2e4;\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}\nexport {\n  calcGeneratorDuration,\n  maxGeneratorDuration\n};\n","import { calcGeneratorDuration, maxGeneratorDuration } from \"./calc-duration.mjs\";\nimport { millisecondsToSeconds } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nfunction createGeneratorEasing(options, scale = 100, createGenerator) {\n  const generator = createGenerator({ ...options, keyframes: [0, scale] });\n  const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n  return {\n    type: \"keyframes\",\n    ease: (progress) => {\n      return generator.next(duration * progress).value / scale;\n    },\n    duration: millisecondsToSeconds(duration)\n  };\n}\nexport {\n  createGeneratorEasing\n};\n","function isGenerator(type) {\n  return typeof type === \"function\" && \"applyToOptions\" in type;\n}\nexport {\n  isGenerator\n};\n","import { resolveSubjects } from \"../animate/resolve-subjects.mjs\";\nimport { calculateRepeatDuration } from \"./utils/calc-repeat-duration.mjs\";\nimport { calcNextTime } from \"./utils/calc-time.mjs\";\nimport { addKeyframes } from \"./utils/edit.mjs\";\nimport { normalizeTimes } from \"./utils/normalize-times.mjs\";\nimport { compareByTime } from \"./utils/sort.mjs\";\nimport { isMotionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nimport { defaultOffset } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\";\nimport { createGeneratorEasing } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs\";\nimport { fillOffset } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs\";\nimport { invariant } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nimport { getEasingForSegment } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/utils/get-easing-for-segment.mjs\";\nimport { progress } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/progress.mjs\";\nimport { isGenerator } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\";\nimport { secondsToMilliseconds } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nconst defaultSegmentEasing = \"easeInOut\";\nconst MAX_REPEAT = 20;\nfunction createAnimationsFromSequence(sequence, { defaultTransition = {}, ...sequenceTransition } = {}, scope, generators) {\n  const defaultDuration = defaultTransition.duration || 0.3;\n  const animationDefinitions = /* @__PURE__ */ new Map();\n  const sequences = /* @__PURE__ */ new Map();\n  const elementCache = {};\n  const timeLabels = /* @__PURE__ */ new Map();\n  let prevTime = 0;\n  let currentTime = 0;\n  let totalDuration = 0;\n  for (let i = 0; i < sequence.length; i++) {\n    const segment = sequence[i];\n    if (typeof segment === \"string\") {\n      timeLabels.set(segment, currentTime);\n      continue;\n    } else if (!Array.isArray(segment)) {\n      timeLabels.set(segment.name, calcNextTime(currentTime, segment.at, prevTime, timeLabels));\n      continue;\n    }\n    let [subject, keyframes, transition = {}] = segment;\n    if (transition.at !== void 0) {\n      currentTime = calcNextTime(currentTime, transition.at, prevTime, timeLabels);\n    }\n    let maxDuration = 0;\n    const resolveValueSequence = (valueKeyframes, valueTransition, valueSequence, elementIndex = 0, numSubjects = 0) => {\n      const valueKeyframesAsList = keyframesAsList(valueKeyframes);\n      const { delay = 0, times = defaultOffset(valueKeyframesAsList), type = \"keyframes\", repeat, repeatType, repeatDelay = 0, ...remainingTransition } = valueTransition;\n      let { ease = defaultTransition.ease || \"easeOut\", duration } = valueTransition;\n      const calculatedDelay = typeof delay === \"function\" ? delay(elementIndex, numSubjects) : delay;\n      const numKeyframes = valueKeyframesAsList.length;\n      const createGenerator = isGenerator(type) ? type : generators == null ? void 0 : generators[type || \"keyframes\"];\n      if (numKeyframes <= 2 && createGenerator) {\n        let absoluteDelta = 100;\n        if (numKeyframes === 2 && isNumberKeyframesArray(valueKeyframesAsList)) {\n          const delta = valueKeyframesAsList[1] - valueKeyframesAsList[0];\n          absoluteDelta = Math.abs(delta);\n        }\n        const springTransition = { ...remainingTransition };\n        if (duration !== void 0) {\n          springTransition.duration = secondsToMilliseconds(duration);\n        }\n        const springEasing = createGeneratorEasing(springTransition, absoluteDelta, createGenerator);\n        ease = springEasing.ease;\n        duration = springEasing.duration;\n      }\n      duration ?? (duration = defaultDuration);\n      const startTime = currentTime + calculatedDelay;\n      if (times.length === 1 && times[0] === 0) {\n        times[1] = 1;\n      }\n      const remainder = times.length - valueKeyframesAsList.length;\n      remainder > 0 && fillOffset(times, remainder);\n      valueKeyframesAsList.length === 1 && valueKeyframesAsList.unshift(null);\n      if (repeat) {\n        invariant(repeat < MAX_REPEAT, \"Repeat count too high, must be less than 20\", \"repeat-count-high\");\n        duration = calculateRepeatDuration(duration, repeat);\n        const originalKeyframes = [...valueKeyframesAsList];\n        const originalTimes = [...times];\n        ease = Array.isArray(ease) ? [...ease] : [ease];\n        const originalEase = [...ease];\n        for (let repeatIndex = 0; repeatIndex < repeat; repeatIndex++) {\n          valueKeyframesAsList.push(...originalKeyframes);\n          for (let keyframeIndex = 0; keyframeIndex < originalKeyframes.length; keyframeIndex++) {\n            times.push(originalTimes[keyframeIndex] + (repeatIndex + 1));\n            ease.push(keyframeIndex === 0 ? \"linear\" : getEasingForSegment(originalEase, keyframeIndex - 1));\n          }\n        }\n        normalizeTimes(times, repeat);\n      }\n      const targetTime = startTime + duration;\n      addKeyframes(valueSequence, valueKeyframesAsList, ease, times, startTime, targetTime);\n      maxDuration = Math.max(calculatedDelay + duration, maxDuration);\n      totalDuration = Math.max(targetTime, totalDuration);\n    };\n    if (isMotionValue(subject)) {\n      const subjectSequence = getSubjectSequence(subject, sequences);\n      resolveValueSequence(keyframes, transition, getValueSequence(\"default\", subjectSequence));\n    } else {\n      const subjects = resolveSubjects(subject, keyframes, scope, elementCache);\n      const numSubjects = subjects.length;\n      for (let subjectIndex = 0; subjectIndex < numSubjects; subjectIndex++) {\n        keyframes = keyframes;\n        transition = transition;\n        const thisSubject = subjects[subjectIndex];\n        const subjectSequence = getSubjectSequence(thisSubject, sequences);\n        for (const key in keyframes) {\n          resolveValueSequence(keyframes[key], getValueTransition(transition, key), getValueSequence(key, subjectSequence), subjectIndex, numSubjects);\n        }\n      }\n    }\n    prevTime = currentTime;\n    currentTime += maxDuration;\n  }\n  sequences.forEach((valueSequences, element) => {\n    for (const key in valueSequences) {\n      const valueSequence = valueSequences[key];\n      valueSequence.sort(compareByTime);\n      const keyframes = [];\n      const valueOffset = [];\n      const valueEasing = [];\n      for (let i = 0; i < valueSequence.length; i++) {\n        const { at, value, easing } = valueSequence[i];\n        keyframes.push(value);\n        valueOffset.push(progress(0, totalDuration, at));\n        valueEasing.push(easing || \"easeOut\");\n      }\n      if (valueOffset[0] !== 0) {\n        valueOffset.unshift(0);\n        keyframes.unshift(keyframes[0]);\n        valueEasing.unshift(defaultSegmentEasing);\n      }\n      if (valueOffset[valueOffset.length - 1] !== 1) {\n        valueOffset.push(1);\n        keyframes.push(null);\n      }\n      if (!animationDefinitions.has(element)) {\n        animationDefinitions.set(element, {\n          keyframes: {},\n          transition: {}\n        });\n      }\n      const definition = animationDefinitions.get(element);\n      definition.keyframes[key] = keyframes;\n      definition.transition[key] = {\n        ...defaultTransition,\n        duration: totalDuration,\n        ease: valueEasing,\n        times: valueOffset,\n        ...sequenceTransition\n      };\n    }\n  });\n  return animationDefinitions;\n}\nfunction getSubjectSequence(subject, sequences) {\n  !sequences.has(subject) && sequences.set(subject, {});\n  return sequences.get(subject);\n}\nfunction getValueSequence(name, sequences) {\n  if (!sequences[name])\n    sequences[name] = [];\n  return sequences[name];\n}\nfunction keyframesAsList(keyframes) {\n  return Array.isArray(keyframes) ? keyframes : [keyframes];\n}\nfunction getValueTransition(transition, key) {\n  return transition && transition[key] ? {\n    ...transition,\n    ...transition[key]\n  } : { ...transition };\n}\nconst isNumber = (keyframe) => typeof keyframe === \"number\";\nconst isNumberKeyframesArray = (keyframes) => keyframes.every(isNumber);\nexport {\n  createAnimationsFromSequence,\n  getValueTransition\n};\n","const isKeyframesTarget = (v) => {\n  return Array.isArray(v);\n};\nexport {\n  isKeyframesTarget\n};\n","import { resolveVariantFromProps } from \"./resolve-variants.mjs\";\nfunction resolveVariant(visualElement, definition, custom) {\n  const props = visualElement.getProps();\n  return resolveVariantFromProps(props, definition, props.custom, visualElement);\n}\nexport {\n  resolveVariant\n};\n","import { isKeyframesTarget } from \"../../animation/utils/is-keyframes-target.mjs\";\nimport { resolveVariant } from \"./resolve-dynamic-variants.mjs\";\nimport { motionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/index.mjs\";\nfunction setMotionValue(visualElement, key, value) {\n  if (visualElement.hasValue(key)) {\n    visualElement.getValue(key).set(value);\n  } else {\n    visualElement.addValue(key, motionValue(value));\n  }\n}\nfunction resolveFinalValueInKeyframes(v) {\n  return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n}\nfunction setTarget(visualElement, definition) {\n  const resolved = resolveVariant(visualElement, definition);\n  let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n  target = { ...target, ...transitionEnd };\n  for (const key in target) {\n    const value = resolveFinalValueInKeyframes(target[key]);\n    setMotionValue(visualElement, key, value);\n  }\n}\nexport {\n  setTarget\n};\n","import { isMotionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nfunction isWillChangeMotionValue(value) {\n  return Boolean(isMotionValue(value) && value.add);\n}\nexport {\n  isWillChangeMotionValue\n};\n","import { isWillChangeMotionValue } from \"./is.mjs\";\nimport { MotionGlobalConfig } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/global-config.mjs\";\nfunction addValueToWillChange(visualElement, key) {\n  const willChange = visualElement.getValue(\"willChange\");\n  if (isWillChangeMotionValue(willChange)) {\n    return willChange.add(key);\n  } else if (!willChange && MotionGlobalConfig.WillChange) {\n    const newWillChange = new MotionGlobalConfig.WillChange(\"auto\");\n    visualElement.addValue(\"willChange\", newWillChange);\n    newWillChange.add(key);\n  }\n}\nexport {\n  addValueToWillChange\n};\n","import { camelToDash } from \"../../render/dom/utils/camel-to-dash.mjs\";\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\nexport {\n  optimizedAppearDataAttribute,\n  optimizedAppearDataId\n};\n","import { optimizedAppearDataAttribute } from \"./data-id.mjs\";\nfunction getOptimisedAppearId(visualElement) {\n  return visualElement.props[optimizedAppearDataAttribute];\n}\nexport {\n  getOptimisedAppearId\n};\n","const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n  const resolvedKeyframes = keyframes.filter(isNotNull);\n  const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1 ? 0 : resolvedKeyframes.length - 1;\n  return !index || finalKeyframe === void 0 ? resolvedKeyframes[index] : finalKeyframe;\n}\nexport {\n  getFinalKeyframe\n};\n","import { transformProps } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-transform.mjs\";\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};\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  } else if (transformProps.has(valueKey)) {\n    return valueKey.startsWith(\"scale\") ? criticallyDampedSpring(keyframes[1]) : underDampedSpring;\n  }\n  return ease;\n};\nexport {\n  getDefaultTransition\n};\n","function isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n  return !!Object.keys(transition).length;\n}\nexport {\n  isTransitionDefined\n};\n","function getValueTransition(transition, key) {\n  return (transition == null ? void 0 : transition[key]) ?? (transition == null ? void 0 : transition[\"default\"]) ?? transition;\n}\nexport {\n  getValueTransition\n};\n","function makeAnimationInstant(options) {\n  options.duration = 0;\n  options.type === \"keyframes\";\n}\nexport {\n  makeAnimationInstant\n};\n","function hueToRgb(p, q, t) {\n  if (t < 0)\n    t += 1;\n  if (t > 1)\n    t -= 1;\n  if (t < 1 / 6)\n    return p + (q - p) * 6 * t;\n  if (t < 1 / 2)\n    return q;\n  if (t < 2 / 3)\n    return p + (q - p) * (2 / 3 - t) * 6;\n  return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n  hue /= 360;\n  saturation /= 100;\n  lightness /= 100;\n  let red = 0;\n  let green = 0;\n  let blue = 0;\n  if (!saturation) {\n    red = green = blue = lightness;\n  } else {\n    const q = lightness < 0.5 ? lightness * (1 + saturation) : 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}\nexport {\n  hslaToRgba\n};\n","function mixImmediate(a, b) {\n  return (p) => p > 0 ? b : a;\n}\nexport {\n  mixImmediate\n};\n","import { hex } from \"../../value/types/color/hex.mjs\";\nimport { hsla } from \"../../value/types/color/hsla.mjs\";\nimport { hslaToRgba } from \"../../value/types/color/hsla-to-rgba.mjs\";\nimport { rgba } from \"../../value/types/color/rgba.mjs\";\nimport { mixImmediate } from \"./immediate.mjs\";\nimport { mixNumber } from \"./number.mjs\";\nimport { warning } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nconst mixLinearColor = (from, to, v) => {\n  const fromExpo = from * from;\n  const expo = v * (to * to - fromExpo) + fromExpo;\n  return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n  const type = getColorType(color);\n  warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`, \"color-not-animatable\");\n  if (!Boolean(type))\n    return false;\n  let model = type.parse(color);\n  if (type === hsla) {\n    model = hslaToRgba(model);\n  }\n  return model;\n}\nconst mixColor = (from, to) => {\n  const fromRGBA = asRGBA(from);\n  const toRGBA = asRGBA(to);\n  if (!fromRGBA || !toRGBA) {\n    return mixImmediate(from, to);\n  }\n  const blended = { ...fromRGBA };\n  return (v) => {\n    blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n    blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n    blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n    blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);\n    return rgba.transform(blended);\n  };\n};\nexport {\n  mixColor,\n  mixLinearColor\n};\n","const invisibleValues = /* @__PURE__ */ new Set([\"none\", \"hidden\"]);\nfunction mixVisibility(origin, target) {\n  if (invisibleValues.has(origin)) {\n    return (p) => p <= 0 ? origin : target;\n  } else {\n    return (p) => p >= 1 ? target : origin;\n  }\n}\nexport {\n  invisibleValues,\n  mixVisibility\n};\n","const combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\nexport {\n  pipe\n};\n","import { isCSSVariableToken } from \"../../animation/utils/is-css-variable.mjs\";\nimport { color } from \"../../value/types/color/index.mjs\";\nimport { complex, analyseComplexValue } from \"../../value/types/complex/index.mjs\";\nimport { mixColor } from \"./color.mjs\";\nimport { mixImmediate } from \"./immediate.mjs\";\nimport { mixNumber as mixNumber$1 } from \"./number.mjs\";\nimport { invisibleValues, mixVisibility } from \"./visibility.mjs\";\nimport { pipe } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/pipe.mjs\";\nimport { warning } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nfunction mixNumber(a, b) {\n  return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n  if (typeof a === \"number\") {\n    return mixNumber;\n  } else if (typeof a === \"string\") {\n    return isCSSVariableToken(a) ? mixImmediate : color.test(a) ? mixColor : mixComplex;\n  } else if (Array.isArray(a)) {\n    return mixArray;\n  } else if (typeof a === \"object\") {\n    return color.test(a) ? mixColor : mixObject;\n  }\n  return mixImmediate;\n}\nfunction mixArray(a, b) {\n  const output = [...a];\n  const numValues = output.length;\n  const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n  return (p) => {\n    for (let i = 0; i < numValues; i++) {\n      output[i] = blendValue[i](p);\n    }\n    return output;\n  };\n}\nfunction mixObject(a, b) {\n  const output = { ...a, ...b };\n  const blendValue = {};\n  for (const key in output) {\n    if (a[key] !== void 0 && b[key] !== void 0) {\n      blendValue[key] = getMixer(a[key])(a[key], b[key]);\n    }\n  }\n  return (v) => {\n    for (const key in blendValue) {\n      output[key] = blendValue[key](v);\n    }\n    return output;\n  };\n}\nfunction matchOrder(origin, target) {\n  const orderedOrigin = [];\n  const pointers = { color: 0, var: 0, number: 0 };\n  for (let i = 0; i < target.values.length; i++) {\n    const type = target.types[i];\n    const originIndex = origin.indexes[type][pointers[type]];\n    const originValue = origin.values[originIndex] ?? 0;\n    orderedOrigin[i] = originValue;\n    pointers[type]++;\n  }\n  return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n  const template = complex.createTransformer(target);\n  const originStats = analyseComplexValue(origin);\n  const targetStats = analyseComplexValue(target);\n  const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length && originStats.indexes.color.length === targetStats.indexes.color.length && originStats.indexes.number.length >= targetStats.indexes.number.length;\n  if (canInterpolate) {\n    if (invisibleValues.has(origin) && !targetStats.values.length || invisibleValues.has(target) && !originStats.values.length) {\n      return mixVisibility(origin, target);\n    }\n    return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\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.`, \"complex-values-different\");\n    return mixImmediate(origin, target);\n  }\n};\nexport {\n  getMixer,\n  mixArray,\n  mixComplex,\n  mixObject\n};\n","import { getMixer } from \"./complex.mjs\";\nimport { mixNumber } from \"./number.mjs\";\nfunction mix(from, to, p) {\n  if (typeof from === \"number\" && typeof to === \"number\" && typeof p === \"number\") {\n    return mixNumber(from, to, p);\n  }\n  const mixer = getMixer(from);\n  return mixer(from, to);\n}\nexport {\n  mix\n};\n","import { time } from \"../../frameloop/sync-time.mjs\";\nimport { frame, cancelFrame, frameData } from \"../../frameloop/frame.mjs\";\nconst frameloopDriver = (update) => {\n  const passTimestamp = ({ timestamp }) => update(timestamp);\n  return {\n    start: (keepAlive = true) => frame.update(passTimestamp, keepAlive),\n    stop: () => cancelFrame(passTimestamp),\n    /**\n     * If we're processing this frame we can use the\n     * framelocked timestamp to keep things in sync.\n     */\n    now: () => frameData.isProcessing ? frameData.timestamp : time.now()\n  };\n};\nexport {\n  frameloopDriver\n};\n","const generateLinearEasing = (easing, duration, resolution = 10) => {\n  let points = \"\";\n  const numPoints = Math.max(Math.round(duration / resolution), 2);\n  for (let i = 0; i < numPoints; i++) {\n    points += Math.round(easing(i / (numPoints - 1)) * 1e4) / 1e4 + \", \";\n  }\n  return `linear(${points.substring(0, points.length - 2)})`;\n};\nexport {\n  generateLinearEasing\n};\n","import { velocityPerSecond } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/velocity-per-second.mjs\";\nconst velocitySampleDuration = 5;\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n  const prevT = Math.max(t - velocitySampleDuration, 0);\n  return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\nexport {\n  calcGeneratorVelocity\n};\n","const springDefaults = {\n  // Default spring physics\n  stiffness: 100,\n  damping: 10,\n  mass: 1,\n  velocity: 0,\n  // Default duration/bounce-based options\n  duration: 800,\n  // in ms\n  bounce: 0.3,\n  visualDuration: 0.3,\n  // in seconds\n  // Rest thresholds\n  restSpeed: {\n    granular: 0.01,\n    default: 2\n  },\n  restDelta: {\n    granular: 5e-3,\n    default: 0.5\n  },\n  // Limits\n  minDuration: 0.01,\n  // in seconds\n  maxDuration: 10,\n  // in seconds\n  minDamping: 0.05,\n  maxDamping: 1\n};\nexport {\n  springDefaults\n};\n","import { springDefaults } from \"./defaults.mjs\";\nimport { warning } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nimport { secondsToMilliseconds, millisecondsToSeconds } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nimport { clamp } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/clamp.mjs\";\nconst safeMin = 1e-3;\nfunction findSpring({ duration = springDefaults.duration, bounce = springDefaults.bounce, velocity = springDefaults.velocity, mass = springDefaults.mass }) {\n  let envelope;\n  let derivative;\n  warning(duration <= secondsToMilliseconds(springDefaults.maxDuration), \"Spring duration must be 10 seconds or less\", \"spring-duration-limit\");\n  let dampingRatio = 1 - bounce;\n  dampingRatio = clamp(springDefaults.minDamping, springDefaults.maxDamping, dampingRatio);\n  duration = clamp(springDefaults.minDuration, springDefaults.maxDuration, millisecondsToSeconds(duration));\n  if (dampingRatio < 1) {\n    envelope = (undampedFreq2) => {\n      const exponentialDecay = undampedFreq2 * dampingRatio;\n      const delta = exponentialDecay * duration;\n      const a = exponentialDecay - velocity;\n      const b = calcAngularFreq(undampedFreq2, dampingRatio);\n      const c = Math.exp(-delta);\n      return safeMin - a / b * c;\n    };\n    derivative = (undampedFreq2) => {\n      const exponentialDecay = undampedFreq2 * dampingRatio;\n      const delta = exponentialDecay * duration;\n      const d = delta * velocity + velocity;\n      const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq2, 2) * duration;\n      const f = Math.exp(-delta);\n      const g = calcAngularFreq(Math.pow(undampedFreq2, 2), dampingRatio);\n      const factor = -envelope(undampedFreq2) + safeMin > 0 ? -1 : 1;\n      return factor * ((d - e) * f) / g;\n    };\n  } else {\n    envelope = (undampedFreq2) => {\n      const a = Math.exp(-undampedFreq2 * duration);\n      const b = (undampedFreq2 - velocity) * duration + 1;\n      return -safeMin + a * b;\n    };\n    derivative = (undampedFreq2) => {\n      const a = Math.exp(-undampedFreq2 * duration);\n      const b = (velocity - undampedFreq2) * (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: springDefaults.stiffness,\n      damping: springDefaults.damping,\n      duration\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}\nexport {\n  calcAngularFreq,\n  findSpring\n};\n","import { generateLinearEasing } from \"../../waapi/utils/linear.mjs\";\nimport { calcGeneratorDuration, maxGeneratorDuration } from \"../utils/calc-duration.mjs\";\nimport { createGeneratorEasing } from \"../utils/create-generator-easing.mjs\";\nimport { calcGeneratorVelocity } from \"../utils/velocity.mjs\";\nimport { springDefaults } from \"./defaults.mjs\";\nimport { findSpring, calcAngularFreq } from \"./find.mjs\";\nimport { millisecondsToSeconds, secondsToMilliseconds } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nimport { clamp } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/clamp.mjs\";\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n  return keys.some((key) => options[key] !== void 0);\n}\nfunction getSpringOptions(options) {\n  let springOptions = {\n    velocity: springDefaults.velocity,\n    stiffness: springDefaults.stiffness,\n    damping: springDefaults.damping,\n    mass: springDefaults.mass,\n    isResolvedFromDuration: false,\n    ...options\n  };\n  if (!isSpringType(options, physicsKeys) && isSpringType(options, durationKeys)) {\n    if (options.visualDuration) {\n      const visualDuration = options.visualDuration;\n      const root = 2 * Math.PI / (visualDuration * 1.2);\n      const stiffness = root * root;\n      const damping = 2 * clamp(0.05, 1, 1 - (options.bounce || 0)) * Math.sqrt(stiffness);\n      springOptions = {\n        ...springOptions,\n        mass: springDefaults.mass,\n        stiffness,\n        damping\n      };\n    } else {\n      const derived = findSpring(options);\n      springOptions = {\n        ...springOptions,\n        ...derived,\n        mass: springDefaults.mass\n      };\n      springOptions.isResolvedFromDuration = true;\n    }\n  }\n  return springOptions;\n}\nfunction spring(optionsOrVisualDuration = springDefaults.visualDuration, bounce = springDefaults.bounce) {\n  const options = typeof optionsOrVisualDuration !== \"object\" ? {\n    visualDuration: optionsOrVisualDuration,\n    keyframes: [0, 1],\n    bounce\n  } : optionsOrVisualDuration;\n  let { restSpeed, restDelta } = options;\n  const origin = options.keyframes[0];\n  const target = options.keyframes[options.keyframes.length - 1];\n  const state = { done: false, value: origin };\n  const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration } = getSpringOptions({\n    ...options,\n    velocity: -millisecondsToSeconds(options.velocity || 0)\n  });\n  const initialVelocity = velocity || 0;\n  const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n  const initialDelta = target - origin;\n  const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n  const isGranularScale = Math.abs(initialDelta) < 5;\n  restSpeed || (restSpeed = isGranularScale ? springDefaults.restSpeed.granular : springDefaults.restSpeed.default);\n  restDelta || (restDelta = isGranularScale ? springDefaults.restDelta.granular : springDefaults.restDelta.default);\n  let resolveSpring;\n  if (dampingRatio < 1) {\n    const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n    resolveSpring = (t) => {\n      const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n      return target - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq * Math.sin(angularFreq * t) + initialDelta * Math.cos(angularFreq * t));\n    };\n  } else if (dampingRatio === 1) {\n    resolveSpring = (t) => target - Math.exp(-undampedAngularFreq * t) * (initialDelta + (initialVelocity + undampedAngularFreq * initialDelta) * t);\n  } else {\n    const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n    resolveSpring = (t) => {\n      const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n      const freqForT = Math.min(dampedAngularFreq * t, 300);\n      return target - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) * Math.sinh(freqForT) + dampedAngularFreq * initialDelta * Math.cosh(freqForT)) / dampedAngularFreq;\n    };\n  }\n  const generator = {\n    calculatedDuration: isResolvedFromDuration ? duration || null : null,\n    next: (t) => {\n      const current = resolveSpring(t);\n      if (!isResolvedFromDuration) {\n        let currentVelocity = t === 0 ? initialVelocity : 0;\n        if (dampingRatio < 1) {\n          currentVelocity = t === 0 ? secondsToMilliseconds(initialVelocity) : calcGeneratorVelocity(resolveSpring, t, current);\n        }\n        const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n        const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n        state.done = isBelowVelocityThreshold && isBelowDisplacementThreshold;\n      } else {\n        state.done = t >= duration;\n      }\n      state.value = state.done ? target : current;\n      return state;\n    },\n    toString: () => {\n      const calculatedDuration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n      const easing = generateLinearEasing((progress) => generator.next(calculatedDuration * progress).value, calculatedDuration, 30);\n      return calculatedDuration + \"ms \" + easing;\n    },\n    toTransition: () => {\n    }\n  };\n  return generator;\n}\nspring.applyToOptions = (options) => {\n  const generatorOptions = createGeneratorEasing(options, 100, spring);\n  options.ease = generatorOptions.ease;\n  options.duration = secondsToMilliseconds(generatorOptions.duration);\n  options.type = \"keyframes\";\n  return options;\n};\nexport {\n  spring\n};\n","import { spring } from \"./spring/index.mjs\";\nimport { calcGeneratorVelocity } from \"./utils/velocity.mjs\";\nfunction inertia({ keyframes, velocity = 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 !== void 0 && v < min || max !== void 0 && v > max;\n  const nearestBoundary = (v) => {\n    if (min === void 0)\n      return max;\n    if (max === void 0)\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 === void 0 ? ideal : modifyTarget(ideal);\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  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      // TODO: This should be passing * 1000\n      damping: bounceDamping,\n      stiffness: bounceStiffness,\n      restDelta,\n      restSpeed\n    });\n  };\n  checkCatchBoundary(0);\n  return {\n    calculatedDuration: null,\n    next: (t) => {\n      let hasUpdatedFrame = false;\n      if (!spring$1 && timeReachedBoundary === void 0) {\n        hasUpdatedFrame = true;\n        applyFriction(t);\n        checkCatchBoundary(t);\n      }\n      if (timeReachedBoundary !== void 0 && t >= timeReachedBoundary) {\n        return spring$1.next(t - timeReachedBoundary);\n      } else {\n        !hasUpdatedFrame && applyFriction(t);\n        return state;\n      }\n    }\n  };\n}\nexport {\n  inertia\n};\n","import { mix } from \"./mix/index.mjs\";\nimport { invariant } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nimport { clamp } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/clamp.mjs\";\nimport { MotionGlobalConfig } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/global-config.mjs\";\nimport { noop } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nimport { pipe } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/pipe.mjs\";\nimport { progress } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/progress.mjs\";\nfunction createMixers(output, ease, customMixer) {\n  const mixers = [];\n  const mixerFactory = customMixer || MotionGlobalConfig.mix || mix;\n  const numMixers = output.length - 1;\n  for (let i = 0; i < numMixers; i++) {\n    let mixer = mixerFactory(output[i], output[i + 1]);\n    if (ease) {\n      const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n      mixer = pipe(easingFunction, mixer);\n    }\n    mixers.push(mixer);\n  }\n  return mixers;\n}\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\", \"range-length\");\n  if (inputLength === 1)\n    return () => output[0];\n  if (inputLength === 2 && output[0] === output[1])\n    return () => output[1];\n  const isZeroDeltaRange = input[0] === input[1];\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    if (isZeroDeltaRange && v < input[0])\n      return output[0];\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 ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v)) : interpolator;\n}\nexport {\n  interpolate\n};\n","function convertOffsetToTimes(offset, duration) {\n  return offset.map((o) => o * duration);\n}\nexport {\n  convertOffsetToTimes\n};\n","import { noop } from \"../noop.mjs\";\nconst calcBezier = (t, a1, a2) => (((1 - 3 * a2 + 3 * a1) * t + (3 * a2 - 6 * a1)) * t + 3 * a1) * t;\nconst subdivisionPrecision = 1e-7;\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;\n    currentX = calcBezier(currentT, mX1, mX2) - x;\n    if (currentX > 0) {\n      upperBound = currentT;\n    } else {\n      lowerBound = currentT;\n    }\n  } while (Math.abs(currentX) > subdivisionPrecision && ++i < subdivisionMaxIterations);\n  return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n  if (mX1 === mY1 && mX2 === mY2)\n    return noop;\n  const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n  return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\nexport {\n  cubicBezier\n};\n","import { cubicBezier } from \"./cubic-bezier.mjs\";\nconst easeIn = /* @__PURE__ */ cubicBezier(0.42, 0, 1, 1);\nconst easeOut = /* @__PURE__ */ cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = /* @__PURE__ */ cubicBezier(0.42, 0, 0.58, 1);\nexport {\n  easeIn,\n  easeInOut,\n  easeOut\n};\n","const mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\nexport {\n  mirrorEasing\n};\n","const reverseEasing = (easing) => (p) => 1 - easing(1 - p);\nexport {\n  reverseEasing\n};\n","import { cubicBezier } from \"./cubic-bezier.mjs\";\nimport { mirrorEasing } from \"./modifiers/mirror.mjs\";\nimport { reverseEasing } from \"./modifiers/reverse.mjs\";\nconst backOut = /* @__PURE__ */ cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = /* @__PURE__ */ reverseEasing(backOut);\nconst backInOut = /* @__PURE__ */ mirrorEasing(backIn);\nexport {\n  backIn,\n  backInOut,\n  backOut\n};\n","import { backIn } from \"./back.mjs\";\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\nexport {\n  anticipate\n};\n","import { mirrorEasing } from \"./modifiers/mirror.mjs\";\nimport { reverseEasing } from \"./modifiers/reverse.mjs\";\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\nexport {\n  circIn,\n  circInOut,\n  circOut\n};\n","const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\nexport {\n  isBezierDefinition\n};\n","import { invariant } from \"../../errors.mjs\";\nimport { noop } from \"../../noop.mjs\";\nimport { anticipate } from \"../anticipate.mjs\";\nimport { backIn, backInOut, backOut } from \"../back.mjs\";\nimport { circIn, circInOut, circOut } from \"../circ.mjs\";\nimport { cubicBezier } from \"../cubic-bezier.mjs\";\nimport { easeIn, easeInOut, easeOut } from \"../ease.mjs\";\nimport { isBezierDefinition } from \"./is-bezier-definition.mjs\";\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 isValidEasing = (easing) => {\n  return typeof easing === \"string\";\n};\nconst easingDefinitionToFunction = (definition) => {\n  if (isBezierDefinition(definition)) {\n    invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`, \"cubic-bezier-length\");\n    const [x1, y1, x2, y2] = definition;\n    return cubicBezier(x1, y1, x2, y2);\n  } else if (isValidEasing(definition)) {\n    invariant(easingLookup[definition] !== void 0, `Invalid easing type '${definition}'`, \"invalid-easing-type\");\n    return easingLookup[definition];\n  }\n  return definition;\n};\nexport {\n  easingDefinitionToFunction\n};\n","import { interpolate } from \"../../utils/interpolate.mjs\";\nimport { defaultOffset } from \"../keyframes/offsets/default.mjs\";\nimport { convertOffsetToTimes } from \"../keyframes/offsets/time.mjs\";\nimport { easeInOut } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/ease.mjs\";\nimport { isEasingArray } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/utils/is-easing-array.mjs\";\nimport { easingDefinitionToFunction } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/utils/map.mjs\";\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  const easingFunctions = isEasingArray(ease) ? ease.map(easingDefinitionToFunction) : easingDefinitionToFunction(ease);\n  const state = {\n    done: false,\n    value: keyframeValues[0]\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 ? times : defaultOffset(keyframeValues),\n    duration\n  );\n  const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n    ease: Array.isArray(easingFunctions) ? easingFunctions : 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}\nexport {\n  defaultEasing,\n  keyframes\n};\n","const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe, speed = 1) {\n  const resolvedKeyframes = keyframes.filter(isNotNull);\n  const useFirstKeyframe = speed < 0 || repeat && repeatType !== \"loop\" && repeat % 2 === 1;\n  const index = useFirstKeyframe ? 0 : resolvedKeyframes.length - 1;\n  return !index || finalKeyframe === void 0 ? resolvedKeyframes[index] : finalKeyframe;\n}\nexport {\n  getFinalKeyframe\n};\n","import { inertia } from \"../generators/inertia.mjs\";\nimport { keyframes } from \"../generators/keyframes.mjs\";\nimport { spring } from \"../generators/spring/index.mjs\";\nconst transitionTypeMap = {\n  decay: inertia,\n  inertia,\n  tween: keyframes,\n  keyframes,\n  spring\n};\nfunction replaceTransitionType(transition) {\n  if (typeof transition.type === \"string\") {\n    transition.type = transitionTypeMap[transition.type];\n  }\n}\nexport {\n  replaceTransitionType\n};\n","class WithPromise {\n  constructor() {\n    this.updateFinished();\n  }\n  get finished() {\n    return this._finished;\n  }\n  updateFinished() {\n    this._finished = new Promise((resolve) => {\n      this.resolve = resolve;\n    });\n  }\n  notifyFinished() {\n    this.resolve();\n  }\n  /**\n   * Allows the animation to be awaited.\n   *\n   * @deprecated Use `finished` instead.\n   */\n  then(onResolve, onReject) {\n    return this.finished.then(onResolve, onReject);\n  }\n}\nexport {\n  WithPromise\n};\n","import { time } from \"../frameloop/sync-time.mjs\";\nimport { activeAnimations } from \"../stats/animation-count.mjs\";\nimport { mix } from \"../utils/mix/index.mjs\";\nimport { frameloopDriver } from \"./drivers/frame.mjs\";\nimport { inertia } from \"./generators/inertia.mjs\";\nimport { keyframes } from \"./generators/keyframes.mjs\";\nimport { calcGeneratorDuration } from \"./generators/utils/calc-duration.mjs\";\nimport { getFinalKeyframe } from \"./keyframes/get-final.mjs\";\nimport { replaceTransitionType } from \"./utils/replace-transition-type.mjs\";\nimport { WithPromise } from \"./utils/WithPromise.mjs\";\nimport { invariant } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nimport { pipe } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/pipe.mjs\";\nimport { millisecondsToSeconds, secondsToMilliseconds } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nimport { clamp } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/clamp.mjs\";\nconst percentToProgress = (percent) => percent / 100;\nclass JSAnimation extends WithPromise {\n  constructor(options) {\n    super();\n    this.state = \"idle\";\n    this.startTime = null;\n    this.isStopped = false;\n    this.currentTime = 0;\n    this.holdTime = null;\n    this.playbackSpeed = 1;\n    this.stop = () => {\n      var _a, _b;\n      const { motionValue } = this.options;\n      if (motionValue && motionValue.updatedAt !== time.now()) {\n        this.tick(time.now());\n      }\n      this.isStopped = true;\n      if (this.state === \"idle\")\n        return;\n      this.teardown();\n      (_b = (_a = this.options).onStop) == null ? void 0 : _b.call(_a);\n    };\n    activeAnimations.mainThread++;\n    this.options = options;\n    this.initAnimation();\n    this.play();\n    if (options.autoplay === false)\n      this.pause();\n  }\n  initAnimation() {\n    const { options } = this;\n    replaceTransitionType(options);\n    const { type = keyframes, repeat = 0, repeatDelay = 0, repeatType, velocity = 0 } = options;\n    let { keyframes: keyframes$1 } = options;\n    const generatorFactory = type || keyframes;\n    if (process.env.NODE_ENV !== \"production\" && generatorFactory !== keyframes) {\n      invariant(keyframes$1.length <= 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`, \"spring-two-frames\");\n    }\n    if (generatorFactory !== keyframes && typeof keyframes$1[0] !== \"number\") {\n      this.mixKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));\n      keyframes$1 = [0, 100];\n    }\n    const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n    if (repeatType === \"mirror\") {\n      this.mirroredGenerator = generatorFactory({\n        ...options,\n        keyframes: [...keyframes$1].reverse(),\n        velocity: -velocity\n      });\n    }\n    if (generator.calculatedDuration === null) {\n      generator.calculatedDuration = calcGeneratorDuration(generator);\n    }\n    const { calculatedDuration } = generator;\n    this.calculatedDuration = calculatedDuration;\n    this.resolvedDuration = calculatedDuration + repeatDelay;\n    this.totalDuration = this.resolvedDuration * (repeat + 1) - repeatDelay;\n    this.generator = generator;\n  }\n  updateTime(timestamp) {\n    const animationTime = Math.round(timestamp - this.startTime) * this.playbackSpeed;\n    if (this.holdTime !== null) {\n      this.currentTime = this.holdTime;\n    } else {\n      this.currentTime = animationTime;\n    }\n  }\n  tick(timestamp, sample = false) {\n    const { generator, totalDuration, mixKeyframes, mirroredGenerator, resolvedDuration, calculatedDuration } = this;\n    if (this.startTime === null)\n      return generator.next(0);\n    const { delay = 0, keyframes: keyframes2, repeat, repeatType, repeatDelay, type, onUpdate, finalKeyframe } = this.options;\n    if (this.speed > 0) {\n      this.startTime = Math.min(this.startTime, timestamp);\n    } else if (this.speed < 0) {\n      this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n    }\n    if (sample) {\n      this.currentTime = timestamp;\n    } else {\n      this.updateTime(timestamp);\n    }\n    const timeWithoutDelay = this.currentTime - delay * (this.playbackSpeed >= 0 ? 1 : -1);\n    const isInDelayPhase = this.playbackSpeed >= 0 ? timeWithoutDelay < 0 : timeWithoutDelay > totalDuration;\n    this.currentTime = Math.max(timeWithoutDelay, 0);\n    if (this.state === \"finished\" && this.holdTime === null) {\n      this.currentTime = totalDuration;\n    }\n    let elapsed = this.currentTime;\n    let frameGenerator = generator;\n    if (repeat) {\n      const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n      let currentIteration = Math.floor(progress);\n      let iterationProgress = progress % 1;\n      if (!iterationProgress && progress >= 1) {\n        iterationProgress = 1;\n      }\n      iterationProgress === 1 && currentIteration--;\n      currentIteration = Math.min(currentIteration, repeat + 1);\n      const isOddIteration = Boolean(currentIteration % 2);\n      if (isOddIteration) {\n        if (repeatType === \"reverse\") {\n          iterationProgress = 1 - iterationProgress;\n          if (repeatDelay) {\n            iterationProgress -= repeatDelay / resolvedDuration;\n          }\n        } else if (repeatType === \"mirror\") {\n          frameGenerator = mirroredGenerator;\n        }\n      }\n      elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;\n    }\n    const state = isInDelayPhase ? { done: false, value: keyframes2[0] } : frameGenerator.next(elapsed);\n    if (mixKeyframes) {\n      state.value = mixKeyframes(state.value);\n    }\n    let { done } = state;\n    if (!isInDelayPhase && calculatedDuration !== null) {\n      done = this.playbackSpeed >= 0 ? this.currentTime >= totalDuration : this.currentTime <= 0;\n    }\n    const isAnimationFinished = this.holdTime === null && (this.state === \"finished\" || this.state === \"running\" && done);\n    if (isAnimationFinished && type !== inertia) {\n      state.value = getFinalKeyframe(keyframes2, this.options, finalKeyframe, this.speed);\n    }\n    if (onUpdate) {\n      onUpdate(state.value);\n    }\n    if (isAnimationFinished) {\n      this.finish();\n    }\n    return state;\n  }\n  /**\n   * Allows the returned animation to be awaited or promise-chained. Currently\n   * resolves when the animation finishes at all but in a future update could/should\n   * reject if its cancels.\n   */\n  then(resolve, reject) {\n    return this.finished.then(resolve, reject);\n  }\n  get duration() {\n    return millisecondsToSeconds(this.calculatedDuration);\n  }\n  get time() {\n    return millisecondsToSeconds(this.currentTime);\n  }\n  set time(newTime) {\n    var _a;\n    newTime = secondsToMilliseconds(newTime);\n    this.currentTime = newTime;\n    if (this.startTime === null || this.holdTime !== null || this.playbackSpeed === 0) {\n      this.holdTime = newTime;\n    } else if (this.driver) {\n      this.startTime = this.driver.now() - newTime / this.playbackSpeed;\n    }\n    (_a = this.driver) == null ? void 0 : _a.start(false);\n  }\n  get speed() {\n    return this.playbackSpeed;\n  }\n  set speed(newSpeed) {\n    this.updateTime(time.now());\n    const hasChanged = this.playbackSpeed !== newSpeed;\n    this.playbackSpeed = newSpeed;\n    if (hasChanged) {\n      this.time = millisecondsToSeconds(this.currentTime);\n    }\n  }\n  play() {\n    var _a, _b;\n    if (this.isStopped)\n      return;\n    const { driver = frameloopDriver, startTime } = this.options;\n    if (!this.driver) {\n      this.driver = driver((timestamp) => this.tick(timestamp));\n    }\n    (_b = (_a = this.options).onPlay) == null ? void 0 : _b.call(_a);\n    const now = this.driver.now();\n    if (this.state === \"finished\") {\n      this.updateFinished();\n      this.startTime = now;\n    } else if (this.holdTime !== null) {\n      this.startTime = now - this.holdTime;\n    } else if (!this.startTime) {\n      this.startTime = startTime ?? now;\n    }\n    if (this.state === \"finished\" && this.speed < 0) {\n      this.startTime += this.calculatedDuration;\n    }\n    this.holdTime = null;\n    this.state = \"running\";\n    this.driver.start();\n  }\n  pause() {\n    this.state = \"paused\";\n    this.updateTime(time.now());\n    this.holdTime = this.currentTime;\n  }\n  complete() {\n    if (this.state !== \"running\") {\n      this.play();\n    }\n    this.state = \"finished\";\n    this.holdTime = null;\n  }\n  finish() {\n    var _a, _b;\n    this.notifyFinished();\n    this.teardown();\n    this.state = \"finished\";\n    (_b = (_a = this.options).onComplete) == null ? void 0 : _b.call(_a);\n  }\n  cancel() {\n    var _a, _b;\n    this.holdTime = null;\n    this.startTime = 0;\n    this.tick(0);\n    this.teardown();\n    (_b = (_a = this.options).onCancel) == null ? void 0 : _b.call(_a);\n  }\n  teardown() {\n    this.state = \"idle\";\n    this.stopDriver();\n    this.startTime = this.holdTime = null;\n    activeAnimations.mainThread--;\n  }\n  stopDriver() {\n    if (!this.driver)\n      return;\n    this.driver.stop();\n    this.driver = void 0;\n  }\n  sample(sampleTime) {\n    this.startTime = 0;\n    return this.tick(sampleTime, true);\n  }\n  attachTimeline(timeline) {\n    var _a;\n    if (this.options.allowFlatten) {\n      this.options.type = \"keyframes\";\n      this.options.ease = \"linear\";\n      this.initAnimation();\n    }\n    (_a = this.driver) == null ? void 0 : _a.stop();\n    return timeline.observe(this);\n  }\n}\nfunction animateValue(options) {\n  return new JSAnimation(options);\n}\nexport {\n  JSAnimation,\n  animateValue\n};\n","const isCSSVar = (name) => name.startsWith(\"--\");\nexport {\n  isCSSVar\n};\n","import { isCSSVar } from \"./is-css-var.mjs\";\nfunction setStyle(element, name, value) {\n  isCSSVar(name) ? element.style.setProperty(name, value) : element.style[name] = value;\n}\nexport {\n  setStyle\n};\n","// @__NO_SIDE_EFFECTS__\nfunction memo(callback) {\n  let result;\n  return () => {\n    if (result === void 0)\n      result = callback();\n    return result;\n  };\n}\nexport {\n  memo\n};\n","import { memo } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/memo.mjs\";\nconst supportsScrollTimeline = /* @__PURE__ */ memo(() => window.ScrollTimeline !== void 0);\nexport {\n  supportsScrollTimeline\n};\n","const supportsFlags = {};\nexport {\n  supportsFlags\n};\n","import { supportsFlags } from \"./flags.mjs\";\nimport { memo } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/memo.mjs\";\nfunction memoSupports(callback, supportsFlag) {\n  const memoized = memo(callback);\n  return () => supportsFlags[supportsFlag] ?? memoized();\n}\nexport {\n  memoSupports\n};\n","import { memoSupports } from \"./memo.mjs\";\nconst supportsLinearEasing = /* @__PURE__ */ memoSupports(() => {\n  try {\n    document.createElement(\"div\").animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n  } catch (e) {\n    return false;\n  }\n  return true;\n}, \"linearEasing\");\nexport {\n  supportsLinearEasing\n};\n","const cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nexport {\n  cubicBezierAsString\n};\n","import { cubicBezierAsString } from \"./cubic-bezier.mjs\";\nconst supportedWaapiEasing = {\n  linear: \"linear\",\n  ease: \"ease\",\n  easeIn: \"ease-in\",\n  easeOut: \"ease-out\",\n  easeInOut: \"ease-in-out\",\n  circIn: /* @__PURE__ */ cubicBezierAsString([0, 0.65, 0.55, 1]),\n  circOut: /* @__PURE__ */ cubicBezierAsString([0.55, 0, 1, 0.45]),\n  backIn: /* @__PURE__ */ cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n  backOut: /* @__PURE__ */ cubicBezierAsString([0.33, 1.53, 0.69, 0.99])\n};\nexport {\n  supportedWaapiEasing\n};\n","import { supportsLinearEasing } from \"../../../utils/supports/linear-easing.mjs\";\nimport { generateLinearEasing } from \"../utils/linear.mjs\";\nimport { cubicBezierAsString } from \"./cubic-bezier.mjs\";\nimport { supportedWaapiEasing } from \"./supported.mjs\";\nimport { isBezierDefinition } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\";\nfunction mapEasingToNativeEasing(easing, duration) {\n  if (!easing) {\n    return void 0;\n  } else if (typeof easing === \"function\") {\n    return supportsLinearEasing() ? generateLinearEasing(easing, duration) : \"ease-out\";\n  } else if (isBezierDefinition(easing)) {\n    return cubicBezierAsString(easing);\n  } else if (Array.isArray(easing)) {\n    return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) || supportedWaapiEasing.easeOut);\n  } else {\n    return supportedWaapiEasing[easing];\n  }\n}\nexport {\n  mapEasingToNativeEasing\n};\n","import { activeAnimations } from \"../../stats/animation-count.mjs\";\nimport { statsBuffer } from \"../../stats/buffer.mjs\";\nimport { mapEasingToNativeEasing } from \"./easing/map-easing.mjs\";\nfunction startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease = \"easeOut\", times } = {}, pseudoElement = void 0) {\n  const keyframeOptions = {\n    [valueName]: keyframes\n  };\n  if (times)\n    keyframeOptions.offset = times;\n  const easing = mapEasingToNativeEasing(ease, duration);\n  if (Array.isArray(easing))\n    keyframeOptions.easing = easing;\n  if (statsBuffer.value) {\n    activeAnimations.waapi++;\n  }\n  const options = {\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  if (pseudoElement)\n    options.pseudoElement = pseudoElement;\n  const animation = element.animate(keyframeOptions, options);\n  if (statsBuffer.value) {\n    animation.finished.finally(() => {\n      activeAnimations.waapi--;\n    });\n  }\n  return animation;\n}\nexport {\n  startWaapiAnimation\n};\n","import { supportsLinearEasing } from \"../../../utils/supports/linear-easing.mjs\";\nimport { isGenerator } from \"../../generators/utils/is-generator.mjs\";\nfunction applyGeneratorOptions({ type, ...options }) {\n  if (isGenerator(type) && supportsLinearEasing()) {\n    return type.applyToOptions(options);\n  } else {\n    options.duration ?? (options.duration = 300);\n    options.ease ?? (options.ease = \"easeOut\");\n  }\n  return options;\n}\nexport {\n  applyGeneratorOptions\n};\n","import { setStyle } from \"../render/dom/style-set.mjs\";\nimport { supportsScrollTimeline } from \"../utils/supports/scroll-timeline.mjs\";\nimport { getFinalKeyframe } from \"./keyframes/get-final.mjs\";\nimport { WithPromise } from \"./utils/WithPromise.mjs\";\nimport { startWaapiAnimation } from \"./waapi/start-waapi-animation.mjs\";\nimport { applyGeneratorOptions } from \"./waapi/utils/apply-generator.mjs\";\nimport { invariant } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nimport { millisecondsToSeconds, secondsToMilliseconds } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nimport { noop } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nclass NativeAnimation extends WithPromise {\n  constructor(options) {\n    super();\n    this.finishedTime = null;\n    this.isStopped = false;\n    if (!options)\n      return;\n    const { element, name, keyframes, pseudoElement, allowFlatten = false, finalKeyframe, onComplete } = options;\n    this.isPseudoElement = Boolean(pseudoElement);\n    this.allowFlatten = allowFlatten;\n    this.options = options;\n    invariant(typeof options.type !== \"string\", `Mini animate() doesn't support \"type\" as a string.`, \"mini-spring\");\n    const transition = applyGeneratorOptions(options);\n    this.animation = startWaapiAnimation(element, name, keyframes, transition, pseudoElement);\n    if (transition.autoplay === false) {\n      this.animation.pause();\n    }\n    this.animation.onfinish = () => {\n      this.finishedTime = this.time;\n      if (!pseudoElement) {\n        const keyframe = getFinalKeyframe(keyframes, this.options, finalKeyframe, this.speed);\n        if (this.updateMotionValue) {\n          this.updateMotionValue(keyframe);\n        } else {\n          setStyle(element, name, keyframe);\n        }\n        this.animation.cancel();\n      }\n      onComplete == null ? void 0 : onComplete();\n      this.notifyFinished();\n    };\n  }\n  play() {\n    if (this.isStopped)\n      return;\n    this.animation.play();\n    if (this.state === \"finished\") {\n      this.updateFinished();\n    }\n  }\n  pause() {\n    this.animation.pause();\n  }\n  complete() {\n    var _a, _b;\n    (_b = (_a = this.animation).finish) == null ? void 0 : _b.call(_a);\n  }\n  cancel() {\n    try {\n      this.animation.cancel();\n    } catch (e) {\n    }\n  }\n  stop() {\n    if (this.isStopped)\n      return;\n    this.isStopped = true;\n    const { state } = this;\n    if (state === \"idle\" || state === \"finished\") {\n      return;\n    }\n    if (this.updateMotionValue) {\n      this.updateMotionValue();\n    } else {\n      this.commitStyles();\n    }\n    if (!this.isPseudoElement)\n      this.cancel();\n  }\n  /**\n   * WAAPI doesn't natively have any interruption capabilities.\n   *\n   * In this method, we commit styles back to the DOM before cancelling\n   * the animation.\n   *\n   * This is designed to be overridden by NativeAnimationExtended, which\n   * will create a renderless JS animation and sample it twice to calculate\n   * its current value, \"previous\" value, and therefore allow\n   * Motion to also correctly calculate velocity for any subsequent animation\n   * while deferring the commit until the next animation frame.\n   */\n  commitStyles() {\n    var _a, _b;\n    if (!this.isPseudoElement) {\n      (_b = (_a = this.animation).commitStyles) == null ? void 0 : _b.call(_a);\n    }\n  }\n  get duration() {\n    var _a, _b;\n    const duration = ((_b = (_a = this.animation.effect) == null ? void 0 : _a.getComputedTiming) == null ? void 0 : _b.call(_a).duration) || 0;\n    return millisecondsToSeconds(Number(duration));\n  }\n  get time() {\n    return millisecondsToSeconds(Number(this.animation.currentTime) || 0);\n  }\n  set time(newTime) {\n    this.finishedTime = null;\n    this.animation.currentTime = secondsToMilliseconds(newTime);\n  }\n  /**\n   * The playback speed of the animation.\n   * 1 = normal speed, 2 = double speed, 0.5 = half speed.\n   */\n  get speed() {\n    return this.animation.playbackRate;\n  }\n  set speed(newSpeed) {\n    if (newSpeed < 0)\n      this.finishedTime = null;\n    this.animation.playbackRate = newSpeed;\n  }\n  get state() {\n    return this.finishedTime !== null ? \"finished\" : this.animation.playState;\n  }\n  get startTime() {\n    return Number(this.animation.startTime);\n  }\n  set startTime(newStartTime) {\n    this.animation.startTime = newStartTime;\n  }\n  /**\n   * Attaches a timeline to the animation, for instance the `ScrollTimeline`.\n   */\n  attachTimeline({ timeline, observe }) {\n    var _a;\n    if (this.allowFlatten) {\n      (_a = this.animation.effect) == null ? void 0 : _a.updateTiming({ easing: \"linear\" });\n    }\n    this.animation.onfinish = null;\n    if (timeline && supportsScrollTimeline()) {\n      this.animation.timeline = timeline;\n      return noop;\n    } else {\n      return observe(this);\n    }\n  }\n}\nexport {\n  NativeAnimation\n};\n","import { anticipate } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/anticipate.mjs\";\nimport { backInOut } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/back.mjs\";\nimport { circInOut } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/circ.mjs\";\nconst unsupportedEasingFunctions = {\n  anticipate,\n  backInOut,\n  circInOut\n};\nfunction isUnsupportedEase(key) {\n  return key in unsupportedEasingFunctions;\n}\nfunction replaceStringEasing(transition) {\n  if (typeof transition.ease === \"string\" && isUnsupportedEase(transition.ease)) {\n    transition.ease = unsupportedEasingFunctions[transition.ease];\n  }\n}\nexport {\n  replaceStringEasing\n};\n","import { JSAnimation } from \"./JSAnimation.mjs\";\nimport { NativeAnimation } from \"./NativeAnimation.mjs\";\nimport { replaceTransitionType } from \"./utils/replace-transition-type.mjs\";\nimport { replaceStringEasing } from \"./waapi/utils/unsupported-easing.mjs\";\nimport { secondsToMilliseconds } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nconst sampleDelta = 10;\nclass NativeAnimationExtended extends NativeAnimation {\n  constructor(options) {\n    replaceStringEasing(options);\n    replaceTransitionType(options);\n    super(options);\n    if (options.startTime) {\n      this.startTime = options.startTime;\n    }\n    this.options = options;\n  }\n  /**\n   * WAAPI doesn't natively have any interruption capabilities.\n   *\n   * Rather than read commited styles back out of the DOM, we can\n   * create a renderless JS animation and sample it twice to calculate\n   * its current value, \"previous\" value, and therefore allow\n   * Motion to calculate velocity for any subsequent animation.\n   */\n  updateMotionValue(value) {\n    const { motionValue, onUpdate, onComplete, element, ...options } = this.options;\n    if (!motionValue)\n      return;\n    if (value !== void 0) {\n      motionValue.set(value);\n      return;\n    }\n    const sampleAnimation = new JSAnimation({\n      ...options,\n      autoplay: false\n    });\n    const sampleTime = secondsToMilliseconds(this.finishedTime ?? this.time);\n    motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);\n    sampleAnimation.stop();\n  }\n}\nexport {\n  NativeAnimationExtended\n};\n","import { complex } from \"../../value/types/complex/index.mjs\";\nconst isAnimatable = (value, name) => {\n  if (name === \"zIndex\")\n    return false;\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(\")) {\n    return true;\n  }\n  return false;\n};\nexport {\n  isAnimatable\n};\n","import { isGenerator } from \"../generators/utils/is-generator.mjs\";\nimport { isAnimatable } from \"./is-animatable.mjs\";\nimport { warning } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nfunction hasKeyframesChanged(keyframes) {\n  const current = keyframes[0];\n  if (keyframes.length === 1)\n    return true;\n  for (let i = 0; i < keyframes.length; i++) {\n    if (keyframes[i] !== current)\n      return true;\n  }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n  const originKeyframe = keyframes[0];\n  if (originKeyframe === null)\n    return false;\n  if (name === \"display\" || name === \"visibility\")\n    return true;\n  const targetKeyframe = keyframes[keyframes.length - 1];\n  const isOriginAnimatable = isAnimatable(originKeyframe, name);\n  const isTargetAnimatable = isAnimatable(targetKeyframe, name);\n  warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". \"${isOriginAnimatable ? targetKeyframe : originKeyframe}\" is not an animatable value.`, \"value-not-animatable\");\n  if (!isOriginAnimatable || !isTargetAnimatable) {\n    return false;\n  }\n  return hasKeyframesChanged(keyframes) || (type === \"spring\" || isGenerator(type)) && velocity;\n}\nexport {\n  canAnimate\n};\n","import { memo } from \"../../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/memo.mjs\";\nconst acceleratedValues = /* @__PURE__ */ new Set([\n  \"opacity\",\n  \"clipPath\",\n  \"filter\",\n  \"transform\"\n  // TODO: Could be re-enabled now we have support for linear() easing\n  // \"background-color\"\n]);\nconst supportsWaapi = /* @__PURE__ */ memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\nfunction supportsBrowserAnimation(options) {\n  var _a;\n  const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n  const subject = (_a = motionValue == null ? void 0 : motionValue.owner) == null ? void 0 : _a.current;\n  if (!(subject instanceof HTMLElement)) {\n    return false;\n  }\n  const { onUpdate, transformTemplate } = motionValue.owner.getProps();\n  return supportsWaapi() && name && acceleratedValues.has(name) && (name !== \"transform\" || !transformTemplate) && /**\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  !onUpdate && !repeatDelay && repeatType !== \"mirror\" && damping !== 0 && type !== \"inertia\";\n}\nexport {\n  supportsBrowserAnimation\n};\n","import { time } from \"../frameloop/sync-time.mjs\";\nimport { JSAnimation } from \"./JSAnimation.mjs\";\nimport { getFinalKeyframe } from \"./keyframes/get-final.mjs\";\nimport { KeyframeResolver, flushKeyframeResolvers } from \"./keyframes/KeyframesResolver.mjs\";\nimport { NativeAnimationExtended } from \"./NativeAnimationExtended.mjs\";\nimport { canAnimate } from \"./utils/can-animate.mjs\";\nimport { makeAnimationInstant } from \"./utils/make-animation-instant.mjs\";\nimport { WithPromise } from \"./utils/WithPromise.mjs\";\nimport { supportsBrowserAnimation } from \"./waapi/supports/waapi.mjs\";\nimport { MotionGlobalConfig } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/global-config.mjs\";\nimport { noop } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nconst MAX_RESOLVE_DELAY = 40;\nclass AsyncMotionValueAnimation extends WithPromise {\n  constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", keyframes, name, motionValue, element, ...options }) {\n    var _a;\n    super();\n    this.stop = () => {\n      var _a2, _b;\n      if (this._animation) {\n        this._animation.stop();\n        (_a2 = this.stopTimeline) == null ? void 0 : _a2.call(this);\n      }\n      (_b = this.keyframeResolver) == null ? void 0 : _b.cancel();\n    };\n    this.createdAt = time.now();\n    const optionsWithDefaults = {\n      autoplay,\n      delay,\n      type,\n      repeat,\n      repeatDelay,\n      repeatType,\n      name,\n      motionValue,\n      element,\n      ...options\n    };\n    const KeyframeResolver$1 = (element == null ? void 0 : element.KeyframeResolver) || KeyframeResolver;\n    this.keyframeResolver = new KeyframeResolver$1(keyframes, (resolvedKeyframes, finalKeyframe, forced) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe, optionsWithDefaults, !forced), name, motionValue, element);\n    (_a = this.keyframeResolver) == null ? void 0 : _a.scheduleResolve();\n  }\n  onKeyframesResolved(keyframes, finalKeyframe, options, sync) {\n    this.keyframeResolver = void 0;\n    const { name, type, velocity, delay, isHandoff, onUpdate } = options;\n    this.resolvedAt = time.now();\n    if (!canAnimate(keyframes, name, type, velocity)) {\n      if (MotionGlobalConfig.instantAnimations || !delay) {\n        onUpdate == null ? void 0 : onUpdate(getFinalKeyframe(keyframes, options, finalKeyframe));\n      }\n      keyframes[0] = keyframes[keyframes.length - 1];\n      makeAnimationInstant(options);\n      options.repeat = 0;\n    }\n    const startTime = sync ? !this.resolvedAt ? this.createdAt : this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY ? this.resolvedAt : this.createdAt : void 0;\n    const resolvedOptions = {\n      startTime,\n      finalKeyframe,\n      ...options,\n      keyframes\n    };\n    const animation = !isHandoff && supportsBrowserAnimation(resolvedOptions) ? new NativeAnimationExtended({\n      ...resolvedOptions,\n      element: resolvedOptions.motionValue.owner.current\n    }) : new JSAnimation(resolvedOptions);\n    animation.finished.then(() => this.notifyFinished()).catch(noop);\n    if (this.pendingTimeline) {\n      this.stopTimeline = animation.attachTimeline(this.pendingTimeline);\n      this.pendingTimeline = void 0;\n    }\n    this._animation = animation;\n  }\n  get finished() {\n    if (!this._animation) {\n      return this._finished;\n    } else {\n      return this.animation.finished;\n    }\n  }\n  then(onResolve, _onReject) {\n    return this.finished.finally(onResolve).then(() => {\n    });\n  }\n  get animation() {\n    var _a;\n    if (!this._animation) {\n      (_a = this.keyframeResolver) == null ? void 0 : _a.resume();\n      flushKeyframeResolvers();\n    }\n    return this._animation;\n  }\n  get duration() {\n    return this.animation.duration;\n  }\n  get time() {\n    return this.animation.time;\n  }\n  set time(newTime) {\n    this.animation.time = newTime;\n  }\n  get speed() {\n    return this.animation.speed;\n  }\n  get state() {\n    return this.animation.state;\n  }\n  set speed(newSpeed) {\n    this.animation.speed = newSpeed;\n  }\n  get startTime() {\n    return this.animation.startTime;\n  }\n  attachTimeline(timeline) {\n    if (this._animation) {\n      this.stopTimeline = this.animation.attachTimeline(timeline);\n    } else {\n      this.pendingTimeline = timeline;\n    }\n    return () => this.stop();\n  }\n  play() {\n    this.animation.play();\n  }\n  pause() {\n    this.animation.pause();\n  }\n  complete() {\n    this.animation.complete();\n  }\n  cancel() {\n    var _a;\n    if (this._animation) {\n      this.animation.cancel();\n    }\n    (_a = this.keyframeResolver) == null ? void 0 : _a.cancel();\n  }\n}\nexport {\n  AsyncMotionValueAnimation\n};\n","import { getFinalKeyframe } from \"../animators/waapi/utils/get-final-keyframe.mjs\";\nimport { getDefaultTransition } from \"../utils/default-transitions.mjs\";\nimport { isTransitionDefined } from \"../utils/is-transition-defined.mjs\";\nimport { getValueTransition } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/get-value-transition.mjs\";\nimport { secondsToMilliseconds } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nimport { makeAnimationInstant } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\";\nimport { MotionGlobalConfig } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/global-config.mjs\";\nimport { frame } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nimport { JSAnimation } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/JSAnimation.mjs\";\nimport { AsyncMotionValueAnimation } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs\";\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n  const valueTransition = getValueTransition(transition, name) || {};\n  const delay = valueTransition.delay || transition.delay || 0;\n  let { elapsed = 0 } = transition;\n  elapsed = elapsed - secondsToMilliseconds(delay);\n  const options = {\n    keyframes: Array.isArray(target) ? target : [null, target],\n    ease: \"easeOut\",\n    velocity: value.getVelocity(),\n    ...valueTransition,\n    delay: -elapsed,\n    onUpdate: (v) => {\n      value.set(v);\n      valueTransition.onUpdate && valueTransition.onUpdate(v);\n    },\n    onComplete: () => {\n      onComplete();\n      valueTransition.onComplete && valueTransition.onComplete();\n    },\n    name,\n    motionValue: value,\n    element: isHandoff ? void 0 : element\n  };\n  if (!isTransitionDefined(valueTransition)) {\n    Object.assign(options, getDefaultTransition(name, options));\n  }\n  options.duration && (options.duration = secondsToMilliseconds(options.duration));\n  options.repeatDelay && (options.repeatDelay = secondsToMilliseconds(options.repeatDelay));\n  if (options.from !== void 0) {\n    options.keyframes[0] = options.from;\n  }\n  let shouldSkip = false;\n  if (options.type === false || options.duration === 0 && !options.repeatDelay) {\n    makeAnimationInstant(options);\n    if (options.delay === 0) {\n      shouldSkip = true;\n    }\n  }\n  if (MotionGlobalConfig.instantAnimations || MotionGlobalConfig.skipAnimations) {\n    shouldSkip = true;\n    makeAnimationInstant(options);\n    options.delay = 0;\n  }\n  options.allowFlatten = !valueTransition.type && !valueTransition.ease;\n  if (shouldSkip && !isHandoff && value.get() !== void 0) {\n    const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);\n    if (finalKeyframe !== void 0) {\n      frame.update(() => {\n        options.onUpdate(finalKeyframe);\n        options.onComplete();\n      });\n      return;\n    }\n  }\n  return valueTransition.isSync ? new JSAnimation(options) : new AsyncMotionValueAnimation(options);\n};\nexport {\n  animateMotionValue\n};\n","import { setTarget } from \"../../render/utils/setters.mjs\";\nimport { addValueToWillChange } from \"../../value/use-will-change/add-will-change.mjs\";\nimport { getOptimisedAppearId } from \"../optimized-appear/get-appear-id.mjs\";\nimport { animateMotionValue } from \"./motion-value.mjs\";\nimport { getValueTransition } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/get-value-transition.mjs\";\nimport { frame } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nimport { positionalKeys } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/render/utils/keys-position.mjs\";\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n  const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n  needsAnimating[key] = false;\n  return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n  let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition;\n  if (transitionOverride)\n    transition = transitionOverride;\n  const animations = [];\n  const animationTypeState = type && visualElement.animationState && visualElement.animationState.getState()[type];\n  for (const key in target) {\n    const value = visualElement.getValue(key, visualElement.latestValues[key] ?? null);\n    const valueTarget = target[key];\n    if (valueTarget === void 0 || animationTypeState && shouldBlockAnimation(animationTypeState, key)) {\n      continue;\n    }\n    const valueTransition = {\n      delay,\n      ...getValueTransition(transition || {}, key)\n    };\n    const currentValue = value.get();\n    if (currentValue !== void 0 && !value.isAnimating && !Array.isArray(valueTarget) && valueTarget === currentValue && !valueTransition.velocity) {\n      continue;\n    }\n    let isHandoff = false;\n    if (window.MotionHandoffAnimation) {\n      const appearId = getOptimisedAppearId(visualElement);\n      if (appearId) {\n        const startTime = window.MotionHandoffAnimation(appearId, key, frame);\n        if (startTime !== null) {\n          valueTransition.startTime = startTime;\n          isHandoff = true;\n        }\n      }\n    }\n    addValueToWillChange(visualElement, key);\n    value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && positionalKeys.has(key) ? { type: false } : valueTransition, visualElement, isHandoff));\n    const animation = value.animation;\n    if (animation) {\n      animations.push(animation);\n    }\n  }\n  if (transitionEnd) {\n    Promise.all(animations).then(() => {\n      frame.update(() => {\n        transitionEnd && setTarget(visualElement, transitionEnd);\n      });\n    });\n  }\n  return animations;\n}\nexport {\n  animateTarget\n};\n","import { createBox } from \"../../projection/geometry/models.mjs\";\nimport { VisualElement } from \"../VisualElement.mjs\";\nfunction isObjectKey(key, object) {\n  return key in object;\n}\nclass ObjectVisualElement extends VisualElement {\n  constructor() {\n    super(...arguments);\n    this.type = \"object\";\n  }\n  readValueFromInstance(instance, key) {\n    if (isObjectKey(key, instance)) {\n      const value = instance[key];\n      if (typeof value === \"string\" || typeof value === \"number\") {\n        return value;\n      }\n    }\n    return void 0;\n  }\n  getBaseTargetFromProps() {\n    return void 0;\n  }\n  removeValueFromRenderState(key, renderState) {\n    delete renderState.output[key];\n  }\n  measureInstanceViewportBox() {\n    return createBox();\n  }\n  build(renderState, latestValues) {\n    Object.assign(renderState.output, latestValues);\n  }\n  renderInstance(instance, { output }) {\n    Object.assign(instance, output);\n  }\n  sortInstanceNodePosition() {\n    return 0;\n  }\n}\nexport {\n  ObjectVisualElement\n};\n","function isObject(value) {\n  return typeof value === \"object\" && value !== null;\n}\nexport {\n  isObject\n};\n","import { isObject } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/is-object.mjs\";\nfunction isSVGElement(element) {\n  return isObject(element) && \"ownerSVGElement\" in element;\n}\nexport {\n  isSVGElement\n};\n","import { isSVGElement } from \"./is-svg-element.mjs\";\nfunction isSVGSVGElement(element) {\n  return isSVGElement(element) && element.tagName === \"svg\";\n}\nexport {\n  isSVGSVGElement\n};\n","import { HTMLVisualElement } from \"../../render/html/HTMLVisualElement.mjs\";\nimport { ObjectVisualElement } from \"../../render/object/ObjectVisualElement.mjs\";\nimport { visualElementStore } from \"../../render/store.mjs\";\nimport { SVGVisualElement } from \"../../render/svg/SVGVisualElement.mjs\";\nimport { isSVGElement } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/is-svg-element.mjs\";\nimport { isSVGSVGElement } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/is-svg-svg-element.mjs\";\nfunction createDOMVisualElement(element) {\n  const options = {\n    presenceContext: null,\n    props: {},\n    visualState: {\n      renderState: {\n        transform: {},\n        transformOrigin: {},\n        style: {},\n        vars: {},\n        attrs: {}\n      },\n      latestValues: {}\n    }\n  };\n  const node = isSVGElement(element) && !isSVGSVGElement(element) ? new SVGVisualElement(options) : new HTMLVisualElement(options);\n  node.mount(element);\n  visualElementStore.set(element, node);\n}\nfunction createObjectVisualElement(subject) {\n  const options = {\n    presenceContext: null,\n    props: {},\n    visualState: {\n      renderState: {\n        output: {}\n      },\n      latestValues: {}\n    }\n  };\n  const node = new ObjectVisualElement(options);\n  node.mount(subject);\n  visualElementStore.set(subject, node);\n}\nexport {\n  createDOMVisualElement,\n  createObjectVisualElement\n};\n","import { animateMotionValue } from \"../interfaces/motion-value.mjs\";\nimport { isMotionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nimport { motionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/index.mjs\";\nfunction animateSingleValue(value, keyframes, options) {\n  const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n  motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n  return motionValue$1.animation;\n}\nexport {\n  animateSingleValue\n};\n","import { visualElementStore } from \"../../render/store.mjs\";\nimport { animateTarget } from \"../interfaces/visual-element-target.mjs\";\nimport { createDOMVisualElement, createObjectVisualElement } from \"../utils/create-visual-element.mjs\";\nimport { isDOMKeyframes } from \"../utils/is-dom-keyframes.mjs\";\nimport { resolveSubjects } from \"./resolve-subjects.mjs\";\nimport { animateSingleValue } from \"./single-value.mjs\";\nimport { invariant } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/errors.mjs\";\nimport { isMotionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nfunction isSingleValue(subject, keyframes) {\n  return isMotionValue(subject) || typeof subject === \"number\" || typeof subject === \"string\" && !isDOMKeyframes(keyframes);\n}\nfunction animateSubject(subject, keyframes, options, scope) {\n  const animations = [];\n  if (isSingleValue(subject, keyframes)) {\n    animations.push(animateSingleValue(subject, isDOMKeyframes(keyframes) ? keyframes.default || keyframes : keyframes, options ? options.default || options : options));\n  } else {\n    const subjects = resolveSubjects(subject, keyframes, scope);\n    const numSubjects = subjects.length;\n    invariant(Boolean(numSubjects), \"No valid elements provided.\", \"no-valid-elements\");\n    for (let i = 0; i < numSubjects; i++) {\n      const thisSubject = subjects[i];\n      invariant(thisSubject !== null, \"You're trying to perform an animation on null. Ensure that selectors are correctly finding elements and refs are correctly hydrated.\", \"animate-null\");\n      const createVisualElement = thisSubject instanceof Element ? createDOMVisualElement : createObjectVisualElement;\n      if (!visualElementStore.has(thisSubject)) {\n        createVisualElement(thisSubject);\n      }\n      const visualElement = visualElementStore.get(thisSubject);\n      const transition = { ...options };\n      if (\"delay\" in transition && typeof transition.delay === \"function\") {\n        transition.delay = transition.delay(i, numSubjects);\n      }\n      animations.push(...animateTarget(visualElement, { ...keyframes, transition }, {}));\n    }\n  }\n  return animations;\n}\nexport {\n  animateSubject\n};\n","import { createAnimationsFromSequence } from \"../sequence/create.mjs\";\nimport { animateSubject } from \"./subject.mjs\";\nimport { spring } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/generators/spring/index.mjs\";\nfunction animateSequence(sequence, options, scope) {\n  const animations = [];\n  const animationDefinitions = createAnimationsFromSequence(sequence, options, scope, { spring });\n  animationDefinitions.forEach(({ keyframes, transition }, subject) => {\n    animations.push(...animateSubject(subject, keyframes, transition));\n  });\n  return animations;\n}\nexport {\n  animateSequence\n};\n","class GroupAnimation {\n  constructor(animations) {\n    this.stop = () => this.runAll(\"stop\");\n    this.animations = animations.filter(Boolean);\n  }\n  get finished() {\n    return Promise.all(this.animations.map((animation) => animation.finished));\n  }\n  /**\n   * TODO: Filter out cancelled or stopped animations before returning\n   */\n  getAll(propName) {\n    return this.animations[0][propName];\n  }\n  setAll(propName, newValue) {\n    for (let i = 0; i < this.animations.length; i++) {\n      this.animations[i][propName] = newValue;\n    }\n  }\n  attachTimeline(timeline) {\n    const subscriptions = this.animations.map((animation) => animation.attachTimeline(timeline));\n    return () => {\n      subscriptions.forEach((cancel, i) => {\n        cancel && cancel();\n        this.animations[i].stop();\n      });\n    };\n  }\n  get time() {\n    return this.getAll(\"time\");\n  }\n  set time(time) {\n    this.setAll(\"time\", time);\n  }\n  get speed() {\n    return this.getAll(\"speed\");\n  }\n  set speed(speed) {\n    this.setAll(\"speed\", speed);\n  }\n  get state() {\n    return this.getAll(\"state\");\n  }\n  get startTime() {\n    return this.getAll(\"startTime\");\n  }\n  get duration() {\n    let max = 0;\n    for (let i = 0; i < this.animations.length; i++) {\n      max = Math.max(max, this.animations[i].duration);\n    }\n    return max;\n  }\n  runAll(methodName) {\n    this.animations.forEach((controls) => controls[methodName]());\n  }\n  play() {\n    this.runAll(\"play\");\n  }\n  pause() {\n    this.runAll(\"pause\");\n  }\n  cancel() {\n    this.runAll(\"cancel\");\n  }\n  complete() {\n    this.runAll(\"complete\");\n  }\n}\nexport {\n  GroupAnimation\n};\n","import { GroupAnimation } from \"./GroupAnimation.mjs\";\nclass GroupAnimationWithThen extends GroupAnimation {\n  then(onResolve, _onReject) {\n    return this.finished.finally(onResolve).then(() => {\n    });\n  }\n}\nexport {\n  GroupAnimationWithThen\n};\n","import { animateSequence } from \"./sequence.mjs\";\nimport { animateSubject } from \"./subject.mjs\";\nimport { GroupAnimationWithThen } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/GroupAnimationWithThen.mjs\";\nimport { removeItem } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/array.mjs\";\nfunction isSequence(value) {\n  return Array.isArray(value) && value.some(Array.isArray);\n}\nfunction createScopedAnimate(scope) {\n  function scopedAnimate(subjectOrSequence, optionsOrKeyframes, options) {\n    let animations = [];\n    if (isSequence(subjectOrSequence)) {\n      animations = animateSequence(subjectOrSequence, optionsOrKeyframes, scope);\n    } else {\n      animations = animateSubject(subjectOrSequence, optionsOrKeyframes, options, scope);\n    }\n    const animation = new GroupAnimationWithThen(animations);\n    if (scope) {\n      scope.animations.push(animation);\n      animation.finished.then(() => {\n        removeItem(scope.animations, animation);\n      });\n    }\n    return animation;\n  }\n  return scopedAnimate;\n}\nconst animate = createScopedAnimate();\nexport {\n  animate,\n  createScopedAnimate\n};\n","import { isAnimationControls } from \"../../animation/utils.mjs\";\nimport { Feature } from \"../feature.mjs\";\nimport { mountedStates } from \"../../state/motion-state.mjs\";\nimport { visualElementStore } from \"../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/store.mjs\";\nimport { motionEvent } from \"../../state/event.mjs\";\nimport { style } from \"../../state/style.mjs\";\nimport { transformResetValue } from \"../../state/transform.mjs\";\nimport { hasChanged, resolveVariant } from \"../../state/utils.mjs\";\nimport { isDef } from \"@vueuse/core\";\nimport { createVisualElement } from \"../../state/create-visual-element.mjs\";\nimport { prefersReducedMotion } from \"../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/utils/reduced-motion/state.mjs\";\nimport { calcChildStagger } from \"./calc-child-stagger.mjs\";\nimport { animate } from \"../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/animate/index.mjs\";\nimport { noop } from \"../../external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nconst STATE_TYPES = [\"initial\", \"animate\", \"whileInView\", \"whileHover\", \"whilePress\", \"whileDrag\", \"whileFocus\", \"exit\"];\nclass AnimationFeature extends Feature {\n  constructor(state) {\n    var _a, _b;\n    super(state);\n    this.animateUpdates = ({\n      controlActiveState,\n      directAnimate,\n      directTransition,\n      controlDelay = 0,\n      isExit\n    } = {}) => {\n      const { reducedMotion } = this.state.options.motionConfig;\n      this.state.visualElement.shouldReduceMotion = reducedMotion === \"always\" || reducedMotion === \"user\" && !!prefersReducedMotion.current;\n      const prevTarget = this.state.target;\n      this.state.target = { ...this.state.baseTarget };\n      let animationOptions = {};\n      animationOptions = this.resolveStateAnimation({\n        controlActiveState,\n        directAnimate,\n        directTransition\n      });\n      this.state.finalTransition = animationOptions;\n      const factories = this.createAnimationFactories(prevTarget, animationOptions, controlDelay);\n      const { getChildAnimations } = this.setupChildAnimations(animationOptions, this.state.activeStates);\n      return this.executeAnimations({\n        factories,\n        getChildAnimations,\n        transition: animationOptions,\n        controlActiveState,\n        isExit\n      });\n    };\n    this.state.visualElement = createVisualElement(this.state.options.as, {\n      presenceContext: null,\n      parent: (_a = this.state.parent) == null ? void 0 : _a.visualElement,\n      props: {\n        ...this.state.options,\n        whileTap: this.state.options.whilePress\n      },\n      visualState: {\n        renderState: {\n          transform: {},\n          transformOrigin: {},\n          style: {},\n          vars: {},\n          attrs: {}\n        },\n        latestValues: {\n          ...this.state.baseTarget\n        }\n      },\n      reducedMotionConfig: this.state.options.motionConfig.reducedMotion\n    });\n    (_b = this.state.visualElement.parent) == null ? void 0 : _b.addChild(this.state.visualElement);\n    this.state.animateUpdates = this.animateUpdates;\n    if (this.state.isMounted())\n      this.state.startAnimation();\n  }\n  updateAnimationControlsSubscription() {\n    const { animate: animate2 } = this.state.options;\n    if (isAnimationControls(animate2)) {\n      this.unmountControls = animate2.subscribe(this.state);\n    }\n  }\n  executeAnimations({\n    factories,\n    getChildAnimations,\n    transition,\n    controlActiveState,\n    isExit = false\n  }) {\n    const getAnimation = () => Promise.all(factories.map((factory) => factory()).filter(Boolean));\n    const animationTarget = { ...this.state.target };\n    const element = this.state.element;\n    const finishAnimation = (animationPromise) => {\n      var _a, _b;\n      element.dispatchEvent(motionEvent(\"motionstart\", animationTarget));\n      (_b = (_a = this.state.options).onAnimationStart) == null ? void 0 : _b.call(_a, animationTarget);\n      animationPromise.then(() => {\n        var _a2, _b2;\n        element.dispatchEvent(motionEvent(\"motioncomplete\", animationTarget, isExit));\n        (_b2 = (_a2 = this.state.options).onAnimationComplete) == null ? void 0 : _b2.call(_a2, animationTarget);\n      }).catch(noop);\n    };\n    const getAnimationPromise = () => {\n      const animationPromise = (transition == null ? void 0 : transition.when) ? (transition.when === \"beforeChildren\" ? getAnimation() : getChildAnimations()).then(() => transition.when === \"beforeChildren\" ? getChildAnimations() : getAnimation()) : Promise.all([getAnimation(), getChildAnimations()]);\n      finishAnimation(animationPromise);\n      return animationPromise;\n    };\n    return controlActiveState ? getAnimationPromise : getAnimationPromise();\n  }\n  /**\n   * Setup child animations\n   */\n  setupChildAnimations(transition, controlActiveState) {\n    var _a;\n    const visualElement = this.state.visualElement;\n    if (!((_a = visualElement.variantChildren) == null ? void 0 : _a.size) || !controlActiveState)\n      return { getChildAnimations: () => Promise.resolve() };\n    const { staggerChildren = 0, staggerDirection = 1, delayChildren = 0 } = transition || {};\n    const numChildren = visualElement.variantChildren.size;\n    const maxStaggerDuration = (numChildren - 1) * staggerChildren;\n    const delayIsFunction = typeof delayChildren === \"function\";\n    const generateStaggerDuration = delayIsFunction ? (i) => delayChildren(i, numChildren) : staggerDirection === 1 ? (i = 0) => i * staggerChildren : (i = 0) => maxStaggerDuration - i * staggerChildren;\n    const childAnimations = Array.from(visualElement.variantChildren).map((child, index) => {\n      return child.state.animateUpdates({\n        controlActiveState,\n        controlDelay: (delayIsFunction ? 0 : delayChildren) + generateStaggerDuration(index)\n      });\n    });\n    return {\n      getChildAnimations: () => Promise.all(childAnimations.map((animation) => {\n        return animation();\n      }))\n    };\n  }\n  createAnimationFactories(prevTarget, animationOptions, controlDelay) {\n    const factories = [];\n    Object.keys(this.state.target).forEach((key) => {\n      var _a;\n      if (!hasChanged(prevTarget[key], this.state.target[key]))\n        return;\n      (_a = this.state.baseTarget)[key] ?? (_a[key] = style.get(this.state.element, key));\n      const keyValue = this.state.target[key] === \"none\" && isDef(transformResetValue[key]) ? transformResetValue[key] : this.state.target[key];\n      factories.push(() => {\n        var _a2;\n        return animate(\n          this.state.element,\n          { [key]: keyValue },\n          {\n            ...(animationOptions == null ? void 0 : animationOptions[key]) || animationOptions,\n            delay: (((_a2 = animationOptions == null ? void 0 : animationOptions[key]) == null ? void 0 : _a2.delay) || (animationOptions == null ? void 0 : animationOptions.delay) || 0) + controlDelay\n          }\n        );\n      });\n    });\n    return factories;\n  }\n  resolveStateAnimation({\n    controlActiveState,\n    directAnimate,\n    directTransition\n  }) {\n    let variantTransition = this.state.options.transition;\n    let variant = {};\n    const { variants, custom, transition, animatePresenceContext } = this.state.options;\n    const customValue = custom ?? (animatePresenceContext == null ? void 0 : animatePresenceContext.custom);\n    this.state.activeStates = { ...this.state.activeStates, ...controlActiveState };\n    STATE_TYPES.forEach((name) => {\n      if (!this.state.activeStates[name] || isAnimationControls(this.state.options[name]))\n        return;\n      const definition = this.state.options[name];\n      let resolvedVariant = isDef(definition) ? resolveVariant(definition, variants, customValue) : void 0;\n      if (this.state.visualElement.isVariantNode) {\n        const controlVariant = resolveVariant(this.state.context[name], variants, customValue);\n        resolvedVariant = controlVariant ? Object.assign(controlVariant || {}, resolvedVariant) : Object.assign(variant, resolvedVariant);\n      }\n      if (!resolvedVariant)\n        return;\n      if (name !== \"initial\")\n        variantTransition = resolvedVariant.transition || this.state.options.transition || {};\n      variant = Object.assign(variant, resolvedVariant);\n    });\n    if (directAnimate) {\n      variant = resolveVariant(directAnimate, variants, customValue);\n      variantTransition = variant.transition || directTransition || transition;\n    }\n    Object.entries(variant).forEach(([key, value]) => {\n      if (key === \"transition\")\n        return;\n      this.state.target[key] = value;\n    });\n    return variantTransition;\n  }\n  /**\n   * Subscribe any provided AnimationControls to the component's VisualElement\n   */\n  mount() {\n    var _a, _b;\n    const { element } = this.state;\n    mountedStates.set(element, this.state);\n    if (!visualElementStore.get(element)) {\n      this.state.visualElement.mount(element);\n      visualElementStore.set(element, this.state.visualElement);\n    }\n    this.state.visualElement.state = this.state;\n    this.updateAnimationControlsSubscription();\n    const visualElement = this.state.visualElement;\n    const parentVisualElement = visualElement.parent;\n    visualElement.enteringChildren = void 0;\n    if (((_a = this.state.parent) == null ? void 0 : _a.isMounted()) && !visualElement.isControllingVariants && ((_b = parentVisualElement == null ? void 0 : parentVisualElement.enteringChildren) == null ? void 0 : _b.has(visualElement))) {\n      const { delayChildren } = this.state.parent.finalTransition || {};\n      this.animateUpdates({\n        controlActiveState: this.state.parent.activeStates,\n        controlDelay: calcChildStagger(parentVisualElement.enteringChildren, visualElement, delayChildren)\n      })();\n    }\n  }\n  update() {\n    const { animate: animate2 } = this.state.options;\n    const { animate: prevAnimate } = this.state.visualElement.prevProps || {};\n    if (animate2 !== prevAnimate) {\n      this.updateAnimationControlsSubscription();\n    }\n  }\n  unmount() {\n    var _a;\n    (_a = this.unmountControls) == null ? void 0 : _a.call(this);\n  }\n}\nexport {\n  AnimationFeature\n};\n","import { isObject } from \"../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/is-object.mjs\";\nfunction isHTMLElement(element) {\n  return isObject(element) && \"offsetHeight\" in element;\n}\nexport {\n  isHTMLElement\n};\n","const isDragging = {\n  x: false,\n  y: false\n};\nfunction isDragActive() {\n  return isDragging.x || isDragging.y;\n}\nexport {\n  isDragActive,\n  isDragging\n};\n","const isNodeOrChild = (parent, child) => {\n  if (!child) {\n    return false;\n  } else if (parent === child) {\n    return true;\n  } else {\n    return isNodeOrChild(parent, child.parentElement);\n  }\n};\nexport {\n  isNodeOrChild\n};\n","const isPrimaryPointer = (event) => {\n  if (event.pointerType === \"mouse\") {\n    return typeof event.button !== \"number\" || event.button <= 0;\n  } else {\n    return event.isPrimary !== false;\n  }\n};\nexport {\n  isPrimaryPointer\n};\n","import { resolveElements } from \"../../utils/resolve-elements.mjs\";\nfunction setupGesture(elementOrSelector, options) {\n  const elements = resolveElements(elementOrSelector);\n  const gestureAbortController = new AbortController();\n  const eventOptions = {\n    passive: true,\n    ...options,\n    signal: gestureAbortController.signal\n  };\n  const cancel = () => gestureAbortController.abort();\n  return [elements, eventOptions, cancel];\n}\nexport {\n  setupGesture\n};\n","const focusableElements = /* @__PURE__ */ new Set([\n  \"BUTTON\",\n  \"INPUT\",\n  \"SELECT\",\n  \"TEXTAREA\",\n  \"A\"\n]);\nfunction isElementKeyboardAccessible(element) {\n  return focusableElements.has(element.tagName) || element.tabIndex !== -1;\n}\nexport {\n  isElementKeyboardAccessible\n};\n","const isPressing = /* @__PURE__ */ new WeakSet();\nexport {\n  isPressing\n};\n","import { isPressing } from \"./state.mjs\";\nfunction filterEvents(callback) {\n  return (event) => {\n    if (event.key !== \"Enter\")\n      return;\n    callback(event);\n  };\n}\nfunction firePointerEvent(target, type) {\n  target.dispatchEvent(new PointerEvent(\"pointer\" + type, { isPrimary: true, bubbles: true }));\n}\nconst enableKeyboardPress = (focusEvent, eventOptions) => {\n  const element = focusEvent.currentTarget;\n  if (!element)\n    return;\n  const handleKeydown = filterEvents(() => {\n    if (isPressing.has(element))\n      return;\n    firePointerEvent(element, \"down\");\n    const handleKeyup = filterEvents(() => {\n      firePointerEvent(element, \"up\");\n    });\n    const handleBlur = () => firePointerEvent(element, \"cancel\");\n    element.addEventListener(\"keyup\", handleKeyup, eventOptions);\n    element.addEventListener(\"blur\", handleBlur, eventOptions);\n  });\n  element.addEventListener(\"keydown\", handleKeydown, eventOptions);\n  element.addEventListener(\"blur\", () => element.removeEventListener(\"keydown\", handleKeydown), eventOptions);\n};\nexport {\n  enableKeyboardPress\n};\n","import { isHTMLElement } from \"../../utils/is-html-element.mjs\";\nimport { isDragActive } from \"../drag/state/is-active.mjs\";\nimport { isNodeOrChild } from \"../utils/is-node-or-child.mjs\";\nimport { isPrimaryPointer } from \"../utils/is-primary-pointer.mjs\";\nimport { setupGesture } from \"../utils/setup.mjs\";\nimport { isElementKeyboardAccessible } from \"./utils/is-keyboard-accessible.mjs\";\nimport { enableKeyboardPress } from \"./utils/keyboard.mjs\";\nimport { isPressing } from \"./utils/state.mjs\";\nfunction isValidPressEvent(event) {\n  return isPrimaryPointer(event) && !isDragActive();\n}\nfunction press(targetOrSelector, onPressStart, options = {}) {\n  const [targets, eventOptions, cancelEvents] = setupGesture(targetOrSelector, options);\n  const startPress = (startEvent) => {\n    const target = startEvent.currentTarget;\n    if (!isValidPressEvent(startEvent))\n      return;\n    isPressing.add(target);\n    const onPressEnd = onPressStart(target, startEvent);\n    const onPointerEnd = (endEvent, success) => {\n      window.removeEventListener(\"pointerup\", onPointerUp);\n      window.removeEventListener(\"pointercancel\", onPointerCancel);\n      if (isPressing.has(target)) {\n        isPressing.delete(target);\n      }\n      if (!isValidPressEvent(endEvent)) {\n        return;\n      }\n      if (typeof onPressEnd === \"function\") {\n        onPressEnd(endEvent, { success });\n      }\n    };\n    const onPointerUp = (upEvent) => {\n      onPointerEnd(upEvent, target === window || target === document || options.useGlobalTarget || isNodeOrChild(target, upEvent.target));\n    };\n    const onPointerCancel = (cancelEvent) => {\n      onPointerEnd(cancelEvent, false);\n    };\n    window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n    window.addEventListener(\"pointercancel\", onPointerCancel, eventOptions);\n  };\n  targets.forEach((target) => {\n    const pointerDownTarget = options.useGlobalTarget ? window : target;\n    pointerDownTarget.addEventListener(\"pointerdown\", startPress, eventOptions);\n    if (isHTMLElement(target)) {\n      target.addEventListener(\"focus\", (event) => enableKeyboardPress(event, eventOptions));\n      if (!isElementKeyboardAccessible(target) && !target.hasAttribute(\"tabindex\")) {\n        target.tabIndex = 0;\n      }\n    }\n  });\n  return cancelEvents;\n}\nexport {\n  press\n};\n","import { Feature } from \"../../feature.mjs\";\nimport { press } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/press/index.mjs\";\nimport { frame } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nfunction extractEventInfo(event) {\n  return {\n    point: {\n      x: event.pageX,\n      y: event.pageY\n    }\n  };\n}\nfunction handlePressEvent(state, event, lifecycle) {\n  const props = state.options;\n  if (props.whilePress) {\n    state.setActive(\"whilePress\", lifecycle === \"Start\");\n  }\n  const eventName = `onPress${lifecycle === \"End\" ? \"\" : lifecycle}`;\n  const callback = props[eventName];\n  if (callback) {\n    frame.postRender(() => callback(event, extractEventInfo(event)));\n  }\n}\nclass PressGesture extends Feature {\n  isActive() {\n    const { whilePress, onPress, onPressCancel, onPressStart } = this.state.options;\n    return Boolean(whilePress || onPress || onPressCancel || onPressStart);\n  }\n  constructor(state) {\n    super(state);\n  }\n  mount() {\n    this.register();\n  }\n  update() {\n    const { whilePress, onPress, onPressCancel, onPressStart } = this.state.options;\n    if (!(whilePress || onPress || onPressCancel || onPressStart)) {\n      this.register();\n    }\n  }\n  register() {\n    const element = this.state.element;\n    if (!element || !this.isActive())\n      return;\n    this.unmount();\n    this.unmount = press(\n      element,\n      (el, startEvent) => {\n        handlePressEvent(this.state, startEvent, \"Start\");\n        return (endEvent, { success }) => handlePressEvent(\n          this.state,\n          endEvent,\n          success ? \"End\" : \"Cancel\"\n        );\n      },\n      { useGlobalTarget: this.state.options.globalPressTarget }\n    );\n  }\n}\nexport {\n  PressGesture,\n  extractEventInfo\n};\n","import { isDragActive } from \"./drag/state/is-active.mjs\";\nimport { setupGesture } from \"./utils/setup.mjs\";\nfunction isValidHover(event) {\n  return !(event.pointerType === \"touch\" || isDragActive());\n}\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n  const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options);\n  const onPointerEnter = (enterEvent) => {\n    if (!isValidHover(enterEvent))\n      return;\n    const { target } = enterEvent;\n    const onHoverEnd = onHoverStart(target, enterEvent);\n    if (typeof onHoverEnd !== \"function\" || !target)\n      return;\n    const onPointerLeave = (leaveEvent) => {\n      if (!isValidHover(leaveEvent))\n        return;\n      onHoverEnd(leaveEvent);\n      target.removeEventListener(\"pointerleave\", onPointerLeave);\n    };\n    target.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n  };\n  elements.forEach((element) => {\n    element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n  });\n  return cancel;\n}\nexport {\n  hover\n};\n","import { Feature } from \"../../feature.mjs\";\nimport { hover } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/gestures/hover.mjs\";\nimport { extractEventInfo } from \"../press/index.mjs\";\nimport { frame } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nfunction handleHoverEvent(state, event, lifecycle) {\n  const props = state.options;\n  if (props.whileHover) {\n    state.setActive(\"whileHover\", lifecycle === \"Start\");\n  }\n  const eventName = `onHover${lifecycle}`;\n  const callback = props[eventName];\n  if (callback) {\n    frame.postRender(() => callback(event, extractEventInfo(event)));\n  }\n}\nclass HoverGesture extends Feature {\n  isActive() {\n    const { whileHover, onHoverStart, onHoverEnd } = this.state.options;\n    return Boolean(whileHover || onHoverStart || onHoverEnd);\n  }\n  constructor(state) {\n    super(state);\n  }\n  mount() {\n    this.register();\n  }\n  update() {\n    const { whileHover, onHoverStart, onHoverEnd } = this.state.visualElement.prevProps;\n    if (!(whileHover || onHoverStart || onHoverEnd)) {\n      this.register();\n    }\n  }\n  register() {\n    const element = this.state.element;\n    if (!element || !this.isActive())\n      return;\n    this.unmount();\n    this.unmount = hover(\n      element,\n      (el, startEvent) => {\n        handleHoverEvent(this.state, startEvent, \"Start\");\n        return (endEvent) => {\n          handleHoverEvent(this.state, endEvent, \"End\");\n        };\n      }\n    );\n  }\n}\nexport {\n  HoverGesture\n};\n","import { resolveElements } from \"../../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/resolve-elements.mjs\";\nconst thresholds = {\n  some: 0,\n  all: 1\n};\nfunction inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = \"some\" } = {}) {\n  const elements = resolveElements(elementOrSelector);\n  const activeIntersections = /* @__PURE__ */ new WeakMap();\n  const onIntersectionChange = (entries) => {\n    entries.forEach((entry) => {\n      const onEnd = activeIntersections.get(entry.target);\n      if (entry.isIntersecting === Boolean(onEnd))\n        return;\n      if (entry.isIntersecting) {\n        const newOnEnd = onStart(entry.target, entry);\n        if (typeof newOnEnd === \"function\") {\n          activeIntersections.set(entry.target, newOnEnd);\n        } else {\n          observer.unobserve(entry.target);\n        }\n      } else if (typeof onEnd === \"function\") {\n        onEnd(entry);\n        activeIntersections.delete(entry.target);\n      }\n    });\n  };\n  const observer = new IntersectionObserver(onIntersectionChange, {\n    root,\n    rootMargin,\n    threshold: typeof amount === \"number\" ? amount : thresholds[amount]\n  });\n  elements.forEach((element) => observer.observe(element));\n  return () => observer.disconnect();\n}\nexport {\n  inView\n};\n","import { Feature } from \"../../feature.mjs\";\nimport { inView } from \"../../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/render/dom/viewport/index.mjs\";\nimport { frame } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nfunction handleHoverEvent(state, entry, lifecycle) {\n  const props = state.options;\n  if (props.whileInView) {\n    state.setActive(\"whileInView\", lifecycle === \"Enter\");\n  }\n  const eventName = `onViewport${lifecycle}`;\n  const callback = props[eventName];\n  if (callback) {\n    frame.postRender(() => callback(entry));\n  }\n}\nclass InViewGesture extends Feature {\n  isActive() {\n    const { whileInView, onViewportEnter, onViewportLeave } = this.state.options;\n    return Boolean(whileInView || onViewportEnter || onViewportLeave);\n  }\n  constructor(state) {\n    super(state);\n  }\n  startObserver() {\n    const element = this.state.element;\n    if (!element || !this.isActive())\n      return;\n    this.unmount();\n    const { once, ...viewOptions } = this.state.options.inViewOptions || {};\n    this.unmount = inView(\n      element,\n      (_, entry) => {\n        handleHoverEvent(this.state, entry, \"Enter\");\n        if (!once) {\n          return (endEvent) => {\n            handleHoverEvent(this.state, entry, \"Leave\");\n          };\n        }\n      },\n      viewOptions\n    );\n  }\n  mount() {\n    this.startObserver();\n  }\n  update() {\n    const { props, prevProps } = this.state.visualElement;\n    const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(\n      hasViewportOptionChanged(props, prevProps)\n    );\n    if (hasOptionsChanged) {\n      this.startObserver();\n    }\n  }\n}\nfunction hasViewportOptionChanged({ inViewOptions = {} }, { inViewOptions: prevViewport = {} } = {}) {\n  return (name) => inViewOptions[name] !== prevViewport[name];\n}\nexport {\n  InViewGesture\n};\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n  target.addEventListener(eventName, handler, options);\n  return () => target.removeEventListener(eventName, handler);\n}\nexport {\n  addDomEvent\n};\n","import { addDomEvent } from \"../../../events/add-dom-event.mjs\";\nimport { Feature } from \"../../feature.mjs\";\nimport { pipe } from \"../../../external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/pipe.mjs\";\nclass FocusGesture extends Feature {\n  constructor() {\n    super(...arguments);\n    this.isActive = false;\n  }\n  onFocus() {\n    let isFocusVisible = false;\n    try {\n      isFocusVisible = this.state.element.matches(\":focus-visible\");\n    } catch (e) {\n      isFocusVisible = true;\n    }\n    if (!isFocusVisible)\n      return;\n    this.state.setActive(\"whileFocus\", true);\n    this.isActive = true;\n  }\n  onBlur() {\n    if (!this.isActive)\n      return;\n    this.state.setActive(\"whileFocus\", false);\n    this.isActive = false;\n  }\n  mount() {\n    this.unmount = pipe(\n      addDomEvent(this.state.element, \"focus\", () => this.onFocus()),\n      addDomEvent(this.state.element, \"blur\", () => this.onBlur())\n    );\n  }\n}\nexport {\n  FocusGesture\n};\n","const compareByDepth = (a, b) => a.depth - b.depth;\nexport {\n  compareByDepth\n};\n","import { compareByDepth } from \"./compare-by-depth.mjs\";\nimport { addUniqueItem, removeItem } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/array.mjs\";\nclass FlatTree {\n  constructor() {\n    this.children = [];\n    this.isDirty = false;\n  }\n  add(child) {\n    addUniqueItem(this.children, child);\n    this.isDirty = true;\n  }\n  remove(child) {\n    removeItem(this.children, child);\n    this.isDirty = true;\n  }\n  forEach(callback) {\n    this.isDirty && this.children.sort(compareByDepth);\n    this.isDirty = false;\n    this.children.forEach(callback);\n  }\n}\nexport {\n  FlatTree\n};\n","import { isMotionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nfunction resolveMotionValue(value) {\n  return isMotionValue(value) ? value.get() : value;\n}\nexport {\n  resolveMotionValue\n};\n","import { mixNumber } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs\";\nimport { percent, px } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/numbers/units.mjs\";\nimport { progress } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/progress.mjs\";\nimport { circOut } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/easing/circ.mjs\";\nimport { noop } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress2, shouldCrossfadeOpacity, isOnlyMember) {\n  if (shouldCrossfadeOpacity) {\n    target.opacity = mixNumber(0, lead.opacity ?? 1, easeCrossfadeIn(progress2));\n    target.opacityExit = mixNumber(follow.opacity ?? 1, 0, easeCrossfadeOut(progress2));\n  } else if (isOnlyMember) {\n    target.opacity = mixNumber(follow.opacity ?? 1, lead.opacity ?? 1, progress2);\n  }\n  for (let i = 0; i < numBorders; i++) {\n    const borderLabel = `border${borders[i]}Radius`;\n    let followRadius = getRadius(follow, borderLabel);\n    let leadRadius = getRadius(lead, borderLabel);\n    if (followRadius === void 0 && leadRadius === void 0)\n      continue;\n    followRadius || (followRadius = 0);\n    leadRadius || (leadRadius = 0);\n    const canMix = followRadius === 0 || leadRadius === 0 || isPx(followRadius) === isPx(leadRadius);\n    if (canMix) {\n      target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress2), 0);\n      if (percent.test(leadRadius) || percent.test(followRadius)) {\n        target[borderLabel] += \"%\";\n      }\n    } else {\n      target[borderLabel] = leadRadius;\n    }\n  }\n  if (follow.rotate || lead.rotate) {\n    target.rotate = mixNumber(follow.rotate || 0, lead.rotate || 0, progress2);\n  }\n}\nfunction getRadius(values, radiusName) {\n  return values[radiusName] !== void 0 ? values[radiusName] : values.borderRadius;\n}\nconst easeCrossfadeIn = /* @__PURE__ */ compress(0, 0.5, circOut);\nconst easeCrossfadeOut = /* @__PURE__ */ compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n  return (p) => {\n    if (p < min)\n      return 0;\n    if (p > max)\n      return 1;\n    return easing(progress(min, max, p));\n  };\n}\nexport {\n  mixValues\n};\n","function copyAxisInto(axis, originAxis) {\n  axis.min = originAxis.min;\n  axis.max = originAxis.max;\n}\nfunction copyBoxInto(box, originBox) {\n  copyAxisInto(box.x, originBox.x);\n  copyAxisInto(box.y, originBox.y);\n}\nfunction copyAxisDeltaInto(delta, originDelta) {\n  delta.translate = originDelta.translate;\n  delta.scale = originDelta.scale;\n  delta.originPoint = originDelta.originPoint;\n  delta.origin = originDelta.origin;\n}\nexport {\n  copyAxisDeltaInto,\n  copyAxisInto,\n  copyBoxInto\n};\n","function isIdentityScale(scale) {\n  return scale === void 0 || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n  return !isIdentityScale(scale) || !isIdentityScale(scaleX) || !isIdentityScale(scaleY);\n}\nfunction hasTransform(values) {\n  return hasScale(values) || has2DTranslate(values) || values.z || values.rotate || values.rotateX || values.rotateY || values.skewX || values.skewY;\n}\nfunction has2DTranslate(values) {\n  return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n  return value && value !== \"0%\";\n}\nexport {\n  has2DTranslate,\n  hasScale,\n  hasTransform\n};\n","import { hasTransform } from \"../utils/has-transform.mjs\";\nimport { mixNumber } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs\";\nfunction scalePoint(point, scale, originPoint) {\n  const distanceFromOrigin = point - originPoint;\n  const scaled = scale * distanceFromOrigin;\n  return originPoint + scaled;\n}\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n  if (boxScale !== void 0) {\n    point = scalePoint(point, boxScale, originPoint);\n  }\n  return scalePoint(point, scale, originPoint) + translate;\n}\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n  axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n  axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\nfunction applyBoxDelta(box, { x, y }) {\n  applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n  applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\nconst TREE_SCALE_SNAP_MIN = 0.999999999999;\nconst TREE_SCALE_SNAP_MAX = 1.0000000000001;\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n  const treeLength = treePath.length;\n  if (!treeLength)\n    return;\n  treeScale.x = treeScale.y = 1;\n  let node;\n  let delta;\n  for (let i = 0; i < treeLength; i++) {\n    node = treePath[i];\n    delta = node.projectionDelta;\n    const { visualElement } = node.options;\n    if (visualElement && visualElement.props.style && visualElement.props.style.display === \"contents\") {\n      continue;\n    }\n    if (isSharedTransition && node.options.layoutScroll && node.scroll && node !== node.root) {\n      transformBox(box, {\n        x: -node.scroll.offset.x,\n        y: -node.scroll.offset.y\n      });\n    }\n    if (delta) {\n      treeScale.x *= delta.x.scale;\n      treeScale.y *= delta.y.scale;\n      applyBoxDelta(box, delta);\n    }\n    if (isSharedTransition && hasTransform(node.latestValues)) {\n      transformBox(box, node.latestValues);\n    }\n  }\n  if (treeScale.x < TREE_SCALE_SNAP_MAX && treeScale.x > TREE_SCALE_SNAP_MIN) {\n    treeScale.x = 1;\n  }\n  if (treeScale.y < TREE_SCALE_SNAP_MAX && treeScale.y > TREE_SCALE_SNAP_MIN) {\n    treeScale.y = 1;\n  }\n}\nfunction translateAxis(axis, distance) {\n  axis.min = axis.min + distance;\n  axis.max = axis.max + distance;\n}\nfunction transformAxis(axis, axisTranslate, axisScale, boxScale, axisOrigin = 0.5) {\n  const originPoint = mixNumber(axis.min, axis.max, axisOrigin);\n  applyAxisDelta(axis, axisTranslate, axisScale, originPoint, boxScale);\n}\nfunction transformBox(box, transform) {\n  transformAxis(box.x, transform.x, transform.scaleX, transform.scale, transform.originX);\n  transformAxis(box.y, transform.y, transform.scaleY, transform.scale, transform.originY);\n}\nexport {\n  applyAxisDelta,\n  applyBoxDelta,\n  applyPointDelta,\n  applyTreeDeltas,\n  scalePoint,\n  transformAxis,\n  transformBox,\n  translateAxis\n};\n","import { mixNumber } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs\";\nconst SCALE_PRECISION = 1e-4;\nconst SCALE_MIN = 1 - SCALE_PRECISION;\nconst SCALE_MAX = 1 + SCALE_PRECISION;\nconst TRANSLATE_PRECISION = 0.01;\nconst TRANSLATE_MIN = 0 - TRANSLATE_PRECISION;\nconst TRANSLATE_MAX = 0 + TRANSLATE_PRECISION;\nfunction calcLength(axis) {\n  return axis.max - axis.min;\n}\nfunction isNear(value, target, maxDistance) {\n  return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n  delta.origin = origin;\n  delta.originPoint = mixNumber(source.min, source.max, delta.origin);\n  delta.scale = calcLength(target) / calcLength(source);\n  delta.translate = mixNumber(target.min, target.max, delta.origin) - delta.originPoint;\n  if (delta.scale >= SCALE_MIN && delta.scale <= SCALE_MAX || isNaN(delta.scale)) {\n    delta.scale = 1;\n  }\n  if (delta.translate >= TRANSLATE_MIN && delta.translate <= TRANSLATE_MAX || isNaN(delta.translate)) {\n    delta.translate = 0;\n  }\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n  calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : void 0);\n  calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : void 0);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n  target.min = parent.min + relative.min;\n  target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n  calcRelativeAxis(target.x, relative.x, parent.x);\n  calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n  target.min = layout.min - parent.min;\n  target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n  calcRelativeAxisPosition(target.x, layout.x, parent.x);\n  calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\nexport {\n  calcAxisDelta,\n  calcBoxDelta,\n  calcLength,\n  calcRelativeAxis,\n  calcRelativeAxisPosition,\n  calcRelativeBox,\n  calcRelativePosition,\n  isNear\n};\n","import { scalePoint } from \"./delta-apply.mjs\";\nimport { percent } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/numbers/units.mjs\";\nimport { mixNumber } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs\";\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n  point -= translate;\n  point = scalePoint(point, 1 / scale, originPoint);\n  if (boxScale !== void 0) {\n    point = scalePoint(point, 1 / boxScale, originPoint);\n  }\n  return point;\n}\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n  if (percent.test(translate)) {\n    translate = parseFloat(translate);\n    const relativeProgress = mixNumber(sourceAxis.min, sourceAxis.max, translate / 100);\n    translate = relativeProgress - sourceAxis.min;\n  }\n  if (typeof translate !== \"number\")\n    return;\n  let originPoint = mixNumber(originAxis.min, originAxis.max, origin);\n  if (axis === originAxis)\n    originPoint -= translate;\n  axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n  axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n  removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n  removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : void 0, sourceBox ? sourceBox.x : void 0);\n  removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : void 0, sourceBox ? sourceBox.y : void 0);\n}\nexport {\n  removeAxisDelta,\n  removeAxisTransforms,\n  removeBoxTransforms,\n  removePointDelta\n};\n","import { calcLength } from \"./delta-calc.mjs\";\nfunction isAxisDeltaZero(delta) {\n  return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n  return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction axisEquals(a, b) {\n  return a.min === b.min && a.max === b.max;\n}\nfunction boxEquals(a, b) {\n  return axisEquals(a.x, b.x) && axisEquals(a.y, b.y);\n}\nfunction axisEqualsRounded(a, b) {\n  return Math.round(a.min) === Math.round(b.min) && Math.round(a.max) === Math.round(b.max);\n}\nfunction boxEqualsRounded(a, b) {\n  return axisEqualsRounded(a.x, b.x) && axisEqualsRounded(a.y, b.y);\n}\nfunction aspectRatio(box) {\n  return calcLength(box.x) / calcLength(box.y);\n}\nfunction axisDeltaEquals(a, b) {\n  return a.translate === b.translate && a.scale === b.scale && a.originPoint === b.originPoint;\n}\nexport {\n  aspectRatio,\n  axisDeltaEquals,\n  axisEquals,\n  axisEqualsRounded,\n  boxEquals,\n  boxEqualsRounded,\n  isDeltaZero\n};\n","import { addUniqueItem, removeItem } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/array.mjs\";\nclass NodeStack {\n  constructor() {\n    this.members = [];\n  }\n  add(node) {\n    addUniqueItem(this.members, node);\n    node.scheduleRender();\n  }\n  remove(node) {\n    removeItem(this.members, node);\n    if (node === this.prevLead) {\n      this.prevLead = void 0;\n    }\n    if (node === this.lead) {\n      const prevLead = this.members[this.members.length - 1];\n      if (prevLead) {\n        this.promote(prevLead);\n      }\n    }\n  }\n  relegate(node) {\n    const indexOfNode = this.members.findIndex((member) => node === member);\n    if (indexOfNode === 0)\n      return false;\n    let prevLead;\n    for (let i = indexOfNode; i >= 0; i--) {\n      const member = this.members[i];\n      if (member.isPresent !== false) {\n        prevLead = member;\n        break;\n      }\n    }\n    if (prevLead) {\n      this.promote(prevLead);\n      return true;\n    } else {\n      return false;\n    }\n  }\n  promote(node, preserveFollowOpacity) {\n    const prevLead = this.lead;\n    if (node === prevLead)\n      return;\n    this.prevLead = prevLead;\n    this.lead = node;\n    node.show();\n    if (prevLead) {\n      prevLead.instance && prevLead.scheduleRender();\n      node.scheduleRender();\n      node.resumeFrom = prevLead;\n      if (preserveFollowOpacity) {\n        node.resumeFrom.preserveOpacity = true;\n      }\n      if (prevLead.snapshot) {\n        node.snapshot = prevLead.snapshot;\n        node.snapshot.latestValues = prevLead.animationValues || prevLead.latestValues;\n      }\n      if (node.root && node.root.isUpdating) {\n        node.isLayoutDirty = true;\n      }\n      const { crossfade } = node.options;\n      if (crossfade === false) {\n        prevLead.hide();\n      }\n    }\n  }\n  exitAnimationComplete() {\n    this.members.forEach((node) => {\n      const { options, resumingFrom } = node;\n      options.onExitComplete && options.onExitComplete();\n      if (resumingFrom) {\n        resumingFrom.options.onExitComplete && resumingFrom.options.onExitComplete();\n      }\n    });\n  }\n  scheduleRender() {\n    this.members.forEach((node) => {\n      node.instance && node.scheduleRender(false);\n    });\n  }\n  /**\n   * Clear any leads that have been removed this render to prevent them from being\n   * used in future animations and to prevent memory leaks\n   */\n  removeLeadSnapshot() {\n    if (this.lead && this.lead.snapshot) {\n      this.lead.snapshot = void 0;\n    }\n  }\n}\nexport {\n  NodeStack\n};\n","function buildProjectionTransform(delta, treeScale, latestTransform) {\n  let transform = \"\";\n  const xTranslate = delta.x.translate / treeScale.x;\n  const yTranslate = delta.y.translate / treeScale.y;\n  const zTranslate = (latestTransform == null ? void 0 : latestTransform.z) || 0;\n  if (xTranslate || yTranslate || zTranslate) {\n    transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n  }\n  if (treeScale.x !== 1 || treeScale.y !== 1) {\n    transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n  }\n  if (latestTransform) {\n    const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n    if (transformPerspective)\n      transform = `perspective(${transformPerspective}px) ${transform}`;\n    if (rotate)\n      transform += `rotate(${rotate}deg) `;\n    if (rotateX)\n      transform += `rotateX(${rotateX}deg) `;\n    if (rotateY)\n      transform += `rotateY(${rotateY}deg) `;\n    if (skewX)\n      transform += `skewX(${skewX}deg) `;\n    if (skewY)\n      transform += `skewY(${skewY}deg) `;\n  }\n  const elementScaleX = delta.x.scale * treeScale.x;\n  const elementScaleY = delta.y.scale * treeScale.y;\n  if (elementScaleX !== 1 || elementScaleY !== 1) {\n    transform += `scale(${elementScaleX}, ${elementScaleY})`;\n  }\n  return transform || \"none\";\n}\nexport {\n  buildProjectionTransform\n};\n","function eachAxis(callback) {\n  return [callback(\"x\"), callback(\"y\")];\n}\nexport {\n  eachAxis\n};\n","const globalProjectionState = {\n  /**\n   * Global flag as to whether the tree has animated since the last time\n   * we resized the window\n   */\n  hasAnimatedSinceResize: true,\n  /**\n   * We set this to true once, on the first update. Any nodes added to the tree beyond that\n   * update will be given a `data-projection-id` attribute.\n   */\n  hasEverUpdated: false\n};\nexport {\n  globalProjectionState\n};\n","import { animateSingleValue } from \"../../animation/animate/single-value.mjs\";\nimport { getOptimisedAppearId } from \"../../animation/optimized-appear/get-appear-id.mjs\";\nimport { FlatTree } from \"../../render/utils/flat-tree.mjs\";\nimport { delay } from \"../../utils/delay.mjs\";\nimport { resolveMotionValue } from \"../../value/utils/resolve-motion-value.mjs\";\nimport { mixValues } from \"../animation/mix-values.mjs\";\nimport { copyBoxInto, copyAxisDeltaInto } from \"../geometry/copy.mjs\";\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from \"../geometry/delta-apply.mjs\";\nimport { calcLength, calcRelativePosition, calcRelativeBox, calcBoxDelta, isNear } from \"../geometry/delta-calc.mjs\";\nimport { removeBoxTransforms } from \"../geometry/delta-remove.mjs\";\nimport { createBox, createDelta } from \"../geometry/models.mjs\";\nimport { boxEqualsRounded, isDeltaZero, axisDeltaEquals, aspectRatio, boxEquals } from \"../geometry/utils.mjs\";\nimport { NodeStack } from \"../shared/stack.mjs\";\nimport { scaleCorrectors } from \"../styles/scale-correction.mjs\";\nimport { buildProjectionTransform } from \"../styles/transform.mjs\";\nimport { eachAxis } from \"../utils/each-axis.mjs\";\nimport { hasTransform, hasScale, has2DTranslate } from \"../utils/has-transform.mjs\";\nimport { globalProjectionState } from \"./state.mjs\";\nimport { noop } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nimport { statsBuffer } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/stats/buffer.mjs\";\nimport { SubscriptionManager } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/subscription-manager.mjs\";\nimport { isSVGElement } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/is-svg-element.mjs\";\nimport { isSVGSVGElement } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/is-svg-svg-element.mjs\";\nimport { frame, cancelFrame, frameData, frameSteps } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nimport { getValueTransition } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/animation/utils/get-value-transition.mjs\";\nimport { time } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/sync-time.mjs\";\nimport { clamp } from \"../../../../../../../motion-utils@12.23.6/external/motion-utils/dist/es/clamp.mjs\";\nimport { microtask } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/microtask.mjs\";\nimport { activeAnimations } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/stats/animation-count.mjs\";\nimport { motionValue } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/index.mjs\";\nimport { mixNumber } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs\";\nconst metrics = {\n  nodes: 0,\n  calculatedTargetDeltas: 0,\n  calculatedProjections: 0\n};\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\nconst animationTarget = 1e3;\nlet id = 0;\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n  const { latestValues } = visualElement;\n  if (latestValues[key]) {\n    values[key] = latestValues[key];\n    visualElement.setStaticValue(key, 0);\n    if (sharedAnimationValues) {\n      sharedAnimationValues[key] = 0;\n    }\n  }\n}\nfunction cancelTreeOptimisedTransformAnimations(projectionNode) {\n  projectionNode.hasCheckedOptimisedAppear = true;\n  if (projectionNode.root === projectionNode)\n    return;\n  const { visualElement } = projectionNode.options;\n  if (!visualElement)\n    return;\n  const appearId = getOptimisedAppearId(visualElement);\n  if (window.MotionHasOptimisedAnimation(appearId, \"transform\")) {\n    const { layout, layoutId } = projectionNode.options;\n    window.MotionCancelOptimisedAnimation(appearId, \"transform\", frame, !(layout || layoutId));\n  }\n  const { parent } = projectionNode;\n  if (parent && !parent.hasCheckedOptimisedAppear) {\n    cancelTreeOptimisedTransformAnimations(parent);\n  }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform }) {\n  return class ProjectionNode {\n    constructor(latestValues = {}, parent = defaultParent == null ? void 0 : defaultParent()) {\n      this.id = id++;\n      this.animationId = 0;\n      this.animationCommitId = 0;\n      this.children = /* @__PURE__ */ new Set();\n      this.options = {};\n      this.isTreeAnimating = false;\n      this.isAnimationBlocked = false;\n      this.isLayoutDirty = false;\n      this.isProjectionDirty = false;\n      this.isSharedProjectionDirty = false;\n      this.isTransformDirty = false;\n      this.updateManuallyBlocked = false;\n      this.updateBlockedByResize = false;\n      this.isUpdating = false;\n      this.isSVG = false;\n      this.needsReset = false;\n      this.shouldResetTransform = false;\n      this.hasCheckedOptimisedAppear = false;\n      this.treeScale = { x: 1, y: 1 };\n      this.eventHandlers = /* @__PURE__ */ new Map();\n      this.hasTreeAnimated = false;\n      this.updateScheduled = false;\n      this.scheduleUpdate = () => this.update();\n      this.projectionUpdateScheduled = false;\n      this.checkUpdateFailed = () => {\n        if (this.isUpdating) {\n          this.isUpdating = false;\n          this.clearAllSnapshots();\n        }\n      };\n      this.updateProjection = () => {\n        this.projectionUpdateScheduled = false;\n        if (statsBuffer.value) {\n          metrics.nodes = metrics.calculatedTargetDeltas = metrics.calculatedProjections = 0;\n        }\n        this.nodes.forEach(propagateDirtyNodes);\n        this.nodes.forEach(resolveTargetDelta);\n        this.nodes.forEach(calcProjection);\n        this.nodes.forEach(cleanDirtyNodes);\n        if (statsBuffer.addProjectionMetrics) {\n          statsBuffer.addProjectionMetrics(metrics);\n        }\n      };\n      this.resolvedRelativeTargetAt = 0;\n      this.hasProjected = false;\n      this.isVisible = true;\n      this.animationProgress = 0;\n      this.sharedNodes = /* @__PURE__ */ new Map();\n      this.latestValues = latestValues;\n      this.root = parent ? parent.root || parent : this;\n      this.path = parent ? [...parent.path, parent] : [];\n      this.parent = parent;\n      this.depth = parent ? parent.depth + 1 : 0;\n      for (let i = 0; i < this.path.length; i++) {\n        this.path[i].shouldResetTransform = true;\n      }\n      if (this.root === this)\n        this.nodes = new FlatTree();\n    }\n    addEventListener(name, handler) {\n      if (!this.eventHandlers.has(name)) {\n        this.eventHandlers.set(name, new SubscriptionManager());\n      }\n      return this.eventHandlers.get(name).add(handler);\n    }\n    notifyListeners(name, ...args) {\n      const subscriptionManager = this.eventHandlers.get(name);\n      subscriptionManager && subscriptionManager.notify(...args);\n    }\n    hasListeners(name) {\n      return this.eventHandlers.has(name);\n    }\n    /**\n     * Lifecycles\n     */\n    mount(instance) {\n      if (this.instance)\n        return;\n      this.isSVG = isSVGElement(instance) && !isSVGSVGElement(instance);\n      this.instance = instance;\n      const { layoutId, layout, visualElement } = this.options;\n      if (visualElement && !visualElement.current) {\n        visualElement.mount(instance);\n      }\n      this.root.nodes.add(this);\n      this.parent && this.parent.children.add(this);\n      if (this.root.hasTreeAnimated && (layout || layoutId)) {\n        this.isLayoutDirty = true;\n      }\n      if (attachResizeListener) {\n        let cancelDelay;\n        let innerWidth = 0;\n        const resizeUnblockUpdate = () => this.root.updateBlockedByResize = false;\n        frame.read(() => {\n          innerWidth = window.innerWidth;\n        });\n        attachResizeListener(instance, () => {\n          const newInnerWidth = window.innerWidth;\n          if (newInnerWidth === innerWidth)\n            return;\n          innerWidth = newInnerWidth;\n          this.root.updateBlockedByResize = true;\n          cancelDelay && cancelDelay();\n          cancelDelay = delay(resizeUnblockUpdate, 250);\n          if (globalProjectionState.hasAnimatedSinceResize) {\n            globalProjectionState.hasAnimatedSinceResize = false;\n            this.nodes.forEach(finishAnimation);\n          }\n        });\n      }\n      if (layoutId) {\n        this.root.registerSharedNode(layoutId, this);\n      }\n      if (this.options.animate !== false && visualElement && (layoutId || layout)) {\n        this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeLayoutChanged, layout: newLayout }) => {\n          if (this.isTreeAnimationBlocked()) {\n            this.target = void 0;\n            this.relativeTarget = void 0;\n            return;\n          }\n          const layoutTransition = this.options.transition || visualElement.getDefaultTransition() || defaultLayoutTransition;\n          const { onLayoutAnimationStart, onLayoutAnimationComplete } = visualElement.getProps();\n          const hasTargetChanged = !this.targetLayout || !boxEqualsRounded(this.targetLayout, newLayout);\n          const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeLayoutChanged;\n          if (this.options.layoutRoot || this.resumeFrom || hasOnlyRelativeTargetChanged || hasLayoutChanged && (hasTargetChanged || !this.currentAnimation)) {\n            if (this.resumeFrom) {\n              this.resumingFrom = this.resumeFrom;\n              this.resumingFrom.resumingFrom = void 0;\n            }\n            const animationOptions = {\n              ...getValueTransition(layoutTransition, \"layout\"),\n              onPlay: onLayoutAnimationStart,\n              onComplete: onLayoutAnimationComplete\n            };\n            if (visualElement.shouldReduceMotion || this.options.layoutRoot) {\n              animationOptions.delay = 0;\n              animationOptions.type = false;\n            }\n            this.startAnimation(animationOptions);\n            this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n          } else {\n            if (!hasLayoutChanged) {\n              finishAnimation(this);\n            }\n            if (this.isLead() && this.options.onExitComplete) {\n              this.options.onExitComplete();\n            }\n          }\n          this.targetLayout = newLayout;\n        });\n      }\n    }\n    unmount() {\n      this.options.layoutId && this.willUpdate();\n      this.root.nodes.remove(this);\n      const stack = this.getStack();\n      stack && stack.remove(this);\n      this.parent && this.parent.children.delete(this);\n      this.instance = void 0;\n      this.eventHandlers.clear();\n      cancelFrame(this.updateProjection);\n    }\n    // only on the root\n    blockUpdate() {\n      this.updateManuallyBlocked = true;\n    }\n    unblockUpdate() {\n      this.updateManuallyBlocked = false;\n    }\n    isUpdateBlocked() {\n      return this.updateManuallyBlocked || this.updateBlockedByResize;\n    }\n    isTreeAnimationBlocked() {\n      return this.isAnimationBlocked || this.parent && this.parent.isTreeAnimationBlocked() || false;\n    }\n    // Note: currently only running on root node\n    startUpdate() {\n      if (this.isUpdateBlocked())\n        return;\n      this.isUpdating = true;\n      this.nodes && this.nodes.forEach(resetSkewAndRotation);\n      this.animationId++;\n    }\n    getTransformTemplate() {\n      const { visualElement } = this.options;\n      return visualElement && visualElement.getProps().transformTemplate;\n    }\n    willUpdate(shouldNotifyListeners = true) {\n      this.root.hasTreeAnimated = true;\n      if (this.root.isUpdateBlocked()) {\n        this.options.onExitComplete && this.options.onExitComplete();\n        return;\n      }\n      if (window.MotionCancelOptimisedAnimation && !this.hasCheckedOptimisedAppear) {\n        cancelTreeOptimisedTransformAnimations(this);\n      }\n      !this.root.isUpdating && this.root.startUpdate();\n      if (this.isLayoutDirty)\n        return;\n      this.isLayoutDirty = true;\n      for (let i = 0; i < this.path.length; i++) {\n        const node = this.path[i];\n        node.shouldResetTransform = true;\n        node.updateScroll(\"snapshot\");\n        if (node.options.layoutRoot) {\n          node.willUpdate(false);\n        }\n      }\n      const { layoutId, layout } = this.options;\n      if (layoutId === void 0 && !layout)\n        return;\n      const transformTemplate = this.getTransformTemplate();\n      this.prevTransformTemplateValue = transformTemplate ? transformTemplate(this.latestValues, \"\") : void 0;\n      this.updateSnapshot();\n      shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n    }\n    update() {\n      this.updateScheduled = false;\n      const updateWasBlocked = this.isUpdateBlocked();\n      if (updateWasBlocked) {\n        this.unblockUpdate();\n        this.clearAllSnapshots();\n        this.nodes.forEach(clearMeasurements);\n        return;\n      }\n      if (this.animationId <= this.animationCommitId) {\n        this.nodes.forEach(clearIsLayoutDirty);\n        return;\n      }\n      this.animationCommitId = this.animationId;\n      if (!this.isUpdating) {\n        this.nodes.forEach(clearIsLayoutDirty);\n      } else {\n        this.isUpdating = false;\n        this.nodes.forEach(resetTransformStyle);\n        this.nodes.forEach(updateLayout);\n        this.nodes.forEach(notifyLayoutUpdate);\n      }\n      this.clearAllSnapshots();\n      const now = time.now();\n      frameData.delta = clamp(0, 1e3 / 60, now - frameData.timestamp);\n      frameData.timestamp = now;\n      frameData.isProcessing = true;\n      frameSteps.update.process(frameData);\n      frameSteps.preRender.process(frameData);\n      frameSteps.render.process(frameData);\n      frameData.isProcessing = false;\n    }\n    didUpdate() {\n      if (!this.updateScheduled) {\n        this.updateScheduled = true;\n        microtask.read(this.scheduleUpdate);\n      }\n    }\n    clearAllSnapshots() {\n      this.nodes.forEach(clearSnapshot);\n      this.sharedNodes.forEach(removeLeadSnapshots);\n    }\n    scheduleUpdateProjection() {\n      if (!this.projectionUpdateScheduled) {\n        this.projectionUpdateScheduled = true;\n        frame.preRender(this.updateProjection, false, true);\n      }\n    }\n    scheduleCheckAfterUnmount() {\n      frame.postRender(() => {\n        if (this.isLayoutDirty) {\n          this.root.didUpdate();\n        } else {\n          this.root.checkUpdateFailed();\n        }\n      });\n    }\n    /**\n     * Update measurements\n     */\n    updateSnapshot() {\n      if (this.snapshot || !this.instance)\n        return;\n      this.snapshot = this.measure();\n      if (this.snapshot && !calcLength(this.snapshot.measuredBox.x) && !calcLength(this.snapshot.measuredBox.y)) {\n        this.snapshot = void 0;\n      }\n    }\n    updateLayout() {\n      if (!this.instance)\n        return;\n      this.updateScroll();\n      if (!(this.options.alwaysMeasureLayout && this.isLead()) && !this.isLayoutDirty) {\n        return;\n      }\n      if (this.resumeFrom && !this.resumeFrom.instance) {\n        for (let i = 0; i < this.path.length; i++) {\n          const node = this.path[i];\n          node.updateScroll();\n        }\n      }\n      const prevLayout = this.layout;\n      this.layout = this.measure(false);\n      this.layoutCorrected = createBox();\n      this.isLayoutDirty = false;\n      this.projectionDelta = void 0;\n      this.notifyListeners(\"measure\", this.layout.layoutBox);\n      const { visualElement } = this.options;\n      visualElement && visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : void 0);\n    }\n    updateScroll(phase = \"measure\") {\n      let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n      if (this.scroll && this.scroll.animationId === this.root.animationId && this.scroll.phase === phase) {\n        needsMeasurement = false;\n      }\n      if (needsMeasurement && this.instance) {\n        const isRoot = checkIsScrollRoot(this.instance);\n        this.scroll = {\n          animationId: this.root.animationId,\n          phase,\n          isRoot,\n          offset: measureScroll(this.instance),\n          wasRoot: this.scroll ? this.scroll.isRoot : isRoot\n        };\n      }\n    }\n    resetTransform() {\n      if (!resetTransform)\n        return;\n      const isResetRequested = this.isLayoutDirty || this.shouldResetTransform || this.options.alwaysMeasureLayout;\n      const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n      const transformTemplate = this.getTransformTemplate();\n      const transformTemplateValue = transformTemplate ? transformTemplate(this.latestValues, \"\") : void 0;\n      const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n      if (isResetRequested && this.instance && (hasProjection || hasTransform(this.latestValues) || transformTemplateHasChanged)) {\n        resetTransform(this.instance, transformTemplateValue);\n        this.shouldResetTransform = false;\n        this.scheduleRender();\n      }\n    }\n    measure(removeTransform = true) {\n      const pageBox = this.measurePageBox();\n      let layoutBox = this.removeElementScroll(pageBox);\n      if (removeTransform) {\n        layoutBox = this.removeTransform(layoutBox);\n      }\n      roundBox(layoutBox);\n      return {\n        animationId: this.root.animationId,\n        measuredBox: pageBox,\n        layoutBox,\n        latestValues: {},\n        source: this.id\n      };\n    }\n    measurePageBox() {\n      var _a;\n      const { visualElement } = this.options;\n      if (!visualElement)\n        return createBox();\n      const box = visualElement.measureViewportBox();\n      const wasInScrollRoot = ((_a = this.scroll) == null ? void 0 : _a.wasRoot) || this.path.some(checkNodeWasScrollRoot);\n      if (!wasInScrollRoot) {\n        const { scroll } = this.root;\n        if (scroll) {\n          translateAxis(box.x, scroll.offset.x);\n          translateAxis(box.y, scroll.offset.y);\n        }\n      }\n      return box;\n    }\n    removeElementScroll(box) {\n      var _a;\n      const boxWithoutScroll = createBox();\n      copyBoxInto(boxWithoutScroll, box);\n      if ((_a = this.scroll) == null ? void 0 : _a.wasRoot) {\n        return boxWithoutScroll;\n      }\n      for (let i = 0; i < this.path.length; i++) {\n        const node = this.path[i];\n        const { scroll, options } = node;\n        if (node !== this.root && scroll && options.layoutScroll) {\n          if (scroll.wasRoot) {\n            copyBoxInto(boxWithoutScroll, box);\n          }\n          translateAxis(boxWithoutScroll.x, scroll.offset.x);\n          translateAxis(boxWithoutScroll.y, scroll.offset.y);\n        }\n      }\n      return boxWithoutScroll;\n    }\n    applyTransform(box, transformOnly = false) {\n      const withTransforms = createBox();\n      copyBoxInto(withTransforms, box);\n      for (let i = 0; i < this.path.length; i++) {\n        const node = this.path[i];\n        if (!transformOnly && node.options.layoutScroll && node.scroll && node !== node.root) {\n          transformBox(withTransforms, {\n            x: -node.scroll.offset.x,\n            y: -node.scroll.offset.y\n          });\n        }\n        if (!hasTransform(node.latestValues))\n          continue;\n        transformBox(withTransforms, node.latestValues);\n      }\n      if (hasTransform(this.latestValues)) {\n        transformBox(withTransforms, this.latestValues);\n      }\n      return withTransforms;\n    }\n    removeTransform(box) {\n      const boxWithoutTransform = createBox();\n      copyBoxInto(boxWithoutTransform, box);\n      for (let i = 0; i < this.path.length; i++) {\n        const node = this.path[i];\n        if (!node.instance)\n          continue;\n        if (!hasTransform(node.latestValues))\n          continue;\n        hasScale(node.latestValues) && node.updateSnapshot();\n        const sourceBox = createBox();\n        const nodeBox = node.measurePageBox();\n        copyBoxInto(sourceBox, nodeBox);\n        removeBoxTransforms(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : void 0, sourceBox);\n      }\n      if (hasTransform(this.latestValues)) {\n        removeBoxTransforms(boxWithoutTransform, this.latestValues);\n      }\n      return boxWithoutTransform;\n    }\n    setTargetDelta(delta) {\n      this.targetDelta = delta;\n      this.root.scheduleUpdateProjection();\n      this.isProjectionDirty = true;\n    }\n    setOptions(options) {\n      this.options = {\n        ...this.options,\n        ...options,\n        crossfade: options.crossfade !== void 0 ? options.crossfade : true\n      };\n    }\n    clearMeasurements() {\n      this.scroll = void 0;\n      this.layout = void 0;\n      this.snapshot = void 0;\n      this.prevTransformTemplateValue = void 0;\n      this.targetDelta = void 0;\n      this.target = void 0;\n      this.isLayoutDirty = false;\n    }\n    forceRelativeParentToResolveTarget() {\n      if (!this.relativeParent)\n        return;\n      if (this.relativeParent.resolvedRelativeTargetAt !== frameData.timestamp) {\n        this.relativeParent.resolveTargetDelta(true);\n      }\n    }\n    resolveTargetDelta(forceRecalculation = false) {\n      var _a;\n      const lead = this.getLead();\n      this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n      this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n      this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n      const isShared = Boolean(this.resumingFrom) || this !== lead;\n      const canSkip = !(forceRecalculation || isShared && this.isSharedProjectionDirty || this.isProjectionDirty || ((_a = this.parent) == null ? void 0 : _a.isProjectionDirty) || this.attemptToResolveRelativeTarget || this.root.updateBlockedByResize);\n      if (canSkip)\n        return;\n      const { layout, layoutId } = this.options;\n      if (!this.layout || !(layout || layoutId))\n        return;\n      this.resolvedRelativeTargetAt = frameData.timestamp;\n      if (!this.targetDelta && !this.relativeTarget) {\n        const relativeParent = this.getClosestProjectingParent();\n        if (relativeParent && relativeParent.layout && this.animationProgress !== 1) {\n          this.relativeParent = relativeParent;\n          this.forceRelativeParentToResolveTarget();\n          this.relativeTarget = createBox();\n          this.relativeTargetOrigin = createBox();\n          calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n          copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n        } else {\n          this.relativeParent = this.relativeTarget = void 0;\n        }\n      }\n      if (!this.relativeTarget && !this.targetDelta)\n        return;\n      if (!this.target) {\n        this.target = createBox();\n        this.targetWithTransforms = createBox();\n      }\n      if (this.relativeTarget && this.relativeTargetOrigin && this.relativeParent && this.relativeParent.target) {\n        this.forceRelativeParentToResolveTarget();\n        calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n      } else if (this.targetDelta) {\n        if (Boolean(this.resumingFrom)) {\n          this.target = this.applyTransform(this.layout.layoutBox);\n        } else {\n          copyBoxInto(this.target, this.layout.layoutBox);\n        }\n        applyBoxDelta(this.target, this.targetDelta);\n      } else {\n        copyBoxInto(this.target, this.layout.layoutBox);\n      }\n      if (this.attemptToResolveRelativeTarget) {\n        this.attemptToResolveRelativeTarget = false;\n        const relativeParent = this.getClosestProjectingParent();\n        if (relativeParent && Boolean(relativeParent.resumingFrom) === Boolean(this.resumingFrom) && !relativeParent.options.layoutScroll && relativeParent.target && this.animationProgress !== 1) {\n          this.relativeParent = relativeParent;\n          this.forceRelativeParentToResolveTarget();\n          this.relativeTarget = createBox();\n          this.relativeTargetOrigin = createBox();\n          calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n          copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n        } else {\n          this.relativeParent = this.relativeTarget = void 0;\n        }\n      }\n      if (statsBuffer.value) {\n        metrics.calculatedTargetDeltas++;\n      }\n    }\n    getClosestProjectingParent() {\n      if (!this.parent || hasScale(this.parent.latestValues) || has2DTranslate(this.parent.latestValues)) {\n        return void 0;\n      }\n      if (this.parent.isProjecting()) {\n        return this.parent;\n      } else {\n        return this.parent.getClosestProjectingParent();\n      }\n    }\n    isProjecting() {\n      return Boolean((this.relativeTarget || this.targetDelta || this.options.layoutRoot) && this.layout);\n    }\n    calcProjection() {\n      var _a;\n      const lead = this.getLead();\n      const isShared = Boolean(this.resumingFrom) || this !== lead;\n      let canSkip = true;\n      if (this.isProjectionDirty || ((_a = this.parent) == null ? void 0 : _a.isProjectionDirty)) {\n        canSkip = false;\n      }\n      if (isShared && (this.isSharedProjectionDirty || this.isTransformDirty)) {\n        canSkip = false;\n      }\n      if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n        canSkip = false;\n      }\n      if (canSkip)\n        return;\n      const { layout, layoutId } = this.options;\n      this.isTreeAnimating = Boolean(this.parent && this.parent.isTreeAnimating || this.currentAnimation || this.pendingAnimation);\n      if (!this.isTreeAnimating) {\n        this.targetDelta = this.relativeTarget = void 0;\n      }\n      if (!this.layout || !(layout || layoutId))\n        return;\n      copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n      const prevTreeScaleX = this.treeScale.x;\n      const prevTreeScaleY = this.treeScale.y;\n      applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n      if (lead.layout && !lead.target && (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n        lead.target = lead.layout.layoutBox;\n        lead.targetWithTransforms = createBox();\n      }\n      const { target } = lead;\n      if (!target) {\n        if (this.prevProjectionDelta) {\n          this.createProjectionDeltas();\n          this.scheduleRender();\n        }\n        return;\n      }\n      if (!this.projectionDelta || !this.prevProjectionDelta) {\n        this.createProjectionDeltas();\n      } else {\n        copyAxisDeltaInto(this.prevProjectionDelta.x, this.projectionDelta.x);\n        copyAxisDeltaInto(this.prevProjectionDelta.y, this.projectionDelta.y);\n      }\n      calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n      if (this.treeScale.x !== prevTreeScaleX || this.treeScale.y !== prevTreeScaleY || !axisDeltaEquals(this.projectionDelta.x, this.prevProjectionDelta.x) || !axisDeltaEquals(this.projectionDelta.y, this.prevProjectionDelta.y)) {\n        this.hasProjected = true;\n        this.scheduleRender();\n        this.notifyListeners(\"projectionUpdate\", target);\n      }\n      if (statsBuffer.value) {\n        metrics.calculatedProjections++;\n      }\n    }\n    hide() {\n      this.isVisible = false;\n    }\n    show() {\n      this.isVisible = true;\n    }\n    scheduleRender(notifyAll = true) {\n      var _a;\n      (_a = this.options.visualElement) == null ? void 0 : _a.scheduleRender();\n      if (notifyAll) {\n        const stack = this.getStack();\n        stack && stack.scheduleRender();\n      }\n      if (this.resumingFrom && !this.resumingFrom.instance) {\n        this.resumingFrom = void 0;\n      }\n    }\n    createProjectionDeltas() {\n      this.prevProjectionDelta = createDelta();\n      this.projectionDelta = createDelta();\n      this.projectionDeltaWithTransform = createDelta();\n    }\n    setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n      const snapshot = this.snapshot;\n      const snapshotLatestValues = snapshot ? snapshot.latestValues : {};\n      const mixedValues = { ...this.latestValues };\n      const targetDelta = createDelta();\n      if (!this.relativeParent || !this.relativeParent.options.layoutRoot) {\n        this.relativeTarget = this.relativeTargetOrigin = void 0;\n      }\n      this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n      const relativeLayout = createBox();\n      const snapshotSource = snapshot ? snapshot.source : void 0;\n      const layoutSource = this.layout ? this.layout.source : void 0;\n      const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n      const stack = this.getStack();\n      const isOnlyMember = !stack || stack.members.length <= 1;\n      const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation && !isOnlyMember && this.options.crossfade === true && !this.path.some(hasOpacityCrossfade));\n      this.animationProgress = 0;\n      let prevRelativeTarget;\n      this.mixTargetDelta = (latest) => {\n        const progress = latest / 1e3;\n        mixAxisDelta(targetDelta.x, delta.x, progress);\n        mixAxisDelta(targetDelta.y, delta.y, progress);\n        this.setTargetDelta(targetDelta);\n        if (this.relativeTarget && this.relativeTargetOrigin && this.layout && this.relativeParent && this.relativeParent.layout) {\n          calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n          mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n          if (prevRelativeTarget && boxEquals(this.relativeTarget, prevRelativeTarget)) {\n            this.isProjectionDirty = false;\n          }\n          if (!prevRelativeTarget)\n            prevRelativeTarget = createBox();\n          copyBoxInto(prevRelativeTarget, this.relativeTarget);\n        }\n        if (isSharedLayoutAnimation) {\n          this.animationValues = mixedValues;\n          mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n        }\n        this.root.scheduleUpdateProjection();\n        this.scheduleRender();\n        this.animationProgress = progress;\n      };\n      this.mixTargetDelta(this.options.layoutRoot ? 1e3 : 0);\n    }\n    startAnimation(options) {\n      var _a, _b, _c;\n      this.notifyListeners(\"animationStart\");\n      (_a = this.currentAnimation) == null ? void 0 : _a.stop();\n      (_c = (_b = this.resumingFrom) == null ? void 0 : _b.currentAnimation) == null ? void 0 : _c.stop();\n      if (this.pendingAnimation) {\n        cancelFrame(this.pendingAnimation);\n        this.pendingAnimation = void 0;\n      }\n      this.pendingAnimation = frame.update(() => {\n        globalProjectionState.hasAnimatedSinceResize = true;\n        activeAnimations.layout++;\n        this.motionValue || (this.motionValue = motionValue(0));\n        this.currentAnimation = animateSingleValue(this.motionValue, [0, 1e3], {\n          ...options,\n          velocity: 0,\n          isSync: true,\n          onUpdate: (latest) => {\n            this.mixTargetDelta(latest);\n            options.onUpdate && options.onUpdate(latest);\n          },\n          onStop: () => {\n            activeAnimations.layout--;\n          },\n          onComplete: () => {\n            activeAnimations.layout--;\n            options.onComplete && options.onComplete();\n            this.completeAnimation();\n          }\n        });\n        if (this.resumingFrom) {\n          this.resumingFrom.currentAnimation = this.currentAnimation;\n        }\n        this.pendingAnimation = void 0;\n      });\n    }\n    completeAnimation() {\n      if (this.resumingFrom) {\n        this.resumingFrom.currentAnimation = void 0;\n        this.resumingFrom.preserveOpacity = void 0;\n      }\n      const stack = this.getStack();\n      stack && stack.exitAnimationComplete();\n      this.resumingFrom = this.currentAnimation = this.animationValues = void 0;\n      this.notifyListeners(\"animationComplete\");\n    }\n    finishAnimation() {\n      if (this.currentAnimation) {\n        this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n        this.currentAnimation.stop();\n      }\n      this.completeAnimation();\n    }\n    applyTransformsToTarget() {\n      const lead = this.getLead();\n      let { targetWithTransforms, target, layout, latestValues } = lead;\n      if (!targetWithTransforms || !target || !layout)\n        return;\n      if (this !== lead && this.layout && layout && shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n        target = this.target || createBox();\n        const xLength = calcLength(this.layout.layoutBox.x);\n        target.x.min = lead.target.x.min;\n        target.x.max = target.x.min + xLength;\n        const yLength = calcLength(this.layout.layoutBox.y);\n        target.y.min = lead.target.y.min;\n        target.y.max = target.y.min + yLength;\n      }\n      copyBoxInto(targetWithTransforms, target);\n      transformBox(targetWithTransforms, latestValues);\n      calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n    }\n    registerSharedNode(layoutId, node) {\n      if (!this.sharedNodes.has(layoutId)) {\n        this.sharedNodes.set(layoutId, new NodeStack());\n      }\n      const stack = this.sharedNodes.get(layoutId);\n      stack.add(node);\n      const config = node.options.initialPromotionConfig;\n      node.promote({\n        transition: config ? config.transition : void 0,\n        preserveFollowOpacity: config && config.shouldPreserveFollowOpacity ? config.shouldPreserveFollowOpacity(node) : void 0\n      });\n    }\n    isLead() {\n      const stack = this.getStack();\n      return stack ? stack.lead === this : true;\n    }\n    getLead() {\n      var _a;\n      const { layoutId } = this.options;\n      return layoutId ? ((_a = this.getStack()) == null ? void 0 : _a.lead) || this : this;\n    }\n    getPrevLead() {\n      var _a;\n      const { layoutId } = this.options;\n      return layoutId ? (_a = this.getStack()) == null ? void 0 : _a.prevLead : void 0;\n    }\n    getStack() {\n      const { layoutId } = this.options;\n      if (layoutId)\n        return this.root.sharedNodes.get(layoutId);\n    }\n    promote({ needsReset, transition, preserveFollowOpacity } = {}) {\n      const stack = this.getStack();\n      if (stack)\n        stack.promote(this, preserveFollowOpacity);\n      if (needsReset) {\n        this.projectionDelta = void 0;\n        this.needsReset = true;\n      }\n      if (transition)\n        this.setOptions({ transition });\n    }\n    relegate() {\n      const stack = this.getStack();\n      if (stack) {\n        return stack.relegate(this);\n      } else {\n        return false;\n      }\n    }\n    resetSkewAndRotation() {\n      const { visualElement } = this.options;\n      if (!visualElement)\n        return;\n      let hasDistortingTransform = false;\n      const { latestValues } = visualElement;\n      if (latestValues.z || latestValues.rotate || latestValues.rotateX || latestValues.rotateY || latestValues.rotateZ || latestValues.skewX || latestValues.skewY) {\n        hasDistortingTransform = true;\n      }\n      if (!hasDistortingTransform)\n        return;\n      const resetValues = {};\n      if (latestValues.z) {\n        resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n      }\n      for (let i = 0; i < transformAxes.length; i++) {\n        resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n        resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n      }\n      visualElement.render();\n      for (const key in resetValues) {\n        visualElement.setStaticValue(key, resetValues[key]);\n        if (this.animationValues) {\n          this.animationValues[key] = resetValues[key];\n        }\n      }\n      visualElement.scheduleRender();\n    }\n    applyProjectionStyles(targetStyle, styleProp) {\n      if (!this.instance || this.isSVG)\n        return;\n      if (!this.isVisible) {\n        targetStyle.visibility = \"hidden\";\n        return;\n      }\n      const transformTemplate = this.getTransformTemplate();\n      if (this.needsReset) {\n        this.needsReset = false;\n        targetStyle.visibility = \"\";\n        targetStyle.opacity = \"\";\n        targetStyle.pointerEvents = resolveMotionValue(styleProp == null ? void 0 : styleProp.pointerEvents) || \"\";\n        targetStyle.transform = transformTemplate ? transformTemplate(this.latestValues, \"\") : \"none\";\n        return;\n      }\n      const lead = this.getLead();\n      if (!this.projectionDelta || !this.layout || !lead.target) {\n        if (this.options.layoutId) {\n          targetStyle.opacity = this.latestValues.opacity !== void 0 ? this.latestValues.opacity : 1;\n          targetStyle.pointerEvents = resolveMotionValue(styleProp == null ? void 0 : styleProp.pointerEvents) || \"\";\n        }\n        if (this.hasProjected && !hasTransform(this.latestValues)) {\n          targetStyle.transform = transformTemplate ? transformTemplate({}, \"\") : \"none\";\n          this.hasProjected = false;\n        }\n        return;\n      }\n      targetStyle.visibility = \"\";\n      const valuesToRender = lead.animationValues || lead.latestValues;\n      this.applyTransformsToTarget();\n      let transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n      if (transformTemplate) {\n        transform = transformTemplate(valuesToRender, transform);\n      }\n      targetStyle.transform = transform;\n      const { x, y } = this.projectionDelta;\n      targetStyle.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n      if (lead.animationValues) {\n        targetStyle.opacity = lead === this ? valuesToRender.opacity ?? this.latestValues.opacity ?? 1 : this.preserveOpacity ? this.latestValues.opacity : valuesToRender.opacityExit;\n      } else {\n        targetStyle.opacity = lead === this ? valuesToRender.opacity !== void 0 ? valuesToRender.opacity : \"\" : valuesToRender.opacityExit !== void 0 ? valuesToRender.opacityExit : 0;\n      }\n      for (const key in scaleCorrectors) {\n        if (valuesToRender[key] === void 0)\n          continue;\n        const { correct, applyTo, isCSSVariable } = scaleCorrectors[key];\n        const corrected = transform === \"none\" ? valuesToRender[key] : correct(valuesToRender[key], lead);\n        if (applyTo) {\n          const num = applyTo.length;\n          for (let i = 0; i < num; i++) {\n            targetStyle[applyTo[i]] = corrected;\n          }\n        } else {\n          if (isCSSVariable) {\n            this.options.visualElement.renderState.vars[key] = corrected;\n          } else {\n            targetStyle[key] = corrected;\n          }\n        }\n      }\n      if (this.options.layoutId) {\n        targetStyle.pointerEvents = lead === this ? resolveMotionValue(styleProp == null ? void 0 : styleProp.pointerEvents) || \"\" : \"none\";\n      }\n    }\n    clearSnapshot() {\n      this.resumeFrom = this.snapshot = void 0;\n    }\n    // Only run on root\n    resetTree() {\n      this.root.nodes.forEach((node) => {\n        var _a;\n        return (_a = node.currentAnimation) == null ? void 0 : _a.stop();\n      });\n      this.root.nodes.forEach(clearMeasurements);\n      this.root.sharedNodes.clear();\n    }\n  };\n}\nfunction updateLayout(node) {\n  node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n  var _a;\n  const snapshot = ((_a = node.resumeFrom) == null ? void 0 : _a.snapshot) || node.snapshot;\n  if (node.isLead() && node.layout && snapshot && node.hasListeners(\"didUpdate\")) {\n    const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n    const { animationType } = node.options;\n    const isShared = snapshot.source !== node.layout.source;\n    if (animationType === \"size\") {\n      eachAxis((axis) => {\n        const axisSnapshot = isShared ? snapshot.measuredBox[axis] : snapshot.layoutBox[axis];\n        const length = calcLength(axisSnapshot);\n        axisSnapshot.min = layout[axis].min;\n        axisSnapshot.max = axisSnapshot.min + length;\n      });\n    } else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n      eachAxis((axis) => {\n        const axisSnapshot = isShared ? snapshot.measuredBox[axis] : snapshot.layoutBox[axis];\n        const length = calcLength(layout[axis]);\n        axisSnapshot.max = axisSnapshot.min + length;\n        if (node.relativeTarget && !node.currentAnimation) {\n          node.isProjectionDirty = true;\n          node.relativeTarget[axis].max = node.relativeTarget[axis].min + length;\n        }\n      });\n    }\n    const layoutDelta = createDelta();\n    calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n    const visualDelta = createDelta();\n    if (isShared) {\n      calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n    } else {\n      calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n    }\n    const hasLayoutChanged = !isDeltaZero(layoutDelta);\n    let hasRelativeLayoutChanged = false;\n    if (!node.resumeFrom) {\n      const relativeParent = node.getClosestProjectingParent();\n      if (relativeParent && !relativeParent.resumeFrom) {\n        const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n        if (parentSnapshot && parentLayout) {\n          const relativeSnapshot = createBox();\n          calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n          const relativeLayout = createBox();\n          calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n          if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) {\n            hasRelativeLayoutChanged = true;\n          }\n          if (relativeParent.options.layoutRoot) {\n            node.relativeTarget = relativeLayout;\n            node.relativeTargetOrigin = relativeSnapshot;\n            node.relativeParent = relativeParent;\n          }\n        }\n      }\n    }\n    node.notifyListeners(\"didUpdate\", {\n      layout,\n      snapshot,\n      delta: visualDelta,\n      layoutDelta,\n      hasLayoutChanged,\n      hasRelativeLayoutChanged\n    });\n  } else if (node.isLead()) {\n    const { onExitComplete } = node.options;\n    onExitComplete && onExitComplete();\n  }\n  node.options.transition = void 0;\n}\nfunction propagateDirtyNodes(node) {\n  if (statsBuffer.value) {\n    metrics.nodes++;\n  }\n  if (!node.parent)\n    return;\n  if (!node.isProjecting()) {\n    node.isProjectionDirty = node.parent.isProjectionDirty;\n  }\n  node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty || node.parent.isProjectionDirty || node.parent.isSharedProjectionDirty));\n  node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n  node.isProjectionDirty = node.isSharedProjectionDirty = node.isTransformDirty = false;\n}\nfunction clearSnapshot(node) {\n  node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n  node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n  node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n  const { visualElement } = node.options;\n  if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n    visualElement.notify(\"BeforeLayoutMeasure\");\n  }\n  node.resetTransform();\n}\nfunction finishAnimation(node) {\n  node.finishAnimation();\n  node.targetDelta = node.relativeTarget = node.target = void 0;\n  node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n  node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n  node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n  node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n  stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n  output.translate = mixNumber(delta.translate, 0, p);\n  output.scale = mixNumber(delta.scale, 1, p);\n  output.origin = delta.origin;\n  output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n  output.min = mixNumber(from.min, to.min, p);\n  output.max = mixNumber(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n  mixAxis(output.x, from.x, to.x, p);\n  mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n  return node.animationValues && node.animationValues.opacityExit !== void 0;\n}\nconst defaultLayoutTransition = {\n  duration: 0.45,\n  ease: [0.4, 0, 0.1, 1]\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" && navigator.userAgent && navigator.userAgent.toLowerCase().includes(string);\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\") ? Math.round : noop;\nfunction roundAxis(axis) {\n  axis.min = roundPoint(axis.min);\n  axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n  roundAxis(box.x);\n  roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n  return animationType === \"position\" || animationType === \"preserve-aspect\" && !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2);\n}\nfunction checkNodeWasScrollRoot(node) {\n  var _a;\n  return node !== node.root && ((_a = node.scroll) == null ? void 0 : _a.wasRoot);\n}\nexport {\n  cleanDirtyNodes,\n  createProjectionNode,\n  mixAxis,\n  mixAxisDelta,\n  mixBox,\n  propagateDirtyNodes\n};\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n  target.addEventListener(eventName, handler, options);\n  return () => target.removeEventListener(eventName, handler);\n}\nexport {\n  addDomEvent\n};\n","import { addDomEvent } from \"../../events/add-dom-event.mjs\";\nimport { createProjectionNode } from \"./create-projection-node.mjs\";\nconst DocumentProjectionNode = createProjectionNode({\n  attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n  measureScroll: () => ({\n    x: document.documentElement.scrollLeft || document.body.scrollLeft,\n    y: document.documentElement.scrollTop || document.body.scrollTop\n  }),\n  checkIsScrollRoot: () => true\n});\nexport {\n  DocumentProjectionNode\n};\n","import { createProjectionNode } from \"./create-projection-node.mjs\";\nimport { DocumentProjectionNode } from \"./DocumentProjectionNode.mjs\";\nconst rootProjectionNode = {\n  current: void 0\n};\nconst HTMLProjectionNode = createProjectionNode({\n  measureScroll: (instance) => ({\n    x: instance.scrollLeft,\n    y: instance.scrollTop\n  }),\n  defaultParent: () => {\n    if (!rootProjectionNode.current) {\n      const documentNode = new DocumentProjectionNode({});\n      documentNode.mount(window);\n      documentNode.setOptions({ layoutScroll: true });\n      rootProjectionNode.current = documentNode;\n    }\n    return rootProjectionNode.current;\n  },\n  resetTransform: (instance, value) => {\n    instance.style.transform = value !== void 0 ? value : \"none\";\n  },\n  checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\")\n});\nexport {\n  HTMLProjectionNode,\n  rootProjectionNode\n};\n","function getClosestProjectingNode(visualElement) {\n  if (!visualElement)\n    return void 0;\n  return visualElement.options.allowProjection !== false ? visualElement.projection : getClosestProjectingNode(visualElement.parent);\n}\nexport {\n  getClosestProjectingNode\n};\n","import { px } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/numbers/units.mjs\";\nfunction pixelsToPercent(pixels, axis) {\n  if (axis.max === axis.min)\n    return 0;\n  return pixels / (axis.max - axis.min) * 100;\n}\nconst correctBorderRadius = {\n  correct: (latest, node) => {\n    if (!node.target)\n      return latest;\n    if (typeof latest === \"string\") {\n      if (px.test(latest)) {\n        latest = parseFloat(latest);\n      } else {\n        return latest;\n      }\n    }\n    const x = pixelsToPercent(latest, node.target.x);\n    const y = pixelsToPercent(latest, node.target.y);\n    return `${x}% ${y}%`;\n  }\n};\nexport {\n  correctBorderRadius,\n  pixelsToPercent\n};\n","import { complex } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/value/types/complex/index.mjs\";\nimport { mixNumber } from \"../../../../../../../motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs\";\nconst correctBoxShadow = {\n  correct: (latest, { treeScale, projectionDelta }) => {\n    const original = latest;\n    const shadow = complex.parse(latest);\n    if (shadow.length > 5)\n      return original;\n    const template = complex.createTransformer(latest);\n    const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n    const xScale = projectionDelta.x.scale * treeScale.x;\n    const yScale = projectionDelta.y.scale * treeScale.y;\n    shadow[0 + offset] /= xScale;\n    shadow[1 + offset] /= yScale;\n    const averageScale = mixNumber(xScale, yScale, 0.5);\n    if (typeof shadow[2 + offset] === \"number\")\n      shadow[2 + offset] /= averageScale;\n    if (typeof shadow[3 + offset] === \"number\")\n      shadow[3 + offset] /= averageScale;\n    return template(shadow);\n  }\n};\nexport {\n  correctBoxShadow\n};\n","import { correctBorderRadius } from \"../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/styles/scale-border-radius.mjs\";\nimport { correctBoxShadow } from \"../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs\";\nconst defaultScaleCorrector = {\n  borderRadius: {\n    ...correctBorderRadius,\n    applyTo: [\n      \"borderTopLeftRadius\",\n      \"borderTopRightRadius\",\n      \"borderBottomLeftRadius\",\n      \"borderBottomRightRadius\"\n    ]\n  },\n  borderTopLeftRadius: correctBorderRadius,\n  borderTopRightRadius: correctBorderRadius,\n  borderBottomLeftRadius: correctBorderRadius,\n  borderBottomRightRadius: correctBorderRadius,\n  boxShadow: correctBoxShadow\n};\nexport {\n  defaultScaleCorrector\n};\n","function isHTMLElement(value) {\n  return typeof value === \"object\" && value !== null && \"nodeType\" in value;\n}\nexport {\n  isHTMLElement\n};\n","import { Feature } from \"../feature.mjs\";\nimport { HTMLProjectionNode } from \"../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs\";\nimport { getClosestProjectingNode } from \"./utils.mjs\";\nimport { addScaleCorrector } from \"../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/styles/scale-correction.mjs\";\nimport { defaultScaleCorrector } from \"./config.mjs\";\nimport { isHTMLElement } from \"../gestures/drag/utils/is.mjs\";\nimport { doneCallbacks } from \"../../components/animate-presence/presence.mjs\";\nclass ProjectionFeature extends Feature {\n  constructor(state) {\n    super(state);\n    addScaleCorrector(defaultScaleCorrector);\n  }\n  initProjection() {\n    const options = this.state.options;\n    this.state.visualElement.projection = new HTMLProjectionNode(\n      this.state.visualElement.latestValues,\n      options[\"data-framer-portal-id\"] ? void 0 : getClosestProjectingNode(this.state.visualElement.parent)\n    );\n    this.state.visualElement.projection.isPresent = true;\n    this.setOptions();\n  }\n  beforeMount() {\n    this.initProjection();\n  }\n  setOptions() {\n    const options = this.state.options;\n    this.state.visualElement.projection.setOptions({\n      layout: options.layout,\n      layoutId: options.layoutId,\n      alwaysMeasureLayout: Boolean(options.drag) || options.dragConstraints && isHTMLElement(options.dragConstraints),\n      visualElement: this.state.visualElement,\n      animationType: typeof options.layout === \"string\" ? options.layout : \"both\",\n      // initialPromotionConfig\n      layoutRoot: options.layoutRoot,\n      layoutScroll: options.layoutScroll,\n      crossfade: options.crossfade,\n      onExitComplete: () => {\n        var _a;\n        if (!((_a = this.state.visualElement.projection) == null ? void 0 : _a.isPresent)) {\n          const done = doneCallbacks.get(this.state.element);\n          this.state.isSafeToRemove = true;\n          if (done) {\n            done({\n              detail: {\n                isExit: true\n              }\n            }, true);\n          }\n        }\n      }\n    });\n  }\n  update() {\n    this.setOptions();\n  }\n  mount() {\n    var _a;\n    (_a = this.state.visualElement.projection) == null ? void 0 : _a.mount(this.state.element);\n  }\n}\nexport {\n  ProjectionFeature\n};\n","function isPrimaryPointer(event) {\n  if (event.pointerType === \"mouse\") {\n    return typeof event.button !== \"number\" || event.button <= 0;\n  } else {\n    return event.isPrimary !== false;\n  }\n}\nexport {\n  isPrimaryPointer\n};\n","import { isPrimaryPointer } from \"./utils/is-primary-pointer.mjs\";\nfunction extractEventInfo(event, pointType = \"page\") {\n  return {\n    point: {\n      x: event[`${pointType}X`],\n      y: event[`${pointType}Y`]\n    }\n  };\n}\nfunction addPointerInfo(handler) {\n  return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n}\nexport {\n  addPointerInfo,\n  extractEventInfo\n};\n","import { addPointerInfo } from \"./event-info.mjs\";\nimport { addDomEvent } from \"./add-dom-event.mjs\";\nfunction addPointerEvent(target, eventName, handler, options) {\n  return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\nexport {\n  addPointerEvent\n};\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  } else if (drag === \"x\") {\n    lock = globalHorizontalLock();\n  } else {\n    const openHorizontal = globalHorizontalLock();\n    const openVertical = globalVerticalLock();\n    if (openHorizontal && openVertical) {\n      lock = () => {\n        openHorizontal();\n        openVertical();\n      };\n    } else {\n      if (openHorizontal)\n        openHorizontal();\n      if (openVertical)\n        openVertical();\n    }\n  }\n  return lock;\n}\nexport {\n  createLock,\n  getGlobalLock\n};\n","function calcLength(axis) {\n  return axis.max - axis.min;\n}\nexport {\n  calcLength\n};\n","import { calcLength } from \"../../../../projection/geometry/delta-calc.mjs\";\nimport { mixNumber } from \"../../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs\";\nimport { progress } from \"../../../../external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/progress.mjs\";\nimport { clamp } from \"../../../../external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/clamp.mjs\";\nfunction applyConstraints(point, { min, max }, elastic) {\n  if (min !== void 0 && point < min) {\n    point = elastic ? mixNumber(min, point, elastic.min) : Math.max(point, min);\n  } else if (max !== void 0 && point > max) {\n    point = elastic ? mixNumber(max, point, elastic.max) : Math.min(point, max);\n  }\n  return point;\n}\nconst defaultElastic = 0.35;\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n  return {\n    x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n    y: calcRelativeAxisConstraints(layoutBox.y, top, bottom)\n  };\n}\nfunction calcRelativeAxisConstraints(axis, min, max) {\n  return {\n    min: min !== void 0 ? axis.min + min : void 0,\n    max: max !== void 0 ? axis.max + max - (axis.max - axis.min) : void 0\n  };\n}\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n  if (dragElastic === false) {\n    dragElastic = 0;\n  } else if (dragElastic === true) {\n    dragElastic = defaultElastic;\n  }\n  return {\n    x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n    y: resolveAxisElastic(dragElastic, \"top\", \"bottom\")\n  };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n  return {\n    min: resolvePointElastic(dragElastic, minLabel),\n    max: resolvePointElastic(dragElastic, maxLabel)\n  };\n}\nfunction resolvePointElastic(dragElastic, label) {\n  return typeof dragElastic === \"number\" ? dragElastic : dragElastic[label] || 0;\n}\nfunction rebaseAxisConstraints(layout, constraints) {\n  const relativeConstraints = {};\n  if (constraints.min !== void 0) {\n    relativeConstraints.min = constraints.min - layout.min;\n  }\n  if (constraints.max !== void 0) {\n    relativeConstraints.max = constraints.max - layout.min;\n  }\n  return relativeConstraints;\n}\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n  return {\n    x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n    y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y)\n  };\n}\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n  let min = constraintsAxis.min - layoutAxis.min;\n  let max = constraintsAxis.max - layoutAxis.max;\n  if (constraintsAxis.max - constraintsAxis.min < layoutAxis.max - layoutAxis.min) {\n    [min, max] = [max, min];\n  }\n  return { min, max };\n}\nfunction calcOrigin(source, target) {\n  let origin = 0.5;\n  const sourceLength = calcLength(source);\n  const targetLength = calcLength(target);\n  if (targetLength > sourceLength) {\n    origin = progress(target.min, target.max - sourceLength, source.min);\n  } else if (sourceLength > targetLength) {\n    origin = progress(source.min, source.max - targetLength, target.min);\n  }\n  return clamp(0, 1, origin);\n}\nexport {\n  applyConstraints,\n  calcOrigin,\n  calcRelativeAxisConstraints,\n  calcRelativeConstraints,\n  calcViewportAxisConstraints,\n  calcViewportConstraints,\n  defaultElastic,\n  rebaseAxisConstraints,\n  resolveAxisElastic,\n  resolveDragElastic,\n  resolvePointElastic\n};\n","const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n  const xDelta = distance(a.x, b.x);\n  const yDelta = distance(a.y, b.y);\n  return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\nexport {\n  distance,\n  distance2D\n};\n","import { addPointerEvent } from \"../../../events/add-pointer-event.mjs\";\nimport { extractEventInfo } from \"../../../events/event-info.mjs\";\nimport { distance2D } from \"../../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/utils/distance.mjs\";\nimport { pipe } from \"../../../external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/pipe.mjs\";\nimport { secondsToMilliseconds, millisecondsToSeconds } from \"../../../external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/time-conversion.mjs\";\nimport { frame, cancelFrame, frameData } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nimport { isPrimaryPointer } from \"../../../events/utils/is-primary-pointer.mjs\";\nclass PanSession {\n  constructor(event, handlers, { transformPagePoint, contextWindow, dragSnapToOrigin = false } = {}) {\n    this.startEvent = null;\n    this.lastMoveEvent = null;\n    this.lastMoveEventInfo = null;\n    this.handlers = {};\n    this.contextWindow = window;\n    this.updatePoint = () => {\n      if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n        return;\n      const info2 = getPanInfo(this.lastMoveEventInfo, this.history);\n      const isPanStarted = this.startEvent !== null;\n      const isDistancePastThreshold = distance2D(info2.offset, { x: 0, y: 0 }) >= 3;\n      if (!isPanStarted && !isDistancePastThreshold)\n        return;\n      const { point: point2 } = info2;\n      const { timestamp: timestamp2 } = frameData;\n      this.history.push({ ...point2, timestamp: timestamp2 });\n      const { onStart, onMove } = this.handlers;\n      if (!isPanStarted) {\n        onStart && onStart(this.lastMoveEvent, info2);\n        this.startEvent = this.lastMoveEvent;\n      }\n      onMove && onMove(this.lastMoveEvent, info2);\n    };\n    this.handlePointerMove = (event2, info2) => {\n      this.lastMoveEvent = event2;\n      this.lastMoveEventInfo = transformPoint(info2, this.transformPagePoint);\n      frame.update(this.updatePoint, true);\n    };\n    this.handlePointerUp = (event2, info2) => {\n      this.end();\n      const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n      if (this.dragSnapToOrigin)\n        resumeAnimation && resumeAnimation();\n      if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n        return;\n      const panInfo = getPanInfo(\n        event2.type === \"pointercancel\" ? this.lastMoveEventInfo : transformPoint(info2, this.transformPagePoint),\n        this.history\n      );\n      if (this.startEvent && onEnd) {\n        onEnd(event2, panInfo);\n      }\n      onSessionEnd && onSessionEnd(event2, panInfo);\n    };\n    if (!isPrimaryPointer(event))\n      return;\n    this.dragSnapToOrigin = dragSnapToOrigin;\n    this.handlers = handlers;\n    this.transformPagePoint = transformPagePoint;\n    this.contextWindow = contextWindow || window;\n    const info = extractEventInfo(event);\n    const initialInfo = transformPoint(info, this.transformPagePoint);\n    const { point } = initialInfo;\n    const { timestamp } = frameData;\n    this.history = [{ ...point, timestamp }];\n    const { onSessionStart } = handlers;\n    onSessionStart && onSessionStart(event, getPanInfo(initialInfo, this.history));\n    this.removeListeners = pipe(\n      addPointerEvent(\n        this.contextWindow,\n        \"pointermove\",\n        this.handlePointerMove\n      ),\n      addPointerEvent(\n        this.contextWindow,\n        \"pointerup\",\n        this.handlePointerUp\n      ),\n      addPointerEvent(\n        this.contextWindow,\n        \"pointercancel\",\n        this.handlePointerUp\n      )\n    );\n  }\n  updateHandlers(handlers) {\n    this.handlers = handlers;\n  }\n  end() {\n    this.removeListeners && this.removeListeners();\n    cancelFrame(this.updatePoint);\n  }\n}\nfunction transformPoint(info, transformPagePoint) {\n  return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n  return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n  return {\n    point,\n    delta: subtractPoint(point, lastDevicePoint(history)),\n    offset: subtractPoint(point, startDevicePoint(history)),\n    velocity: getVelocity(history, 0.1)\n  };\n}\nfunction startDevicePoint(history) {\n  return history[0];\n}\nfunction lastDevicePoint(history) {\n  return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n  if (history.length < 2) {\n    return { x: 0, y: 0 };\n  }\n  let i = history.length - 1;\n  let timestampedPoint = null;\n  const lastPoint = lastDevicePoint(history);\n  while (i >= 0) {\n    timestampedPoint = history[i];\n    if (lastPoint.timestamp - timestampedPoint.timestamp > secondsToMilliseconds(timeDelta)) {\n      break;\n    }\n    i--;\n  }\n  if (!timestampedPoint) {\n    return { x: 0, y: 0 };\n  }\n  const time = millisecondsToSeconds(\n    lastPoint.timestamp - timestampedPoint.timestamp\n  );\n  if (time === 0) {\n    return { x: 0, y: 0 };\n  }\n  const currentVelocity = {\n    x: (lastPoint.x - timestampedPoint.x) / time,\n    y: (lastPoint.y - timestampedPoint.y) / time\n  };\n  if (currentVelocity.x === Infinity) {\n    currentVelocity.x = 0;\n  }\n  if (currentVelocity.y === Infinity) {\n    currentVelocity.y = 0;\n  }\n  return currentVelocity;\n}\nexport {\n  PanSession\n};\n","const createAxis = () => ({ min: 0, max: 0 });\nfunction createBox() {\n  return {\n    x: createAxis(),\n    y: createAxis()\n  };\n}\nexport {\n  createAxis,\n  createBox\n};\n","function eachAxis(callback) {\n  return [callback(\"x\"), callback(\"y\")];\n}\nexport {\n  eachAxis\n};\n","import { isMotionValue } from \"../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nfunction isWillChangeMotionValue(value) {\n  return Boolean(isMotionValue(value) && value.add);\n}\nexport {\n  isWillChangeMotionValue\n};\n","import { isWillChangeMotionValue } from \"./is.mjs\";\nfunction addValueToWillChange(visualElement, key) {\n  const willChange = visualElement.getValue(\"willChange\");\n  if (isWillChangeMotionValue(willChange)) {\n    return willChange.add(key);\n  }\n}\nexport {\n  addValueToWillChange\n};\n","function convertBoundingBoxToBox({\n  top,\n  left,\n  right,\n  bottom\n}) {\n  return {\n    x: { min: left, max: right },\n    y: { min: top, max: bottom }\n  };\n}\nfunction transformBoxPoints(point, transformPoint) {\n  if (!transformPoint)\n    return point;\n  const topLeft = transformPoint({ x: point.left, y: point.top });\n  const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n  return {\n    top: topLeft.y,\n    left: topLeft.x,\n    bottom: bottomRight.y,\n    right: bottomRight.x\n  };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n  return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\nexport {\n  convertBoundingBoxToBox,\n  convertBoxToBoundingBox,\n  transformBoxPoints\n};\n","function translateAxis(axis, distance) {\n  axis.min = axis.min + distance;\n  axis.max = axis.max + distance;\n}\nexport {\n  translateAxis\n};\n","import { convertBoundingBoxToBox, transformBoxPoints } from \"../conversion.mjs\";\nimport { translateAxis } from \"../geometry/delta-apply.mjs\";\nfunction measureViewportBox(instance, transformPoint) {\n  return convertBoundingBoxToBox(\n    transformBoxPoints(instance.getBoundingClientRect(), transformPoint)\n  );\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n  const viewportBox = measureViewportBox(element, transformPagePoint);\n  const { scroll } = rootProjectionNode;\n  if (scroll) {\n    translateAxis(viewportBox.x, scroll.offset.x);\n    translateAxis(viewportBox.y, scroll.offset.y);\n  }\n  return viewportBox;\n}\nexport {\n  measurePageBox,\n  measureViewportBox\n};\n","import { doneCallbacks } from \"../../components/animate-presence/presence.mjs\";\nfunction isPresent(visualElement) {\n  return !doneCallbacks.has(visualElement.current);\n}\nexport {\n  isPresent\n};\n","function getContextWindow({ current }) {\n  return current ? current.ownerDocument.defaultView : null;\n}\nexport {\n  getContextWindow\n};\n","import { addPointerEvent } from \"../../../events/add-pointer-event.mjs\";\nimport { extractEventInfo } from \"../../../events/event-info.mjs\";\nimport { addDomEvent } from \"../../../events/add-dom-event.mjs\";\nimport { getGlobalLock } from \"./lock.mjs\";\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, calcViewportConstraints, rebaseAxisConstraints, calcOrigin, defaultElastic } from \"./utils/constraints.mjs\";\nimport { isHTMLElement } from \"./utils/is.mjs\";\nimport { PanSession } from \"../pan/PanSession.mjs\";\nimport { calcLength } from \"../../../projection/geometry/delta-calc.mjs\";\nimport { createBox } from \"../../../projection/geometry/models.mjs\";\nimport { eachAxis } from \"../../../projection/utils/each-axis.mjs\";\nimport { addValueToWillChange } from \"../../../value/use-will-change/add-will-change.mjs\";\nimport { measurePageBox } from \"../../../projection/utils/measure.mjs\";\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from \"../../../projection/conversion.mjs\";\nimport { animateMotionValue } from \"../../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/animation/interfaces/motion-value.mjs\";\nimport { invariant } from \"hey-listen\";\nimport { isPresent } from \"../../../state/utils/is-present.mjs\";\nimport { getContextWindow } from \"../../../utils/get-context-window.mjs\";\nimport { percent } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/types/numbers/units.mjs\";\nimport { frame } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nimport { mixNumber } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/utils/mix/number.mjs\";\nconst elementDragControls = /* @__PURE__ */ new WeakMap();\nclass VisualElementDragControls {\n  constructor(visualElement) {\n    this.openGlobalLock = null;\n    this.isDragging = false;\n    this.currentDirection = null;\n    this.originPoint = { x: 0, y: 0 };\n    this.constraints = false;\n    this.hasMutatedConstraints = false;\n    this.elastic = createBox();\n    this.visualElement = visualElement;\n  }\n  start(originEvent, { snapToCursor = false } = {}) {\n    if (!isPresent(this.visualElement))\n      return;\n    const onSessionStart = (event) => {\n      const { dragSnapToOrigin: dragSnapToOrigin2 } = this.getProps();\n      dragSnapToOrigin2 ? this.pauseAnimation() : this.stopAnimation();\n      if (snapToCursor) {\n        this.snapToCursor(extractEventInfo(event, \"page\").point);\n      }\n    };\n    const onStart = (event, info) => {\n      const { drag, dragPropagation, onDragStart } = this.getProps();\n      if (drag && !dragPropagation) {\n        if (this.openGlobalLock)\n          this.openGlobalLock();\n        this.openGlobalLock = getGlobalLock(drag);\n        if (!this.openGlobalLock)\n          return;\n      }\n      this.isDragging = true;\n      this.currentDirection = null;\n      this.resolveConstraints();\n      if (this.visualElement.projection) {\n        this.visualElement.projection.isAnimationBlocked = true;\n        this.visualElement.projection.target = void 0;\n      }\n      eachAxis((axis) => {\n        let current = this.getAxisMotionValue(axis).get() || 0;\n        if (percent.test(current)) {\n          const { projection } = this.visualElement;\n          if (projection && projection.layout) {\n            const measuredAxis = projection.layout.layoutBox[axis];\n            if (measuredAxis) {\n              const length = calcLength(measuredAxis);\n              current = length * (parseFloat(current) / 100);\n            }\n          }\n        }\n        this.originPoint[axis] = current;\n      });\n      if (onDragStart) {\n        frame.postRender(() => onDragStart(event, info));\n      }\n      addValueToWillChange(this.visualElement, \"transform\");\n      const state = this.visualElement.state;\n      state.setActive(\"whileDrag\", true);\n    };\n    const onMove = (event, info) => {\n      const {\n        dragPropagation,\n        dragDirectionLock,\n        onDirectionLock,\n        onDrag\n      } = this.getProps();\n      if (!dragPropagation && !this.openGlobalLock)\n        return;\n      const { offset } = info;\n      if (dragDirectionLock && this.currentDirection === null) {\n        this.currentDirection = getCurrentDirection(offset);\n        if (this.currentDirection !== null) {\n          onDirectionLock && onDirectionLock(this.currentDirection);\n        }\n        return;\n      }\n      this.updateAxis(\"x\", info.point, offset);\n      this.updateAxis(\"y\", info.point, offset);\n      this.visualElement.render();\n      onDrag && onDrag(event, info);\n    };\n    const onSessionEnd = (event, info) => this.stop(event, info);\n    const resumeAnimation = () => eachAxis(\n      (axis) => {\n        var _a;\n        return this.getAnimationState(axis) === \"paused\" && ((_a = this.getAxisMotionValue(axis).animation) == null ? void 0 : _a.play());\n      }\n    );\n    const { dragSnapToOrigin } = this.getProps();\n    this.panSession = new PanSession(\n      originEvent,\n      {\n        onSessionStart,\n        onStart,\n        onMove,\n        onSessionEnd,\n        resumeAnimation\n      },\n      {\n        transformPagePoint: this.visualElement.getTransformPagePoint(),\n        dragSnapToOrigin,\n        contextWindow: getContextWindow(this.visualElement)\n      }\n    );\n  }\n  stop(event, info) {\n    const isDragging = this.isDragging;\n    this.cancel();\n    if (!isDragging)\n      return;\n    const { velocity } = info;\n    this.startAnimation(velocity);\n    const { onDragEnd } = this.getProps();\n    if (onDragEnd) {\n      frame.postRender(() => onDragEnd(event, info));\n    }\n  }\n  cancel() {\n    this.isDragging = false;\n    const { projection, animationState } = this.visualElement;\n    if (projection) {\n      projection.isAnimationBlocked = false;\n    }\n    this.panSession && this.panSession.end();\n    this.panSession = void 0;\n    const { dragPropagation } = this.getProps();\n    if (!dragPropagation && this.openGlobalLock) {\n      this.openGlobalLock();\n      this.openGlobalLock = null;\n    }\n    const state = this.visualElement.state;\n    state.setActive(\"whileDrag\", false);\n  }\n  updateAxis(axis, _point, offset) {\n    const { drag } = this.getProps();\n    if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n      return;\n    const axisValue = this.getAxisMotionValue(axis);\n    let next = this.originPoint[axis] + offset[axis];\n    if (this.constraints && this.constraints[axis]) {\n      next = applyConstraints(\n        next,\n        this.constraints[axis],\n        this.elastic[axis]\n      );\n    }\n    axisValue.set(next);\n  }\n  resolveConstraints() {\n    var _a;\n    const { dragConstraints, dragElastic } = this.getProps();\n    const layout = this.visualElement.projection && !this.visualElement.projection.layout ? this.visualElement.projection.measure(false) : (_a = this.visualElement.projection) == null ? void 0 : _a.layout;\n    const prevConstraints = this.constraints;\n    if (dragConstraints && isHTMLElement(dragConstraints)) {\n      if (!this.constraints) {\n        this.constraints = this.resolveRefConstraints();\n      }\n    } else {\n      if (dragConstraints && layout) {\n        this.constraints = calcRelativeConstraints(\n          layout.layoutBox,\n          dragConstraints\n        );\n      } else {\n        this.constraints = false;\n      }\n    }\n    this.elastic = resolveDragElastic(dragElastic);\n    if (prevConstraints !== this.constraints && layout && this.constraints && !this.hasMutatedConstraints) {\n      eachAxis((axis) => {\n        if (this.constraints !== false && this.getAxisMotionValue(axis)) {\n          this.constraints[axis] = rebaseAxisConstraints(\n            layout.layoutBox[axis],\n            this.constraints[axis]\n          );\n        }\n      });\n    }\n  }\n  resolveRefConstraints() {\n    const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n    if (!constraints || !isHTMLElement(constraints))\n      return false;\n    const constraintsElement = constraints;\n    invariant(\n      constraintsElement !== null,\n      \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\"\n    );\n    const { projection } = this.visualElement;\n    if (!projection || !projection.layout)\n      return false;\n    const constraintsBox = measurePageBox(\n      constraintsElement,\n      projection.root,\n      this.visualElement.getTransformPagePoint()\n    );\n    let measuredConstraints = calcViewportConstraints(\n      projection.layout.layoutBox,\n      constraintsBox\n    );\n    if (onMeasureDragConstraints) {\n      const userConstraints = onMeasureDragConstraints(\n        convertBoxToBoundingBox(measuredConstraints)\n      );\n      this.hasMutatedConstraints = !!userConstraints;\n      if (userConstraints) {\n        measuredConstraints = convertBoundingBoxToBox(userConstraints);\n      }\n    }\n    return measuredConstraints;\n  }\n  startAnimation(velocity) {\n    const {\n      drag,\n      dragMomentum,\n      dragElastic,\n      dragTransition,\n      dragSnapToOrigin,\n      onDragTransitionEnd\n    } = this.getProps();\n    const constraints = this.constraints || {};\n    const momentumAnimations = eachAxis((axis) => {\n      if (!shouldDrag(axis, drag, this.currentDirection)) {\n        return;\n      }\n      let transition = constraints && constraints[axis] || {};\n      if (dragSnapToOrigin)\n        transition = { min: 0, max: 0 };\n      const bounceStiffness = dragElastic ? 200 : 1e6;\n      const bounceDamping = dragElastic ? 40 : 1e7;\n      const inertia = {\n        type: \"inertia\",\n        velocity: dragMomentum ? velocity[axis] : 0,\n        bounceStiffness,\n        bounceDamping,\n        timeConstant: 750,\n        restDelta: 1,\n        restSpeed: 10,\n        ...dragTransition,\n        ...transition\n      };\n      return this.startAxisValueAnimation(axis, inertia);\n    });\n    return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n  }\n  startAxisValueAnimation(axis, transition) {\n    const axisValue = this.getAxisMotionValue(axis);\n    addValueToWillChange(this.visualElement, axis);\n    return axisValue.start(\n      animateMotionValue(\n        axis,\n        axisValue,\n        0,\n        transition,\n        this.visualElement,\n        false\n      )\n    );\n  }\n  stopAnimation() {\n    if (!isPresent(this.visualElement))\n      return;\n    eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n  }\n  pauseAnimation() {\n    eachAxis((axis) => {\n      var _a;\n      return (_a = this.getAxisMotionValue(axis).animation) == null ? void 0 : _a.pause();\n    });\n  }\n  getAnimationState(axis) {\n    var _a;\n    return (_a = this.getAxisMotionValue(axis).animation) == null ? void 0 : _a.state;\n  }\n  /**\n   * Drag works differently depending on which props are provided.\n   *\n   * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n   * - Otherwise, we apply the delta to the x/y motion values.\n   */\n  getAxisMotionValue(axis) {\n    const dragKey = `_drag${axis.toUpperCase()}`;\n    const props = this.visualElement.getProps();\n    const externalMotionValue = props[dragKey];\n    return externalMotionValue || this.visualElement.getValue(\n      axis,\n      (props.initial ? props.initial[axis] : void 0) || 0\n    );\n  }\n  snapToCursor(point) {\n    eachAxis((axis) => {\n      const { drag } = this.getProps();\n      if (!shouldDrag(axis, drag, this.currentDirection))\n        return;\n      const { projection } = this.visualElement;\n      const axisValue = this.getAxisMotionValue(axis);\n      if (projection && projection.layout) {\n        const { min, max } = projection.layout.layoutBox[axis];\n        axisValue.set(point[axis] - mixNumber(min, max, 0.5));\n      }\n    });\n  }\n  /**\n   * When the viewport resizes we want to check if the measured constraints\n   * have changed and, if so, reposition the element within those new constraints\n   * relative to where it was before the resize.\n   */\n  scalePositionWithinConstraints() {\n    if (!this.visualElement.current)\n      return;\n    const { drag, dragConstraints } = this.getProps();\n    const { projection } = this.visualElement;\n    if (!isHTMLElement(dragConstraints) || !projection || !this.constraints)\n      return;\n    this.stopAnimation();\n    const boxProgress = { x: 0, y: 0 };\n    eachAxis((axis) => {\n      const axisValue = this.getAxisMotionValue(axis);\n      if (axisValue && this.constraints !== false) {\n        const latest = axisValue.get();\n        boxProgress[axis] = calcOrigin(\n          { min: latest, max: latest },\n          this.constraints[axis]\n        );\n      }\n    });\n    const { transformTemplate } = this.visualElement.getProps();\n    this.visualElement.current.style.transform = transformTemplate ? transformTemplate({}, \"\") : \"none\";\n    projection.root && projection.root.updateScroll();\n    projection.updateLayout();\n    this.resolveConstraints();\n    eachAxis((axis) => {\n      if (!shouldDrag(axis, drag, null))\n        return;\n      const axisValue = this.getAxisMotionValue(axis);\n      const { min, max } = this.constraints[axis];\n      axisValue.set(mixNumber(min, max, boxProgress[axis]));\n    });\n  }\n  addListeners() {\n    if (!this.visualElement.current)\n      return;\n    elementDragControls.set(this.visualElement, this);\n    const element = this.visualElement.current;\n    const stopPointerListener = addPointerEvent(\n      element,\n      \"pointerdown\",\n      (event) => {\n        const { drag, dragListener = true } = this.getProps();\n        drag && dragListener && this.start(event);\n      }\n    );\n    const measureDragConstraints = () => {\n      const { dragConstraints } = this.getProps();\n      if (isHTMLElement(dragConstraints)) {\n        this.constraints = this.resolveRefConstraints();\n      }\n    };\n    const { projection } = this.visualElement;\n    const stopMeasureLayoutListener = projection.addEventListener(\n      \"measure\",\n      measureDragConstraints\n    );\n    if (projection && !projection.layout) {\n      projection.root && projection.root.updateScroll();\n      projection.updateLayout();\n    }\n    frame.read(measureDragConstraints);\n    const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n    const stopLayoutUpdateListener = projection.addEventListener(\n      \"didUpdate\",\n      ({ delta, hasLayoutChanged }) => {\n        if (this.isDragging && hasLayoutChanged) {\n          eachAxis((axis) => {\n            const motionValue = this.getAxisMotionValue(axis);\n            if (!motionValue)\n              return;\n            this.originPoint[axis] += delta[axis].translate;\n            motionValue.set(\n              motionValue.get() + delta[axis].translate\n            );\n          });\n          this.visualElement.render();\n        }\n      }\n    );\n    return () => {\n      stopResizeListener();\n      stopPointerListener();\n      stopMeasureLayoutListener();\n      stopLayoutUpdateListener && stopLayoutUpdateListener();\n    };\n  }\n  getProps() {\n    const props = this.visualElement.getProps();\n    const {\n      drag = false,\n      dragDirectionLock = false,\n      dragPropagation = false,\n      dragConstraints = false,\n      dragElastic = defaultElastic,\n      dragMomentum = true\n    } = props;\n    return {\n      ...props,\n      drag,\n      dragDirectionLock,\n      dragPropagation,\n      dragConstraints,\n      dragElastic,\n      dragMomentum\n    };\n  }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n  return (drag === true || drag === direction) && (currentDirection === null || currentDirection === direction);\n}\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n  let direction = null;\n  if (Math.abs(offset.y) > lockThreshold) {\n    direction = \"y\";\n  } else if (Math.abs(offset.x) > lockThreshold) {\n    direction = \"x\";\n  }\n  return direction;\n}\nexport {\n  VisualElementDragControls,\n  elementDragControls\n};\n","import { Feature } from \"../../feature.mjs\";\nimport { VisualElementDragControls } from \"./VisualElementDragControls.mjs\";\nimport { noop } from \"../../../external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nclass DragGesture extends Feature {\n  constructor(state) {\n    super(state);\n    this.removeGroupControls = noop;\n    this.removeListeners = noop;\n    this.controls = new VisualElementDragControls(state.visualElement);\n  }\n  mount() {\n    const { dragControls } = this.state.options;\n    if (dragControls) {\n      this.removeGroupControls = dragControls.subscribe(this.controls);\n    }\n    this.removeListeners = this.controls.addListeners() || noop;\n  }\n  unmount() {\n    this.removeGroupControls();\n    this.removeListeners();\n  }\n}\nexport {\n  DragGesture\n};\n","import { Feature } from \"../feature.mjs\";\nimport { addScaleCorrector } from \"../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/styles/scale-correction.mjs\";\nimport { defaultScaleCorrector } from \"./config.mjs\";\nimport { globalProjectionState } from \"../../external/.pnpm/framer-motion@12.23.12/external/framer-motion/dist/es/projection/node/state.mjs\";\nclass LayoutFeature extends Feature {\n  constructor(state) {\n    super(state);\n    addScaleCorrector(defaultScaleCorrector);\n  }\n  beforeUpdate() {\n    this.state.willUpdate(\"beforeUpdate\");\n  }\n  update() {\n    this.didUpdate();\n  }\n  didUpdate() {\n    var _a, _b;\n    if (this.state.options.layout || this.state.options.layoutId || this.state.options.drag) {\n      (_b = (_a = this.state.visualElement.projection) == null ? void 0 : _a.root) == null ? void 0 : _b.didUpdate();\n    }\n  }\n  mount() {\n    var _a;\n    const options = this.state.options;\n    const layoutGroup = this.state.options.layoutGroup;\n    if (options.layout || options.layoutId) {\n      const projection = this.state.visualElement.projection;\n      if (projection) {\n        projection.promote();\n        (_a = layoutGroup == null ? void 0 : layoutGroup.group) == null ? void 0 : _a.add(projection);\n      }\n      globalProjectionState.hasEverUpdated = true;\n    }\n    this.didUpdate();\n  }\n  beforeUnmount() {\n    const projection = this.state.visualElement.projection;\n    if (projection) {\n      this.state.willUpdate(\"beforeUnmount\");\n      if (this.state.options.layoutId) {\n        projection.isPresent = false;\n        projection.relegate();\n      } else if (this.state.options.layout) {\n        this.state.isSafeToRemove = true;\n      }\n    }\n  }\n  unmount() {\n    const layoutGroup = this.state.options.layoutGroup;\n    const projection = this.state.visualElement.projection;\n    if (projection) {\n      if ((layoutGroup == null ? void 0 : layoutGroup.group) && (this.state.options.layout || this.state.options.layoutId)) {\n        layoutGroup.group.remove(projection);\n      }\n      this.didUpdate();\n    }\n  }\n}\nexport {\n  LayoutFeature\n};\n","import { PanSession } from \"./PanSession.mjs\";\nimport { addPointerEvent } from \"../../../events/add-pointer-event.mjs\";\nimport { Feature } from \"../../feature.mjs\";\nimport { noop } from \"../../../external/.pnpm/motion-utils@12.23.6/external/motion-utils/dist/es/noop.mjs\";\nimport { getContextWindow } from \"../../../utils/get-context-window.mjs\";\nimport { frame } from \"../../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/frameloop/frame.mjs\";\nfunction asyncHandler(handler) {\n  return (event, info) => {\n    if (handler) {\n      frame.postRender(() => handler(event, info));\n    }\n  };\n}\nclass PanGesture extends Feature {\n  constructor() {\n    super(...arguments);\n    this.removePointerDownListener = noop;\n  }\n  onPointerDown(pointerDownEvent) {\n    this.session = new PanSession(\n      pointerDownEvent,\n      this.createPanHandlers(),\n      {\n        transformPagePoint: this.state.visualElement.getTransformPagePoint(),\n        contextWindow: getContextWindow(this.state.visualElement)\n      }\n    );\n  }\n  createPanHandlers() {\n    return {\n      onSessionStart: asyncHandler((_, info) => {\n        const { onPanSessionStart } = this.state.options;\n        onPanSessionStart && onPanSessionStart(_, info);\n      }),\n      onStart: asyncHandler((_, info) => {\n        const { onPanStart } = this.state.options;\n        onPanStart && onPanStart(_, info);\n      }),\n      onMove: (event, info) => {\n        const { onPan } = this.state.options;\n        onPan && onPan(event, info);\n      },\n      onEnd: (event, info) => {\n        const { onPanEnd } = this.state.options;\n        delete this.session;\n        if (onPanEnd) {\n          frame.postRender(() => onPanEnd(event, info));\n        }\n      }\n    };\n  }\n  mount() {\n    this.removePointerDownListener = addPointerEvent(\n      this.state.element,\n      \"pointerdown\",\n      this.onPointerDown.bind(this)\n    );\n  }\n  update() {\n  }\n  unmount() {\n    this.removePointerDownListener();\n    this.session && this.session.end();\n  }\n}\nexport {\n  PanGesture\n};\n","import { AnimationFeature } from \"./animation/animation.mjs\";\nimport { PressGesture } from \"./gestures/press/index.mjs\";\nimport { HoverGesture } from \"./gestures/hover/index.mjs\";\nimport { InViewGesture } from \"./gestures/in-view/index.mjs\";\nimport { FocusGesture } from \"./gestures/focus/index.mjs\";\nimport { ProjectionFeature } from \"./layout/projection.mjs\";\nimport { DragGesture } from \"./gestures/drag/index.mjs\";\nimport { LayoutFeature } from \"./layout/layout.mjs\";\nimport { PanGesture } from \"./gestures/pan/index.mjs\";\nconst domMax = [\n  AnimationFeature,\n  PressGesture,\n  HoverGesture,\n  InViewGesture,\n  FocusGesture,\n  ProjectionFeature,\n  PanGesture,\n  DragGesture,\n  LayoutFeature\n];\nexport {\n  domMax\n};\n","import { computed } from \"vue\";\nimport { createContext } from \"../../utils/createContext.mjs\";\nconst defaultConfig = {\n  reducedMotion: \"never\",\n  transition: void 0,\n  nonce: void 0\n};\nconst [injectMotionConfig, provideMotionConfig] = createContext(\"MotionConfig\");\nfunction useMotionConfig() {\n  return injectMotionConfig(computed(() => defaultConfig));\n}\nexport {\n  defaultConfig,\n  injectMotionConfig,\n  provideMotionConfig,\n  useMotionConfig\n};\n","import { createContext } from \"../../utils/createContext.mjs\";\nconst [useLazyMotionContext, lazyMotionContextProvider] = createContext(\"LazyMotionContext\");\nexport {\n  lazyMotionContextProvider,\n  useLazyMotionContext\n};\n","import { injectMotion, injectLayoutGroup, provideMotion } from \"../context.mjs\";\nimport { getMotionElement } from \"../hooks/use-motion-elm.mjs\";\nimport { useLazyMotionContext } from \"../lazy-motion/context.mjs\";\nimport { checkMotionIsHidden } from \"./utils.mjs\";\nimport { injectAnimatePresence } from \"../animate-presence/presence.mjs\";\nimport { MotionState } from \"../../state/motion-state.mjs\";\nimport { convertSvgStyleToAttributes, createStyles } from \"../../state/style.mjs\";\nimport { warning, invariant } from \"hey-listen\";\nimport { ref, useAttrs, getCurrentInstance, onBeforeMount, onMounted, onBeforeUnmount, onUnmounted, onBeforeUpdate, onUpdated } from \"vue\";\nimport { useMotionConfig } from \"../motion-config/context.mjs\";\nimport { isMotionValue } from \"../../external/.pnpm/motion-dom@12.23.12/external/motion-dom/dist/es/value/utils/is-motion-value.mjs\";\nfunction useMotionState(props) {\n  var _a;\n  const parentState = injectMotion(null);\n  const layoutGroup = injectLayoutGroup({});\n  const config = useMotionConfig();\n  const animatePresenceContext = injectAnimatePresence({});\n  const lazyMotionContext = useLazyMotionContext({\n    features: ref([]),\n    strict: false\n  });\n  if (process.env.NODE_ENV !== \"production\" && ((_a = props.features) == null ? void 0 : _a.length) && lazyMotionContext.strict) {\n    const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n    props.ignoreStrict ? warning(false, strictMessage) : invariant(false, strictMessage);\n  }\n  const attrs = useAttrs();\n  function getLayoutId() {\n    if (layoutGroup.id && props.layoutId)\n      return `${layoutGroup.id}-${props.layoutId}`;\n    return props.layoutId || void 0;\n  }\n  function getProps() {\n    return {\n      ...props,\n      lazyMotionContext,\n      layoutId: getLayoutId(),\n      transition: props.transition ?? config.value.transition,\n      layoutGroup,\n      motionConfig: config.value,\n      inViewOptions: props.inViewOptions ?? config.value.inViewOptions,\n      animatePresenceContext,\n      initial: animatePresenceContext.initial === false ? animatePresenceContext.initial : props.initial === true ? void 0 : props.initial\n    };\n  }\n  function getMotionProps() {\n    return {\n      ...attrs,\n      ...getProps()\n    };\n  }\n  const state = new MotionState(\n    getMotionProps(),\n    parentState\n  );\n  provideMotion(state);\n  function getAttrs() {\n    var _a2;\n    const isSVG = state.type === \"svg\";\n    const attrsProps = { ...attrs };\n    Object.keys(attrs).forEach((key) => {\n      if (isMotionValue(attrs[key]))\n        attrsProps[key] = attrs[key].get();\n    });\n    let styleProps = {\n      ...props.style,\n      ...isSVG ? {} : ((_a2 = state.visualElement) == null ? void 0 : _a2.latestValues) || state.baseTarget\n    };\n    if (isSVG) {\n      const { attrs: attrs2, style: style2 } = convertSvgStyleToAttributes({\n        ...state.isMounted() ? state.target : state.baseTarget,\n        ...styleProps\n      });\n      if (style2.transform || attrs2.transformOrigin) {\n        style2.transformOrigin = attrs2.transformOrigin ?? \"50% 50%\";\n        delete attrs2.transformOrigin;\n      }\n      if (style2.transform) {\n        style2.transformBox = style2.transformBox ?? \"fill-box\";\n        delete attrs2.transformBox;\n      }\n      Object.assign(attrsProps, attrs2);\n      styleProps = style2;\n    }\n    if (props.drag && props.dragListener !== false) {\n      Object.assign(styleProps, {\n        userSelect: \"none\",\n        WebkitUserSelect: \"none\",\n        WebkitTouchCallout: \"none\",\n        touchAction: props.drag === true ? \"none\" : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`\n      });\n    }\n    const style = createStyles(styleProps);\n    if (style)\n      attrsProps.style = style;\n    return attrsProps;\n  }\n  const instance = getCurrentInstance().proxy;\n  onBeforeMount(() => {\n    state.beforeMount();\n  });\n  onMounted(() => {\n    state.mount(getMotionElement(instance.$el), getMotionProps(), checkMotionIsHidden(instance));\n  });\n  onBeforeUnmount(() => state.beforeUnmount());\n  onUnmounted(() => {\n    const el = getMotionElement(instance.$el);\n    if (!(el == null ? void 0 : el.isConnected)) {\n      state.unmount();\n    }\n  });\n  onBeforeUpdate(() => {\n    state.beforeUpdate();\n  });\n  onUpdated(() => {\n    state.update(getMotionProps());\n  });\n  return {\n    getProps,\n    getAttrs,\n    layoutGroup,\n    state\n  };\n}\nexport {\n  useMotionState\n};\n","import { warning } from \"hey-listen\";\nconst MotionComponentProps = {\n  \"ignoreStrict\": { type: Boolean },\n  \"forwardMotionProps\": { type: Boolean, default: false },\n  \"asChild\": { type: Boolean, default: false },\n  \"hover\": { type: [String, Array, Object] },\n  \"press\": { type: [String, Array, Object] },\n  \"inView\": { type: [String, Array, Object] },\n  \"focus\": { type: [String, Array, Object] },\n  \"whileDrag\": { type: [String, Array, Object] },\n  \"whileHover\": { type: [String, Array, Object], default: ({ hover }) => {\n    if (process.env.NODE_ENV === \"development\" && hover) {\n      warning(true, \"hover is deprecated. Use whileHover instead.\");\n    }\n    return hover;\n  } },\n  \"whilePress\": { type: [String, Array, Object], default: ({ press }) => {\n    if (process.env.NODE_ENV === \"development\" && press) {\n      warning(true, \"press is deprecated. Use whilePress instead.\");\n    }\n    return press;\n  } },\n  \"whileInView\": { type: [String, Array, Object], default: ({ inView }) => {\n    if (process.env.NODE_ENV === \"development\" && inView) {\n      warning(true, \"inView is deprecated. Use whileInView instead.\");\n    }\n    return inView;\n  } },\n  \"whileFocus\": { type: [String, Array, Object], default: ({ focus }) => {\n    if (process.env.NODE_ENV === \"development\" && focus) {\n      warning(true, \"focus is deprecated. Use whileFocus instead.\");\n    }\n    return focus;\n  } },\n  \"custom\": { type: [String, Number, Object, Array] },\n  \"initial\": { type: [String, Array, Object, Boolean], default: void 0 },\n  \"animate\": { type: [String, Array, Object], default: void 0 },\n  \"exit\": { type: [String, Array, Object] },\n  \"variants\": { type: Object },\n  \"inherit\": { type: Boolean },\n  \"style\": { type: Object },\n  \"transformTemplate\": { type: Function },\n  \"transition\": { type: Object },\n  \"layoutGroup\": { type: Object },\n  \"motionConfig\": { type: Object },\n  \"onAnimationComplete\": { type: Function },\n  \"onUpdate\": { type: Function },\n  \"layout\": { type: [Boolean, String], default: false },\n  \"layoutId\": { type: String, default: void 0 },\n  \"layoutScroll\": { type: Boolean, default: false },\n  \"layoutRoot\": { type: Boolean, default: false },\n  \"data-framer-portal-id\": { type: String },\n  \"crossfade\": { type: Boolean, default: true },\n  \"layoutDependency\": { type: null },\n  \"onBeforeLayoutMeasure\": { type: Function },\n  \"onLayoutMeasure\": { type: Function },\n  \"onLayoutAnimationStart\": { type: Function },\n  \"onLayoutAnimationComplete\": { type: Function },\n  \"globalPressTarget\": { type: Boolean },\n  \"onPressStart\": { type: Function },\n  \"onPress\": { type: Function },\n  \"onPressCancel\": { type: Function },\n  \"onHoverStart\": { type: Function },\n  \"onHoverEnd\": { type: Function },\n  \"inViewOptions\": { type: Object },\n  \"onViewportEnter\": { type: Function },\n  \"onViewportLeave\": { type: Function },\n  \"drag\": { type: [Boolean, String] },\n  \"dragSnapToOrigin\": { type: Boolean },\n  \"dragDirectionLock\": { type: Boolean },\n  \"dragPropagation\": { type: Boolean },\n  \"dragConstraints\": { type: [Boolean, Object] },\n  \"dragElastic\": { type: [Boolean, Number, Object], default: 0.5 },\n  \"dragMomentum\": { type: Boolean, default: true },\n  \"dragTransition\": { type: Object },\n  \"dragListener\": { type: Boolean, default: true },\n  \"dragControls\": { type: Object },\n  \"onDragStart\": { type: Function },\n  \"onDragEnd\": { type: Function },\n  \"onDrag\": { type: Function },\n  \"onDirectionLock\": { type: Function },\n  \"onDragTransitionEnd\": { type: Function },\n  \"onMeasureDragConstraints\": { type: Function },\n  \"onPanSessionStart\": { type: Function },\n  \"onPanStart\": { type: Function },\n  \"onPan\": { type: Function },\n  \"onPanEnd\": { type: Function }\n};\nexport {\n  MotionComponentProps\n};\n","import { getMotionElement } from \"../hooks/use-motion-elm.mjs\";\nimport { defineComponent, h, Comment, mergeProps, cloneVNode } from \"vue\";\nimport { useMotionState } from \"./use-motion-state.mjs\";\nimport { MotionComponentProps } from \"./props.mjs\";\nfunction checkMotionIsHidden(instance) {\n  var _a;\n  const isHidden = ((_a = getMotionElement(instance.$el)) == null ? void 0 : _a.style.display) === \"none\";\n  const hasTransition = instance.$.vnode.transition;\n  return hasTransition && isHidden;\n}\nconst componentMaxCache = /* @__PURE__ */ new Map();\nconst componentMiniCache = /* @__PURE__ */ new Map();\nfunction renderSlotFragments(fragments) {\n  if (!Array.isArray(fragments))\n    return [fragments];\n  const result = [];\n  for (const item of fragments) {\n    if (Array.isArray(item))\n      result.push(...item);\n    else\n      result.push(item);\n  }\n  return result;\n}\nconst SELF_CLOSING_TAGS = [\"area\", \"img\", \"input\"];\nfunction handlePrimitiveAndSlot(asTag, allAttrs, slots) {\n  var _a, _b;\n  if (typeof asTag === \"string\" && SELF_CLOSING_TAGS.includes(asTag)) {\n    return h(asTag, allAttrs);\n  }\n  if (asTag === \"template\") {\n    if (!slots.default)\n      return null;\n    const childrens = renderSlotFragments(slots.default());\n    const firstNonCommentChildrenIndex = childrens.findIndex((child) => child.type !== Comment);\n    if (firstNonCommentChildrenIndex === -1)\n      return childrens;\n    const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex];\n    (_a = firstNonCommentChildren.props) == null ? true : delete _a.ref;\n    const mergedProps = firstNonCommentChildren.props ? mergeProps(allAttrs, firstNonCommentChildren.props) : allAttrs;\n    if (allAttrs.class && ((_b = firstNonCommentChildren.props) == null ? void 0 : _b.class))\n      delete firstNonCommentChildren.props.class;\n    const cloned = cloneVNode(firstNonCommentChildren, mergedProps);\n    for (const prop in mergedProps) {\n      if (prop.startsWith(\"on\")) {\n        cloned.props || (cloned.props = {});\n        cloned.props[prop] = mergedProps[prop];\n      }\n    }\n    if (childrens.length === 1)\n      return cloned;\n    childrens[firstNonCommentChildrenIndex] = cloned;\n    return childrens;\n  }\n  return null;\n}\nfunction createMotionComponent(component, options = {}) {\n  var _a;\n  const isString = typeof component === \"string\";\n  const name = isString ? component : component.name || \"\";\n  const componentCache = ((_a = options.features) == null ? void 0 : _a.length) > 0 ? componentMaxCache : componentMiniCache;\n  if (isString && (componentCache == null ? void 0 : componentCache.has(component))) {\n    return componentCache.get(component);\n  }\n  const motionComponent = defineComponent({\n    inheritAttrs: false,\n    props: {\n      ...MotionComponentProps,\n      features: {\n        type: Object,\n        default: () => options.features || []\n      },\n      as: { type: [String, Object], default: component || \"div\" }\n    },\n    name: name ? `motion.${name}` : \"Motion\",\n    setup(props, { slots }) {\n      const { getProps, getAttrs, state } = useMotionState(props);\n      function onVnodeUpdated() {\n        const el = state.element;\n        const isComponent = typeof props.as === \"object\";\n        if ((!isComponent || props.asChild) && el) {\n          const { style } = getAttrs();\n          if (style) {\n            for (const [key, val] of Object.entries(style)) {\n              el.style[key] = val;\n            }\n          }\n        }\n      }\n      return () => {\n        const motionProps = getProps();\n        const motionAttrs = getAttrs();\n        const asTag = props.asChild ? \"template\" : props.as;\n        const allAttrs = {\n          ...options.forwardMotionProps || props.forwardMotionProps ? motionProps : {},\n          ...motionAttrs,\n          onVnodeUpdated\n        };\n        const primitiveOrSlotResult = handlePrimitiveAndSlot(asTag, allAttrs, slots);\n        if (primitiveOrSlotResult !== null) {\n          return primitiveOrSlotResult;\n        }\n        return h(asTag, {\n          ...allAttrs\n        }, slots);\n      };\n    }\n  });\n  if (isString) {\n    componentCache == null ? void 0 : componentCache.set(component, motionComponent);\n  }\n  return motionComponent;\n}\nfunction createMotionComponentWithFeatures(features = []) {\n  return new Proxy({}, {\n    get(target, prop) {\n      if (prop === \"create\") {\n        return (component, options) => createMotionComponent(component, {\n          ...options,\n          features\n        });\n      }\n      return createMotionComponent(prop, {\n        features\n      });\n    }\n  });\n}\nexport {\n  checkMotionIsHidden,\n  createMotionComponent,\n  createMotionComponentWithFeatures\n};\n","import { createMotionComponentWithFeatures } from \"./utils.mjs\";\nimport { domMax } from \"../../features/dom-max.mjs\";\nconst motion = createMotionComponentWithFeatures(domMax);\nconst Motion = motion.create(\"div\");\nexport {\n  Motion,\n  motion\n};\n"],"version":3}