motion 12.18.0 → 12.18.2

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 (409) 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.js +1 -1
  10. package/mini/package.json +1 -1
  11. package/package.json +11 -11
  12. package/react/package.json +1 -1
  13. package/react-client/package.json +1 -1
  14. package/react-m/package.json +1 -1
  15. package/dist/es/framer-motion/dist/es/animation/animate/index.mjs +0 -34
  16. package/dist/es/framer-motion/dist/es/animation/animate/resolve-subjects.mjs +0 -19
  17. package/dist/es/framer-motion/dist/es/animation/animate/sequence.mjs +0 -14
  18. package/dist/es/framer-motion/dist/es/animation/animate/single-value.mjs +0 -11
  19. package/dist/es/framer-motion/dist/es/animation/animate/subject.mjs +0 -52
  20. package/dist/es/framer-motion/dist/es/animation/animators/waapi/animate-elements.mjs +0 -112
  21. package/dist/es/framer-motion/dist/es/animation/animators/waapi/animate-sequence.mjs +0 -13
  22. package/dist/es/framer-motion/dist/es/animation/animators/waapi/animate-style.mjs +0 -12
  23. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +0 -12
  24. package/dist/es/framer-motion/dist/es/animation/hooks/animation-controls.mjs +0 -80
  25. package/dist/es/framer-motion/dist/es/animation/hooks/use-animate-style.mjs +0 -17
  26. package/dist/es/framer-motion/dist/es/animation/hooks/use-animate.mjs +0 -17
  27. package/dist/es/framer-motion/dist/es/animation/hooks/use-animated-state.mjs +0 -64
  28. package/dist/es/framer-motion/dist/es/animation/hooks/use-animation.mjs +0 -41
  29. package/dist/es/framer-motion/dist/es/animation/interfaces/motion-value.mjs +0 -102
  30. package/dist/es/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +0 -85
  31. package/dist/es/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs +0 -65
  32. package/dist/es/framer-motion/dist/es/animation/interfaces/visual-element.mjs +0 -26
  33. package/dist/es/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +0 -6
  34. package/dist/es/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +0 -7
  35. package/dist/es/framer-motion/dist/es/animation/optimized-appear/handoff.mjs +0 -38
  36. package/dist/es/framer-motion/dist/es/animation/optimized-appear/start.mjs +0 -171
  37. package/dist/es/framer-motion/dist/es/animation/optimized-appear/store-id.mjs +0 -8
  38. package/dist/es/framer-motion/dist/es/animation/optimized-appear/store.mjs +0 -4
  39. package/dist/es/framer-motion/dist/es/animation/sequence/create.mjs +0 -256
  40. package/dist/es/framer-motion/dist/es/animation/sequence/utils/calc-repeat-duration.mjs +0 -5
  41. package/dist/es/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +0 -23
  42. package/dist/es/framer-motion/dist/es/animation/sequence/utils/edit.mjs +0 -31
  43. package/dist/es/framer-motion/dist/es/animation/sequence/utils/normalize-times.mjs +0 -13
  44. package/dist/es/framer-motion/dist/es/animation/sequence/utils/sort.mjs +0 -14
  45. package/dist/es/framer-motion/dist/es/animation/utils/create-visual-element.mjs +0 -45
  46. package/dist/es/framer-motion/dist/es/animation/utils/default-transitions.mjs +0 -40
  47. package/dist/es/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +0 -7
  48. package/dist/es/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +0 -5
  49. package/dist/es/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +0 -5
  50. package/dist/es/framer-motion/dist/es/animation/utils/is-transition-defined.mjs +0 -10
  51. package/dist/es/framer-motion/dist/es/animation/utils/stagger.mjs +0 -26
  52. package/dist/es/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs +0 -87
  53. package/dist/es/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs +0 -64
  54. package/dist/es/framer-motion/dist/es/components/AnimatePresence/index.mjs +0 -166
  55. package/dist/es/framer-motion/dist/es/components/AnimatePresence/use-presence-data.mjs +0 -9
  56. package/dist/es/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs +0 -70
  57. package/dist/es/framer-motion/dist/es/components/AnimatePresence/utils.mjs +0 -14
  58. package/dist/es/framer-motion/dist/es/components/AnimateSharedLayout.mjs +0 -15
  59. package/dist/es/framer-motion/dist/es/components/LayoutGroup/index.mjs +0 -32
  60. package/dist/es/framer-motion/dist/es/components/LazyMotion/index.mjs +0 -68
  61. package/dist/es/framer-motion/dist/es/components/MotionConfig/index.mjs +0 -48
  62. package/dist/es/framer-motion/dist/es/components/Reorder/Group.mjs +0 -53
  63. package/dist/es/framer-motion/dist/es/components/Reorder/Item.mjs +0 -34
  64. package/dist/es/framer-motion/dist/es/components/Reorder/namespace.mjs +0 -2
  65. package/dist/es/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs +0 -24
  66. package/dist/es/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs +0 -10
  67. package/dist/es/framer-motion/dist/es/context/LayoutGroupContext.mjs +0 -6
  68. package/dist/es/framer-motion/dist/es/context/LazyContext.mjs +0 -6
  69. package/dist/es/framer-motion/dist/es/context/MotionConfigContext.mjs +0 -13
  70. package/dist/es/framer-motion/dist/es/context/MotionContext/create.mjs +0 -13
  71. package/dist/es/framer-motion/dist/es/context/MotionContext/index.mjs +0 -6
  72. package/dist/es/framer-motion/dist/es/context/MotionContext/utils.mjs +0 -17
  73. package/dist/es/framer-motion/dist/es/context/PresenceContext.mjs +0 -10
  74. package/dist/es/framer-motion/dist/es/context/ReorderContext.mjs +0 -6
  75. package/dist/es/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs +0 -9
  76. package/dist/es/framer-motion/dist/es/events/add-dom-event.mjs +0 -6
  77. package/dist/es/framer-motion/dist/es/events/add-pointer-event.mjs +0 -8
  78. package/dist/es/framer-motion/dist/es/events/event-info.mjs +0 -15
  79. package/dist/es/framer-motion/dist/es/events/use-dom-event.mjs +0 -34
  80. package/dist/es/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs +0 -479
  81. package/dist/es/framer-motion/dist/es/gestures/drag/index.mjs +0 -27
  82. package/dist/es/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs +0 -88
  83. package/dist/es/framer-motion/dist/es/gestures/drag/utils/constraints.mjs +0 -129
  84. package/dist/es/framer-motion/dist/es/gestures/focus.mjs +0 -41
  85. package/dist/es/framer-motion/dist/es/gestures/hover.mjs +0 -30
  86. package/dist/es/framer-motion/dist/es/gestures/pan/PanSession.mjs +0 -156
  87. package/dist/es/framer-motion/dist/es/gestures/pan/index.mjs +0 -50
  88. package/dist/es/framer-motion/dist/es/gestures/press.mjs +0 -33
  89. package/dist/es/framer-motion/dist/es/motion/features/Feature.mjs +0 -9
  90. package/dist/es/framer-motion/dist/es/motion/features/animation/exit.mjs +0 -36
  91. package/dist/es/framer-motion/dist/es/motion/features/animation/index.mjs +0 -40
  92. package/dist/es/framer-motion/dist/es/motion/features/animations.mjs +0 -13
  93. package/dist/es/framer-motion/dist/es/motion/features/definitions.mjs +0 -28
  94. package/dist/es/framer-motion/dist/es/motion/features/drag.mjs +0 -17
  95. package/dist/es/framer-motion/dist/es/motion/features/gestures.mjs +0 -21
  96. package/dist/es/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs +0 -135
  97. package/dist/es/framer-motion/dist/es/motion/features/layout.mjs +0 -11
  98. package/dist/es/framer-motion/dist/es/motion/features/load-features.mjs +0 -12
  99. package/dist/es/framer-motion/dist/es/motion/features/viewport/index.mjs +0 -72
  100. package/dist/es/framer-motion/dist/es/motion/features/viewport/observers.mjs +0 -49
  101. package/dist/es/framer-motion/dist/es/motion/index.mjs +0 -101
  102. package/dist/es/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +0 -11
  103. package/dist/es/framer-motion/dist/es/motion/utils/is-motion-component.mjs +0 -12
  104. package/dist/es/framer-motion/dist/es/motion/utils/symbol.mjs +0 -3
  105. package/dist/es/framer-motion/dist/es/motion/utils/unwrap-motion-component.mjs +0 -17
  106. package/dist/es/framer-motion/dist/es/motion/utils/use-motion-ref.mjs +0 -38
  107. package/dist/es/framer-motion/dist/es/motion/utils/use-visual-element.mjs +0 -133
  108. package/dist/es/framer-motion/dist/es/motion/utils/use-visual-state.mjs +0 -79
  109. package/dist/es/framer-motion/dist/es/motion/utils/valid-prop.mjs +0 -57
  110. package/dist/es/framer-motion/dist/es/projection/animation/mix-values.mjs +0 -91
  111. package/dist/es/framer-motion/dist/es/projection/geometry/conversion.mjs +0 -33
  112. package/dist/es/framer-motion/dist/es/projection/geometry/copy.mjs +0 -31
  113. package/dist/es/framer-motion/dist/es/projection/geometry/delta-apply.mjs +0 -119
  114. package/dist/es/framer-motion/dist/es/projection/geometry/delta-calc.mjs +0 -52
  115. package/dist/es/framer-motion/dist/es/projection/geometry/delta-remove.mjs +0 -54
  116. package/dist/es/framer-motion/dist/es/projection/geometry/models.mjs +0 -17
  117. package/dist/es/framer-motion/dist/es/projection/geometry/utils.mjs +0 -31
  118. package/dist/es/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +0 -13
  119. package/dist/es/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +0 -27
  120. package/dist/es/framer-motion/dist/es/projection/node/create-projection-node.mjs +0 -1605
  121. package/dist/es/framer-motion/dist/es/projection/node/group.mjs +0 -24
  122. package/dist/es/framer-motion/dist/es/projection/node/state.mjs +0 -19
  123. package/dist/es/framer-motion/dist/es/projection/shared/stack.mjs +0 -112
  124. package/dist/es/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +0 -41
  125. package/dist/es/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +0 -35
  126. package/dist/es/framer-motion/dist/es/projection/styles/scale-correction.mjs +0 -13
  127. package/dist/es/framer-motion/dist/es/projection/styles/transform.mjs +0 -49
  128. package/dist/es/framer-motion/dist/es/projection/use-instant-layout-transition.mjs +0 -14
  129. package/dist/es/framer-motion/dist/es/projection/use-reset-projection.mjs +0 -14
  130. package/dist/es/framer-motion/dist/es/projection/utils/each-axis.mjs +0 -5
  131. package/dist/es/framer-motion/dist/es/projection/utils/has-transform.mjs +0 -26
  132. package/dist/es/framer-motion/dist/es/projection/utils/measure.mjs +0 -17
  133. package/dist/es/framer-motion/dist/es/render/VisualElement.mjs +0 -478
  134. package/dist/es/framer-motion/dist/es/render/components/create-factory.mjs +0 -23
  135. package/dist/es/framer-motion/dist/es/render/components/create-proxy.mjs +0 -38
  136. package/dist/es/framer-motion/dist/es/render/components/m/create.mjs +0 -6
  137. package/dist/es/framer-motion/dist/es/render/components/m/elements.mjs +0 -227
  138. package/dist/es/framer-motion/dist/es/render/components/m/proxy.mjs +0 -6
  139. package/dist/es/framer-motion/dist/es/render/components/motion/create.mjs +0 -15
  140. package/dist/es/framer-motion/dist/es/render/components/motion/elements.mjs +0 -194
  141. package/dist/es/framer-motion/dist/es/render/components/motion/proxy.mjs +0 -6
  142. package/dist/es/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +0 -43
  143. package/dist/es/framer-motion/dist/es/render/dom/create-visual-element.mjs +0 -14
  144. package/dist/es/framer-motion/dist/es/render/dom/features-animation.mjs +0 -14
  145. package/dist/es/framer-motion/dist/es/render/dom/features-max.mjs +0 -14
  146. package/dist/es/framer-motion/dist/es/render/dom/features-min.mjs +0 -12
  147. package/dist/es/framer-motion/dist/es/render/dom/scroll/attach-animation.mjs +0 -17
  148. package/dist/es/framer-motion/dist/es/render/dom/scroll/attach-function.mjs +0 -23
  149. package/dist/es/framer-motion/dist/es/render/dom/scroll/index.mjs +0 -14
  150. package/dist/es/framer-motion/dist/es/render/dom/scroll/info.mjs +0 -56
  151. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs +0 -45
  152. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs +0 -60
  153. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs +0 -47
  154. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs +0 -35
  155. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs +0 -20
  156. package/dist/es/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs +0 -48
  157. package/dist/es/framer-motion/dist/es/render/dom/scroll/track.mjs +0 -81
  158. package/dist/es/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs +0 -30
  159. package/dist/es/framer-motion/dist/es/render/dom/use-render.mjs +0 -33
  160. package/dist/es/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +0 -6
  161. package/dist/es/framer-motion/dist/es/render/dom/utils/filter-props.mjs +0 -59
  162. package/dist/es/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs +0 -30
  163. package/dist/es/framer-motion/dist/es/render/dom/viewport/index.mjs +0 -43
  164. package/dist/es/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +0 -44
  165. package/dist/es/framer-motion/dist/es/render/html/config-motion.mjs +0 -12
  166. package/dist/es/framer-motion/dist/es/render/html/use-props.mjs +0 -57
  167. package/dist/es/framer-motion/dist/es/render/html/utils/build-styles.mjs +0 -65
  168. package/dist/es/framer-motion/dist/es/render/html/utils/build-transform.mjs +0 -62
  169. package/dist/es/framer-motion/dist/es/render/html/utils/create-render-state.mjs +0 -8
  170. package/dist/es/framer-motion/dist/es/render/html/utils/render.mjs +0 -9
  171. package/dist/es/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +0 -19
  172. package/dist/es/framer-motion/dist/es/render/object/ObjectVisualElement.mjs +0 -41
  173. package/dist/es/framer-motion/dist/es/render/store.mjs +0 -3
  174. package/dist/es/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +0 -45
  175. package/dist/es/framer-motion/dist/es/render/svg/config-motion.mjs +0 -12
  176. package/dist/es/framer-motion/dist/es/render/svg/lowercase-elements.mjs +0 -33
  177. package/dist/es/framer-motion/dist/es/render/svg/use-props.mjs +0 -24
  178. package/dist/es/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +0 -57
  179. package/dist/es/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +0 -30
  180. package/dist/es/framer-motion/dist/es/render/svg/utils/create-render-state.mjs +0 -8
  181. package/dist/es/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +0 -3
  182. package/dist/es/framer-motion/dist/es/render/svg/utils/path.mjs +0 -32
  183. package/dist/es/framer-motion/dist/es/render/svg/utils/render.mjs +0 -12
  184. package/dist/es/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +0 -19
  185. package/dist/es/framer-motion/dist/es/render/utils/animation-state.mjs +0 -342
  186. package/dist/es/framer-motion/dist/es/render/utils/compare-by-depth.mjs +0 -3
  187. package/dist/es/framer-motion/dist/es/render/utils/flat-tree.mjs +0 -24
  188. package/dist/es/framer-motion/dist/es/render/utils/get-variant-context.mjs +0 -28
  189. package/dist/es/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +0 -13
  190. package/dist/es/framer-motion/dist/es/render/utils/is-variant-label.mjs +0 -8
  191. package/dist/es/framer-motion/dist/es/render/utils/motion-values.mjs +0 -51
  192. package/dist/es/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +0 -8
  193. package/dist/es/framer-motion/dist/es/render/utils/resolve-variants.mjs +0 -36
  194. package/dist/es/framer-motion/dist/es/render/utils/setters.mjs +0 -31
  195. package/dist/es/framer-motion/dist/es/render/utils/variant-props.mjs +0 -12
  196. package/dist/es/framer-motion/dist/es/utils/delay.mjs +0 -24
  197. package/dist/es/framer-motion/dist/es/utils/distance.mjs +0 -9
  198. package/dist/es/framer-motion/dist/es/utils/get-context-window.mjs +0 -6
  199. package/dist/es/framer-motion/dist/es/utils/is-browser.mjs +0 -3
  200. package/dist/es/framer-motion/dist/es/utils/is-ref-object.mjs +0 -7
  201. package/dist/es/framer-motion/dist/es/utils/reduced-motion/index.mjs +0 -19
  202. package/dist/es/framer-motion/dist/es/utils/reduced-motion/state.mjs +0 -5
  203. package/dist/es/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs +0 -19
  204. package/dist/es/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs +0 -47
  205. package/dist/es/framer-motion/dist/es/utils/shallow-compare.mjs +0 -14
  206. package/dist/es/framer-motion/dist/es/utils/use-animation-frame.mjs +0 -21
  207. package/dist/es/framer-motion/dist/es/utils/use-constant.mjs +0 -18
  208. package/dist/es/framer-motion/dist/es/utils/use-cycle.mjs +0 -47
  209. package/dist/es/framer-motion/dist/es/utils/use-force-update.mjs +0 -19
  210. package/dist/es/framer-motion/dist/es/utils/use-in-view.mjs +0 -23
  211. package/dist/es/framer-motion/dist/es/utils/use-instant-transition.mjs +0 -41
  212. package/dist/es/framer-motion/dist/es/utils/use-is-mounted.mjs +0 -15
  213. package/dist/es/framer-motion/dist/es/utils/use-isomorphic-effect.mjs +0 -6
  214. package/dist/es/framer-motion/dist/es/utils/use-motion-value-event.mjs +0 -13
  215. package/dist/es/framer-motion/dist/es/utils/use-unmount-effect.mjs +0 -7
  216. package/dist/es/framer-motion/dist/es/value/scroll/use-element-scroll.mjs +0 -14
  217. package/dist/es/framer-motion/dist/es/value/scroll/use-viewport-scroll.mjs +0 -14
  218. package/dist/es/framer-motion/dist/es/value/use-combine-values.mjs +0 -37
  219. package/dist/es/framer-motion/dist/es/value/use-computed.mjs +0 -19
  220. package/dist/es/framer-motion/dist/es/value/use-inverted-scale.mjs +0 -52
  221. package/dist/es/framer-motion/dist/es/value/use-motion-template.mjs +0 -45
  222. package/dist/es/framer-motion/dist/es/value/use-motion-value.mjs +0 -38
  223. package/dist/es/framer-motion/dist/es/value/use-scroll.mjs +0 -39
  224. package/dist/es/framer-motion/dist/es/value/use-spring.mjs +0 -22
  225. package/dist/es/framer-motion/dist/es/value/use-time.mjs +0 -10
  226. package/dist/es/framer-motion/dist/es/value/use-transform.mjs +0 -29
  227. package/dist/es/framer-motion/dist/es/value/use-velocity.mjs +0 -35
  228. package/dist/es/framer-motion/dist/es/value/use-will-change/WillChangeMotionValue.mjs +0 -21
  229. package/dist/es/framer-motion/dist/es/value/use-will-change/add-will-change.mjs +0 -20
  230. package/dist/es/framer-motion/dist/es/value/use-will-change/index.mjs +0 -8
  231. package/dist/es/framer-motion/dist/es/value/use-will-change/is.mjs +0 -7
  232. package/dist/es/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +0 -12
  233. package/dist/es/motion/lib/debug.mjs +0 -1
  234. package/dist/es/motion/lib/index.mjs +0 -131
  235. package/dist/es/motion/lib/mini.mjs +0 -2
  236. package/dist/es/motion/lib/react-client.mjs +0 -3
  237. package/dist/es/motion/lib/react-m.mjs +0 -3
  238. package/dist/es/motion/lib/react-mini.mjs +0 -2
  239. package/dist/es/motion/lib/react.mjs +0 -204
  240. package/dist/es/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs +0 -175
  241. package/dist/es/motion-dom/dist/es/animation/GroupAnimation.mjs +0 -72
  242. package/dist/es/motion-dom/dist/es/animation/GroupAnimationWithThen.mjs +0 -9
  243. package/dist/es/motion-dom/dist/es/animation/JSAnimation.mjs +0 -348
  244. package/dist/es/motion-dom/dist/es/animation/NativeAnimation.mjs +0 -158
  245. package/dist/es/motion-dom/dist/es/animation/NativeAnimationExtended.mjs +0 -65
  246. package/dist/es/motion-dom/dist/es/animation/NativeAnimationWrapper.mjs +0 -14
  247. package/dist/es/motion-dom/dist/es/animation/drivers/frame.mjs +0 -17
  248. package/dist/es/motion-dom/dist/es/animation/generators/inertia.mjs +0 -87
  249. package/dist/es/motion-dom/dist/es/animation/generators/keyframes.mjs +0 -51
  250. package/dist/es/motion-dom/dist/es/animation/generators/spring/defaults.mjs +0 -27
  251. package/dist/es/motion-dom/dist/es/animation/generators/spring/find.mjs +0 -86
  252. package/dist/es/motion-dom/dist/es/animation/generators/spring/index.mjs +0 -176
  253. package/dist/es/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs +0 -17
  254. package/dist/es/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs +0 -19
  255. package/dist/es/motion-dom/dist/es/animation/generators/utils/is-generator.mjs +0 -5
  256. package/dist/es/motion-dom/dist/es/animation/generators/utils/velocity.mjs +0 -9
  257. package/dist/es/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs +0 -131
  258. package/dist/es/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs +0 -147
  259. package/dist/es/motion-dom/dist/es/animation/keyframes/get-final.mjs +0 -11
  260. package/dist/es/motion-dom/dist/es/animation/keyframes/offsets/default.mjs +0 -9
  261. package/dist/es/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs +0 -12
  262. package/dist/es/motion-dom/dist/es/animation/keyframes/offsets/time.mjs +0 -5
  263. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/apply-px-defaults.mjs +0 -11
  264. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs +0 -7
  265. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs +0 -15
  266. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs +0 -30
  267. package/dist/es/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs +0 -36
  268. package/dist/es/motion-dom/dist/es/animation/utils/WithPromise.mjs +0 -26
  269. package/dist/es/motion-dom/dist/es/animation/utils/active-animations.mjs +0 -9
  270. package/dist/es/motion-dom/dist/es/animation/utils/can-animate.mjs +0 -42
  271. package/dist/es/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs +0 -42
  272. package/dist/es/motion-dom/dist/es/animation/utils/get-value-transition.mjs +0 -7
  273. package/dist/es/motion-dom/dist/es/animation/utils/is-animatable.mjs +0 -30
  274. package/dist/es/motion-dom/dist/es/animation/utils/is-css-variable.mjs +0 -15
  275. package/dist/es/motion-dom/dist/es/animation/utils/replace-transition-type.mjs +0 -18
  276. package/dist/es/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs +0 -3
  277. package/dist/es/motion-dom/dist/es/animation/waapi/easing/is-supported.mjs +0 -14
  278. package/dist/es/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs +0 -28
  279. package/dist/es/motion-dom/dist/es/animation/waapi/easing/supported.mjs +0 -15
  280. package/dist/es/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs +0 -39
  281. package/dist/es/motion-dom/dist/es/animation/waapi/supports/partial-keyframes.mjs +0 -13
  282. package/dist/es/motion-dom/dist/es/animation/waapi/supports/waapi.mjs +0 -37
  283. package/dist/es/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs +0 -14
  284. package/dist/es/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs +0 -15
  285. package/dist/es/motion-dom/dist/es/animation/waapi/utils/linear.mjs +0 -12
  286. package/dist/es/motion-dom/dist/es/animation/waapi/utils/px-values.mjs +0 -39
  287. package/dist/es/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs +0 -20
  288. package/dist/es/motion-dom/dist/es/effects/MotionValueState.mjs +0 -47
  289. package/dist/es/motion-dom/dist/es/effects/attr/index.mjs +0 -41
  290. package/dist/es/motion-dom/dist/es/effects/prop/index.mjs +0 -9
  291. package/dist/es/motion-dom/dist/es/effects/style/index.mjs +0 -52
  292. package/dist/es/motion-dom/dist/es/effects/style/transform.mjs +0 -38
  293. package/dist/es/motion-dom/dist/es/effects/svg/index.mjs +0 -41
  294. package/dist/es/motion-dom/dist/es/effects/utils/create-dom-effect.mjs +0 -18
  295. package/dist/es/motion-dom/dist/es/effects/utils/create-effect.mjs +0 -21
  296. package/dist/es/motion-dom/dist/es/frameloop/batcher.mjs +0 -71
  297. package/dist/es/motion-dom/dist/es/frameloop/frame.mjs +0 -6
  298. package/dist/es/motion-dom/dist/es/frameloop/index-legacy.mjs +0 -20
  299. package/dist/es/motion-dom/dist/es/frameloop/microtask.mjs +0 -6
  300. package/dist/es/motion-dom/dist/es/frameloop/order.mjs +0 -12
  301. package/dist/es/motion-dom/dist/es/frameloop/render-step.mjs +0 -92
  302. package/dist/es/motion-dom/dist/es/frameloop/sync-time.mjs +0 -31
  303. package/dist/es/motion-dom/dist/es/gestures/drag/state/is-active.mjs +0 -9
  304. package/dist/es/motion-dom/dist/es/gestures/drag/state/set-active.mjs +0 -28
  305. package/dist/es/motion-dom/dist/es/gestures/hover.mjs +0 -37
  306. package/dist/es/motion-dom/dist/es/gestures/press/index.mjs +0 -83
  307. package/dist/es/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs +0 -13
  308. package/dist/es/motion-dom/dist/es/gestures/press/utils/keyboard.mjs +0 -38
  309. package/dist/es/motion-dom/dist/es/gestures/press/utils/state.mjs +0 -3
  310. package/dist/es/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs +0 -20
  311. package/dist/es/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs +0 -18
  312. package/dist/es/motion-dom/dist/es/gestures/utils/setup.mjs +0 -15
  313. package/dist/es/motion-dom/dist/es/render/dom/is-css-var.mjs +0 -3
  314. package/dist/es/motion-dom/dist/es/render/dom/parse-transform.mjs +0 -83
  315. package/dist/es/motion-dom/dist/es/render/dom/style-computed.mjs +0 -10
  316. package/dist/es/motion-dom/dist/es/render/dom/style-set.mjs +0 -9
  317. package/dist/es/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs +0 -5
  318. package/dist/es/motion-dom/dist/es/render/utils/keys-position.mjs +0 -13
  319. package/dist/es/motion-dom/dist/es/render/utils/keys-transform.mjs +0 -28
  320. package/dist/es/motion-dom/dist/es/resize/handle-element.mjs +0 -63
  321. package/dist/es/motion-dom/dist/es/resize/handle-window.mjs +0 -31
  322. package/dist/es/motion-dom/dist/es/resize/index.mjs +0 -8
  323. package/dist/es/motion-dom/dist/es/scroll/observe.mjs +0 -18
  324. package/dist/es/motion-dom/dist/es/stats/animation-count.mjs +0 -7
  325. package/dist/es/motion-dom/dist/es/stats/buffer.mjs +0 -6
  326. package/dist/es/motion-dom/dist/es/stats/index.mjs +0 -117
  327. package/dist/es/motion-dom/dist/es/utils/interpolate.mjs +0 -79
  328. package/dist/es/motion-dom/dist/es/utils/is-html-element.mjs +0 -11
  329. package/dist/es/motion-dom/dist/es/utils/is-svg-element.mjs +0 -11
  330. package/dist/es/motion-dom/dist/es/utils/is-svg-svg-element.mjs +0 -11
  331. package/dist/es/motion-dom/dist/es/utils/mix/color.mjs +0 -47
  332. package/dist/es/motion-dom/dist/es/utils/mix/complex.mjs +0 -93
  333. package/dist/es/motion-dom/dist/es/utils/mix/immediate.mjs +0 -5
  334. package/dist/es/motion-dom/dist/es/utils/mix/index.mjs +0 -14
  335. package/dist/es/motion-dom/dist/es/utils/mix/number.mjs +0 -26
  336. package/dist/es/motion-dom/dist/es/utils/mix/visibility.mjs +0 -16
  337. package/dist/es/motion-dom/dist/es/utils/resolve-elements.mjs +0 -17
  338. package/dist/es/motion-dom/dist/es/utils/supports/flags.mjs +0 -7
  339. package/dist/es/motion-dom/dist/es/utils/supports/linear-easing.mjs +0 -15
  340. package/dist/es/motion-dom/dist/es/utils/supports/memo.mjs +0 -9
  341. package/dist/es/motion-dom/dist/es/utils/supports/scroll-timeline.mjs +0 -5
  342. package/dist/es/motion-dom/dist/es/utils/transform.mjs +0 -14
  343. package/dist/es/motion-dom/dist/es/value/index.mjs +0 -329
  344. package/dist/es/motion-dom/dist/es/value/map-value.mjs +0 -46
  345. package/dist/es/motion-dom/dist/es/value/spring-value.mjs +0 -72
  346. package/dist/es/motion-dom/dist/es/value/subscribe-value.mjs +0 -13
  347. package/dist/es/motion-dom/dist/es/value/transform-value.mjs +0 -35
  348. package/dist/es/motion-dom/dist/es/value/types/auto.mjs +0 -9
  349. package/dist/es/motion-dom/dist/es/value/types/color/hex.mjs +0 -40
  350. package/dist/es/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs +0 -42
  351. package/dist/es/motion-dom/dist/es/value/types/color/hsla.mjs +0 -22
  352. package/dist/es/motion-dom/dist/es/value/types/color/index.mjs +0 -32
  353. package/dist/es/motion-dom/dist/es/value/types/color/rgba.mjs +0 -25
  354. package/dist/es/motion-dom/dist/es/value/types/color/utils.mjs +0 -29
  355. package/dist/es/motion-dom/dist/es/value/types/complex/filter.mjs +0 -30
  356. package/dist/es/motion-dom/dist/es/value/types/complex/index.mjs +0 -91
  357. package/dist/es/motion-dom/dist/es/value/types/dimensions.mjs +0 -15
  358. package/dist/es/motion-dom/dist/es/value/types/int.mjs +0 -8
  359. package/dist/es/motion-dom/dist/es/value/types/maps/defaults.mjs +0 -30
  360. package/dist/es/motion-dom/dist/es/value/types/maps/number.mjs +0 -50
  361. package/dist/es/motion-dom/dist/es/value/types/maps/transform.mjs +0 -31
  362. package/dist/es/motion-dom/dist/es/value/types/numbers/index.mjs +0 -17
  363. package/dist/es/motion-dom/dist/es/value/types/numbers/units.mjs +0 -18
  364. package/dist/es/motion-dom/dist/es/value/types/test.mjs +0 -6
  365. package/dist/es/motion-dom/dist/es/value/types/utils/animatable-none.mjs +0 -15
  366. package/dist/es/motion-dom/dist/es/value/types/utils/color-regex.mjs +0 -3
  367. package/dist/es/motion-dom/dist/es/value/types/utils/find.mjs +0 -15
  368. package/dist/es/motion-dom/dist/es/value/types/utils/float-regex.mjs +0 -3
  369. package/dist/es/motion-dom/dist/es/value/types/utils/get-as-type.mjs +0 -10
  370. package/dist/es/motion-dom/dist/es/value/types/utils/is-nullish.mjs +0 -5
  371. package/dist/es/motion-dom/dist/es/value/types/utils/sanitize.mjs +0 -5
  372. package/dist/es/motion-dom/dist/es/value/types/utils/single-color-regex.mjs +0 -3
  373. package/dist/es/motion-dom/dist/es/value/utils/is-motion-value.mjs +0 -3
  374. package/dist/es/motion-dom/dist/es/view/index.mjs +0 -64
  375. package/dist/es/motion-dom/dist/es/view/queue.mjs +0 -52
  376. package/dist/es/motion-dom/dist/es/view/start.mjs +0 -155
  377. package/dist/es/motion-dom/dist/es/view/utils/choose-layer-type.mjs +0 -11
  378. package/dist/es/motion-dom/dist/es/view/utils/css.mjs +0 -32
  379. package/dist/es/motion-dom/dist/es/view/utils/get-layer-name.mjs +0 -8
  380. package/dist/es/motion-dom/dist/es/view/utils/get-view-animations.mjs +0 -12
  381. package/dist/es/motion-dom/dist/es/view/utils/has-target.mjs +0 -5
  382. package/dist/es/motion-utils/dist/es/array.mjs +0 -21
  383. package/dist/es/motion-utils/dist/es/clamp.mjs +0 -9
  384. package/dist/es/motion-utils/dist/es/easing/anticipate.mjs +0 -5
  385. package/dist/es/motion-utils/dist/es/easing/back.mjs +0 -9
  386. package/dist/es/motion-utils/dist/es/easing/circ.mjs +0 -8
  387. package/dist/es/motion-utils/dist/es/easing/cubic-bezier.mjs +0 -51
  388. package/dist/es/motion-utils/dist/es/easing/ease.mjs +0 -7
  389. package/dist/es/motion-utils/dist/es/easing/modifiers/mirror.mjs +0 -5
  390. package/dist/es/motion-utils/dist/es/easing/modifiers/reverse.mjs +0 -5
  391. package/dist/es/motion-utils/dist/es/easing/steps.mjs +0 -15
  392. package/dist/es/motion-utils/dist/es/easing/utils/get-easing-for-segment.mjs +0 -8
  393. package/dist/es/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs +0 -3
  394. package/dist/es/motion-utils/dist/es/easing/utils/is-easing-array.mjs +0 -5
  395. package/dist/es/motion-utils/dist/es/easing/utils/map.mjs +0 -41
  396. package/dist/es/motion-utils/dist/es/errors.mjs +0 -16
  397. package/dist/es/motion-utils/dist/es/global-config.mjs +0 -3
  398. package/dist/es/motion-utils/dist/es/is-numerical-string.mjs +0 -6
  399. package/dist/es/motion-utils/dist/es/is-object.mjs +0 -5
  400. package/dist/es/motion-utils/dist/es/is-zero-value-string.mjs +0 -6
  401. package/dist/es/motion-utils/dist/es/memo.mjs +0 -11
  402. package/dist/es/motion-utils/dist/es/noop.mjs +0 -4
  403. package/dist/es/motion-utils/dist/es/pipe.mjs +0 -11
  404. package/dist/es/motion-utils/dist/es/progress.mjs +0 -19
  405. package/dist/es/motion-utils/dist/es/subscription-manager.mjs +0 -40
  406. package/dist/es/motion-utils/dist/es/time-conversion.mjs +0 -12
  407. package/dist/es/motion-utils/dist/es/velocity-per-second.mjs +0 -11
  408. package/dist/es/motion-utils/dist/es/warn-once.mjs +0 -14
  409. package/dist/es/motion-utils/dist/es/wrap.mjs +0 -6
@@ -1,17 +0,0 @@
1
- /**
2
- * Implement a practical max duration for keyframe generation
3
- * to prevent infinite loops
4
- */
5
- const maxGeneratorDuration = 20000;
6
- function calcGeneratorDuration(generator) {
7
- let duration = 0;
8
- const timeStep = 50;
9
- let state = generator.next(duration);
10
- while (!state.done && duration < maxGeneratorDuration) {
11
- duration += timeStep;
12
- state = generator.next(duration);
13
- }
14
- return duration >= maxGeneratorDuration ? Infinity : duration;
15
- }
16
-
17
- export { calcGeneratorDuration, maxGeneratorDuration };
@@ -1,19 +0,0 @@
1
- import { calcGeneratorDuration, maxGeneratorDuration } from './calc-duration.mjs';
2
- import { millisecondsToSeconds } from '../../../../../../motion-utils/dist/es/time-conversion.mjs';
3
-
4
- /**
5
- * Create a progress => progress easing function from a generator.
6
- */
7
- function createGeneratorEasing(options, scale = 100, createGenerator) {
8
- const generator = createGenerator({ ...options, keyframes: [0, scale] });
9
- const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);
10
- return {
11
- type: "keyframes",
12
- ease: (progress) => {
13
- return generator.next(duration * progress).value / scale;
14
- },
15
- duration: millisecondsToSeconds(duration),
16
- };
17
- }
18
-
19
- export { createGeneratorEasing };
@@ -1,5 +0,0 @@
1
- function isGenerator(type) {
2
- return typeof type === "function" && "applyToOptions" in type;
3
- }
4
-
5
- export { isGenerator };
@@ -1,9 +0,0 @@
1
- import { velocityPerSecond } from '../../../../../../motion-utils/dist/es/velocity-per-second.mjs';
2
-
3
- const velocitySampleDuration = 5; // ms
4
- function calcGeneratorVelocity(resolveValue, t, current) {
5
- const prevT = Math.max(t - velocitySampleDuration, 0);
6
- return velocityPerSecond(current - resolveValue(prevT), t - prevT);
7
- }
8
-
9
- export { calcGeneratorVelocity };
@@ -1,131 +0,0 @@
1
- import { positionalKeys } from '../../render/utils/keys-position.mjs';
2
- import { findDimensionValueType } from '../../value/types/dimensions.mjs';
3
- import { getVariableValue } from '../utils/css-variables-conversion.mjs';
4
- import { isCSSVariableToken } from '../utils/is-css-variable.mjs';
5
- import { KeyframeResolver } from './KeyframesResolver.mjs';
6
- import { isNone } from './utils/is-none.mjs';
7
- import { makeNoneKeyframesAnimatable } from './utils/make-none-animatable.mjs';
8
- import { isNumOrPxType, positionalValues } from './utils/unit-conversion.mjs';
9
-
10
- class DOMKeyframesResolver extends KeyframeResolver {
11
- constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {
12
- super(unresolvedKeyframes, onComplete, name, motionValue, element, true);
13
- }
14
- readKeyframes() {
15
- const { unresolvedKeyframes, element, name } = this;
16
- if (!element || !element.current)
17
- return;
18
- super.readKeyframes();
19
- /**
20
- * If any keyframe is a CSS variable, we need to find its value by sampling the element
21
- */
22
- for (let i = 0; i < unresolvedKeyframes.length; i++) {
23
- let keyframe = unresolvedKeyframes[i];
24
- if (typeof keyframe === "string") {
25
- keyframe = keyframe.trim();
26
- if (isCSSVariableToken(keyframe)) {
27
- const resolved = getVariableValue(keyframe, element.current);
28
- if (resolved !== undefined) {
29
- unresolvedKeyframes[i] = resolved;
30
- }
31
- if (i === unresolvedKeyframes.length - 1) {
32
- this.finalKeyframe = keyframe;
33
- }
34
- }
35
- }
36
- }
37
- /**
38
- * Resolve "none" values. We do this potentially twice - once before and once after measuring keyframes.
39
- * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which
40
- * have a far bigger performance impact.
41
- */
42
- this.resolveNoneKeyframes();
43
- /**
44
- * Check to see if unit type has changed. If so schedule jobs that will
45
- * temporarily set styles to the destination keyframes.
46
- * Skip if we have more than two keyframes or this isn't a positional value.
47
- * TODO: We can throw if there are multiple keyframes and the value type changes.
48
- */
49
- if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {
50
- return;
51
- }
52
- const [origin, target] = unresolvedKeyframes;
53
- const originType = findDimensionValueType(origin);
54
- const targetType = findDimensionValueType(target);
55
- /**
56
- * Either we don't recognise these value types or we can animate between them.
57
- */
58
- if (originType === targetType)
59
- return;
60
- /**
61
- * If both values are numbers or pixels, we can animate between them by
62
- * converting them to numbers.
63
- */
64
- if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {
65
- for (let i = 0; i < unresolvedKeyframes.length; i++) {
66
- const value = unresolvedKeyframes[i];
67
- if (typeof value === "string") {
68
- unresolvedKeyframes[i] = parseFloat(value);
69
- }
70
- }
71
- }
72
- else if (positionalValues[name]) {
73
- /**
74
- * Else, the only way to resolve this is by measuring the element.
75
- */
76
- this.needsMeasurement = true;
77
- }
78
- }
79
- resolveNoneKeyframes() {
80
- const { unresolvedKeyframes, name } = this;
81
- const noneKeyframeIndexes = [];
82
- for (let i = 0; i < unresolvedKeyframes.length; i++) {
83
- if (unresolvedKeyframes[i] === null ||
84
- isNone(unresolvedKeyframes[i])) {
85
- noneKeyframeIndexes.push(i);
86
- }
87
- }
88
- if (noneKeyframeIndexes.length) {
89
- makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);
90
- }
91
- }
92
- measureInitialState() {
93
- const { element, unresolvedKeyframes, name } = this;
94
- if (!element || !element.current)
95
- return;
96
- if (name === "height") {
97
- this.suspendedScrollY = window.pageYOffset;
98
- }
99
- this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));
100
- unresolvedKeyframes[0] = this.measuredOrigin;
101
- // Set final key frame to measure after next render
102
- const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];
103
- if (measureKeyframe !== undefined) {
104
- element.getValue(name, measureKeyframe).jump(measureKeyframe, false);
105
- }
106
- }
107
- measureEndState() {
108
- const { element, name, unresolvedKeyframes } = this;
109
- if (!element || !element.current)
110
- return;
111
- const value = element.getValue(name);
112
- value && value.jump(this.measuredOrigin, false);
113
- const finalKeyframeIndex = unresolvedKeyframes.length - 1;
114
- const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];
115
- unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));
116
- if (finalKeyframe !== null && this.finalKeyframe === undefined) {
117
- this.finalKeyframe = finalKeyframe;
118
- }
119
- // If we removed transform values, reapply them before the next render
120
- if (this.removedTransforms?.length) {
121
- this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {
122
- element
123
- .getValue(unsetTransformName)
124
- .set(unsetTransformValue);
125
- });
126
- }
127
- this.resolveNoneKeyframes();
128
- }
129
- }
130
-
131
- export { DOMKeyframesResolver };
@@ -1,147 +0,0 @@
1
- import { fillWildcards } from './utils/fill-wildcards.mjs';
2
- import { removeNonTranslationalTransform } from './utils/unit-conversion.mjs';
3
- import { frame } from '../../frameloop/frame.mjs';
4
-
5
- const toResolve = new Set();
6
- let isScheduled = false;
7
- let anyNeedsMeasurement = false;
8
- let isForced = false;
9
- function measureAllKeyframes() {
10
- if (anyNeedsMeasurement) {
11
- const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);
12
- const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));
13
- const transformsToRestore = new Map();
14
- /**
15
- * Write pass
16
- * If we're measuring elements we want to remove bounding box-changing transforms.
17
- */
18
- elementsToMeasure.forEach((element) => {
19
- const removedTransforms = removeNonTranslationalTransform(element);
20
- if (!removedTransforms.length)
21
- return;
22
- transformsToRestore.set(element, removedTransforms);
23
- element.render();
24
- });
25
- // Read
26
- resolversToMeasure.forEach((resolver) => resolver.measureInitialState());
27
- // Write
28
- elementsToMeasure.forEach((element) => {
29
- element.render();
30
- const restore = transformsToRestore.get(element);
31
- if (restore) {
32
- restore.forEach(([key, value]) => {
33
- element.getValue(key)?.set(value);
34
- });
35
- }
36
- });
37
- // Read
38
- resolversToMeasure.forEach((resolver) => resolver.measureEndState());
39
- // Write
40
- resolversToMeasure.forEach((resolver) => {
41
- if (resolver.suspendedScrollY !== undefined) {
42
- window.scrollTo(0, resolver.suspendedScrollY);
43
- }
44
- });
45
- }
46
- anyNeedsMeasurement = false;
47
- isScheduled = false;
48
- toResolve.forEach((resolver) => resolver.complete(isForced));
49
- toResolve.clear();
50
- }
51
- function readAllKeyframes() {
52
- toResolve.forEach((resolver) => {
53
- resolver.readKeyframes();
54
- if (resolver.needsMeasurement) {
55
- anyNeedsMeasurement = true;
56
- }
57
- });
58
- }
59
- function flushKeyframeResolvers() {
60
- isForced = true;
61
- readAllKeyframes();
62
- measureAllKeyframes();
63
- isForced = false;
64
- }
65
- class KeyframeResolver {
66
- constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {
67
- this.state = "pending";
68
- /**
69
- * Track whether this resolver is async. If it is, it'll be added to the
70
- * resolver queue and flushed in the next frame. Resolvers that aren't going
71
- * to trigger read/write thrashing don't need to be async.
72
- */
73
- this.isAsync = false;
74
- /**
75
- * Track whether this resolver needs to perform a measurement
76
- * to resolve its keyframes.
77
- */
78
- this.needsMeasurement = false;
79
- this.unresolvedKeyframes = [...unresolvedKeyframes];
80
- this.onComplete = onComplete;
81
- this.name = name;
82
- this.motionValue = motionValue;
83
- this.element = element;
84
- this.isAsync = isAsync;
85
- }
86
- scheduleResolve() {
87
- this.state = "scheduled";
88
- if (this.isAsync) {
89
- toResolve.add(this);
90
- if (!isScheduled) {
91
- isScheduled = true;
92
- frame.read(readAllKeyframes);
93
- frame.resolveKeyframes(measureAllKeyframes);
94
- }
95
- }
96
- else {
97
- this.readKeyframes();
98
- this.complete();
99
- }
100
- }
101
- readKeyframes() {
102
- const { unresolvedKeyframes, name, element, motionValue } = this;
103
- // If initial keyframe is null we need to read it from the DOM
104
- if (unresolvedKeyframes[0] === null) {
105
- const currentValue = motionValue?.get();
106
- // TODO: This doesn't work if the final keyframe is a wildcard
107
- const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];
108
- if (currentValue !== undefined) {
109
- unresolvedKeyframes[0] = currentValue;
110
- }
111
- else if (element && name) {
112
- const valueAsRead = element.readValue(name, finalKeyframe);
113
- if (valueAsRead !== undefined && valueAsRead !== null) {
114
- unresolvedKeyframes[0] = valueAsRead;
115
- }
116
- }
117
- if (unresolvedKeyframes[0] === undefined) {
118
- unresolvedKeyframes[0] = finalKeyframe;
119
- }
120
- if (motionValue && currentValue === undefined) {
121
- motionValue.set(unresolvedKeyframes[0]);
122
- }
123
- }
124
- fillWildcards(unresolvedKeyframes);
125
- }
126
- setFinalKeyframe() { }
127
- measureInitialState() { }
128
- renderEndStyles() { }
129
- measureEndState() { }
130
- complete(isForcedComplete = false) {
131
- this.state = "complete";
132
- this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, isForcedComplete);
133
- toResolve.delete(this);
134
- }
135
- cancel() {
136
- if (this.state === "scheduled") {
137
- toResolve.delete(this);
138
- this.state = "pending";
139
- }
140
- }
141
- resume() {
142
- if (this.state === "pending")
143
- this.scheduleResolve();
144
- }
145
- }
146
-
147
- export { KeyframeResolver, flushKeyframeResolvers };
@@ -1,11 +0,0 @@
1
- const isNotNull = (value) => value !== null;
2
- function getFinalKeyframe(keyframes, { repeat, repeatType = "loop" }, finalKeyframe, speed = 1) {
3
- const resolvedKeyframes = keyframes.filter(isNotNull);
4
- const useFirstKeyframe = speed < 0 || (repeat && repeatType !== "loop" && repeat % 2 === 1);
5
- const index = useFirstKeyframe ? 0 : resolvedKeyframes.length - 1;
6
- return !index || finalKeyframe === undefined
7
- ? resolvedKeyframes[index]
8
- : finalKeyframe;
9
- }
10
-
11
- export { getFinalKeyframe };
@@ -1,9 +0,0 @@
1
- import { fillOffset } from './fill.mjs';
2
-
3
- function defaultOffset(arr) {
4
- const offset = [0];
5
- fillOffset(offset, arr.length - 1);
6
- return offset;
7
- }
8
-
9
- export { defaultOffset };
@@ -1,12 +0,0 @@
1
- import { mixNumber } from '../../../utils/mix/number.mjs';
2
- import { progress } from '../../../../../../motion-utils/dist/es/progress.mjs';
3
-
4
- function fillOffset(offset, remaining) {
5
- const min = offset[offset.length - 1];
6
- for (let i = 1; i <= remaining; i++) {
7
- const offsetProgress = progress(0, remaining, i);
8
- offset.push(mixNumber(min, 1, offsetProgress));
9
- }
10
- }
11
-
12
- export { fillOffset };
@@ -1,5 +0,0 @@
1
- function convertOffsetToTimes(offset, duration) {
2
- return offset.map((o) => o * duration);
3
- }
4
-
5
- export { convertOffsetToTimes };
@@ -1,11 +0,0 @@
1
- import { pxValues } from '../../waapi/utils/px-values.mjs';
2
-
3
- function applyPxDefaults(keyframes, name) {
4
- for (let i = 0; i < keyframes.length; i++) {
5
- if (typeof keyframes[i] === "number" && pxValues.has(name)) {
6
- keyframes[i] = keyframes[i] + "px";
7
- }
8
- }
9
- }
10
-
11
- export { applyPxDefaults };
@@ -1,7 +0,0 @@
1
- function fillWildcards(keyframes) {
2
- for (let i = 1; i < keyframes.length; i++) {
3
- keyframes[i] ?? (keyframes[i] = keyframes[i - 1]);
4
- }
5
- }
6
-
7
- export { fillWildcards };
@@ -1,15 +0,0 @@
1
- import { isZeroValueString } from '../../../../../../motion-utils/dist/es/is-zero-value-string.mjs';
2
-
3
- function isNone(value) {
4
- if (typeof value === "number") {
5
- return value === 0;
6
- }
7
- else if (value !== null) {
8
- return value === "none" || value === "0" || isZeroValueString(value);
9
- }
10
- else {
11
- return true;
12
- }
13
- }
14
-
15
- export { isNone };
@@ -1,30 +0,0 @@
1
- import { analyseComplexValue } from '../../../value/types/complex/index.mjs';
2
- import { getAnimatableNone } from '../../../value/types/utils/animatable-none.mjs';
3
-
4
- /**
5
- * If we encounter keyframes like "none" or "0" and we also have keyframes like
6
- * "#fff" or "200px 200px" we want to find a keyframe to serve as a template for
7
- * the "none" keyframes. In this case "#fff" or "200px 200px" - then these get turned into
8
- * zero equivalents, i.e. "#fff0" or "0px 0px".
9
- */
10
- const invalidTemplates = new Set(["auto", "none", "0"]);
11
- function makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {
12
- let i = 0;
13
- let animatableTemplate = undefined;
14
- while (i < unresolvedKeyframes.length && !animatableTemplate) {
15
- const keyframe = unresolvedKeyframes[i];
16
- if (typeof keyframe === "string" &&
17
- !invalidTemplates.has(keyframe) &&
18
- analyseComplexValue(keyframe).values.length) {
19
- animatableTemplate = unresolvedKeyframes[i];
20
- }
21
- i++;
22
- }
23
- if (animatableTemplate && name) {
24
- for (const noneIndex of noneKeyframeIndexes) {
25
- unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);
26
- }
27
- }
28
- }
29
-
30
- export { makeNoneKeyframesAnimatable };
@@ -1,36 +0,0 @@
1
- import { parseValueFromTransform } from '../../../render/dom/parse-transform.mjs';
2
- import { transformPropOrder } from '../../../render/utils/keys-transform.mjs';
3
- import { number } from '../../../value/types/numbers/index.mjs';
4
- import { px } from '../../../value/types/numbers/units.mjs';
5
-
6
- const isNumOrPxType = (v) => v === number || v === px;
7
- const transformKeys = new Set(["x", "y", "z"]);
8
- const nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));
9
- function removeNonTranslationalTransform(visualElement) {
10
- const removedTransforms = [];
11
- nonTranslationalTransformKeys.forEach((key) => {
12
- const value = visualElement.getValue(key);
13
- if (value !== undefined) {
14
- removedTransforms.push([key, value.get()]);
15
- value.set(key.startsWith("scale") ? 1 : 0);
16
- }
17
- });
18
- return removedTransforms;
19
- }
20
- const positionalValues = {
21
- // Dimensions
22
- width: ({ x }, { paddingLeft = "0", paddingRight = "0" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),
23
- height: ({ y }, { paddingTop = "0", paddingBottom = "0" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),
24
- top: (_bbox, { top }) => parseFloat(top),
25
- left: (_bbox, { left }) => parseFloat(left),
26
- bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),
27
- right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),
28
- // Transform
29
- x: (_bbox, { transform }) => parseValueFromTransform(transform, "x"),
30
- y: (_bbox, { transform }) => parseValueFromTransform(transform, "y"),
31
- };
32
- // Alias translate longform names
33
- positionalValues.translateX = positionalValues.x;
34
- positionalValues.translateY = positionalValues.y;
35
-
36
- export { isNumOrPxType, positionalValues, removeNonTranslationalTransform };
@@ -1,26 +0,0 @@
1
- class WithPromise {
2
- constructor() {
3
- this.updateFinished();
4
- }
5
- get finished() {
6
- return this._finished;
7
- }
8
- updateFinished() {
9
- this._finished = new Promise((resolve) => {
10
- this.resolve = resolve;
11
- });
12
- }
13
- notifyFinished() {
14
- this.resolve();
15
- }
16
- /**
17
- * Allows the animation to be awaited.
18
- *
19
- * @deprecated Use `finished` instead.
20
- */
21
- then(onResolve, onReject) {
22
- return this.finished.then(onResolve, onReject);
23
- }
24
- }
25
-
26
- export { WithPromise };
@@ -1,9 +0,0 @@
1
- const animationMaps = new WeakMap();
2
- const animationMapKey = (name, pseudoElement = "") => `${name}:${pseudoElement}`;
3
- function getAnimationMap(element) {
4
- const map = animationMaps.get(element) || new Map();
5
- animationMaps.set(element, map);
6
- return map;
7
- }
8
-
9
- export { animationMapKey, getAnimationMap };
@@ -1,42 +0,0 @@
1
- import { isGenerator } from '../generators/utils/is-generator.mjs';
2
- import { isAnimatable } from './is-animatable.mjs';
3
- import { warning } from '../../../../../motion-utils/dist/es/errors.mjs';
4
-
5
- function hasKeyframesChanged(keyframes) {
6
- const current = keyframes[0];
7
- if (keyframes.length === 1)
8
- return true;
9
- for (let i = 0; i < keyframes.length; i++) {
10
- if (keyframes[i] !== current)
11
- return true;
12
- }
13
- }
14
- function canAnimate(keyframes, name, type, velocity) {
15
- /**
16
- * Check if we're able to animate between the start and end keyframes,
17
- * and throw a warning if we're attempting to animate between one that's
18
- * animatable and another that isn't.
19
- */
20
- const originKeyframe = keyframes[0];
21
- if (originKeyframe === null)
22
- return false;
23
- /**
24
- * These aren't traditionally animatable but we do support them.
25
- * In future we could look into making this more generic or replacing
26
- * this function with mix() === mixImmediate
27
- */
28
- if (name === "display" || name === "visibility")
29
- return true;
30
- const targetKeyframe = keyframes[keyframes.length - 1];
31
- const isOriginAnimatable = isAnimatable(originKeyframe, name);
32
- const isTargetAnimatable = isAnimatable(targetKeyframe, name);
33
- warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from "${originKeyframe}" to "${targetKeyframe}". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \`style\` property.`);
34
- // Always skip if any of these are true
35
- if (!isOriginAnimatable || !isTargetAnimatable) {
36
- return false;
37
- }
38
- return (hasKeyframesChanged(keyframes) ||
39
- ((type === "spring" || isGenerator(type)) && velocity));
40
- }
41
-
42
- export { canAnimate };
@@ -1,42 +0,0 @@
1
- import { isCSSVariableToken } from './is-css-variable.mjs';
2
- import { invariant } from '../../../../../motion-utils/dist/es/errors.mjs';
3
- import { isNumericalString } from '../../../../../motion-utils/dist/es/is-numerical-string.mjs';
4
-
5
- /**
6
- * Parse Framer's special CSS variable format into a CSS token and a fallback.
7
- *
8
- * ```
9
- * `var(--foo, #fff)` => [`--foo`, '#fff']
10
- * ```
11
- *
12
- * @param current
13
- */
14
- const splitCSSVariableRegex =
15
- // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words
16
- /^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;
17
- function parseCSSVariable(current) {
18
- const match = splitCSSVariableRegex.exec(current);
19
- if (!match)
20
- return [,];
21
- const [, token1, token2, fallback] = match;
22
- return [`--${token1 ?? token2}`, fallback];
23
- }
24
- const maxDepth = 4;
25
- function getVariableValue(current, element, depth = 1) {
26
- invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property "${current}". This may indicate a circular fallback dependency.`);
27
- const [token, fallback] = parseCSSVariable(current);
28
- // No CSS variable detected
29
- if (!token)
30
- return;
31
- // Attempt to read this CSS variable off the element
32
- const resolved = window.getComputedStyle(element).getPropertyValue(token);
33
- if (resolved) {
34
- const trimmed = resolved.trim();
35
- return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;
36
- }
37
- return isCSSVariableToken(fallback)
38
- ? getVariableValue(fallback, element, depth + 1)
39
- : fallback;
40
- }
41
-
42
- export { getVariableValue, parseCSSVariable };
@@ -1,7 +0,0 @@
1
- function getValueTransition(transition, key) {
2
- return (transition?.[key] ??
3
- transition?.["default"] ??
4
- transition);
5
- }
6
-
7
- export { getValueTransition };
@@ -1,30 +0,0 @@
1
- import { complex } from '../../value/types/complex/index.mjs';
2
-
3
- /**
4
- * Check if a value is animatable. Examples:
5
- *
6
- * ✅: 100, "100px", "#fff"
7
- * ❌: "block", "url(2.jpg)"
8
- * @param value
9
- *
10
- * @internal
11
- */
12
- const isAnimatable = (value, name) => {
13
- // If the list of keys tat might be non-animatable grows, replace with Set
14
- if (name === "zIndex")
15
- return false;
16
- // If it's a number or a keyframes array, we can animate it. We might at some point
17
- // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,
18
- // but for now lets leave it like this for performance reasons
19
- if (typeof value === "number" || Array.isArray(value))
20
- return true;
21
- if (typeof value === "string" && // It's animatable if we have a string
22
- (complex.test(value) || value === "0") && // And it contains numbers and/or colors
23
- !value.startsWith("url(") // Unless it starts with "url("
24
- ) {
25
- return true;
26
- }
27
- return false;
28
- };
29
-
30
- export { isAnimatable };
@@ -1,15 +0,0 @@
1
- const checkStringStartsWith = (token) => (key) => typeof key === "string" && key.startsWith(token);
2
- const isCSSVariableName =
3
- /*@__PURE__*/ checkStringStartsWith("--");
4
- const startsAsVariableToken =
5
- /*@__PURE__*/ checkStringStartsWith("var(--");
6
- const isCSSVariableToken = (value) => {
7
- const startsWithToken = startsAsVariableToken(value);
8
- if (!startsWithToken)
9
- return false;
10
- // Ensure any comments are stripped from the value as this can harm performance of the regex.
11
- return singleCssVariableRegex.test(value.split("/*")[0].trim());
12
- };
13
- const singleCssVariableRegex = /var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;
14
-
15
- export { isCSSVariableName, isCSSVariableToken };