motion 12.18.1 → 12.19.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 (410) hide show
  1. package/dist/cjs/mini.js +7 -1063
  2. package/dist/es/debug.mjs +1 -0
  3. package/dist/es/index.mjs +1 -0
  4. package/dist/es/mini.mjs +1 -0
  5. package/dist/es/react-client.mjs +2 -0
  6. package/dist/es/react-m.mjs +2 -0
  7. package/dist/es/react-mini.mjs +2 -0
  8. package/dist/es/react.mjs +2 -0
  9. package/dist/motion.dev.js +2 -2
  10. package/dist/motion.js +1 -1
  11. package/mini/package.json +1 -1
  12. package/package.json +11 -11
  13. package/react/package.json +1 -1
  14. package/react-client/package.json +1 -1
  15. package/react-m/package.json +1 -1
  16. package/dist/es/framer-motion/dist/es/animation/animate/index.mjs +0 -34
  17. package/dist/es/framer-motion/dist/es/animation/animate/resolve-subjects.mjs +0 -19
  18. package/dist/es/framer-motion/dist/es/animation/animate/sequence.mjs +0 -14
  19. package/dist/es/framer-motion/dist/es/animation/animate/single-value.mjs +0 -11
  20. package/dist/es/framer-motion/dist/es/animation/animate/subject.mjs +0 -52
  21. package/dist/es/framer-motion/dist/es/animation/animators/waapi/animate-elements.mjs +0 -112
  22. package/dist/es/framer-motion/dist/es/animation/animators/waapi/animate-sequence.mjs +0 -13
  23. package/dist/es/framer-motion/dist/es/animation/animators/waapi/animate-style.mjs +0 -12
  24. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +0 -12
  25. package/dist/es/framer-motion/dist/es/animation/hooks/animation-controls.mjs +0 -80
  26. package/dist/es/framer-motion/dist/es/animation/hooks/use-animate-style.mjs +0 -17
  27. package/dist/es/framer-motion/dist/es/animation/hooks/use-animate.mjs +0 -17
  28. package/dist/es/framer-motion/dist/es/animation/hooks/use-animated-state.mjs +0 -64
  29. package/dist/es/framer-motion/dist/es/animation/hooks/use-animation.mjs +0 -41
  30. package/dist/es/framer-motion/dist/es/animation/interfaces/motion-value.mjs +0 -102
  31. package/dist/es/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +0 -85
  32. package/dist/es/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs +0 -65
  33. package/dist/es/framer-motion/dist/es/animation/interfaces/visual-element.mjs +0 -26
  34. package/dist/es/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +0 -6
  35. package/dist/es/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +0 -7
  36. package/dist/es/framer-motion/dist/es/animation/optimized-appear/handoff.mjs +0 -38
  37. package/dist/es/framer-motion/dist/es/animation/optimized-appear/start.mjs +0 -171
  38. package/dist/es/framer-motion/dist/es/animation/optimized-appear/store-id.mjs +0 -8
  39. package/dist/es/framer-motion/dist/es/animation/optimized-appear/store.mjs +0 -4
  40. package/dist/es/framer-motion/dist/es/animation/sequence/create.mjs +0 -256
  41. package/dist/es/framer-motion/dist/es/animation/sequence/utils/calc-repeat-duration.mjs +0 -5
  42. package/dist/es/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +0 -23
  43. package/dist/es/framer-motion/dist/es/animation/sequence/utils/edit.mjs +0 -31
  44. package/dist/es/framer-motion/dist/es/animation/sequence/utils/normalize-times.mjs +0 -13
  45. package/dist/es/framer-motion/dist/es/animation/sequence/utils/sort.mjs +0 -14
  46. package/dist/es/framer-motion/dist/es/animation/utils/create-visual-element.mjs +0 -45
  47. package/dist/es/framer-motion/dist/es/animation/utils/default-transitions.mjs +0 -40
  48. package/dist/es/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +0 -7
  49. package/dist/es/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +0 -5
  50. package/dist/es/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +0 -5
  51. package/dist/es/framer-motion/dist/es/animation/utils/is-transition-defined.mjs +0 -10
  52. package/dist/es/framer-motion/dist/es/animation/utils/stagger.mjs +0 -26
  53. package/dist/es/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs +0 -87
  54. package/dist/es/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs +0 -64
  55. package/dist/es/framer-motion/dist/es/components/AnimatePresence/index.mjs +0 -166
  56. package/dist/es/framer-motion/dist/es/components/AnimatePresence/use-presence-data.mjs +0 -9
  57. package/dist/es/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs +0 -70
  58. package/dist/es/framer-motion/dist/es/components/AnimatePresence/utils.mjs +0 -14
  59. package/dist/es/framer-motion/dist/es/components/AnimateSharedLayout.mjs +0 -15
  60. package/dist/es/framer-motion/dist/es/components/LayoutGroup/index.mjs +0 -32
  61. package/dist/es/framer-motion/dist/es/components/LazyMotion/index.mjs +0 -68
  62. package/dist/es/framer-motion/dist/es/components/MotionConfig/index.mjs +0 -48
  63. package/dist/es/framer-motion/dist/es/components/Reorder/Group.mjs +0 -53
  64. package/dist/es/framer-motion/dist/es/components/Reorder/Item.mjs +0 -34
  65. package/dist/es/framer-motion/dist/es/components/Reorder/namespace.mjs +0 -2
  66. package/dist/es/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs +0 -24
  67. package/dist/es/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs +0 -10
  68. package/dist/es/framer-motion/dist/es/context/LayoutGroupContext.mjs +0 -6
  69. package/dist/es/framer-motion/dist/es/context/LazyContext.mjs +0 -6
  70. package/dist/es/framer-motion/dist/es/context/MotionConfigContext.mjs +0 -13
  71. package/dist/es/framer-motion/dist/es/context/MotionContext/create.mjs +0 -13
  72. package/dist/es/framer-motion/dist/es/context/MotionContext/index.mjs +0 -6
  73. package/dist/es/framer-motion/dist/es/context/MotionContext/utils.mjs +0 -17
  74. package/dist/es/framer-motion/dist/es/context/PresenceContext.mjs +0 -10
  75. package/dist/es/framer-motion/dist/es/context/ReorderContext.mjs +0 -6
  76. package/dist/es/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs +0 -9
  77. package/dist/es/framer-motion/dist/es/events/add-dom-event.mjs +0 -6
  78. package/dist/es/framer-motion/dist/es/events/add-pointer-event.mjs +0 -8
  79. package/dist/es/framer-motion/dist/es/events/event-info.mjs +0 -15
  80. package/dist/es/framer-motion/dist/es/events/use-dom-event.mjs +0 -34
  81. package/dist/es/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs +0 -479
  82. package/dist/es/framer-motion/dist/es/gestures/drag/index.mjs +0 -27
  83. package/dist/es/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs +0 -88
  84. package/dist/es/framer-motion/dist/es/gestures/drag/utils/constraints.mjs +0 -129
  85. package/dist/es/framer-motion/dist/es/gestures/focus.mjs +0 -41
  86. package/dist/es/framer-motion/dist/es/gestures/hover.mjs +0 -30
  87. package/dist/es/framer-motion/dist/es/gestures/pan/PanSession.mjs +0 -156
  88. package/dist/es/framer-motion/dist/es/gestures/pan/index.mjs +0 -50
  89. package/dist/es/framer-motion/dist/es/gestures/press.mjs +0 -33
  90. package/dist/es/framer-motion/dist/es/motion/features/Feature.mjs +0 -9
  91. package/dist/es/framer-motion/dist/es/motion/features/animation/exit.mjs +0 -36
  92. package/dist/es/framer-motion/dist/es/motion/features/animation/index.mjs +0 -40
  93. package/dist/es/framer-motion/dist/es/motion/features/animations.mjs +0 -13
  94. package/dist/es/framer-motion/dist/es/motion/features/definitions.mjs +0 -28
  95. package/dist/es/framer-motion/dist/es/motion/features/drag.mjs +0 -17
  96. package/dist/es/framer-motion/dist/es/motion/features/gestures.mjs +0 -21
  97. package/dist/es/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs +0 -135
  98. package/dist/es/framer-motion/dist/es/motion/features/layout.mjs +0 -11
  99. package/dist/es/framer-motion/dist/es/motion/features/load-features.mjs +0 -12
  100. package/dist/es/framer-motion/dist/es/motion/features/viewport/index.mjs +0 -72
  101. package/dist/es/framer-motion/dist/es/motion/features/viewport/observers.mjs +0 -49
  102. package/dist/es/framer-motion/dist/es/motion/index.mjs +0 -101
  103. package/dist/es/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +0 -11
  104. package/dist/es/framer-motion/dist/es/motion/utils/is-motion-component.mjs +0 -12
  105. package/dist/es/framer-motion/dist/es/motion/utils/symbol.mjs +0 -3
  106. package/dist/es/framer-motion/dist/es/motion/utils/unwrap-motion-component.mjs +0 -17
  107. package/dist/es/framer-motion/dist/es/motion/utils/use-motion-ref.mjs +0 -38
  108. package/dist/es/framer-motion/dist/es/motion/utils/use-visual-element.mjs +0 -133
  109. package/dist/es/framer-motion/dist/es/motion/utils/use-visual-state.mjs +0 -79
  110. package/dist/es/framer-motion/dist/es/motion/utils/valid-prop.mjs +0 -57
  111. package/dist/es/framer-motion/dist/es/projection/animation/mix-values.mjs +0 -91
  112. package/dist/es/framer-motion/dist/es/projection/geometry/conversion.mjs +0 -33
  113. package/dist/es/framer-motion/dist/es/projection/geometry/copy.mjs +0 -31
  114. package/dist/es/framer-motion/dist/es/projection/geometry/delta-apply.mjs +0 -119
  115. package/dist/es/framer-motion/dist/es/projection/geometry/delta-calc.mjs +0 -52
  116. package/dist/es/framer-motion/dist/es/projection/geometry/delta-remove.mjs +0 -54
  117. package/dist/es/framer-motion/dist/es/projection/geometry/models.mjs +0 -17
  118. package/dist/es/framer-motion/dist/es/projection/geometry/utils.mjs +0 -31
  119. package/dist/es/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +0 -13
  120. package/dist/es/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +0 -27
  121. package/dist/es/framer-motion/dist/es/projection/node/create-projection-node.mjs +0 -1605
  122. package/dist/es/framer-motion/dist/es/projection/node/group.mjs +0 -24
  123. package/dist/es/framer-motion/dist/es/projection/node/state.mjs +0 -19
  124. package/dist/es/framer-motion/dist/es/projection/shared/stack.mjs +0 -112
  125. package/dist/es/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +0 -41
  126. package/dist/es/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +0 -35
  127. package/dist/es/framer-motion/dist/es/projection/styles/scale-correction.mjs +0 -13
  128. package/dist/es/framer-motion/dist/es/projection/styles/transform.mjs +0 -49
  129. package/dist/es/framer-motion/dist/es/projection/use-instant-layout-transition.mjs +0 -14
  130. package/dist/es/framer-motion/dist/es/projection/use-reset-projection.mjs +0 -14
  131. package/dist/es/framer-motion/dist/es/projection/utils/each-axis.mjs +0 -5
  132. package/dist/es/framer-motion/dist/es/projection/utils/has-transform.mjs +0 -26
  133. package/dist/es/framer-motion/dist/es/projection/utils/measure.mjs +0 -17
  134. package/dist/es/framer-motion/dist/es/render/VisualElement.mjs +0 -478
  135. package/dist/es/framer-motion/dist/es/render/components/create-factory.mjs +0 -23
  136. package/dist/es/framer-motion/dist/es/render/components/create-proxy.mjs +0 -38
  137. package/dist/es/framer-motion/dist/es/render/components/m/create.mjs +0 -6
  138. package/dist/es/framer-motion/dist/es/render/components/m/elements.mjs +0 -227
  139. package/dist/es/framer-motion/dist/es/render/components/m/proxy.mjs +0 -6
  140. package/dist/es/framer-motion/dist/es/render/components/motion/create.mjs +0 -15
  141. package/dist/es/framer-motion/dist/es/render/components/motion/elements.mjs +0 -194
  142. package/dist/es/framer-motion/dist/es/render/components/motion/proxy.mjs +0 -6
  143. package/dist/es/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +0 -43
  144. package/dist/es/framer-motion/dist/es/render/dom/create-visual-element.mjs +0 -14
  145. package/dist/es/framer-motion/dist/es/render/dom/features-animation.mjs +0 -14
  146. package/dist/es/framer-motion/dist/es/render/dom/features-max.mjs +0 -14
  147. package/dist/es/framer-motion/dist/es/render/dom/features-min.mjs +0 -12
  148. package/dist/es/framer-motion/dist/es/render/dom/scroll/attach-animation.mjs +0 -17
  149. package/dist/es/framer-motion/dist/es/render/dom/scroll/attach-function.mjs +0 -23
  150. package/dist/es/framer-motion/dist/es/render/dom/scroll/index.mjs +0 -14
  151. package/dist/es/framer-motion/dist/es/render/dom/scroll/info.mjs +0 -56
  152. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs +0 -45
  153. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs +0 -60
  154. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs +0 -47
  155. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs +0 -35
  156. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs +0 -20
  157. package/dist/es/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs +0 -48
  158. package/dist/es/framer-motion/dist/es/render/dom/scroll/track.mjs +0 -81
  159. package/dist/es/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs +0 -30
  160. package/dist/es/framer-motion/dist/es/render/dom/use-render.mjs +0 -33
  161. package/dist/es/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +0 -6
  162. package/dist/es/framer-motion/dist/es/render/dom/utils/filter-props.mjs +0 -59
  163. package/dist/es/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs +0 -30
  164. package/dist/es/framer-motion/dist/es/render/dom/viewport/index.mjs +0 -43
  165. package/dist/es/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +0 -44
  166. package/dist/es/framer-motion/dist/es/render/html/config-motion.mjs +0 -12
  167. package/dist/es/framer-motion/dist/es/render/html/use-props.mjs +0 -57
  168. package/dist/es/framer-motion/dist/es/render/html/utils/build-styles.mjs +0 -65
  169. package/dist/es/framer-motion/dist/es/render/html/utils/build-transform.mjs +0 -62
  170. package/dist/es/framer-motion/dist/es/render/html/utils/create-render-state.mjs +0 -8
  171. package/dist/es/framer-motion/dist/es/render/html/utils/render.mjs +0 -9
  172. package/dist/es/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +0 -19
  173. package/dist/es/framer-motion/dist/es/render/object/ObjectVisualElement.mjs +0 -41
  174. package/dist/es/framer-motion/dist/es/render/store.mjs +0 -3
  175. package/dist/es/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +0 -45
  176. package/dist/es/framer-motion/dist/es/render/svg/config-motion.mjs +0 -12
  177. package/dist/es/framer-motion/dist/es/render/svg/lowercase-elements.mjs +0 -33
  178. package/dist/es/framer-motion/dist/es/render/svg/use-props.mjs +0 -24
  179. package/dist/es/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +0 -57
  180. package/dist/es/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +0 -30
  181. package/dist/es/framer-motion/dist/es/render/svg/utils/create-render-state.mjs +0 -8
  182. package/dist/es/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +0 -3
  183. package/dist/es/framer-motion/dist/es/render/svg/utils/path.mjs +0 -32
  184. package/dist/es/framer-motion/dist/es/render/svg/utils/render.mjs +0 -12
  185. package/dist/es/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +0 -19
  186. package/dist/es/framer-motion/dist/es/render/utils/animation-state.mjs +0 -342
  187. package/dist/es/framer-motion/dist/es/render/utils/compare-by-depth.mjs +0 -3
  188. package/dist/es/framer-motion/dist/es/render/utils/flat-tree.mjs +0 -24
  189. package/dist/es/framer-motion/dist/es/render/utils/get-variant-context.mjs +0 -28
  190. package/dist/es/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +0 -13
  191. package/dist/es/framer-motion/dist/es/render/utils/is-variant-label.mjs +0 -8
  192. package/dist/es/framer-motion/dist/es/render/utils/motion-values.mjs +0 -51
  193. package/dist/es/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +0 -8
  194. package/dist/es/framer-motion/dist/es/render/utils/resolve-variants.mjs +0 -36
  195. package/dist/es/framer-motion/dist/es/render/utils/setters.mjs +0 -31
  196. package/dist/es/framer-motion/dist/es/render/utils/variant-props.mjs +0 -12
  197. package/dist/es/framer-motion/dist/es/utils/delay.mjs +0 -24
  198. package/dist/es/framer-motion/dist/es/utils/distance.mjs +0 -9
  199. package/dist/es/framer-motion/dist/es/utils/get-context-window.mjs +0 -6
  200. package/dist/es/framer-motion/dist/es/utils/is-browser.mjs +0 -3
  201. package/dist/es/framer-motion/dist/es/utils/is-ref-object.mjs +0 -7
  202. package/dist/es/framer-motion/dist/es/utils/reduced-motion/index.mjs +0 -19
  203. package/dist/es/framer-motion/dist/es/utils/reduced-motion/state.mjs +0 -5
  204. package/dist/es/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs +0 -19
  205. package/dist/es/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs +0 -47
  206. package/dist/es/framer-motion/dist/es/utils/shallow-compare.mjs +0 -14
  207. package/dist/es/framer-motion/dist/es/utils/use-animation-frame.mjs +0 -21
  208. package/dist/es/framer-motion/dist/es/utils/use-constant.mjs +0 -18
  209. package/dist/es/framer-motion/dist/es/utils/use-cycle.mjs +0 -47
  210. package/dist/es/framer-motion/dist/es/utils/use-force-update.mjs +0 -19
  211. package/dist/es/framer-motion/dist/es/utils/use-in-view.mjs +0 -23
  212. package/dist/es/framer-motion/dist/es/utils/use-instant-transition.mjs +0 -41
  213. package/dist/es/framer-motion/dist/es/utils/use-is-mounted.mjs +0 -15
  214. package/dist/es/framer-motion/dist/es/utils/use-isomorphic-effect.mjs +0 -6
  215. package/dist/es/framer-motion/dist/es/utils/use-motion-value-event.mjs +0 -13
  216. package/dist/es/framer-motion/dist/es/utils/use-unmount-effect.mjs +0 -7
  217. package/dist/es/framer-motion/dist/es/value/scroll/use-element-scroll.mjs +0 -14
  218. package/dist/es/framer-motion/dist/es/value/scroll/use-viewport-scroll.mjs +0 -14
  219. package/dist/es/framer-motion/dist/es/value/use-combine-values.mjs +0 -37
  220. package/dist/es/framer-motion/dist/es/value/use-computed.mjs +0 -19
  221. package/dist/es/framer-motion/dist/es/value/use-inverted-scale.mjs +0 -52
  222. package/dist/es/framer-motion/dist/es/value/use-motion-template.mjs +0 -45
  223. package/dist/es/framer-motion/dist/es/value/use-motion-value.mjs +0 -38
  224. package/dist/es/framer-motion/dist/es/value/use-scroll.mjs +0 -39
  225. package/dist/es/framer-motion/dist/es/value/use-spring.mjs +0 -22
  226. package/dist/es/framer-motion/dist/es/value/use-time.mjs +0 -10
  227. package/dist/es/framer-motion/dist/es/value/use-transform.mjs +0 -29
  228. package/dist/es/framer-motion/dist/es/value/use-velocity.mjs +0 -35
  229. package/dist/es/framer-motion/dist/es/value/use-will-change/WillChangeMotionValue.mjs +0 -21
  230. package/dist/es/framer-motion/dist/es/value/use-will-change/add-will-change.mjs +0 -20
  231. package/dist/es/framer-motion/dist/es/value/use-will-change/index.mjs +0 -8
  232. package/dist/es/framer-motion/dist/es/value/use-will-change/is.mjs +0 -7
  233. package/dist/es/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +0 -12
  234. package/dist/es/motion/lib/debug.mjs +0 -1
  235. package/dist/es/motion/lib/index.mjs +0 -131
  236. package/dist/es/motion/lib/mini.mjs +0 -2
  237. package/dist/es/motion/lib/react-client.mjs +0 -3
  238. package/dist/es/motion/lib/react-m.mjs +0 -3
  239. package/dist/es/motion/lib/react-mini.mjs +0 -2
  240. package/dist/es/motion/lib/react.mjs +0 -204
  241. package/dist/es/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs +0 -175
  242. package/dist/es/motion-dom/dist/es/animation/GroupAnimation.mjs +0 -72
  243. package/dist/es/motion-dom/dist/es/animation/GroupAnimationWithThen.mjs +0 -9
  244. package/dist/es/motion-dom/dist/es/animation/JSAnimation.mjs +0 -348
  245. package/dist/es/motion-dom/dist/es/animation/NativeAnimation.mjs +0 -158
  246. package/dist/es/motion-dom/dist/es/animation/NativeAnimationExtended.mjs +0 -65
  247. package/dist/es/motion-dom/dist/es/animation/NativeAnimationWrapper.mjs +0 -14
  248. package/dist/es/motion-dom/dist/es/animation/drivers/frame.mjs +0 -17
  249. package/dist/es/motion-dom/dist/es/animation/generators/inertia.mjs +0 -87
  250. package/dist/es/motion-dom/dist/es/animation/generators/keyframes.mjs +0 -51
  251. package/dist/es/motion-dom/dist/es/animation/generators/spring/defaults.mjs +0 -27
  252. package/dist/es/motion-dom/dist/es/animation/generators/spring/find.mjs +0 -86
  253. package/dist/es/motion-dom/dist/es/animation/generators/spring/index.mjs +0 -176
  254. package/dist/es/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs +0 -17
  255. package/dist/es/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs +0 -19
  256. package/dist/es/motion-dom/dist/es/animation/generators/utils/is-generator.mjs +0 -5
  257. package/dist/es/motion-dom/dist/es/animation/generators/utils/velocity.mjs +0 -9
  258. package/dist/es/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs +0 -131
  259. package/dist/es/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs +0 -147
  260. package/dist/es/motion-dom/dist/es/animation/keyframes/get-final.mjs +0 -11
  261. package/dist/es/motion-dom/dist/es/animation/keyframes/offsets/default.mjs +0 -9
  262. package/dist/es/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs +0 -12
  263. package/dist/es/motion-dom/dist/es/animation/keyframes/offsets/time.mjs +0 -5
  264. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/apply-px-defaults.mjs +0 -11
  265. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs +0 -7
  266. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs +0 -15
  267. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs +0 -30
  268. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs +0 -36
  269. package/dist/es/motion-dom/dist/es/animation/utils/WithPromise.mjs +0 -26
  270. package/dist/es/motion-dom/dist/es/animation/utils/active-animations.mjs +0 -9
  271. package/dist/es/motion-dom/dist/es/animation/utils/can-animate.mjs +0 -42
  272. package/dist/es/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs +0 -42
  273. package/dist/es/motion-dom/dist/es/animation/utils/get-value-transition.mjs +0 -7
  274. package/dist/es/motion-dom/dist/es/animation/utils/is-animatable.mjs +0 -30
  275. package/dist/es/motion-dom/dist/es/animation/utils/is-css-variable.mjs +0 -15
  276. package/dist/es/motion-dom/dist/es/animation/utils/replace-transition-type.mjs +0 -18
  277. package/dist/es/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs +0 -3
  278. package/dist/es/motion-dom/dist/es/animation/waapi/easing/is-supported.mjs +0 -14
  279. package/dist/es/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs +0 -28
  280. package/dist/es/motion-dom/dist/es/animation/waapi/easing/supported.mjs +0 -15
  281. package/dist/es/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs +0 -39
  282. package/dist/es/motion-dom/dist/es/animation/waapi/supports/partial-keyframes.mjs +0 -13
  283. package/dist/es/motion-dom/dist/es/animation/waapi/supports/waapi.mjs +0 -37
  284. package/dist/es/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs +0 -14
  285. package/dist/es/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs +0 -15
  286. package/dist/es/motion-dom/dist/es/animation/waapi/utils/linear.mjs +0 -12
  287. package/dist/es/motion-dom/dist/es/animation/waapi/utils/px-values.mjs +0 -39
  288. package/dist/es/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs +0 -20
  289. package/dist/es/motion-dom/dist/es/effects/MotionValueState.mjs +0 -47
  290. package/dist/es/motion-dom/dist/es/effects/attr/index.mjs +0 -41
  291. package/dist/es/motion-dom/dist/es/effects/prop/index.mjs +0 -9
  292. package/dist/es/motion-dom/dist/es/effects/style/index.mjs +0 -52
  293. package/dist/es/motion-dom/dist/es/effects/style/transform.mjs +0 -38
  294. package/dist/es/motion-dom/dist/es/effects/svg/index.mjs +0 -41
  295. package/dist/es/motion-dom/dist/es/effects/utils/create-dom-effect.mjs +0 -18
  296. package/dist/es/motion-dom/dist/es/effects/utils/create-effect.mjs +0 -21
  297. package/dist/es/motion-dom/dist/es/frameloop/batcher.mjs +0 -71
  298. package/dist/es/motion-dom/dist/es/frameloop/frame.mjs +0 -6
  299. package/dist/es/motion-dom/dist/es/frameloop/index-legacy.mjs +0 -20
  300. package/dist/es/motion-dom/dist/es/frameloop/microtask.mjs +0 -6
  301. package/dist/es/motion-dom/dist/es/frameloop/order.mjs +0 -12
  302. package/dist/es/motion-dom/dist/es/frameloop/render-step.mjs +0 -92
  303. package/dist/es/motion-dom/dist/es/frameloop/sync-time.mjs +0 -31
  304. package/dist/es/motion-dom/dist/es/gestures/drag/state/is-active.mjs +0 -9
  305. package/dist/es/motion-dom/dist/es/gestures/drag/state/set-active.mjs +0 -28
  306. package/dist/es/motion-dom/dist/es/gestures/hover.mjs +0 -37
  307. package/dist/es/motion-dom/dist/es/gestures/press/index.mjs +0 -83
  308. package/dist/es/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs +0 -13
  309. package/dist/es/motion-dom/dist/es/gestures/press/utils/keyboard.mjs +0 -38
  310. package/dist/es/motion-dom/dist/es/gestures/press/utils/state.mjs +0 -3
  311. package/dist/es/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs +0 -20
  312. package/dist/es/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs +0 -18
  313. package/dist/es/motion-dom/dist/es/gestures/utils/setup.mjs +0 -15
  314. package/dist/es/motion-dom/dist/es/render/dom/is-css-var.mjs +0 -3
  315. package/dist/es/motion-dom/dist/es/render/dom/parse-transform.mjs +0 -83
  316. package/dist/es/motion-dom/dist/es/render/dom/style-computed.mjs +0 -10
  317. package/dist/es/motion-dom/dist/es/render/dom/style-set.mjs +0 -9
  318. package/dist/es/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs +0 -5
  319. package/dist/es/motion-dom/dist/es/render/utils/keys-position.mjs +0 -13
  320. package/dist/es/motion-dom/dist/es/render/utils/keys-transform.mjs +0 -28
  321. package/dist/es/motion-dom/dist/es/resize/handle-element.mjs +0 -63
  322. package/dist/es/motion-dom/dist/es/resize/handle-window.mjs +0 -31
  323. package/dist/es/motion-dom/dist/es/resize/index.mjs +0 -8
  324. package/dist/es/motion-dom/dist/es/scroll/observe.mjs +0 -18
  325. package/dist/es/motion-dom/dist/es/stats/animation-count.mjs +0 -7
  326. package/dist/es/motion-dom/dist/es/stats/buffer.mjs +0 -6
  327. package/dist/es/motion-dom/dist/es/stats/index.mjs +0 -117
  328. package/dist/es/motion-dom/dist/es/utils/interpolate.mjs +0 -79
  329. package/dist/es/motion-dom/dist/es/utils/is-html-element.mjs +0 -11
  330. package/dist/es/motion-dom/dist/es/utils/is-svg-element.mjs +0 -11
  331. package/dist/es/motion-dom/dist/es/utils/is-svg-svg-element.mjs +0 -11
  332. package/dist/es/motion-dom/dist/es/utils/mix/color.mjs +0 -47
  333. package/dist/es/motion-dom/dist/es/utils/mix/complex.mjs +0 -93
  334. package/dist/es/motion-dom/dist/es/utils/mix/immediate.mjs +0 -5
  335. package/dist/es/motion-dom/dist/es/utils/mix/index.mjs +0 -14
  336. package/dist/es/motion-dom/dist/es/utils/mix/number.mjs +0 -26
  337. package/dist/es/motion-dom/dist/es/utils/mix/visibility.mjs +0 -16
  338. package/dist/es/motion-dom/dist/es/utils/resolve-elements.mjs +0 -17
  339. package/dist/es/motion-dom/dist/es/utils/supports/flags.mjs +0 -7
  340. package/dist/es/motion-dom/dist/es/utils/supports/linear-easing.mjs +0 -15
  341. package/dist/es/motion-dom/dist/es/utils/supports/memo.mjs +0 -9
  342. package/dist/es/motion-dom/dist/es/utils/supports/scroll-timeline.mjs +0 -5
  343. package/dist/es/motion-dom/dist/es/utils/transform.mjs +0 -14
  344. package/dist/es/motion-dom/dist/es/value/index.mjs +0 -329
  345. package/dist/es/motion-dom/dist/es/value/map-value.mjs +0 -46
  346. package/dist/es/motion-dom/dist/es/value/spring-value.mjs +0 -72
  347. package/dist/es/motion-dom/dist/es/value/subscribe-value.mjs +0 -13
  348. package/dist/es/motion-dom/dist/es/value/transform-value.mjs +0 -35
  349. package/dist/es/motion-dom/dist/es/value/types/auto.mjs +0 -9
  350. package/dist/es/motion-dom/dist/es/value/types/color/hex.mjs +0 -40
  351. package/dist/es/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs +0 -42
  352. package/dist/es/motion-dom/dist/es/value/types/color/hsla.mjs +0 -22
  353. package/dist/es/motion-dom/dist/es/value/types/color/index.mjs +0 -32
  354. package/dist/es/motion-dom/dist/es/value/types/color/rgba.mjs +0 -25
  355. package/dist/es/motion-dom/dist/es/value/types/color/utils.mjs +0 -29
  356. package/dist/es/motion-dom/dist/es/value/types/complex/filter.mjs +0 -30
  357. package/dist/es/motion-dom/dist/es/value/types/complex/index.mjs +0 -91
  358. package/dist/es/motion-dom/dist/es/value/types/dimensions.mjs +0 -15
  359. package/dist/es/motion-dom/dist/es/value/types/int.mjs +0 -8
  360. package/dist/es/motion-dom/dist/es/value/types/maps/defaults.mjs +0 -30
  361. package/dist/es/motion-dom/dist/es/value/types/maps/number.mjs +0 -50
  362. package/dist/es/motion-dom/dist/es/value/types/maps/transform.mjs +0 -31
  363. package/dist/es/motion-dom/dist/es/value/types/numbers/index.mjs +0 -17
  364. package/dist/es/motion-dom/dist/es/value/types/numbers/units.mjs +0 -18
  365. package/dist/es/motion-dom/dist/es/value/types/test.mjs +0 -6
  366. package/dist/es/motion-dom/dist/es/value/types/utils/animatable-none.mjs +0 -15
  367. package/dist/es/motion-dom/dist/es/value/types/utils/color-regex.mjs +0 -3
  368. package/dist/es/motion-dom/dist/es/value/types/utils/find.mjs +0 -15
  369. package/dist/es/motion-dom/dist/es/value/types/utils/float-regex.mjs +0 -3
  370. package/dist/es/motion-dom/dist/es/value/types/utils/get-as-type.mjs +0 -10
  371. package/dist/es/motion-dom/dist/es/value/types/utils/is-nullish.mjs +0 -5
  372. package/dist/es/motion-dom/dist/es/value/types/utils/sanitize.mjs +0 -5
  373. package/dist/es/motion-dom/dist/es/value/types/utils/single-color-regex.mjs +0 -3
  374. package/dist/es/motion-dom/dist/es/value/utils/is-motion-value.mjs +0 -3
  375. package/dist/es/motion-dom/dist/es/view/index.mjs +0 -64
  376. package/dist/es/motion-dom/dist/es/view/queue.mjs +0 -52
  377. package/dist/es/motion-dom/dist/es/view/start.mjs +0 -155
  378. package/dist/es/motion-dom/dist/es/view/utils/choose-layer-type.mjs +0 -11
  379. package/dist/es/motion-dom/dist/es/view/utils/css.mjs +0 -32
  380. package/dist/es/motion-dom/dist/es/view/utils/get-layer-name.mjs +0 -8
  381. package/dist/es/motion-dom/dist/es/view/utils/get-view-animations.mjs +0 -12
  382. package/dist/es/motion-dom/dist/es/view/utils/has-target.mjs +0 -5
  383. package/dist/es/motion-utils/dist/es/array.mjs +0 -21
  384. package/dist/es/motion-utils/dist/es/clamp.mjs +0 -9
  385. package/dist/es/motion-utils/dist/es/easing/anticipate.mjs +0 -5
  386. package/dist/es/motion-utils/dist/es/easing/back.mjs +0 -9
  387. package/dist/es/motion-utils/dist/es/easing/circ.mjs +0 -8
  388. package/dist/es/motion-utils/dist/es/easing/cubic-bezier.mjs +0 -51
  389. package/dist/es/motion-utils/dist/es/easing/ease.mjs +0 -7
  390. package/dist/es/motion-utils/dist/es/easing/modifiers/mirror.mjs +0 -5
  391. package/dist/es/motion-utils/dist/es/easing/modifiers/reverse.mjs +0 -5
  392. package/dist/es/motion-utils/dist/es/easing/steps.mjs +0 -15
  393. package/dist/es/motion-utils/dist/es/easing/utils/get-easing-for-segment.mjs +0 -8
  394. package/dist/es/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs +0 -3
  395. package/dist/es/motion-utils/dist/es/easing/utils/is-easing-array.mjs +0 -5
  396. package/dist/es/motion-utils/dist/es/easing/utils/map.mjs +0 -41
  397. package/dist/es/motion-utils/dist/es/errors.mjs +0 -16
  398. package/dist/es/motion-utils/dist/es/global-config.mjs +0 -3
  399. package/dist/es/motion-utils/dist/es/is-numerical-string.mjs +0 -6
  400. package/dist/es/motion-utils/dist/es/is-object.mjs +0 -5
  401. package/dist/es/motion-utils/dist/es/is-zero-value-string.mjs +0 -6
  402. package/dist/es/motion-utils/dist/es/memo.mjs +0 -11
  403. package/dist/es/motion-utils/dist/es/noop.mjs +0 -4
  404. package/dist/es/motion-utils/dist/es/pipe.mjs +0 -11
  405. package/dist/es/motion-utils/dist/es/progress.mjs +0 -19
  406. package/dist/es/motion-utils/dist/es/subscription-manager.mjs +0 -40
  407. package/dist/es/motion-utils/dist/es/time-conversion.mjs +0 -12
  408. package/dist/es/motion-utils/dist/es/velocity-per-second.mjs +0 -11
  409. package/dist/es/motion-utils/dist/es/warn-once.mjs +0 -14
  410. package/dist/es/motion-utils/dist/es/wrap.mjs +0 -6
@@ -1,34 +0,0 @@
1
- import { animateSequence } from './sequence.mjs';
2
- import { animateSubject } from './subject.mjs';
3
- import { GroupAnimationWithThen } from '../../../../../motion-dom/dist/es/animation/GroupAnimationWithThen.mjs';
4
-
5
- function isSequence(value) {
6
- return Array.isArray(value) && value.some(Array.isArray);
7
- }
8
- /**
9
- * Creates an animation function that is optionally scoped
10
- * to a specific element.
11
- */
12
- function createScopedAnimate(scope) {
13
- /**
14
- * Implementation
15
- */
16
- function scopedAnimate(subjectOrSequence, optionsOrKeyframes, options) {
17
- let animations = [];
18
- if (isSequence(subjectOrSequence)) {
19
- animations = animateSequence(subjectOrSequence, optionsOrKeyframes, scope);
20
- }
21
- else {
22
- animations = animateSubject(subjectOrSequence, optionsOrKeyframes, options, scope);
23
- }
24
- const animation = new GroupAnimationWithThen(animations);
25
- if (scope) {
26
- scope.animations.push(animation);
27
- }
28
- return animation;
29
- }
30
- return scopedAnimate;
31
- }
32
- const animate = createScopedAnimate();
33
-
34
- export { animate, createScopedAnimate };
@@ -1,19 +0,0 @@
1
- import { isDOMKeyframes } from '../utils/is-dom-keyframes.mjs';
2
- import { resolveElements } from '../../../../../motion-dom/dist/es/utils/resolve-elements.mjs';
3
-
4
- function resolveSubjects(subject, keyframes, scope, selectorCache) {
5
- if (typeof subject === "string" && isDOMKeyframes(keyframes)) {
6
- return resolveElements(subject, scope, selectorCache);
7
- }
8
- else if (subject instanceof NodeList) {
9
- return Array.from(subject);
10
- }
11
- else if (Array.isArray(subject)) {
12
- return subject;
13
- }
14
- else {
15
- return [subject];
16
- }
17
- }
18
-
19
- export { resolveSubjects };
@@ -1,14 +0,0 @@
1
- import { createAnimationsFromSequence } from '../sequence/create.mjs';
2
- import { animateSubject } from './subject.mjs';
3
- import { spring } from '../../../../../motion-dom/dist/es/animation/generators/spring/index.mjs';
4
-
5
- function animateSequence(sequence, options, scope) {
6
- const animations = [];
7
- const animationDefinitions = createAnimationsFromSequence(sequence, options, scope, { spring });
8
- animationDefinitions.forEach(({ keyframes, transition }, subject) => {
9
- animations.push(...animateSubject(subject, keyframes, transition));
10
- });
11
- return animations;
12
- }
13
-
14
- export { animateSequence };
@@ -1,11 +0,0 @@
1
- import { animateMotionValue } from '../interfaces/motion-value.mjs';
2
- import { isMotionValue } from '../../../../../motion-dom/dist/es/value/utils/is-motion-value.mjs';
3
- import { motionValue } from '../../../../../motion-dom/dist/es/value/index.mjs';
4
-
5
- function animateSingleValue(value, keyframes, options) {
6
- const motionValue$1 = isMotionValue(value) ? value : motionValue(value);
7
- motionValue$1.start(animateMotionValue("", motionValue$1, keyframes, options));
8
- return motionValue$1.animation;
9
- }
10
-
11
- export { animateSingleValue };
@@ -1,52 +0,0 @@
1
- import { visualElementStore } from '../../render/store.mjs';
2
- import { animateTarget } from '../interfaces/visual-element-target.mjs';
3
- import { createDOMVisualElement, createObjectVisualElement } from '../utils/create-visual-element.mjs';
4
- import { isDOMKeyframes } from '../utils/is-dom-keyframes.mjs';
5
- import { resolveSubjects } from './resolve-subjects.mjs';
6
- import { animateSingleValue } from './single-value.mjs';
7
- import { invariant } from '../../../../../motion-utils/dist/es/errors.mjs';
8
- import { isMotionValue } from '../../../../../motion-dom/dist/es/value/utils/is-motion-value.mjs';
9
-
10
- function isSingleValue(subject, keyframes) {
11
- return (isMotionValue(subject) ||
12
- typeof subject === "number" ||
13
- (typeof subject === "string" && !isDOMKeyframes(keyframes)));
14
- }
15
- /**
16
- * Implementation
17
- */
18
- function animateSubject(subject, keyframes, options, scope) {
19
- const animations = [];
20
- if (isSingleValue(subject, keyframes)) {
21
- animations.push(animateSingleValue(subject, isDOMKeyframes(keyframes)
22
- ? keyframes.default || keyframes
23
- : keyframes, options ? options.default || options : options));
24
- }
25
- else {
26
- const subjects = resolveSubjects(subject, keyframes, scope);
27
- const numSubjects = subjects.length;
28
- invariant(Boolean(numSubjects), "No valid elements provided.");
29
- for (let i = 0; i < numSubjects; i++) {
30
- const thisSubject = subjects[i];
31
- const createVisualElement = thisSubject instanceof Element
32
- ? createDOMVisualElement
33
- : createObjectVisualElement;
34
- if (!visualElementStore.has(thisSubject)) {
35
- createVisualElement(thisSubject);
36
- }
37
- const visualElement = visualElementStore.get(thisSubject);
38
- const transition = { ...options };
39
- /**
40
- * Resolve stagger function if provided.
41
- */
42
- if ("delay" in transition &&
43
- typeof transition.delay === "function") {
44
- transition.delay = transition.delay(i, numSubjects);
45
- }
46
- animations.push(...animateTarget(visualElement, { ...keyframes, transition }, {}));
47
- }
48
- }
49
- return animations;
50
- }
51
-
52
- export { animateSubject };
@@ -1,112 +0,0 @@
1
- import { resolveElements } from '../../../../../../motion-dom/dist/es/utils/resolve-elements.mjs';
2
- import { invariant } from '../../../../../../motion-utils/dist/es/errors.mjs';
3
- import { getValueTransition } from '../../../../../../motion-dom/dist/es/animation/utils/get-value-transition.mjs';
4
- import { getAnimationMap, animationMapKey } from '../../../../../../motion-dom/dist/es/animation/utils/active-animations.mjs';
5
- import { getComputedStyle } from '../../../../../../motion-dom/dist/es/render/dom/style-computed.mjs';
6
- import { fillWildcards } from '../../../../../../motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs';
7
- import { applyPxDefaults } from '../../../../../../motion-dom/dist/es/animation/keyframes/utils/apply-px-defaults.mjs';
8
- import { NativeAnimation } from '../../../../../../motion-dom/dist/es/animation/NativeAnimation.mjs';
9
- import { secondsToMilliseconds } from '../../../../../../motion-utils/dist/es/time-conversion.mjs';
10
-
11
- function animateElements(elementOrSelector, keyframes, options, scope) {
12
- const elements = resolveElements(elementOrSelector, scope);
13
- const numElements = elements.length;
14
- invariant(Boolean(numElements), "No valid element provided.");
15
- /**
16
- * WAAPI doesn't support interrupting animations.
17
- *
18
- * Therefore, starting animations requires a three-step process:
19
- * 1. Stop existing animations (write styles to DOM)
20
- * 2. Resolve keyframes (read styles from DOM)
21
- * 3. Create new animations (write styles to DOM)
22
- *
23
- * The hybrid `animate()` function uses AsyncAnimation to resolve
24
- * keyframes before creating new animations, which removes style
25
- * thrashing. Here, we have much stricter filesize constraints.
26
- * Therefore we do this in a synchronous way that ensures that
27
- * at least within `animate()` calls there is no style thrashing.
28
- *
29
- * In the motion-native-animate-mini-interrupt benchmark this
30
- * was 80% faster than a single loop.
31
- */
32
- const animationDefinitions = [];
33
- /**
34
- * Step 1: Build options and stop existing animations (write)
35
- */
36
- for (let i = 0; i < numElements; i++) {
37
- const element = elements[i];
38
- const elementTransition = { ...options };
39
- /**
40
- * Resolve stagger function if provided.
41
- */
42
- if (typeof elementTransition.delay === "function") {
43
- elementTransition.delay = elementTransition.delay(i, numElements);
44
- }
45
- for (const valueName in keyframes) {
46
- let valueKeyframes = keyframes[valueName];
47
- if (!Array.isArray(valueKeyframes)) {
48
- valueKeyframes = [valueKeyframes];
49
- }
50
- const valueOptions = {
51
- ...getValueTransition(elementTransition, valueName),
52
- };
53
- valueOptions.duration && (valueOptions.duration = secondsToMilliseconds(valueOptions.duration));
54
- valueOptions.delay && (valueOptions.delay = secondsToMilliseconds(valueOptions.delay));
55
- /**
56
- * If there's an existing animation playing on this element then stop it
57
- * before creating a new one.
58
- */
59
- const map = getAnimationMap(element);
60
- const key = animationMapKey(valueName, valueOptions.pseudoElement || "");
61
- const currentAnimation = map.get(key);
62
- currentAnimation && currentAnimation.stop();
63
- animationDefinitions.push({
64
- map,
65
- key,
66
- unresolvedKeyframes: valueKeyframes,
67
- options: {
68
- ...valueOptions,
69
- element,
70
- name: valueName,
71
- allowFlatten: !elementTransition.type && !elementTransition.ease,
72
- },
73
- });
74
- }
75
- }
76
- /**
77
- * Step 2: Resolve keyframes (read)
78
- */
79
- for (let i = 0; i < animationDefinitions.length; i++) {
80
- const { unresolvedKeyframes, options: animationOptions } = animationDefinitions[i];
81
- const { element, name, pseudoElement } = animationOptions;
82
- if (!pseudoElement && unresolvedKeyframes[0] === null) {
83
- unresolvedKeyframes[0] = getComputedStyle(element, name);
84
- }
85
- fillWildcards(unresolvedKeyframes);
86
- applyPxDefaults(unresolvedKeyframes, name);
87
- /**
88
- * If we only have one keyframe, explicitly read the initial keyframe
89
- * from the computed style. This is to ensure consistency with WAAPI behaviour
90
- * for restarting animations, for instance .play() after finish, when it
91
- * has one vs two keyframes.
92
- */
93
- if (!pseudoElement && unresolvedKeyframes.length < 2) {
94
- unresolvedKeyframes.unshift(getComputedStyle(element, name));
95
- }
96
- animationOptions.keyframes = unresolvedKeyframes;
97
- }
98
- /**
99
- * Step 3: Create new animations (write)
100
- */
101
- const animations = [];
102
- for (let i = 0; i < animationDefinitions.length; i++) {
103
- const { map, key, options: animationOptions } = animationDefinitions[i];
104
- const animation = new NativeAnimation(animationOptions);
105
- map.set(key, animation);
106
- animation.finished.finally(() => map.delete(key));
107
- animations.push(animation);
108
- }
109
- return animations;
110
- }
111
-
112
- export { animateElements };
@@ -1,13 +0,0 @@
1
- import { createAnimationsFromSequence } from '../../sequence/create.mjs';
2
- import { animateElements } from './animate-elements.mjs';
3
- import { GroupAnimationWithThen } from '../../../../../../motion-dom/dist/es/animation/GroupAnimationWithThen.mjs';
4
-
5
- function animateSequence(definition, options) {
6
- const animations = [];
7
- createAnimationsFromSequence(definition, options).forEach(({ keyframes, transition }, element) => {
8
- animations.push(...animateElements(element, keyframes, transition));
9
- });
10
- return new GroupAnimationWithThen(animations);
11
- }
12
-
13
- export { animateSequence };
@@ -1,12 +0,0 @@
1
- import { animateElements } from './animate-elements.mjs';
2
- import { GroupAnimationWithThen } from '../../../../../../motion-dom/dist/es/animation/GroupAnimationWithThen.mjs';
3
-
4
- const createScopedWaapiAnimate = (scope) => {
5
- function scopedAnimate(elementOrSelector, keyframes, options) {
6
- return new GroupAnimationWithThen(animateElements(elementOrSelector, keyframes, options, scope));
7
- }
8
- return scopedAnimate;
9
- };
10
- const animateMini = /*@__PURE__*/ createScopedWaapiAnimate();
11
-
12
- export { animateMini, createScopedWaapiAnimate };
@@ -1,12 +0,0 @@
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
5
- ? 0
6
- : resolvedKeyframes.length - 1;
7
- return !index || finalKeyframe === undefined
8
- ? resolvedKeyframes[index]
9
- : finalKeyframe;
10
- }
11
-
12
- export { getFinalKeyframe };
@@ -1,80 +0,0 @@
1
- import { setTarget } from '../../render/utils/setters.mjs';
2
- import { animateVisualElement } from '../interfaces/visual-element.mjs';
3
- import { invariant } from '../../../../../motion-utils/dist/es/errors.mjs';
4
-
5
- function stopAnimation(visualElement) {
6
- visualElement.values.forEach((value) => value.stop());
7
- }
8
- function setVariants(visualElement, variantLabels) {
9
- const reversedLabels = [...variantLabels].reverse();
10
- reversedLabels.forEach((key) => {
11
- const variant = visualElement.getVariant(key);
12
- variant && setTarget(visualElement, variant);
13
- if (visualElement.variantChildren) {
14
- visualElement.variantChildren.forEach((child) => {
15
- setVariants(child, variantLabels);
16
- });
17
- }
18
- });
19
- }
20
- function setValues(visualElement, definition) {
21
- if (Array.isArray(definition)) {
22
- return setVariants(visualElement, definition);
23
- }
24
- else if (typeof definition === "string") {
25
- return setVariants(visualElement, [definition]);
26
- }
27
- else {
28
- setTarget(visualElement, definition);
29
- }
30
- }
31
- /**
32
- * @public
33
- */
34
- function animationControls() {
35
- /**
36
- * Track whether the host component has mounted.
37
- */
38
- let hasMounted = false;
39
- /**
40
- * A collection of linked component animation controls.
41
- */
42
- const subscribers = new Set();
43
- const controls = {
44
- subscribe(visualElement) {
45
- subscribers.add(visualElement);
46
- return () => void subscribers.delete(visualElement);
47
- },
48
- start(definition, transitionOverride) {
49
- invariant(hasMounted, "controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.");
50
- const animations = [];
51
- subscribers.forEach((visualElement) => {
52
- animations.push(animateVisualElement(visualElement, definition, {
53
- transitionOverride,
54
- }));
55
- });
56
- return Promise.all(animations);
57
- },
58
- set(definition) {
59
- invariant(hasMounted, "controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook.");
60
- return subscribers.forEach((visualElement) => {
61
- setValues(visualElement, definition);
62
- });
63
- },
64
- stop() {
65
- subscribers.forEach((visualElement) => {
66
- stopAnimation(visualElement);
67
- });
68
- },
69
- mount() {
70
- hasMounted = true;
71
- return () => {
72
- hasMounted = false;
73
- controls.stop();
74
- };
75
- },
76
- };
77
- return controls;
78
- }
79
-
80
- export { animationControls, setValues };
@@ -1,17 +0,0 @@
1
- import { useConstant } from '../../utils/use-constant.mjs';
2
- import { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';
3
- import { createScopedWaapiAnimate } from '../animators/waapi/animate-style.mjs';
4
-
5
- function useAnimateMini() {
6
- const scope = useConstant(() => ({
7
- current: null, // Will be hydrated by React
8
- animations: [],
9
- }));
10
- const animate = useConstant(() => createScopedWaapiAnimate(scope));
11
- useUnmountEffect(() => {
12
- scope.animations.forEach((animation) => animation.stop());
13
- });
14
- return [scope, animate];
15
- }
16
-
17
- export { useAnimateMini };
@@ -1,17 +0,0 @@
1
- import { useConstant } from '../../utils/use-constant.mjs';
2
- import { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';
3
- import { createScopedAnimate } from '../animate/index.mjs';
4
-
5
- function useAnimate() {
6
- const scope = useConstant(() => ({
7
- current: null, // Will be hydrated by React
8
- animations: [],
9
- }));
10
- const animate = useConstant(() => createScopedAnimate(scope));
11
- useUnmountEffect(() => {
12
- scope.animations.forEach((animation) => animation.stop());
13
- });
14
- return [scope, animate];
15
- }
16
-
17
- export { useAnimate };
@@ -1,64 +0,0 @@
1
- import { useState, useLayoutEffect } from 'react';
2
- import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';
3
- import { createBox } from '../../projection/geometry/models.mjs';
4
- import { VisualElement } from '../../render/VisualElement.mjs';
5
- import { useConstant } from '../../utils/use-constant.mjs';
6
- import { animateVisualElement } from '../interfaces/visual-element.mjs';
7
-
8
- const createObject = () => ({});
9
- class StateVisualElement extends VisualElement {
10
- constructor() {
11
- super(...arguments);
12
- this.measureInstanceViewportBox = createBox;
13
- }
14
- build() { }
15
- resetTransform() { }
16
- restoreTransform() { }
17
- removeValueFromRenderState() { }
18
- renderInstance() { }
19
- scrapeMotionValuesFromProps() {
20
- return createObject();
21
- }
22
- getBaseTargetFromProps() {
23
- return undefined;
24
- }
25
- readValueFromInstance(_state, key, options) {
26
- return options.initialState[key] || 0;
27
- }
28
- sortInstanceNodePosition() {
29
- return 0;
30
- }
31
- }
32
- const useVisualState = makeUseVisualState({
33
- scrapeMotionValuesFromProps: createObject,
34
- createRenderState: createObject,
35
- });
36
- /**
37
- * This is not an officially supported API and may be removed
38
- * on any version.
39
- */
40
- function useAnimatedState(initialState) {
41
- const [animationState, setAnimationState] = useState(initialState);
42
- const visualState = useVisualState({}, false);
43
- const element = useConstant(() => {
44
- return new StateVisualElement({
45
- props: {
46
- onUpdate: (v) => {
47
- setAnimationState({ ...v });
48
- },
49
- },
50
- visualState,
51
- presenceContext: null,
52
- }, { initialState });
53
- });
54
- useLayoutEffect(() => {
55
- element.mount({});
56
- return () => element.unmount();
57
- }, [element]);
58
- const startAnimation = useConstant(() => (animationDefinition) => {
59
- return animateVisualElement(element, animationDefinition);
60
- });
61
- return [animationState, startAnimation];
62
- }
63
-
64
- export { useAnimatedState };
@@ -1,41 +0,0 @@
1
- import { useConstant } from '../../utils/use-constant.mjs';
2
- import { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';
3
- import { animationControls } from './animation-controls.mjs';
4
-
5
- /**
6
- * Creates `LegacyAnimationControls`, which can be used to manually start, stop
7
- * and sequence animations on one or more components.
8
- *
9
- * The returned `LegacyAnimationControls` should be passed to the `animate` property
10
- * of the components you want to animate.
11
- *
12
- * These components can then be animated with the `start` method.
13
- *
14
- * ```jsx
15
- * import * as React from 'react'
16
- * import { motion, useAnimation } from 'framer-motion'
17
- *
18
- * export function MyComponent(props) {
19
- * const controls = useAnimation()
20
- *
21
- * controls.start({
22
- * x: 100,
23
- * transition: { duration: 0.5 },
24
- * })
25
- *
26
- * return <motion.div animate={controls} />
27
- * }
28
- * ```
29
- *
30
- * @returns Animation controller with `start` and `stop` methods
31
- *
32
- * @public
33
- */
34
- function useAnimationControls() {
35
- const controls = useConstant(animationControls);
36
- useIsomorphicLayoutEffect(controls.mount, []);
37
- return controls;
38
- }
39
- const useAnimation = useAnimationControls;
40
-
41
- export { useAnimation, useAnimationControls };
@@ -1,102 +0,0 @@
1
- import { getFinalKeyframe } from '../animators/waapi/utils/get-final-keyframe.mjs';
2
- import { getDefaultTransition } from '../utils/default-transitions.mjs';
3
- import { isTransitionDefined } from '../utils/is-transition-defined.mjs';
4
- import { getValueTransition } from '../../../../../motion-dom/dist/es/animation/utils/get-value-transition.mjs';
5
- import { secondsToMilliseconds } from '../../../../../motion-utils/dist/es/time-conversion.mjs';
6
- import { MotionGlobalConfig } from '../../../../../motion-utils/dist/es/global-config.mjs';
7
- import { frame } from '../../../../../motion-dom/dist/es/frameloop/frame.mjs';
8
- import { JSAnimation } from '../../../../../motion-dom/dist/es/animation/JSAnimation.mjs';
9
- import { AsyncMotionValueAnimation } from '../../../../../motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs';
10
-
11
- const animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {
12
- const valueTransition = getValueTransition(transition, name) || {};
13
- /**
14
- * Most transition values are currently completely overwritten by value-specific
15
- * transitions. In the future it'd be nicer to blend these transitions. But for now
16
- * delay actually does inherit from the root transition if not value-specific.
17
- */
18
- const delay = valueTransition.delay || transition.delay || 0;
19
- /**
20
- * Elapsed isn't a public transition option but can be passed through from
21
- * optimized appear effects in milliseconds.
22
- */
23
- let { elapsed = 0 } = transition;
24
- elapsed = elapsed - secondsToMilliseconds(delay);
25
- const options = {
26
- keyframes: Array.isArray(target) ? target : [null, target],
27
- ease: "easeOut",
28
- velocity: value.getVelocity(),
29
- ...valueTransition,
30
- delay: -elapsed,
31
- onUpdate: (v) => {
32
- value.set(v);
33
- valueTransition.onUpdate && valueTransition.onUpdate(v);
34
- },
35
- onComplete: () => {
36
- onComplete();
37
- valueTransition.onComplete && valueTransition.onComplete();
38
- },
39
- name,
40
- motionValue: value,
41
- element: isHandoff ? undefined : element,
42
- };
43
- /**
44
- * If there's no transition defined for this value, we can generate
45
- * unique transition settings for this value.
46
- */
47
- if (!isTransitionDefined(valueTransition)) {
48
- Object.assign(options, getDefaultTransition(name, options));
49
- }
50
- /**
51
- * Both WAAPI and our internal animation functions use durations
52
- * as defined by milliseconds, while our external API defines them
53
- * as seconds.
54
- */
55
- options.duration && (options.duration = secondsToMilliseconds(options.duration));
56
- options.repeatDelay && (options.repeatDelay = secondsToMilliseconds(options.repeatDelay));
57
- /**
58
- * Support deprecated way to set initial value. Prefer keyframe syntax.
59
- */
60
- if (options.from !== undefined) {
61
- options.keyframes[0] = options.from;
62
- }
63
- let shouldSkip = false;
64
- if (options.type === false ||
65
- (options.duration === 0 && !options.repeatDelay)) {
66
- options.duration = 0;
67
- if (options.delay === 0) {
68
- shouldSkip = true;
69
- }
70
- }
71
- if (MotionGlobalConfig.instantAnimations ||
72
- MotionGlobalConfig.skipAnimations) {
73
- shouldSkip = true;
74
- options.duration = 0;
75
- options.delay = 0;
76
- }
77
- /**
78
- * If the transition type or easing has been explicitly set by the user
79
- * then we don't want to allow flattening the animation.
80
- */
81
- options.allowFlatten = !valueTransition.type && !valueTransition.ease;
82
- /**
83
- * If we can or must skip creating the animation, and apply only
84
- * the final keyframe, do so. We also check once keyframes are resolved but
85
- * this early check prevents the need to create an animation at all.
86
- */
87
- if (shouldSkip && !isHandoff && value.get() !== undefined) {
88
- const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);
89
- if (finalKeyframe !== undefined) {
90
- frame.update(() => {
91
- options.onUpdate(finalKeyframe);
92
- options.onComplete();
93
- });
94
- return;
95
- }
96
- }
97
- return valueTransition.isSync
98
- ? new JSAnimation(options)
99
- : new AsyncMotionValueAnimation(options);
100
- };
101
-
102
- export { animateMotionValue };