motion-v 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +7637 -1
- package/dist/es/animation/use-animate.mjs +25 -15
- package/dist/es/components/AnimatePresence.vue.mjs +57 -39
- package/dist/es/components/AnimatePresence.vue2.mjs +2 -2
- package/dist/es/components/LayoutGroup.vue.mjs +39 -0
- package/dist/es/components/LayoutGroup.vue2.mjs +4 -0
- package/dist/es/components/Motion.vue.mjs +87 -57
- package/dist/es/components/Motion.vue2.mjs +2 -2
- package/dist/es/components/Primitive.mjs +15 -9
- package/dist/es/components/Slot.mjs +28 -19
- package/dist/es/components/context.mjs +15 -4
- package/dist/es/components/group.mjs +30 -0
- package/dist/es/components/presence.mjs +13 -10
- package/dist/es/components/renderSlotFragments.mjs +10 -4
- package/dist/es/components/use-force-update.mjs +11 -0
- package/dist/es/constants/index.mjs +13 -6
- package/dist/es/features/events.mjs +59 -43
- package/dist/es/features/feature-manager.mjs +20 -17
- package/dist/es/features/feature.mjs +4 -4
- package/dist/es/features/gestures/base.mjs +12 -7
- package/dist/es/features/gestures/hover.mjs +25 -16
- package/dist/es/features/gestures/in-view.mjs +21 -15
- package/dist/es/features/gestures/press.mjs +22 -13
- package/dist/es/features/layout/config.mjs +21 -0
- package/dist/es/features/layout/layout.mjs +74 -0
- package/dist/es/features/layout/utils.mjs +8 -0
- package/dist/es/features/svg.mjs +14 -13
- package/dist/es/index.mjs +119 -102
- package/dist/es/node_modules/.pnpm/@vueuse_shared@12.0.0_typescript@5.5.4/node_modules/@vueuse/shared/index.mjs +6 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs +38 -28
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/index.mjs +22 -15
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/resolve-subjects.mjs +13 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/sequence.mjs +11 -9
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs +8 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/subject.mjs +32 -24
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs +178 -137
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs +53 -37
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs +227 -100
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs +8 -8
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs +26 -19
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/NativeAnimation.mjs +112 -56
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-elements.mjs +25 -18
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-style.mjs +10 -9
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs +27 -17
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs +15 -12
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/attach-timeline.mjs +4 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +6 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/linear.mjs +10 -8
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/memo-supports.mjs +7 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/style.mjs +6 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-flags.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-linear-easing.mjs +6 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-partial-keyframes.mjs +6 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/inertia.mjs +58 -28
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs +28 -21
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs +71 -43
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs +64 -48
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs +12 -10
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/is-generator.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs +6 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs +64 -37
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +48 -34
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +5 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +4 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/create.mjs +133 -86
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +12 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs +20 -16
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs +11 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs +19 -15
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs +19 -8
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/get-value-transition.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs +14 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +4 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-none.mjs +10 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/stagger.mjs +18 -16
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/anticipate.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/back.mjs +9 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/circ.mjs +8 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs +24 -14
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/ease.mjs +7 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/steps.mjs +8 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs +8 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs +5 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs +4 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/map.mjs +32 -29
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/events/add-dom-event.mjs +7 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/batcher.mjs +57 -21
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/frame.mjs +7 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/index-legacy.mjs +9 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/microtask.mjs +6 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/render-step.mjs +41 -19
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/sync-time.mjs +16 -10
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/motion/features/definitions.mjs +8 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +5 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs +60 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs +14 -13
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs +19 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs +81 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs +55 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs +40 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/models.mjs +18 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs +34 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +13 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +28 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs +1086 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/state.mjs +15 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/shared/stack.mjs +94 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +26 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +25 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs +6 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/transform.mjs +36 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs +6 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs +20 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/measure.mjs +4 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/VisualElement.mjs +263 -117
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs +81 -45
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +13 -11
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/handle-element.mjs +49 -33
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/handle-window.mjs +22 -14
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/index.mjs +5 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs +53 -36
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs +29 -16
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs +14 -8
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs +25 -9
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs +32 -20
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs +32 -21
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs +20 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs +31 -15
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs +60 -33
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs +21 -21
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs +12 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs +20 -9
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs +47 -34
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs +9 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs +21 -20
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs +8 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs +7 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs +4 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/number-browser.mjs +34 -34
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs +14 -14
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/transform.mjs +28 -28
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs +4 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs +4 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs +29 -17
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +41 -32
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs +33 -20
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs +36 -20
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs +18 -12
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/render.mjs +6 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +13 -9
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/transform.mjs +5 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/object/ObjectVisualElement.mjs +24 -20
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/store.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +33 -28
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +40 -20
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs +12 -10
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs +9 -8
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +12 -11
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs +8 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs +105 -47
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs +4 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs +24 -0
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +9 -9
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs +31 -20
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +5 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs +19 -14
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/setters.mjs +17 -13
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs +5 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs +4 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/array.mjs +9 -7
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/clamp.mjs +8 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/delay.mjs +17 -12
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/distance.mjs +7 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/errors.mjs +17 -10
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs +32 -15
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/interpolate.mjs +42 -31
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-browser.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/memo.mjs +8 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/color.mjs +40 -25
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/complex.mjs +73 -41
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/index.mjs +9 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/number.mjs +4 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/visibility.mjs +9 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/noop.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/default.mjs +6 -5
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/fill.mjs +8 -8
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/time.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/pipe.mjs +3 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/progress.mjs +4 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs +15 -10
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs +4 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/resolve-value.mjs +9 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/subscription-manager.mjs +18 -15
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/time-conversion.mjs +4 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/transform.mjs +17 -8
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/warn-once.mjs +7 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/wrap.mjs +4 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/index.mjs +125 -53
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/hex.mjs +32 -14
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/hsla.mjs +11 -9
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/index.mjs +18 -8
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs +15 -13
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/utils.mjs +16 -13
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/complex/filter.mjs +22 -19
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/complex/index.mjs +71 -36
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/numbers/index.mjs +14 -12
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/numbers/units.mjs +19 -13
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs +3 -3
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs +7 -6
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs +4 -4
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs +2 -2
- package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +9 -0
- package/dist/es/node_modules/.pnpm/hey-listen@1.0.8/node_modules/hey-listen/dist/hey-listen.es.mjs +17 -10
- package/dist/es/state/create-visual-element.mjs +9 -0
- package/dist/es/state/event.mjs +3 -3
- package/dist/es/state/motion-state.mjs +145 -91
- package/dist/es/state/schedule.mjs +23 -15
- package/dist/es/state/style.mjs +105 -81
- package/dist/es/state/transform.mjs +37 -29
- package/dist/es/state/utils.mjs +51 -45
- package/dist/es/utils/createContext.mjs +19 -11
- package/dist/es/utils/events.mjs +4 -4
- package/dist/es/utils/motion-value.mjs +3 -3
- package/dist/es/utils/use-animation-frame.mjs +17 -11
- package/dist/es/utils/use-in-view.mjs +20 -14
- package/dist/es/value/use-combine-values.mjs +22 -17
- package/dist/es/value/use-computed.mjs +17 -10
- package/dist/es/value/use-motion-template.mjs +17 -14
- package/dist/es/value/use-motion-value-event.mjs +11 -0
- package/dist/es/value/use-scroll.mjs +42 -33
- package/dist/es/value/use-spring.mjs +48 -28
- package/dist/es/value/use-time.mjs +7 -6
- package/dist/es/value/use-transform.mjs +24 -20
- package/dist/es/value/use-velocity.mjs +20 -0
- package/dist/src/components/LayoutGroup.d.ts +30 -0
- package/dist/src/components/context.d.ts +17 -0
- package/dist/src/components/group.d.ts +7 -0
- package/dist/src/components/use-force-update.d.ts +2 -0
- package/dist/src/features/index.d.ts +1 -0
- package/dist/src/features/layout/config.d.ts +8 -0
- package/dist/src/features/layout/layout.d.ts +10 -0
- package/dist/src/features/layout/types.d.ts +7 -0
- package/dist/src/features/layout/utils.d.ts +4 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/state/create-visual-element.d.ts +1 -0
- package/dist/src/state/motion-state.d.ts +1 -2
- package/dist/src/types/state.d.ts +2 -1
- package/dist/src/value/index.d.ts +4 -0
- package/package.json +2 -1
- package/dist/es/node_modules/.pnpm/@vueuse_shared@11.1.0_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/shared/index.mjs +0 -6
- package/dist/src/components/usePrimitiveElement.d.ts +0 -5
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { initPrefersReducedMotion
|
|
2
|
-
import { hasReducedMotionListener
|
|
3
|
-
import { SubscriptionManager
|
|
4
|
-
import { motionValue
|
|
5
|
-
import { isMotionValue
|
|
6
|
-
import { transformProps
|
|
7
|
-
import { isControllingVariants
|
|
8
|
-
import { updateMotionValuesFromProps
|
|
9
|
-
import { resolveVariantFromProps
|
|
10
|
-
import { warnOnce
|
|
11
|
-
import { featureDefinitions
|
|
12
|
-
import { visualElementStore
|
|
13
|
-
import { KeyframeResolver
|
|
14
|
-
import { isNumericalString
|
|
15
|
-
import { isZeroValueString
|
|
16
|
-
import { findValueType
|
|
17
|
-
import { complex
|
|
18
|
-
import { getAnimatableNone
|
|
19
|
-
import { createBox
|
|
20
|
-
import { time
|
|
21
|
-
import { frame
|
|
22
|
-
const
|
|
1
|
+
import { initPrefersReducedMotion } from "../utils/reduced-motion/index.mjs";
|
|
2
|
+
import { hasReducedMotionListener, prefersReducedMotion } from "../utils/reduced-motion/state.mjs";
|
|
3
|
+
import { SubscriptionManager } from "../utils/subscription-manager.mjs";
|
|
4
|
+
import { motionValue } from "../value/index.mjs";
|
|
5
|
+
import { isMotionValue } from "../value/utils/is-motion-value.mjs";
|
|
6
|
+
import { transformProps } from "./html/utils/transform.mjs";
|
|
7
|
+
import { isControllingVariants, isVariantNode } from "./utils/is-controlling-variants.mjs";
|
|
8
|
+
import { updateMotionValuesFromProps } from "./utils/motion-values.mjs";
|
|
9
|
+
import { resolveVariantFromProps } from "./utils/resolve-variants.mjs";
|
|
10
|
+
import { warnOnce } from "../utils/warn-once.mjs";
|
|
11
|
+
import { featureDefinitions } from "../motion/features/definitions.mjs";
|
|
12
|
+
import { visualElementStore } from "./store.mjs";
|
|
13
|
+
import { KeyframeResolver } from "./utils/KeyframesResolver.mjs";
|
|
14
|
+
import { isNumericalString } from "../utils/is-numerical-string.mjs";
|
|
15
|
+
import { isZeroValueString } from "../utils/is-zero-value-string.mjs";
|
|
16
|
+
import { findValueType } from "./dom/value-types/find.mjs";
|
|
17
|
+
import { complex } from "../value/types/complex/index.mjs";
|
|
18
|
+
import { getAnimatableNone } from "./dom/value-types/animatable-none.mjs";
|
|
19
|
+
import { createBox } from "../projection/geometry/models.mjs";
|
|
20
|
+
import { time } from "../frameloop/sync-time.mjs";
|
|
21
|
+
import { frame, cancelFrame } from "../frameloop/frame.mjs";
|
|
22
|
+
const propEventHandlers = [
|
|
23
23
|
"AnimationStart",
|
|
24
24
|
"AnimationComplete",
|
|
25
25
|
"Update",
|
|
@@ -28,7 +28,7 @@ const V = [
|
|
|
28
28
|
"LayoutAnimationStart",
|
|
29
29
|
"LayoutAnimationComplete"
|
|
30
30
|
];
|
|
31
|
-
class
|
|
31
|
+
class VisualElement {
|
|
32
32
|
/**
|
|
33
33
|
* This method takes React props and returns found MotionValues. For example, HTML
|
|
34
34
|
* MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.
|
|
@@ -36,60 +36,155 @@ class ot {
|
|
|
36
36
|
* This isn't an abstract method as it needs calling in the constructor, but it is
|
|
37
37
|
* intended to be one.
|
|
38
38
|
*/
|
|
39
|
-
scrapeMotionValuesFromProps(
|
|
39
|
+
scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {
|
|
40
40
|
return {};
|
|
41
41
|
}
|
|
42
|
-
constructor({ parent
|
|
43
|
-
this.current = null
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState }, options = {}) {
|
|
43
|
+
this.current = null;
|
|
44
|
+
this.children = /* @__PURE__ */ new Set();
|
|
45
|
+
this.isVariantNode = false;
|
|
46
|
+
this.isControllingVariants = false;
|
|
47
|
+
this.shouldReduceMotion = null;
|
|
48
|
+
this.values = /* @__PURE__ */ new Map();
|
|
49
|
+
this.KeyframeResolver = KeyframeResolver;
|
|
50
|
+
this.features = {};
|
|
51
|
+
this.valueSubscriptions = /* @__PURE__ */ new Map();
|
|
52
|
+
this.prevMotionValues = {};
|
|
53
|
+
this.events = {};
|
|
54
|
+
this.propEventSubscriptions = {};
|
|
55
|
+
this.notifyUpdate = () => this.notify("Update", this.latestValues);
|
|
56
|
+
this.render = () => {
|
|
57
|
+
if (!this.current)
|
|
58
|
+
return;
|
|
59
|
+
this.triggerBuild();
|
|
60
|
+
this.renderInstance(this.current, this.renderState, this.props.style, this.projection);
|
|
61
|
+
};
|
|
62
|
+
this.renderScheduledAt = 0;
|
|
63
|
+
this.scheduleRender = () => {
|
|
64
|
+
const now = time.now();
|
|
65
|
+
if (this.renderScheduledAt < now) {
|
|
66
|
+
this.renderScheduledAt = now;
|
|
67
|
+
frame.render(this.render, false, true);
|
|
68
|
+
}
|
|
48
69
|
};
|
|
49
|
-
const { latestValues
|
|
50
|
-
this.latestValues =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
70
|
+
const { latestValues, renderState } = visualState;
|
|
71
|
+
this.latestValues = latestValues;
|
|
72
|
+
this.baseTarget = { ...latestValues };
|
|
73
|
+
this.initialValues = props.initial ? { ...latestValues } : {};
|
|
74
|
+
this.renderState = renderState;
|
|
75
|
+
this.parent = parent;
|
|
76
|
+
this.props = props;
|
|
77
|
+
this.presenceContext = presenceContext;
|
|
78
|
+
this.depth = parent ? parent.depth + 1 : 0;
|
|
79
|
+
this.reducedMotionConfig = reducedMotionConfig;
|
|
80
|
+
this.options = options;
|
|
81
|
+
this.blockInitialAnimation = Boolean(blockInitialAnimation);
|
|
82
|
+
this.isControllingVariants = isControllingVariants(props);
|
|
83
|
+
this.isVariantNode = isVariantNode(props);
|
|
84
|
+
if (this.isVariantNode) {
|
|
85
|
+
this.variantChildren = /* @__PURE__ */ new Set();
|
|
86
|
+
}
|
|
87
|
+
this.manuallyAnimateOnMount = Boolean(parent && parent.current);
|
|
88
|
+
const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);
|
|
89
|
+
for (const key in initialMotionValues) {
|
|
90
|
+
const value = initialMotionValues[key];
|
|
91
|
+
if (latestValues[key] !== void 0 && isMotionValue(value)) {
|
|
92
|
+
value.set(latestValues[key], false);
|
|
93
|
+
}
|
|
55
94
|
}
|
|
56
95
|
}
|
|
57
|
-
mount(
|
|
58
|
-
this.current =
|
|
96
|
+
mount(instance) {
|
|
97
|
+
this.current = instance;
|
|
98
|
+
visualElementStore.set(instance, this);
|
|
99
|
+
if (this.projection && !this.projection.instance) {
|
|
100
|
+
this.projection.mount(instance);
|
|
101
|
+
}
|
|
102
|
+
if (this.parent && this.isVariantNode && !this.isControllingVariants) {
|
|
103
|
+
this.removeFromVariantTree = this.parent.addVariantChild(this);
|
|
104
|
+
}
|
|
105
|
+
this.values.forEach((value, key) => this.bindToMotionValue(key, value));
|
|
106
|
+
if (!hasReducedMotionListener.current) {
|
|
107
|
+
initPrefersReducedMotion();
|
|
108
|
+
}
|
|
109
|
+
this.shouldReduceMotion = this.reducedMotionConfig === "never" ? false : this.reducedMotionConfig === "always" ? true : prefersReducedMotion.current;
|
|
110
|
+
if (process.env.NODE_ENV !== "production") {
|
|
111
|
+
warnOnce(this.shouldReduceMotion !== true, "You have Reduced Motion enabled on your device. Animations may not appear as expected.");
|
|
112
|
+
}
|
|
113
|
+
if (this.parent)
|
|
114
|
+
this.parent.children.add(this);
|
|
115
|
+
this.update(this.props, this.presenceContext);
|
|
59
116
|
}
|
|
60
117
|
unmount() {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
118
|
+
visualElementStore.delete(this.current);
|
|
119
|
+
this.projection && this.projection.unmount();
|
|
120
|
+
cancelFrame(this.notifyUpdate);
|
|
121
|
+
cancelFrame(this.render);
|
|
122
|
+
this.valueSubscriptions.forEach((remove) => remove());
|
|
123
|
+
this.valueSubscriptions.clear();
|
|
124
|
+
this.removeFromVariantTree && this.removeFromVariantTree();
|
|
125
|
+
this.parent && this.parent.children.delete(this);
|
|
126
|
+
for (const key in this.events) {
|
|
127
|
+
this.events[key].clear();
|
|
128
|
+
}
|
|
129
|
+
for (const key in this.features) {
|
|
130
|
+
const feature = this.features[key];
|
|
131
|
+
if (feature) {
|
|
132
|
+
feature.unmount();
|
|
133
|
+
feature.isMounted = false;
|
|
134
|
+
}
|
|
67
135
|
}
|
|
68
136
|
this.current = null;
|
|
69
137
|
}
|
|
70
|
-
bindToMotionValue(
|
|
71
|
-
this.valueSubscriptions.has(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
138
|
+
bindToMotionValue(key, value) {
|
|
139
|
+
if (this.valueSubscriptions.has(key)) {
|
|
140
|
+
this.valueSubscriptions.get(key)();
|
|
141
|
+
}
|
|
142
|
+
const valueIsTransform = transformProps.has(key);
|
|
143
|
+
const removeOnChange = value.on("change", (latestValue) => {
|
|
144
|
+
this.latestValues[key] = latestValue;
|
|
145
|
+
this.props.onUpdate && frame.preRender(this.notifyUpdate);
|
|
146
|
+
if (valueIsTransform && this.projection) {
|
|
147
|
+
this.projection.isTransformDirty = true;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
const removeOnRenderRequest = value.on("renderRequest", this.scheduleRender);
|
|
151
|
+
let removeSyncCheck;
|
|
152
|
+
if (window.MotionCheckAppearSync) {
|
|
153
|
+
removeSyncCheck = window.MotionCheckAppearSync(this, key, value);
|
|
154
|
+
}
|
|
155
|
+
this.valueSubscriptions.set(key, () => {
|
|
156
|
+
removeOnChange();
|
|
157
|
+
removeOnRenderRequest();
|
|
158
|
+
if (removeSyncCheck)
|
|
159
|
+
removeSyncCheck();
|
|
160
|
+
if (value.owner)
|
|
161
|
+
value.stop();
|
|
78
162
|
});
|
|
79
163
|
}
|
|
80
|
-
sortNodePosition(
|
|
81
|
-
|
|
164
|
+
sortNodePosition(other) {
|
|
165
|
+
if (!this.current || !this.sortInstanceNodePosition || this.type !== other.type) {
|
|
166
|
+
return 0;
|
|
167
|
+
}
|
|
168
|
+
return this.sortInstanceNodePosition(this.current, other.current);
|
|
82
169
|
}
|
|
83
170
|
updateFeatures() {
|
|
84
|
-
let
|
|
85
|
-
for (
|
|
86
|
-
const
|
|
87
|
-
if (!
|
|
171
|
+
let key = "animation";
|
|
172
|
+
for (key in featureDefinitions) {
|
|
173
|
+
const featureDefinition = featureDefinitions[key];
|
|
174
|
+
if (!featureDefinition)
|
|
88
175
|
continue;
|
|
89
|
-
const { isEnabled
|
|
90
|
-
if (!this.features[
|
|
91
|
-
|
|
92
|
-
|
|
176
|
+
const { isEnabled, Feature: FeatureConstructor } = featureDefinition;
|
|
177
|
+
if (!this.features[key] && FeatureConstructor && isEnabled(this.props)) {
|
|
178
|
+
this.features[key] = new FeatureConstructor(this);
|
|
179
|
+
}
|
|
180
|
+
if (this.features[key]) {
|
|
181
|
+
const feature = this.features[key];
|
|
182
|
+
if (feature.isMounted) {
|
|
183
|
+
feature.update();
|
|
184
|
+
} else {
|
|
185
|
+
feature.mount();
|
|
186
|
+
feature.isMounted = true;
|
|
187
|
+
}
|
|
93
188
|
}
|
|
94
189
|
}
|
|
95
190
|
}
|
|
@@ -102,27 +197,42 @@ class ot {
|
|
|
102
197
|
* removed with a re-render to work.
|
|
103
198
|
*/
|
|
104
199
|
measureViewportBox() {
|
|
105
|
-
return this.current ? this.measureInstanceViewportBox(this.current, this.props) :
|
|
200
|
+
return this.current ? this.measureInstanceViewportBox(this.current, this.props) : createBox();
|
|
106
201
|
}
|
|
107
|
-
getStaticValue(
|
|
108
|
-
return this.latestValues[
|
|
202
|
+
getStaticValue(key) {
|
|
203
|
+
return this.latestValues[key];
|
|
109
204
|
}
|
|
110
|
-
setStaticValue(
|
|
111
|
-
this.latestValues[
|
|
205
|
+
setStaticValue(key, value) {
|
|
206
|
+
this.latestValues[key] = value;
|
|
112
207
|
}
|
|
113
208
|
/**
|
|
114
209
|
* Update the provided props. Ensure any newly-added motion values are
|
|
115
210
|
* added to our map, old ones removed, and listeners updated.
|
|
116
211
|
*/
|
|
117
|
-
update(
|
|
118
|
-
(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
212
|
+
update(props, presenceContext) {
|
|
213
|
+
if (props.transformTemplate || this.props.transformTemplate) {
|
|
214
|
+
this.scheduleRender();
|
|
215
|
+
}
|
|
216
|
+
this.prevProps = this.props;
|
|
217
|
+
this.props = props;
|
|
218
|
+
this.prevPresenceContext = this.presenceContext;
|
|
219
|
+
this.presenceContext = presenceContext;
|
|
220
|
+
for (let i = 0; i < propEventHandlers.length; i++) {
|
|
221
|
+
const key = propEventHandlers[i];
|
|
222
|
+
if (this.propEventSubscriptions[key]) {
|
|
223
|
+
this.propEventSubscriptions[key]();
|
|
224
|
+
delete this.propEventSubscriptions[key];
|
|
225
|
+
}
|
|
226
|
+
const listenerName = "on" + key;
|
|
227
|
+
const listener = props[listenerName];
|
|
228
|
+
if (listener) {
|
|
229
|
+
this.propEventSubscriptions[key] = this.on(key, listener);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);
|
|
233
|
+
if (this.handleChildMotionValue) {
|
|
234
|
+
this.handleChildMotionValue();
|
|
124
235
|
}
|
|
125
|
-
this.prevMotionValues = F(this, this.scrapeMotionValuesFromProps(t, this.prevProps, this), this.prevMotionValues), this.handleChildMotionValue && this.handleChildMotionValue();
|
|
126
236
|
}
|
|
127
237
|
getProps() {
|
|
128
238
|
return this.props;
|
|
@@ -130,8 +240,8 @@ class ot {
|
|
|
130
240
|
/**
|
|
131
241
|
* Returns the variant definition with a given name.
|
|
132
242
|
*/
|
|
133
|
-
getVariant(
|
|
134
|
-
return this.props.variants ? this.props.variants[
|
|
243
|
+
getVariant(name) {
|
|
244
|
+
return this.props.variants ? this.props.variants[name] : void 0;
|
|
135
245
|
}
|
|
136
246
|
/**
|
|
137
247
|
* Returns the defined default transition on this component.
|
|
@@ -148,79 +258,115 @@ class ot {
|
|
|
148
258
|
/**
|
|
149
259
|
* Add a child visual element to our set of children.
|
|
150
260
|
*/
|
|
151
|
-
addVariantChild(
|
|
152
|
-
const
|
|
153
|
-
if (
|
|
154
|
-
|
|
261
|
+
addVariantChild(child) {
|
|
262
|
+
const closestVariantNode = this.getClosestVariantNode();
|
|
263
|
+
if (closestVariantNode) {
|
|
264
|
+
closestVariantNode.variantChildren && closestVariantNode.variantChildren.add(child);
|
|
265
|
+
return () => closestVariantNode.variantChildren.delete(child);
|
|
266
|
+
}
|
|
155
267
|
}
|
|
156
268
|
/**
|
|
157
269
|
* Add a motion value and bind it to this visual element.
|
|
158
270
|
*/
|
|
159
|
-
addValue(
|
|
160
|
-
const
|
|
161
|
-
|
|
271
|
+
addValue(key, value) {
|
|
272
|
+
const existingValue = this.values.get(key);
|
|
273
|
+
if (value !== existingValue) {
|
|
274
|
+
if (existingValue)
|
|
275
|
+
this.removeValue(key);
|
|
276
|
+
this.bindToMotionValue(key, value);
|
|
277
|
+
this.values.set(key, value);
|
|
278
|
+
this.latestValues[key] = value.get();
|
|
279
|
+
}
|
|
162
280
|
}
|
|
163
281
|
/**
|
|
164
282
|
* Remove a motion value and unbind any active subscriptions.
|
|
165
283
|
*/
|
|
166
|
-
removeValue(
|
|
167
|
-
this.values.delete(
|
|
168
|
-
const
|
|
169
|
-
|
|
284
|
+
removeValue(key) {
|
|
285
|
+
this.values.delete(key);
|
|
286
|
+
const unsubscribe = this.valueSubscriptions.get(key);
|
|
287
|
+
if (unsubscribe) {
|
|
288
|
+
unsubscribe();
|
|
289
|
+
this.valueSubscriptions.delete(key);
|
|
290
|
+
}
|
|
291
|
+
delete this.latestValues[key];
|
|
292
|
+
this.removeValueFromRenderState(key, this.renderState);
|
|
170
293
|
}
|
|
171
294
|
/**
|
|
172
295
|
* Check whether we have a motion value for this key
|
|
173
296
|
*/
|
|
174
|
-
hasValue(
|
|
175
|
-
return this.values.has(
|
|
297
|
+
hasValue(key) {
|
|
298
|
+
return this.values.has(key);
|
|
176
299
|
}
|
|
177
|
-
getValue(
|
|
178
|
-
if (this.props.values && this.props.values[
|
|
179
|
-
return this.props.values[
|
|
180
|
-
|
|
181
|
-
|
|
300
|
+
getValue(key, defaultValue) {
|
|
301
|
+
if (this.props.values && this.props.values[key]) {
|
|
302
|
+
return this.props.values[key];
|
|
303
|
+
}
|
|
304
|
+
let value = this.values.get(key);
|
|
305
|
+
if (value === void 0 && defaultValue !== void 0) {
|
|
306
|
+
value = motionValue(defaultValue === null ? void 0 : defaultValue, { owner: this });
|
|
307
|
+
this.addValue(key, value);
|
|
308
|
+
}
|
|
309
|
+
return value;
|
|
182
310
|
}
|
|
183
311
|
/**
|
|
184
312
|
* If we're trying to animate to a previously unencountered value,
|
|
185
313
|
* we need to check for it in our state and as a last resort read it
|
|
186
314
|
* directly from the instance (which might have performance implications).
|
|
187
315
|
*/
|
|
188
|
-
readValue(
|
|
189
|
-
var
|
|
190
|
-
let
|
|
191
|
-
|
|
316
|
+
readValue(key, target) {
|
|
317
|
+
var _a;
|
|
318
|
+
let value = this.latestValues[key] !== void 0 || !this.current ? this.latestValues[key] : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);
|
|
319
|
+
if (value !== void 0 && value !== null) {
|
|
320
|
+
if (typeof value === "string" && (isNumericalString(value) || isZeroValueString(value))) {
|
|
321
|
+
value = parseFloat(value);
|
|
322
|
+
} else if (!findValueType(value) && complex.test(target)) {
|
|
323
|
+
value = getAnimatableNone(key, target);
|
|
324
|
+
}
|
|
325
|
+
this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);
|
|
326
|
+
}
|
|
327
|
+
return isMotionValue(value) ? value.get() : value;
|
|
192
328
|
}
|
|
193
329
|
/**
|
|
194
330
|
* Set the base target to later animate back to. This is currently
|
|
195
331
|
* only hydrated on creation and when we first read a value.
|
|
196
332
|
*/
|
|
197
|
-
setBaseTarget(
|
|
198
|
-
this.baseTarget[
|
|
333
|
+
setBaseTarget(key, value) {
|
|
334
|
+
this.baseTarget[key] = value;
|
|
199
335
|
}
|
|
200
336
|
/**
|
|
201
337
|
* Find the base target for a value thats been removed from all animation
|
|
202
338
|
* props.
|
|
203
339
|
*/
|
|
204
|
-
getBaseTarget(
|
|
205
|
-
var
|
|
206
|
-
const { initial
|
|
207
|
-
let
|
|
208
|
-
if (typeof
|
|
209
|
-
const
|
|
210
|
-
|
|
340
|
+
getBaseTarget(key) {
|
|
341
|
+
var _a;
|
|
342
|
+
const { initial } = this.props;
|
|
343
|
+
let valueFromInitial;
|
|
344
|
+
if (typeof initial === "string" || typeof initial === "object") {
|
|
345
|
+
const variant = resolveVariantFromProps(this.props, initial, (_a = this.presenceContext) === null || _a === void 0 ? void 0 : _a.custom);
|
|
346
|
+
if (variant) {
|
|
347
|
+
valueFromInitial = variant[key];
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
if (initial && valueFromInitial !== void 0) {
|
|
351
|
+
return valueFromInitial;
|
|
211
352
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
return
|
|
353
|
+
const target = this.getBaseTargetFromProps(this.props, key);
|
|
354
|
+
if (target !== void 0 && !isMotionValue(target))
|
|
355
|
+
return target;
|
|
356
|
+
return this.initialValues[key] !== void 0 && valueFromInitial === void 0 ? void 0 : this.baseTarget[key];
|
|
216
357
|
}
|
|
217
|
-
on(
|
|
218
|
-
|
|
358
|
+
on(eventName, callback) {
|
|
359
|
+
if (!this.events[eventName]) {
|
|
360
|
+
this.events[eventName] = new SubscriptionManager();
|
|
361
|
+
}
|
|
362
|
+
return this.events[eventName].add(callback);
|
|
219
363
|
}
|
|
220
|
-
notify(
|
|
221
|
-
|
|
364
|
+
notify(eventName, ...args) {
|
|
365
|
+
if (this.events[eventName]) {
|
|
366
|
+
this.events[eventName].notify(...args);
|
|
367
|
+
}
|
|
222
368
|
}
|
|
223
369
|
}
|
|
224
370
|
export {
|
|
225
|
-
|
|
371
|
+
VisualElement
|
|
226
372
|
};
|
|
@@ -1,65 +1,101 @@
|
|
|
1
|
-
import { isNone
|
|
2
|
-
import { getVariableValue
|
|
3
|
-
import { isCSSVariableToken
|
|
4
|
-
import { positionalKeys
|
|
5
|
-
import { findDimensionValueType
|
|
6
|
-
import { KeyframeResolver
|
|
7
|
-
import { makeNoneKeyframesAnimatable
|
|
8
|
-
class
|
|
9
|
-
constructor(
|
|
10
|
-
super(
|
|
1
|
+
import { isNone } from "../../animation/utils/is-none.mjs";
|
|
2
|
+
import { getVariableValue } from "./utils/css-variables-conversion.mjs";
|
|
3
|
+
import { isCSSVariableToken } from "./utils/is-css-variable.mjs";
|
|
4
|
+
import { positionalKeys, isNumOrPxType, positionalValues } from "./utils/unit-conversion.mjs";
|
|
5
|
+
import { findDimensionValueType } from "./value-types/dimensions.mjs";
|
|
6
|
+
import { KeyframeResolver } from "../utils/KeyframesResolver.mjs";
|
|
7
|
+
import { makeNoneKeyframesAnimatable } from "../html/utils/make-none-animatable.mjs";
|
|
8
|
+
class DOMKeyframesResolver extends KeyframeResolver {
|
|
9
|
+
constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {
|
|
10
|
+
super(unresolvedKeyframes, onComplete, name, motionValue, element, true);
|
|
11
11
|
}
|
|
12
12
|
readKeyframes() {
|
|
13
|
-
const { unresolvedKeyframes
|
|
14
|
-
if (!
|
|
13
|
+
const { unresolvedKeyframes, element, name } = this;
|
|
14
|
+
if (!element || !element.current)
|
|
15
15
|
return;
|
|
16
16
|
super.readKeyframes();
|
|
17
|
-
for (let
|
|
18
|
-
let
|
|
19
|
-
if (typeof
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
for (let i = 0; i < unresolvedKeyframes.length; i++) {
|
|
18
|
+
let keyframe = unresolvedKeyframes[i];
|
|
19
|
+
if (typeof keyframe === "string") {
|
|
20
|
+
keyframe = keyframe.trim();
|
|
21
|
+
if (isCSSVariableToken(keyframe)) {
|
|
22
|
+
const resolved = getVariableValue(keyframe, element.current);
|
|
23
|
+
if (resolved !== void 0) {
|
|
24
|
+
unresolvedKeyframes[i] = resolved;
|
|
25
|
+
}
|
|
26
|
+
if (i === unresolvedKeyframes.length - 1) {
|
|
27
|
+
this.finalKeyframe = keyframe;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
22
30
|
}
|
|
23
31
|
}
|
|
24
|
-
|
|
32
|
+
this.resolveNoneKeyframes();
|
|
33
|
+
if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const [origin, target] = unresolvedKeyframes;
|
|
37
|
+
const originType = findDimensionValueType(origin);
|
|
38
|
+
const targetType = findDimensionValueType(target);
|
|
39
|
+
if (originType === targetType)
|
|
25
40
|
return;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
typeof i == "string" && (e[s] = parseFloat(i));
|
|
41
|
+
if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {
|
|
42
|
+
for (let i = 0; i < unresolvedKeyframes.length; i++) {
|
|
43
|
+
const value = unresolvedKeyframes[i];
|
|
44
|
+
if (typeof value === "string") {
|
|
45
|
+
unresolvedKeyframes[i] = parseFloat(value);
|
|
32
46
|
}
|
|
33
|
-
|
|
34
|
-
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
this.needsMeasurement = true;
|
|
50
|
+
}
|
|
35
51
|
}
|
|
36
52
|
resolveNoneKeyframes() {
|
|
37
|
-
const { unresolvedKeyframes
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
53
|
+
const { unresolvedKeyframes, name } = this;
|
|
54
|
+
const noneKeyframeIndexes = [];
|
|
55
|
+
for (let i = 0; i < unresolvedKeyframes.length; i++) {
|
|
56
|
+
if (isNone(unresolvedKeyframes[i])) {
|
|
57
|
+
noneKeyframeIndexes.push(i);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (noneKeyframeIndexes.length) {
|
|
61
|
+
makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);
|
|
62
|
+
}
|
|
41
63
|
}
|
|
42
64
|
measureInitialState() {
|
|
43
|
-
const { element
|
|
44
|
-
if (!
|
|
65
|
+
const { element, unresolvedKeyframes, name } = this;
|
|
66
|
+
if (!element || !element.current)
|
|
45
67
|
return;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
68
|
+
if (name === "height") {
|
|
69
|
+
this.suspendedScrollY = window.pageYOffset;
|
|
70
|
+
}
|
|
71
|
+
this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));
|
|
72
|
+
unresolvedKeyframes[0] = this.measuredOrigin;
|
|
73
|
+
const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];
|
|
74
|
+
if (measureKeyframe !== void 0) {
|
|
75
|
+
element.getValue(name, measureKeyframe).jump(measureKeyframe, false);
|
|
76
|
+
}
|
|
49
77
|
}
|
|
50
78
|
measureEndState() {
|
|
51
|
-
var
|
|
52
|
-
const { element
|
|
53
|
-
if (!
|
|
79
|
+
var _a;
|
|
80
|
+
const { element, name, unresolvedKeyframes } = this;
|
|
81
|
+
if (!element || !element.current)
|
|
54
82
|
return;
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
83
|
+
const value = element.getValue(name);
|
|
84
|
+
value && value.jump(this.measuredOrigin, false);
|
|
85
|
+
const finalKeyframeIndex = unresolvedKeyframes.length - 1;
|
|
86
|
+
const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];
|
|
87
|
+
unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));
|
|
88
|
+
if (finalKeyframe !== null && this.finalKeyframe === void 0) {
|
|
89
|
+
this.finalKeyframe = finalKeyframe;
|
|
90
|
+
}
|
|
91
|
+
if ((_a = this.removedTransforms) === null || _a === void 0 ? void 0 : _a.length) {
|
|
92
|
+
this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {
|
|
93
|
+
element.getValue(unsetTransformName).set(unsetTransformValue);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
this.resolveNoneKeyframes();
|
|
61
97
|
}
|
|
62
98
|
}
|
|
63
99
|
export {
|
|
64
|
-
|
|
100
|
+
DOMKeyframesResolver
|
|
65
101
|
};
|