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,106 +1,153 @@
1
- import { createGeneratorEasing as Q } from "../../easing/utils/create-generator-easing.mjs";
2
- import { defaultOffset as R } from "../../utils/offsets/default.mjs";
3
- import { fillOffset as U } from "../../utils/offsets/fill.mjs";
4
- import { progress as W } from "../../utils/progress.mjs";
5
- import { secondsToMilliseconds as X } from "../../utils/time-conversion.mjs";
6
- import { isMotionValue as Y } from "../../value/utils/is-motion-value.mjs";
7
- import { resolveSubjects as Z } from "../animate/resolve-subjects.mjs";
8
- import { isGenerator as _ } from "../generators/utils/is-generator.mjs";
9
- import { calcNextTime as q } from "./utils/calc-time.mjs";
10
- import { addKeyframes as $ } from "./utils/edit.mjs";
11
- import { compareByTime as ee } from "./utils/sort.mjs";
12
- const te = "easeInOut";
13
- function ye(e, { defaultTransition: t = {}, ...C } = {}, F, A) {
14
- const z = t.duration || 0.3, b = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Map(), H = {}, S = /* @__PURE__ */ new Map();
15
- let j = 0, l = 0, v = 0;
16
- for (let p = 0; p < e.length; p++) {
17
- const i = e[p];
18
- if (typeof i == "string") {
19
- S.set(i, l);
1
+ import { createGeneratorEasing } from "../../easing/utils/create-generator-easing.mjs";
2
+ import { defaultOffset } from "../../utils/offsets/default.mjs";
3
+ import { fillOffset } from "../../utils/offsets/fill.mjs";
4
+ import { progress } from "../../utils/progress.mjs";
5
+ import { secondsToMilliseconds } from "../../utils/time-conversion.mjs";
6
+ import { isMotionValue } from "../../value/utils/is-motion-value.mjs";
7
+ import { resolveSubjects } from "../animate/resolve-subjects.mjs";
8
+ import { isGenerator } from "../generators/utils/is-generator.mjs";
9
+ import { calcNextTime } from "./utils/calc-time.mjs";
10
+ import { addKeyframes } from "./utils/edit.mjs";
11
+ import { compareByTime } from "./utils/sort.mjs";
12
+ const defaultSegmentEasing = "easeInOut";
13
+ function createAnimationsFromSequence(sequence, { defaultTransition = {}, ...sequenceTransition } = {}, scope, generators) {
14
+ const defaultDuration = defaultTransition.duration || 0.3;
15
+ const animationDefinitions = /* @__PURE__ */ new Map();
16
+ const sequences = /* @__PURE__ */ new Map();
17
+ const elementCache = {};
18
+ const timeLabels = /* @__PURE__ */ new Map();
19
+ let prevTime = 0;
20
+ let currentTime = 0;
21
+ let totalDuration = 0;
22
+ for (let i = 0; i < sequence.length; i++) {
23
+ const segment = sequence[i];
24
+ if (typeof segment === "string") {
25
+ timeLabels.set(segment, currentTime);
20
26
  continue;
21
- } else if (!Array.isArray(i)) {
22
- S.set(i.name, q(l, i.at, j, S));
27
+ } else if (!Array.isArray(segment)) {
28
+ timeLabels.set(segment.name, calcNextTime(currentTime, segment.at, prevTime, timeLabels));
23
29
  continue;
24
30
  }
25
- let [m, r, o = {}] = i;
26
- o.at !== void 0 && (l = q(l, o.at, j, S));
27
- let s = 0;
28
- const h = (a, u, f, d = 0, y = 0) => {
29
- const n = ne(a), { delay: T = 0, times: g = R(n), type: x = "keyframes", ...J } = u;
30
- let { ease: D = t.ease || "easeOut", duration: c } = u;
31
- const O = typeof T == "function" ? T(d, y) : T, k = n.length, E = _(x) ? x : A == null ? void 0 : A[x];
32
- if (k <= 2 && E) {
33
- let G = 100;
34
- if (k === 2 && ie(n)) {
35
- const P = n[1] - n[0];
36
- G = Math.abs(P);
31
+ let [subject, keyframes, transition = {}] = segment;
32
+ if (transition.at !== void 0) {
33
+ currentTime = calcNextTime(currentTime, transition.at, prevTime, timeLabels);
34
+ }
35
+ let maxDuration = 0;
36
+ const resolveValueSequence = (valueKeyframes, valueTransition, valueSequence, elementIndex = 0, numSubjects = 0) => {
37
+ const valueKeyframesAsList = keyframesAsList(valueKeyframes);
38
+ const { delay = 0, times = defaultOffset(valueKeyframesAsList), type = "keyframes", ...remainingTransition } = valueTransition;
39
+ let { ease = defaultTransition.ease || "easeOut", duration } = valueTransition;
40
+ const calculatedDelay = typeof delay === "function" ? delay(elementIndex, numSubjects) : delay;
41
+ const numKeyframes = valueKeyframesAsList.length;
42
+ const createGenerator = isGenerator(type) ? type : generators === null || generators === void 0 ? void 0 : generators[type];
43
+ if (numKeyframes <= 2 && createGenerator) {
44
+ let absoluteDelta = 100;
45
+ if (numKeyframes === 2 && isNumberKeyframesArray(valueKeyframesAsList)) {
46
+ const delta = valueKeyframesAsList[1] - valueKeyframesAsList[0];
47
+ absoluteDelta = Math.abs(delta);
48
+ }
49
+ const springTransition = { ...remainingTransition };
50
+ if (duration !== void 0) {
51
+ springTransition.duration = secondsToMilliseconds(duration);
37
52
  }
38
- const L = { ...J };
39
- c !== void 0 && (L.duration = X(c));
40
- const N = Q(L, G, E);
41
- D = N.ease, c = N.duration;
53
+ const springEasing = createGeneratorEasing(springTransition, absoluteDelta, createGenerator);
54
+ ease = springEasing.ease;
55
+ duration = springEasing.duration;
42
56
  }
43
- c ?? (c = z);
44
- const K = l + O, V = K + c;
45
- g.length === 1 && g[0] === 0 && (g[1] = 1);
46
- const w = g.length - n.length;
47
- w > 0 && U(g, w), n.length === 1 && n.unshift(null), $(f, n, D, g, K, V), s = Math.max(O + c, s), v = Math.max(V, v);
57
+ duration !== null && duration !== void 0 ? duration : duration = defaultDuration;
58
+ const startTime = currentTime + calculatedDelay;
59
+ const targetTime = startTime + duration;
60
+ if (times.length === 1 && times[0] === 0) {
61
+ times[1] = 1;
62
+ }
63
+ const remainder = times.length - valueKeyframesAsList.length;
64
+ remainder > 0 && fillOffset(times, remainder);
65
+ valueKeyframesAsList.length === 1 && valueKeyframesAsList.unshift(null);
66
+ addKeyframes(valueSequence, valueKeyframesAsList, ease, times, startTime, targetTime);
67
+ maxDuration = Math.max(calculatedDelay + duration, maxDuration);
68
+ totalDuration = Math.max(targetTime, totalDuration);
48
69
  };
49
- if (Y(m)) {
50
- const a = I(m, M);
51
- h(r, o, B("default", a));
70
+ if (isMotionValue(subject)) {
71
+ const subjectSequence = getSubjectSequence(subject, sequences);
72
+ resolveValueSequence(keyframes, transition, getValueSequence("default", subjectSequence));
52
73
  } else {
53
- const a = Z(m, r, F, H), u = a.length;
54
- for (let f = 0; f < u; f++) {
55
- r = r, o = o;
56
- const d = a[f], y = I(d, M);
57
- for (const n in r)
58
- h(r[n], oe(o, n), B(n, y), f, u);
74
+ const subjects = resolveSubjects(subject, keyframes, scope, elementCache);
75
+ const numSubjects = subjects.length;
76
+ for (let subjectIndex = 0; subjectIndex < numSubjects; subjectIndex++) {
77
+ keyframes = keyframes;
78
+ transition = transition;
79
+ const thisSubject = subjects[subjectIndex];
80
+ const subjectSequence = getSubjectSequence(thisSubject, sequences);
81
+ for (const key in keyframes) {
82
+ resolveValueSequence(keyframes[key], getValueTransition(transition, key), getValueSequence(key, subjectSequence), subjectIndex, numSubjects);
83
+ }
59
84
  }
60
85
  }
61
- j = l, l += s;
86
+ prevTime = currentTime;
87
+ currentTime += maxDuration;
62
88
  }
63
- return M.forEach((p, i) => {
64
- for (const m in p) {
65
- const r = p[m];
66
- r.sort(ee);
67
- const o = [], s = [], h = [];
68
- for (let u = 0; u < r.length; u++) {
69
- const { at: f, value: d, easing: y } = r[u];
70
- o.push(d), s.push(W(0, v, f)), h.push(y || "easeOut");
89
+ sequences.forEach((valueSequences, element) => {
90
+ for (const key in valueSequences) {
91
+ const valueSequence = valueSequences[key];
92
+ valueSequence.sort(compareByTime);
93
+ const keyframes = [];
94
+ const valueOffset = [];
95
+ const valueEasing = [];
96
+ for (let i = 0; i < valueSequence.length; i++) {
97
+ const { at, value, easing } = valueSequence[i];
98
+ keyframes.push(value);
99
+ valueOffset.push(progress(0, totalDuration, at));
100
+ valueEasing.push(easing || "easeOut");
101
+ }
102
+ if (valueOffset[0] !== 0) {
103
+ valueOffset.unshift(0);
104
+ keyframes.unshift(keyframes[0]);
105
+ valueEasing.unshift(defaultSegmentEasing);
106
+ }
107
+ if (valueOffset[valueOffset.length - 1] !== 1) {
108
+ valueOffset.push(1);
109
+ keyframes.push(null);
110
+ }
111
+ if (!animationDefinitions.has(element)) {
112
+ animationDefinitions.set(element, {
113
+ keyframes: {},
114
+ transition: {}
115
+ });
71
116
  }
72
- s[0] !== 0 && (s.unshift(0), o.unshift(o[0]), h.unshift(te)), s[s.length - 1] !== 1 && (s.push(1), o.push(null)), b.has(i) || b.set(i, {
73
- keyframes: {},
74
- transition: {}
75
- });
76
- const a = b.get(i);
77
- a.keyframes[m] = o, a.transition[m] = {
78
- ...t,
79
- duration: v,
80
- ease: h,
81
- times: s,
82
- ...C
117
+ const definition = animationDefinitions.get(element);
118
+ definition.keyframes[key] = keyframes;
119
+ definition.transition[key] = {
120
+ ...defaultTransition,
121
+ duration: totalDuration,
122
+ ease: valueEasing,
123
+ times: valueOffset,
124
+ ...sequenceTransition
83
125
  };
84
126
  }
85
- }), b;
127
+ });
128
+ return animationDefinitions;
86
129
  }
87
- function I(e, t) {
88
- return !t.has(e) && t.set(e, {}), t.get(e);
130
+ function getSubjectSequence(subject, sequences) {
131
+ !sequences.has(subject) && sequences.set(subject, {});
132
+ return sequences.get(subject);
89
133
  }
90
- function B(e, t) {
91
- return t[e] || (t[e] = []), t[e];
134
+ function getValueSequence(name, sequences) {
135
+ if (!sequences[name])
136
+ sequences[name] = [];
137
+ return sequences[name];
92
138
  }
93
- function ne(e) {
94
- return Array.isArray(e) ? e : [e];
139
+ function keyframesAsList(keyframes) {
140
+ return Array.isArray(keyframes) ? keyframes : [keyframes];
95
141
  }
96
- function oe(e, t) {
97
- return e && e[t] ? {
98
- ...e,
99
- ...e[t]
100
- } : { ...e };
142
+ function getValueTransition(transition, key) {
143
+ return transition && transition[key] ? {
144
+ ...transition,
145
+ ...transition[key]
146
+ } : { ...transition };
101
147
  }
102
- const se = (e) => typeof e == "number", ie = (e) => e.every(se);
148
+ const isNumber = (keyframe) => typeof keyframe === "number";
149
+ const isNumberKeyframesArray = (keyframes) => keyframes.every(isNumber);
103
150
  export {
104
- ye as createAnimationsFromSequence,
105
- oe as getValueTransition
151
+ createAnimationsFromSequence,
152
+ getValueTransition
106
153
  };
@@ -1,7 +1,15 @@
1
- function s(t, r, a, i) {
2
- var e;
3
- return typeof r == "number" ? r : r.startsWith("-") || r.startsWith("+") ? Math.max(0, t + parseFloat(r)) : r === "<" ? a : (e = i.get(r)) !== null && e !== void 0 ? e : t;
1
+ function calcNextTime(current, next, prev, labels) {
2
+ var _a;
3
+ if (typeof next === "number") {
4
+ return next;
5
+ } else if (next.startsWith("-") || next.startsWith("+")) {
6
+ return Math.max(0, current + parseFloat(next));
7
+ } else if (next === "<") {
8
+ return prev;
9
+ } else {
10
+ return (_a = labels.get(next)) !== null && _a !== void 0 ? _a : current;
11
+ }
4
12
  }
5
13
  export {
6
- s as calcNextTime
14
+ calcNextTime
7
15
  };
@@ -1,22 +1,26 @@
1
- import { getEasingForSegment as e } from "../../../easing/utils/get-easing-for-segment.mjs";
2
- import { removeItem as g } from "../../../utils/array.mjs";
3
- import { mixNumber as n } from "../../../utils/mix/number.mjs";
4
- function l(t, f, a) {
5
- for (let o = 0; o < t.length; o++) {
6
- const r = t[o];
7
- r.at > f && r.at < a && (g(t, r), o--);
1
+ import { getEasingForSegment } from "../../../easing/utils/get-easing-for-segment.mjs";
2
+ import { removeItem } from "../../../utils/array.mjs";
3
+ import { mixNumber } from "../../../utils/mix/number.mjs";
4
+ function eraseKeyframes(sequence, startTime, endTime) {
5
+ for (let i = 0; i < sequence.length; i++) {
6
+ const keyframe = sequence[i];
7
+ if (keyframe.at > startTime && keyframe.at < endTime) {
8
+ removeItem(sequence, keyframe);
9
+ i--;
10
+ }
8
11
  }
9
12
  }
10
- function u(t, f, a, o, r, i) {
11
- l(t, r, i);
12
- for (let m = 0; m < f.length; m++)
13
- t.push({
14
- value: f[m],
15
- at: n(r, i, o[m]),
16
- easing: e(a, m)
13
+ function addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) {
14
+ eraseKeyframes(sequence, startTime, endTime);
15
+ for (let i = 0; i < keyframes.length; i++) {
16
+ sequence.push({
17
+ value: keyframes[i],
18
+ at: mixNumber(startTime, endTime, offset[i]),
19
+ easing: getEasingForSegment(easing, i)
17
20
  });
21
+ }
18
22
  }
19
23
  export {
20
- u as addKeyframes,
21
- l as eraseKeyframes
24
+ addKeyframes,
25
+ eraseKeyframes
22
26
  };
@@ -1,6 +1,14 @@
1
- function t(e, r) {
2
- return e.at === r.at ? e.value === null ? 1 : r.value === null ? -1 : 0 : e.at - r.at;
1
+ function compareByTime(a, b) {
2
+ if (a.at === b.at) {
3
+ if (a.value === null)
4
+ return 1;
5
+ if (b.value === null)
6
+ return -1;
7
+ return 0;
8
+ } else {
9
+ return a.at - b.at;
10
+ }
3
11
  }
4
12
  export {
5
- t as compareByTime
13
+ compareByTime
6
14
  };
@@ -1,10 +1,10 @@
1
- import { isSVGElement as r } from "../../render/dom/utils/is-svg-element.mjs";
2
- import { SVGVisualElement as s } from "../../render/svg/SVGVisualElement.mjs";
3
- import { HTMLVisualElement as a } from "../../render/html/HTMLVisualElement.mjs";
4
- import { visualElementStore as o } from "../../render/store.mjs";
5
- import { ObjectVisualElement as l } from "../../render/object/ObjectVisualElement.mjs";
6
- function f(t) {
7
- const n = {
1
+ import { isSVGElement } from "../../render/dom/utils/is-svg-element.mjs";
2
+ import { SVGVisualElement } from "../../render/svg/SVGVisualElement.mjs";
3
+ import { HTMLVisualElement } from "../../render/html/HTMLVisualElement.mjs";
4
+ import { visualElementStore } from "../../render/store.mjs";
5
+ import { ObjectVisualElement } from "../../render/object/ObjectVisualElement.mjs";
6
+ function createDOMVisualElement(element) {
7
+ const options = {
8
8
  presenceContext: null,
9
9
  props: {},
10
10
  visualState: {
@@ -17,11 +17,13 @@ function f(t) {
17
17
  },
18
18
  latestValues: {}
19
19
  }
20
- }, e = r(t) ? new s(n) : new a(n);
21
- e.mount(t), o.set(t, e);
20
+ };
21
+ const node = isSVGElement(element) ? new SVGVisualElement(options) : new HTMLVisualElement(options);
22
+ node.mount(element);
23
+ visualElementStore.set(element, node);
22
24
  }
23
- function V(t) {
24
- const n = {
25
+ function createObjectVisualElement(subject) {
26
+ const options = {
25
27
  presenceContext: null,
26
28
  props: {},
27
29
  visualState: {
@@ -30,10 +32,12 @@ function V(t) {
30
32
  },
31
33
  latestValues: {}
32
34
  }
33
- }, e = new l(n);
34
- e.mount(t), o.set(t, e);
35
+ };
36
+ const node = new ObjectVisualElement(options);
37
+ node.mount(subject);
38
+ visualElementStore.set(subject, node);
35
39
  }
36
40
  export {
37
- f as createDOMVisualElement,
38
- V as createObjectVisualElement
41
+ createDOMVisualElement,
42
+ createObjectVisualElement
39
43
  };
@@ -1,22 +1,33 @@
1
- import { transformProps as s } from "../../render/html/utils/transform.mjs";
2
- const r = {
1
+ import { transformProps } from "../../render/html/utils/transform.mjs";
2
+ const underDampedSpring = {
3
3
  type: "spring",
4
4
  stiffness: 500,
5
5
  damping: 25,
6
6
  restSpeed: 10
7
- }, n = (t) => ({
7
+ };
8
+ const criticallyDampedSpring = (target) => ({
8
9
  type: "spring",
9
10
  stiffness: 550,
10
- damping: t === 0 ? 2 * Math.sqrt(550) : 30,
11
+ damping: target === 0 ? 2 * Math.sqrt(550) : 30,
11
12
  restSpeed: 10
12
- }), i = {
13
+ });
14
+ const keyframesTransition = {
13
15
  type: "keyframes",
14
16
  duration: 0.8
15
- }, a = {
17
+ };
18
+ const ease = {
16
19
  type: "keyframes",
17
20
  ease: [0.25, 0.1, 0.35, 1],
18
21
  duration: 0.3
19
- }, o = (t, { keyframes: e }) => e.length > 2 ? i : s.has(t) ? t.startsWith("scale") ? n(e[1]) : r : a;
22
+ };
23
+ const getDefaultTransition = (valueKey, { keyframes }) => {
24
+ if (keyframes.length > 2) {
25
+ return keyframesTransition;
26
+ } else if (transformProps.has(valueKey)) {
27
+ return valueKey.startsWith("scale") ? criticallyDampedSpring(keyframes[1]) : underDampedSpring;
28
+ }
29
+ return ease;
30
+ };
20
31
  export {
21
- o as getDefaultTransition
32
+ getDefaultTransition
22
33
  };
@@ -1,6 +1,6 @@
1
- function d(e, u) {
2
- return e ? e[u] || e.default || e : void 0;
1
+ function getValueTransition(transition, key) {
2
+ return transition ? transition[key] || transition["default"] || transition : void 0;
3
3
  }
4
4
  export {
5
- d as getValueTransition
5
+ getValueTransition
6
6
  };
@@ -1,7 +1,16 @@
1
- import { complex as e } from "../../value/types/complex/index.mjs";
2
- const n = (r, t) => t === "zIndex" ? !1 : !!(typeof r == "number" || Array.isArray(r) || typeof r == "string" && // It's animatable if we have a string
3
- (e.test(r) || r === "0") && // And it contains numbers and/or colors
4
- !r.startsWith("url("));
1
+ import { complex } from "../../value/types/complex/index.mjs";
2
+ const isAnimatable = (value, name) => {
3
+ if (name === "zIndex")
4
+ return false;
5
+ if (typeof value === "number" || Array.isArray(value))
6
+ return true;
7
+ if (typeof value === "string" && // It's animatable if we have a string
8
+ (complex.test(value) || value === "0") && // And it contains numbers and/or colors
9
+ !value.startsWith("url(")) {
10
+ return true;
11
+ }
12
+ return false;
13
+ };
5
14
  export {
6
- n as isAnimatable
15
+ isAnimatable
7
16
  };
@@ -1,6 +1,6 @@
1
- function n(t) {
2
- return t !== null && typeof t == "object" && typeof t.start == "function";
1
+ function isAnimationControls(v) {
2
+ return v !== null && typeof v === "object" && typeof v.start === "function";
3
3
  }
4
4
  export {
5
- n as isAnimationControls
5
+ isAnimationControls
6
6
  };
@@ -1,6 +1,6 @@
1
- function t(r) {
2
- return typeof r == "object" && !Array.isArray(r);
1
+ function isDOMKeyframes(keyframes) {
2
+ return typeof keyframes === "object" && !Array.isArray(keyframes);
3
3
  }
4
4
  export {
5
- t as isDOMKeyframes
5
+ isDOMKeyframes
6
6
  };
@@ -1,4 +1,6 @@
1
- const e = (r) => Array.isArray(r);
1
+ const isKeyframesTarget = (v) => {
2
+ return Array.isArray(v);
3
+ };
2
4
  export {
3
- e as isKeyframesTarget
5
+ isKeyframesTarget
4
6
  };
@@ -1,7 +1,13 @@
1
- import { isZeroValueString as n } from "../../utils/is-zero-value-string.mjs";
2
- function t(r) {
3
- return typeof r == "number" ? r === 0 : r !== null ? r === "none" || r === "0" || n(r) : !0;
1
+ import { isZeroValueString } from "../../utils/is-zero-value-string.mjs";
2
+ function isNone(value) {
3
+ if (typeof value === "number") {
4
+ return value === 0;
5
+ } else if (value !== null) {
6
+ return value === "none" || value === "0" || isZeroValueString(value);
7
+ } else {
8
+ return true;
9
+ }
4
10
  }
5
11
  export {
6
- t as isNone
12
+ isNone
7
13
  };
@@ -1,6 +1,6 @@
1
- function g({ when: r, delay: t, delayChildren: a, staggerChildren: n, staggerDirection: i, repeat: l, repeatType: d, repeatDelay: p, from: s, elapsed: y, ...e }) {
2
- return !!Object.keys(e).length;
1
+ function isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {
2
+ return !!Object.keys(transition).length;
3
3
  }
4
4
  export {
5
- g as isTransitionDefined
5
+ isTransitionDefined
6
6
  };
@@ -1,24 +1,26 @@
1
- import { easingDefinitionToFunction as g } from "../../easing/utils/map.mjs";
2
- function f(t, e) {
3
- if (t === "first")
1
+ import { easingDefinitionToFunction } from "../../easing/utils/map.mjs";
2
+ function getOriginIndex(from, total) {
3
+ if (from === "first") {
4
4
  return 0;
5
- {
6
- const n = e - 1;
7
- return t === "last" ? n : n / 2;
5
+ } else {
6
+ const lastIndex = total - 1;
7
+ return from === "last" ? lastIndex : lastIndex / 2;
8
8
  }
9
9
  }
10
- function d(t = 0.1, { startDelay: e = 0, from: n = 0, ease: s } = {}) {
11
- return (c, o) => {
12
- const a = typeof n == "number" ? n : f(n, o), u = Math.abs(a - c);
13
- let i = t * u;
14
- if (s) {
15
- const r = o * t;
16
- i = g(s)(i / r) * r;
10
+ function stagger(duration = 0.1, { startDelay = 0, from = 0, ease } = {}) {
11
+ return (i, total) => {
12
+ const fromIndex = typeof from === "number" ? from : getOriginIndex(from, total);
13
+ const distance = Math.abs(fromIndex - i);
14
+ let delay = duration * distance;
15
+ if (ease) {
16
+ const maxDelay = total * duration;
17
+ const easingFunction = easingDefinitionToFunction(ease);
18
+ delay = easingFunction(delay / maxDelay) * maxDelay;
17
19
  }
18
- return e + i;
20
+ return startDelay + delay;
19
21
  };
20
22
  }
21
23
  export {
22
- f as getOriginIndex,
23
- d as stagger
24
+ getOriginIndex,
25
+ stagger
24
26
  };
@@ -1,5 +1,5 @@
1
- import { backIn as o } from "./back.mjs";
2
- const c = (t) => (t *= 2) < 1 ? 0.5 * o(t) : 0.5 * (2 - Math.pow(2, -10 * (t - 1)));
1
+ import { backIn } from "./back.mjs";
2
+ const anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));
3
3
  export {
4
- c as anticipate
4
+ anticipate
5
5
  };
@@ -1,9 +1,11 @@
1
- import { cubicBezier as r } from "./cubic-bezier.mjs";
2
- import { mirrorEasing as o } from "./modifiers/mirror.mjs";
3
- import { reverseEasing as t } from "./modifiers/reverse.mjs";
4
- const c = /* @__PURE__ */ r(0.33, 1.53, 0.69, 0.99), i = /* @__PURE__ */ t(c), s = /* @__PURE__ */ o(i);
1
+ import { cubicBezier } from "./cubic-bezier.mjs";
2
+ import { mirrorEasing } from "./modifiers/mirror.mjs";
3
+ import { reverseEasing } from "./modifiers/reverse.mjs";
4
+ const backOut = /* @__PURE__ */ cubicBezier(0.33, 1.53, 0.69, 0.99);
5
+ const backIn = /* @__PURE__ */ reverseEasing(backOut);
6
+ const backInOut = /* @__PURE__ */ mirrorEasing(backIn);
5
7
  export {
6
- i as backIn,
7
- s as backInOut,
8
- c as backOut
8
+ backIn,
9
+ backInOut,
10
+ backOut
9
11
  };
@@ -1,8 +1,10 @@
1
- import { mirrorEasing as o } from "./modifiers/mirror.mjs";
2
- import { reverseEasing as t } from "./modifiers/reverse.mjs";
3
- const r = (c) => 1 - Math.sin(Math.acos(c)), s = t(r), a = o(r);
1
+ import { mirrorEasing } from "./modifiers/mirror.mjs";
2
+ import { reverseEasing } from "./modifiers/reverse.mjs";
3
+ const circIn = (p) => 1 - Math.sin(Math.acos(p));
4
+ const circOut = reverseEasing(circIn);
5
+ const circInOut = mirrorEasing(circIn);
4
6
  export {
5
- r as circIn,
6
- a as circInOut,
7
- s as circOut
7
+ circIn,
8
+ circInOut,
9
+ circOut
8
10
  };