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.
Files changed (275) hide show
  1. package/dist/cjs/index.js +7637 -1
  2. package/dist/es/animation/use-animate.mjs +25 -15
  3. package/dist/es/components/AnimatePresence.vue.mjs +57 -39
  4. package/dist/es/components/AnimatePresence.vue2.mjs +2 -2
  5. package/dist/es/components/LayoutGroup.vue.mjs +39 -0
  6. package/dist/es/components/LayoutGroup.vue2.mjs +4 -0
  7. package/dist/es/components/Motion.vue.mjs +87 -57
  8. package/dist/es/components/Motion.vue2.mjs +2 -2
  9. package/dist/es/components/Primitive.mjs +15 -9
  10. package/dist/es/components/Slot.mjs +28 -19
  11. package/dist/es/components/context.mjs +15 -4
  12. package/dist/es/components/group.mjs +30 -0
  13. package/dist/es/components/presence.mjs +13 -10
  14. package/dist/es/components/renderSlotFragments.mjs +10 -4
  15. package/dist/es/components/use-force-update.mjs +11 -0
  16. package/dist/es/constants/index.mjs +13 -6
  17. package/dist/es/features/events.mjs +59 -43
  18. package/dist/es/features/feature-manager.mjs +20 -17
  19. package/dist/es/features/feature.mjs +4 -4
  20. package/dist/es/features/gestures/base.mjs +12 -7
  21. package/dist/es/features/gestures/hover.mjs +25 -16
  22. package/dist/es/features/gestures/in-view.mjs +21 -15
  23. package/dist/es/features/gestures/press.mjs +22 -13
  24. package/dist/es/features/layout/config.mjs +21 -0
  25. package/dist/es/features/layout/layout.mjs +74 -0
  26. package/dist/es/features/layout/utils.mjs +8 -0
  27. package/dist/es/features/svg.mjs +14 -13
  28. package/dist/es/index.mjs +119 -102
  29. package/dist/es/node_modules/.pnpm/@vueuse_shared@12.0.0_typescript@5.5.4/node_modules/@vueuse/shared/index.mjs +6 -0
  30. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs +38 -28
  31. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/index.mjs +22 -15
  32. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/resolve-subjects.mjs +13 -5
  33. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/sequence.mjs +11 -9
  34. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs +8 -7
  35. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/subject.mjs +32 -24
  36. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs +178 -137
  37. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs +53 -37
  38. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs +227 -100
  39. 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
  40. 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
  41. 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
  42. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/NativeAnimation.mjs +112 -56
  43. 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
  44. 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
  45. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs +27 -17
  46. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs +15 -12
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/inertia.mjs +58 -28
  57. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs +28 -21
  58. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs +71 -43
  59. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs +64 -48
  60. 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
  61. 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
  62. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs +6 -6
  63. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs +64 -37
  64. 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
  65. 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
  66. 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
  67. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/create.mjs +133 -86
  68. 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
  69. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs +20 -16
  70. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs +11 -3
  71. 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
  72. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs +19 -8
  73. 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
  74. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs +14 -5
  75. 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
  76. 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
  77. 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
  78. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-none.mjs +10 -4
  79. 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
  80. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/stagger.mjs +18 -16
  81. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/anticipate.mjs +3 -3
  82. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/back.mjs +9 -7
  83. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/circ.mjs +8 -6
  84. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs +24 -14
  85. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/ease.mjs +7 -5
  86. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs +2 -2
  87. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs +2 -2
  88. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/steps.mjs +8 -7
  89. 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
  90. 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
  91. 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
  92. 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
  93. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/map.mjs +32 -29
  94. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/events/add-dom-event.mjs +7 -0
  95. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/batcher.mjs +57 -21
  96. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/frame.mjs +7 -7
  97. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/index-legacy.mjs +9 -5
  98. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/microtask.mjs +6 -0
  99. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/render-step.mjs +41 -19
  100. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/sync-time.mjs +16 -10
  101. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/motion/features/definitions.mjs +8 -6
  102. 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
  103. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs +60 -0
  104. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs +14 -13
  105. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs +19 -0
  106. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs +81 -0
  107. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs +55 -0
  108. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs +40 -0
  109. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/models.mjs +18 -5
  110. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs +34 -0
  111. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +13 -0
  112. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +28 -0
  113. 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
  114. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/state.mjs +15 -0
  115. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/shared/stack.mjs +94 -0
  116. 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
  117. 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
  118. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs +6 -2
  119. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/transform.mjs +36 -0
  120. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs +6 -0
  121. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs +20 -0
  122. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/measure.mjs +4 -4
  123. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/VisualElement.mjs +263 -117
  124. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs +81 -45
  125. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +13 -11
  126. 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
  127. 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
  128. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/index.mjs +5 -5
  129. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs +53 -36
  130. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs +29 -16
  131. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs +14 -8
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs +3 -3
  139. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs +60 -33
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  150. 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
  151. 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
  152. 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
  153. 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
  154. 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
  155. 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
  156. 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
  157. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs +29 -17
  158. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +41 -32
  159. 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
  160. 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
  161. 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
  162. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/render.mjs +6 -5
  163. 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
  164. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/transform.mjs +5 -4
  165. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/object/ObjectVisualElement.mjs +24 -20
  166. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/store.mjs +2 -2
  167. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +33 -28
  168. 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
  169. 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
  170. 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
  171. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs +12 -10
  172. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs +9 -8
  173. 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
  174. 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
  175. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs +105 -47
  176. 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
  177. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs +24 -0
  178. 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
  179. 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
  180. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs +31 -20
  181. 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
  182. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs +19 -14
  183. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/setters.mjs +17 -13
  184. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs +5 -4
  185. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs +4 -4
  186. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/array.mjs +9 -7
  187. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/clamp.mjs +8 -2
  188. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/delay.mjs +17 -12
  189. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/distance.mjs +7 -6
  190. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/errors.mjs +17 -10
  191. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs +32 -15
  192. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/interpolate.mjs +42 -31
  193. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-browser.mjs +2 -2
  194. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs +2 -2
  195. 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
  196. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/memo.mjs +8 -4
  197. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/color.mjs +40 -25
  198. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/complex.mjs +73 -41
  199. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs +3 -3
  200. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/index.mjs +9 -5
  201. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/number.mjs +4 -2
  202. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/visibility.mjs +9 -5
  203. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/noop.mjs +2 -2
  204. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/default.mjs +6 -5
  205. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/fill.mjs +8 -8
  206. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/time.mjs +3 -3
  207. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/pipe.mjs +3 -2
  208. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/progress.mjs +4 -4
  209. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs +15 -10
  210. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs +4 -3
  211. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/resolve-value.mjs +9 -3
  212. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/subscription-manager.mjs +18 -15
  213. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/time-conversion.mjs +4 -3
  214. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/transform.mjs +17 -8
  215. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs +3 -3
  216. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/warn-once.mjs +7 -4
  217. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/wrap.mjs +4 -4
  218. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/index.mjs +125 -53
  219. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/hex.mjs +32 -14
  220. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/hsla.mjs +11 -9
  221. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/index.mjs +18 -8
  222. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs +15 -13
  223. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/utils.mjs +16 -13
  224. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/complex/filter.mjs +22 -19
  225. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/complex/index.mjs +71 -36
  226. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/numbers/index.mjs +14 -12
  227. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/numbers/units.mjs +19 -13
  228. 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
  229. 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
  230. 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
  231. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs +2 -2
  232. 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
  233. 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
  234. 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
  235. 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
  236. 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
  237. package/dist/es/node_modules/.pnpm/hey-listen@1.0.8/node_modules/hey-listen/dist/hey-listen.es.mjs +17 -10
  238. package/dist/es/state/create-visual-element.mjs +9 -0
  239. package/dist/es/state/event.mjs +3 -3
  240. package/dist/es/state/motion-state.mjs +145 -91
  241. package/dist/es/state/schedule.mjs +23 -15
  242. package/dist/es/state/style.mjs +105 -81
  243. package/dist/es/state/transform.mjs +37 -29
  244. package/dist/es/state/utils.mjs +51 -45
  245. package/dist/es/utils/createContext.mjs +19 -11
  246. package/dist/es/utils/events.mjs +4 -4
  247. package/dist/es/utils/motion-value.mjs +3 -3
  248. package/dist/es/utils/use-animation-frame.mjs +17 -11
  249. package/dist/es/utils/use-in-view.mjs +20 -14
  250. package/dist/es/value/use-combine-values.mjs +22 -17
  251. package/dist/es/value/use-computed.mjs +17 -10
  252. package/dist/es/value/use-motion-template.mjs +17 -14
  253. package/dist/es/value/use-motion-value-event.mjs +11 -0
  254. package/dist/es/value/use-scroll.mjs +42 -33
  255. package/dist/es/value/use-spring.mjs +48 -28
  256. package/dist/es/value/use-time.mjs +7 -6
  257. package/dist/es/value/use-transform.mjs +24 -20
  258. package/dist/es/value/use-velocity.mjs +20 -0
  259. package/dist/src/components/LayoutGroup.d.ts +30 -0
  260. package/dist/src/components/context.d.ts +17 -0
  261. package/dist/src/components/group.d.ts +7 -0
  262. package/dist/src/components/use-force-update.d.ts +2 -0
  263. package/dist/src/features/index.d.ts +1 -0
  264. package/dist/src/features/layout/config.d.ts +8 -0
  265. package/dist/src/features/layout/layout.d.ts +10 -0
  266. package/dist/src/features/layout/types.d.ts +7 -0
  267. package/dist/src/features/layout/utils.d.ts +4 -0
  268. package/dist/src/index.d.ts +2 -0
  269. package/dist/src/state/create-visual-element.d.ts +1 -0
  270. package/dist/src/state/motion-state.d.ts +1 -2
  271. package/dist/src/types/state.d.ts +2 -1
  272. package/dist/src/value/index.d.ts +4 -0
  273. package/package.json +2 -1
  274. 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
  275. package/dist/src/components/usePrimitiveElement.d.ts +0 -5
@@ -1,18 +1,28 @@
1
- import { noop as b } from "../utils/noop.mjs";
2
- const s = (n, i, r) => (((1 - 3 * r + 3 * i) * n + (3 * r - 6 * i)) * n + 3 * i) * n, f = 1e-7, l = 12;
3
- function a(n, i, r, c, o) {
4
- let e, t, u = 0;
5
- do
6
- t = i + (r - i) / 2, e = s(t, c, o) - n, e > 0 ? r = t : i = t;
7
- while (Math.abs(e) > f && ++u < l);
8
- return t;
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 d(n, i, r, c) {
11
- if (n === i && r === c)
12
- return b;
13
- const o = (e) => a(e, 0, 1, n, r);
14
- return (e) => e === 0 || e === 1 ? e : s(o(e), i, c);
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
- d as cubicBezier
27
+ cubicBezier
18
28
  };
@@ -1,7 +1,9 @@
1
- import { cubicBezier as e } from "./cubic-bezier.mjs";
2
- const o = /* @__PURE__ */ e(0.42, 0, 1, 1), s = /* @__PURE__ */ e(0, 0, 0.58, 1), c = /* @__PURE__ */ e(0.42, 0, 0.58, 1);
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
- o as easeIn,
5
- c as easeInOut,
6
- s as easeOut
6
+ easeIn,
7
+ easeInOut,
8
+ easeOut
7
9
  };
@@ -1,4 +1,4 @@
1
- const t = (o) => (r) => r <= 0.5 ? o(2 * r) / 2 : (2 - o(2 * (1 - r))) / 2;
1
+ const mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;
2
2
  export {
3
- t as mirrorEasing
3
+ mirrorEasing
4
4
  };
@@ -1,4 +1,4 @@
1
- const s = (e) => (r) => 1 - e(1 - r);
1
+ const reverseEasing = (easing) => (p) => 1 - easing(1 - p);
2
2
  export {
3
- s as reverseEasing
3
+ reverseEasing
4
4
  };
@@ -1,11 +1,12 @@
1
- import { clamp as o } from "../utils/clamp.mjs";
2
- function h(t, a = "end") {
3
- return (n) => {
4
- n = a === "end" ? Math.min(n, 0.999) : Math.max(n, 1e-3);
5
- const d = n * t, e = a === "end" ? Math.floor(d) : Math.ceil(d);
6
- return o(0, 1, e / t);
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
- h as steps
11
+ steps
11
12
  };
@@ -1,13 +1,14 @@
1
- import { calcGeneratorDuration as i, maxGeneratorDuration as m } from "../../animation/generators/utils/calc-duration.mjs";
2
- import { millisecondsToSeconds as s } from "../../utils/time-conversion.mjs";
3
- function f(t, e = 100, n) {
4
- const r = n({ ...t, keyframes: [0, e] }), o = Math.min(i(r), m);
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: (a) => r.next(o * a).value / e,
8
- duration: s(o)
8
+ ease: (progress) => generator.next(duration * progress).value / scale,
9
+ duration: millisecondsToSeconds(duration)
9
10
  };
10
11
  }
11
12
  export {
12
- f as createGeneratorEasing
13
+ createGeneratorEasing
13
14
  };
@@ -1,8 +1,8 @@
1
- import { wrap as o } from "../../utils/wrap.mjs";
2
- import { isEasingArray as m } from "./is-easing-array.mjs";
3
- function e(r, t) {
4
- return m(r) ? r[o(0, r.length, t)] : r;
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
- e as getEasingForSegment
7
+ getEasingForSegment
8
8
  };
@@ -1,4 +1,4 @@
1
- const e = (r) => Array.isArray(r) && typeof r[0] == "number";
1
+ const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === "number";
2
2
  export {
3
- e as isBezierDefinition
3
+ isBezierDefinition
4
4
  };
@@ -1,4 +1,6 @@
1
- const n = (r) => Array.isArray(r) && typeof r[0] != "number";
1
+ const isEasingArray = (ease) => {
2
+ return Array.isArray(ease) && typeof ease[0] !== "number";
3
+ };
2
4
  export {
3
- n as isEasingArray
5
+ isEasingArray
4
6
  };
@@ -1,32 +1,35 @@
1
- import { invariant as t } from "../../utils/errors.mjs";
2
- import { cubicBezier as i } from "../cubic-bezier.mjs";
3
- import { noop as m } from "../../utils/noop.mjs";
4
- import { easeIn as u, easeInOut as s, easeOut as p } from "../ease.mjs";
5
- import { circIn as f, circInOut as I, circOut as b } from "../circ.mjs";
6
- import { backIn as l, backInOut as O, backOut as g } from "../back.mjs";
7
- import { anticipate as y } from "../anticipate.mjs";
8
- import { isBezierDefinition as k } from "./is-bezier-definition.mjs";
9
- const e = {
10
- linear: m,
11
- easeIn: u,
12
- easeInOut: s,
13
- easeOut: p,
14
- circIn: f,
15
- circInOut: I,
16
- circOut: b,
17
- backIn: l,
18
- backInOut: O,
19
- backOut: g,
20
- anticipate: y
21
- }, L = (r) => {
22
- if (k(r)) {
23
- t(r.length === 4, "Cubic bezier arrays must contain four numerical values.");
24
- const [o, a, n, c] = r;
25
- return i(o, a, n, c);
26
- } else if (typeof r == "string")
27
- return t(e[r] !== void 0, `Invalid easing type '${r}'`), e[r];
28
- return r;
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
- L as easingDefinitionToFunction
34
+ easingDefinitionToFunction
32
35
  };
@@ -0,0 +1,7 @@
1
+ function addDomEvent(target, eventName, handler, options = { passive: true }) {
2
+ target.addEventListener(eventName, handler, options);
3
+ return () => target.removeEventListener(eventName, handler);
4
+ }
5
+ export {
6
+ addDomEvent
7
+ };
@@ -1,5 +1,5 @@
1
- import { createRenderStep as E } from "./render-step.mjs";
2
- const a = [
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
- ], F = 40;
16
- function B(o, l) {
17
- let t = !1, c = !0;
18
- const e = {
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: !1
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
- return { schedule: a.reduce((s, r) => {
29
- const x = n[r];
30
- return s[r] = (P, v = !1, w = !1) => (t || h(), x.schedule(P, v, w)), s;
31
- }, {}), cancel: (s) => {
32
- for (let r = 0; r < a.length; r++)
33
- n[a[r]].cancel(s);
34
- }, state: e, steps: n };
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
- B as createRenderBatcher,
38
- a as stepsOrder
73
+ createRenderBatcher,
74
+ stepsOrder
39
75
  };
@@ -1,9 +1,9 @@
1
- import { noop as e } from "../utils/noop.mjs";
2
- import { createRenderBatcher as r } from "./batcher.mjs";
3
- const { schedule: m, cancel: n, state: o, steps: c } = r(typeof requestAnimationFrame < "u" ? requestAnimationFrame : e, !0);
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
- n as cancelFrame,
6
- m as frame,
7
- o as frameData,
8
- c as frameSteps
5
+ cancelFrame,
6
+ frame,
7
+ frameData,
8
+ frameSteps
9
9
  };
@@ -1,7 +1,11 @@
1
- import { stepsOrder as n } from "./batcher.mjs";
2
- import { frame as o, cancelFrame as t } from "./frame.mjs";
3
- const p = o, a = n.reduce((r, e) => (r[e] = (c) => t(c), r), {});
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
- a as cancelSync,
6
- p as sync
9
+ cancelSync,
10
+ sync
7
11
  };
@@ -0,0 +1,6 @@
1
+ import { createRenderBatcher } from "./batcher.mjs";
2
+ const { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);
3
+ export {
4
+ cancelMicrotask,
5
+ microtask
6
+ };
@@ -1,41 +1,63 @@
1
- function p(d) {
2
- let s = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set(), r = !1, n = !1;
3
- const a = /* @__PURE__ */ new WeakSet();
4
- let i = {
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: !1
10
+ isProcessing: false
8
11
  };
9
- function u(e) {
10
- a.has(e) && (f.schedule(e), d()), e(i);
12
+ function triggerCallback(callback) {
13
+ if (toKeepAlive.has(callback)) {
14
+ step.schedule(callback);
15
+ runNextFrame();
16
+ }
17
+ callback(latestFrameData);
11
18
  }
12
- const f = {
19
+ const step = {
13
20
  /**
14
21
  * Schedule a process to run on the next frame.
15
22
  */
16
- schedule: (e, l = !1, h = !1) => {
17
- const o = h && r ? s : t;
18
- return l && a.add(e), o.has(e) || o.add(e), e;
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: (e) => {
24
- t.delete(e), a.delete(e);
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: (e) => {
30
- if (i = e, r) {
31
- n = !0;
42
+ process: (frameData) => {
43
+ latestFrameData = frameData;
44
+ if (isProcessing) {
45
+ flushNextFrame = true;
32
46
  return;
33
47
  }
34
- r = !0, [s, t] = [t, s], t.clear(), s.forEach(u), r = !1, n && (n = !1, f.process(e));
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 f;
59
+ return step;
38
60
  }
39
61
  export {
40
- p as createRenderStep
62
+ createRenderStep
41
63
  };
@@ -1,15 +1,21 @@
1
- import { MotionGlobalConfig as i } from "../utils/GlobalConfig.mjs";
2
- import { frameData as n } from "./frame.mjs";
3
- let e;
4
- function t() {
5
- e = void 0;
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 r = {
8
- now: () => (e === void 0 && r.set(n.isProcessing || i.useManualTiming ? n.timestamp : performance.now()), e),
9
- set: (o) => {
10
- e = o, queueMicrotask(t);
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
- r as time
20
+ time
15
21
  };
@@ -1,4 +1,4 @@
1
- const n = {
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
- }, t = {};
21
- for (const e in n)
22
- t[e] = {
23
- isEnabled: (o) => n[e].some((a) => !!o[a])
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
- t as featureDefinitions
28
+ featureDefinitions
27
29
  };
@@ -1,8 +1,8 @@
1
- import { scaleCorrectors as i } from "../../projection/styles/scale-correction.mjs";
2
- import { transformProps as n } from "../../render/html/utils/transform.mjs";
3
- function c(r, { layout: o, layoutId: t }) {
4
- return n.has(r) || r.startsWith("origin") || (o || t !== void 0) && (!!i[r] || r === "opacity");
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
- c as isForcedMotionValue
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 n({ top: t, left: o, right: x, bottom: e }) {
1
+ function convertBoundingBoxToBox({ top, left, right, bottom }) {
2
2
  return {
3
- x: { min: o, max: x },
4
- y: { min: t, max: e }
3
+ x: { min: left, max: right },
4
+ y: { min: top, max: bottom }
5
5
  };
6
6
  }
7
- function r(t, o) {
8
- if (!o)
9
- return t;
10
- const x = o({ x: t.left, y: t.top }), e = o({ x: t.right, y: t.bottom });
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: x.y,
13
- left: x.x,
14
- bottom: e.y,
15
- right: e.x
13
+ top: topLeft.y,
14
+ left: topLeft.x,
15
+ bottom: bottomRight.y,
16
+ right: bottomRight.x
16
17
  };
17
18
  }
18
19
  export {
19
- n as convertBoundingBoxToBox,
20
- r as transformBoxPoints
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
+ };