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,63 +1,105 @@
1
- import { startWaapiAnimation as y } from "./index.mjs";
2
- import { createGeneratorEasing as S } from "../../../easing/utils/create-generator-easing.mjs";
3
- import { browserNumberValueTypes as m } from "../../../render/dom/value-types/number-browser.mjs";
4
- import { invariant as T } from "../../../utils/errors.mjs";
5
- import { noop as P } from "../../../utils/noop.mjs";
6
- import { secondsToMilliseconds as p, millisecondsToSeconds as c } from "../../../utils/time-conversion.mjs";
7
- import { isGenerator as F } from "../../generators/utils/is-generator.mjs";
8
- import { attachTimeline as d } from "./utils/attach-timeline.mjs";
9
- import { getFinalKeyframe as A } from "./utils/get-final-keyframe.mjs";
10
- import { setCSSVar as w, setStyle as V } from "./utils/style.mjs";
11
- import { supportsLinearEasing as b } from "./utils/supports-linear-easing.mjs";
12
- import { supportsPartialKeyframes as W } from "./utils/supports-partial-keyframes.mjs";
13
- import { supportsWaapi as E } from "./utils/supports-waapi.mjs";
14
- const o = /* @__PURE__ */ new WeakMap();
15
- function M(a, i, n) {
16
- for (let t = 0; t < i.length; t++)
17
- i[t] === null && (i[t] = t === 0 ? n() : i[t - 1]), typeof i[t] == "number" && m[a] && (i[t] = m[a].transform(i[t]));
18
- !W() && i.length < 2 && i.unshift(n());
1
+ import { startWaapiAnimation } from "./index.mjs";
2
+ import { createGeneratorEasing } from "../../../easing/utils/create-generator-easing.mjs";
3
+ import { browserNumberValueTypes } from "../../../render/dom/value-types/number-browser.mjs";
4
+ import { invariant } from "../../../utils/errors.mjs";
5
+ import { noop } from "../../../utils/noop.mjs";
6
+ import { secondsToMilliseconds, millisecondsToSeconds } from "../../../utils/time-conversion.mjs";
7
+ import { isGenerator } from "../../generators/utils/is-generator.mjs";
8
+ import { attachTimeline } from "./utils/attach-timeline.mjs";
9
+ import { getFinalKeyframe } from "./utils/get-final-keyframe.mjs";
10
+ import { setCSSVar, setStyle } from "./utils/style.mjs";
11
+ import { supportsLinearEasing } from "./utils/supports-linear-easing.mjs";
12
+ import { supportsPartialKeyframes } from "./utils/supports-partial-keyframes.mjs";
13
+ import { supportsWaapi } from "./utils/supports-waapi.mjs";
14
+ const state = /* @__PURE__ */ new WeakMap();
15
+ function hydrateKeyframes(valueName, keyframes, read) {
16
+ for (let i = 0; i < keyframes.length; i++) {
17
+ if (keyframes[i] === null) {
18
+ keyframes[i] = i === 0 ? read() : keyframes[i - 1];
19
+ }
20
+ if (typeof keyframes[i] === "number" && browserNumberValueTypes[valueName]) {
21
+ keyframes[i] = browserNumberValueTypes[valueName].transform(keyframes[i]);
22
+ }
23
+ }
24
+ if (!supportsPartialKeyframes() && keyframes.length < 2) {
25
+ keyframes.unshift(read());
26
+ }
19
27
  }
20
- const f = "easeOut";
21
- function u(a) {
22
- const i = o.get(a) || /* @__PURE__ */ new Map();
23
- return o.set(a, i), o.get(a);
28
+ const defaultEasing = "easeOut";
29
+ function getElementAnimationState(element) {
30
+ const animationState = state.get(element) || /* @__PURE__ */ new Map();
31
+ state.set(element, animationState);
32
+ return state.get(element);
24
33
  }
25
- class H {
26
- constructor(i, n, t, s) {
27
- const l = n.startsWith("--");
28
- this.setValue = l ? w : V, this.options = s, this.updateFinishedPromise(), T(typeof s.type != "string", `animateMini doesn't support "type" as a string. Did you mean to import { spring } from "framer-motion"?`);
29
- const r = u(i).get(n);
30
- r && r.stop();
31
- const g = () => n.startsWith("--") ? i.style.getPropertyValue(n) : window.getComputedStyle(i)[n];
32
- if (Array.isArray(t) || (t = [t]), M(n, t, g), F(s.type)) {
33
- const e = S(s, 100, s.type);
34
- s.ease = b() ? e.ease : f, s.duration = p(e.duration), s.type = "keyframes";
35
- } else
36
- s.ease = s.ease || f;
34
+ class NativeAnimation {
35
+ constructor(element, valueName, valueKeyframes, options) {
36
+ const isCSSVar = valueName.startsWith("--");
37
+ this.setValue = isCSSVar ? setCSSVar : setStyle;
38
+ this.options = options;
39
+ this.updateFinishedPromise();
40
+ invariant(typeof options.type !== "string", `animateMini doesn't support "type" as a string. Did you mean to import { spring } from "framer-motion"?`);
41
+ const existingAnimation = getElementAnimationState(element).get(valueName);
42
+ existingAnimation && existingAnimation.stop();
43
+ const readInitialKeyframe = () => {
44
+ return valueName.startsWith("--") ? element.style.getPropertyValue(valueName) : window.getComputedStyle(element)[valueName];
45
+ };
46
+ if (!Array.isArray(valueKeyframes)) {
47
+ valueKeyframes = [valueKeyframes];
48
+ }
49
+ hydrateKeyframes(valueName, valueKeyframes, readInitialKeyframe);
50
+ if (isGenerator(options.type)) {
51
+ const generatorOptions = createGeneratorEasing(options, 100, options.type);
52
+ options.ease = supportsLinearEasing() ? generatorOptions.ease : defaultEasing;
53
+ options.duration = secondsToMilliseconds(generatorOptions.duration);
54
+ options.type = "keyframes";
55
+ } else {
56
+ options.ease = options.ease || defaultEasing;
57
+ }
37
58
  this.removeAnimation = () => {
38
- var e;
39
- return (e = o.get(i)) === null || e === void 0 ? void 0 : e.delete(n);
59
+ var _a;
60
+ return (_a = state.get(element)) === null || _a === void 0 ? void 0 : _a.delete(valueName);
40
61
  };
41
- const h = () => {
42
- this.setValue(i, n, A(t, this.options)), this.cancel(), this.resolveFinishedPromise();
62
+ const onFinish = () => {
63
+ this.setValue(element, valueName, getFinalKeyframe(valueKeyframes, this.options));
64
+ this.cancel();
65
+ this.resolveFinishedPromise();
43
66
  };
44
- E() ? (this.animation = y(i, n, t, s), s.autoplay === !1 && this.animation.pause(), this.animation.onfinish = h, this.pendingTimeline && d(this.animation, this.pendingTimeline), u(i).set(n, this)) : h();
67
+ if (!supportsWaapi()) {
68
+ onFinish();
69
+ } else {
70
+ this.animation = startWaapiAnimation(element, valueName, valueKeyframes, options);
71
+ if (options.autoplay === false) {
72
+ this.animation.pause();
73
+ }
74
+ this.animation.onfinish = onFinish;
75
+ if (this.pendingTimeline) {
76
+ attachTimeline(this.animation, this.pendingTimeline);
77
+ }
78
+ getElementAnimationState(element).set(valueName, this);
79
+ }
45
80
  }
46
81
  get duration() {
47
- return c(this.options.duration || 300);
82
+ return millisecondsToSeconds(this.options.duration || 300);
48
83
  }
49
84
  get time() {
50
- var i;
51
- return this.animation ? c(((i = this.animation) === null || i === void 0 ? void 0 : i.currentTime) || 0) : 0;
85
+ var _a;
86
+ if (this.animation) {
87
+ return millisecondsToSeconds(((_a = this.animation) === null || _a === void 0 ? void 0 : _a.currentTime) || 0);
88
+ }
89
+ return 0;
52
90
  }
53
- set time(i) {
54
- this.animation && (this.animation.currentTime = p(i));
91
+ set time(newTime) {
92
+ if (this.animation) {
93
+ this.animation.currentTime = secondsToMilliseconds(newTime);
94
+ }
55
95
  }
56
96
  get speed() {
57
97
  return this.animation ? this.animation.playbackRate : 1;
58
98
  }
59
- set speed(i) {
60
- this.animation && (this.animation.playbackRate = i);
99
+ set speed(newSpeed) {
100
+ if (this.animation) {
101
+ this.animation.playbackRate = newSpeed;
102
+ }
61
103
  }
62
104
  get state() {
63
105
  return this.animation ? this.animation.playState : "finished";
@@ -66,13 +108,22 @@ class H {
66
108
  return this.animation ? this.animation.startTime : null;
67
109
  }
68
110
  play() {
69
- this.state === "finished" && this.updateFinishedPromise(), this.animation && this.animation.play();
111
+ if (this.state === "finished") {
112
+ this.updateFinishedPromise();
113
+ }
114
+ this.animation && this.animation.play();
70
115
  }
71
116
  pause() {
72
117
  this.animation && this.animation.pause();
73
118
  }
74
119
  stop() {
75
- !this.animation || this.state === "idle" || this.state === "finished" || (this.animation.commitStyles && this.animation.commitStyles(), this.cancel());
120
+ if (!this.animation || this.state === "idle" || this.state === "finished") {
121
+ return;
122
+ }
123
+ if (this.animation.commitStyles) {
124
+ this.animation.commitStyles();
125
+ }
126
+ this.cancel();
76
127
  }
77
128
  complete() {
78
129
  this.animation && this.animation.finish();
@@ -81,7 +132,7 @@ class H {
81
132
  this.removeAnimation();
82
133
  try {
83
134
  this.animation && this.animation.cancel();
84
- } catch {
135
+ } catch (e) {
85
136
  }
86
137
  }
87
138
  /**
@@ -89,18 +140,23 @@ class H {
89
140
  * resolves when the animation finishes at all but in a future update could/should
90
141
  * reject if its cancels.
91
142
  */
92
- then(i, n) {
93
- return this.currentFinishedPromise.then(i, n);
143
+ then(resolve, reject) {
144
+ return this.currentFinishedPromise.then(resolve, reject);
94
145
  }
95
146
  updateFinishedPromise() {
96
- this.currentFinishedPromise = new Promise((i) => {
97
- this.resolveFinishedPromise = i;
147
+ this.currentFinishedPromise = new Promise((resolve) => {
148
+ this.resolveFinishedPromise = resolve;
98
149
  });
99
150
  }
100
- attachTimeline(i) {
101
- return this.animation ? d(this.animation, i) : this.pendingTimeline = i, P;
151
+ attachTimeline(timeline) {
152
+ if (!this.animation) {
153
+ this.pendingTimeline = timeline;
154
+ } else {
155
+ attachTimeline(this.animation, timeline);
156
+ }
157
+ return noop;
102
158
  }
103
159
  }
104
160
  export {
105
- H as NativeAnimation
161
+ NativeAnimation
106
162
  };
@@ -1,24 +1,31 @@
1
- import { resolveElements as p } from "../../../render/dom/utils/resolve-element.mjs";
2
- import { invariant as v } from "../../../utils/errors.mjs";
3
- import { secondsToMilliseconds as s } from "../../../utils/time-conversion.mjs";
4
- import { getValueTransition as y } from "../../utils/get-value-transition.mjs";
5
- import { NativeAnimation as E } from "./NativeAnimation.mjs";
6
- function x(d, a, r, u) {
7
- const l = p(d, u), o = l.length;
8
- v(!!o, "No valid element provided.");
9
- const m = [];
10
- for (let n = 0; n < o; n++) {
11
- const c = l[n], t = { ...r };
12
- typeof t.delay == "function" && (t.delay = t.delay(n, o));
13
- for (const i in a) {
14
- const f = a[i], e = {
15
- ...y(r, i)
1
+ import { resolveElements } from "../../../render/dom/utils/resolve-element.mjs";
2
+ import { invariant } from "../../../utils/errors.mjs";
3
+ import { secondsToMilliseconds } from "../../../utils/time-conversion.mjs";
4
+ import { getValueTransition } from "../../utils/get-value-transition.mjs";
5
+ import { NativeAnimation } from "./NativeAnimation.mjs";
6
+ function animateElements(elementOrSelector, keyframes, options, scope) {
7
+ const elements = resolveElements(elementOrSelector, scope);
8
+ const numElements = elements.length;
9
+ invariant(Boolean(numElements), "No valid element provided.");
10
+ const animations = [];
11
+ for (let i = 0; i < numElements; i++) {
12
+ const element = elements[i];
13
+ const elementTransition = { ...options };
14
+ if (typeof elementTransition.delay === "function") {
15
+ elementTransition.delay = elementTransition.delay(i, numElements);
16
+ }
17
+ for (const valueName in keyframes) {
18
+ const valueKeyframes = keyframes[valueName];
19
+ const valueOptions = {
20
+ ...getValueTransition(options, valueName)
16
21
  };
17
- e.duration = e.duration ? s(e.duration) : e.duration, e.delay = s(e.delay || 0), m.push(new E(c, i, f, e));
22
+ valueOptions.duration = valueOptions.duration ? secondsToMilliseconds(valueOptions.duration) : valueOptions.duration;
23
+ valueOptions.delay = secondsToMilliseconds(valueOptions.delay || 0);
24
+ animations.push(new NativeAnimation(element, valueName, valueKeyframes, valueOptions));
18
25
  }
19
26
  }
20
- return m;
27
+ return animations;
21
28
  }
22
29
  export {
23
- x as animateElements
30
+ animateElements
24
31
  };
@@ -1,12 +1,13 @@
1
- import { GroupPlaybackControls as a } from "../../GroupPlaybackControls.mjs";
2
- import { animateElements as i } from "./animate-elements.mjs";
3
- const m = (t) => {
4
- function e(n, o, r) {
5
- return new a(i(n, o, r, t));
1
+ import { GroupPlaybackControls } from "../../GroupPlaybackControls.mjs";
2
+ import { animateElements } from "./animate-elements.mjs";
3
+ const createScopedWaapiAnimate = (scope) => {
4
+ function scopedAnimate(elementOrSelector, keyframes, options) {
5
+ return new GroupPlaybackControls(animateElements(elementOrSelector, keyframes, options, scope));
6
6
  }
7
- return e;
8
- }, s = /* @__PURE__ */ m();
7
+ return scopedAnimate;
8
+ };
9
+ const animateMini = /* @__PURE__ */ createScopedWaapiAnimate();
9
10
  export {
10
- s as animateMini,
11
- m as createScopedWaapiAnimate
11
+ animateMini,
12
+ createScopedWaapiAnimate
12
13
  };
@@ -1,27 +1,37 @@
1
- import { isBezierDefinition as u } from "../../../easing/utils/is-bezier-definition.mjs";
2
- import { generateLinearEasing as p } from "./utils/linear.mjs";
3
- import { supportsLinearEasing as n } from "./utils/supports-linear-easing.mjs";
4
- function s(e) {
5
- return !!(typeof e == "function" && n() || !e || typeof e == "string" && (e in o || n()) || u(e) || Array.isArray(e) && e.every(s));
1
+ import { isBezierDefinition } from "../../../easing/utils/is-bezier-definition.mjs";
2
+ import { generateLinearEasing } from "./utils/linear.mjs";
3
+ import { supportsLinearEasing } from "./utils/supports-linear-easing.mjs";
4
+ function isWaapiSupportedEasing(easing) {
5
+ return Boolean(typeof easing === "function" && supportsLinearEasing() || !easing || typeof easing === "string" && (easing in supportedWaapiEasing || supportsLinearEasing()) || isBezierDefinition(easing) || Array.isArray(easing) && easing.every(isWaapiSupportedEasing));
6
6
  }
7
- const r = ([e, t, i, a]) => `cubic-bezier(${e}, ${t}, ${i}, ${a})`, o = {
7
+ const cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;
8
+ const supportedWaapiEasing = {
8
9
  linear: "linear",
9
10
  ease: "ease",
10
11
  easeIn: "ease-in",
11
12
  easeOut: "ease-out",
12
13
  easeInOut: "ease-in-out",
13
- circIn: /* @__PURE__ */ r([0, 0.65, 0.55, 1]),
14
- circOut: /* @__PURE__ */ r([0.55, 0, 1, 0.45]),
15
- backIn: /* @__PURE__ */ r([0.31, 0.01, 0.66, -0.59]),
16
- backOut: /* @__PURE__ */ r([0.33, 1.53, 0.69, 0.99])
14
+ circIn: /* @__PURE__ */ cubicBezierAsString([0, 0.65, 0.55, 1]),
15
+ circOut: /* @__PURE__ */ cubicBezierAsString([0.55, 0, 1, 0.45]),
16
+ backIn: /* @__PURE__ */ cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),
17
+ backOut: /* @__PURE__ */ cubicBezierAsString([0.33, 1.53, 0.69, 0.99])
17
18
  };
18
- function c(e, t) {
19
- if (e)
20
- return typeof e == "function" && n() ? p(e, t) : u(e) ? r(e) : Array.isArray(e) ? e.map((i) => c(i, t) || o.easeOut) : o[e];
19
+ function mapEasingToNativeEasing(easing, duration) {
20
+ if (!easing) {
21
+ return void 0;
22
+ } else if (typeof easing === "function" && supportsLinearEasing()) {
23
+ return generateLinearEasing(easing, duration);
24
+ } else if (isBezierDefinition(easing)) {
25
+ return cubicBezierAsString(easing);
26
+ } else if (Array.isArray(easing)) {
27
+ return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) || supportedWaapiEasing.easeOut);
28
+ } else {
29
+ return supportedWaapiEasing[easing];
30
+ }
21
31
  }
22
32
  export {
23
- r as cubicBezierAsString,
24
- s as isWaapiSupportedEasing,
25
- c as mapEasingToNativeEasing,
26
- o as supportedWaapiEasing
33
+ cubicBezierAsString,
34
+ isWaapiSupportedEasing,
35
+ mapEasingToNativeEasing,
36
+ supportedWaapiEasing
27
37
  };
@@ -1,17 +1,20 @@
1
- import { mapEasingToNativeEasing as p } from "./easing.mjs";
2
- function y(e, t, o, { delay: s = 0, duration: r = 300, repeat: f = 0, repeatType: l = "loop", ease: m, times: n } = {}) {
3
- const i = { [t]: o };
4
- n && (i.offset = n);
5
- const a = p(m, r);
6
- return Array.isArray(a) && (i.easing = a), e.animate(i, {
7
- delay: s,
8
- duration: r,
9
- easing: Array.isArray(a) ? "linear" : a,
1
+ import { mapEasingToNativeEasing } from "./easing.mjs";
2
+ function startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = "loop", ease, times } = {}) {
3
+ const keyframeOptions = { [valueName]: keyframes };
4
+ if (times)
5
+ keyframeOptions.offset = times;
6
+ const easing = mapEasingToNativeEasing(ease, duration);
7
+ if (Array.isArray(easing))
8
+ keyframeOptions.easing = easing;
9
+ return element.animate(keyframeOptions, {
10
+ delay,
11
+ duration,
12
+ easing: !Array.isArray(easing) ? easing : "linear",
10
13
  fill: "both",
11
- iterations: f + 1,
12
- direction: l === "reverse" ? "alternate" : "normal"
14
+ iterations: repeat + 1,
15
+ direction: repeatType === "reverse" ? "alternate" : "normal"
13
16
  });
14
17
  }
15
18
  export {
16
- y as startWaapiAnimation
19
+ startWaapiAnimation
17
20
  };
@@ -1,6 +1,7 @@
1
- function n(e, i) {
2
- e.timeline = i, e.onfinish = null;
1
+ function attachTimeline(animation, timeline) {
2
+ animation.timeline = timeline;
3
+ animation.onfinish = null;
3
4
  }
4
5
  export {
5
- n as attachTimeline
6
+ attachTimeline
6
7
  };
@@ -1,8 +1,9 @@
1
- const i = (n) => n !== null;
2
- function r(n, { repeat: o, repeatType: s = "loop" }, e) {
3
- const l = n.filter(i), t = o && s !== "loop" && o % 2 === 1 ? 0 : l.length - 1;
4
- return !t || e === void 0 ? l[t] : e;
1
+ const isNotNull = (value) => value !== null;
2
+ function getFinalKeyframe(keyframes, { repeat, repeatType = "loop" }, finalKeyframe) {
3
+ const resolvedKeyframes = keyframes.filter(isNotNull);
4
+ const index = repeat && repeatType !== "loop" && repeat % 2 === 1 ? 0 : resolvedKeyframes.length - 1;
5
+ return !index || finalKeyframe === void 0 ? resolvedKeyframes[index] : finalKeyframe;
5
6
  }
6
7
  export {
7
- r as getFinalKeyframe
8
+ getFinalKeyframe
8
9
  };
@@ -1,11 +1,13 @@
1
- import { progress as s } from "../../../../utils/progress.mjs";
2
- const i = 10, g = (o, e) => {
3
- let t = "";
4
- const r = Math.max(Math.round(e / i), 2);
5
- for (let n = 0; n < r; n++)
6
- t += o(s(0, r - 1, n)) + ", ";
7
- return `linear(${t.substring(0, t.length - 2)})`;
1
+ import { progress } from "../../../../utils/progress.mjs";
2
+ const resolution = 10;
3
+ const generateLinearEasing = (easing, duration) => {
4
+ let points = "";
5
+ const numPoints = Math.max(Math.round(duration / resolution), 2);
6
+ for (let i = 0; i < numPoints; i++) {
7
+ points += easing(progress(0, numPoints - 1, i)) + ", ";
8
+ }
9
+ return `linear(${points.substring(0, points.length - 2)})`;
8
10
  };
9
11
  export {
10
- g as generateLinearEasing
12
+ generateLinearEasing
11
13
  };
@@ -1,12 +1,12 @@
1
- import { memo as e } from "../../../../utils/memo.mjs";
2
- import { supportsFlags as p } from "./supports-flags.mjs";
3
- function i(r, m) {
4
- const t = e(r);
1
+ import { memo } from "../../../../utils/memo.mjs";
2
+ import { supportsFlags } from "./supports-flags.mjs";
3
+ function memoSupports(callback, supportsFlag) {
4
+ const memoized = memo(callback);
5
5
  return () => {
6
- var o;
7
- return (o = p[m]) !== null && o !== void 0 ? o : t();
6
+ var _a;
7
+ return (_a = supportsFlags[supportsFlag]) !== null && _a !== void 0 ? _a : memoized();
8
8
  };
9
9
  }
10
10
  export {
11
- i as memoSupports
11
+ memoSupports
12
12
  };
@@ -1,10 +1,10 @@
1
- function n(t, e, s) {
2
- t.style.setProperty(`--${e}`, s);
1
+ function setCSSVar(element, name, value) {
2
+ element.style.setProperty(`--${name}`, value);
3
3
  }
4
- function o(t, e, s) {
5
- t.style[e] = s;
4
+ function setStyle(element, name, value) {
5
+ element.style[name] = value;
6
6
  }
7
7
  export {
8
- n as setCSSVar,
9
- o as setStyle
8
+ setCSSVar,
9
+ setStyle
10
10
  };
@@ -1,6 +1,6 @@
1
- const n = {
1
+ const supportsFlags = {
2
2
  linearEasing: void 0
3
3
  };
4
4
  export {
5
- n as supportsFlags
5
+ supportsFlags
6
6
  };
@@ -1,12 +1,12 @@
1
- import { memoSupports as e } from "./memo-supports.mjs";
2
- const a = /* @__PURE__ */ e(() => {
1
+ import { memoSupports } from "./memo-supports.mjs";
2
+ const supportsLinearEasing = /* @__PURE__ */ memoSupports(() => {
3
3
  try {
4
4
  document.createElement("div").animate({ opacity: 0 }, { easing: "linear(0, 1)" });
5
- } catch {
6
- return !1;
5
+ } catch (e) {
6
+ return false;
7
7
  }
8
- return !0;
8
+ return true;
9
9
  }, "linearEasing");
10
10
  export {
11
- a as supportsLinearEasing
11
+ supportsLinearEasing
12
12
  };
@@ -1,12 +1,12 @@
1
- import { memo as e } from "../../../../utils/memo.mjs";
2
- const a = /* @__PURE__ */ e(() => {
1
+ import { memo } from "../../../../utils/memo.mjs";
2
+ const supportsPartialKeyframes = /* @__PURE__ */ memo(() => {
3
3
  try {
4
4
  document.createElement("div").animate({ opacity: [1] });
5
- } catch {
6
- return !1;
5
+ } catch (e) {
6
+ return false;
7
7
  }
8
- return !0;
8
+ return true;
9
9
  });
10
10
  export {
11
- a as supportsPartialKeyframes
11
+ supportsPartialKeyframes
12
12
  };
@@ -1,5 +1,5 @@
1
- import { memo as t } from "../../../../utils/memo.mjs";
2
- const e = /* @__PURE__ */ t(() => Object.hasOwnProperty.call(Element.prototype, "animate"));
1
+ import { memo } from "../../../../utils/memo.mjs";
2
+ const supportsWaapi = /* @__PURE__ */ memo(() => Object.hasOwnProperty.call(Element.prototype, "animate"));
3
3
  export {
4
- e as supportsWaapi
4
+ supportsWaapi
5
5
  };
@@ -1,37 +1,67 @@
1
- import { spring as L } from "./spring/index.mjs";
2
- import { calcGeneratorVelocity as R } from "./utils/velocity.mjs";
3
- function $({ keyframes: g, velocity: B = 0, power: M = 0.8, timeConstant: b = 325, bounceDamping: k = 10, bounceStiffness: F = 500, modifyTarget: l, min: t, max: a, restDelta: f = 0.5, restSpeed: O }) {
4
- const s = g[0], n = {
5
- done: !1,
6
- value: s
7
- }, C = (e) => t !== void 0 && e < t || a !== void 0 && e > a, D = (e) => t === void 0 ? a : a === void 0 || Math.abs(t - e) < Math.abs(a - e) ? t : a;
8
- let c = M * B;
9
- const d = s + c, u = l === void 0 ? d : l(d);
10
- u !== d && (c = u - s);
11
- const p = (e) => -c * Math.exp(-e / b), h = (e) => u + p(e), y = (e) => {
12
- const o = p(e), G = h(e);
13
- n.done = Math.abs(o) <= f, n.value = n.done ? u : G;
1
+ import { spring } from "./spring/index.mjs";
2
+ import { calcGeneratorVelocity } from "./utils/velocity.mjs";
3
+ function inertia({ keyframes, velocity = 0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed }) {
4
+ const origin = keyframes[0];
5
+ const state = {
6
+ done: false,
7
+ value: origin
14
8
  };
15
- let r, i;
16
- const v = (e) => {
17
- C(n.value) && (r = e, i = L({
18
- keyframes: [n.value, D(n.value)],
19
- velocity: R(h, e, n.value),
9
+ const isOutOfBounds = (v) => min !== void 0 && v < min || max !== void 0 && v > max;
10
+ const nearestBoundary = (v) => {
11
+ if (min === void 0)
12
+ return max;
13
+ if (max === void 0)
14
+ return min;
15
+ return Math.abs(min - v) < Math.abs(max - v) ? min : max;
16
+ };
17
+ let amplitude = power * velocity;
18
+ const ideal = origin + amplitude;
19
+ const target = modifyTarget === void 0 ? ideal : modifyTarget(ideal);
20
+ if (target !== ideal)
21
+ amplitude = target - origin;
22
+ const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);
23
+ const calcLatest = (t) => target + calcDelta(t);
24
+ const applyFriction = (t) => {
25
+ const delta = calcDelta(t);
26
+ const latest = calcLatest(t);
27
+ state.done = Math.abs(delta) <= restDelta;
28
+ state.value = state.done ? target : latest;
29
+ };
30
+ let timeReachedBoundary;
31
+ let spring$1;
32
+ const checkCatchBoundary = (t) => {
33
+ if (!isOutOfBounds(state.value))
34
+ return;
35
+ timeReachedBoundary = t;
36
+ spring$1 = spring({
37
+ keyframes: [state.value, nearestBoundary(state.value)],
38
+ velocity: calcGeneratorVelocity(calcLatest, t, state.value),
20
39
  // TODO: This should be passing * 1000
21
- damping: k,
22
- stiffness: F,
23
- restDelta: f,
24
- restSpeed: O
25
- }));
40
+ damping: bounceDamping,
41
+ stiffness: bounceStiffness,
42
+ restDelta,
43
+ restSpeed
44
+ });
26
45
  };
27
- return v(0), {
46
+ checkCatchBoundary(0);
47
+ return {
28
48
  calculatedDuration: null,
29
- next: (e) => {
30
- let o = !1;
31
- return !i && r === void 0 && (o = !0, y(e), v(e)), r !== void 0 && e >= r ? i.next(e - r) : (!o && y(e), n);
49
+ next: (t) => {
50
+ let hasUpdatedFrame = false;
51
+ if (!spring$1 && timeReachedBoundary === void 0) {
52
+ hasUpdatedFrame = true;
53
+ applyFriction(t);
54
+ checkCatchBoundary(t);
55
+ }
56
+ if (timeReachedBoundary !== void 0 && t >= timeReachedBoundary) {
57
+ return spring$1.next(t - timeReachedBoundary);
58
+ } else {
59
+ !hasUpdatedFrame && applyFriction(t);
60
+ return state;
61
+ }
32
62
  }
33
63
  };
34
64
  }
35
65
  export {
36
- $ as inertia
66
+ inertia
37
67
  };