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,18 +1,28 @@
|
|
|
1
|
-
import { noop
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { noop } from "../utils/noop.mjs";
|
|
2
|
+
const calcBezier = (t, a1, a2) => (((1 - 3 * a2 + 3 * a1) * t + (3 * a2 - 6 * a1)) * t + 3 * a1) * t;
|
|
3
|
+
const subdivisionPrecision = 1e-7;
|
|
4
|
+
const subdivisionMaxIterations = 12;
|
|
5
|
+
function binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {
|
|
6
|
+
let currentX;
|
|
7
|
+
let currentT;
|
|
8
|
+
let i = 0;
|
|
9
|
+
do {
|
|
10
|
+
currentT = lowerBound + (upperBound - lowerBound) / 2;
|
|
11
|
+
currentX = calcBezier(currentT, mX1, mX2) - x;
|
|
12
|
+
if (currentX > 0) {
|
|
13
|
+
upperBound = currentT;
|
|
14
|
+
} else {
|
|
15
|
+
lowerBound = currentT;
|
|
16
|
+
}
|
|
17
|
+
} while (Math.abs(currentX) > subdivisionPrecision && ++i < subdivisionMaxIterations);
|
|
18
|
+
return currentT;
|
|
9
19
|
}
|
|
10
|
-
function
|
|
11
|
-
if (
|
|
12
|
-
return
|
|
13
|
-
const
|
|
14
|
-
return (
|
|
20
|
+
function cubicBezier(mX1, mY1, mX2, mY2) {
|
|
21
|
+
if (mX1 === mY1 && mX2 === mY2)
|
|
22
|
+
return noop;
|
|
23
|
+
const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);
|
|
24
|
+
return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);
|
|
15
25
|
}
|
|
16
26
|
export {
|
|
17
|
-
|
|
27
|
+
cubicBezier
|
|
18
28
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { cubicBezier
|
|
2
|
-
const
|
|
1
|
+
import { cubicBezier } from "./cubic-bezier.mjs";
|
|
2
|
+
const easeIn = /* @__PURE__ */ cubicBezier(0.42, 0, 1, 1);
|
|
3
|
+
const easeOut = /* @__PURE__ */ cubicBezier(0, 0, 0.58, 1);
|
|
4
|
+
const easeInOut = /* @__PURE__ */ cubicBezier(0.42, 0, 0.58, 1);
|
|
3
5
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
easeIn,
|
|
7
|
+
easeInOut,
|
|
8
|
+
easeOut
|
|
7
9
|
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { clamp
|
|
2
|
-
function
|
|
3
|
-
return (
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
1
|
+
import { clamp } from "../utils/clamp.mjs";
|
|
2
|
+
function steps(numSteps, direction = "end") {
|
|
3
|
+
return (progress) => {
|
|
4
|
+
progress = direction === "end" ? Math.min(progress, 0.999) : Math.max(progress, 1e-3);
|
|
5
|
+
const expanded = progress * numSteps;
|
|
6
|
+
const rounded = direction === "end" ? Math.floor(expanded) : Math.ceil(expanded);
|
|
7
|
+
return clamp(0, 1, rounded / numSteps);
|
|
7
8
|
};
|
|
8
9
|
}
|
|
9
10
|
export {
|
|
10
|
-
|
|
11
|
+
steps
|
|
11
12
|
};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { calcGeneratorDuration
|
|
2
|
-
import { millisecondsToSeconds
|
|
3
|
-
function
|
|
4
|
-
const
|
|
1
|
+
import { calcGeneratorDuration, maxGeneratorDuration } from "../../animation/generators/utils/calc-duration.mjs";
|
|
2
|
+
import { millisecondsToSeconds } from "../../utils/time-conversion.mjs";
|
|
3
|
+
function createGeneratorEasing(options, scale = 100, createGenerator) {
|
|
4
|
+
const generator = createGenerator({ ...options, keyframes: [0, scale] });
|
|
5
|
+
const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);
|
|
5
6
|
return {
|
|
6
7
|
type: "keyframes",
|
|
7
|
-
ease: (
|
|
8
|
-
duration:
|
|
8
|
+
ease: (progress) => generator.next(duration * progress).value / scale,
|
|
9
|
+
duration: millisecondsToSeconds(duration)
|
|
9
10
|
};
|
|
10
11
|
}
|
|
11
12
|
export {
|
|
12
|
-
|
|
13
|
+
createGeneratorEasing
|
|
13
14
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { wrap
|
|
2
|
-
import { isEasingArray
|
|
3
|
-
function
|
|
4
|
-
return
|
|
1
|
+
import { wrap } from "../../utils/wrap.mjs";
|
|
2
|
+
import { isEasingArray } from "./is-easing-array.mjs";
|
|
3
|
+
function getEasingForSegment(easing, i) {
|
|
4
|
+
return isEasingArray(easing) ? easing[wrap(0, easing.length, i)] : easing;
|
|
5
5
|
}
|
|
6
6
|
export {
|
|
7
|
-
|
|
7
|
+
getEasingForSegment
|
|
8
8
|
};
|
|
@@ -1,32 +1,35 @@
|
|
|
1
|
-
import { invariant
|
|
2
|
-
import { cubicBezier
|
|
3
|
-
import { noop
|
|
4
|
-
import { easeIn
|
|
5
|
-
import { circIn
|
|
6
|
-
import { backIn
|
|
7
|
-
import { anticipate
|
|
8
|
-
import { isBezierDefinition
|
|
9
|
-
const
|
|
10
|
-
linear:
|
|
11
|
-
easeIn
|
|
12
|
-
easeInOut
|
|
13
|
-
easeOut
|
|
14
|
-
circIn
|
|
15
|
-
circInOut
|
|
16
|
-
circOut
|
|
17
|
-
backIn
|
|
18
|
-
backInOut
|
|
19
|
-
backOut
|
|
20
|
-
anticipate
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
import { invariant } from "../../utils/errors.mjs";
|
|
2
|
+
import { cubicBezier } from "../cubic-bezier.mjs";
|
|
3
|
+
import { noop } from "../../utils/noop.mjs";
|
|
4
|
+
import { easeIn, easeInOut, easeOut } from "../ease.mjs";
|
|
5
|
+
import { circIn, circInOut, circOut } from "../circ.mjs";
|
|
6
|
+
import { backIn, backInOut, backOut } from "../back.mjs";
|
|
7
|
+
import { anticipate } from "../anticipate.mjs";
|
|
8
|
+
import { isBezierDefinition } from "./is-bezier-definition.mjs";
|
|
9
|
+
const easingLookup = {
|
|
10
|
+
linear: noop,
|
|
11
|
+
easeIn,
|
|
12
|
+
easeInOut,
|
|
13
|
+
easeOut,
|
|
14
|
+
circIn,
|
|
15
|
+
circInOut,
|
|
16
|
+
circOut,
|
|
17
|
+
backIn,
|
|
18
|
+
backInOut,
|
|
19
|
+
backOut,
|
|
20
|
+
anticipate
|
|
21
|
+
};
|
|
22
|
+
const easingDefinitionToFunction = (definition) => {
|
|
23
|
+
if (isBezierDefinition(definition)) {
|
|
24
|
+
invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);
|
|
25
|
+
const [x1, y1, x2, y2] = definition;
|
|
26
|
+
return cubicBezier(x1, y1, x2, y2);
|
|
27
|
+
} else if (typeof definition === "string") {
|
|
28
|
+
invariant(easingLookup[definition] !== void 0, `Invalid easing type '${definition}'`);
|
|
29
|
+
return easingLookup[definition];
|
|
30
|
+
}
|
|
31
|
+
return definition;
|
|
29
32
|
};
|
|
30
33
|
export {
|
|
31
|
-
|
|
34
|
+
easingDefinitionToFunction
|
|
32
35
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createRenderStep
|
|
2
|
-
const
|
|
1
|
+
import { createRenderStep } from "./render-step.mjs";
|
|
2
|
+
const stepsOrder = [
|
|
3
3
|
"read",
|
|
4
4
|
// Read
|
|
5
5
|
"resolveKeyframes",
|
|
@@ -12,28 +12,64 @@ const a = [
|
|
|
12
12
|
// Write
|
|
13
13
|
"postRender"
|
|
14
14
|
// Compute
|
|
15
|
-
]
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
];
|
|
16
|
+
const maxElapsed = 40;
|
|
17
|
+
function createRenderBatcher(scheduleNextBatch, allowKeepAlive) {
|
|
18
|
+
let runNextFrame = false;
|
|
19
|
+
let useDefaultElapsed = true;
|
|
20
|
+
const state = {
|
|
19
21
|
delta: 0,
|
|
20
22
|
timestamp: 0,
|
|
21
|
-
isProcessing:
|
|
22
|
-
}, d = () => t = !0, n = a.reduce((s, r) => (s[r] = E(d), s), {}), { read: u, resolveKeyframes: i, update: f, preRender: m, render: R, postRender: g } = n, p = () => {
|
|
23
|
-
const s = performance.now();
|
|
24
|
-
t = !1, e.delta = c ? 1e3 / 60 : Math.max(Math.min(s - e.timestamp, F), 1), e.timestamp = s, e.isProcessing = !0, u.process(e), i.process(e), f.process(e), m.process(e), R.process(e), g.process(e), e.isProcessing = !1, t && l && (c = !1, o(p));
|
|
25
|
-
}, h = () => {
|
|
26
|
-
t = !0, c = !0, e.isProcessing || o(p);
|
|
23
|
+
isProcessing: false
|
|
27
24
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
const flagRunNextFrame = () => runNextFrame = true;
|
|
26
|
+
const steps = stepsOrder.reduce((acc, key) => {
|
|
27
|
+
acc[key] = createRenderStep(flagRunNextFrame);
|
|
28
|
+
return acc;
|
|
29
|
+
}, {});
|
|
30
|
+
const { read, resolveKeyframes, update, preRender, render, postRender } = steps;
|
|
31
|
+
const processBatch = () => {
|
|
32
|
+
const timestamp = performance.now();
|
|
33
|
+
runNextFrame = false;
|
|
34
|
+
state.delta = useDefaultElapsed ? 1e3 / 60 : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);
|
|
35
|
+
state.timestamp = timestamp;
|
|
36
|
+
state.isProcessing = true;
|
|
37
|
+
read.process(state);
|
|
38
|
+
resolveKeyframes.process(state);
|
|
39
|
+
update.process(state);
|
|
40
|
+
preRender.process(state);
|
|
41
|
+
render.process(state);
|
|
42
|
+
postRender.process(state);
|
|
43
|
+
state.isProcessing = false;
|
|
44
|
+
if (runNextFrame && allowKeepAlive) {
|
|
45
|
+
useDefaultElapsed = false;
|
|
46
|
+
scheduleNextBatch(processBatch);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const wake = () => {
|
|
50
|
+
runNextFrame = true;
|
|
51
|
+
useDefaultElapsed = true;
|
|
52
|
+
if (!state.isProcessing) {
|
|
53
|
+
scheduleNextBatch(processBatch);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const schedule = stepsOrder.reduce((acc, key) => {
|
|
57
|
+
const step = steps[key];
|
|
58
|
+
acc[key] = (process, keepAlive = false, immediate = false) => {
|
|
59
|
+
if (!runNextFrame)
|
|
60
|
+
wake();
|
|
61
|
+
return step.schedule(process, keepAlive, immediate);
|
|
62
|
+
};
|
|
63
|
+
return acc;
|
|
64
|
+
}, {});
|
|
65
|
+
const cancel = (process) => {
|
|
66
|
+
for (let i = 0; i < stepsOrder.length; i++) {
|
|
67
|
+
steps[stepsOrder[i]].cancel(process);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
return { schedule, cancel, state, steps };
|
|
35
71
|
}
|
|
36
72
|
export {
|
|
37
|
-
|
|
38
|
-
|
|
73
|
+
createRenderBatcher,
|
|
74
|
+
stepsOrder
|
|
39
75
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { noop
|
|
2
|
-
import { createRenderBatcher
|
|
3
|
-
const { schedule:
|
|
1
|
+
import { noop } from "../utils/noop.mjs";
|
|
2
|
+
import { createRenderBatcher } from "./batcher.mjs";
|
|
3
|
+
const { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps } = createRenderBatcher(typeof requestAnimationFrame !== "undefined" ? requestAnimationFrame : noop, true);
|
|
4
4
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
cancelFrame,
|
|
6
|
+
frame,
|
|
7
|
+
frameData,
|
|
8
|
+
frameSteps
|
|
9
9
|
};
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { stepsOrder
|
|
2
|
-
import { frame
|
|
3
|
-
const
|
|
1
|
+
import { stepsOrder } from "./batcher.mjs";
|
|
2
|
+
import { frame, cancelFrame } from "./frame.mjs";
|
|
3
|
+
const sync = frame;
|
|
4
|
+
const cancelSync = stepsOrder.reduce((acc, key) => {
|
|
5
|
+
acc[key] = (process) => cancelFrame(process);
|
|
6
|
+
return acc;
|
|
7
|
+
}, {});
|
|
4
8
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
9
|
+
cancelSync,
|
|
10
|
+
sync
|
|
7
11
|
};
|
|
@@ -1,41 +1,63 @@
|
|
|
1
|
-
function
|
|
2
|
-
let
|
|
3
|
-
|
|
4
|
-
let
|
|
1
|
+
function createRenderStep(runNextFrame) {
|
|
2
|
+
let thisFrame = /* @__PURE__ */ new Set();
|
|
3
|
+
let nextFrame = /* @__PURE__ */ new Set();
|
|
4
|
+
let isProcessing = false;
|
|
5
|
+
let flushNextFrame = false;
|
|
6
|
+
const toKeepAlive = /* @__PURE__ */ new WeakSet();
|
|
7
|
+
let latestFrameData = {
|
|
5
8
|
delta: 0,
|
|
6
9
|
timestamp: 0,
|
|
7
|
-
isProcessing:
|
|
10
|
+
isProcessing: false
|
|
8
11
|
};
|
|
9
|
-
function
|
|
10
|
-
|
|
12
|
+
function triggerCallback(callback) {
|
|
13
|
+
if (toKeepAlive.has(callback)) {
|
|
14
|
+
step.schedule(callback);
|
|
15
|
+
runNextFrame();
|
|
16
|
+
}
|
|
17
|
+
callback(latestFrameData);
|
|
11
18
|
}
|
|
12
|
-
const
|
|
19
|
+
const step = {
|
|
13
20
|
/**
|
|
14
21
|
* Schedule a process to run on the next frame.
|
|
15
22
|
*/
|
|
16
|
-
schedule: (
|
|
17
|
-
const
|
|
18
|
-
|
|
23
|
+
schedule: (callback, keepAlive = false, immediate = false) => {
|
|
24
|
+
const addToCurrentFrame = immediate && isProcessing;
|
|
25
|
+
const queue = addToCurrentFrame ? thisFrame : nextFrame;
|
|
26
|
+
if (keepAlive)
|
|
27
|
+
toKeepAlive.add(callback);
|
|
28
|
+
if (!queue.has(callback))
|
|
29
|
+
queue.add(callback);
|
|
30
|
+
return callback;
|
|
19
31
|
},
|
|
20
32
|
/**
|
|
21
33
|
* Cancel the provided callback from running on the next frame.
|
|
22
34
|
*/
|
|
23
|
-
cancel: (
|
|
24
|
-
|
|
35
|
+
cancel: (callback) => {
|
|
36
|
+
nextFrame.delete(callback);
|
|
37
|
+
toKeepAlive.delete(callback);
|
|
25
38
|
},
|
|
26
39
|
/**
|
|
27
40
|
* Execute all schedule callbacks.
|
|
28
41
|
*/
|
|
29
|
-
process: (
|
|
30
|
-
|
|
31
|
-
|
|
42
|
+
process: (frameData) => {
|
|
43
|
+
latestFrameData = frameData;
|
|
44
|
+
if (isProcessing) {
|
|
45
|
+
flushNextFrame = true;
|
|
32
46
|
return;
|
|
33
47
|
}
|
|
34
|
-
|
|
48
|
+
isProcessing = true;
|
|
49
|
+
[thisFrame, nextFrame] = [nextFrame, thisFrame];
|
|
50
|
+
nextFrame.clear();
|
|
51
|
+
thisFrame.forEach(triggerCallback);
|
|
52
|
+
isProcessing = false;
|
|
53
|
+
if (flushNextFrame) {
|
|
54
|
+
flushNextFrame = false;
|
|
55
|
+
step.process(frameData);
|
|
56
|
+
}
|
|
35
57
|
}
|
|
36
58
|
};
|
|
37
|
-
return
|
|
59
|
+
return step;
|
|
38
60
|
}
|
|
39
61
|
export {
|
|
40
|
-
|
|
62
|
+
createRenderStep
|
|
41
63
|
};
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import { MotionGlobalConfig
|
|
2
|
-
import { frameData
|
|
3
|
-
let
|
|
4
|
-
function
|
|
5
|
-
|
|
1
|
+
import { MotionGlobalConfig } from "../utils/GlobalConfig.mjs";
|
|
2
|
+
import { frameData } from "./frame.mjs";
|
|
3
|
+
let now;
|
|
4
|
+
function clearTime() {
|
|
5
|
+
now = void 0;
|
|
6
6
|
}
|
|
7
|
-
const
|
|
8
|
-
now: () =>
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const time = {
|
|
8
|
+
now: () => {
|
|
9
|
+
if (now === void 0) {
|
|
10
|
+
time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming ? frameData.timestamp : performance.now());
|
|
11
|
+
}
|
|
12
|
+
return now;
|
|
13
|
+
},
|
|
14
|
+
set: (newTime) => {
|
|
15
|
+
now = newTime;
|
|
16
|
+
queueMicrotask(clearTime);
|
|
11
17
|
}
|
|
12
18
|
};
|
|
13
19
|
export {
|
|
14
|
-
|
|
20
|
+
time
|
|
15
21
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const featureProps = {
|
|
2
2
|
animation: [
|
|
3
3
|
"animate",
|
|
4
4
|
"variants",
|
|
@@ -17,11 +17,13 @@ const n = {
|
|
|
17
17
|
pan: ["onPan", "onPanStart", "onPanSessionStart", "onPanEnd"],
|
|
18
18
|
inView: ["whileInView", "onViewportEnter", "onViewportLeave"],
|
|
19
19
|
layout: ["layout", "layoutId"]
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
};
|
|
21
|
+
const featureDefinitions = {};
|
|
22
|
+
for (const key in featureProps) {
|
|
23
|
+
featureDefinitions[key] = {
|
|
24
|
+
isEnabled: (props) => featureProps[key].some((name) => !!props[name])
|
|
24
25
|
};
|
|
26
|
+
}
|
|
25
27
|
export {
|
|
26
|
-
|
|
28
|
+
featureDefinitions
|
|
27
29
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { scaleCorrectors
|
|
2
|
-
import { transformProps
|
|
3
|
-
function
|
|
4
|
-
return
|
|
1
|
+
import { scaleCorrectors } from "../../projection/styles/scale-correction.mjs";
|
|
2
|
+
import { transformProps } from "../../render/html/utils/transform.mjs";
|
|
3
|
+
function isForcedMotionValue(key, { layout, layoutId }) {
|
|
4
|
+
return transformProps.has(key) || key.startsWith("origin") || (layout || layoutId !== void 0) && (!!scaleCorrectors[key] || key === "opacity");
|
|
5
5
|
}
|
|
6
6
|
export {
|
|
7
|
-
|
|
7
|
+
isForcedMotionValue
|
|
8
8
|
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { circOut } from "../../easing/circ.mjs";
|
|
2
|
+
import { progress } from "../../utils/progress.mjs";
|
|
3
|
+
import { mixNumber } from "../../utils/mix/number.mjs";
|
|
4
|
+
import { noop } from "../../utils/noop.mjs";
|
|
5
|
+
import { percent, px } from "../../value/types/numbers/units.mjs";
|
|
6
|
+
const borders = ["TopLeft", "TopRight", "BottomLeft", "BottomRight"];
|
|
7
|
+
const numBorders = borders.length;
|
|
8
|
+
const asNumber = (value) => typeof value === "string" ? parseFloat(value) : value;
|
|
9
|
+
const isPx = (value) => typeof value === "number" || px.test(value);
|
|
10
|
+
function mixValues(target, follow, lead, progress2, shouldCrossfadeOpacity, isOnlyMember) {
|
|
11
|
+
if (shouldCrossfadeOpacity) {
|
|
12
|
+
target.opacity = mixNumber(
|
|
13
|
+
0,
|
|
14
|
+
// TODO Reinstate this if only child
|
|
15
|
+
lead.opacity !== void 0 ? lead.opacity : 1,
|
|
16
|
+
easeCrossfadeIn(progress2)
|
|
17
|
+
);
|
|
18
|
+
target.opacityExit = mixNumber(follow.opacity !== void 0 ? follow.opacity : 1, 0, easeCrossfadeOut(progress2));
|
|
19
|
+
} else if (isOnlyMember) {
|
|
20
|
+
target.opacity = mixNumber(follow.opacity !== void 0 ? follow.opacity : 1, lead.opacity !== void 0 ? lead.opacity : 1, progress2);
|
|
21
|
+
}
|
|
22
|
+
for (let i = 0; i < numBorders; i++) {
|
|
23
|
+
const borderLabel = `border${borders[i]}Radius`;
|
|
24
|
+
let followRadius = getRadius(follow, borderLabel);
|
|
25
|
+
let leadRadius = getRadius(lead, borderLabel);
|
|
26
|
+
if (followRadius === void 0 && leadRadius === void 0)
|
|
27
|
+
continue;
|
|
28
|
+
followRadius || (followRadius = 0);
|
|
29
|
+
leadRadius || (leadRadius = 0);
|
|
30
|
+
const canMix = followRadius === 0 || leadRadius === 0 || isPx(followRadius) === isPx(leadRadius);
|
|
31
|
+
if (canMix) {
|
|
32
|
+
target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress2), 0);
|
|
33
|
+
if (percent.test(leadRadius) || percent.test(followRadius)) {
|
|
34
|
+
target[borderLabel] += "%";
|
|
35
|
+
}
|
|
36
|
+
} else {
|
|
37
|
+
target[borderLabel] = leadRadius;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (follow.rotate || lead.rotate) {
|
|
41
|
+
target.rotate = mixNumber(follow.rotate || 0, lead.rotate || 0, progress2);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function getRadius(values, radiusName) {
|
|
45
|
+
return values[radiusName] !== void 0 ? values[radiusName] : values.borderRadius;
|
|
46
|
+
}
|
|
47
|
+
const easeCrossfadeIn = /* @__PURE__ */ compress(0, 0.5, circOut);
|
|
48
|
+
const easeCrossfadeOut = /* @__PURE__ */ compress(0.5, 0.95, noop);
|
|
49
|
+
function compress(min, max, easing) {
|
|
50
|
+
return (p) => {
|
|
51
|
+
if (p < min)
|
|
52
|
+
return 0;
|
|
53
|
+
if (p > max)
|
|
54
|
+
return 1;
|
|
55
|
+
return easing(progress(min, max, p));
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export {
|
|
59
|
+
mixValues
|
|
60
|
+
};
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
function
|
|
1
|
+
function convertBoundingBoxToBox({ top, left, right, bottom }) {
|
|
2
2
|
return {
|
|
3
|
-
x: { min:
|
|
4
|
-
y: { min:
|
|
3
|
+
x: { min: left, max: right },
|
|
4
|
+
y: { min: top, max: bottom }
|
|
5
5
|
};
|
|
6
6
|
}
|
|
7
|
-
function
|
|
8
|
-
if (!
|
|
9
|
-
return
|
|
10
|
-
const
|
|
7
|
+
function transformBoxPoints(point, transformPoint) {
|
|
8
|
+
if (!transformPoint)
|
|
9
|
+
return point;
|
|
10
|
+
const topLeft = transformPoint({ x: point.left, y: point.top });
|
|
11
|
+
const bottomRight = transformPoint({ x: point.right, y: point.bottom });
|
|
11
12
|
return {
|
|
12
|
-
top:
|
|
13
|
-
left:
|
|
14
|
-
bottom:
|
|
15
|
-
right:
|
|
13
|
+
top: topLeft.y,
|
|
14
|
+
left: topLeft.x,
|
|
15
|
+
bottom: bottomRight.y,
|
|
16
|
+
right: bottomRight.x
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
19
|
export {
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
convertBoundingBoxToBox,
|
|
21
|
+
transformBoxPoints
|
|
21
22
|
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
function copyAxisInto(axis, originAxis) {
|
|
2
|
+
axis.min = originAxis.min;
|
|
3
|
+
axis.max = originAxis.max;
|
|
4
|
+
}
|
|
5
|
+
function copyBoxInto(box, originBox) {
|
|
6
|
+
copyAxisInto(box.x, originBox.x);
|
|
7
|
+
copyAxisInto(box.y, originBox.y);
|
|
8
|
+
}
|
|
9
|
+
function copyAxisDeltaInto(delta, originDelta) {
|
|
10
|
+
delta.translate = originDelta.translate;
|
|
11
|
+
delta.scale = originDelta.scale;
|
|
12
|
+
delta.originPoint = originDelta.originPoint;
|
|
13
|
+
delta.origin = originDelta.origin;
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
copyAxisDeltaInto,
|
|
17
|
+
copyAxisInto,
|
|
18
|
+
copyBoxInto
|
|
19
|
+
};
|