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,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 };