motion-v 0.12.0 → 0.13.0-alpha.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 (398) hide show
  1. package/dist/cjs/index.js +451 -1203
  2. package/dist/es/animation/hooks/animation-controls.mjs +1 -1
  3. package/dist/es/animation/hooks/use-animate.mjs +1 -1
  4. package/dist/es/animation/hooks/use-reduced-motion.mjs +9 -0
  5. package/dist/es/components/animate-presence/AnimatePresence.vue.mjs +27 -19
  6. package/dist/es/components/animate-presence/use-pop-layout.mjs +1 -1
  7. package/dist/es/components/motion/Motion.vue.mjs +1 -0
  8. package/dist/es/components/reorder/utils.mjs +1 -1
  9. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animate/index.mjs +1 -2
  10. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animate/resolve-subjects.mjs +1 -2
  11. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animate/single-value.mjs +1 -1
  12. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animate/subject.mjs +1 -1
  13. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs +4 -7
  14. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/BaseAnimation.mjs +3 -1
  15. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs +5 -4
  16. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs +1 -2
  17. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/utils/can-animate.mjs +2 -2
  18. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/waapi/NativeAnimation.mjs +3 -6
  19. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/waapi/animate-elements.mjs +4 -4
  20. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/waapi/animate-style.mjs +1 -2
  21. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/waapi/index.mjs +9 -2
  22. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/waapi/utils/supports-partial-keyframes.mjs +2 -2
  23. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs +2 -2
  24. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/generators/spring/find.mjs +2 -2
  25. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/generators/spring/index.mjs +3 -4
  26. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/generators/utils/velocity.mjs +2 -1
  27. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/interfaces/motion-value.mjs +4 -5
  28. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +1 -3
  29. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/sequence/create.mjs +4 -5
  30. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/sequence/utils/edit.mjs +2 -1
  31. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/cubic-bezier.mjs +2 -2
  32. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/utils/map.mjs +3 -3
  33. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/animation/mix-values.mjs +3 -3
  34. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/node/create-projection-node.mjs +27 -7
  35. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/shared/stack.mjs +2 -1
  36. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/VisualElement.mjs +4 -5
  37. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/resize/handle-element.mjs +1 -2
  38. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/index.mjs +3 -3
  39. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/info.mjs +3 -3
  40. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/observe.mjs +1 -1
  41. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs +2 -1
  42. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/track.mjs +1 -1
  43. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs +1 -1
  44. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs +3 -18
  45. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/viewport/index.mjs +1 -2
  46. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +2 -3
  47. package/dist/es/external/.pnpm/framer-motion@12.5.0/external/framer-motion/dist/es/render/html/utils/parse-transform.mjs +82 -0
  48. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +1 -1
  49. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/KeyframesResolver.mjs +1 -1
  50. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/flat-tree.mjs +2 -1
  51. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/motion-values.mjs +4 -3
  52. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/setters.mjs +1 -1
  53. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/delay.mjs +3 -4
  54. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/interpolate.mjs +3 -3
  55. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/mix/color.mjs +1 -1
  56. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/mix/complex.mjs +1 -1
  57. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/offsets/fill.mjs +2 -2
  58. package/dist/es/features/gestures/drag/VisualElementDragControls.mjs +2 -2
  59. package/dist/es/features/gestures/drag/index.mjs +2 -2
  60. package/dist/es/features/gestures/focus/index.mjs +1 -1
  61. package/dist/es/features/gestures/hover/index.mjs +1 -3
  62. package/dist/es/features/gestures/in-view/index.mjs +2 -2
  63. package/dist/es/features/gestures/pan/PanSession.mjs +3 -3
  64. package/dist/es/features/gestures/pan/index.mjs +3 -3
  65. package/dist/es/features/gestures/press/index.mjs +3 -4
  66. package/dist/es/features/layout/config.mjs +2 -2
  67. package/dist/es/features/layout/layout.mjs +2 -2
  68. package/dist/es/features/layout/projection.mjs +2 -2
  69. package/dist/es/index.mjs +32 -42
  70. package/dist/es/state/animate-updates.mjs +6 -5
  71. package/dist/es/state/create-visual-element.mjs +2 -2
  72. package/dist/es/state/motion-state.mjs +2 -2
  73. package/dist/es/state/utils.mjs +0 -1
  74. package/dist/es/utils/use-animation-frame.mjs +1 -1
  75. package/dist/es/utils/use-in-view.mjs +6 -3
  76. package/dist/es/value/use-combine-values.mjs +1 -2
  77. package/dist/es/value/use-computed.mjs +1 -1
  78. package/dist/es/value/use-scroll.mjs +26 -24
  79. package/dist/es/value/use-spring.mjs +2 -3
  80. package/dist/es/value/use-time.mjs +1 -1
  81. package/dist/es/value/use-transform.mjs +3 -5
  82. package/dist/es/value/use-velocity.mjs +1 -2
  83. package/dist/nuxt/index.cjs +39 -27
  84. package/dist/nuxt/index.d.cts +7 -3
  85. package/dist/nuxt/index.d.mts +7 -3
  86. package/dist/nuxt/index.mjs +39 -27
  87. package/package.json +4 -3
  88. package/dist/es/animation/hooks/animation-controls.d.ts +0 -8
  89. package/dist/es/animation/hooks/use-animate.d.ts +0 -8
  90. package/dist/es/animation/hooks/use-animation-controls.d.ts +0 -33
  91. package/dist/es/animation/index.d.ts +0 -2
  92. package/dist/es/animation/types.d.ts +0 -68
  93. package/dist/es/animation/utils.d.ts +0 -2
  94. package/dist/es/components/LayoutGroup.d.ts +0 -43
  95. package/dist/es/components/RowValue.d.ts +0 -18
  96. package/dist/es/components/animate-presence/AnimatePresence.d.ts +0 -49
  97. package/dist/es/components/animate-presence/index.d.ts +0 -2
  98. package/dist/es/components/animate-presence/types.d.ts +0 -9
  99. package/dist/es/components/animate-presence/use-pop-layout.d.ts +0 -7
  100. package/dist/es/components/animate-presence/use-presence.d.ts +0 -2
  101. package/dist/es/components/animate-presence/utils.d.ts +0 -0
  102. package/dist/es/components/context.d.ts +0 -16
  103. package/dist/es/components/group.d.ts +0 -7
  104. package/dist/es/components/hooks/use-motion-elm.d.ts +0 -13
  105. package/dist/es/components/index.d.ts +0 -6
  106. package/dist/es/components/motion/Motion.d.ts +0 -32
  107. package/dist/es/components/motion/NameSpace.d.ts +0 -14
  108. package/dist/es/components/motion/Primitive.d.ts +0 -48
  109. package/dist/es/components/motion/Slot.d.ts +0 -5
  110. package/dist/es/components/motion/index.d.ts +0 -2
  111. package/dist/es/components/motion/renderSlotFragments.d.ts +0 -2
  112. package/dist/es/components/motion/utils.d.ts +0 -7
  113. package/dist/es/components/motion-config/MotionConfig.d.ts +0 -39
  114. package/dist/es/components/motion-config/context.d.ts +0 -11
  115. package/dist/es/components/motion-config/index.d.ts +0 -2
  116. package/dist/es/components/motion-config/types.d.ts +0 -16
  117. package/dist/es/components/presence.d.ts +0 -7
  118. package/dist/es/components/reorder/Group.d.ts +0 -71
  119. package/dist/es/components/reorder/Item.d.ts +0 -36
  120. package/dist/es/components/reorder/context.d.ts +0 -8
  121. package/dist/es/components/reorder/index.d.ts +0 -8942
  122. package/dist/es/components/reorder/types.d.ts +0 -5
  123. package/dist/es/components/reorder/utils.d.ts +0 -6
  124. package/dist/es/components/use-force-update.d.ts +0 -2
  125. package/dist/es/components/use-layout-group.d.ts +0 -23
  126. package/dist/es/components/use-slot-change-index.d.ts +0 -1
  127. package/dist/es/constants/index.d.ts +0 -9
  128. package/dist/es/constants/index.mjs +0 -31
  129. package/dist/es/events/add-dom-event.d.ts +0 -1
  130. package/dist/es/events/add-pointer-event.d.ts +0 -2
  131. package/dist/es/events/event-info.d.ts +0 -4
  132. package/dist/es/events/index.d.ts +0 -5
  133. package/dist/es/events/types.d.ts +0 -5
  134. package/dist/es/events/utils/index.d.ts +0 -1
  135. package/dist/es/events/utils/is-primary-pointer.d.ts +0 -1
  136. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/frameloop/batcher.mjs +0 -63
  137. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/frameloop/frame.mjs +0 -10
  138. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/frameloop/index-legacy.mjs +0 -11
  139. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/frameloop/microtask.mjs +0 -6
  140. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/frameloop/order.mjs +0 -17
  141. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/frameloop/render-step.mjs +0 -70
  142. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/frameloop/sync-time.mjs +0 -21
  143. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/stats/buffer.mjs +0 -7
  144. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/utils/GlobalConfig.mjs +0 -7
  145. package/dist/es/external/.pnpm/framer-motion@12.4.10/external/framer-motion/dist/es/value/index.mjs +0 -282
  146. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/controls/BaseGroup.mjs +0 -79
  147. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/controls/Group.mjs +0 -9
  148. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs +0 -15
  149. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs +0 -17
  150. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/generators/utils/is-generator.mjs +0 -6
  151. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/utils/get-value-transition.mjs +0 -6
  152. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/waapi/NativeAnimationControls.mjs +0 -81
  153. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/waapi/utils/attach-timeline.mjs +0 -7
  154. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/waapi/utils/easing.mjs +0 -37
  155. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/animation/waapi/utils/linear.mjs +0 -13
  156. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/drag/state/is-active.mjs +0 -11
  157. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/hover.mjs +0 -30
  158. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/press/index.mjs +0 -74
  159. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs +0 -13
  160. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/press/utils/keyboard.mjs +0 -32
  161. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/press/utils/state.mjs +0 -4
  162. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/utils/capture-pointer.mjs +0 -12
  163. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs +0 -12
  164. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs +0 -10
  165. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/gestures/utils/setup.mjs +0 -15
  166. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/utils/is-bezier-definition.mjs +0 -4
  167. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/utils/resolve-elements.mjs +0 -17
  168. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/utils/supports/flags.mjs +0 -6
  169. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/utils/supports/linear-easing.mjs +0 -12
  170. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/utils/supports/memo.mjs +0 -13
  171. package/dist/es/external/.pnpm/motion-dom@12.4.10/external/motion-dom/dist/es/utils/supports/scroll-timeline.mjs +0 -6
  172. package/dist/es/features/animation/animation.d.ts +0 -13
  173. package/dist/es/features/feature-manager.d.ts +0 -12
  174. package/dist/es/features/feature.d.ts +0 -11
  175. package/dist/es/features/gestures/base.d.ts +0 -8
  176. package/dist/es/features/gestures/drag/VisualElementDragControls.d.ts +0 -57
  177. package/dist/es/features/gestures/drag/index.d.ts +0 -10
  178. package/dist/es/features/gestures/drag/lock.d.ts +0 -4
  179. package/dist/es/features/gestures/drag/types.d.ts +0 -225
  180. package/dist/es/features/gestures/drag/use-drag-controls.d.ts +0 -73
  181. package/dist/es/features/gestures/drag/utils/constraints.d.ts +0 -55
  182. package/dist/es/features/gestures/drag/utils/is.d.ts +0 -1
  183. package/dist/es/features/gestures/focus/index.d.ts +0 -7
  184. package/dist/es/features/gestures/focus/types.d.ts +0 -13
  185. package/dist/es/features/gestures/hover/index.d.ts +0 -7
  186. package/dist/es/features/gestures/hover/types.d.ts +0 -15
  187. package/dist/es/features/gestures/in-view/index.d.ts +0 -9
  188. package/dist/es/features/gestures/in-view/types.d.ts +0 -25
  189. package/dist/es/features/gestures/index.d.ts +0 -5
  190. package/dist/es/features/gestures/pan/PanSession.d.ts +0 -139
  191. package/dist/es/features/gestures/pan/index.d.ts +0 -16
  192. package/dist/es/features/gestures/pan/types.d.ts +0 -7
  193. package/dist/es/features/gestures/press/index.d.ts +0 -11
  194. package/dist/es/features/gestures/press/types.d.ts +0 -20
  195. package/dist/es/features/gestures/types.d.ts +0 -22
  196. package/dist/es/features/index.d.ts +0 -6
  197. package/dist/es/features/layout/config.d.ts +0 -8
  198. package/dist/es/features/layout/layout.d.ts +0 -11
  199. package/dist/es/features/layout/projection.d.ts +0 -9
  200. package/dist/es/features/layout/types.d.ts +0 -21
  201. package/dist/es/features/layout/utils.d.ts +0 -4
  202. package/dist/es/index.d.ts +0 -15
  203. package/dist/es/projection/conversion.d.ts +0 -14
  204. package/dist/es/projection/geometry/delta-apply.d.ts +0 -2
  205. package/dist/es/projection/geometry/delta-calc.d.ts +0 -2
  206. package/dist/es/projection/geometry/models.d.ts +0 -3
  207. package/dist/es/projection/node/types.d.ts +0 -16
  208. package/dist/es/projection/utils/each-axis.d.ts +0 -3
  209. package/dist/es/projection/utils/measure.d.ts +0 -3
  210. package/dist/es/render/utils/setters.d.ts +0 -3
  211. package/dist/es/shared/test.d.ts +0 -1
  212. package/dist/es/state/animate-updates.d.ts +0 -20
  213. package/dist/es/state/animate-variants-children.d.ts +0 -15
  214. package/dist/es/state/animation/index.d.ts +0 -0
  215. package/dist/es/state/animation/types.d.ts +0 -0
  216. package/dist/es/state/create-visual-element.d.ts +0 -1
  217. package/dist/es/state/event.d.ts +0 -6
  218. package/dist/es/state/index.d.ts +0 -1
  219. package/dist/es/state/motion-state.d.ts +0 -50
  220. package/dist/es/state/style.d.ts +0 -11
  221. package/dist/es/state/transform.d.ts +0 -25
  222. package/dist/es/state/utils/is-present.d.ts +0 -2
  223. package/dist/es/state/utils/is-variant-labels.d.ts +0 -2
  224. package/dist/es/state/utils.d.ts +0 -19
  225. package/dist/es/types/framer-motion.d.ts +0 -43
  226. package/dist/es/types/index.d.ts +0 -4
  227. package/dist/es/types/motion-values.d.ts +0 -93
  228. package/dist/es/types/state.d.ts +0 -79
  229. package/dist/es/types/transform.d.ts +0 -23
  230. package/dist/es/utils/clamp.d.ts +0 -1
  231. package/dist/es/utils/createContext.d.ts +0 -8
  232. package/dist/es/utils/delay.d.ts +0 -1
  233. package/dist/es/utils/get-context-window.d.ts +0 -2
  234. package/dist/es/utils/index.d.ts +0 -7
  235. package/dist/es/utils/mix/number.d.ts +0 -1
  236. package/dist/es/utils/motion-value.d.ts +0 -2
  237. package/dist/es/utils/noop.d.ts +0 -1
  238. package/dist/es/utils/progress.d.ts +0 -1
  239. package/dist/es/utils/time-conversion.d.ts +0 -8
  240. package/dist/es/utils/use-animation-frame.d.ts +0 -2
  241. package/dist/es/utils/use-dom-ref.d.ts +0 -1
  242. package/dist/es/utils/use-in-view.d.ts +0 -3
  243. package/dist/es/value/index.d.ts +0 -9
  244. package/dist/es/value/types/numbers/units.d.ts +0 -30
  245. package/dist/es/value/use-combine-values.d.ts +0 -6
  246. package/dist/es/value/use-computed.d.ts +0 -2
  247. package/dist/es/value/use-motion-template.d.ts +0 -21
  248. package/dist/es/value/use-motion-value-event.d.ts +0 -3
  249. package/dist/es/value/use-scroll.d.ts +0 -12
  250. package/dist/es/value/use-spring.d.ts +0 -4
  251. package/dist/es/value/use-time.d.ts +0 -1
  252. package/dist/es/value/use-transform.d.ts +0 -59
  253. package/dist/es/value/use-velocity.d.ts +0 -13
  254. package/dist/es/value/use-will-change/add-will-change.d.ts +0 -2
  255. package/dist/es/value/use-will-change/is.d.ts +0 -2
  256. package/dist/es/value/use-will-change/types.d.ts +0 -4
  257. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animate/sequence.mjs +0 -0
  258. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs +0 -0
  259. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +0 -0
  260. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/animators/waapi/utils/style.mjs +0 -0
  261. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/generators/inertia.mjs +0 -0
  262. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/generators/keyframes.mjs +0 -0
  263. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/generators/spring/defaults.mjs +0 -0
  264. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +0 -0
  265. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +0 -0
  266. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/sequence/utils/calc-repeat-duration.mjs +0 -0
  267. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +0 -0
  268. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/sequence/utils/normalize-times.mjs +0 -0
  269. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/sequence/utils/sort.mjs +0 -0
  270. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/utils/create-visual-element.mjs +0 -0
  271. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/utils/default-transitions.mjs +0 -0
  272. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/utils/is-animatable.mjs +0 -0
  273. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +0 -0
  274. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +0 -0
  275. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +0 -0
  276. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/utils/is-none.mjs +0 -0
  277. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/utils/is-transition-defined.mjs +0 -0
  278. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/animation/utils/stagger.mjs +0 -0
  279. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/anticipate.mjs +0 -0
  280. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/back.mjs +0 -0
  281. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/circ.mjs +0 -0
  282. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/ease.mjs +0 -0
  283. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/modifiers/mirror.mjs +0 -0
  284. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/modifiers/reverse.mjs +0 -0
  285. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/steps.mjs +0 -0
  286. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs +0 -0
  287. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/easing/utils/is-easing-array.mjs +0 -0
  288. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/events/add-dom-event.mjs +0 -0
  289. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/motion/features/definitions.mjs +0 -0
  290. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +0 -0
  291. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/geometry/conversion.mjs +0 -0
  292. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/geometry/copy.mjs +0 -0
  293. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/geometry/delta-apply.mjs +0 -0
  294. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/geometry/delta-calc.mjs +0 -0
  295. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/geometry/delta-remove.mjs +0 -0
  296. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/geometry/models.mjs +0 -0
  297. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/geometry/utils.mjs +0 -0
  298. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +0 -0
  299. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +0 -0
  300. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/node/state.mjs +0 -0
  301. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +0 -0
  302. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +0 -0
  303. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/styles/scale-correction.mjs +0 -0
  304. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/styles/transform.mjs +0 -0
  305. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/utils/each-axis.mjs +0 -0
  306. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/utils/has-transform.mjs +0 -0
  307. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/projection/utils/measure.mjs +0 -0
  308. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs +0 -0
  309. package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +1 -1
  310. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/resize/handle-window.mjs +0 -0
  311. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/resize/index.mjs +0 -0
  312. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs +0 -0
  313. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs +0 -0
  314. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs +0 -0
  315. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs +0 -0
  316. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs +0 -0
  317. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +0 -0
  318. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs +0 -0
  319. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs +0 -0
  320. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs +0 -0
  321. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/defaults.mjs +0 -0
  322. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/dimensions.mjs +0 -0
  323. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/find.mjs +0 -0
  324. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs +0 -0
  325. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/number-browser.mjs +0 -0
  326. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/number.mjs +0 -0
  327. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/test.mjs +0 -0
  328. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/transform.mjs +0 -0
  329. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/type-auto.mjs +0 -0
  330. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/dom/value-types/type-int.mjs +0 -0
  331. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/html/utils/build-styles.mjs +0 -0
  332. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/html/utils/build-transform.mjs +0 -0
  333. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/html/utils/keys-position.mjs +0 -0
  334. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/html/utils/keys-transform.mjs +0 -0
  335. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs +0 -0
  336. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/html/utils/render.mjs +0 -0
  337. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +0 -0
  338. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/object/ObjectVisualElement.mjs +0 -0
  339. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/store.mjs +0 -0
  340. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +0 -0
  341. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +0 -0
  342. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +0 -0
  343. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/svg/utils/measure.mjs +0 -0
  344. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/svg/utils/path.mjs +0 -0
  345. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/svg/utils/render.mjs +0 -0
  346. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +0 -0
  347. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/svg/utils/transform-origin.mjs +0 -0
  348. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/compare-by-depth.mjs +0 -0
  349. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +0 -0
  350. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/is-variant-label.mjs +0 -0
  351. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +0 -0
  352. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/resolve-variants.mjs +0 -0
  353. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/render/utils/variant-props.mjs +0 -0
  354. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/clamp.mjs +0 -0
  355. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/distance.mjs +0 -0
  356. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/hsla-to-rgba.mjs +0 -0
  357. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/is-browser.mjs +0 -0
  358. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/is-numerical-string.mjs +0 -0
  359. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/is-zero-value-string.mjs +0 -0
  360. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/mix/immediate.mjs +0 -0
  361. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/mix/index.mjs +0 -0
  362. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/mix/number.mjs +0 -0
  363. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/mix/visibility.mjs +0 -0
  364. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/offsets/default.mjs +0 -0
  365. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/offsets/time.mjs +0 -0
  366. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/pipe.mjs +0 -0
  367. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/reduced-motion/index.mjs +0 -0
  368. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/reduced-motion/state.mjs +0 -0
  369. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/resolve-value.mjs +0 -0
  370. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/transform.mjs +0 -0
  371. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/utils/wrap.mjs +0 -0
  372. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/color/hex.mjs +0 -0
  373. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/color/hsla.mjs +0 -0
  374. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/color/index.mjs +0 -0
  375. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/color/rgba.mjs +0 -0
  376. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/color/utils.mjs +0 -0
  377. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/complex/filter.mjs +0 -0
  378. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/complex/index.mjs +0 -0
  379. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/numbers/index.mjs +0 -0
  380. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/numbers/units.mjs +0 -0
  381. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/utils/color-regex.mjs +0 -0
  382. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/utils/float-regex.mjs +0 -0
  383. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/utils/is-nullish.mjs +0 -0
  384. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/utils/sanitize.mjs +0 -0
  385. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/types/utils/single-color-regex.mjs +0 -0
  386. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/use-will-change/add-will-change.mjs +0 -0
  387. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/use-will-change/is.mjs +0 -0
  388. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/utils/is-motion-value.mjs +0 -0
  389. /package/dist/es/external/.pnpm/{framer-motion@12.4.10 → framer-motion@12.5.0}/external/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +0 -0
  390. /package/dist/es/external/.pnpm/{framer-motion@12.4.10/external/framer-motion/dist/es/utils → motion-utils@12.5.0/external/motion-utils/dist/es}/array.mjs +0 -0
  391. /package/dist/es/external/.pnpm/{motion-utils@12.4.10 → motion-utils@12.5.0}/external/motion-utils/dist/es/errors.mjs +0 -0
  392. /package/dist/es/external/.pnpm/{motion-utils@12.4.10 → motion-utils@12.5.0}/external/motion-utils/dist/es/memo.mjs +0 -0
  393. /package/dist/es/external/.pnpm/{motion-utils@12.4.10 → motion-utils@12.5.0}/external/motion-utils/dist/es/noop.mjs +0 -0
  394. /package/dist/es/external/.pnpm/{motion-utils@12.4.10 → motion-utils@12.5.0}/external/motion-utils/dist/es/progress.mjs +0 -0
  395. /package/dist/es/external/.pnpm/{framer-motion@12.4.10/external/framer-motion/dist/es/utils → motion-utils@12.5.0/external/motion-utils/dist/es}/subscription-manager.mjs +0 -0
  396. /package/dist/es/external/.pnpm/{motion-utils@12.4.10 → motion-utils@12.5.0}/external/motion-utils/dist/es/time-conversion.mjs +0 -0
  397. /package/dist/es/external/.pnpm/{framer-motion@12.4.10/external/framer-motion/dist/es/utils → motion-utils@12.5.0/external/motion-utils/dist/es}/velocity-per-second.mjs +0 -0
  398. /package/dist/es/external/.pnpm/{framer-motion@12.4.10/external/framer-motion/dist/es/utils → motion-utils@12.5.0/external/motion-utils/dist/es}/warn-once.mjs +0 -0
package/dist/cjs/index.js CHANGED
@@ -3,6 +3,16 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const core = require("@vueuse/core");
5
5
  const heyListen = require("hey-listen");
6
+ const motionDom = require("motion-dom");
7
+ function addUniqueItem(arr, item) {
8
+ if (arr.indexOf(item) === -1)
9
+ arr.push(item);
10
+ }
11
+ function removeItem(arr, item) {
12
+ const index = arr.indexOf(item);
13
+ if (index > -1)
14
+ arr.splice(index, 1);
15
+ }
6
16
  const noop = /* @__NO_SIDE_EFFECTS__ */ (any) => any;
7
17
  let warning = noop;
8
18
  exports.invariant = noop;
@@ -31,433 +41,45 @@ const progress$1 = /* @__NO_SIDE_EFFECTS__ */ (from, to, value) => {
31
41
  const toFromDifference = to - from;
32
42
  return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;
33
43
  };
34
- const secondsToMilliseconds$1 = /* @__NO_SIDE_EFFECTS__ */ (seconds) => seconds * 1e3;
35
- const millisecondsToSeconds$1 = /* @__NO_SIDE_EFFECTS__ */ (milliseconds) => milliseconds / 1e3;
36
- const supportsScrollTimeline = /* @__PURE__ */ memo(() => window.ScrollTimeline !== void 0);
37
- class BaseGroupPlaybackControls {
38
- constructor(animations) {
39
- this.stop = () => this.runAll("stop");
40
- this.animations = animations.filter(Boolean);
41
- }
42
- get finished() {
43
- return Promise.all(this.animations.map((animation) => "finished" in animation ? animation.finished : animation));
44
- }
45
- /**
46
- * TODO: Filter out cancelled or stopped animations before returning
47
- */
48
- getAll(propName) {
49
- return this.animations[0][propName];
50
- }
51
- setAll(propName, newValue) {
52
- for (let i = 0; i < this.animations.length; i++) {
53
- this.animations[i][propName] = newValue;
54
- }
55
- }
56
- attachTimeline(timeline, fallback) {
57
- const subscriptions = this.animations.map((animation) => {
58
- if (supportsScrollTimeline() && animation.attachTimeline) {
59
- return animation.attachTimeline(timeline);
60
- } else if (typeof fallback === "function") {
61
- return fallback(animation);
62
- }
63
- });
64
- return () => {
65
- subscriptions.forEach((cancel, i) => {
66
- cancel && cancel();
67
- this.animations[i].stop();
68
- });
69
- };
70
- }
71
- get time() {
72
- return this.getAll("time");
73
- }
74
- set time(time2) {
75
- this.setAll("time", time2);
76
- }
77
- get speed() {
78
- return this.getAll("speed");
79
- }
80
- set speed(speed) {
81
- this.setAll("speed", speed);
82
- }
83
- get startTime() {
84
- return this.getAll("startTime");
85
- }
86
- get duration() {
87
- let max = 0;
88
- for (let i = 0; i < this.animations.length; i++) {
89
- max = Math.max(max, this.animations[i].duration);
90
- }
91
- return max;
92
- }
93
- runAll(methodName) {
94
- this.animations.forEach((controls) => controls[methodName]());
95
- }
96
- flatten() {
97
- this.runAll("flatten");
98
- }
99
- play() {
100
- this.runAll("play");
101
- }
102
- pause() {
103
- this.runAll("pause");
104
- }
105
- cancel() {
106
- this.runAll("cancel");
107
- }
108
- complete() {
109
- this.runAll("complete");
110
- }
111
- }
112
- class GroupPlaybackControls extends BaseGroupPlaybackControls {
113
- then(onResolve, onReject) {
114
- return Promise.all(this.animations).then(onResolve).catch(onReject);
115
- }
116
- }
117
- function getValueTransition$1(transition, key) {
118
- return transition ? transition[key] || transition["default"] || transition : void 0;
119
- }
120
- const maxGeneratorDuration = 2e4;
121
- function calcGeneratorDuration(generator) {
122
- let duration = 0;
123
- const timeStep = 50;
124
- let state2 = generator.next(duration);
125
- while (!state2.done && duration < maxGeneratorDuration) {
126
- duration += timeStep;
127
- state2 = generator.next(duration);
128
- }
129
- return duration >= maxGeneratorDuration ? Infinity : duration;
130
- }
131
- function createGeneratorEasing(options, scale2 = 100, createGenerator) {
132
- const generator = createGenerator({ ...options, keyframes: [0, scale2] });
133
- const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);
134
- return {
135
- type: "keyframes",
136
- ease: (progress2) => {
137
- return generator.next(duration * progress2).value / scale2;
138
- },
139
- duration: /* @__PURE__ */ millisecondsToSeconds$1(duration)
140
- };
141
- }
142
- function isGenerator(type) {
143
- return typeof type === "function";
144
- }
145
- function attachTimeline(animation, timeline) {
146
- animation.timeline = timeline;
147
- animation.onfinish = null;
148
- }
149
- class NativeAnimationControls {
150
- constructor(animation) {
151
- this.animation = animation;
152
- }
153
- get duration() {
154
- var _a, _b, _c;
155
- const durationInMs = ((_b = (_a = this.animation) === null || _a === void 0 ? void 0 : _a.effect) === null || _b === void 0 ? void 0 : _b.getComputedTiming().duration) || ((_c = this.options) === null || _c === void 0 ? void 0 : _c.duration) || 300;
156
- return /* @__PURE__ */ millisecondsToSeconds$1(Number(durationInMs));
157
- }
158
- get time() {
159
- var _a;
160
- if (this.animation) {
161
- return /* @__PURE__ */ millisecondsToSeconds$1(((_a = this.animation) === null || _a === void 0 ? void 0 : _a.currentTime) || 0);
162
- }
163
- return 0;
164
- }
165
- set time(newTime) {
166
- if (this.animation) {
167
- this.animation.currentTime = /* @__PURE__ */ secondsToMilliseconds$1(newTime);
168
- }
169
- }
170
- get speed() {
171
- return this.animation ? this.animation.playbackRate : 1;
172
- }
173
- set speed(newSpeed) {
174
- if (this.animation) {
175
- this.animation.playbackRate = newSpeed;
176
- }
177
- }
178
- get state() {
179
- return this.animation ? this.animation.playState : "finished";
180
- }
181
- get startTime() {
182
- return this.animation ? this.animation.startTime : null;
183
- }
184
- get finished() {
185
- return this.animation ? this.animation.finished : Promise.resolve();
186
- }
187
- play() {
188
- this.animation && this.animation.play();
189
- }
190
- pause() {
191
- this.animation && this.animation.pause();
192
- }
193
- stop() {
194
- if (!this.animation || this.state === "idle" || this.state === "finished") {
195
- return;
196
- }
197
- if (this.animation.commitStyles) {
198
- this.animation.commitStyles();
199
- }
200
- this.cancel();
201
- }
202
- flatten() {
203
- var _a;
204
- if (!this.animation)
205
- return;
206
- (_a = this.animation.effect) === null || _a === void 0 ? void 0 : _a.updateTiming({ easing: "linear" });
207
- }
208
- attachTimeline(timeline) {
209
- if (this.animation)
210
- attachTimeline(this.animation, timeline);
211
- return noop;
212
- }
213
- complete() {
214
- this.animation && this.animation.finish();
215
- }
216
- cancel() {
217
- try {
218
- this.animation && this.animation.cancel();
219
- } catch (e) {
220
- }
221
- }
222
- }
223
- const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === "number";
224
- const supportsFlags = {
225
- linearEasing: void 0
226
- };
227
- function memoSupports(callback, supportsFlag) {
228
- const memoized = /* @__PURE__ */ memo(callback);
229
- return () => {
230
- var _a;
231
- return (_a = supportsFlags[supportsFlag]) !== null && _a !== void 0 ? _a : memoized();
232
- };
233
- }
234
- const supportsLinearEasing = /* @__PURE__ */ memoSupports(() => {
235
- try {
236
- document.createElement("div").animate({ opacity: 0 }, { easing: "linear(0, 1)" });
237
- } catch (e) {
238
- return false;
239
- }
240
- return true;
241
- }, "linearEasing");
242
- const generateLinearEasing = (easing, duration, resolution = 10) => {
243
- let points = "";
244
- const numPoints = Math.max(Math.round(duration / resolution), 2);
245
- for (let i = 0; i < numPoints; i++) {
246
- points += easing(/* @__PURE__ */ progress$1(0, numPoints - 1, i)) + ", ";
247
- }
248
- return `linear(${points.substring(0, points.length - 2)})`;
249
- };
250
- function isWaapiSupportedEasing(easing) {
251
- return Boolean(typeof easing === "function" && supportsLinearEasing() || !easing || typeof easing === "string" && (easing in supportedWaapiEasing || supportsLinearEasing()) || isBezierDefinition(easing) || Array.isArray(easing) && easing.every(isWaapiSupportedEasing));
252
- }
253
- const cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;
254
- const supportedWaapiEasing = {
255
- linear: "linear",
256
- ease: "ease",
257
- easeIn: "ease-in",
258
- easeOut: "ease-out",
259
- easeInOut: "ease-in-out",
260
- circIn: /* @__PURE__ */ cubicBezierAsString([0, 0.65, 0.55, 1]),
261
- circOut: /* @__PURE__ */ cubicBezierAsString([0.55, 0, 1, 0.45]),
262
- backIn: /* @__PURE__ */ cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),
263
- backOut: /* @__PURE__ */ cubicBezierAsString([0.33, 1.53, 0.69, 0.99])
264
- };
265
- function mapEasingToNativeEasing(easing, duration) {
266
- if (!easing) {
267
- return void 0;
268
- } else if (typeof easing === "function" && supportsLinearEasing()) {
269
- return generateLinearEasing(easing, duration);
270
- } else if (isBezierDefinition(easing)) {
271
- return cubicBezierAsString(easing);
272
- } else if (Array.isArray(easing)) {
273
- return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) || supportedWaapiEasing.easeOut);
274
- } else {
275
- return supportedWaapiEasing[easing];
44
+ class SubscriptionManager {
45
+ constructor() {
46
+ this.subscriptions = [];
276
47
  }
277
- }
278
- const isDragging = {
279
- x: false,
280
- y: false
281
- };
282
- function isDragActive() {
283
- return isDragging.y;
284
- }
285
- function resolveElements(elementOrSelector, scope, selectorCache) {
286
- var _a;
287
- if (elementOrSelector instanceof EventTarget) {
288
- return [elementOrSelector];
289
- } else if (typeof elementOrSelector === "string") {
290
- let root = document;
291
- if (scope) {
292
- root = scope.current;
293
- }
294
- const elements = (_a = selectorCache === null || selectorCache === void 0 ? void 0 : selectorCache[elementOrSelector]) !== null && _a !== void 0 ? _a : root.querySelectorAll(elementOrSelector);
295
- return elements ? Array.from(elements) : [];
48
+ add(handler) {
49
+ addUniqueItem(this.subscriptions, handler);
50
+ return () => removeItem(this.subscriptions, handler);
296
51
  }
297
- return Array.from(elementOrSelector);
298
- }
299
- function setupGesture(elementOrSelector, options) {
300
- const elements = resolveElements(elementOrSelector);
301
- const gestureAbortController = new AbortController();
302
- const eventOptions = {
303
- passive: true,
304
- ...options,
305
- signal: gestureAbortController.signal
306
- };
307
- const cancel = () => gestureAbortController.abort();
308
- return [elements, eventOptions, cancel];
309
- }
310
- function isValidHover(event) {
311
- return !(event.pointerType === "touch" || isDragActive());
312
- }
313
- function hover(elementOrSelector, onHoverStart, options = {}) {
314
- const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options);
315
- const onPointerEnter = (enterEvent) => {
316
- if (!isValidHover(enterEvent))
317
- return;
318
- const { target } = enterEvent;
319
- const onHoverEnd = onHoverStart(target, enterEvent);
320
- if (typeof onHoverEnd !== "function" || !target)
52
+ notify(a, b, c) {
53
+ const numSubscriptions = this.subscriptions.length;
54
+ if (!numSubscriptions)
321
55
  return;
322
- const onPointerLeave = (leaveEvent) => {
323
- if (!isValidHover(leaveEvent))
324
- return;
325
- onHoverEnd(leaveEvent);
326
- target.removeEventListener("pointerleave", onPointerLeave);
327
- };
328
- target.addEventListener("pointerleave", onPointerLeave, eventOptions);
329
- };
330
- elements.forEach((element) => {
331
- element.addEventListener("pointerenter", onPointerEnter, eventOptions);
332
- });
333
- return cancel;
334
- }
335
- function capturePointer(event, action) {
336
- const actionName = `${action}PointerCapture`;
337
- if (event.target instanceof Element && actionName in event.target && event.pointerId !== void 0) {
338
- try {
339
- event.target[actionName](event.pointerId);
340
- } catch (e) {
56
+ if (numSubscriptions === 1) {
57
+ this.subscriptions[0](a, b, c);
58
+ } else {
59
+ for (let i = 0; i < numSubscriptions; i++) {
60
+ const handler = this.subscriptions[i];
61
+ handler && handler(a, b, c);
62
+ }
341
63
  }
342
64
  }
343
- }
344
- const isNodeOrChild = (parent, child) => {
345
- if (!child) {
346
- return false;
347
- } else if (parent === child) {
348
- return true;
349
- } else {
350
- return isNodeOrChild(parent, child.parentElement);
65
+ getSize() {
66
+ return this.subscriptions.length;
351
67
  }
352
- };
353
- const isPrimaryPointer$1 = (event) => {
354
- if (event.pointerType === "mouse") {
355
- return typeof event.button !== "number" || event.button <= 0;
356
- } else {
357
- return event.isPrimary !== false;
68
+ clear() {
69
+ this.subscriptions.length = 0;
358
70
  }
359
- };
360
- const focusableElements = /* @__PURE__ */ new Set([
361
- "BUTTON",
362
- "INPUT",
363
- "SELECT",
364
- "TEXTAREA",
365
- "A"
366
- ]);
367
- function isElementKeyboardAccessible(element) {
368
- return focusableElements.has(element.tagName) || element.tabIndex !== -1;
369
71
  }
370
- const isPressing = /* @__PURE__ */ new WeakSet();
371
- function filterEvents(callback) {
372
- return (event) => {
373
- if (event.key !== "Enter")
374
- return;
375
- callback(event);
376
- };
377
- }
378
- function firePointerEvent(target, type) {
379
- target.dispatchEvent(new PointerEvent("pointer" + type, { isPrimary: true, bubbles: true }));
72
+ const secondsToMilliseconds$1 = /* @__NO_SIDE_EFFECTS__ */ (seconds) => seconds * 1e3;
73
+ const millisecondsToSeconds$1 = /* @__NO_SIDE_EFFECTS__ */ (milliseconds) => milliseconds / 1e3;
74
+ function velocityPerSecond(velocity, frameDuration) {
75
+ return frameDuration ? velocity * (1e3 / frameDuration) : 0;
380
76
  }
381
- const enableKeyboardPress = (focusEvent, eventOptions) => {
382
- const element = focusEvent.currentTarget;
383
- if (!element)
77
+ const warned = /* @__PURE__ */ new Set();
78
+ function warnOnce(condition, message, element) {
79
+ if (condition || warned.has(message))
384
80
  return;
385
- const handleKeydown = filterEvents(() => {
386
- if (isPressing.has(element))
387
- return;
388
- firePointerEvent(element, "down");
389
- const handleKeyup = filterEvents(() => {
390
- firePointerEvent(element, "up");
391
- });
392
- const handleBlur = () => firePointerEvent(element, "cancel");
393
- element.addEventListener("keyup", handleKeyup, eventOptions);
394
- element.addEventListener("blur", handleBlur, eventOptions);
395
- });
396
- element.addEventListener("keydown", handleKeydown, eventOptions);
397
- element.addEventListener("blur", () => element.removeEventListener("keydown", handleKeydown), eventOptions);
398
- };
399
- function isValidPressEvent(event) {
400
- return isPrimaryPointer$1(event) && !isDragActive();
401
- }
402
- function press(targetOrSelector, onPressStart, options = {}) {
403
- const [targets, eventOptions, cancelEvents] = setupGesture(targetOrSelector, options);
404
- const startPress = (startEvent) => {
405
- const target = startEvent.currentTarget;
406
- if (!target || !isValidPressEvent(startEvent) || isPressing.has(target))
407
- return;
408
- isPressing.add(target);
409
- capturePointer(startEvent, "set");
410
- const onPressEnd = onPressStart(target, startEvent);
411
- const onPointerEnd = (endEvent, success) => {
412
- target.removeEventListener("pointerup", onPointerUp);
413
- target.removeEventListener("pointercancel", onPointerCancel);
414
- capturePointer(endEvent, "release");
415
- if (!isValidPressEvent(endEvent) || !isPressing.has(target)) {
416
- return;
417
- }
418
- isPressing.delete(target);
419
- if (typeof onPressEnd === "function") {
420
- onPressEnd(endEvent, { success });
421
- }
422
- };
423
- const onPointerUp = (upEvent) => {
424
- const isOutside = !upEvent.isTrusted ? false : checkOutside(upEvent, target instanceof Element ? target.getBoundingClientRect() : {
425
- left: 0,
426
- top: 0,
427
- right: window.innerWidth,
428
- bottom: window.innerHeight
429
- });
430
- if (isOutside) {
431
- onPointerEnd(upEvent, false);
432
- } else {
433
- onPointerEnd(upEvent, !(target instanceof Element) || isNodeOrChild(target, upEvent.target));
434
- }
435
- };
436
- const onPointerCancel = (cancelEvent) => {
437
- onPointerEnd(cancelEvent, false);
438
- };
439
- target.addEventListener("pointerup", onPointerUp, eventOptions);
440
- target.addEventListener("pointercancel", onPointerCancel, eventOptions);
441
- target.addEventListener("lostpointercapture", onPointerCancel, eventOptions);
442
- };
443
- targets.forEach((target) => {
444
- target = options.useGlobalTarget ? window : target;
445
- let canAddKeyboardAccessibility = false;
446
- if (target instanceof HTMLElement) {
447
- canAddKeyboardAccessibility = true;
448
- if (!isElementKeyboardAccessible(target) && target.getAttribute("tabindex") === null) {
449
- target.tabIndex = 0;
450
- }
451
- }
452
- target.addEventListener("pointerdown", startPress, eventOptions);
453
- if (canAddKeyboardAccessibility) {
454
- target.addEventListener("focus", (event) => enableKeyboardPress(event, eventOptions), eventOptions);
455
- }
456
- });
457
- return cancelEvents;
458
- }
459
- function checkOutside(event, rect) {
460
- return event.clientX < rect.left || event.clientX > rect.right || event.clientY < rect.top || event.clientY > rect.bottom;
81
+ console.warn(message);
82
+ warned.add(message);
461
83
  }
462
84
  const clamp$1 = (min, max, v) => {
463
85
  if (v > max)
@@ -466,9 +88,6 @@ const clamp$1 = (min, max, v) => {
466
88
  return min;
467
89
  return v;
468
90
  };
469
- function velocityPerSecond(velocity, frameDuration) {
470
- return frameDuration ? velocity * (1e3 / frameDuration) : 0;
471
- }
472
91
  const velocitySampleDuration = 5;
473
92
  function calcGeneratorVelocity(resolveValue, t, current) {
474
93
  const prevT = Math.max(t - velocitySampleDuration, 0);
@@ -666,8 +285,8 @@ function spring(optionsOrVisualDuration = springDefaults.visualDuration, bounce
666
285
  return state2;
667
286
  },
668
287
  toString: () => {
669
- const calculatedDuration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);
670
- const easing = generateLinearEasing((progress2) => generator.next(calculatedDuration * progress2).value, calculatedDuration, 30);
288
+ const calculatedDuration = Math.min(motionDom.calcGeneratorDuration(generator), motionDom.maxGeneratorDuration);
289
+ const easing = motionDom.generateLinearEasing((progress2) => generator.next(calculatedDuration * progress2).value, calculatedDuration, 30);
671
290
  return calculatedDuration + "ms " + easing;
672
291
  }
673
292
  };
@@ -704,7 +323,7 @@ function isDOMKeyframes(keyframes2) {
704
323
  }
705
324
  function resolveSubjects(subject, keyframes2, scope, selectorCache) {
706
325
  if (typeof subject === "string" && isDOMKeyframes(keyframes2)) {
707
- return resolveElements(subject, scope, selectorCache);
326
+ return motionDom.resolveElements(subject, scope, selectorCache);
708
327
  } else if (subject instanceof NodeList) {
709
328
  return Array.from(subject);
710
329
  } else if (Array.isArray(subject)) {
@@ -728,15 +347,6 @@ function calcNextTime(current, next, prev, labels) {
728
347
  return (_a = labels.get(next)) !== null && _a !== void 0 ? _a : current;
729
348
  }
730
349
  }
731
- function addUniqueItem(arr, item) {
732
- if (arr.indexOf(item) === -1)
733
- arr.push(item);
734
- }
735
- function removeItem(arr, item) {
736
- const index = arr.indexOf(item);
737
- if (index > -1)
738
- arr.splice(index, 1);
739
- }
740
350
  function eraseKeyframes(sequence, startTime, endTime) {
741
351
  for (let i = 0; i < sequence.length; i++) {
742
352
  const keyframe = sequence[i];
@@ -803,7 +413,7 @@ function createAnimationsFromSequence(sequence, { defaultTransition = {}, ...seq
803
413
  let { ease: ease2 = defaultTransition.ease || "easeOut", duration } = valueTransition;
804
414
  const calculatedDelay = typeof delay2 === "function" ? delay2(elementIndex, numSubjects) : delay2;
805
415
  const numKeyframes = valueKeyframesAsList.length;
806
- const createGenerator = isGenerator(type) ? type : generators2 === null || generators2 === void 0 ? void 0 : generators2[type];
416
+ const createGenerator = motionDom.isGenerator(type) ? type : generators2 === null || generators2 === void 0 ? void 0 : generators2[type];
807
417
  if (numKeyframes <= 2 && createGenerator) {
808
418
  let absoluteDelta = 100;
809
419
  if (numKeyframes === 2 && isNumberKeyframesArray(valueKeyframesAsList)) {
@@ -814,7 +424,7 @@ function createAnimationsFromSequence(sequence, { defaultTransition = {}, ...seq
814
424
  if (duration !== void 0) {
815
425
  springTransition.duration = /* @__PURE__ */ secondsToMilliseconds$1(duration);
816
426
  }
817
- const springEasing = createGeneratorEasing(springTransition, absoluteDelta, createGenerator);
427
+ const springEasing = motionDom.createGeneratorEasing(springTransition, absoluteDelta, createGenerator);
818
428
  ease2 = springEasing.ease;
819
429
  duration = springEasing.duration;
820
430
  }
@@ -966,476 +576,6 @@ const isCustomValue = (v) => {
966
576
  const resolveFinalValueInKeyframes = (v) => {
967
577
  return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;
968
578
  };
969
- const MotionGlobalConfig = {
970
- skipAnimations: false,
971
- useManualTiming: false
972
- };
973
- const stepsOrder = [
974
- "read",
975
- // Read
976
- "resolveKeyframes",
977
- // Write/Read/Write/Read
978
- "update",
979
- // Compute
980
- "preRender",
981
- // Compute
982
- "render",
983
- // Write
984
- "postRender"
985
- // Compute
986
- ];
987
- const statsBuffer = {
988
- value: null,
989
- addProjectionMetrics: null
990
- };
991
- function createRenderStep(runNextFrame, stepName) {
992
- let thisFrame = /* @__PURE__ */ new Set();
993
- let nextFrame = /* @__PURE__ */ new Set();
994
- let isProcessing = false;
995
- let flushNextFrame = false;
996
- const toKeepAlive = /* @__PURE__ */ new WeakSet();
997
- let latestFrameData = {
998
- delta: 0,
999
- timestamp: 0,
1000
- isProcessing: false
1001
- };
1002
- let numCalls = 0;
1003
- function triggerCallback(callback) {
1004
- if (toKeepAlive.has(callback)) {
1005
- step.schedule(callback);
1006
- runNextFrame();
1007
- }
1008
- numCalls++;
1009
- callback(latestFrameData);
1010
- }
1011
- const step = {
1012
- /**
1013
- * Schedule a process to run on the next frame.
1014
- */
1015
- schedule: (callback, keepAlive = false, immediate = false) => {
1016
- const addToCurrentFrame = immediate && isProcessing;
1017
- const queue = addToCurrentFrame ? thisFrame : nextFrame;
1018
- if (keepAlive)
1019
- toKeepAlive.add(callback);
1020
- if (!queue.has(callback))
1021
- queue.add(callback);
1022
- return callback;
1023
- },
1024
- /**
1025
- * Cancel the provided callback from running on the next frame.
1026
- */
1027
- cancel: (callback) => {
1028
- nextFrame.delete(callback);
1029
- toKeepAlive.delete(callback);
1030
- },
1031
- /**
1032
- * Execute all schedule callbacks.
1033
- */
1034
- process: (frameData2) => {
1035
- latestFrameData = frameData2;
1036
- if (isProcessing) {
1037
- flushNextFrame = true;
1038
- return;
1039
- }
1040
- isProcessing = true;
1041
- [thisFrame, nextFrame] = [nextFrame, thisFrame];
1042
- thisFrame.forEach(triggerCallback);
1043
- if (stepName && statsBuffer.value) {
1044
- statsBuffer.value.frameloop[stepName].push(numCalls);
1045
- }
1046
- numCalls = 0;
1047
- thisFrame.clear();
1048
- isProcessing = false;
1049
- if (flushNextFrame) {
1050
- flushNextFrame = false;
1051
- step.process(frameData2);
1052
- }
1053
- }
1054
- };
1055
- return step;
1056
- }
1057
- const maxElapsed$1 = 40;
1058
- function createRenderBatcher(scheduleNextBatch, allowKeepAlive) {
1059
- let runNextFrame = false;
1060
- let useDefaultElapsed = true;
1061
- const state2 = {
1062
- delta: 0,
1063
- timestamp: 0,
1064
- isProcessing: false
1065
- };
1066
- const flagRunNextFrame = () => runNextFrame = true;
1067
- const steps2 = stepsOrder.reduce((acc, key) => {
1068
- acc[key] = createRenderStep(flagRunNextFrame, allowKeepAlive ? key : void 0);
1069
- return acc;
1070
- }, {});
1071
- const { read, resolveKeyframes, update, preRender, render, postRender } = steps2;
1072
- const processBatch = () => {
1073
- const timestamp = performance.now();
1074
- runNextFrame = false;
1075
- {
1076
- state2.delta = useDefaultElapsed ? 1e3 / 60 : Math.max(Math.min(timestamp - state2.timestamp, maxElapsed$1), 1);
1077
- }
1078
- state2.timestamp = timestamp;
1079
- state2.isProcessing = true;
1080
- read.process(state2);
1081
- resolveKeyframes.process(state2);
1082
- update.process(state2);
1083
- preRender.process(state2);
1084
- render.process(state2);
1085
- postRender.process(state2);
1086
- state2.isProcessing = false;
1087
- if (runNextFrame && allowKeepAlive) {
1088
- useDefaultElapsed = false;
1089
- scheduleNextBatch(processBatch);
1090
- }
1091
- };
1092
- const wake = () => {
1093
- runNextFrame = true;
1094
- useDefaultElapsed = true;
1095
- if (!state2.isProcessing) {
1096
- scheduleNextBatch(processBatch);
1097
- }
1098
- };
1099
- const schedule = stepsOrder.reduce((acc, key) => {
1100
- const step = steps2[key];
1101
- acc[key] = (process2, keepAlive = false, immediate = false) => {
1102
- if (!runNextFrame)
1103
- wake();
1104
- return step.schedule(process2, keepAlive, immediate);
1105
- };
1106
- return acc;
1107
- }, {});
1108
- const cancel = (process2) => {
1109
- for (let i = 0; i < stepsOrder.length; i++) {
1110
- steps2[stepsOrder[i]].cancel(process2);
1111
- }
1112
- };
1113
- return { schedule, cancel, state: state2, steps: steps2 };
1114
- }
1115
- const { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps } = createRenderBatcher(typeof requestAnimationFrame !== "undefined" ? requestAnimationFrame : noop, true);
1116
- let now;
1117
- function clearTime() {
1118
- now = void 0;
1119
- }
1120
- const time = {
1121
- now: () => {
1122
- if (now === void 0) {
1123
- time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming ? frameData.timestamp : performance.now());
1124
- }
1125
- return now;
1126
- },
1127
- set: (newTime) => {
1128
- now = newTime;
1129
- queueMicrotask(clearTime);
1130
- }
1131
- };
1132
- class SubscriptionManager {
1133
- constructor() {
1134
- this.subscriptions = [];
1135
- }
1136
- add(handler) {
1137
- addUniqueItem(this.subscriptions, handler);
1138
- return () => removeItem(this.subscriptions, handler);
1139
- }
1140
- notify(a, b, c) {
1141
- const numSubscriptions = this.subscriptions.length;
1142
- if (!numSubscriptions)
1143
- return;
1144
- if (numSubscriptions === 1) {
1145
- this.subscriptions[0](a, b, c);
1146
- } else {
1147
- for (let i = 0; i < numSubscriptions; i++) {
1148
- const handler = this.subscriptions[i];
1149
- handler && handler(a, b, c);
1150
- }
1151
- }
1152
- }
1153
- getSize() {
1154
- return this.subscriptions.length;
1155
- }
1156
- clear() {
1157
- this.subscriptions.length = 0;
1158
- }
1159
- }
1160
- const warned = /* @__PURE__ */ new Set();
1161
- function warnOnce(condition, message, element) {
1162
- if (condition || warned.has(message))
1163
- return;
1164
- console.warn(message);
1165
- warned.add(message);
1166
- }
1167
- const MAX_VELOCITY_DELTA = 30;
1168
- const isFloat = (value) => {
1169
- return !isNaN(parseFloat(value));
1170
- };
1171
- const collectMotionValues = {
1172
- current: void 0
1173
- };
1174
- class MotionValue {
1175
- /**
1176
- * @param init - The initiating value
1177
- * @param config - Optional configuration options
1178
- *
1179
- * - `transformer`: A function to transform incoming values with.
1180
- *
1181
- * @internal
1182
- */
1183
- constructor(init, options = {}) {
1184
- this.version = "12.4.10";
1185
- this.canTrackVelocity = null;
1186
- this.events = {};
1187
- this.updateAndNotify = (v, render = true) => {
1188
- const currentTime = time.now();
1189
- if (this.updatedAt !== currentTime) {
1190
- this.setPrevFrameValue();
1191
- }
1192
- this.prev = this.current;
1193
- this.setCurrent(v);
1194
- if (this.current !== this.prev && this.events.change) {
1195
- this.events.change.notify(this.current);
1196
- }
1197
- if (render && this.events.renderRequest) {
1198
- this.events.renderRequest.notify(this.current);
1199
- }
1200
- };
1201
- this.hasAnimated = false;
1202
- this.setCurrent(init);
1203
- this.owner = options.owner;
1204
- }
1205
- setCurrent(current) {
1206
- this.current = current;
1207
- this.updatedAt = time.now();
1208
- if (this.canTrackVelocity === null && current !== void 0) {
1209
- this.canTrackVelocity = isFloat(this.current);
1210
- }
1211
- }
1212
- setPrevFrameValue(prevFrameValue = this.current) {
1213
- this.prevFrameValue = prevFrameValue;
1214
- this.prevUpdatedAt = this.updatedAt;
1215
- }
1216
- /**
1217
- * Adds a function that will be notified when the `MotionValue` is updated.
1218
- *
1219
- * It returns a function that, when called, will cancel the subscription.
1220
- *
1221
- * When calling `onChange` inside a React component, it should be wrapped with the
1222
- * `useEffect` hook. As it returns an unsubscribe function, this should be returned
1223
- * from the `useEffect` function to ensure you don't add duplicate subscribers..
1224
- *
1225
- * ```jsx
1226
- * export const MyComponent = () => {
1227
- * const x = useMotionValue(0)
1228
- * const y = useMotionValue(0)
1229
- * const opacity = useMotionValue(1)
1230
- *
1231
- * useEffect(() => {
1232
- * function updateOpacity() {
1233
- * const maxXY = Math.max(x.get(), y.get())
1234
- * const newOpacity = transform(maxXY, [0, 100], [1, 0])
1235
- * opacity.set(newOpacity)
1236
- * }
1237
- *
1238
- * const unsubscribeX = x.on("change", updateOpacity)
1239
- * const unsubscribeY = y.on("change", updateOpacity)
1240
- *
1241
- * return () => {
1242
- * unsubscribeX()
1243
- * unsubscribeY()
1244
- * }
1245
- * }, [])
1246
- *
1247
- * return <motion.div style={{ x }} />
1248
- * }
1249
- * ```
1250
- *
1251
- * @param subscriber - A function that receives the latest value.
1252
- * @returns A function that, when called, will cancel this subscription.
1253
- *
1254
- * @deprecated
1255
- */
1256
- onChange(subscription) {
1257
- if (process.env.NODE_ENV !== "production") {
1258
- warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on("change", callback).`);
1259
- }
1260
- return this.on("change", subscription);
1261
- }
1262
- on(eventName, callback) {
1263
- if (!this.events[eventName]) {
1264
- this.events[eventName] = new SubscriptionManager();
1265
- }
1266
- const unsubscribe = this.events[eventName].add(callback);
1267
- if (eventName === "change") {
1268
- return () => {
1269
- unsubscribe();
1270
- frame.read(() => {
1271
- if (!this.events.change.getSize()) {
1272
- this.stop();
1273
- }
1274
- });
1275
- };
1276
- }
1277
- return unsubscribe;
1278
- }
1279
- clearListeners() {
1280
- for (const eventManagers in this.events) {
1281
- this.events[eventManagers].clear();
1282
- }
1283
- }
1284
- /**
1285
- * Attaches a passive effect to the `MotionValue`.
1286
- *
1287
- * @internal
1288
- */
1289
- attach(passiveEffect, stopPassiveEffect) {
1290
- this.passiveEffect = passiveEffect;
1291
- this.stopPassiveEffect = stopPassiveEffect;
1292
- }
1293
- /**
1294
- * Sets the state of the `MotionValue`.
1295
- *
1296
- * @remarks
1297
- *
1298
- * ```jsx
1299
- * const x = useMotionValue(0)
1300
- * x.set(10)
1301
- * ```
1302
- *
1303
- * @param latest - Latest value to set.
1304
- * @param render - Whether to notify render subscribers. Defaults to `true`
1305
- *
1306
- * @public
1307
- */
1308
- set(v, render = true) {
1309
- if (!render || !this.passiveEffect) {
1310
- this.updateAndNotify(v, render);
1311
- } else {
1312
- this.passiveEffect(v, this.updateAndNotify);
1313
- }
1314
- }
1315
- setWithVelocity(prev, current, delta) {
1316
- this.set(current);
1317
- this.prev = void 0;
1318
- this.prevFrameValue = prev;
1319
- this.prevUpdatedAt = this.updatedAt - delta;
1320
- }
1321
- /**
1322
- * Set the state of the `MotionValue`, stopping any active animations,
1323
- * effects, and resets velocity to `0`.
1324
- */
1325
- jump(v, endAnimation = true) {
1326
- this.updateAndNotify(v);
1327
- this.prev = v;
1328
- this.prevUpdatedAt = this.prevFrameValue = void 0;
1329
- endAnimation && this.stop();
1330
- if (this.stopPassiveEffect)
1331
- this.stopPassiveEffect();
1332
- }
1333
- /**
1334
- * Returns the latest state of `MotionValue`
1335
- *
1336
- * @returns - The latest state of `MotionValue`
1337
- *
1338
- * @public
1339
- */
1340
- get() {
1341
- if (collectMotionValues.current) {
1342
- collectMotionValues.current.push(this);
1343
- }
1344
- return this.current;
1345
- }
1346
- /**
1347
- * @public
1348
- */
1349
- getPrevious() {
1350
- return this.prev;
1351
- }
1352
- /**
1353
- * Returns the latest velocity of `MotionValue`
1354
- *
1355
- * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.
1356
- *
1357
- * @public
1358
- */
1359
- getVelocity() {
1360
- const currentTime = time.now();
1361
- if (!this.canTrackVelocity || this.prevFrameValue === void 0 || currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {
1362
- return 0;
1363
- }
1364
- const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);
1365
- return velocityPerSecond(parseFloat(this.current) - parseFloat(this.prevFrameValue), delta);
1366
- }
1367
- /**
1368
- * Registers a new animation to control this `MotionValue`. Only one
1369
- * animation can drive a `MotionValue` at one time.
1370
- *
1371
- * ```jsx
1372
- * value.start()
1373
- * ```
1374
- *
1375
- * @param animation - A function that starts the provided animation
1376
- *
1377
- * @internal
1378
- */
1379
- start(startAnimation) {
1380
- this.stop();
1381
- return new Promise((resolve) => {
1382
- this.hasAnimated = true;
1383
- this.animation = startAnimation(resolve);
1384
- if (this.events.animationStart) {
1385
- this.events.animationStart.notify();
1386
- }
1387
- }).then(() => {
1388
- if (this.events.animationComplete) {
1389
- this.events.animationComplete.notify();
1390
- }
1391
- this.clearAnimation();
1392
- });
1393
- }
1394
- /**
1395
- * Stop the currently active animation.
1396
- *
1397
- * @public
1398
- */
1399
- stop() {
1400
- if (this.animation) {
1401
- this.animation.stop();
1402
- if (this.events.animationCancel) {
1403
- this.events.animationCancel.notify();
1404
- }
1405
- }
1406
- this.clearAnimation();
1407
- }
1408
- /**
1409
- * Returns `true` if this value is currently animating.
1410
- *
1411
- * @public
1412
- */
1413
- isAnimating() {
1414
- return !!this.animation;
1415
- }
1416
- clearAnimation() {
1417
- delete this.animation;
1418
- }
1419
- /**
1420
- * Destroy and clean up subscribers to this `MotionValue`.
1421
- *
1422
- * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically
1423
- * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually
1424
- * created a `MotionValue` via the `motionValue` function.
1425
- *
1426
- * @public
1427
- */
1428
- destroy() {
1429
- this.clearListeners();
1430
- this.stop();
1431
- if (this.stopPassiveEffect) {
1432
- this.stopPassiveEffect();
1433
- }
1434
- }
1435
- }
1436
- function motionValue(init, options) {
1437
- return new MotionValue(init, options);
1438
- }
1439
579
  function getValueState(visualElement) {
1440
580
  const state2 = [{}, {}];
1441
581
  visualElement === null || visualElement === void 0 ? void 0 : visualElement.values.forEach((value, key) => {
@@ -1466,7 +606,7 @@ function setMotionValue(visualElement, key, value) {
1466
606
  if (visualElement.hasValue(key)) {
1467
607
  visualElement.getValue(key).set(value);
1468
608
  } else {
1469
- visualElement.addValue(key, motionValue(value));
609
+ visualElement.addValue(key, motionDom.motionValue(value));
1470
610
  }
1471
611
  }
1472
612
  function setTarget(visualElement, definition) {
@@ -1865,23 +1005,85 @@ function makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, n
1865
1005
  }
1866
1006
  }
1867
1007
  }
1868
- const isNumOrPxType = (v) => v === number || v === px;
1869
- const getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(", ")[pos]);
1870
- const getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform: transform2 }) => {
1871
- if (transform2 === "none" || !transform2)
1872
- return 0;
1873
- const matrix3d = transform2.match(/^matrix3d\((.+)\)$/u);
1874
- if (matrix3d) {
1875
- return getPosFromMatrix(matrix3d[1], pos3);
1008
+ const radToDeg = (rad) => rad * 180 / Math.PI;
1009
+ const rotate = (v) => {
1010
+ const angle = radToDeg(Math.atan2(v[1], v[0]));
1011
+ return rebaseAngle(angle);
1012
+ };
1013
+ const matrix2dParsers = {
1014
+ x: 4,
1015
+ y: 5,
1016
+ translateX: 4,
1017
+ translateY: 5,
1018
+ scaleX: 0,
1019
+ scaleY: 3,
1020
+ scale: (v) => (Math.abs(v[0]) + Math.abs(v[3])) / 2,
1021
+ rotate,
1022
+ rotateZ: rotate,
1023
+ skewX: (v) => radToDeg(Math.atan(v[1])),
1024
+ skewY: (v) => radToDeg(Math.atan(v[2])),
1025
+ skew: (v) => (Math.abs(v[1]) + Math.abs(v[2])) / 2
1026
+ };
1027
+ const rebaseAngle = (angle) => {
1028
+ angle = angle % 360;
1029
+ if (angle < 0)
1030
+ angle += 360;
1031
+ return angle;
1032
+ };
1033
+ const rotateZ = rotate;
1034
+ const scaleX = (v) => Math.sqrt(v[0] * v[0] + v[1] * v[1]);
1035
+ const scaleY = (v) => Math.sqrt(v[4] * v[4] + v[5] * v[5]);
1036
+ const matrix3dParsers = {
1037
+ x: 12,
1038
+ y: 13,
1039
+ z: 14,
1040
+ translateX: 12,
1041
+ translateY: 13,
1042
+ translateZ: 14,
1043
+ scaleX,
1044
+ scaleY,
1045
+ scale: (v) => (scaleX(v) + scaleY(v)) / 2,
1046
+ rotateX: (v) => rebaseAngle(radToDeg(Math.atan2(v[6], v[5]))),
1047
+ rotateY: (v) => rebaseAngle(radToDeg(Math.atan2(-v[2], v[0]))),
1048
+ rotateZ,
1049
+ rotate: rotateZ,
1050
+ skewX: (v) => radToDeg(Math.atan(v[4])),
1051
+ skewY: (v) => radToDeg(Math.atan(v[1])),
1052
+ skew: (v) => (Math.abs(v[1]) + Math.abs(v[4])) / 2
1053
+ };
1054
+ function defaultTransformValue(name) {
1055
+ return name.includes("scale") ? 1 : 0;
1056
+ }
1057
+ function parseValueFromTransform(transform2, name) {
1058
+ if (!transform2 || transform2 === "none") {
1059
+ return defaultTransformValue(name);
1060
+ }
1061
+ const matrix3dMatch = transform2.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);
1062
+ let parsers;
1063
+ let match;
1064
+ if (matrix3dMatch) {
1065
+ parsers = matrix3dParsers;
1066
+ match = matrix3dMatch;
1876
1067
  } else {
1877
- const matrix = transform2.match(/^matrix\((.+)\)$/u);
1878
- if (matrix) {
1879
- return getPosFromMatrix(matrix[1], pos2);
1880
- } else {
1881
- return 0;
1882
- }
1068
+ const matrix2dMatch = transform2.match(/^matrix\(([-\d.e\s,]+)\)$/u);
1069
+ parsers = matrix2dParsers;
1070
+ match = matrix2dMatch;
1071
+ }
1072
+ if (!match) {
1073
+ return defaultTransformValue(name);
1883
1074
  }
1075
+ const valueParser = parsers[name];
1076
+ const values = match[1].split(",").map(convertTransformToNumber);
1077
+ return typeof valueParser === "function" ? valueParser(values) : values[valueParser];
1078
+ }
1079
+ const readTransformValue = (instance, name) => {
1080
+ const { transform: transform2 = "none" } = getComputedStyle(instance);
1081
+ return parseValueFromTransform(transform2, name);
1884
1082
  };
1083
+ function convertTransformToNumber(value) {
1084
+ return parseFloat(value.trim());
1085
+ }
1086
+ const isNumOrPxType = (v) => v === number || v === px;
1885
1087
  const transformKeys = /* @__PURE__ */ new Set(["x", "y", "z"]);
1886
1088
  const nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));
1887
1089
  function removeNonTranslationalTransform(visualElement) {
@@ -1904,8 +1106,8 @@ const positionalValues = {
1904
1106
  bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),
1905
1107
  right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),
1906
1108
  // Transform
1907
- x: getTranslateFromMatrix(4, 13),
1908
- y: getTranslateFromMatrix(5, 14)
1109
+ x: (_bbox, { transform: transform2 }) => parseValueFromTransform(transform2, "x"),
1110
+ y: (_bbox, { transform: transform2 }) => parseValueFromTransform(transform2, "y")
1909
1111
  };
1910
1112
  positionalValues.translateX = positionalValues.x;
1911
1113
  positionalValues.translateY = positionalValues.y;
@@ -1960,7 +1162,7 @@ function flushKeyframeResolvers() {
1960
1162
  measureAllKeyframes();
1961
1163
  }
1962
1164
  class KeyframeResolver {
1963
- constructor(unresolvedKeyframes, onComplete, name, motionValue2, element, isAsync = false) {
1165
+ constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {
1964
1166
  this.isComplete = false;
1965
1167
  this.isAsync = false;
1966
1168
  this.needsMeasurement = false;
@@ -1968,7 +1170,7 @@ class KeyframeResolver {
1968
1170
  this.unresolvedKeyframes = [...unresolvedKeyframes];
1969
1171
  this.onComplete = onComplete;
1970
1172
  this.name = name;
1971
- this.motionValue = motionValue2;
1173
+ this.motionValue = motionValue;
1972
1174
  this.element = element;
1973
1175
  this.isAsync = isAsync;
1974
1176
  }
@@ -1978,8 +1180,8 @@ class KeyframeResolver {
1978
1180
  toResolve.add(this);
1979
1181
  if (!isScheduled) {
1980
1182
  isScheduled = true;
1981
- frame.read(readAllKeyframes);
1982
- frame.resolveKeyframes(measureAllKeyframes);
1183
+ motionDom.frame.read(readAllKeyframes);
1184
+ motionDom.frame.resolveKeyframes(measureAllKeyframes);
1983
1185
  }
1984
1186
  } else {
1985
1187
  this.readKeyframes();
@@ -1987,11 +1189,11 @@ class KeyframeResolver {
1987
1189
  }
1988
1190
  }
1989
1191
  readKeyframes() {
1990
- const { unresolvedKeyframes, name, element, motionValue: motionValue2 } = this;
1192
+ const { unresolvedKeyframes, name, element, motionValue } = this;
1991
1193
  for (let i = 0; i < unresolvedKeyframes.length; i++) {
1992
1194
  if (unresolvedKeyframes[i] === null) {
1993
1195
  if (i === 0) {
1994
- const currentValue = motionValue2 === null || motionValue2 === void 0 ? void 0 : motionValue2.get();
1196
+ const currentValue = motionValue === null || motionValue === void 0 ? void 0 : motionValue.get();
1995
1197
  const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];
1996
1198
  if (currentValue !== void 0) {
1997
1199
  unresolvedKeyframes[0] = currentValue;
@@ -2004,8 +1206,8 @@ class KeyframeResolver {
2004
1206
  if (unresolvedKeyframes[0] === void 0) {
2005
1207
  unresolvedKeyframes[0] = finalKeyframe;
2006
1208
  }
2007
- if (motionValue2 && currentValue === void 0) {
2008
- motionValue2.set(unresolvedKeyframes[0]);
1209
+ if (motionValue && currentValue === void 0) {
1210
+ motionValue.set(unresolvedKeyframes[0]);
2009
1211
  }
2010
1212
  } else {
2011
1213
  unresolvedKeyframes[i] = unresolvedKeyframes[i - 1];
@@ -2080,8 +1282,8 @@ const auto = {
2080
1282
  const dimensionValueTypes = [number, px, percent$1, degrees, vw, vh, auto];
2081
1283
  const findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));
2082
1284
  class DOMKeyframesResolver extends KeyframeResolver {
2083
- constructor(unresolvedKeyframes, onComplete, name, motionValue2, element) {
2084
- super(unresolvedKeyframes, onComplete, name, motionValue2, element, true);
1285
+ constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {
1286
+ super(unresolvedKeyframes, onComplete, name, motionValue, element, true);
2085
1287
  }
2086
1288
  readKeyframes() {
2087
1289
  const { unresolvedKeyframes, element, name } = this;
@@ -2204,7 +1406,7 @@ function canAnimate(keyframes2, name, type, velocity) {
2204
1406
  if (!isOriginAnimatable || !isTargetAnimatable) {
2205
1407
  return false;
2206
1408
  }
2207
- return hasKeyframesChanged(keyframes2) || (type === "spring" || isGenerator(type)) && velocity;
1409
+ return hasKeyframesChanged(keyframes2) || (type === "spring" || motionDom.isGenerator(type)) && velocity;
2208
1410
  }
2209
1411
  const isNotNull = (value) => value !== null;
2210
1412
  function getFinalKeyframe(keyframes2, { repeat, repeatType = "loop" }, finalKeyframe) {
@@ -2217,7 +1419,7 @@ class BaseAnimation {
2217
1419
  constructor({ autoplay = true, delay: delay2 = 0, type = "keyframes", repeat = 0, repeatDelay = 0, repeatType = "loop", ...options }) {
2218
1420
  this.isStopped = false;
2219
1421
  this.hasAttemptedResolve = false;
2220
- this.createdAt = time.now();
1422
+ this.createdAt = motionDom.time.now();
2221
1423
  this.options = {
2222
1424
  autoplay,
2223
1425
  delay: delay2,
@@ -2261,10 +1463,10 @@ class BaseAnimation {
2261
1463
  * Otherwise, it will call initPlayback on the implementing class.
2262
1464
  */
2263
1465
  onKeyframesResolved(keyframes2, finalKeyframe) {
2264
- this.resolvedAt = time.now();
1466
+ this.resolvedAt = motionDom.time.now();
2265
1467
  this.hasAttemptedResolve = true;
2266
- const { name, type, velocity, delay: delay2, onComplete, onUpdate, isGenerator: isGenerator2 } = this.options;
2267
- if (!isGenerator2 && !canAnimate(keyframes2, name, type, velocity)) {
1468
+ const { name, type, velocity, delay: delay2, onComplete, onUpdate, isGenerator } = this.options;
1469
+ if (!isGenerator && !canAnimate(keyframes2, name, type, velocity)) {
2268
1470
  if (!delay2) {
2269
1471
  onUpdate && onUpdate(getFinalKeyframe(keyframes2, this.options, finalKeyframe));
2270
1472
  onComplete && onComplete();
@@ -2295,6 +1497,8 @@ class BaseAnimation {
2295
1497
  return this.currentFinishedPromise.then(resolve, reject);
2296
1498
  }
2297
1499
  flatten() {
1500
+ if (!this.options.allowFlatten)
1501
+ return;
2298
1502
  this.options.type = "keyframes";
2299
1503
  this.options.ease = "linear";
2300
1504
  }
@@ -2541,7 +1745,7 @@ const easingLookup = {
2541
1745
  anticipate
2542
1746
  };
2543
1747
  const easingDefinitionToFunction = (definition) => {
2544
- if (isBezierDefinition(definition)) {
1748
+ if (motionDom.isBezierDefinition(definition)) {
2545
1749
  exports.invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);
2546
1750
  const [x1, y1, x2, y2] = definition;
2547
1751
  return cubicBezier(x1, y1, x2, y2);
@@ -2627,13 +1831,13 @@ function keyframes({ duration = 300, keyframes: keyframeValues, times, ease: eas
2627
1831
  const frameloopDriver = (update) => {
2628
1832
  const passTimestamp = ({ timestamp }) => update(timestamp);
2629
1833
  return {
2630
- start: () => frame.update(passTimestamp, true),
2631
- stop: () => cancelFrame(passTimestamp),
1834
+ start: () => motionDom.frame.update(passTimestamp, true),
1835
+ stop: () => motionDom.cancelFrame(passTimestamp),
2632
1836
  /**
2633
1837
  * If we're processing this frame we can use the
2634
1838
  * framelocked timestamp to keep things in sync.
2635
1839
  */
2636
- now: () => frameData.isProcessing ? frameData.timestamp : time.now()
1840
+ now: () => motionDom.frameData.isProcessing ? motionDom.frameData.timestamp : motionDom.time.now()
2637
1841
  };
2638
1842
  };
2639
1843
  const generators = {
@@ -2663,10 +1867,10 @@ class MainThreadAnimation extends BaseAnimation {
2663
1867
  const { onStop } = this.options;
2664
1868
  onStop && onStop();
2665
1869
  };
2666
- const { name, motionValue: motionValue2, element, keyframes: keyframes2 } = this.options;
1870
+ const { name, motionValue, element, keyframes: keyframes2 } = this.options;
2667
1871
  const KeyframeResolver$1 = (element === null || element === void 0 ? void 0 : element.KeyframeResolver) || KeyframeResolver;
2668
1872
  const onResolved = (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe);
2669
- this.resolver = new KeyframeResolver$1(keyframes2, onResolved, name, motionValue2, element);
1873
+ this.resolver = new KeyframeResolver$1(keyframes2, onResolved, name, motionValue, element);
2670
1874
  this.resolver.scheduleResolve();
2671
1875
  }
2672
1876
  flatten() {
@@ -2677,7 +1881,7 @@ class MainThreadAnimation extends BaseAnimation {
2677
1881
  }
2678
1882
  initPlayback(keyframes$1) {
2679
1883
  const { type = "keyframes", repeat = 0, repeatDelay = 0, repeatType, velocity = 0 } = this.options;
2680
- const generatorFactory = isGenerator(type) ? type : generators[type] || keyframes;
1884
+ const generatorFactory = motionDom.isGenerator(type) ? type : generators[type] || keyframes;
2681
1885
  let mapPercentToKeyframes;
2682
1886
  let mirroredGenerator;
2683
1887
  if (process.env.NODE_ENV !== "production" && generatorFactory !== keyframes) {
@@ -2696,7 +1900,7 @@ class MainThreadAnimation extends BaseAnimation {
2696
1900
  });
2697
1901
  }
2698
1902
  if (generator.calculatedDuration === null) {
2699
- generator.calculatedDuration = calcGeneratorDuration(generator);
1903
+ generator.calculatedDuration = motionDom.calcGeneratorDuration(generator);
2700
1904
  }
2701
1905
  const { calculatedDuration } = generator;
2702
1906
  const resolvedDuration = calculatedDuration + repeatDelay;
@@ -2712,6 +1916,7 @@ class MainThreadAnimation extends BaseAnimation {
2712
1916
  }
2713
1917
  onPostResolved() {
2714
1918
  const { autoplay = true } = this.options;
1919
+ motionDom.activeAnimations.mainThread++;
2715
1920
  this.play();
2716
1921
  if (this.pendingPlayState === "paused" || !autoplay) {
2717
1922
  this.pause();
@@ -2832,13 +2037,13 @@ class MainThreadAnimation extends BaseAnimation {
2832
2037
  this.driver = driver((timestamp) => this.tick(timestamp));
2833
2038
  }
2834
2039
  onPlay && onPlay();
2835
- const now2 = this.driver.now();
2040
+ const now = this.driver.now();
2836
2041
  if (this.holdTime !== null) {
2837
- this.startTime = now2 - this.holdTime;
2042
+ this.startTime = now - this.holdTime;
2838
2043
  } else if (!this.startTime) {
2839
2044
  this.startTime = startTime !== null && startTime !== void 0 ? startTime : this.calcStartTime();
2840
2045
  } else if (this.state === "finished") {
2841
- this.startTime = now2;
2046
+ this.startTime = now;
2842
2047
  }
2843
2048
  if (this.state === "finished") {
2844
2049
  this.updateFinishedPromise();
@@ -2884,6 +2089,7 @@ class MainThreadAnimation extends BaseAnimation {
2884
2089
  this.updateFinishedPromise();
2885
2090
  this.startTime = this.cancelTime = null;
2886
2091
  this.resolver.cancel();
2092
+ motionDom.activeAnimations.mainThread--;
2887
2093
  }
2888
2094
  stopDriver() {
2889
2095
  if (!this.driver)
@@ -2891,9 +2097,9 @@ class MainThreadAnimation extends BaseAnimation {
2891
2097
  this.driver.stop();
2892
2098
  this.driver = void 0;
2893
2099
  }
2894
- sample(time2) {
2100
+ sample(time) {
2895
2101
  this.startTime = 0;
2896
- return this.tick(time2, true);
2102
+ return this.tick(time, true);
2897
2103
  }
2898
2104
  }
2899
2105
  function animateValue(options) {
@@ -2912,9 +2118,12 @@ function startWaapiAnimation(element, valueName, keyframes2, { delay: delay2 = 0
2912
2118
  const keyframeOptions = { [valueName]: keyframes2 };
2913
2119
  if (times)
2914
2120
  keyframeOptions.offset = times;
2915
- const easing = mapEasingToNativeEasing(ease2, duration);
2121
+ const easing = motionDom.mapEasingToNativeEasing(ease2, duration);
2916
2122
  if (Array.isArray(easing))
2917
2123
  keyframeOptions.easing = easing;
2124
+ if (motionDom.statsBuffer.value) {
2125
+ motionDom.activeAnimations.waapi++;
2126
+ }
2918
2127
  const animation = element.animate(keyframeOptions, {
2919
2128
  delay: delay2,
2920
2129
  duration,
@@ -2923,13 +2132,18 @@ function startWaapiAnimation(element, valueName, keyframes2, { delay: delay2 = 0
2923
2132
  iterations: repeat + 1,
2924
2133
  direction: repeatType === "reverse" ? "alternate" : "normal"
2925
2134
  });
2135
+ if (motionDom.statsBuffer.value) {
2136
+ animation.finished.finally(() => {
2137
+ motionDom.activeAnimations.waapi--;
2138
+ });
2139
+ }
2926
2140
  return animation;
2927
2141
  }
2928
2142
  const supportsWaapi = /* @__PURE__ */ memo(() => Object.hasOwnProperty.call(Element.prototype, "animate"));
2929
2143
  const sampleDelta = 10;
2930
2144
  const maxDuration = 2e4;
2931
2145
  function requiresPregeneratedKeyframes(options) {
2932
- return isGenerator(options.type) || options.type === "spring" || !isWaapiSupportedEasing(options.ease);
2146
+ return motionDom.isGenerator(options.type) || options.type === "spring" || !motionDom.isWaapiSupportedEasing(options.ease);
2933
2147
  }
2934
2148
  function pregenerateKeyframes(keyframes2, options) {
2935
2149
  const sampleAnimation = new MainThreadAnimation({
@@ -2965,20 +2179,20 @@ function isUnsupportedEase(key) {
2965
2179
  class AcceleratedAnimation extends BaseAnimation {
2966
2180
  constructor(options) {
2967
2181
  super(options);
2968
- const { name, motionValue: motionValue2, element, keyframes: keyframes2 } = this.options;
2969
- this.resolver = new DOMKeyframesResolver(keyframes2, (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe), name, motionValue2, element);
2182
+ const { name, motionValue, element, keyframes: keyframes2 } = this.options;
2183
+ this.resolver = new DOMKeyframesResolver(keyframes2, (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe), name, motionValue, element);
2970
2184
  this.resolver.scheduleResolve();
2971
2185
  }
2972
2186
  initPlayback(keyframes2, finalKeyframe) {
2973
- let { duration = 300, times, ease: ease2, type, motionValue: motionValue2, name, startTime } = this.options;
2974
- if (!motionValue2.owner || !motionValue2.owner.current) {
2187
+ let { duration = 300, times, ease: ease2, type, motionValue, name, startTime } = this.options;
2188
+ if (!motionValue.owner || !motionValue.owner.current) {
2975
2189
  return false;
2976
2190
  }
2977
- if (typeof ease2 === "string" && supportsLinearEasing() && isUnsupportedEase(ease2)) {
2191
+ if (typeof ease2 === "string" && motionDom.supportsLinearEasing() && isUnsupportedEase(ease2)) {
2978
2192
  ease2 = unsupportedEasingFunctions[ease2];
2979
2193
  }
2980
2194
  if (requiresPregeneratedKeyframes(this.options)) {
2981
- const { onComplete, onUpdate, motionValue: motionValue3, element, ...options } = this.options;
2195
+ const { onComplete, onUpdate, motionValue: motionValue2, element, ...options } = this.options;
2982
2196
  const pregeneratedAnimation = pregenerateKeyframes(keyframes2, options);
2983
2197
  keyframes2 = pregeneratedAnimation.keyframes;
2984
2198
  if (keyframes2.length === 1) {
@@ -2989,15 +2203,15 @@ class AcceleratedAnimation extends BaseAnimation {
2989
2203
  ease2 = pregeneratedAnimation.ease;
2990
2204
  type = "keyframes";
2991
2205
  }
2992
- const animation = startWaapiAnimation(motionValue2.owner.current, name, keyframes2, { ...this.options, duration, times, ease: ease2 });
2206
+ const animation = startWaapiAnimation(motionValue.owner.current, name, keyframes2, { ...this.options, duration, times, ease: ease2 });
2993
2207
  animation.startTime = startTime !== null && startTime !== void 0 ? startTime : this.calcStartTime();
2994
2208
  if (this.pendingTimeline) {
2995
- attachTimeline(animation, this.pendingTimeline);
2209
+ motionDom.attachTimeline(animation, this.pendingTimeline);
2996
2210
  this.pendingTimeline = void 0;
2997
2211
  } else {
2998
2212
  animation.onfinish = () => {
2999
2213
  const { onComplete } = this.options;
3000
- motionValue2.set(getFinalKeyframe(keyframes2, this.options, finalKeyframe));
2214
+ motionValue.set(getFinalKeyframe(keyframes2, this.options, finalKeyframe));
3001
2215
  onComplete && onComplete();
3002
2216
  this.cancel();
3003
2217
  this.resolveFinishedPromise();
@@ -3073,7 +2287,7 @@ class AcceleratedAnimation extends BaseAnimation {
3073
2287
  if (!resolved)
3074
2288
  return noop;
3075
2289
  const { animation } = resolved;
3076
- attachTimeline(animation, timeline);
2290
+ motionDom.attachTimeline(animation, timeline);
3077
2291
  }
3078
2292
  return noop;
3079
2293
  }
@@ -3111,7 +2325,7 @@ class AcceleratedAnimation extends BaseAnimation {
3111
2325
  return;
3112
2326
  }
3113
2327
  if (this.time) {
3114
- const { motionValue: motionValue2, onUpdate, onComplete, element, ...options } = this.options;
2328
+ const { motionValue, onUpdate, onComplete, element, ...options } = this.options;
3115
2329
  const sampleAnimation = new MainThreadAnimation({
3116
2330
  ...options,
3117
2331
  keyframes: keyframes2,
@@ -3122,7 +2336,7 @@ class AcceleratedAnimation extends BaseAnimation {
3122
2336
  isGenerator: true
3123
2337
  });
3124
2338
  const sampleTime = /* @__PURE__ */ secondsToMilliseconds$1(this.time);
3125
- motionValue2.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);
2339
+ motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);
3126
2340
  }
3127
2341
  const { onStop } = this.options;
3128
2342
  onStop && onStop();
@@ -3141,11 +2355,11 @@ class AcceleratedAnimation extends BaseAnimation {
3141
2355
  resolved.animation.cancel();
3142
2356
  }
3143
2357
  static supports(options) {
3144
- const { motionValue: motionValue2, name, repeatDelay, repeatType, damping, type } = options;
3145
- if (!motionValue2 || !motionValue2.owner || !(motionValue2.owner.current instanceof HTMLElement)) {
2358
+ const { motionValue, name, repeatDelay, repeatType, damping, type } = options;
2359
+ if (!motionValue || !motionValue.owner || !(motionValue.owner.current instanceof HTMLElement)) {
3146
2360
  return false;
3147
2361
  }
3148
- const { onUpdate, transformTemplate } = motionValue2.owner.getProps();
2362
+ const { onUpdate, transformTemplate } = motionValue.owner.getProps();
3149
2363
  return supportsWaapi() && name && acceleratedValues.has(name) && /**
3150
2364
  * If we're outputting values to onUpdate then we can't use WAAPI as there's
3151
2365
  * no way to read the value from WAAPI every frame.
@@ -3186,7 +2400,7 @@ function isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildr
3186
2400
  return !!Object.keys(transition).length;
3187
2401
  }
3188
2402
  const animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {
3189
- const valueTransition = getValueTransition$1(transition, name) || {};
2403
+ const valueTransition = motionDom.getValueTransition(transition, name) || {};
3190
2404
  const delay2 = valueTransition.delay || transition.delay || 0;
3191
2405
  let { elapsed = 0 } = transition;
3192
2406
  elapsed = elapsed - /* @__PURE__ */ secondsToMilliseconds$1(delay2);
@@ -3230,14 +2444,15 @@ const animateMotionValue = (name, value, target, transition = {}, element, isHan
3230
2444
  shouldSkip = true;
3231
2445
  }
3232
2446
  }
2447
+ options.allowFlatten = !valueTransition.type && !valueTransition.ease;
3233
2448
  if (shouldSkip && !isHandoff && value.get() !== void 0) {
3234
2449
  const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);
3235
2450
  if (finalKeyframe !== void 0) {
3236
- frame.update(() => {
2451
+ motionDom.frame.update(() => {
3237
2452
  options.onUpdate(finalKeyframe);
3238
2453
  options.onComplete();
3239
2454
  });
3240
- return new GroupPlaybackControls([]);
2455
+ return new motionDom.GroupPlaybackControls([]);
3241
2456
  }
3242
2457
  }
3243
2458
  if (!isHandoff && AcceleratedAnimation.supports(options)) {
@@ -3266,13 +2481,13 @@ function animateTarget(visualElement, targetAndTransition, { delay: delay2 = 0,
3266
2481
  }
3267
2482
  const valueTransition = {
3268
2483
  delay: delay2,
3269
- ...getValueTransition$1(transition || {}, key)
2484
+ ...motionDom.getValueTransition(transition || {}, key)
3270
2485
  };
3271
2486
  let isHandoff = false;
3272
2487
  if (window.MotionHandoffAnimation) {
3273
2488
  const appearId = getOptimisedAppearId(visualElement);
3274
2489
  if (appearId) {
3275
- const startTime = window.MotionHandoffAnimation(appearId, key, frame);
2490
+ const startTime = window.MotionHandoffAnimation(appearId, key, motionDom.frame);
3276
2491
  if (startTime !== null) {
3277
2492
  valueTransition.startTime = startTime;
3278
2493
  isHandoff = true;
@@ -3288,7 +2503,7 @@ function animateTarget(visualElement, targetAndTransition, { delay: delay2 = 0,
3288
2503
  }
3289
2504
  if (transitionEnd) {
3290
2505
  Promise.all(animations).then(() => {
3291
- frame.update(() => {
2506
+ motionDom.frame.update(() => {
3292
2507
  transitionEnd && setTarget(visualElement, transitionEnd);
3293
2508
  });
3294
2509
  });
@@ -3386,10 +2601,10 @@ function updateMotionValuesFromProps(element, next, prev) {
3386
2601
  if (isMotionValue$1(nextValue)) {
3387
2602
  element.addValue(key, nextValue);
3388
2603
  if (process.env.NODE_ENV === "development") {
3389
- warnOnce(nextValue.version === "12.4.10", `Attempting to mix Motion versions ${nextValue.version} with 12.4.10 may not work as expected.`);
2604
+ warnOnce(nextValue.version === "12.5.0", `Attempting to mix Motion versions ${nextValue.version} with 12.5.0 may not work as expected.`);
3390
2605
  }
3391
2606
  } else if (isMotionValue$1(prevValue)) {
3392
- element.addValue(key, motionValue(nextValue, { owner: element }));
2607
+ element.addValue(key, motionDom.motionValue(nextValue, { owner: element }));
3393
2608
  } else if (prevValue !== nextValue) {
3394
2609
  if (element.hasValue(key)) {
3395
2610
  const existingValue = element.getValue(key);
@@ -3400,7 +2615,7 @@ function updateMotionValuesFromProps(element, next, prev) {
3400
2615
  }
3401
2616
  } else {
3402
2617
  const latestValue = element.getStaticValue(key);
3403
- element.addValue(key, motionValue(latestValue !== void 0 ? latestValue : nextValue, { owner: element }));
2618
+ element.addValue(key, motionDom.motionValue(latestValue !== void 0 ? latestValue : nextValue, { owner: element }));
3404
2619
  }
3405
2620
  }
3406
2621
  }
@@ -3452,10 +2667,10 @@ class VisualElement {
3452
2667
  };
3453
2668
  this.renderScheduledAt = 0;
3454
2669
  this.scheduleRender = () => {
3455
- const now2 = time.now();
3456
- if (this.renderScheduledAt < now2) {
3457
- this.renderScheduledAt = now2;
3458
- frame.render(this.render, false, true);
2670
+ const now = motionDom.time.now();
2671
+ if (this.renderScheduledAt < now) {
2672
+ this.renderScheduledAt = now;
2673
+ motionDom.frame.render(this.render, false, true);
3459
2674
  }
3460
2675
  };
3461
2676
  const { latestValues, renderState, onUpdate } = visualState;
@@ -3508,8 +2723,8 @@ class VisualElement {
3508
2723
  }
3509
2724
  unmount() {
3510
2725
  this.projection && this.projection.unmount();
3511
- cancelFrame(this.notifyUpdate);
3512
- cancelFrame(this.render);
2726
+ motionDom.cancelFrame(this.notifyUpdate);
2727
+ motionDom.cancelFrame(this.render);
3513
2728
  this.valueSubscriptions.forEach((remove) => remove());
3514
2729
  this.valueSubscriptions.clear();
3515
2730
  this.removeFromVariantTree && this.removeFromVariantTree();
@@ -3536,7 +2751,7 @@ class VisualElement {
3536
2751
  }
3537
2752
  const removeOnChange = value.on("change", (latestValue) => {
3538
2753
  this.latestValues[key] = latestValue;
3539
- this.props.onUpdate && frame.preRender(this.notifyUpdate);
2754
+ this.props.onUpdate && motionDom.frame.preRender(this.notifyUpdate);
3540
2755
  if (valueIsTransform && this.projection) {
3541
2756
  this.projection.isTransformDirty = true;
3542
2757
  }
@@ -3698,7 +2913,7 @@ class VisualElement {
3698
2913
  }
3699
2914
  let value = this.values.get(key);
3700
2915
  if (value === void 0 && defaultValue !== void 0) {
3701
- value = motionValue(defaultValue === null ? void 0 : defaultValue, { owner: this });
2916
+ value = motionDom.motionValue(defaultValue === null ? void 0 : defaultValue, { owner: this });
3702
2917
  this.addValue(key, value);
3703
2918
  }
3704
2919
  return value;
@@ -4045,7 +3260,7 @@ class SVGVisualElement extends DOMVisualElement {
4045
3260
  }
4046
3261
  onBindTransform() {
4047
3262
  if (this.current && !this.renderState.dimensions) {
4048
- frame.postRender(this.updateDimensions);
3263
+ motionDom.frame.postRender(this.updateDimensions);
4049
3264
  }
4050
3265
  }
4051
3266
  build(renderState, latestValues, props) {
@@ -4080,8 +3295,8 @@ function transformBoxPoints$1(point2, transformPoint2) {
4080
3295
  function isIdentityScale(scale2) {
4081
3296
  return scale2 === void 0 || scale2 === 1;
4082
3297
  }
4083
- function hasScale({ scale: scale2, scaleX, scaleY }) {
4084
- return !isIdentityScale(scale2) || !isIdentityScale(scaleX) || !isIdentityScale(scaleY);
3298
+ function hasScale({ scale: scale2, scaleX: scaleX2, scaleY: scaleY2 }) {
3299
+ return !isIdentityScale(scale2) || !isIdentityScale(scaleX2) || !isIdentityScale(scaleY2);
4085
3300
  }
4086
3301
  function hasTransform(values) {
4087
3302
  return hasScale(values) || has2DTranslate(values) || values.z || values.rotate || values.rotateX || values.rotateY || values.skewX || values.skewY;
@@ -4175,8 +3390,7 @@ class HTMLVisualElement extends DOMVisualElement {
4175
3390
  }
4176
3391
  readValueFromInstance(instance, key) {
4177
3392
  if (transformProps.has(key)) {
4178
- const defaultType = getDefaultValueType(key);
4179
- return defaultType ? defaultType.default || 0 : 0;
3393
+ return readTransformValue(instance, key);
4180
3394
  } else {
4181
3395
  const computedStyle = getComputedStyle$1(instance);
4182
3396
  const value = (isCSSVariableName(key) ? computedStyle.getPropertyValue(key) : computedStyle[key]) || 0;
@@ -4264,7 +3478,7 @@ function createObjectVisualElement(subject) {
4264
3478
  visualElementStore.set(subject, node);
4265
3479
  }
4266
3480
  function animateSingleValue(value, keyframes2, options) {
4267
- const motionValue$1 = isMotionValue$1(value) ? value : motionValue(value);
3481
+ const motionValue$1 = isMotionValue$1(value) ? value : motionDom.motionValue(value);
4268
3482
  motionValue$1.start(animateMotionValue("", motionValue$1, keyframes2, options));
4269
3483
  return motionValue$1.animation;
4270
3484
  }
@@ -4314,7 +3528,7 @@ function createScopedAnimate(scope) {
4314
3528
  } else {
4315
3529
  animations = animateSubject(subjectOrSequence, optionsOrKeyframes, options, scope);
4316
3530
  }
4317
- const animation = new GroupPlaybackControls(animations);
3531
+ const animation = new motionDom.GroupPlaybackControls(animations);
4318
3532
  if (scope) {
4319
3533
  scope.animations.push(animation);
4320
3534
  }
@@ -4357,7 +3571,7 @@ function getElementAnimationState(element) {
4357
3571
  state.set(element, animationState);
4358
3572
  return state.get(element);
4359
3573
  }
4360
- class NativeAnimation extends NativeAnimationControls {
3574
+ class NativeAnimation extends motionDom.NativeAnimationControls {
4361
3575
  constructor(element, valueName, valueKeyframes, options) {
4362
3576
  const isCSSVar = valueName.startsWith("--");
4363
3577
  exports.invariant(typeof options.type !== "string", `animateMini doesn't support "type" as a string. Did you mean to import { spring } from "framer-motion"?`);
@@ -4370,9 +3584,9 @@ class NativeAnimation extends NativeAnimationControls {
4370
3584
  valueKeyframes = [valueKeyframes];
4371
3585
  }
4372
3586
  hydrateKeyframes(valueName, valueKeyframes, readInitialKeyframe);
4373
- if (isGenerator(options.type)) {
4374
- const generatorOptions = createGeneratorEasing(options, 100, options.type);
4375
- options.ease = supportsLinearEasing() ? generatorOptions.ease : defaultEasing;
3587
+ if (motionDom.isGenerator(options.type)) {
3588
+ const generatorOptions = motionDom.createGeneratorEasing(options, 100, options.type);
3589
+ options.ease = motionDom.supportsLinearEasing() ? generatorOptions.ease : defaultEasing;
4376
3590
  options.duration = /* @__PURE__ */ secondsToMilliseconds$1(generatorOptions.duration);
4377
3591
  options.type = "keyframes";
4378
3592
  } else {
@@ -4431,7 +3645,7 @@ class NativeAnimation extends NativeAnimationControls {
4431
3645
  }
4432
3646
  }
4433
3647
  function animateElements(elementOrSelector, keyframes2, options, scope) {
4434
- const elements = resolveElements(elementOrSelector, scope);
3648
+ const elements = motionDom.resolveElements(elementOrSelector, scope);
4435
3649
  const numElements = elements.length;
4436
3650
  exports.invariant(Boolean(numElements), "No valid element provided.");
4437
3651
  const animations = [];
@@ -4444,10 +3658,11 @@ function animateElements(elementOrSelector, keyframes2, options, scope) {
4444
3658
  for (const valueName in keyframes2) {
4445
3659
  const valueKeyframes = keyframes2[valueName];
4446
3660
  const valueOptions = {
4447
- ...getValueTransition$1(elementTransition, valueName)
3661
+ ...motionDom.getValueTransition(elementTransition, valueName)
4448
3662
  };
4449
3663
  valueOptions.duration = valueOptions.duration ? /* @__PURE__ */ secondsToMilliseconds$1(valueOptions.duration) : valueOptions.duration;
4450
3664
  valueOptions.delay = /* @__PURE__ */ secondsToMilliseconds$1(valueOptions.delay || 0);
3665
+ valueOptions.allowFlatten = !elementTransition.type && !elementTransition.ease;
4451
3666
  animations.push(new NativeAnimation(element, valueName, valueKeyframes, valueOptions));
4452
3667
  }
4453
3668
  }
@@ -4455,7 +3670,7 @@ function animateElements(elementOrSelector, keyframes2, options, scope) {
4455
3670
  }
4456
3671
  const createScopedWaapiAnimate = (scope) => {
4457
3672
  function scopedAnimate(elementOrSelector, keyframes2, options) {
4458
- return new GroupPlaybackControls(animateElements(elementOrSelector, keyframes2, options, scope));
3673
+ return new motionDom.GroupPlaybackControls(animateElements(elementOrSelector, keyframes2, options, scope));
4459
3674
  }
4460
3675
  return scopedAnimate;
4461
3676
  };
@@ -4471,8 +3686,8 @@ function observeTimeline(update, timeline) {
4471
3686
  }
4472
3687
  prevProgress = progress2;
4473
3688
  };
4474
- frame.update(onFrame, true);
4475
- return () => cancelFrame(onFrame);
3689
+ motionDom.frame.update(onFrame, true);
3690
+ return () => motionDom.cancelFrame(onFrame);
4476
3691
  }
4477
3692
  const resizeHandlers = /* @__PURE__ */ new WeakMap();
4478
3693
  let observer;
@@ -4512,7 +3727,7 @@ function createResizeObserver() {
4512
3727
  function resizeElement(target, handler) {
4513
3728
  if (!observer)
4514
3729
  createResizeObserver();
4515
- const elements = resolveElements(target);
3730
+ const elements = motionDom.resolveElements(target);
4516
3731
  elements.forEach((element) => {
4517
3732
  let elementHandlers = resizeHandlers.get(element);
4518
3733
  if (!elementHandlers) {
@@ -4589,7 +3804,7 @@ const keys = {
4589
3804
  position: "Top"
4590
3805
  }
4591
3806
  };
4592
- function updateAxisInfo(element, axisName, info, time2) {
3807
+ function updateAxisInfo(element, axisName, info, time) {
4593
3808
  const axis = info[axisName];
4594
3809
  const { length, position } = keys[axisName];
4595
3810
  const prev = axis.current;
@@ -4600,13 +3815,13 @@ function updateAxisInfo(element, axisName, info, time2) {
4600
3815
  axis.offset[0] = 0;
4601
3816
  axis.offset[1] = axis.scrollLength;
4602
3817
  axis.progress = /* @__PURE__ */ progress$1(0, axis.scrollLength, axis.current);
4603
- const elapsed = time2 - prevTime;
3818
+ const elapsed = time - prevTime;
4604
3819
  axis.velocity = elapsed > maxElapsed ? 0 : velocityPerSecond(axis.current - prev, elapsed);
4605
3820
  }
4606
- function updateScrollInfo(element, info, time2) {
4607
- updateAxisInfo(element, "x", info, time2);
4608
- updateAxisInfo(element, "y", info, time2);
4609
- info.time = time2;
3821
+ function updateScrollInfo(element, info, time) {
3822
+ updateAxisInfo(element, "x", info, time);
3823
+ updateAxisInfo(element, "y", info, time);
3824
+ info.time = time;
4610
3825
  }
4611
3826
  function calcInset(element, container) {
4612
3827
  const inset = { x: 0, y: 0 };
@@ -4761,8 +3976,8 @@ function measure(container, target = container, info) {
4761
3976
  function createOnScrollHandler(element, onScroll, info, options = {}) {
4762
3977
  return {
4763
3978
  measure: () => measure(element, options.target, info),
4764
- update: (time2) => {
4765
- updateScrollInfo(element, info, time2);
3979
+ update: (time) => {
3980
+ updateScrollInfo(element, info, time);
4766
3981
  if (options.offset || options.target) {
4767
3982
  resolveOffsets(element, info, options);
4768
3983
  }
@@ -4790,7 +4005,7 @@ function scrollInfo(onScroll, { container = document.documentElement, ...options
4790
4005
  };
4791
4006
  const updateAll = () => {
4792
4007
  for (const handler of containerHandlers) {
4793
- handler.update(frameData.timestamp);
4008
+ handler.update(motionDom.frameData.timestamp);
4794
4009
  }
4795
4010
  };
4796
4011
  const notifyAll2 = () => {
@@ -4798,9 +4013,9 @@ function scrollInfo(onScroll, { container = document.documentElement, ...options
4798
4013
  handler.notify();
4799
4014
  };
4800
4015
  const listener2 = () => {
4801
- frame.read(measureAll, false, true);
4802
- frame.read(updateAll, false, true);
4803
- frame.update(notifyAll2, false, true);
4016
+ motionDom.frame.read(measureAll, false, true);
4017
+ motionDom.frame.read(updateAll, false, true);
4018
+ motionDom.frame.update(notifyAll2, false, true);
4804
4019
  };
4805
4020
  scrollListeners.set(container, listener2);
4806
4021
  const target = getEventTarget(container);
@@ -4811,10 +4026,10 @@ function scrollInfo(onScroll, { container = document.documentElement, ...options
4811
4026
  target.addEventListener("scroll", listener2, { passive: true });
4812
4027
  }
4813
4028
  const listener = scrollListeners.get(container);
4814
- frame.read(listener, false, true);
4029
+ motionDom.frame.read(listener, false, true);
4815
4030
  return () => {
4816
4031
  var _a;
4817
- cancelFrame(listener);
4032
+ motionDom.cancelFrame(listener);
4818
4033
  const currentHandlers = onScrollHandlers.get(container);
4819
4034
  if (!currentHandlers)
4820
4035
  return;
@@ -4848,7 +4063,7 @@ function getTimeline({ source, container = document.documentElement, axis = "y"
4848
4063
  }
4849
4064
  const elementCache = timelineCache.get(container);
4850
4065
  if (!elementCache[axis]) {
4851
- elementCache[axis] = supportsScrollTimeline() ? new ScrollTimeline({ source: container, axis }) : scrollTimelineFallback({ source: container, axis });
4066
+ elementCache[axis] = motionDom.supportsScrollTimeline() ? new ScrollTimeline({ source: container, axis }) : scrollTimelineFallback({ source: container, axis });
4852
4067
  }
4853
4068
  return elementCache[axis];
4854
4069
  }
@@ -4897,7 +4112,7 @@ const thresholds = {
4897
4112
  all: 1
4898
4113
  };
4899
4114
  function inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = "some" } = {}) {
4900
- const elements = resolveElements(elementOrSelector);
4115
+ const elements = motionDom.resolveElements(elementOrSelector);
4901
4116
  const activeIntersections = /* @__PURE__ */ new WeakMap();
4902
4117
  const onIntersectionChange = (entries) => {
4903
4118
  entries.forEach((entry) => {
@@ -4955,16 +4170,16 @@ function stagger(duration = 0.1, { startDelay = 0, from = 0, ease: ease2 } = {})
4955
4170
  };
4956
4171
  }
4957
4172
  function delay$1(callback, timeout) {
4958
- const start = time.now();
4173
+ const start = motionDom.time.now();
4959
4174
  const checkElapsed = ({ timestamp }) => {
4960
4175
  const elapsed = timestamp - start;
4961
4176
  if (elapsed >= timeout) {
4962
- cancelFrame(checkElapsed);
4177
+ motionDom.cancelFrame(checkElapsed);
4963
4178
  callback(elapsed - timeout);
4964
4179
  }
4965
4180
  };
4966
- frame.read(checkElapsed, true);
4967
- return () => cancelFrame(checkElapsed);
4181
+ motionDom.frame.read(checkElapsed, true);
4182
+ return () => motionDom.cancelFrame(checkElapsed);
4968
4183
  }
4969
4184
  function delayInSeconds(callback, timeout) {
4970
4185
  return delay$1(callback, /* @__PURE__ */ secondsToMilliseconds$1(timeout));
@@ -4992,11 +4207,6 @@ function transform(...args) {
4992
4207
  });
4993
4208
  return useImmediate ? interpolator(inputValue) : interpolator;
4994
4209
  }
4995
- const sync = frame;
4996
- const cancelSync = stepsOrder.reduce((acc, key) => {
4997
- acc[key] = (process2) => cancelFrame(process2);
4998
- return acc;
4999
- }, {});
5000
4210
  function createContext(providerComponentName, contextName) {
5001
4211
  const symbolDescription = typeof providerComponentName === "string" && !contextName ? `${providerComponentName}Context` : contextName;
5002
4212
  const injectionKey = Symbol(symbolDescription);
@@ -5023,7 +4233,7 @@ function isMotionValue(value) {
5023
4233
  }
5024
4234
  function useInView(domRef, options) {
5025
4235
  const isInView = vue.ref(false);
5026
- vue.watch([domRef, () => vue.isRef(options) ? options.value : options], (_v1, _v2) => {
4236
+ vue.watch([domRef, () => vue.isRef(options) ? options.value : options], (_v1, _v2, onCleanup) => {
5027
4237
  const realOptions = vue.unref(options) || {};
5028
4238
  const { once } = realOptions;
5029
4239
  if (!domRef.value || once && isInView.value) {
@@ -5035,7 +4245,10 @@ function useInView(domRef, options) {
5035
4245
  isInView.value = false;
5036
4246
  };
5037
4247
  };
5038
- return inView(domRef.value, onEnter, realOptions);
4248
+ const cleanup = inView(domRef.value, onEnter, realOptions);
4249
+ onCleanup(() => {
4250
+ cleanup();
4251
+ });
5039
4252
  }, {
5040
4253
  immediate: true
5041
4254
  });
@@ -5048,13 +4261,13 @@ function useAnimationFrame(callback) {
5048
4261
  initialTimestamp = timestamp;
5049
4262
  callback(timestamp - initialTimestamp, delta);
5050
4263
  };
5051
- const cancel = () => cancelFrame(provideTimeSinceStart);
4264
+ const cancel = () => motionDom.cancelFrame(provideTimeSinceStart);
5052
4265
  vue.onBeforeUpdate(() => {
5053
4266
  cancel();
5054
- frame.update(provideTimeSinceStart, true);
4267
+ motionDom.frame.update(provideTimeSinceStart, true);
5055
4268
  });
5056
4269
  vue.onUnmounted(() => cancel());
5057
- frame.update(provideTimeSinceStart, true);
4270
+ motionDom.frame.update(provideTimeSinceStart, true);
5058
4271
  }
5059
4272
  const secondsToMilliseconds = (seconds) => seconds * 1e3;
5060
4273
  function millisecondsToSeconds(milliseconds) {
@@ -5206,7 +4419,6 @@ function isAnimateChanged(oldOptions, newOptions) {
5206
4419
  return oldVal !== newVal;
5207
4420
  });
5208
4421
  }
5209
- console.log(2344);
5210
4422
  return oldAnimate !== newAnimate;
5211
4423
  }
5212
4424
  const rotation = {
@@ -5472,7 +4684,7 @@ function handleHoverEvent$1(state2, event, lifecycle) {
5472
4684
  const eventName = `onHover${lifecycle}`;
5473
4685
  const callback = props[eventName];
5474
4686
  if (callback) {
5475
- frame.postRender(() => callback(event, extractEventInfo$1(event)));
4687
+ motionDom.frame.postRender(() => callback(event, extractEventInfo$1(event)));
5476
4688
  }
5477
4689
  }
5478
4690
  class HoverGesture extends Feature {
@@ -5486,7 +4698,7 @@ class HoverGesture extends Feature {
5486
4698
  const element = this.state.element;
5487
4699
  if (!element)
5488
4700
  return;
5489
- this.unmount = hover(
4701
+ this.unmount = motionDom.hover(
5490
4702
  element,
5491
4703
  (el, startEvent) => {
5492
4704
  handleHoverEvent$1(this.state, startEvent, "Start");
@@ -5513,12 +4725,13 @@ function handlePressEvent(state2, event, lifecycle) {
5513
4725
  const eventName = `onPress${lifecycle === "End" ? "" : lifecycle}`;
5514
4726
  const callback = props[eventName];
5515
4727
  if (callback) {
5516
- frame.postRender(() => callback(event, extractEventInfo$1(event)));
4728
+ motionDom.frame.postRender(() => callback(event, extractEventInfo$1(event)));
5517
4729
  }
5518
4730
  }
5519
4731
  class PressGesture extends Feature {
5520
4732
  isActive() {
5521
- return Boolean(this.state.options.whilePress);
4733
+ const { whilePress, onPress, onPressCancel, onPressStart } = this.state.options;
4734
+ return Boolean(whilePress || onPress || onPressCancel || onPressStart);
5522
4735
  }
5523
4736
  constructor(state2) {
5524
4737
  super(state2);
@@ -5538,7 +4751,7 @@ class PressGesture extends Feature {
5538
4751
  const element = this.state.element;
5539
4752
  if (!element)
5540
4753
  return;
5541
- this.unmount = press(
4754
+ this.unmount = motionDom.press(
5542
4755
  element,
5543
4756
  (el, startEvent) => {
5544
4757
  handlePressEvent(this.state, startEvent, "Start");
@@ -5561,7 +4774,7 @@ function handleHoverEvent(state2, entry, lifecycle) {
5561
4774
  const eventName = `onViewport${lifecycle}`;
5562
4775
  const callback = props[eventName];
5563
4776
  if (callback) {
5564
- frame.postRender(() => callback(entry));
4777
+ motionDom.frame.postRender(() => callback(entry));
5565
4778
  }
5566
4779
  }
5567
4780
  class InViewGesture extends Feature {
@@ -5781,7 +4994,7 @@ class PanSession {
5781
4994
  if (!isPanStarted && !isDistancePastThreshold)
5782
4995
  return;
5783
4996
  const { point: point3 } = info2;
5784
- const { timestamp: timestamp2 } = frameData;
4997
+ const { timestamp: timestamp2 } = motionDom.frameData;
5785
4998
  this.history.push({ ...point3, timestamp: timestamp2 });
5786
4999
  const { onStart, onMove } = this.handlers;
5787
5000
  if (!isPanStarted) {
@@ -5793,7 +5006,7 @@ class PanSession {
5793
5006
  this.handlePointerMove = (event2, info2) => {
5794
5007
  this.lastMoveEvent = event2;
5795
5008
  this.lastMoveEventInfo = transformPoint(info2, this.transformPagePoint);
5796
- frame.update(this.updatePoint, true);
5009
+ motionDom.frame.update(this.updatePoint, true);
5797
5010
  };
5798
5011
  this.handlePointerUp = (event2, info2) => {
5799
5012
  this.end();
@@ -5820,7 +5033,7 @@ class PanSession {
5820
5033
  const info = extractEventInfo(event);
5821
5034
  const initialInfo = transformPoint(info, this.transformPagePoint);
5822
5035
  const { point: point2 } = initialInfo;
5823
- const { timestamp } = frameData;
5036
+ const { timestamp } = motionDom.frameData;
5824
5037
  this.history = [{ ...point2, timestamp }];
5825
5038
  const { onSessionStart } = handlers;
5826
5039
  onSessionStart && onSessionStart(event, getPanInfo(initialInfo, this.history));
@@ -5847,7 +5060,7 @@ class PanSession {
5847
5060
  }
5848
5061
  end() {
5849
5062
  this.removeListeners && this.removeListeners();
5850
- cancelFrame(this.updatePoint);
5063
+ motionDom.cancelFrame(this.updatePoint);
5851
5064
  }
5852
5065
  }
5853
5066
  function transformPoint(info, transformPagePoint) {
@@ -5887,15 +5100,15 @@ function getVelocity(history, timeDelta) {
5887
5100
  if (!timestampedPoint) {
5888
5101
  return { x: 0, y: 0 };
5889
5102
  }
5890
- const time2 = millisecondsToSeconds(
5103
+ const time = millisecondsToSeconds(
5891
5104
  lastPoint.timestamp - timestampedPoint.timestamp
5892
5105
  );
5893
- if (time2 === 0) {
5106
+ if (time === 0) {
5894
5107
  return { x: 0, y: 0 };
5895
5108
  }
5896
5109
  const currentVelocity = {
5897
- x: (lastPoint.x - timestampedPoint.x) / time2,
5898
- y: (lastPoint.y - timestampedPoint.y) / time2
5110
+ x: (lastPoint.x - timestampedPoint.x) / time,
5111
+ y: (lastPoint.y - timestampedPoint.y) / time
5899
5112
  };
5900
5113
  if (currentVelocity.x === Infinity) {
5901
5114
  currentVelocity.x = 0;
@@ -6041,7 +5254,7 @@ class VisualElementDragControls {
6041
5254
  this.originPoint[axis] = current;
6042
5255
  });
6043
5256
  if (onDragStart) {
6044
- frame.postRender(() => onDragStart(event, info));
5257
+ motionDom.frame.postRender(() => onDragStart(event, info));
6045
5258
  }
6046
5259
  addValueToWillChange(this.visualElement, "transform");
6047
5260
  const state2 = this.visualElement.state;
@@ -6094,15 +5307,15 @@ class VisualElementDragControls {
6094
5307
  );
6095
5308
  }
6096
5309
  stop(event, info) {
6097
- const isDragging2 = this.isDragging;
5310
+ const isDragging = this.isDragging;
6098
5311
  this.cancel();
6099
- if (!isDragging2)
5312
+ if (!isDragging)
6100
5313
  return;
6101
5314
  const { velocity } = info;
6102
5315
  this.startAnimation(velocity);
6103
5316
  const { onDragEnd } = this.getProps();
6104
5317
  if (onDragEnd) {
6105
- frame.postRender(() => onDragEnd(event, info));
5318
+ motionDom.frame.postRender(() => onDragEnd(event, info));
6106
5319
  }
6107
5320
  }
6108
5321
  cancel() {
@@ -6355,19 +5568,19 @@ class VisualElementDragControls {
6355
5568
  projection.root && projection.root.updateScroll();
6356
5569
  projection.updateLayout();
6357
5570
  }
6358
- frame.read(measureDragConstraints);
5571
+ motionDom.frame.read(measureDragConstraints);
6359
5572
  const stopResizeListener = addDomEvent$1(window, "resize", () => this.scalePositionWithinConstraints());
6360
5573
  const stopLayoutUpdateListener = projection.addEventListener(
6361
5574
  "didUpdate",
6362
5575
  ({ delta, hasLayoutChanged }) => {
6363
5576
  if (this.isDragging && hasLayoutChanged) {
6364
5577
  eachAxis$1((axis) => {
6365
- const motionValue2 = this.getAxisMotionValue(axis);
6366
- if (!motionValue2)
5578
+ const motionValue = this.getAxisMotionValue(axis);
5579
+ if (!motionValue)
6367
5580
  return;
6368
5581
  this.originPoint[axis] += delta[axis].translate;
6369
- motionValue2.set(
6370
- motionValue2.get() + delta[axis].translate
5582
+ motionValue.set(
5583
+ motionValue.get() + delta[axis].translate
6371
5584
  );
6372
5585
  });
6373
5586
  this.visualElement.render();
@@ -6558,7 +5771,7 @@ class LayoutFeature extends Feature {
6558
5771
  function asyncHandler(handler) {
6559
5772
  return (event, info) => {
6560
5773
  if (handler) {
6561
- frame.postRender(() => handler(event, info));
5774
+ motionDom.frame.postRender(() => handler(event, info));
6562
5775
  }
6563
5776
  };
6564
5777
  }
@@ -6595,7 +5808,7 @@ class PanGesture extends Feature {
6595
5808
  const { onPanEnd } = this.state.options;
6596
5809
  delete this.session;
6597
5810
  if (onPanEnd) {
6598
- frame.postRender(() => onPanEnd(event, info));
5811
+ motionDom.frame.postRender(() => onPanEnd(event, info));
6599
5812
  }
6600
5813
  }
6601
5814
  };
@@ -6614,7 +5827,6 @@ class PanGesture extends Feature {
6614
5827
  this.session && this.session.end();
6615
5828
  }
6616
5829
  }
6617
- const { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);
6618
5830
  const compareByDepth = (a, b) => a.depth - b.depth;
6619
5831
  class FlatTree {
6620
5832
  constructor() {
@@ -6906,11 +6118,11 @@ function buildProjectionTransform(delta, treeScale, latestTransform) {
6906
6118
  transform2 += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;
6907
6119
  }
6908
6120
  if (latestTransform) {
6909
- const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;
6121
+ const { transformPerspective, rotate: rotate2, rotateX, rotateY, skewX, skewY } = latestTransform;
6910
6122
  if (transformPerspective)
6911
6123
  transform2 = `perspective(${transformPerspective}px) ${transform2}`;
6912
- if (rotate)
6913
- transform2 += `rotate(${rotate}deg) `;
6124
+ if (rotate2)
6125
+ transform2 += `rotate(${rotate2}deg) `;
6914
6126
  if (rotateX)
6915
6127
  transform2 += `rotateX(${rotateX}deg) `;
6916
6128
  if (rotateY)
@@ -6930,6 +6142,11 @@ function buildProjectionTransform(delta, treeScale, latestTransform) {
6930
6142
  function eachAxis(callback) {
6931
6143
  return [callback("x"), callback("y")];
6932
6144
  }
6145
+ const metrics = {
6146
+ nodes: 0,
6147
+ calculatedTargetDeltas: 0,
6148
+ calculatedProjections: 0
6149
+ };
6933
6150
  const transformAxes = ["", "X", "Y", "Z"];
6934
6151
  const hiddenVisibility = { visibility: "hidden" };
6935
6152
  const animationTarget = 1e3;
@@ -6954,7 +6171,7 @@ function cancelTreeOptimisedTransformAnimations(projectionNode) {
6954
6171
  const appearId = getOptimisedAppearId(visualElement);
6955
6172
  if (window.MotionHasOptimisedAnimation(appearId, "transform")) {
6956
6173
  const { layout, layoutId } = projectionNode.options;
6957
- window.MotionCancelOptimisedAnimation(appearId, "transform", frame, !(layout || layoutId));
6174
+ window.MotionCancelOptimisedAnimation(appearId, "transform", motionDom.frame, !(layout || layoutId));
6958
6175
  }
6959
6176
  const { parent } = projectionNode;
6960
6177
  if (parent && !parent.hasCheckedOptimisedAppear) {
@@ -6995,10 +6212,16 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
6995
6212
  };
6996
6213
  this.updateProjection = () => {
6997
6214
  this.projectionUpdateScheduled = false;
6215
+ if (motionDom.statsBuffer.value) {
6216
+ metrics.nodes = metrics.calculatedTargetDeltas = metrics.calculatedProjections = 0;
6217
+ }
6998
6218
  this.nodes.forEach(propagateDirtyNodes);
6999
6219
  this.nodes.forEach(resolveTargetDelta);
7000
6220
  this.nodes.forEach(calcProjection);
7001
6221
  this.nodes.forEach(cleanDirtyNodes);
6222
+ if (motionDom.statsBuffer.addProjectionMetrics) {
6223
+ motionDom.statsBuffer.addProjectionMetrics(metrics);
6224
+ }
7002
6225
  };
7003
6226
  this.resolvedRelativeTargetAt = 0;
7004
6227
  this.hasProjected = false;
@@ -7080,7 +6303,7 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7080
6303
  }
7081
6304
  this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);
7082
6305
  const animationOptions = {
7083
- ...getValueTransition$1(layoutTransition, "layout"),
6306
+ ...motionDom.getValueTransition(layoutTransition, "layout"),
7084
6307
  onPlay: onLayoutAnimationStart,
7085
6308
  onComplete: onLayoutAnimationComplete
7086
6309
  };
@@ -7108,7 +6331,7 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7108
6331
  stack && stack.remove(this);
7109
6332
  this.parent && this.parent.children.delete(this);
7110
6333
  this.instance = void 0;
7111
- cancelFrame(this.updateProjection);
6334
+ motionDom.cancelFrame(this.updateProjection);
7112
6335
  }
7113
6336
  // only on the root
7114
6337
  blockUpdate() {
@@ -7181,19 +6404,19 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7181
6404
  this.nodes.forEach(updateLayout);
7182
6405
  this.nodes.forEach(notifyLayoutUpdate);
7183
6406
  this.clearAllSnapshots();
7184
- const now2 = time.now();
7185
- frameData.delta = clamp$1(0, 1e3 / 60, now2 - frameData.timestamp);
7186
- frameData.timestamp = now2;
7187
- frameData.isProcessing = true;
7188
- frameSteps.update.process(frameData);
7189
- frameSteps.preRender.process(frameData);
7190
- frameSteps.render.process(frameData);
7191
- frameData.isProcessing = false;
6407
+ const now = motionDom.time.now();
6408
+ motionDom.frameData.delta = clamp$1(0, 1e3 / 60, now - motionDom.frameData.timestamp);
6409
+ motionDom.frameData.timestamp = now;
6410
+ motionDom.frameData.isProcessing = true;
6411
+ motionDom.frameSteps.update.process(motionDom.frameData);
6412
+ motionDom.frameSteps.preRender.process(motionDom.frameData);
6413
+ motionDom.frameSteps.render.process(motionDom.frameData);
6414
+ motionDom.frameData.isProcessing = false;
7192
6415
  }
7193
6416
  didUpdate() {
7194
6417
  if (!this.updateScheduled) {
7195
6418
  this.updateScheduled = true;
7196
- microtask.read(this.scheduleUpdate);
6419
+ motionDom.microtask.read(this.scheduleUpdate);
7197
6420
  }
7198
6421
  }
7199
6422
  clearAllSnapshots() {
@@ -7203,11 +6426,11 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7203
6426
  scheduleUpdateProjection() {
7204
6427
  if (!this.projectionUpdateScheduled) {
7205
6428
  this.projectionUpdateScheduled = true;
7206
- frame.preRender(this.updateProjection, false, true);
6429
+ motionDom.frame.preRender(this.updateProjection, false, true);
7207
6430
  }
7208
6431
  }
7209
6432
  scheduleCheckAfterUnmount() {
7210
- frame.postRender(() => {
6433
+ motionDom.frame.postRender(() => {
7211
6434
  if (this.isLayoutDirty) {
7212
6435
  this.root.didUpdate();
7213
6436
  } else {
@@ -7393,7 +6616,7 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7393
6616
  forceRelativeParentToResolveTarget() {
7394
6617
  if (!this.relativeParent)
7395
6618
  return;
7396
- if (this.relativeParent.resolvedRelativeTargetAt !== frameData.timestamp) {
6619
+ if (this.relativeParent.resolvedRelativeTargetAt !== motionDom.frameData.timestamp) {
7397
6620
  this.relativeParent.resolveTargetDelta(true);
7398
6621
  }
7399
6622
  }
@@ -7410,7 +6633,7 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7410
6633
  const { layout, layoutId } = this.options;
7411
6634
  if (!this.layout || !(layout || layoutId))
7412
6635
  return;
7413
- this.resolvedRelativeTargetAt = frameData.timestamp;
6636
+ this.resolvedRelativeTargetAt = motionDom.frameData.timestamp;
7414
6637
  if (!this.targetDelta && !this.relativeTarget) {
7415
6638
  const relativeParent = this.getClosestProjectingParent();
7416
6639
  if (relativeParent && relativeParent.layout && this.animationProgress !== 1) {
@@ -7457,6 +6680,9 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7457
6680
  this.relativeParent = this.relativeTarget = void 0;
7458
6681
  }
7459
6682
  }
6683
+ if (motionDom.statsBuffer.value) {
6684
+ metrics.calculatedTargetDeltas++;
6685
+ }
7460
6686
  }
7461
6687
  getClosestProjectingParent() {
7462
6688
  if (!this.parent || hasScale(this.parent.latestValues) || has2DTranslate(this.parent.latestValues)) {
@@ -7482,7 +6708,7 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7482
6708
  if (isShared && (this.isSharedProjectionDirty || this.isTransformDirty)) {
7483
6709
  canSkip = false;
7484
6710
  }
7485
- if (this.resolvedRelativeTargetAt === frameData.timestamp) {
6711
+ if (this.resolvedRelativeTargetAt === motionDom.frameData.timestamp) {
7486
6712
  canSkip = false;
7487
6713
  }
7488
6714
  if (canSkip)
@@ -7522,6 +6748,9 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7522
6748
  this.scheduleRender();
7523
6749
  this.notifyListeners("projectionUpdate", target);
7524
6750
  }
6751
+ if (motionDom.statsBuffer.value) {
6752
+ metrics.calculatedProjections++;
6753
+ }
7525
6754
  }
7526
6755
  hide() {
7527
6756
  this.isVisible = false;
@@ -7595,11 +6824,12 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7595
6824
  this.resumingFrom.currentAnimation.stop();
7596
6825
  }
7597
6826
  if (this.pendingAnimation) {
7598
- cancelFrame(this.pendingAnimation);
6827
+ motionDom.cancelFrame(this.pendingAnimation);
7599
6828
  this.pendingAnimation = void 0;
7600
6829
  }
7601
- this.pendingAnimation = frame.update(() => {
6830
+ this.pendingAnimation = motionDom.frame.update(() => {
7602
6831
  globalProjectionState.hasAnimatedSinceResize = true;
6832
+ motionDom.activeAnimations.layout++;
7603
6833
  this.currentAnimation = animateSingleValue(0, animationTarget, {
7604
6834
  ...options,
7605
6835
  onUpdate: (latest) => {
@@ -7607,8 +6837,10 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
7607
6837
  options.onUpdate && options.onUpdate(latest);
7608
6838
  },
7609
6839
  onStop: () => {
6840
+ motionDom.activeAnimations.layout--;
7610
6841
  },
7611
6842
  onComplete: () => {
6843
+ motionDom.activeAnimations.layout--;
7612
6844
  options.onComplete && options.onComplete();
7613
6845
  this.completeAnimation();
7614
6846
  }
@@ -7886,6 +7118,9 @@ function notifyLayoutUpdate(node) {
7886
7118
  node.options.transition = void 0;
7887
7119
  }
7888
7120
  function propagateDirtyNodes(node) {
7121
+ if (motionDom.statsBuffer.value) {
7122
+ metrics.nodes++;
7123
+ }
7889
7124
  if (!node.parent)
7890
7125
  return;
7891
7126
  if (!node.isProjecting()) {
@@ -8196,7 +7431,8 @@ function animateUpdates({
8196
7431
  });
8197
7432
  }
8198
7433
  function resolveDirectAnimation(directAnimate, directTransition) {
8199
- const variant = resolveVariant(directAnimate, this.options.variants, this.options.custom);
7434
+ var _a;
7435
+ const variant = resolveVariant(directAnimate, this.options.variants, this.options.custom || ((_a = this.options.animatePresenceContext) == null ? void 0 : _a.custom));
8200
7436
  if (!variant)
8201
7437
  return {};
8202
7438
  const transition = variant.transition || directTransition || this.options.transition || {};
@@ -8248,7 +7484,7 @@ function createAnimationFactories(prevTarget, animationOptions, controlDelay) {
8248
7484
  this.element,
8249
7485
  { [key]: keyValue },
8250
7486
  {
8251
- ...animationOptions,
7487
+ ...(animationOptions == null ? void 0 : animationOptions[key]) || animationOptions,
8252
7488
  delay: (((_a2 = animationOptions == null ? void 0 : animationOptions[key]) == null ? void 0 : _a2.delay) || (animationOptions == null ? void 0 : animationOptions.delay) || 0) + controlDelay
8253
7489
  }
8254
7490
  );
@@ -8416,14 +7652,14 @@ class MotionState {
8416
7652
  }
8417
7653
  if (this.options.layoutId) {
8418
7654
  mountedLayoutIds.add(this.options.layoutId);
8419
- frame.render(() => {
7655
+ motionDom.frame.render(() => {
8420
7656
  mountedLayoutIds.clear();
8421
7657
  });
8422
7658
  }
8423
7659
  }
8424
7660
  clearAnimation() {
8425
7661
  var _a;
8426
- this.currentProcess && cancelFrame(this.currentProcess);
7662
+ this.currentProcess && motionDom.cancelFrame(this.currentProcess);
8427
7663
  this.currentProcess = null;
8428
7664
  (_a = this.visualElement.variantChildren) == null ? void 0 : _a.forEach((child) => {
8429
7665
  child.state.clearAnimation();
@@ -8432,7 +7668,7 @@ class MotionState {
8432
7668
  // update trigger animation
8433
7669
  startAnimation() {
8434
7670
  this.clearAnimation();
8435
- this.currentProcess = frame.render(() => {
7671
+ this.currentProcess = motionDom.frame.render(() => {
8436
7672
  this.currentProcess = null;
8437
7673
  this.animateUpdates();
8438
7674
  });
@@ -8613,17 +7849,17 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
8613
7849
  dragMomentum: true,
8614
7850
  whileDrag: void 0,
8615
7851
  crossfade: true,
8616
- whileHover: ({ hover: hover2 }) => {
8617
- if (process.env.NODE_ENV === "development" && hover2) {
7852
+ whileHover: ({ hover }) => {
7853
+ if (process.env.NODE_ENV === "development" && hover) {
8618
7854
  vue.warn("hover is deprecated. Use whileHover instead.");
8619
7855
  }
8620
- return hover2;
7856
+ return hover;
8621
7857
  },
8622
- whilePress: ({ press: press2 }) => {
8623
- if (process.env.NODE_ENV === "development" && press2) {
7858
+ whilePress: ({ press }) => {
7859
+ if (process.env.NODE_ENV === "development" && press) {
8624
7860
  vue.warn("press is deprecated. Use whilePress instead.");
8625
7861
  }
8626
- return press2;
7862
+ return press;
8627
7863
  },
8628
7864
  whileInView: ({ inView: inView2 }) => {
8629
7865
  if (process.env.NODE_ENV === "development" && inView2) {
@@ -8659,6 +7895,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
8659
7895
  layoutGroup,
8660
7896
  motionConfig: config.value,
8661
7897
  inViewOptions: props.inViewOptions ?? config.value.inViewOptions,
7898
+ animatePresenceContext,
8662
7899
  initial: animatePresenceContext.initial === false ? animatePresenceContext.initial : props.initial === true ? void 0 : props.initial
8663
7900
  };
8664
7901
  }
@@ -8828,7 +8065,7 @@ function usePopLayout(props) {
8828
8065
  if (!style2)
8829
8066
  return;
8830
8067
  styles.delete(state2);
8831
- frame.render(() => {
8068
+ motionDom.frame.render(() => {
8832
8069
  document.head.removeChild(style2);
8833
8070
  });
8834
8071
  }
@@ -8855,7 +8092,6 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
8855
8092
  as: {},
8856
8093
  custom: {},
8857
8094
  onExitComplete: {},
8858
- unwrapElement: { type: [Boolean, Function], default: false },
8859
8095
  anchorX: { default: "left" }
8860
8096
  },
8861
8097
  setup(__props) {
@@ -8869,6 +8105,16 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
8869
8105
  presenceContext.initial = void 0;
8870
8106
  });
8871
8107
  const { addPopStyle, removePopStyle, styles } = usePopLayout(props);
8108
+ function findMotionElement(el) {
8109
+ let current = el;
8110
+ while (current) {
8111
+ if (mountedStates.get(current)) {
8112
+ return current;
8113
+ }
8114
+ current = current.firstElementChild;
8115
+ }
8116
+ return null;
8117
+ }
8872
8118
  function enter(el) {
8873
8119
  const state2 = mountedStates.get(el);
8874
8120
  if (!state2) {
@@ -8886,29 +8132,28 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
8886
8132
  exitDom.clear();
8887
8133
  });
8888
8134
  function exit(el, done) {
8889
- if (props.unwrapElement) {
8890
- if (typeof props.unwrapElement === "function") {
8891
- el = props.unwrapElement(el) || el;
8892
- } else {
8893
- el = el.firstElementChild || el;
8135
+ var _a;
8136
+ const motionEl = findMotionElement(el);
8137
+ const state2 = mountedStates.get(motionEl);
8138
+ if (!motionEl || !state2) {
8139
+ done();
8140
+ if (exitDom.size === 0) {
8141
+ (_a = props.onExitComplete) == null ? void 0 : _a.call(props);
8894
8142
  }
8143
+ return;
8895
8144
  }
8896
- const state2 = mountedStates.get(el);
8897
- if (!state2) {
8898
- return done();
8899
- }
8900
- exitDom.set(el, true);
8901
- removeDoneCallback(el);
8145
+ exitDom.set(motionEl, true);
8146
+ removeDoneCallback(motionEl);
8902
8147
  addPopStyle(state2);
8903
8148
  function doneCallback(e) {
8904
- var _a, _b;
8905
- if ((_a = e == null ? void 0 : e.detail) == null ? void 0 : _a.isExit) {
8149
+ var _a2, _b;
8150
+ if ((_a2 = e == null ? void 0 : e.detail) == null ? void 0 : _a2.isExit) {
8906
8151
  const projection = state2.visualElement.projection;
8907
8152
  if ((projection == null ? void 0 : projection.animationProgress) > 0 && !state2.isSafeToRemove && !state2.isVShow) {
8908
8153
  return;
8909
8154
  }
8910
- removeDoneCallback(el);
8911
- exitDom.delete(el);
8155
+ removeDoneCallback(motionEl);
8156
+ exitDom.delete(motionEl);
8912
8157
  if (exitDom.size === 0) {
8913
8158
  (_b = props.onExitComplete) == null ? void 0 : _b.call(props);
8914
8159
  }
@@ -8918,15 +8163,15 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
8918
8163
  removePopStyle(state2);
8919
8164
  }
8920
8165
  done();
8921
- if (!el.isConnected) {
8166
+ if (!motionEl.isConnected) {
8922
8167
  state2.unmount(true);
8923
8168
  }
8924
8169
  }
8925
8170
  }
8926
8171
  delay(() => {
8927
8172
  state2.setActive("exit", true);
8928
- doneCallbacks.set(el, doneCallback);
8929
- el.addEventListener("motioncomplete", doneCallback);
8173
+ doneCallbacks.set(motionEl, doneCallback);
8174
+ motionEl.addEventListener("motioncomplete", doneCallback);
8930
8175
  });
8931
8176
  }
8932
8177
  const transitionProps = vue.computed(() => {
@@ -9015,7 +8260,7 @@ function moveItem([...arr], fromIndex, toIndex) {
9015
8260
  return arr;
9016
8261
  }
9017
8262
  function useDefaultMotionValue(value, defaultValue = 0) {
9018
- return isMotionValue(value) ? value : motionValue(defaultValue);
8263
+ return isMotionValue(value) ? value : motionDom.motionValue(defaultValue);
9019
8264
  }
9020
8265
  const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
9021
8266
  ...{
@@ -9147,16 +8392,16 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
9147
8392
  }
9148
8393
  });
9149
8394
  function useCombineMotionValues(combineValues) {
9150
- const value = motionValue(combineValues());
8395
+ const value = motionDom.motionValue(combineValues());
9151
8396
  const updateValue = () => value.set(combineValues());
9152
- const scheduleUpdate = () => frame.preRender(updateValue, false, true);
8397
+ const scheduleUpdate = () => motionDom.frame.preRender(updateValue, false, true);
9153
8398
  let subscriptions;
9154
8399
  const subscribe = (values) => {
9155
8400
  subscriptions = values.map((v) => v.on("change", scheduleUpdate));
9156
8401
  };
9157
8402
  const unsubscribe = () => {
9158
8403
  subscriptions.forEach((unsubscribe2) => unsubscribe2());
9159
- cancelFrame(updateValue);
8404
+ motionDom.cancelFrame(updateValue);
9160
8405
  };
9161
8406
  vue.onUnmounted(() => {
9162
8407
  unsubscribe();
@@ -9168,16 +8413,16 @@ function useCombineMotionValues(combineValues) {
9168
8413
  };
9169
8414
  }
9170
8415
  function useComputed(computed) {
9171
- collectMotionValues.current = [];
8416
+ motionDom.collectMotionValues.current = [];
9172
8417
  const { value, subscribe, unsubscribe } = useCombineMotionValues(computed);
9173
- subscribe(collectMotionValues.current);
9174
- collectMotionValues.current = void 0;
8418
+ subscribe(motionDom.collectMotionValues.current);
8419
+ motionDom.collectMotionValues.current = void 0;
9175
8420
  vue.onBeforeUpdate(() => {
9176
8421
  unsubscribe();
9177
- collectMotionValues.current = [];
8422
+ motionDom.collectMotionValues.current = [];
9178
8423
  computed();
9179
- subscribe(collectMotionValues.current);
9180
- collectMotionValues.current = void 0;
8424
+ subscribe(motionDom.collectMotionValues.current);
8425
+ motionDom.collectMotionValues.current = void 0;
9181
8426
  });
9182
8427
  return value;
9183
8428
  }
@@ -9185,9 +8430,7 @@ function useTransform(input, inputRangeOrTransformer, outputRange, options) {
9185
8430
  if (typeof input === "function") {
9186
8431
  return useComputed(input);
9187
8432
  }
9188
- const transformer = vue.computed(() => {
9189
- return typeof inputRangeOrTransformer === "function" ? inputRangeOrTransformer : transform(vue.isRef(inputRangeOrTransformer) ? inputRangeOrTransformer.value : inputRangeOrTransformer, outputRange, options);
9190
- });
8433
+ const transformer = typeof inputRangeOrTransformer === "function" ? inputRangeOrTransformer : vue.isRef(inputRangeOrTransformer) ? vue.computed(() => transform(inputRangeOrTransformer.value, outputRange, options)) : transform(inputRangeOrTransformer, outputRange, options);
9191
8434
  return Array.isArray(input) ? useListTransform(
9192
8435
  input,
9193
8436
  transformer
@@ -9212,9 +8455,9 @@ function useListTransform(values, transformer) {
9212
8455
  return value;
9213
8456
  }
9214
8457
  function useTime() {
9215
- const time2 = motionValue(0);
9216
- useAnimationFrame((t) => time2.set(t));
9217
- return time2;
8458
+ const time = motionDom.motionValue(0);
8459
+ useAnimationFrame((t) => time.set(t));
8460
+ return time;
9218
8461
  }
9219
8462
  function useMotionTemplate(fragments, ...values) {
9220
8463
  const numFragments = fragments.length;
@@ -9247,7 +8490,7 @@ function toNumber(v) {
9247
8490
  }
9248
8491
  function useSpring(source, config = {}) {
9249
8492
  let activeSpringAnimation = null;
9250
- const value = motionValue(
8493
+ const value = motionDom.motionValue(
9251
8494
  isMotionValue(source) ? toNumber(source.get()) : source
9252
8495
  );
9253
8496
  let latestValue = value.get();
@@ -9262,7 +8505,7 @@ function useSpring(source, config = {}) {
9262
8505
  const startAnimation = () => {
9263
8506
  const animation = activeSpringAnimation;
9264
8507
  if ((animation == null ? void 0 : animation.time) === 0) {
9265
- animation.sample(frameData.delta);
8508
+ animation.sample(motionDom.frameData.delta);
9266
8509
  }
9267
8510
  stopAnimation2();
9268
8511
  const springConfig = vue.isRef(config) ? config.value : config;
@@ -9285,7 +8528,7 @@ function useSpring(source, config = {}) {
9285
8528
  value.attach((v, set) => {
9286
8529
  latestValue = v;
9287
8530
  latestSetter = set;
9288
- frame.update(startAnimation);
8531
+ motionDom.frame.update(startAnimation);
9289
8532
  return value.get();
9290
8533
  }, stopAnimation2);
9291
8534
  }, { immediate: true });
@@ -9304,10 +8547,10 @@ function refWarning(name, ref) {
9304
8547
  }
9305
8548
  function createScrollMotionValues() {
9306
8549
  return {
9307
- scrollX: motionValue(0),
9308
- scrollY: motionValue(0),
9309
- scrollXProgress: motionValue(0),
9310
- scrollYProgress: motionValue(0)
8550
+ scrollX: motionDom.motionValue(0),
8551
+ scrollY: motionDom.motionValue(0),
8552
+ scrollXProgress: motionDom.motionValue(0),
8553
+ scrollYProgress: motionDom.motionValue(0)
9311
8554
  };
9312
8555
  }
9313
8556
  function useScroll({
@@ -9316,46 +8559,48 @@ function useScroll({
9316
8559
  ...options
9317
8560
  } = {}) {
9318
8561
  const values = createScrollMotionValues();
9319
- let cleanup;
9320
- const setupScroll = () => {
9321
- cleanup == null ? void 0 : cleanup();
9322
- cleanup = scroll(
9323
- (_progress, { x, y }) => {
9324
- values.scrollX.set(x.current);
9325
- values.scrollXProgress.set(x.progress);
9326
- values.scrollY.set(y.current);
9327
- values.scrollYProgress.set(y.progress);
9328
- },
9329
- {
9330
- ...options,
9331
- container: (container == null ? void 0 : container.value) ?? void 0,
9332
- target: (target == null ? void 0 : target.value) ?? void 0
9333
- }
9334
- );
9335
- };
9336
8562
  vue.onMounted(() => {
9337
8563
  refWarning("target", target);
9338
8564
  refWarning("container", container);
9339
- setupScroll();
9340
8565
  });
9341
- vue.onUnmounted(() => cleanup == null ? void 0 : cleanup());
9342
8566
  vue.watch(
9343
- () => [container == null ? void 0 : container.value, target == null ? void 0 : target.value, options.offset],
9344
- setupScroll
8567
+ [container, target, () => options.offset],
8568
+ (n, o, onCleanup) => {
8569
+ const cleanup = scroll(
8570
+ (_progress, { x, y }) => {
8571
+ values.scrollX.set(x.current);
8572
+ values.scrollXProgress.set(x.progress);
8573
+ values.scrollY.set(y.current);
8574
+ values.scrollYProgress.set(y.progress);
8575
+ },
8576
+ {
8577
+ ...options,
8578
+ container: (container == null ? void 0 : container.value) ?? void 0,
8579
+ target: (target == null ? void 0 : target.value) ?? void 0
8580
+ }
8581
+ );
8582
+ onCleanup(() => {
8583
+ cleanup();
8584
+ });
8585
+ },
8586
+ {
8587
+ immediate: true,
8588
+ flush: "post"
8589
+ }
9345
8590
  );
9346
8591
  return values;
9347
8592
  }
9348
8593
  function useVelocity(value) {
9349
- const velocity = motionValue(value.getVelocity());
8594
+ const velocity = motionDom.motionValue(value.getVelocity());
9350
8595
  const updateVelocity = () => {
9351
8596
  const latest = value.getVelocity();
9352
8597
  velocity.set(latest);
9353
8598
  if (latest) {
9354
- frame.update(updateVelocity);
8599
+ motionDom.frame.update(updateVelocity);
9355
8600
  }
9356
8601
  };
9357
8602
  useMotionValueEvent(value, "change", () => {
9358
- frame.update(updateVelocity, false, true);
8603
+ motionDom.frame.update(updateVelocity, false, true);
9359
8604
  });
9360
8605
  return velocity;
9361
8606
  }
@@ -9465,7 +8710,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
9465
8710
  }
9466
8711
  return axis.value;
9467
8712
  });
9468
- const isDragging2 = vue.ref(false);
8713
+ const isDragging = vue.ref(false);
9469
8714
  return (_ctx, _cache) => {
9470
8715
  return vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$6), vue.mergeProps(bindProps(), {
9471
8716
  drag: drag.value,
@@ -9473,17 +8718,17 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
9473
8718
  onDrag: _cache[0] || (_cache[0] = (event, gesturePoint) => {
9474
8719
  const { velocity } = gesturePoint;
9475
8720
  velocity[vue.unref(axis)] && vue.unref(updateOrder)(_ctx.value, point2[vue.unref(axis)].get(), velocity[vue.unref(axis)]);
9476
- !isDragging2.value && (isDragging2.value = true);
8721
+ !isDragging.value && (isDragging.value = true);
9477
8722
  _ctx.onDrag && _ctx.onDrag(event, gesturePoint);
9478
8723
  }),
9479
8724
  onDragEnd: _cache[1] || (_cache[1] = (event, gesturePoint) => {
9480
- isDragging2.value = false;
8725
+ isDragging.value = false;
9481
8726
  _ctx.onDragEnd && _ctx.onDragEnd(event, gesturePoint);
9482
8727
  }),
9483
8728
  onLayoutMeasure: _cache[2] || (_cache[2] = (measured) => vue.unref(registerItem)(_ctx.value, measured))
9484
8729
  }), {
9485
8730
  default: vue.withCtx(() => [
9486
- vue.renderSlot(_ctx.$slots, "default", { isDragging: isDragging2.value }),
8731
+ vue.renderSlot(_ctx.$slots, "default", { isDragging: isDragging.value }),
9487
8732
  vue.createTextVNode(" " + vue.toDisplayString(warning2()), 1)
9488
8733
  ]),
9489
8734
  _: 3
@@ -9598,33 +8843,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
9598
8843
  };
9599
8844
  }
9600
8845
  });
9601
- const components = {
9602
- motion: [
9603
- "Motion",
9604
- "AnimatePresence",
9605
- "LayoutGroup",
9606
- "MotionConfig",
9607
- "ReorderGroup",
9608
- "ReorderItem"
9609
- ]
9610
- };
9611
- const utilities = {
9612
- utilities: [
9613
- "useTransform",
9614
- "useTime",
9615
- "useMotionTemplate",
9616
- "useSpring",
9617
- "useScroll",
9618
- "useMotionValue",
9619
- "useVelocity",
9620
- "useAnimate",
9621
- "useInView",
9622
- "useAnimationFrame",
9623
- "useMotionValueEvent",
9624
- "useLayoutGroup",
9625
- "useDragControls"
9626
- ]
9627
- };
9628
8846
  function useAnimate() {
9629
8847
  const dom = vue.ref(null);
9630
8848
  const domProxy = new Proxy(dom, {
@@ -9745,6 +8963,10 @@ function useAnimationControls() {
9745
8963
  });
9746
8964
  return controls;
9747
8965
  }
8966
+ function useReducedMotion(options = {}) {
8967
+ const reducedMotion = core.useMediaQuery("(prefers-reduced-motion: reduce)", options);
8968
+ return vue.computed(() => reducedMotion.value);
8969
+ }
9748
8970
  class DragControls {
9749
8971
  constructor() {
9750
8972
  this.componentControls = /* @__PURE__ */ new Set();
@@ -9784,11 +9006,50 @@ class DragControls {
9784
9006
  }
9785
9007
  const createDragControls = () => new DragControls();
9786
9008
  const useDragControls = createDragControls;
9009
+ Object.defineProperty(exports, "MotionValue", {
9010
+ enumerable: true,
9011
+ get: () => motionDom.MotionValue
9012
+ });
9013
+ Object.defineProperty(exports, "cancelFrame", {
9014
+ enumerable: true,
9015
+ get: () => motionDom.cancelFrame
9016
+ });
9017
+ Object.defineProperty(exports, "frame", {
9018
+ enumerable: true,
9019
+ get: () => motionDom.frame
9020
+ });
9021
+ Object.defineProperty(exports, "frameData", {
9022
+ enumerable: true,
9023
+ get: () => motionDom.frameData
9024
+ });
9025
+ Object.defineProperty(exports, "hover", {
9026
+ enumerable: true,
9027
+ get: () => motionDom.hover
9028
+ });
9029
+ Object.defineProperty(exports, "isDragActive", {
9030
+ enumerable: true,
9031
+ get: () => motionDom.isDragActive
9032
+ });
9033
+ Object.defineProperty(exports, "motionValue", {
9034
+ enumerable: true,
9035
+ get: () => motionDom.motionValue
9036
+ });
9037
+ Object.defineProperty(exports, "press", {
9038
+ enumerable: true,
9039
+ get: () => motionDom.press
9040
+ });
9041
+ Object.defineProperty(exports, "time", {
9042
+ enumerable: true,
9043
+ get: () => motionDom.time
9044
+ });
9045
+ Object.defineProperty(exports, "useMotionValue", {
9046
+ enumerable: true,
9047
+ get: () => motionDom.motionValue
9048
+ });
9787
9049
  exports.AnimatePresence = _sfc_main$5;
9788
9050
  exports.LayoutGroup = _sfc_main;
9789
9051
  exports.Motion = _sfc_main$6;
9790
9052
  exports.MotionConfig = _sfc_main$4;
9791
- exports.MotionValue = MotionValue;
9792
9053
  exports.Reorder = Reorder;
9793
9054
  exports.ReorderGroup = ReorderGroup;
9794
9055
  exports.ReorderItem = ReorderItem;
@@ -9800,13 +9061,10 @@ exports.anticipate = anticipate;
9800
9061
  exports.backIn = backIn;
9801
9062
  exports.backInOut = backInOut;
9802
9063
  exports.backOut = backOut;
9803
- exports.cancelFrame = cancelFrame;
9804
- exports.cancelSync = cancelSync;
9805
9064
  exports.circIn = circIn;
9806
9065
  exports.circInOut = circInOut;
9807
9066
  exports.circOut = circOut;
9808
9067
  exports.clamp = clamp$1;
9809
- exports.components = components;
9810
9068
  exports.createContext = createContext;
9811
9069
  exports.createScopedAnimate = createScopedAnimate;
9812
9070
  exports.cubicBezier = cubicBezier;
@@ -9816,28 +9074,21 @@ exports.distance2D = distance2D;
9816
9074
  exports.easeIn = easeIn;
9817
9075
  exports.easeInOut = easeInOut;
9818
9076
  exports.easeOut = easeOut;
9819
- exports.frame = frame;
9820
- exports.frameData = frameData;
9821
- exports.frameSteps = frameSteps;
9822
9077
  exports.getContextWindow = getContextWindow;
9823
- exports.hover = hover;
9824
9078
  exports.inView = inView;
9825
9079
  exports.inertia = inertia;
9826
9080
  exports.injectLayoutGroup = injectLayoutGroup;
9827
9081
  exports.injectMotion = injectMotion;
9828
9082
  exports.interpolate = interpolate;
9829
- exports.isDragActive = isDragActive;
9830
9083
  exports.isMotionValue = isMotionValue;
9831
9084
  exports.keyframes = keyframes;
9832
9085
  exports.millisecondsToSeconds = millisecondsToSeconds;
9833
9086
  exports.mirrorEasing = mirrorEasing;
9834
9087
  exports.mix = mix;
9835
9088
  exports.motion = motion;
9836
- exports.motionValue = motionValue;
9837
9089
  exports.mountedStates = mountedStates;
9838
9090
  exports.noop = noop;
9839
9091
  exports.pipe = pipe;
9840
- exports.press = press;
9841
9092
  exports.progress = progress$1;
9842
9093
  exports.provideLayoutGroup = provideLayoutGroup;
9843
9094
  exports.provideMotion = provideMotion;
@@ -9849,8 +9100,6 @@ exports.secondsToMilliseconds = secondsToMilliseconds;
9849
9100
  exports.spring = spring;
9850
9101
  exports.stagger = stagger;
9851
9102
  exports.steps = steps;
9852
- exports.sync = sync;
9853
- exports.time = time;
9854
9103
  exports.transform = transform;
9855
9104
  exports.useAnimate = useAnimate;
9856
9105
  exports.useAnimationControls = useAnimationControls;
@@ -9863,12 +9112,11 @@ exports.useInView = useInView;
9863
9112
  exports.useLayoutGroup = useLayoutGroup;
9864
9113
  exports.useMotionConfig = useMotionConfig;
9865
9114
  exports.useMotionTemplate = useMotionTemplate;
9866
- exports.useMotionValue = motionValue;
9867
9115
  exports.useMotionValueEvent = useMotionValueEvent;
9116
+ exports.useReducedMotion = useReducedMotion;
9868
9117
  exports.useScroll = useScroll;
9869
9118
  exports.useSpring = useSpring;
9870
9119
  exports.useTime = useTime;
9871
9120
  exports.useTransform = useTransform;
9872
9121
  exports.useVelocity = useVelocity;
9873
- exports.utilities = utilities;
9874
9122
  exports.wrap = wrap;