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,148 +1,275 @@
1
- import { KeyframeResolver as x } from "../../render/utils/KeyframesResolver.mjs";
2
- import { spring as G } from "../generators/spring/index.mjs";
3
- import { inertia as b } from "../generators/inertia.mjs";
4
- import { keyframes as y } from "../generators/keyframes.mjs";
5
- import { BaseAnimation as I } from "./BaseAnimation.mjs";
6
- import { pipe as O } from "../../utils/pipe.mjs";
7
- import { mix as _ } from "../../utils/mix/index.mjs";
8
- import { calcGeneratorDuration as A } from "../generators/utils/calc-duration.mjs";
9
- import { millisecondsToSeconds as D, secondsToMilliseconds as V } from "../../utils/time-conversion.mjs";
10
- import { clamp as B } from "../../utils/clamp.mjs";
11
- import { invariant as C } from "../../utils/errors.mjs";
12
- import { frameloopDriver as E } from "./drivers/driver-frameloop.mjs";
13
- import { getFinalKeyframe as N } from "./waapi/utils/get-final-keyframe.mjs";
14
- import { isGenerator as U } from "../generators/utils/is-generator.mjs";
15
- const W = {
16
- decay: b,
17
- inertia: b,
18
- tween: y,
19
- keyframes: y,
20
- spring: G
21
- }, j = (p) => p / 100;
22
- class q extends I {
23
- constructor(t) {
24
- super(t), this.holdTime = null, this.cancelTime = null, this.currentTime = 0, this.playbackSpeed = 1, this.pendingPlayState = "running", this.startTime = null, this.state = "idle", this.stop = () => {
25
- if (this.resolver.cancel(), this.isStopped = !0, this.state === "idle")
1
+ import { KeyframeResolver } from "../../render/utils/KeyframesResolver.mjs";
2
+ import { spring } from "../generators/spring/index.mjs";
3
+ import { inertia } from "../generators/inertia.mjs";
4
+ import { keyframes } from "../generators/keyframes.mjs";
5
+ import { BaseAnimation } from "./BaseAnimation.mjs";
6
+ import { pipe } from "../../utils/pipe.mjs";
7
+ import { mix } from "../../utils/mix/index.mjs";
8
+ import { calcGeneratorDuration } from "../generators/utils/calc-duration.mjs";
9
+ import { millisecondsToSeconds, secondsToMilliseconds } from "../../utils/time-conversion.mjs";
10
+ import { clamp } from "../../utils/clamp.mjs";
11
+ import { invariant } from "../../utils/errors.mjs";
12
+ import { frameloopDriver } from "./drivers/driver-frameloop.mjs";
13
+ import { getFinalKeyframe } from "./waapi/utils/get-final-keyframe.mjs";
14
+ import { isGenerator } from "../generators/utils/is-generator.mjs";
15
+ const generators = {
16
+ decay: inertia,
17
+ inertia,
18
+ tween: keyframes,
19
+ keyframes,
20
+ spring
21
+ };
22
+ const percentToProgress = (percent) => percent / 100;
23
+ class MainThreadAnimation extends BaseAnimation {
24
+ constructor(options) {
25
+ super(options);
26
+ this.holdTime = null;
27
+ this.cancelTime = null;
28
+ this.currentTime = 0;
29
+ this.playbackSpeed = 1;
30
+ this.pendingPlayState = "running";
31
+ this.startTime = null;
32
+ this.state = "idle";
33
+ this.stop = () => {
34
+ this.resolver.cancel();
35
+ this.isStopped = true;
36
+ if (this.state === "idle")
26
37
  return;
27
38
  this.teardown();
28
- const { onStop: n } = this.options;
29
- n && n();
39
+ const { onStop } = this.options;
40
+ onStop && onStop();
30
41
  };
31
- const { name: i, motionValue: r, element: e, keyframes: o } = this.options, u = (e == null ? void 0 : e.KeyframeResolver) || x, a = (n, l) => this.onKeyframesResolved(n, l);
32
- this.resolver = new u(o, a, i, r, e), this.resolver.scheduleResolve();
33
- }
34
- initPlayback(t) {
35
- const { type: i = "keyframes", repeat: r = 0, repeatDelay: e = 0, repeatType: o, velocity: u = 0 } = this.options, a = U(i) ? i : W[i] || y;
36
- let n, l;
37
- a !== y && typeof t[0] != "number" && (process.env.NODE_ENV !== "production" && C(t.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${t}`), n = O(j, _(t[0], t[1])), t = [0, 100]);
38
- const s = a({ ...this.options, keyframes: t });
39
- o === "mirror" && (l = a({
40
- ...this.options,
41
- keyframes: [...t].reverse(),
42
- velocity: -u
43
- })), s.calculatedDuration === null && (s.calculatedDuration = A(s));
44
- const { calculatedDuration: d } = s, f = d + e, T = f * (r + 1) - e;
42
+ const { name, motionValue, element, keyframes: keyframes2 } = this.options;
43
+ const KeyframeResolver$1 = (element === null || element === void 0 ? void 0 : element.KeyframeResolver) || KeyframeResolver;
44
+ const onResolved = (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe);
45
+ this.resolver = new KeyframeResolver$1(keyframes2, onResolved, name, motionValue, element);
46
+ this.resolver.scheduleResolve();
47
+ }
48
+ initPlayback(keyframes$1) {
49
+ const { type = "keyframes", repeat = 0, repeatDelay = 0, repeatType, velocity = 0 } = this.options;
50
+ const generatorFactory = isGenerator(type) ? type : generators[type] || keyframes;
51
+ let mapPercentToKeyframes;
52
+ let mirroredGenerator;
53
+ if (generatorFactory !== keyframes && typeof keyframes$1[0] !== "number") {
54
+ if (process.env.NODE_ENV !== "production") {
55
+ invariant(keyframes$1.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`);
56
+ }
57
+ mapPercentToKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));
58
+ keyframes$1 = [0, 100];
59
+ }
60
+ const generator = generatorFactory({ ...this.options, keyframes: keyframes$1 });
61
+ if (repeatType === "mirror") {
62
+ mirroredGenerator = generatorFactory({
63
+ ...this.options,
64
+ keyframes: [...keyframes$1].reverse(),
65
+ velocity: -velocity
66
+ });
67
+ }
68
+ if (generator.calculatedDuration === null) {
69
+ generator.calculatedDuration = calcGeneratorDuration(generator);
70
+ }
71
+ const { calculatedDuration } = generator;
72
+ const resolvedDuration = calculatedDuration + repeatDelay;
73
+ const totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;
45
74
  return {
46
- generator: s,
47
- mirroredGenerator: l,
48
- mapPercentToKeyframes: n,
49
- calculatedDuration: d,
50
- resolvedDuration: f,
51
- totalDuration: T
75
+ generator,
76
+ mirroredGenerator,
77
+ mapPercentToKeyframes,
78
+ calculatedDuration,
79
+ resolvedDuration,
80
+ totalDuration
52
81
  };
53
82
  }
54
83
  onPostResolved() {
55
- const { autoplay: t = !0 } = this.options;
56
- this.play(), this.pendingPlayState === "paused" || !t ? this.pause() : this.state = this.pendingPlayState;
84
+ const { autoplay = true } = this.options;
85
+ this.play();
86
+ if (this.pendingPlayState === "paused" || !autoplay) {
87
+ this.pause();
88
+ } else {
89
+ this.state = this.pendingPlayState;
90
+ }
57
91
  }
58
- tick(t, i = !1) {
59
- const { resolved: r } = this;
60
- if (!r) {
61
- const { keyframes: c } = this.options;
62
- return { done: !0, value: c[c.length - 1] };
92
+ tick(timestamp, sample = false) {
93
+ const { resolved } = this;
94
+ if (!resolved) {
95
+ const { keyframes: keyframes3 } = this.options;
96
+ return { done: true, value: keyframes3[keyframes3.length - 1] };
63
97
  }
64
- const { finalKeyframe: e, generator: o, mirroredGenerator: u, mapPercentToKeyframes: a, keyframes: n, calculatedDuration: l, totalDuration: s, resolvedDuration: d } = r;
98
+ const { finalKeyframe, generator, mirroredGenerator, mapPercentToKeyframes, keyframes: keyframes2, calculatedDuration, totalDuration, resolvedDuration } = resolved;
65
99
  if (this.startTime === null)
66
- return o.next(0);
67
- const { delay: f, repeat: T, repeatType: P, repeatDelay: S, onUpdate: k } = this.options;
68
- this.speed > 0 ? this.startTime = Math.min(this.startTime, t) : this.speed < 0 && (this.startTime = Math.min(t - s / this.speed, this.startTime)), i ? this.currentTime = t : this.holdTime !== null ? this.currentTime = this.holdTime : this.currentTime = Math.round(t - this.startTime) * this.speed;
69
- const g = this.currentTime - f * (this.speed >= 0 ? 1 : -1), M = this.speed >= 0 ? g < 0 : g > s;
70
- this.currentTime = Math.max(g, 0), this.state === "finished" && this.holdTime === null && (this.currentTime = s);
71
- let K = this.currentTime, w = o;
72
- if (T) {
73
- const c = Math.min(this.currentTime, s) / d;
74
- let v = Math.floor(c), h = c % 1;
75
- !h && c >= 1 && (h = 1), h === 1 && v--, v = Math.min(v, T + 1), !!(v % 2) && (P === "reverse" ? (h = 1 - h, S && (h -= S / d)) : P === "mirror" && (w = u)), K = B(0, 1, h) * d;
76
- }
77
- const m = M ? { done: !1, value: n[0] } : w.next(K);
78
- a && (m.value = a(m.value));
79
- let { done: F } = m;
80
- !M && l !== null && (F = this.speed >= 0 ? this.currentTime >= s : this.currentTime <= 0);
81
- const R = this.holdTime === null && (this.state === "finished" || this.state === "running" && F);
82
- return R && e !== void 0 && (m.value = N(n, this.options, e)), k && k(m.value), R && this.finish(), m;
100
+ return generator.next(0);
101
+ const { delay, repeat, repeatType, repeatDelay, onUpdate } = this.options;
102
+ if (this.speed > 0) {
103
+ this.startTime = Math.min(this.startTime, timestamp);
104
+ } else if (this.speed < 0) {
105
+ this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);
106
+ }
107
+ if (sample) {
108
+ this.currentTime = timestamp;
109
+ } else if (this.holdTime !== null) {
110
+ this.currentTime = this.holdTime;
111
+ } else {
112
+ this.currentTime = Math.round(timestamp - this.startTime) * this.speed;
113
+ }
114
+ const timeWithoutDelay = this.currentTime - delay * (this.speed >= 0 ? 1 : -1);
115
+ const isInDelayPhase = this.speed >= 0 ? timeWithoutDelay < 0 : timeWithoutDelay > totalDuration;
116
+ this.currentTime = Math.max(timeWithoutDelay, 0);
117
+ if (this.state === "finished" && this.holdTime === null) {
118
+ this.currentTime = totalDuration;
119
+ }
120
+ let elapsed = this.currentTime;
121
+ let frameGenerator = generator;
122
+ if (repeat) {
123
+ const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;
124
+ let currentIteration = Math.floor(progress);
125
+ let iterationProgress = progress % 1;
126
+ if (!iterationProgress && progress >= 1) {
127
+ iterationProgress = 1;
128
+ }
129
+ iterationProgress === 1 && currentIteration--;
130
+ currentIteration = Math.min(currentIteration, repeat + 1);
131
+ const isOddIteration = Boolean(currentIteration % 2);
132
+ if (isOddIteration) {
133
+ if (repeatType === "reverse") {
134
+ iterationProgress = 1 - iterationProgress;
135
+ if (repeatDelay) {
136
+ iterationProgress -= repeatDelay / resolvedDuration;
137
+ }
138
+ } else if (repeatType === "mirror") {
139
+ frameGenerator = mirroredGenerator;
140
+ }
141
+ }
142
+ elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;
143
+ }
144
+ const state = isInDelayPhase ? { done: false, value: keyframes2[0] } : frameGenerator.next(elapsed);
145
+ if (mapPercentToKeyframes) {
146
+ state.value = mapPercentToKeyframes(state.value);
147
+ }
148
+ let { done } = state;
149
+ if (!isInDelayPhase && calculatedDuration !== null) {
150
+ done = this.speed >= 0 ? this.currentTime >= totalDuration : this.currentTime <= 0;
151
+ }
152
+ const isAnimationFinished = this.holdTime === null && (this.state === "finished" || this.state === "running" && done);
153
+ if (isAnimationFinished && finalKeyframe !== void 0) {
154
+ state.value = getFinalKeyframe(keyframes2, this.options, finalKeyframe);
155
+ }
156
+ if (onUpdate) {
157
+ onUpdate(state.value);
158
+ }
159
+ if (isAnimationFinished) {
160
+ this.finish();
161
+ }
162
+ return state;
83
163
  }
84
164
  get duration() {
85
- const { resolved: t } = this;
86
- return t ? D(t.calculatedDuration) : 0;
165
+ const { resolved } = this;
166
+ return resolved ? millisecondsToSeconds(resolved.calculatedDuration) : 0;
87
167
  }
88
168
  get time() {
89
- return D(this.currentTime);
169
+ return millisecondsToSeconds(this.currentTime);
90
170
  }
91
- set time(t) {
92
- t = V(t), this.currentTime = t, this.holdTime !== null || this.speed === 0 ? this.holdTime = t : this.driver && (this.startTime = this.driver.now() - t / this.speed);
171
+ set time(newTime) {
172
+ newTime = secondsToMilliseconds(newTime);
173
+ this.currentTime = newTime;
174
+ if (this.holdTime !== null || this.speed === 0) {
175
+ this.holdTime = newTime;
176
+ } else if (this.driver) {
177
+ this.startTime = this.driver.now() - newTime / this.speed;
178
+ }
93
179
  }
94
180
  get speed() {
95
181
  return this.playbackSpeed;
96
182
  }
97
- set speed(t) {
98
- const i = this.playbackSpeed !== t;
99
- this.playbackSpeed = t, i && (this.time = D(this.currentTime));
183
+ set speed(newSpeed) {
184
+ const hasChanged = this.playbackSpeed !== newSpeed;
185
+ this.playbackSpeed = newSpeed;
186
+ if (hasChanged) {
187
+ this.time = millisecondsToSeconds(this.currentTime);
188
+ }
100
189
  }
101
190
  play() {
102
- if (this.resolver.isScheduled || this.resolver.resume(), !this._resolved) {
191
+ if (!this.resolver.isScheduled) {
192
+ this.resolver.resume();
193
+ }
194
+ if (!this._resolved) {
103
195
  this.pendingPlayState = "running";
104
196
  return;
105
197
  }
106
198
  if (this.isStopped)
107
199
  return;
108
- const { driver: t = E, onPlay: i, startTime: r } = this.options;
109
- this.driver || (this.driver = t((o) => this.tick(o))), i && i();
110
- const e = this.driver.now();
111
- this.holdTime !== null ? this.startTime = e - this.holdTime : this.startTime ? this.state === "finished" && (this.startTime = e) : this.startTime = r ?? this.calcStartTime(), this.state === "finished" && this.updateFinishedPromise(), this.cancelTime = this.startTime, this.holdTime = null, this.state = "running", this.driver.start();
200
+ const { driver = frameloopDriver, onPlay, startTime } = this.options;
201
+ if (!this.driver) {
202
+ this.driver = driver((timestamp) => this.tick(timestamp));
203
+ }
204
+ onPlay && onPlay();
205
+ const now = this.driver.now();
206
+ if (this.holdTime !== null) {
207
+ this.startTime = now - this.holdTime;
208
+ } else if (!this.startTime) {
209
+ this.startTime = startTime !== null && startTime !== void 0 ? startTime : this.calcStartTime();
210
+ } else if (this.state === "finished") {
211
+ this.startTime = now;
212
+ }
213
+ if (this.state === "finished") {
214
+ this.updateFinishedPromise();
215
+ }
216
+ this.cancelTime = this.startTime;
217
+ this.holdTime = null;
218
+ this.state = "running";
219
+ this.driver.start();
112
220
  }
113
221
  pause() {
114
- var t;
222
+ var _a;
115
223
  if (!this._resolved) {
116
224
  this.pendingPlayState = "paused";
117
225
  return;
118
226
  }
119
- this.state = "paused", this.holdTime = (t = this.currentTime) !== null && t !== void 0 ? t : 0;
227
+ this.state = "paused";
228
+ this.holdTime = (_a = this.currentTime) !== null && _a !== void 0 ? _a : 0;
120
229
  }
121
230
  complete() {
122
- this.state !== "running" && this.play(), this.pendingPlayState = this.state = "finished", this.holdTime = null;
231
+ if (this.state !== "running") {
232
+ this.play();
233
+ }
234
+ this.pendingPlayState = this.state = "finished";
235
+ this.holdTime = null;
123
236
  }
124
237
  finish() {
125
- this.teardown(), this.state = "finished";
126
- const { onComplete: t } = this.options;
127
- t && t();
238
+ this.teardown();
239
+ this.state = "finished";
240
+ const { onComplete } = this.options;
241
+ onComplete && onComplete();
128
242
  }
129
243
  cancel() {
130
- this.cancelTime !== null && this.tick(this.cancelTime), this.teardown(), this.updateFinishedPromise();
244
+ if (this.cancelTime !== null) {
245
+ this.tick(this.cancelTime);
246
+ }
247
+ this.teardown();
248
+ this.updateFinishedPromise();
131
249
  }
132
250
  teardown() {
133
- this.state = "idle", this.stopDriver(), this.resolveFinishedPromise(), this.updateFinishedPromise(), this.startTime = this.cancelTime = null, this.resolver.cancel();
251
+ this.state = "idle";
252
+ this.stopDriver();
253
+ this.resolveFinishedPromise();
254
+ this.updateFinishedPromise();
255
+ this.startTime = this.cancelTime = null;
256
+ this.resolver.cancel();
134
257
  }
135
258
  stopDriver() {
136
- this.driver && (this.driver.stop(), this.driver = void 0);
259
+ if (!this.driver)
260
+ return;
261
+ this.driver.stop();
262
+ this.driver = void 0;
137
263
  }
138
- sample(t) {
139
- return this.startTime = 0, this.tick(t, !0);
264
+ sample(time) {
265
+ this.startTime = 0;
266
+ return this.tick(time, true);
140
267
  }
141
268
  }
142
- function ot(p) {
143
- return new q(p);
269
+ function animateValue(options) {
270
+ return new MainThreadAnimation(options);
144
271
  }
145
272
  export {
146
- q as MainThreadAnimation,
147
- ot as animateValue
273
+ MainThreadAnimation,
274
+ animateValue
148
275
  };
@@ -1,17 +1,17 @@
1
- import { time as o } from "../../../frameloop/sync-time.mjs";
2
- import { frame as a, cancelFrame as s, frameData as t } from "../../../frameloop/frame.mjs";
3
- const n = (e) => {
4
- const r = ({ timestamp: m }) => e(m);
1
+ import { time } from "../../../frameloop/sync-time.mjs";
2
+ import { frame, cancelFrame, frameData } from "../../../frameloop/frame.mjs";
3
+ const frameloopDriver = (update) => {
4
+ const passTimestamp = ({ timestamp }) => update(timestamp);
5
5
  return {
6
- start: () => a.update(r, !0),
7
- stop: () => s(r),
6
+ start: () => frame.update(passTimestamp, true),
7
+ stop: () => cancelFrame(passTimestamp),
8
8
  /**
9
9
  * If we're processing this frame we can use the
10
10
  * framelocked timestamp to keep things in sync.
11
11
  */
12
- now: () => t.isProcessing ? t.timestamp : o.now()
12
+ now: () => frameData.isProcessing ? frameData.timestamp : time.now()
13
13
  };
14
14
  };
15
15
  export {
16
- n as frameloopDriver
16
+ frameloopDriver
17
17
  };
@@ -1,4 +1,4 @@
1
- const e = /* @__PURE__ */ new Set([
1
+ const acceleratedValues = /* @__PURE__ */ new Set([
2
2
  "opacity",
3
3
  "clipPath",
4
4
  "filter",
@@ -8,5 +8,5 @@ const e = /* @__PURE__ */ new Set([
8
8
  // "background-color"
9
9
  ]);
10
10
  export {
11
- e as acceleratedValues
11
+ acceleratedValues
12
12
  };
@@ -1,23 +1,30 @@
1
- import { warning as s } from "../../../utils/errors.mjs";
2
- import { isGenerator as f } from "../../generators/utils/is-generator.mjs";
3
- import { isAnimatable as l } from "../../utils/is-animatable.mjs";
4
- function g(t) {
5
- const i = t[0];
6
- if (t.length === 1)
7
- return !0;
8
- for (let n = 0; n < t.length; n++)
9
- if (t[n] !== i)
10
- return !0;
1
+ import { warning } from "../../../utils/errors.mjs";
2
+ import { isGenerator } from "../../generators/utils/is-generator.mjs";
3
+ import { isAnimatable } from "../../utils/is-animatable.mjs";
4
+ function hasKeyframesChanged(keyframes) {
5
+ const current = keyframes[0];
6
+ if (keyframes.length === 1)
7
+ return true;
8
+ for (let i = 0; i < keyframes.length; i++) {
9
+ if (keyframes[i] !== current)
10
+ return true;
11
+ }
11
12
  }
12
- function h(t, i, n, u) {
13
- const r = t[0];
14
- if (r === null)
15
- return !1;
16
- if (i === "display" || i === "visibility")
17
- return !0;
18
- const a = t[t.length - 1], e = l(r, i), o = l(a, i);
19
- return s(e === o, `You are trying to animate ${i} from "${r}" to "${a}". ${r} is not an animatable value - to enable this animation set ${r} to a value animatable to ${a} via the \`style\` property.`), !e || !o ? !1 : g(t) || (n === "spring" || f(n)) && u;
13
+ function canAnimate(keyframes, name, type, velocity) {
14
+ const originKeyframe = keyframes[0];
15
+ if (originKeyframe === null)
16
+ return false;
17
+ if (name === "display" || name === "visibility")
18
+ return true;
19
+ const targetKeyframe = keyframes[keyframes.length - 1];
20
+ const isOriginAnimatable = isAnimatable(originKeyframe, name);
21
+ const isTargetAnimatable = isAnimatable(targetKeyframe, name);
22
+ warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from "${originKeyframe}" to "${targetKeyframe}". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \`style\` property.`);
23
+ if (!isOriginAnimatable || !isTargetAnimatable) {
24
+ return false;
25
+ }
26
+ return hasKeyframesChanged(keyframes) || (type === "spring" || isGenerator(type)) && velocity;
20
27
  }
21
28
  export {
22
- h as canAnimate
29
+ canAnimate
23
30
  };