{"mappings":"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","names":["createDOMVisualElement","element","options","node","isSVGElement","isSVGSVGElement","SVGVisualElement","HTMLVisualElement","visualElementStore","createObjectVisualElement","subject","ObjectVisualElement","isSingleValue","subject","keyframes","isMotionValue","isDOMKeyframes","animateSubject","options","scope","animations","animateSingleValue","subjects","resolveSubjects","numSubjects","invariant","i","thisSubject","createVisualElement","createDOMVisualElement","createObjectVisualElement","visualElementStore","visualElement","transition","animateTarget","animateSequence","sequence","options","scope","animations","processedSequence","segment","callback","mv","motionValue","createAnimationsFromSequence","spring","keyframes","transition","subject","animateSubject","isSequence","value","createScopedAnimate","options","scope","reduceMotion","scopedAnimate","subjectOrSequence","optionsOrKeyframes","animations","animationOnComplete","onComplete","sequenceOptions","animateSequence","rest","animateSubject","animation","GroupAnimationWithThen","removeItem","animate"],"sources":["../esm/npm/framer-motion@12.38.0/node_modules/framer-motion/src/animation/utils/create-visual-element.ts","../esm/npm/framer-motion@12.38.0/node_modules/framer-motion/src/animation/animate/subject.ts","../esm/npm/framer-motion@12.38.0/node_modules/framer-motion/src/animation/animate/sequence.ts","../esm/npm/framer-motion@12.38.0/node_modules/framer-motion/src/animation/animate/index.ts"],"sourcesContent":["import {\n    HTMLVisualElement,\n    isSVGElement,\n    isSVGSVGElement,\n    ObjectVisualElement,\n    SVGVisualElement,\n    visualElementStore,\n} from \"motion-dom\"\n\nexport function createDOMVisualElement(element: HTMLElement | SVGElement) {\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 =\n        isSVGElement(element) \u0026\u0026 !isSVGSVGElement(element)\n            ? new SVGVisualElement(options)\n            : new HTMLVisualElement(options)\n\n    node.mount(element as any)\n\n    visualElementStore.set(element, node)\n}\n\nexport function createObjectVisualElement(subject: Object) {\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\n    node.mount(subject)\n\n    visualElementStore.set(subject, node)\n}\n","import {\n    animateTarget,\n    AnimationPlaybackControlsWithThen,\n    AnimationScope,\n    AnyResolvedKeyframe,\n    DOMKeyframesDefinition,\n    AnimationOptions as DynamicAnimationOptions,\n    ElementOrSelector,\n    isMotionValue,\n    MotionValue,\n    TargetAndTransition,\n    UnresolvedValueKeyframe,\n    ValueAnimationTransition,\n    visualElementStore,\n} from \"motion-dom\"\nimport { invariant } from \"motion-utils\"\nimport { ObjectTarget } from \"../sequence/types\"\nimport {\n    createDOMVisualElement,\n    createObjectVisualElement,\n} from \"../utils/create-visual-element\"\nimport { isDOMKeyframes } from \"../utils/is-dom-keyframes\"\nimport { resolveSubjects } from \"./resolve-subjects\"\nimport { animateSingleValue } from \"motion-dom\"\n\nexport type AnimationSubject = Element | MotionValue\u003cany\u003e | any\n\nfunction isSingleValue(\n    subject: unknown,\n    keyframes: unknown\n): subject is MotionValue | AnyResolvedKeyframe {\n    return (\n        isMotionValue(subject) ||\n        typeof subject === \"number\" ||\n        (typeof subject === \"string\" \u0026\u0026 !isDOMKeyframes(keyframes))\n    )\n}\n\n/**\n * Animate a string\n */\nexport function animateSubject(\n    value: string | MotionValue\u003cstring\u003e,\n    keyframes: string | UnresolvedValueKeyframe\u003cstring\u003e[],\n    options?: ValueAnimationTransition\u003cstring\u003e\n): AnimationPlaybackControlsWithThen[]\n/**\n * Animate a number\n */\nexport function animateSubject(\n    value: number | MotionValue\u003cnumber\u003e,\n    keyframes: number | UnresolvedValueKeyframe\u003cnumber\u003e[],\n    options?: ValueAnimationTransition\u003cnumber\u003e\n): AnimationPlaybackControlsWithThen[]\n/**\n * Animate a Element\n */\nexport function animateSubject(\n    element: ElementOrSelector,\n    keyframes: DOMKeyframesDefinition,\n    options?: DynamicAnimationOptions,\n    scope?: AnimationScope\n): AnimationPlaybackControlsWithThen[]\n/**\n * Animate a object\n */\nexport function animateSubject\u003cO extends Object\u003e(\n    object: O | O[],\n    keyframes: ObjectTarget\u003cO\u003e,\n    options?: DynamicAnimationOptions\n): AnimationPlaybackControlsWithThen[]\n/**\n * Implementation\n */\nexport function animateSubject\u003cO extends Object\u003e(\n    subject:\n        | MotionValue\u003cnumber\u003e\n        | MotionValue\u003cstring\u003e\n        | number\n        | string\n        | ElementOrSelector\n        | O\n        | O[],\n    keyframes:\n        | number\n        | string\n        | UnresolvedValueKeyframe\u003cnumber\u003e[]\n        | UnresolvedValueKeyframe\u003cstring\u003e[]\n        | DOMKeyframesDefinition\n        | ObjectTarget\u003cO\u003e,\n    options?:\n        | ValueAnimationTransition\u003cnumber\u003e\n        | ValueAnimationTransition\u003cstring\u003e\n        | DynamicAnimationOptions,\n    scope?: AnimationScope\n): AnimationPlaybackControlsWithThen[] {\n    const animations: AnimationPlaybackControlsWithThen[] = []\n\n    if (isSingleValue(subject, keyframes)) {\n        animations.push(\n            animateSingleValue(\n                subject,\n                isDOMKeyframes(keyframes)\n                    ? (keyframes as any).default || keyframes\n                    : keyframes,\n                options ? (options as any).default || options : options\n            )\n        )\n    } else {\n        // Gracefully handle null/undefined subjects (e.g., from querySelector returning null)\n        if (subject == null) {\n            return animations\n        }\n\n        const subjects = resolveSubjects(\n            subject,\n            keyframes as DOMKeyframesDefinition,\n            scope\n        )\n\n        const numSubjects = subjects.length\n\n        invariant(\n            Boolean(numSubjects),\n            \"No valid elements provided.\",\n            \"no-valid-elements\"\n        )\n\n        for (let i = 0; i \u003c numSubjects; i++) {\n            const thisSubject = subjects[i]\n\n            const createVisualElement =\n                thisSubject instanceof Element\n                    ? createDOMVisualElement\n                    : createObjectVisualElement\n\n            if (!visualElementStore.has(thisSubject)) {\n                createVisualElement(thisSubject as any)\n            }\n\n            const visualElement = visualElementStore.get(thisSubject)!\n            const transition = { ...options }\n\n            /**\n             * Resolve stagger function if provided.\n             */\n            if (\n                \"delay\" in transition \u0026\u0026\n                typeof transition.delay === \"function\"\n            ) {\n                transition.delay = transition.delay(i, numSubjects)\n            }\n\n            animations.push(\n                ...animateTarget(\n                    visualElement,\n                    { ...(keyframes as {}), transition } as TargetAndTransition,\n                    {}\n                )\n            )\n        }\n    }\n\n    return animations\n}\n","import {\n    AnimationPlaybackControlsWithThen,\n    AnimationScope,\n    motionValue,\n    spring,\n} from \"motion-dom\"\nimport { createAnimationsFromSequence } from \"../sequence/create\"\nimport { AnimationSequence, SequenceOptions } from \"../sequence/types\"\nimport { animateSubject } from \"./subject\"\n\nexport function animateSequence(\n    sequence: AnimationSequence,\n    options?: SequenceOptions,\n    scope?: AnimationScope\n) {\n    const animations: AnimationPlaybackControlsWithThen[] = []\n\n    /**\n     * Pre-process: replace function segments with MotionValue segments,\n     * subscribe callbacks immediately\n     */\n    const processedSequence = sequence.map((segment) =\u003e {\n        if (Array.isArray(segment) \u0026\u0026 typeof segment[0] === \"function\") {\n            const callback = segment[0] as (value: any) =\u003e void\n            const mv = motionValue(0)\n            mv.on(\"change\", callback)\n\n            if (segment.length === 1) {\n                return [mv, [0, 1]] as any\n            } else if (segment.length === 2) {\n                return [mv, [0, 1], segment[1]] as any\n            } else {\n                return [mv, segment[1], segment[2]] as any\n            }\n        }\n        return segment\n    }) as AnimationSequence\n\n    const animationDefinitions = createAnimationsFromSequence(\n        processedSequence,\n        options,\n        scope,\n        { spring }\n    )\n\n    animationDefinitions.forEach(({ keyframes, transition }, subject) =\u003e {\n        animations.push(...animateSubject(subject, keyframes, transition))\n    })\n\n    return animations\n}\n","import type {\n    AnimationPlaybackControlsWithThen,\n    AnimationScope,\n    DOMKeyframesDefinition,\n    AnimationOptions as DynamicAnimationOptions,\n    ElementOrSelector,\n    MotionValue,\n    UnresolvedValueKeyframe,\n    ValueAnimationTransition,\n} from \"motion-dom\"\nimport { GroupAnimationWithThen } from \"motion-dom\"\nimport { removeItem } from \"motion-utils\"\nimport {\n    AnimationSequence,\n    ObjectTarget,\n    SequenceOptions,\n} from \"../sequence/types\"\nimport { animateSequence } from \"./sequence\"\nimport { animateSubject } from \"./subject\"\n\nfunction isSequence(value: unknown): value is AnimationSequence {\n    return Array.isArray(value) \u0026\u0026 value.some(Array.isArray)\n}\n\ninterface ScopedAnimateOptions {\n    scope?: AnimationScope\n    reduceMotion?: boolean\n}\n\n/**\n * Creates an animation function that is optionally scoped\n * to a specific element.\n */\nexport function createScopedAnimate(options: ScopedAnimateOptions = {}) {\n    const { scope, reduceMotion } = options\n    /**\n     * Animate a sequence\n     */\n    function scopedAnimate(\n        sequence: AnimationSequence,\n        options?: SequenceOptions\n    ): AnimationPlaybackControlsWithThen\n    /**\n     * Animate a string\n     */\n    function scopedAnimate(\n        value: string | MotionValue\u003cstring\u003e,\n        keyframes: string | UnresolvedValueKeyframe\u003cstring\u003e[],\n        options?: ValueAnimationTransition\u003cstring\u003e\n    ): AnimationPlaybackControlsWithThen\n    /**\n     * Animate a number\n     */\n    function scopedAnimate(\n        value: number | MotionValue\u003cnumber\u003e,\n        keyframes: number | UnresolvedValueKeyframe\u003cnumber\u003e[],\n        options?: ValueAnimationTransition\u003cnumber\u003e\n    ): AnimationPlaybackControlsWithThen\n    /**\n     * Animate a generic motion value\n     */\n    function scopedAnimate\u003cV extends string | number\u003e(\n        value: V | MotionValue\u003cV\u003e,\n        keyframes: V | UnresolvedValueKeyframe\u003cV\u003e[],\n        options?: ValueAnimationTransition\u003cV\u003e\n    ): AnimationPlaybackControlsWithThen\n    /**\n     * Animate an Element\n     */\n    function scopedAnimate(\n        element: ElementOrSelector,\n        keyframes: DOMKeyframesDefinition,\n        options?: DynamicAnimationOptions\n    ): AnimationPlaybackControlsWithThen\n    /**\n     * Animate an object\n     */\n    function scopedAnimate\u003cO extends {}\u003e(\n        object: O | O[],\n        keyframes: ObjectTarget\u003cO\u003e,\n        options?: DynamicAnimationOptions\n    ): AnimationPlaybackControlsWithThen\n    /**\n     * Implementation\n     */\n    function scopedAnimate\u003cO extends {}\u003e(\n        subjectOrSequence:\n            | AnimationSequence\n            | MotionValue\u003cnumber\u003e\n            | MotionValue\u003cstring\u003e\n            | number\n            | string\n            | ElementOrSelector\n            | O\n            | O[],\n        optionsOrKeyframes?:\n            | SequenceOptions\n            | number\n            | string\n            | UnresolvedValueKeyframe\u003cnumber\u003e[]\n            | UnresolvedValueKeyframe\u003cstring\u003e[]\n            | DOMKeyframesDefinition\n            | ObjectTarget\u003cO\u003e,\n        options?:\n            | ValueAnimationTransition\u003cnumber\u003e\n            | ValueAnimationTransition\u003cstring\u003e\n            | DynamicAnimationOptions\n    ): AnimationPlaybackControlsWithThen {\n        let animations: AnimationPlaybackControlsWithThen[] = []\n        let animationOnComplete: VoidFunction | undefined\n\n        if (isSequence(subjectOrSequence)) {\n            const { onComplete, ...sequenceOptions } =\n                (optionsOrKeyframes as SequenceOptions) || {}\n            if (typeof onComplete === \"function\") {\n                animationOnComplete = onComplete as VoidFunction\n            }\n            animations = animateSequence(\n                subjectOrSequence,\n                reduceMotion !== undefined\n                    ? { reduceMotion, ...sequenceOptions }\n                    : (sequenceOptions as SequenceOptions),\n                scope\n            )\n        } else {\n            // Extract top-level onComplete so it doesn't get applied per-value\n            const { onComplete, ...rest } = options || {}\n            if (typeof onComplete === \"function\") {\n                animationOnComplete = onComplete as VoidFunction\n            }\n            animations = animateSubject(\n                subjectOrSequence as ElementOrSelector,\n                optionsOrKeyframes as DOMKeyframesDefinition,\n                (reduceMotion !== undefined\n                    ? { reduceMotion, ...rest }\n                    : rest) as DynamicAnimationOptions,\n                scope\n            )\n        }\n\n        const animation = new GroupAnimationWithThen(animations)\n\n        if (animationOnComplete) {\n            animation.finished.then(animationOnComplete)\n        }\n\n        if (scope) {\n            scope.animations.push(animation)\n            animation.finished.then(() =\u003e {\n                removeItem(scope.animations, animation)\n            })\n        }\n\n        return animation\n    }\n\n    return scopedAnimate\n}\n\nexport const animate = createScopedAnimate()\n"],"version":3}
