motion-v 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/dist/cjs/index.js +7637 -1
  2. package/dist/es/animation/use-animate.mjs +25 -15
  3. package/dist/es/components/AnimatePresence.vue.mjs +57 -39
  4. package/dist/es/components/AnimatePresence.vue2.mjs +2 -2
  5. package/dist/es/components/LayoutGroup.vue.mjs +39 -0
  6. package/dist/es/components/LayoutGroup.vue2.mjs +4 -0
  7. package/dist/es/components/Motion.vue.mjs +87 -57
  8. package/dist/es/components/Motion.vue2.mjs +2 -2
  9. package/dist/es/components/Primitive.mjs +15 -9
  10. package/dist/es/components/Slot.mjs +28 -19
  11. package/dist/es/components/context.mjs +15 -4
  12. package/dist/es/components/group.mjs +30 -0
  13. package/dist/es/components/presence.mjs +13 -10
  14. package/dist/es/components/renderSlotFragments.mjs +10 -4
  15. package/dist/es/components/use-force-update.mjs +11 -0
  16. package/dist/es/constants/index.mjs +13 -6
  17. package/dist/es/features/events.mjs +59 -43
  18. package/dist/es/features/feature-manager.mjs +20 -17
  19. package/dist/es/features/feature.mjs +4 -4
  20. package/dist/es/features/gestures/base.mjs +12 -7
  21. package/dist/es/features/gestures/hover.mjs +25 -16
  22. package/dist/es/features/gestures/in-view.mjs +21 -15
  23. package/dist/es/features/gestures/press.mjs +22 -13
  24. package/dist/es/features/layout/config.mjs +21 -0
  25. package/dist/es/features/layout/layout.mjs +74 -0
  26. package/dist/es/features/layout/utils.mjs +8 -0
  27. package/dist/es/features/svg.mjs +14 -13
  28. package/dist/es/index.mjs +119 -102
  29. package/dist/es/node_modules/.pnpm/@vueuse_shared@12.0.0_typescript@5.5.4/node_modules/@vueuse/shared/index.mjs +6 -0
  30. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs +38 -28
  31. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/index.mjs +22 -15
  32. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/resolve-subjects.mjs +13 -5
  33. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/sequence.mjs +11 -9
  34. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs +8 -7
  35. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animate/subject.mjs +32 -24
  36. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs +178 -137
  37. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs +53 -37
  38. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs +227 -100
  39. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs +8 -8
  40. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs +2 -2
  41. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs +26 -19
  42. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/NativeAnimation.mjs +112 -56
  43. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-elements.mjs +25 -18
  44. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-style.mjs +10 -9
  45. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs +27 -17
  46. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs +15 -12
  47. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/attach-timeline.mjs +4 -3
  48. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +6 -5
  49. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/linear.mjs +10 -8
  50. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/memo-supports.mjs +7 -7
  51. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/style.mjs +6 -6
  52. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-flags.mjs +2 -2
  53. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-linear-easing.mjs +6 -6
  54. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-partial-keyframes.mjs +6 -6
  55. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs +3 -3
  56. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/inertia.mjs +58 -28
  57. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs +28 -21
  58. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs +71 -43
  59. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs +64 -48
  60. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs +12 -10
  61. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/is-generator.mjs +3 -3
  62. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs +6 -6
  63. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs +64 -37
  64. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +48 -34
  65. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +5 -4
  66. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +4 -4
  67. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/create.mjs +133 -86
  68. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +12 -4
  69. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs +20 -16
  70. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs +11 -3
  71. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs +19 -15
  72. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs +19 -8
  73. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/get-value-transition.mjs +3 -3
  74. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs +14 -5
  75. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +3 -3
  76. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +3 -3
  77. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +4 -2
  78. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-none.mjs +10 -4
  79. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs +3 -3
  80. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/animation/utils/stagger.mjs +18 -16
  81. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/anticipate.mjs +3 -3
  82. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/back.mjs +9 -7
  83. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/circ.mjs +8 -6
  84. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs +24 -14
  85. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/ease.mjs +7 -5
  86. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs +2 -2
  87. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs +2 -2
  88. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/steps.mjs +8 -7
  89. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs +8 -7
  90. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs +5 -5
  91. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs +2 -2
  92. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs +4 -2
  93. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/easing/utils/map.mjs +32 -29
  94. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/events/add-dom-event.mjs +7 -0
  95. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/batcher.mjs +57 -21
  96. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/frame.mjs +7 -7
  97. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/index-legacy.mjs +9 -5
  98. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/microtask.mjs +6 -0
  99. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/render-step.mjs +41 -19
  100. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/frameloop/sync-time.mjs +16 -10
  101. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/motion/features/definitions.mjs +8 -6
  102. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +5 -5
  103. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs +60 -0
  104. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs +14 -13
  105. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs +19 -0
  106. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs +81 -0
  107. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs +55 -0
  108. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs +40 -0
  109. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/models.mjs +18 -5
  110. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs +34 -0
  111. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +13 -0
  112. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +28 -0
  113. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs +1086 -0
  114. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/node/state.mjs +15 -0
  115. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/shared/stack.mjs +94 -0
  116. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +26 -0
  117. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +25 -0
  118. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs +6 -2
  119. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/styles/transform.mjs +36 -0
  120. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs +6 -0
  121. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs +20 -0
  122. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/projection/utils/measure.mjs +4 -4
  123. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/VisualElement.mjs +263 -117
  124. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs +81 -45
  125. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +13 -11
  126. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/handle-element.mjs +49 -33
  127. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/handle-window.mjs +22 -14
  128. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/resize/index.mjs +5 -5
  129. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs +53 -36
  130. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs +29 -16
  131. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs +14 -8
  132. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs +25 -9
  133. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs +32 -20
  134. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs +32 -21
  135. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs +20 -6
  136. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs +2 -2
  137. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs +31 -15
  138. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs +3 -3
  139. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs +60 -33
  140. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +2 -2
  141. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs +21 -21
  142. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs +12 -3
  143. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs +3 -3
  144. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs +20 -9
  145. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs +47 -34
  146. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs +9 -7
  147. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs +21 -20
  148. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs +8 -7
  149. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs +7 -6
  150. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs +4 -2
  151. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/number-browser.mjs +34 -34
  152. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs +14 -14
  153. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs +2 -2
  154. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/transform.mjs +28 -28
  155. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs +4 -4
  156. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs +4 -4
  157. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs +29 -17
  158. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +41 -32
  159. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs +33 -20
  160. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs +36 -20
  161. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs +18 -12
  162. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/render.mjs +6 -5
  163. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +13 -9
  164. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/html/utils/transform.mjs +5 -4
  165. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/object/ObjectVisualElement.mjs +24 -20
  166. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/store.mjs +2 -2
  167. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +33 -28
  168. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +40 -20
  169. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +2 -2
  170. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +2 -2
  171. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs +12 -10
  172. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs +9 -8
  173. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +12 -11
  174. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs +8 -7
  175. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs +105 -47
  176. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs +4 -0
  177. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs +24 -0
  178. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +9 -9
  179. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs +3 -3
  180. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs +31 -20
  181. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +5 -5
  182. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs +19 -14
  183. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/setters.mjs +17 -13
  184. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs +5 -4
  185. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs +4 -4
  186. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/array.mjs +9 -7
  187. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/clamp.mjs +8 -2
  188. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/delay.mjs +17 -12
  189. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/distance.mjs +7 -6
  190. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/errors.mjs +17 -10
  191. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs +32 -15
  192. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/interpolate.mjs +42 -31
  193. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-browser.mjs +2 -2
  194. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs +2 -2
  195. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs +2 -2
  196. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/memo.mjs +8 -4
  197. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/color.mjs +40 -25
  198. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/complex.mjs +73 -41
  199. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs +3 -3
  200. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/index.mjs +9 -5
  201. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/number.mjs +4 -2
  202. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/mix/visibility.mjs +9 -5
  203. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/noop.mjs +2 -2
  204. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/default.mjs +6 -5
  205. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/fill.mjs +8 -8
  206. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/offsets/time.mjs +3 -3
  207. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/pipe.mjs +3 -2
  208. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/progress.mjs +4 -4
  209. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs +15 -10
  210. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs +4 -3
  211. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/resolve-value.mjs +9 -3
  212. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/subscription-manager.mjs +18 -15
  213. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/time-conversion.mjs +4 -3
  214. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/transform.mjs +17 -8
  215. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs +3 -3
  216. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/warn-once.mjs +7 -4
  217. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/utils/wrap.mjs +4 -4
  218. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/index.mjs +125 -53
  219. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/hex.mjs +32 -14
  220. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/hsla.mjs +11 -9
  221. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/index.mjs +18 -8
  222. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs +15 -13
  223. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/color/utils.mjs +16 -13
  224. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/complex/filter.mjs +22 -19
  225. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/complex/index.mjs +71 -36
  226. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/numbers/index.mjs +14 -12
  227. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/numbers/units.mjs +19 -13
  228. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs +2 -2
  229. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs +2 -2
  230. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs +3 -3
  231. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs +2 -2
  232. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs +2 -2
  233. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs +7 -6
  234. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs +4 -4
  235. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs +2 -2
  236. package/dist/es/node_modules/.pnpm/framer-motion@11.11.11/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +9 -0
  237. package/dist/es/node_modules/.pnpm/hey-listen@1.0.8/node_modules/hey-listen/dist/hey-listen.es.mjs +17 -10
  238. package/dist/es/state/create-visual-element.mjs +9 -0
  239. package/dist/es/state/event.mjs +3 -3
  240. package/dist/es/state/motion-state.mjs +145 -91
  241. package/dist/es/state/schedule.mjs +23 -15
  242. package/dist/es/state/style.mjs +105 -81
  243. package/dist/es/state/transform.mjs +37 -29
  244. package/dist/es/state/utils.mjs +51 -45
  245. package/dist/es/utils/createContext.mjs +19 -11
  246. package/dist/es/utils/events.mjs +4 -4
  247. package/dist/es/utils/motion-value.mjs +3 -3
  248. package/dist/es/utils/use-animation-frame.mjs +17 -11
  249. package/dist/es/utils/use-in-view.mjs +20 -14
  250. package/dist/es/value/use-combine-values.mjs +22 -17
  251. package/dist/es/value/use-computed.mjs +17 -10
  252. package/dist/es/value/use-motion-template.mjs +17 -14
  253. package/dist/es/value/use-motion-value-event.mjs +11 -0
  254. package/dist/es/value/use-scroll.mjs +42 -33
  255. package/dist/es/value/use-spring.mjs +48 -28
  256. package/dist/es/value/use-time.mjs +7 -6
  257. package/dist/es/value/use-transform.mjs +24 -20
  258. package/dist/es/value/use-velocity.mjs +20 -0
  259. package/dist/src/components/LayoutGroup.d.ts +30 -0
  260. package/dist/src/components/context.d.ts +17 -0
  261. package/dist/src/components/group.d.ts +7 -0
  262. package/dist/src/components/use-force-update.d.ts +2 -0
  263. package/dist/src/features/index.d.ts +1 -0
  264. package/dist/src/features/layout/config.d.ts +8 -0
  265. package/dist/src/features/layout/layout.d.ts +10 -0
  266. package/dist/src/features/layout/types.d.ts +7 -0
  267. package/dist/src/features/layout/utils.d.ts +4 -0
  268. package/dist/src/index.d.ts +2 -0
  269. package/dist/src/state/create-visual-element.d.ts +1 -0
  270. package/dist/src/state/motion-state.d.ts +1 -2
  271. package/dist/src/types/state.d.ts +2 -1
  272. package/dist/src/value/index.d.ts +4 -0
  273. package/package.json +2 -1
  274. package/dist/es/node_modules/.pnpm/@vueuse_shared@11.1.0_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/shared/index.mjs +0 -6
  275. package/dist/src/components/usePrimitiveElement.d.ts +0 -5
@@ -1,7 +1,7 @@
1
- const n = (e, o, t) => {
2
- const r = o - e;
3
- return r === 0 ? 1 : (t - e) / r;
1
+ const progress = (from, to, value) => {
2
+ const toFromDifference = to - from;
3
+ return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;
4
4
  };
5
5
  export {
6
- n as progress
6
+ progress
7
7
  };
@@ -1,13 +1,18 @@
1
- import { isBrowser as o } from "../is-browser.mjs";
2
- import { hasReducedMotionListener as i, prefersReducedMotion as t } from "./state.mjs";
3
- function c() {
4
- if (i.current = !0, !!o)
5
- if (window.matchMedia) {
6
- const e = window.matchMedia("(prefers-reduced-motion)"), r = () => t.current = e.matches;
7
- e.addListener(r), r();
8
- } else
9
- t.current = !1;
1
+ import { isBrowser } from "../is-browser.mjs";
2
+ import { hasReducedMotionListener, prefersReducedMotion } from "./state.mjs";
3
+ function initPrefersReducedMotion() {
4
+ hasReducedMotionListener.current = true;
5
+ if (!isBrowser)
6
+ return;
7
+ if (window.matchMedia) {
8
+ const motionMediaQuery = window.matchMedia("(prefers-reduced-motion)");
9
+ const setReducedMotionPreferences = () => prefersReducedMotion.current = motionMediaQuery.matches;
10
+ motionMediaQuery.addListener(setReducedMotionPreferences);
11
+ setReducedMotionPreferences();
12
+ } else {
13
+ prefersReducedMotion.current = false;
14
+ }
10
15
  }
11
16
  export {
12
- c as initPrefersReducedMotion
17
+ initPrefersReducedMotion
13
18
  };
@@ -1,5 +1,6 @@
1
- const e = { current: null }, n = { current: !1 };
1
+ const prefersReducedMotion = { current: null };
2
+ const hasReducedMotionListener = { current: false };
2
3
  export {
3
- n as hasReducedMotionListener,
4
- e as prefersReducedMotion
4
+ hasReducedMotionListener,
5
+ prefersReducedMotion
5
6
  };
@@ -1,5 +1,11 @@
1
- import { isKeyframesTarget as r } from "../animation/utils/is-keyframes-target.mjs";
2
- const a = (e) => r(e) ? e[e.length - 1] || 0 : e;
1
+ import { isKeyframesTarget } from "../animation/utils/is-keyframes-target.mjs";
2
+ const isCustomValue = (v) => {
3
+ return Boolean(v && typeof v === "object" && v.mix && v.toValue);
4
+ };
5
+ const resolveFinalValueInKeyframes = (v) => {
6
+ return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;
7
+ };
3
8
  export {
4
- a as resolveFinalValueInKeyframes
9
+ isCustomValue,
10
+ resolveFinalValueInKeyframes
5
11
  };
@@ -1,21 +1,24 @@
1
- import { addUniqueItem as e, removeItem as u } from "./array.mjs";
2
- class h {
1
+ import { addUniqueItem, removeItem } from "./array.mjs";
2
+ class SubscriptionManager {
3
3
  constructor() {
4
4
  this.subscriptions = [];
5
5
  }
6
- add(s) {
7
- return e(this.subscriptions, s), () => u(this.subscriptions, s);
6
+ add(handler) {
7
+ addUniqueItem(this.subscriptions, handler);
8
+ return () => removeItem(this.subscriptions, handler);
8
9
  }
9
- notify(s, r, n) {
10
- const i = this.subscriptions.length;
11
- if (i)
12
- if (i === 1)
13
- this.subscriptions[0](s, r, n);
14
- else
15
- for (let t = 0; t < i; t++) {
16
- const o = this.subscriptions[t];
17
- o && o(s, r, n);
18
- }
10
+ notify(a, b, c) {
11
+ const numSubscriptions = this.subscriptions.length;
12
+ if (!numSubscriptions)
13
+ return;
14
+ if (numSubscriptions === 1) {
15
+ this.subscriptions[0](a, b, c);
16
+ } else {
17
+ for (let i = 0; i < numSubscriptions; i++) {
18
+ const handler = this.subscriptions[i];
19
+ handler && handler(a, b, c);
20
+ }
21
+ }
19
22
  }
20
23
  getSize() {
21
24
  return this.subscriptions.length;
@@ -25,5 +28,5 @@ class h {
25
28
  }
26
29
  }
27
30
  export {
28
- h as SubscriptionManager
31
+ SubscriptionManager
29
32
  };
@@ -1,5 +1,6 @@
1
- const s = (o) => o * 1e3, c = (o) => o / 1e3;
1
+ const secondsToMilliseconds = (seconds) => seconds * 1e3;
2
+ const millisecondsToSeconds = (milliseconds) => milliseconds / 1e3;
2
3
  export {
3
- c as millisecondsToSeconds,
4
- s as secondsToMilliseconds
4
+ millisecondsToSeconds,
5
+ secondsToMilliseconds
5
6
  };
@@ -1,12 +1,21 @@
1
- import { interpolate as c } from "./interpolate.mjs";
2
- const p = (t) => t && typeof t == "object" && t.mix, m = (t) => p(t) ? t.mix : void 0;
3
- function f(...t) {
4
- const o = !Array.isArray(t[0]), n = o ? 0 : -1, r = t[0 + n], s = t[1 + n], e = t[2 + n], u = t[3 + n], i = c(s, e, {
5
- mixer: m(e[0]),
6
- ...u
1
+ import { interpolate } from "./interpolate.mjs";
2
+ const isCustomValueType = (v) => {
3
+ return v && typeof v === "object" && v.mix;
4
+ };
5
+ const getMixer = (v) => isCustomValueType(v) ? v.mix : void 0;
6
+ function transform(...args) {
7
+ const useImmediate = !Array.isArray(args[0]);
8
+ const argOffset = useImmediate ? 0 : -1;
9
+ const inputValue = args[0 + argOffset];
10
+ const inputRange = args[1 + argOffset];
11
+ const outputRange = args[2 + argOffset];
12
+ const options = args[3 + argOffset];
13
+ const interpolator = interpolate(inputRange, outputRange, {
14
+ mixer: getMixer(outputRange[0]),
15
+ ...options
7
16
  });
8
- return o ? i(r) : i;
17
+ return useImmediate ? interpolator(inputValue) : interpolator;
9
18
  }
10
19
  export {
11
- f as transform
20
+ transform
12
21
  };
@@ -1,6 +1,6 @@
1
- function n(c, e) {
2
- return e ? c * (1e3 / e) : 0;
1
+ function velocityPerSecond(velocity, frameDuration) {
2
+ return frameDuration ? velocity * (1e3 / frameDuration) : 0;
3
3
  }
4
4
  export {
5
- n as velocityPerSecond
5
+ velocityPerSecond
6
6
  };
@@ -1,7 +1,10 @@
1
- const e = /* @__PURE__ */ new Set();
2
- function o(r, n, t) {
3
- r || e.has(n) || (console.warn(n), e.add(n));
1
+ const warned = /* @__PURE__ */ new Set();
2
+ function warnOnce(condition, message, element) {
3
+ if (condition || warned.has(message))
4
+ return;
5
+ console.warn(message);
6
+ warned.add(message);
4
7
  }
5
8
  export {
6
- o as warnOnce
9
+ warnOnce
7
10
  };
@@ -1,7 +1,7 @@
1
- const a = (r, t, o) => {
2
- const e = t - r;
3
- return ((o - r) % e + e) % e + r;
1
+ const wrap = (min, max, v) => {
2
+ const rangeSize = max - min;
3
+ return ((v - min) % rangeSize + rangeSize) % rangeSize + min;
4
4
  };
5
5
  export {
6
- a as wrap
6
+ wrap
7
7
  };
@@ -1,12 +1,16 @@
1
- import { SubscriptionManager as c } from "../utils/subscription-manager.mjs";
2
- import { velocityPerSecond as u } from "../utils/velocity-per-second.mjs";
3
- import { warnOnce as p } from "../utils/warn-once.mjs";
4
- import { time as n } from "../frameloop/sync-time.mjs";
5
- import { frame as f } from "../frameloop/frame.mjs";
6
- const r = 30, d = (s) => !isNaN(parseFloat(s)), a = {
1
+ import { SubscriptionManager } from "../utils/subscription-manager.mjs";
2
+ import { velocityPerSecond } from "../utils/velocity-per-second.mjs";
3
+ import { warnOnce } from "../utils/warn-once.mjs";
4
+ import { time } from "../frameloop/sync-time.mjs";
5
+ import { frame } from "../frameloop/frame.mjs";
6
+ const MAX_VELOCITY_DELTA = 30;
7
+ const isFloat = (value) => {
8
+ return !isNaN(parseFloat(value));
9
+ };
10
+ const collectMotionValues = {
7
11
  current: void 0
8
12
  };
9
- class l {
13
+ class MotionValue {
10
14
  /**
11
15
  * @param init - The initiating value
12
16
  * @param config - Optional configuration options
@@ -15,17 +19,38 @@ class l {
15
19
  *
16
20
  * @internal
17
21
  */
18
- constructor(t, e = {}) {
19
- this.version = "11.11.11", this.canTrackVelocity = null, this.events = {}, this.updateAndNotify = (i, h = !0) => {
20
- const o = n.now();
21
- this.updatedAt !== o && this.setPrevFrameValue(), this.prev = this.current, this.setCurrent(i), this.current !== this.prev && this.events.change && this.events.change.notify(this.current), h && this.events.renderRequest && this.events.renderRequest.notify(this.current);
22
- }, this.hasAnimated = !1, this.setCurrent(t), this.owner = e.owner;
22
+ constructor(init, options = {}) {
23
+ this.version = "11.11.11";
24
+ this.canTrackVelocity = null;
25
+ this.events = {};
26
+ this.updateAndNotify = (v, render = true) => {
27
+ const currentTime = time.now();
28
+ if (this.updatedAt !== currentTime) {
29
+ this.setPrevFrameValue();
30
+ }
31
+ this.prev = this.current;
32
+ this.setCurrent(v);
33
+ if (this.current !== this.prev && this.events.change) {
34
+ this.events.change.notify(this.current);
35
+ }
36
+ if (render && this.events.renderRequest) {
37
+ this.events.renderRequest.notify(this.current);
38
+ }
39
+ };
40
+ this.hasAnimated = false;
41
+ this.setCurrent(init);
42
+ this.owner = options.owner;
23
43
  }
24
- setCurrent(t) {
25
- this.current = t, this.updatedAt = n.now(), this.canTrackVelocity === null && t !== void 0 && (this.canTrackVelocity = d(this.current));
44
+ setCurrent(current) {
45
+ this.current = current;
46
+ this.updatedAt = time.now();
47
+ if (this.canTrackVelocity === null && current !== void 0) {
48
+ this.canTrackVelocity = isFloat(this.current);
49
+ }
26
50
  }
27
- setPrevFrameValue(t = this.current) {
28
- this.prevFrameValue = t, this.prevUpdatedAt = this.updatedAt;
51
+ setPrevFrameValue(prevFrameValue = this.current) {
52
+ this.prevFrameValue = prevFrameValue;
53
+ this.prevUpdatedAt = this.updatedAt;
29
54
  }
30
55
  /**
31
56
  * Adds a function that will be notified when the `MotionValue` is updated.
@@ -67,29 +92,42 @@ class l {
67
92
  *
68
93
  * @deprecated
69
94
  */
70
- onChange(t) {
71
- return process.env.NODE_ENV !== "production" && p(!1, 'value.onChange(callback) is deprecated. Switch to value.on("change", callback).'), this.on("change", t);
72
- }
73
- on(t, e) {
74
- this.events[t] || (this.events[t] = new c());
75
- const i = this.events[t].add(e);
76
- return t === "change" ? () => {
77
- i(), f.read(() => {
78
- this.events.change.getSize() || this.stop();
79
- });
80
- } : i;
95
+ onChange(subscription) {
96
+ if (process.env.NODE_ENV !== "production") {
97
+ warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on("change", callback).`);
98
+ }
99
+ return this.on("change", subscription);
100
+ }
101
+ on(eventName, callback) {
102
+ if (!this.events[eventName]) {
103
+ this.events[eventName] = new SubscriptionManager();
104
+ }
105
+ const unsubscribe = this.events[eventName].add(callback);
106
+ if (eventName === "change") {
107
+ return () => {
108
+ unsubscribe();
109
+ frame.read(() => {
110
+ if (!this.events.change.getSize()) {
111
+ this.stop();
112
+ }
113
+ });
114
+ };
115
+ }
116
+ return unsubscribe;
81
117
  }
82
118
  clearListeners() {
83
- for (const t in this.events)
84
- this.events[t].clear();
119
+ for (const eventManagers in this.events) {
120
+ this.events[eventManagers].clear();
121
+ }
85
122
  }
86
123
  /**
87
124
  * Attaches a passive effect to the `MotionValue`.
88
125
  *
89
126
  * @internal
90
127
  */
91
- attach(t, e) {
92
- this.passiveEffect = t, this.stopPassiveEffect = e;
128
+ attach(passiveEffect, stopPassiveEffect) {
129
+ this.passiveEffect = passiveEffect;
130
+ this.stopPassiveEffect = stopPassiveEffect;
93
131
  }
94
132
  /**
95
133
  * Sets the state of the `MotionValue`.
@@ -106,18 +144,30 @@ class l {
106
144
  *
107
145
  * @public
108
146
  */
109
- set(t, e = !0) {
110
- !e || !this.passiveEffect ? this.updateAndNotify(t, e) : this.passiveEffect(t, this.updateAndNotify);
147
+ set(v, render = true) {
148
+ if (!render || !this.passiveEffect) {
149
+ this.updateAndNotify(v, render);
150
+ } else {
151
+ this.passiveEffect(v, this.updateAndNotify);
152
+ }
111
153
  }
112
- setWithVelocity(t, e, i) {
113
- this.set(e), this.prev = void 0, this.prevFrameValue = t, this.prevUpdatedAt = this.updatedAt - i;
154
+ setWithVelocity(prev, current, delta) {
155
+ this.set(current);
156
+ this.prev = void 0;
157
+ this.prevFrameValue = prev;
158
+ this.prevUpdatedAt = this.updatedAt - delta;
114
159
  }
115
160
  /**
116
161
  * Set the state of the `MotionValue`, stopping any active animations,
117
162
  * effects, and resets velocity to `0`.
118
163
  */
119
- jump(t, e = !0) {
120
- this.updateAndNotify(t), this.prev = t, this.prevUpdatedAt = this.prevFrameValue = void 0, e && this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
164
+ jump(v, endAnimation = true) {
165
+ this.updateAndNotify(v);
166
+ this.prev = v;
167
+ this.prevUpdatedAt = this.prevFrameValue = void 0;
168
+ endAnimation && this.stop();
169
+ if (this.stopPassiveEffect)
170
+ this.stopPassiveEffect();
121
171
  }
122
172
  /**
123
173
  * Returns the latest state of `MotionValue`
@@ -127,7 +177,10 @@ class l {
127
177
  * @public
128
178
  */
129
179
  get() {
130
- return a.current && a.current.push(this), this.current;
180
+ if (collectMotionValues.current) {
181
+ collectMotionValues.current.push(this);
182
+ }
183
+ return this.current;
131
184
  }
132
185
  /**
133
186
  * @public
@@ -143,11 +196,12 @@ class l {
143
196
  * @public
144
197
  */
145
198
  getVelocity() {
146
- const t = n.now();
147
- if (!this.canTrackVelocity || this.prevFrameValue === void 0 || t - this.updatedAt > r)
199
+ const currentTime = time.now();
200
+ if (!this.canTrackVelocity || this.prevFrameValue === void 0 || currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {
148
201
  return 0;
149
- const e = Math.min(this.updatedAt - this.prevUpdatedAt, r);
150
- return u(parseFloat(this.current) - parseFloat(this.prevFrameValue), e);
202
+ }
203
+ const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);
204
+ return velocityPerSecond(parseFloat(this.current) - parseFloat(this.prevFrameValue), delta);
151
205
  }
152
206
  /**
153
207
  * Registers a new animation to control this `MotionValue`. Only one
@@ -161,11 +215,19 @@ class l {
161
215
  *
162
216
  * @internal
163
217
  */
164
- start(t) {
165
- return this.stop(), new Promise((e) => {
166
- this.hasAnimated = !0, this.animation = t(e), this.events.animationStart && this.events.animationStart.notify();
218
+ start(startAnimation) {
219
+ this.stop();
220
+ return new Promise((resolve) => {
221
+ this.hasAnimated = true;
222
+ this.animation = startAnimation(resolve);
223
+ if (this.events.animationStart) {
224
+ this.events.animationStart.notify();
225
+ }
167
226
  }).then(() => {
168
- this.events.animationComplete && this.events.animationComplete.notify(), this.clearAnimation();
227
+ if (this.events.animationComplete) {
228
+ this.events.animationComplete.notify();
229
+ }
230
+ this.clearAnimation();
169
231
  });
170
232
  }
171
233
  /**
@@ -174,7 +236,13 @@ class l {
174
236
  * @public
175
237
  */
176
238
  stop() {
177
- this.animation && (this.animation.stop(), this.events.animationCancel && this.events.animationCancel.notify()), this.clearAnimation();
239
+ if (this.animation) {
240
+ this.animation.stop();
241
+ if (this.events.animationCancel) {
242
+ this.events.animationCancel.notify();
243
+ }
244
+ }
245
+ this.clearAnimation();
178
246
  }
179
247
  /**
180
248
  * Returns `true` if this value is currently animating.
@@ -197,14 +265,18 @@ class l {
197
265
  * @public
198
266
  */
199
267
  destroy() {
200
- this.clearListeners(), this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
268
+ this.clearListeners();
269
+ this.stop();
270
+ if (this.stopPassiveEffect) {
271
+ this.stopPassiveEffect();
272
+ }
201
273
  }
202
274
  }
203
- function g(s, t) {
204
- return new l(s, t);
275
+ function motionValue(init, options) {
276
+ return new MotionValue(init, options);
205
277
  }
206
278
  export {
207
- l as MotionValue,
208
- a as collectMotionValues,
209
- g as motionValue
279
+ MotionValue,
280
+ collectMotionValues,
281
+ motionValue
210
282
  };
@@ -1,19 +1,37 @@
1
- import { rgba as i } from "./rgba.mjs";
2
- import { isColorString as g } from "./utils.mjs";
3
- function a(r) {
4
- let t = "", e = "", n = "", s = "";
5
- return r.length > 5 ? (t = r.substring(1, 3), e = r.substring(3, 5), n = r.substring(5, 7), s = r.substring(7, 9)) : (t = r.substring(1, 2), e = r.substring(2, 3), n = r.substring(3, 4), s = r.substring(4, 5), t += t, e += e, n += n, s += s), {
6
- red: parseInt(t, 16),
7
- green: parseInt(e, 16),
8
- blue: parseInt(n, 16),
9
- alpha: s ? parseInt(s, 16) / 255 : 1
1
+ import { rgba } from "./rgba.mjs";
2
+ import { isColorString } from "./utils.mjs";
3
+ function parseHex(v) {
4
+ let r = "";
5
+ let g = "";
6
+ let b = "";
7
+ let a = "";
8
+ if (v.length > 5) {
9
+ r = v.substring(1, 3);
10
+ g = v.substring(3, 5);
11
+ b = v.substring(5, 7);
12
+ a = v.substring(7, 9);
13
+ } else {
14
+ r = v.substring(1, 2);
15
+ g = v.substring(2, 3);
16
+ b = v.substring(3, 4);
17
+ a = v.substring(4, 5);
18
+ r += r;
19
+ g += g;
20
+ b += b;
21
+ a += a;
22
+ }
23
+ return {
24
+ red: parseInt(r, 16),
25
+ green: parseInt(g, 16),
26
+ blue: parseInt(b, 16),
27
+ alpha: a ? parseInt(a, 16) / 255 : 1
10
28
  };
11
29
  }
12
- const u = {
13
- test: /* @__PURE__ */ g("#"),
14
- parse: a,
15
- transform: i.transform
30
+ const hex = {
31
+ test: /* @__PURE__ */ isColorString("#"),
32
+ parse: parseHex,
33
+ transform: rgba.transform
16
34
  };
17
35
  export {
18
- u as hex
36
+ hex
19
37
  };
@@ -1,12 +1,14 @@
1
- import { alpha as n } from "../numbers/index.mjs";
2
- import { percent as t } from "../numbers/units.mjs";
3
- import { sanitize as r } from "../utils/sanitize.mjs";
4
- import { isColorString as i, splitColor as e } from "./utils.mjs";
5
- const u = {
6
- test: /* @__PURE__ */ i("hsl", "hue"),
7
- parse: /* @__PURE__ */ e("hue", "saturation", "lightness"),
8
- transform: ({ hue: o, saturation: s, lightness: a, alpha: m = 1 }) => "hsla(" + Math.round(o) + ", " + t.transform(r(s)) + ", " + t.transform(r(a)) + ", " + r(n.transform(m)) + ")"
1
+ import { alpha } from "../numbers/index.mjs";
2
+ import { percent } from "../numbers/units.mjs";
3
+ import { sanitize } from "../utils/sanitize.mjs";
4
+ import { isColorString, splitColor } from "./utils.mjs";
5
+ const hsla = {
6
+ test: /* @__PURE__ */ isColorString("hsl", "hue"),
7
+ parse: /* @__PURE__ */ splitColor("hue", "saturation", "lightness"),
8
+ transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {
9
+ return "hsla(" + Math.round(hue) + ", " + percent.transform(sanitize(saturation)) + ", " + percent.transform(sanitize(lightness)) + ", " + sanitize(alpha.transform(alpha$1)) + ")";
10
+ }
9
11
  };
10
12
  export {
11
- u as hsla
13
+ hsla
12
14
  };
@@ -1,11 +1,21 @@
1
- import { hex as s } from "./hex.mjs";
2
- import { hsla as t } from "./hsla.mjs";
3
- import { rgba as e } from "./rgba.mjs";
4
- const p = {
5
- test: (r) => e.test(r) || s.test(r) || t.test(r),
6
- parse: (r) => e.test(r) ? e.parse(r) : t.test(r) ? t.parse(r) : s.parse(r),
7
- transform: (r) => typeof r == "string" ? r : r.hasOwnProperty("red") ? e.transform(r) : t.transform(r)
1
+ import { hex } from "./hex.mjs";
2
+ import { hsla } from "./hsla.mjs";
3
+ import { rgba } from "./rgba.mjs";
4
+ const color = {
5
+ test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),
6
+ parse: (v) => {
7
+ if (rgba.test(v)) {
8
+ return rgba.parse(v);
9
+ } else if (hsla.test(v)) {
10
+ return hsla.parse(v);
11
+ } else {
12
+ return hex.parse(v);
13
+ }
14
+ },
15
+ transform: (v) => {
16
+ return typeof v === "string" ? v : v.hasOwnProperty("red") ? rgba.transform(v) : hsla.transform(v);
17
+ }
8
18
  };
9
19
  export {
10
- p as color
20
+ color
11
21
  };
@@ -1,16 +1,18 @@
1
- import { clamp as n } from "../../../utils/clamp.mjs";
2
- import { number as s, alpha as i } from "../numbers/index.mjs";
3
- import { sanitize as p } from "../utils/sanitize.mjs";
4
- import { isColorString as e, splitColor as f } from "./utils.mjs";
5
- const l = (r) => n(0, 255, r), o = {
6
- ...s,
7
- transform: (r) => Math.round(l(r))
8
- }, h = {
9
- test: /* @__PURE__ */ e("rgb", "red"),
10
- parse: /* @__PURE__ */ f("red", "green", "blue"),
11
- transform: ({ red: r, green: t, blue: a, alpha: m = 1 }) => "rgba(" + o.transform(r) + ", " + o.transform(t) + ", " + o.transform(a) + ", " + p(i.transform(m)) + ")"
1
+ import { clamp } from "../../../utils/clamp.mjs";
2
+ import { number, alpha } from "../numbers/index.mjs";
3
+ import { sanitize } from "../utils/sanitize.mjs";
4
+ import { isColorString, splitColor } from "./utils.mjs";
5
+ const clampRgbUnit = (v) => clamp(0, 255, v);
6
+ const rgbUnit = {
7
+ ...number,
8
+ transform: (v) => Math.round(clampRgbUnit(v))
9
+ };
10
+ const rgba = {
11
+ test: /* @__PURE__ */ isColorString("rgb", "red"),
12
+ parse: /* @__PURE__ */ splitColor("red", "green", "blue"),
13
+ transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => "rgba(" + rgbUnit.transform(red) + ", " + rgbUnit.transform(green) + ", " + rgbUnit.transform(blue) + ", " + sanitize(alpha.transform(alpha$1)) + ")"
12
14
  };
13
15
  export {
14
- o as rgbUnit,
15
- h as rgba
16
+ rgbUnit,
17
+ rgba
16
18
  };
@@ -1,18 +1,21 @@
1
- import { floatRegex as i } from "../utils/float-regex.mjs";
2
- import { isNullish as n } from "../utils/is-nullish.mjs";
3
- import { singleColorRegex as f } from "../utils/single-color-regex.mjs";
4
- const h = (r, o) => (t) => !!(typeof t == "string" && f.test(t) && t.startsWith(r) || o && !n(t) && Object.prototype.hasOwnProperty.call(t, o)), u = (r, o, t) => (e) => {
5
- if (typeof e != "string")
6
- return e;
7
- const [l, s, p, a] = e.match(i);
1
+ import { floatRegex } from "../utils/float-regex.mjs";
2
+ import { isNullish } from "../utils/is-nullish.mjs";
3
+ import { singleColorRegex } from "../utils/single-color-regex.mjs";
4
+ const isColorString = (type, testProp) => (v) => {
5
+ return Boolean(typeof v === "string" && singleColorRegex.test(v) && v.startsWith(type) || testProp && !isNullish(v) && Object.prototype.hasOwnProperty.call(v, testProp));
6
+ };
7
+ const splitColor = (aName, bName, cName) => (v) => {
8
+ if (typeof v !== "string")
9
+ return v;
10
+ const [a, b, c, alpha] = v.match(floatRegex);
8
11
  return {
9
- [r]: parseFloat(l),
10
- [o]: parseFloat(s),
11
- [t]: parseFloat(p),
12
- alpha: a !== void 0 ? parseFloat(a) : 1
12
+ [aName]: parseFloat(a),
13
+ [bName]: parseFloat(b),
14
+ [cName]: parseFloat(c),
15
+ alpha: alpha !== void 0 ? parseFloat(alpha) : 1
13
16
  };
14
17
  };
15
18
  export {
16
- h as isColorString,
17
- u as splitColor
19
+ isColorString,
20
+ splitColor
18
21
  };