motion 10.18.0 → 11.11.13

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 (384) hide show
  1. package/.turbo/turbo-build.log +32 -0
  2. package/{LICENSE → LICENSE.md} +2 -2
  3. package/README.md +99 -7
  4. package/dist/cjs/index.js +6117 -0
  5. package/dist/cjs/react-client.js +10003 -0
  6. package/dist/cjs/react-m.js +1852 -0
  7. package/dist/es/framer-motion/dist/es/animation/GroupPlaybackControls.mjs +78 -0
  8. package/dist/es/framer-motion/dist/es/animation/animate/index.mjs +34 -0
  9. package/dist/es/framer-motion/dist/es/animation/animate/resolve-subjects.mjs +19 -0
  10. package/dist/es/framer-motion/dist/es/animation/animate/sequence.mjs +14 -0
  11. package/dist/es/framer-motion/dist/es/animation/animate/single-value.mjs +11 -0
  12. package/dist/es/framer-motion/dist/es/animation/animate/subject.mjs +52 -0
  13. package/dist/es/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs +318 -0
  14. package/dist/es/framer-motion/dist/es/animation/animators/BaseAnimation.mjs +113 -0
  15. package/dist/es/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs +384 -0
  16. package/dist/es/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs +17 -0
  17. package/dist/es/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs +14 -0
  18. package/dist/es/framer-motion/dist/es/animation/animators/utils/can-animate.mjs +42 -0
  19. package/dist/es/framer-motion/dist/es/animation/animators/waapi/NativeAnimation.mjs +169 -0
  20. package/dist/es/framer-motion/dist/es/animation/animators/waapi/animate-elements.mjs +36 -0
  21. package/dist/es/framer-motion/dist/es/animation/animators/waapi/animate-style.mjs +12 -0
  22. package/dist/es/framer-motion/dist/es/animation/animators/waapi/easing.mjs +44 -0
  23. package/dist/es/framer-motion/dist/es/animation/animators/waapi/index.mjs +23 -0
  24. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/attach-timeline.mjs +6 -0
  25. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +12 -0
  26. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/linear.mjs +15 -0
  27. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/memo-supports.mjs +9 -0
  28. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/style.mjs +8 -0
  29. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/supports-flags.mjs +9 -0
  30. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/supports-linear-easing.mjs +15 -0
  31. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/supports-partial-keyframes.mjs +13 -0
  32. package/dist/es/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs +5 -0
  33. package/dist/es/framer-motion/dist/es/animation/generators/inertia.mjs +87 -0
  34. package/dist/es/framer-motion/dist/es/animation/generators/keyframes.mjs +51 -0
  35. package/dist/es/framer-motion/dist/es/animation/generators/spring/find.mjs +89 -0
  36. package/dist/es/framer-motion/dist/es/animation/generators/spring/index.mjs +129 -0
  37. package/dist/es/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs +17 -0
  38. package/dist/es/framer-motion/dist/es/animation/generators/utils/is-generator.mjs +5 -0
  39. package/dist/es/framer-motion/dist/es/animation/generators/utils/velocity.mjs +9 -0
  40. package/dist/es/framer-motion/dist/es/animation/hooks/animation-controls.mjs +80 -0
  41. package/dist/es/framer-motion/dist/es/animation/hooks/use-animate-style.mjs +17 -0
  42. package/dist/es/framer-motion/dist/es/animation/hooks/use-animate.mjs +17 -0
  43. package/dist/es/framer-motion/dist/es/animation/hooks/use-animated-state.mjs +64 -0
  44. package/dist/es/framer-motion/dist/es/animation/hooks/use-animation.mjs +41 -0
  45. package/dist/es/framer-motion/dist/es/animation/interfaces/motion-value.mjs +113 -0
  46. package/dist/es/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +75 -0
  47. package/dist/es/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs +66 -0
  48. package/dist/es/framer-motion/dist/es/animation/interfaces/visual-element.mjs +26 -0
  49. package/dist/es/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +6 -0
  50. package/dist/es/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +7 -0
  51. package/dist/es/framer-motion/dist/es/animation/optimized-appear/handoff.mjs +40 -0
  52. package/dist/es/framer-motion/dist/es/animation/optimized-appear/start.mjs +173 -0
  53. package/dist/es/framer-motion/dist/es/animation/optimized-appear/store-id.mjs +8 -0
  54. package/dist/es/framer-motion/dist/es/animation/optimized-appear/store.mjs +4 -0
  55. package/dist/es/framer-motion/dist/es/animation/sequence/create.mjs +230 -0
  56. package/dist/es/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +21 -0
  57. package/dist/es/framer-motion/dist/es/animation/sequence/utils/edit.mjs +31 -0
  58. package/dist/es/framer-motion/dist/es/animation/sequence/utils/sort.mjs +14 -0
  59. package/dist/es/framer-motion/dist/es/animation/utils/create-visual-element.mjs +44 -0
  60. package/dist/es/framer-motion/dist/es/animation/utils/default-transitions.mjs +40 -0
  61. package/dist/es/framer-motion/dist/es/animation/utils/get-value-transition.mjs +9 -0
  62. package/dist/es/framer-motion/dist/es/animation/utils/is-animatable.mjs +30 -0
  63. package/dist/es/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +7 -0
  64. package/dist/es/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +5 -0
  65. package/dist/es/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +5 -0
  66. package/dist/es/framer-motion/dist/es/animation/utils/is-none.mjs +15 -0
  67. package/dist/es/framer-motion/dist/es/animation/utils/is-transition-defined.mjs +10 -0
  68. package/dist/es/framer-motion/dist/es/animation/utils/stagger.mjs +26 -0
  69. package/dist/es/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs +77 -0
  70. package/dist/es/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs +61 -0
  71. package/dist/es/framer-motion/dist/es/components/AnimatePresence/index.mjs +163 -0
  72. package/dist/es/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs +66 -0
  73. package/dist/es/framer-motion/dist/es/components/AnimatePresence/utils.mjs +14 -0
  74. package/dist/es/framer-motion/dist/es/components/AnimateSharedLayout.mjs +15 -0
  75. package/dist/es/framer-motion/dist/es/components/LayoutGroup/index.mjs +32 -0
  76. package/dist/es/framer-motion/dist/es/components/LazyMotion/index.mjs +68 -0
  77. package/dist/es/framer-motion/dist/es/components/MotionConfig/index.mjs +48 -0
  78. package/dist/es/framer-motion/dist/es/components/Reorder/Group.mjs +53 -0
  79. package/dist/es/framer-motion/dist/es/components/Reorder/Item.mjs +34 -0
  80. package/dist/es/framer-motion/dist/es/components/Reorder/namespace.mjs +2 -0
  81. package/dist/es/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs +24 -0
  82. package/dist/es/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs +10 -0
  83. package/dist/es/framer-motion/dist/es/context/LayoutGroupContext.mjs +6 -0
  84. package/dist/es/framer-motion/dist/es/context/LazyContext.mjs +6 -0
  85. package/dist/es/framer-motion/dist/es/context/MotionConfigContext.mjs +13 -0
  86. package/dist/es/framer-motion/dist/es/context/MotionContext/create.mjs +13 -0
  87. package/dist/es/framer-motion/dist/es/context/MotionContext/index.mjs +6 -0
  88. package/dist/es/framer-motion/dist/es/context/MotionContext/utils.mjs +17 -0
  89. package/dist/es/framer-motion/dist/es/context/PresenceContext.mjs +9 -0
  90. package/dist/es/framer-motion/dist/es/context/ReorderContext.mjs +6 -0
  91. package/dist/es/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs +9 -0
  92. package/dist/es/framer-motion/dist/es/easing/anticipate.mjs +5 -0
  93. package/dist/es/framer-motion/dist/es/easing/back.mjs +9 -0
  94. package/dist/es/framer-motion/dist/es/easing/circ.mjs +8 -0
  95. package/dist/es/framer-motion/dist/es/easing/cubic-bezier.mjs +51 -0
  96. package/dist/es/framer-motion/dist/es/easing/ease.mjs +7 -0
  97. package/dist/es/framer-motion/dist/es/easing/modifiers/mirror.mjs +5 -0
  98. package/dist/es/framer-motion/dist/es/easing/modifiers/reverse.mjs +5 -0
  99. package/dist/es/framer-motion/dist/es/easing/steps.mjs +15 -0
  100. package/dist/es/framer-motion/dist/es/easing/utils/create-generator-easing.mjs +17 -0
  101. package/dist/es/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs +8 -0
  102. package/dist/es/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs +3 -0
  103. package/dist/es/framer-motion/dist/es/easing/utils/is-easing-array.mjs +5 -0
  104. package/dist/es/framer-motion/dist/es/easing/utils/map.mjs +38 -0
  105. package/dist/es/framer-motion/dist/es/events/add-dom-event.mjs +6 -0
  106. package/dist/es/framer-motion/dist/es/events/add-pointer-event.mjs +8 -0
  107. package/dist/es/framer-motion/dist/es/events/event-info.mjs +15 -0
  108. package/dist/es/framer-motion/dist/es/events/use-dom-event.mjs +34 -0
  109. package/dist/es/framer-motion/dist/es/events/utils/is-primary-pointer.mjs +18 -0
  110. package/dist/es/framer-motion/dist/es/frameloop/batcher.mjs +74 -0
  111. package/dist/es/framer-motion/dist/es/frameloop/frame.mjs +6 -0
  112. package/dist/es/framer-motion/dist/es/frameloop/index-legacy.mjs +20 -0
  113. package/dist/es/framer-motion/dist/es/frameloop/microtask.mjs +5 -0
  114. package/dist/es/framer-motion/dist/es/frameloop/render-step.mjs +80 -0
  115. package/dist/es/framer-motion/dist/es/frameloop/sync-time.mjs +31 -0
  116. package/dist/es/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs +487 -0
  117. package/dist/es/framer-motion/dist/es/gestures/drag/index.mjs +27 -0
  118. package/dist/es/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs +88 -0
  119. package/dist/es/framer-motion/dist/es/gestures/drag/utils/constraints.mjs +129 -0
  120. package/dist/es/framer-motion/dist/es/gestures/drag/utils/lock.mjs +53 -0
  121. package/dist/es/framer-motion/dist/es/gestures/focus.mjs +41 -0
  122. package/dist/es/framer-motion/dist/es/gestures/hover.mjs +33 -0
  123. package/dist/es/framer-motion/dist/es/gestures/pan/PanSession.mjs +156 -0
  124. package/dist/es/framer-motion/dist/es/gestures/pan/index.mjs +50 -0
  125. package/dist/es/framer-motion/dist/es/gestures/press.mjs +130 -0
  126. package/dist/es/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs +20 -0
  127. package/dist/es/framer-motion/dist/es/motion/features/Feature.mjs +9 -0
  128. package/dist/es/framer-motion/dist/es/motion/features/animation/exit.mjs +31 -0
  129. package/dist/es/framer-motion/dist/es/motion/features/animation/index.mjs +41 -0
  130. package/dist/es/framer-motion/dist/es/motion/features/animations.mjs +13 -0
  131. package/dist/es/framer-motion/dist/es/motion/features/definitions.mjs +28 -0
  132. package/dist/es/framer-motion/dist/es/motion/features/drag.mjs +17 -0
  133. package/dist/es/framer-motion/dist/es/motion/features/gestures.mjs +21 -0
  134. package/dist/es/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs +134 -0
  135. package/dist/es/framer-motion/dist/es/motion/features/layout.mjs +11 -0
  136. package/dist/es/framer-motion/dist/es/motion/features/load-features.mjs +12 -0
  137. package/dist/es/framer-motion/dist/es/motion/features/viewport/index.mjs +72 -0
  138. package/dist/es/framer-motion/dist/es/motion/features/viewport/observers.mjs +49 -0
  139. package/dist/es/framer-motion/dist/es/motion/index.mjs +98 -0
  140. package/dist/es/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +11 -0
  141. package/dist/es/framer-motion/dist/es/motion/utils/is-motion-component.mjs +12 -0
  142. package/dist/es/framer-motion/dist/es/motion/utils/symbol.mjs +3 -0
  143. package/dist/es/framer-motion/dist/es/motion/utils/unwrap-motion-component.mjs +17 -0
  144. package/dist/es/framer-motion/dist/es/motion/utils/use-motion-ref.mjs +36 -0
  145. package/dist/es/framer-motion/dist/es/motion/utils/use-visual-element.mjs +134 -0
  146. package/dist/es/framer-motion/dist/es/motion/utils/use-visual-state.mjs +82 -0
  147. package/dist/es/framer-motion/dist/es/motion/utils/valid-prop.mjs +57 -0
  148. package/dist/es/framer-motion/dist/es/projection/animation/mix-values.mjs +93 -0
  149. package/dist/es/framer-motion/dist/es/projection/geometry/conversion.mjs +33 -0
  150. package/dist/es/framer-motion/dist/es/projection/geometry/copy.mjs +31 -0
  151. package/dist/es/framer-motion/dist/es/projection/geometry/delta-apply.mjs +119 -0
  152. package/dist/es/framer-motion/dist/es/projection/geometry/delta-calc.mjs +52 -0
  153. package/dist/es/framer-motion/dist/es/projection/geometry/delta-remove.mjs +54 -0
  154. package/dist/es/framer-motion/dist/es/projection/geometry/models.mjs +17 -0
  155. package/dist/es/framer-motion/dist/es/projection/geometry/utils.mjs +31 -0
  156. package/dist/es/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +13 -0
  157. package/dist/es/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +27 -0
  158. package/dist/es/framer-motion/dist/es/projection/node/create-projection-node.mjs +1583 -0
  159. package/dist/es/framer-motion/dist/es/projection/node/group.mjs +24 -0
  160. package/dist/es/framer-motion/dist/es/projection/node/state.mjs +19 -0
  161. package/dist/es/framer-motion/dist/es/projection/shared/stack.mjs +112 -0
  162. package/dist/es/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +41 -0
  163. package/dist/es/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +35 -0
  164. package/dist/es/framer-motion/dist/es/projection/styles/scale-correction.mjs +6 -0
  165. package/dist/es/framer-motion/dist/es/projection/styles/transform.mjs +49 -0
  166. package/dist/es/framer-motion/dist/es/projection/use-instant-layout-transition.mjs +14 -0
  167. package/dist/es/framer-motion/dist/es/projection/use-reset-projection.mjs +14 -0
  168. package/dist/es/framer-motion/dist/es/projection/utils/each-axis.mjs +5 -0
  169. package/dist/es/framer-motion/dist/es/projection/utils/has-transform.mjs +26 -0
  170. package/dist/es/framer-motion/dist/es/projection/utils/measure.mjs +17 -0
  171. package/dist/es/framer-motion/dist/es/render/VisualElement.mjs +477 -0
  172. package/dist/es/framer-motion/dist/es/render/components/create-factory.mjs +23 -0
  173. package/dist/es/framer-motion/dist/es/render/components/create-proxy.mjs +38 -0
  174. package/dist/es/framer-motion/dist/es/render/components/m/create.mjs +6 -0
  175. package/dist/es/framer-motion/dist/es/render/components/m/elements.mjs +227 -0
  176. package/dist/es/framer-motion/dist/es/render/components/m/proxy.mjs +6 -0
  177. package/dist/es/framer-motion/dist/es/render/components/motion/create.mjs +15 -0
  178. package/dist/es/framer-motion/dist/es/render/components/motion/elements.mjs +194 -0
  179. package/dist/es/framer-motion/dist/es/render/components/motion/proxy.mjs +6 -0
  180. package/dist/es/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs +130 -0
  181. package/dist/es/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +28 -0
  182. package/dist/es/framer-motion/dist/es/render/dom/create-visual-element.mjs +14 -0
  183. package/dist/es/framer-motion/dist/es/render/dom/features-animation.mjs +14 -0
  184. package/dist/es/framer-motion/dist/es/render/dom/features-max.mjs +14 -0
  185. package/dist/es/framer-motion/dist/es/render/dom/features-min.mjs +12 -0
  186. package/dist/es/framer-motion/dist/es/render/dom/resize/handle-element.mjs +64 -0
  187. package/dist/es/framer-motion/dist/es/render/dom/resize/handle-window.mjs +30 -0
  188. package/dist/es/framer-motion/dist/es/render/dom/resize/index.mjs +8 -0
  189. package/dist/es/framer-motion/dist/es/render/dom/scroll/index.mjs +80 -0
  190. package/dist/es/framer-motion/dist/es/render/dom/scroll/info.mjs +56 -0
  191. package/dist/es/framer-motion/dist/es/render/dom/scroll/observe.mjs +18 -0
  192. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs +45 -0
  193. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs +59 -0
  194. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs +45 -0
  195. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs +35 -0
  196. package/dist/es/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs +20 -0
  197. package/dist/es/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs +48 -0
  198. package/dist/es/framer-motion/dist/es/render/dom/scroll/supports.mjs +5 -0
  199. package/dist/es/framer-motion/dist/es/render/dom/scroll/track.mjs +84 -0
  200. package/dist/es/framer-motion/dist/es/render/dom/use-render.mjs +33 -0
  201. package/dist/es/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +6 -0
  202. package/dist/es/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs +42 -0
  203. package/dist/es/framer-motion/dist/es/render/dom/utils/filter-props.mjs +59 -0
  204. package/dist/es/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs +15 -0
  205. package/dist/es/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs +30 -0
  206. package/dist/es/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs +5 -0
  207. package/dist/es/framer-motion/dist/es/render/dom/utils/resolve-element.mjs +28 -0
  208. package/dist/es/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs +65 -0
  209. package/dist/es/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs +15 -0
  210. package/dist/es/framer-motion/dist/es/render/dom/value-types/defaults.mjs +30 -0
  211. package/dist/es/framer-motion/dist/es/render/dom/value-types/dimensions.mjs +15 -0
  212. package/dist/es/framer-motion/dist/es/render/dom/value-types/find.mjs +15 -0
  213. package/dist/es/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs +10 -0
  214. package/dist/es/framer-motion/dist/es/render/dom/value-types/number-browser.mjs +41 -0
  215. package/dist/es/framer-motion/dist/es/render/dom/value-types/number.mjs +18 -0
  216. package/dist/es/framer-motion/dist/es/render/dom/value-types/test.mjs +6 -0
  217. package/dist/es/framer-motion/dist/es/render/dom/value-types/transform.mjs +31 -0
  218. package/dist/es/framer-motion/dist/es/render/dom/value-types/type-auto.mjs +9 -0
  219. package/dist/es/framer-motion/dist/es/render/dom/value-types/type-int.mjs +8 -0
  220. package/dist/es/framer-motion/dist/es/render/dom/viewport/index.mjs +43 -0
  221. package/dist/es/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +57 -0
  222. package/dist/es/framer-motion/dist/es/render/html/config-motion.mjs +12 -0
  223. package/dist/es/framer-motion/dist/es/render/html/use-props.mjs +57 -0
  224. package/dist/es/framer-motion/dist/es/render/html/utils/build-styles.mjs +65 -0
  225. package/dist/es/framer-motion/dist/es/render/html/utils/build-transform.mjs +62 -0
  226. package/dist/es/framer-motion/dist/es/render/html/utils/create-render-state.mjs +8 -0
  227. package/dist/es/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs +30 -0
  228. package/dist/es/framer-motion/dist/es/render/html/utils/render.mjs +9 -0
  229. package/dist/es/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +20 -0
  230. package/dist/es/framer-motion/dist/es/render/html/utils/transform.mjs +28 -0
  231. package/dist/es/framer-motion/dist/es/render/object/ObjectVisualElement.mjs +41 -0
  232. package/dist/es/framer-motion/dist/es/render/store.mjs +3 -0
  233. package/dist/es/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +45 -0
  234. package/dist/es/framer-motion/dist/es/render/svg/config-motion.mjs +40 -0
  235. package/dist/es/framer-motion/dist/es/render/svg/lowercase-elements.mjs +33 -0
  236. package/dist/es/framer-motion/dist/es/render/svg/use-props.mjs +24 -0
  237. package/dist/es/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +52 -0
  238. package/dist/es/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +30 -0
  239. package/dist/es/framer-motion/dist/es/render/svg/utils/create-render-state.mjs +8 -0
  240. package/dist/es/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +3 -0
  241. package/dist/es/framer-motion/dist/es/render/svg/utils/path.mjs +32 -0
  242. package/dist/es/framer-motion/dist/es/render/svg/utils/render.mjs +12 -0
  243. package/dist/es/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +19 -0
  244. package/dist/es/framer-motion/dist/es/render/svg/utils/transform-origin.mjs +18 -0
  245. package/dist/es/framer-motion/dist/es/render/utils/KeyframesResolver.mjs +164 -0
  246. package/dist/es/framer-motion/dist/es/render/utils/animation-state.mjs +332 -0
  247. package/dist/es/framer-motion/dist/es/render/utils/compare-by-depth.mjs +3 -0
  248. package/dist/es/framer-motion/dist/es/render/utils/flat-tree.mjs +24 -0
  249. package/dist/es/framer-motion/dist/es/render/utils/get-variant-context.mjs +28 -0
  250. package/dist/es/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +13 -0
  251. package/dist/es/framer-motion/dist/es/render/utils/is-variant-label.mjs +8 -0
  252. package/dist/es/framer-motion/dist/es/render/utils/motion-values.mjs +59 -0
  253. package/dist/es/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +8 -0
  254. package/dist/es/framer-motion/dist/es/render/utils/resolve-variants.mjs +36 -0
  255. package/dist/es/framer-motion/dist/es/render/utils/setters.mjs +27 -0
  256. package/dist/es/framer-motion/dist/es/render/utils/variant-props.mjs +12 -0
  257. package/dist/es/framer-motion/dist/es/utils/GlobalConfig.mjs +6 -0
  258. package/dist/es/framer-motion/dist/es/utils/array.mjs +21 -0
  259. package/dist/es/framer-motion/dist/es/utils/clamp.mjs +9 -0
  260. package/dist/es/framer-motion/dist/es/utils/delay.mjs +24 -0
  261. package/dist/es/framer-motion/dist/es/utils/distance.mjs +9 -0
  262. package/dist/es/framer-motion/dist/es/utils/errors.mjs +18 -0
  263. package/dist/es/framer-motion/dist/es/utils/get-context-window.mjs +6 -0
  264. package/dist/es/framer-motion/dist/es/utils/hsla-to-rgba.mjs +42 -0
  265. package/dist/es/framer-motion/dist/es/utils/interpolate.mjs +75 -0
  266. package/dist/es/framer-motion/dist/es/utils/is-browser.mjs +3 -0
  267. package/dist/es/framer-motion/dist/es/utils/is-numerical-string.mjs +6 -0
  268. package/dist/es/framer-motion/dist/es/utils/is-ref-object.mjs +7 -0
  269. package/dist/es/framer-motion/dist/es/utils/is-zero-value-string.mjs +6 -0
  270. package/dist/es/framer-motion/dist/es/utils/memo.mjs +10 -0
  271. package/dist/es/framer-motion/dist/es/utils/mix/color.mjs +47 -0
  272. package/dist/es/framer-motion/dist/es/utils/mix/complex.mjs +94 -0
  273. package/dist/es/framer-motion/dist/es/utils/mix/immediate.mjs +5 -0
  274. package/dist/es/framer-motion/dist/es/utils/mix/index.mjs +14 -0
  275. package/dist/es/framer-motion/dist/es/utils/mix/number.mjs +26 -0
  276. package/dist/es/framer-motion/dist/es/utils/mix/visibility.mjs +16 -0
  277. package/dist/es/framer-motion/dist/es/utils/noop.mjs +3 -0
  278. package/dist/es/framer-motion/dist/es/utils/offsets/default.mjs +9 -0
  279. package/dist/es/framer-motion/dist/es/utils/offsets/fill.mjs +12 -0
  280. package/dist/es/framer-motion/dist/es/utils/offsets/time.mjs +5 -0
  281. package/dist/es/framer-motion/dist/es/utils/pipe.mjs +11 -0
  282. package/dist/es/framer-motion/dist/es/utils/progress.mjs +18 -0
  283. package/dist/es/framer-motion/dist/es/utils/reduced-motion/index.mjs +19 -0
  284. package/dist/es/framer-motion/dist/es/utils/reduced-motion/state.mjs +5 -0
  285. package/dist/es/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs +19 -0
  286. package/dist/es/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs +47 -0
  287. package/dist/es/framer-motion/dist/es/utils/resolve-value.mjs +11 -0
  288. package/dist/es/framer-motion/dist/es/utils/shallow-compare.mjs +14 -0
  289. package/dist/es/framer-motion/dist/es/utils/subscription-manager.mjs +40 -0
  290. package/dist/es/framer-motion/dist/es/utils/time-conversion.mjs +10 -0
  291. package/dist/es/framer-motion/dist/es/utils/transform.mjs +21 -0
  292. package/dist/es/framer-motion/dist/es/utils/use-animation-frame.mjs +21 -0
  293. package/dist/es/framer-motion/dist/es/utils/use-constant.mjs +18 -0
  294. package/dist/es/framer-motion/dist/es/utils/use-cycle.mjs +47 -0
  295. package/dist/es/framer-motion/dist/es/utils/use-force-update.mjs +19 -0
  296. package/dist/es/framer-motion/dist/es/utils/use-in-view.mjs +23 -0
  297. package/dist/es/framer-motion/dist/es/utils/use-instant-transition-state.mjs +5 -0
  298. package/dist/es/framer-motion/dist/es/utils/use-instant-transition.mjs +41 -0
  299. package/dist/es/framer-motion/dist/es/utils/use-is-mounted.mjs +15 -0
  300. package/dist/es/framer-motion/dist/es/utils/use-isomorphic-effect.mjs +6 -0
  301. package/dist/es/framer-motion/dist/es/utils/use-motion-value-event.mjs +13 -0
  302. package/dist/es/framer-motion/dist/es/utils/use-unmount-effect.mjs +7 -0
  303. package/dist/es/framer-motion/dist/es/utils/velocity-per-second.mjs +11 -0
  304. package/dist/es/framer-motion/dist/es/utils/warn-once.mjs +11 -0
  305. package/dist/es/framer-motion/dist/es/utils/wrap.mjs +6 -0
  306. package/dist/es/framer-motion/dist/es/value/index.mjs +319 -0
  307. package/dist/es/framer-motion/dist/es/value/scroll/use-element-scroll.mjs +14 -0
  308. package/dist/es/framer-motion/dist/es/value/scroll/use-viewport-scroll.mjs +14 -0
  309. package/dist/es/framer-motion/dist/es/value/types/color/hex.mjs +40 -0
  310. package/dist/es/framer-motion/dist/es/value/types/color/hsla.mjs +22 -0
  311. package/dist/es/framer-motion/dist/es/value/types/color/index.mjs +27 -0
  312. package/dist/es/framer-motion/dist/es/value/types/color/rgba.mjs +25 -0
  313. package/dist/es/framer-motion/dist/es/value/types/color/utils.mjs +29 -0
  314. package/dist/es/framer-motion/dist/es/value/types/complex/filter.mjs +30 -0
  315. package/dist/es/framer-motion/dist/es/value/types/complex/index.mjs +92 -0
  316. package/dist/es/framer-motion/dist/es/value/types/numbers/index.mjs +17 -0
  317. package/dist/es/framer-motion/dist/es/value/types/numbers/units.mjs +17 -0
  318. package/dist/es/framer-motion/dist/es/value/types/utils/color-regex.mjs +3 -0
  319. package/dist/es/framer-motion/dist/es/value/types/utils/float-regex.mjs +3 -0
  320. package/dist/es/framer-motion/dist/es/value/types/utils/is-nullish.mjs +5 -0
  321. package/dist/es/framer-motion/dist/es/value/types/utils/sanitize.mjs +5 -0
  322. package/dist/es/framer-motion/dist/es/value/types/utils/single-color-regex.mjs +3 -0
  323. package/dist/es/framer-motion/dist/es/value/use-combine-values.mjs +37 -0
  324. package/dist/es/framer-motion/dist/es/value/use-computed.mjs +19 -0
  325. package/dist/es/framer-motion/dist/es/value/use-inverted-scale.mjs +52 -0
  326. package/dist/es/framer-motion/dist/es/value/use-motion-template.mjs +45 -0
  327. package/dist/es/framer-motion/dist/es/value/use-motion-value.mjs +38 -0
  328. package/dist/es/framer-motion/dist/es/value/use-scroll.mjs +39 -0
  329. package/dist/es/framer-motion/dist/es/value/use-spring.mjs +85 -0
  330. package/dist/es/framer-motion/dist/es/value/use-time.mjs +10 -0
  331. package/dist/es/framer-motion/dist/es/value/use-transform.mjs +29 -0
  332. package/dist/es/framer-motion/dist/es/value/use-velocity.mjs +35 -0
  333. package/dist/es/framer-motion/dist/es/value/use-will-change/WillChangeMotionValue.mjs +22 -0
  334. package/dist/es/framer-motion/dist/es/value/use-will-change/add-will-change.mjs +14 -0
  335. package/dist/es/framer-motion/dist/es/value/use-will-change/get-will-change-name.mjs +14 -0
  336. package/dist/es/framer-motion/dist/es/value/use-will-change/index.mjs +8 -0
  337. package/dist/es/framer-motion/dist/es/value/use-will-change/is.mjs +7 -0
  338. package/dist/es/framer-motion/dist/es/value/utils/is-motion-value.mjs +3 -0
  339. package/dist/es/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +16 -0
  340. package/dist/es/motion/lib/index.mjs +30 -0
  341. package/dist/es/motion/lib/react-client.mjs +3 -0
  342. package/dist/es/motion/lib/react-m.mjs +3 -0
  343. package/dist/es/motion/lib/react.mjs +110 -0
  344. package/dist/index.d.ts +1 -0
  345. package/dist/motion.dev.js +6121 -0
  346. package/dist/motion.js +1 -0
  347. package/dist/react-client.d.ts +1 -0
  348. package/dist/react-m.d.ts +1 -0
  349. package/dist/react.d.ts +1 -0
  350. package/lib/index.js +1 -3
  351. package/lib/index.js.map +1 -1
  352. package/lib/react-client.js +3 -0
  353. package/lib/react-client.js.map +1 -0
  354. package/lib/react-m.js +3 -0
  355. package/lib/react-m.js.map +1 -0
  356. package/lib/react.js +3 -0
  357. package/lib/react.js.map +1 -0
  358. package/package.json +79 -29
  359. package/react/package.json +6 -0
  360. package/react-client/package.json +6 -0
  361. package/react-m/package.json +6 -0
  362. package/rollup.config.mjs +184 -0
  363. package/src/index.ts +1 -0
  364. package/src/react-client.ts +3 -0
  365. package/src/react-m.ts +3 -0
  366. package/src/react.ts +3 -0
  367. package/tsconfig.json +25 -0
  368. package/types/index.d.ts +1 -4
  369. package/types/react-client.d.ts +1 -0
  370. package/types/react-m.d.ts +1 -0
  371. package/types/react.d.ts +1 -0
  372. package/CHANGELOG.md +0 -378
  373. package/dist/animate.cjs.js +0 -22
  374. package/dist/animate.es.js +0 -19
  375. package/dist/main.cjs.js +0 -21
  376. package/dist/main.es.js +0 -3
  377. package/dist/motion.min.js +0 -1
  378. package/dist/motion.umd.js +0 -2364
  379. package/dist/size-index.js +0 -1
  380. package/lib/animate.js +0 -17
  381. package/lib/animate.js.map +0 -1
  382. package/types/animate.d.ts +0 -6
  383. package/types/animate.d.ts.map +0 -1
  384. package/types/index.d.ts.map +0 -1
@@ -0,0 +1,37 @@
1
+ import { useMotionValue } from './use-motion-value.mjs';
2
+ import { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';
3
+ import { cancelFrame, frame } from '../frameloop/frame.mjs';
4
+
5
+ function useCombineMotionValues(values, combineValues) {
6
+ /**
7
+ * Initialise the returned motion value. This remains the same between renders.
8
+ */
9
+ const value = useMotionValue(combineValues());
10
+ /**
11
+ * Create a function that will update the template motion value with the latest values.
12
+ * This is pre-bound so whenever a motion value updates it can schedule its
13
+ * execution in Framesync. If it's already been scheduled it won't be fired twice
14
+ * in a single frame.
15
+ */
16
+ const updateValue = () => value.set(combineValues());
17
+ /**
18
+ * Synchronously update the motion value with the latest values during the render.
19
+ * This ensures that within a React render, the styles applied to the DOM are up-to-date.
20
+ */
21
+ updateValue();
22
+ /**
23
+ * Subscribe to all motion values found within the template. Whenever any of them change,
24
+ * schedule an update.
25
+ */
26
+ useIsomorphicLayoutEffect(() => {
27
+ const scheduleUpdate = () => frame.preRender(updateValue, false, true);
28
+ const subscriptions = values.map((v) => v.on("change", scheduleUpdate));
29
+ return () => {
30
+ subscriptions.forEach((unsubscribe) => unsubscribe());
31
+ cancelFrame(updateValue);
32
+ };
33
+ });
34
+ return value;
35
+ }
36
+
37
+ export { useCombineMotionValues };
@@ -0,0 +1,19 @@
1
+ import { collectMotionValues } from './index.mjs';
2
+ import { useCombineMotionValues } from './use-combine-values.mjs';
3
+
4
+ function useComputed(compute) {
5
+ /**
6
+ * Open session of collectMotionValues. Any MotionValue that calls get()
7
+ * will be saved into this array.
8
+ */
9
+ collectMotionValues.current = [];
10
+ compute();
11
+ const value = useCombineMotionValues(collectMotionValues.current, compute);
12
+ /**
13
+ * Synchronously close session of collectMotionValues.
14
+ */
15
+ collectMotionValues.current = undefined;
16
+ return value;
17
+ }
18
+
19
+ export { useComputed };
@@ -0,0 +1,52 @@
1
+ import { useTransform } from './use-transform.mjs';
2
+ import { invariant, warning } from '../utils/errors.mjs';
3
+ import { useMotionValue } from './use-motion-value.mjs';
4
+ import { MotionContext } from '../context/MotionContext/index.mjs';
5
+ import { useContext } from 'react';
6
+
7
+ // Keep things reasonable and avoid scale: Infinity. In practise we might need
8
+ // to add another value, opacity, that could interpolate scaleX/Y [0,0.01] => [0,1]
9
+ // to simply hide content at unreasonable scales.
10
+ const maxScale = 100000;
11
+ const invertScale = (scale) => scale > 0.001 ? 1 / scale : maxScale;
12
+ let hasWarned = false;
13
+ /**
14
+ * Returns a `MotionValue` each for `scaleX` and `scaleY` that update with the inverse
15
+ * of their respective parent scales.
16
+ *
17
+ * This is useful for undoing the distortion of content when scaling a parent component.
18
+ *
19
+ * By default, `useInvertedScale` will automatically fetch `scaleX` and `scaleY` from the nearest parent.
20
+ * By passing other `MotionValue`s in as `useInvertedScale({ scaleX, scaleY })`, it will invert the output
21
+ * of those instead.
22
+ *
23
+ * ```jsx
24
+ * const MyComponent = () => {
25
+ * const { scaleX, scaleY } = useInvertedScale()
26
+ * return <motion.div style={{ scaleX, scaleY }} />
27
+ * }
28
+ * ```
29
+ *
30
+ * @deprecated
31
+ */
32
+ function useInvertedScale(scale) {
33
+ let parentScaleX = useMotionValue(1);
34
+ let parentScaleY = useMotionValue(1);
35
+ const { visualElement } = useContext(MotionContext);
36
+ invariant(!!(scale || visualElement), "If no scale values are provided, useInvertedScale must be used within a child of another motion component.");
37
+ warning(hasWarned, "useInvertedScale is deprecated and will be removed in 3.0. Use the layout prop instead.");
38
+ hasWarned = true;
39
+ if (scale) {
40
+ parentScaleX = scale.scaleX || parentScaleX;
41
+ parentScaleY = scale.scaleY || parentScaleY;
42
+ }
43
+ else if (visualElement) {
44
+ parentScaleX = visualElement.getValue("scaleX", 1);
45
+ parentScaleY = visualElement.getValue("scaleY", 1);
46
+ }
47
+ const scaleX = useTransform(parentScaleX, invertScale);
48
+ const scaleY = useTransform(parentScaleY, invertScale);
49
+ return { scaleX, scaleY };
50
+ }
51
+
52
+ export { invertScale, useInvertedScale };
@@ -0,0 +1,45 @@
1
+ import { useCombineMotionValues } from './use-combine-values.mjs';
2
+ import { isMotionValue } from './utils/is-motion-value.mjs';
3
+
4
+ /**
5
+ * Combine multiple motion values into a new one using a string template literal.
6
+ *
7
+ * ```jsx
8
+ * import {
9
+ * motion,
10
+ * useSpring,
11
+ * useMotionValue,
12
+ * useMotionTemplate
13
+ * } from "framer-motion"
14
+ *
15
+ * function Component() {
16
+ * const shadowX = useSpring(0)
17
+ * const shadowY = useMotionValue(0)
18
+ * const shadow = useMotionTemplate`drop-shadow(${shadowX}px ${shadowY}px 20px rgba(0,0,0,0.3))`
19
+ *
20
+ * return <motion.div style={{ filter: shadow }} />
21
+ * }
22
+ * ```
23
+ *
24
+ * @public
25
+ */
26
+ function useMotionTemplate(fragments, ...values) {
27
+ /**
28
+ * Create a function that will build a string from the latest motion values.
29
+ */
30
+ const numFragments = fragments.length;
31
+ function buildValue() {
32
+ let output = ``;
33
+ for (let i = 0; i < numFragments; i++) {
34
+ output += fragments[i];
35
+ const value = values[i];
36
+ if (value) {
37
+ output += isMotionValue(value) ? value.get() : value;
38
+ }
39
+ }
40
+ return output;
41
+ }
42
+ return useCombineMotionValues(values.filter(isMotionValue), buildValue);
43
+ }
44
+
45
+ export { useMotionTemplate };
@@ -0,0 +1,38 @@
1
+ import { useContext, useState, useEffect } from 'react';
2
+ import { motionValue } from './index.mjs';
3
+ import { MotionConfigContext } from '../context/MotionConfigContext.mjs';
4
+ import { useConstant } from '../utils/use-constant.mjs';
5
+
6
+ /**
7
+ * Creates a `MotionValue` to track the state and velocity of a value.
8
+ *
9
+ * Usually, these are created automatically. For advanced use-cases, like use with `useTransform`, you can create `MotionValue`s externally and pass them into the animated component via the `style` prop.
10
+ *
11
+ * ```jsx
12
+ * export const MyComponent = () => {
13
+ * const scale = useMotionValue(1)
14
+ *
15
+ * return <motion.div style={{ scale }} />
16
+ * }
17
+ * ```
18
+ *
19
+ * @param initial - The initial state.
20
+ *
21
+ * @public
22
+ */
23
+ function useMotionValue(initial) {
24
+ const value = useConstant(() => motionValue(initial));
25
+ /**
26
+ * If this motion value is being used in static mode, like on
27
+ * the Framer canvas, force components to rerender when the motion
28
+ * value is updated.
29
+ */
30
+ const { isStatic } = useContext(MotionConfigContext);
31
+ if (isStatic) {
32
+ const [, setLatest] = useState(initial);
33
+ useEffect(() => value.on("change", setLatest), []);
34
+ }
35
+ return value;
36
+ }
37
+
38
+ export { useMotionValue };
@@ -0,0 +1,39 @@
1
+ import { motionValue } from './index.mjs';
2
+ import { useConstant } from '../utils/use-constant.mjs';
3
+ import { useEffect } from 'react';
4
+ import { warning } from '../utils/errors.mjs';
5
+ import { scroll } from '../render/dom/scroll/index.mjs';
6
+ import { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';
7
+
8
+ function refWarning(name, ref) {
9
+ warning(Boolean(!ref || ref.current), `You have defined a ${name} options but the provided ref is not yet hydrated, probably because it's defined higher up the tree. Try calling useScroll() in the same component as the ref, or setting its \`layoutEffect: false\` option.`);
10
+ }
11
+ const createScrollMotionValues = () => ({
12
+ scrollX: motionValue(0),
13
+ scrollY: motionValue(0),
14
+ scrollXProgress: motionValue(0),
15
+ scrollYProgress: motionValue(0),
16
+ });
17
+ function useScroll({ container, target, layoutEffect = true, ...options } = {}) {
18
+ const values = useConstant(createScrollMotionValues);
19
+ const useLifecycleEffect = layoutEffect
20
+ ? useIsomorphicLayoutEffect
21
+ : useEffect;
22
+ useLifecycleEffect(() => {
23
+ refWarning("target", target);
24
+ refWarning("container", container);
25
+ return scroll((_progress, { x, y }) => {
26
+ values.scrollX.set(x.current);
27
+ values.scrollXProgress.set(x.progress);
28
+ values.scrollY.set(y.current);
29
+ values.scrollYProgress.set(y.progress);
30
+ }, {
31
+ ...options,
32
+ container: (container === null || container === void 0 ? void 0 : container.current) || undefined,
33
+ target: (target === null || target === void 0 ? void 0 : target.current) || undefined,
34
+ });
35
+ }, [container, target, JSON.stringify(options.offset)]);
36
+ return values;
37
+ }
38
+
39
+ export { useScroll };
@@ -0,0 +1,85 @@
1
+ import { useContext, useRef, useInsertionEffect } from 'react';
2
+ import { isMotionValue } from './utils/is-motion-value.mjs';
3
+ import { useMotionValue } from './use-motion-value.mjs';
4
+ import { MotionConfigContext } from '../context/MotionConfigContext.mjs';
5
+ import { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';
6
+ import { animateValue } from '../animation/animators/MainThreadAnimation.mjs';
7
+ import { frame, frameData } from '../frameloop/frame.mjs';
8
+
9
+ function toNumber(v) {
10
+ if (typeof v === "number")
11
+ return v;
12
+ return parseFloat(v);
13
+ }
14
+ /**
15
+ * Creates a `MotionValue` that, when `set`, will use a spring animation to animate to its new state.
16
+ *
17
+ * It can either work as a stand-alone `MotionValue` by initialising it with a value, or as a subscriber
18
+ * to another `MotionValue`.
19
+ *
20
+ * @remarks
21
+ *
22
+ * ```jsx
23
+ * const x = useSpring(0, { stiffness: 300 })
24
+ * const y = useSpring(x, { damping: 10 })
25
+ * ```
26
+ *
27
+ * @param inputValue - `MotionValue` or number. If provided a `MotionValue`, when the input `MotionValue` changes, the created `MotionValue` will spring towards that value.
28
+ * @param springConfig - Configuration options for the spring.
29
+ * @returns `MotionValue`
30
+ *
31
+ * @public
32
+ */
33
+ function useSpring(source, config = {}) {
34
+ const { isStatic } = useContext(MotionConfigContext);
35
+ const activeSpringAnimation = useRef(null);
36
+ const value = useMotionValue(isMotionValue(source) ? toNumber(source.get()) : source);
37
+ const latestValue = useRef(value.get());
38
+ const latestSetter = useRef(() => { });
39
+ const startAnimation = () => {
40
+ /**
41
+ * If the previous animation hasn't had the chance to even render a frame, render it now.
42
+ */
43
+ const animation = activeSpringAnimation.current;
44
+ if (animation && animation.time === 0) {
45
+ animation.sample(frameData.delta);
46
+ }
47
+ stopAnimation();
48
+ activeSpringAnimation.current = animateValue({
49
+ keyframes: [value.get(), latestValue.current],
50
+ velocity: value.getVelocity(),
51
+ type: "spring",
52
+ restDelta: 0.001,
53
+ restSpeed: 0.01,
54
+ ...config,
55
+ onUpdate: latestSetter.current,
56
+ });
57
+ };
58
+ const stopAnimation = () => {
59
+ if (activeSpringAnimation.current) {
60
+ activeSpringAnimation.current.stop();
61
+ }
62
+ };
63
+ useInsertionEffect(() => {
64
+ return value.attach((v, set) => {
65
+ /**
66
+ * A more hollistic approach to this might be to use isStatic to fix VisualElement animations
67
+ * at that level, but this will work for now
68
+ */
69
+ if (isStatic)
70
+ return set(v);
71
+ latestValue.current = v;
72
+ latestSetter.current = set;
73
+ frame.update(startAnimation);
74
+ return value.get();
75
+ }, stopAnimation);
76
+ }, [JSON.stringify(config)]);
77
+ useIsomorphicLayoutEffect(() => {
78
+ if (isMotionValue(source)) {
79
+ return source.on("change", (v) => value.set(toNumber(v)));
80
+ }
81
+ }, [value]);
82
+ return value;
83
+ }
84
+
85
+ export { useSpring };
@@ -0,0 +1,10 @@
1
+ import { useAnimationFrame } from '../utils/use-animation-frame.mjs';
2
+ import { useMotionValue } from './use-motion-value.mjs';
3
+
4
+ function useTime() {
5
+ const time = useMotionValue(0);
6
+ useAnimationFrame((t) => time.set(t));
7
+ return time;
8
+ }
9
+
10
+ export { useTime };
@@ -0,0 +1,29 @@
1
+ import { transform } from '../utils/transform.mjs';
2
+ import { useCombineMotionValues } from './use-combine-values.mjs';
3
+ import { useConstant } from '../utils/use-constant.mjs';
4
+ import { useComputed } from './use-computed.mjs';
5
+
6
+ function useTransform(input, inputRangeOrTransformer, outputRange, options) {
7
+ if (typeof input === "function") {
8
+ return useComputed(input);
9
+ }
10
+ const transformer = typeof inputRangeOrTransformer === "function"
11
+ ? inputRangeOrTransformer
12
+ : transform(inputRangeOrTransformer, outputRange, options);
13
+ return Array.isArray(input)
14
+ ? useListTransform(input, transformer)
15
+ : useListTransform([input], ([latest]) => transformer(latest));
16
+ }
17
+ function useListTransform(values, transformer) {
18
+ const latest = useConstant(() => []);
19
+ return useCombineMotionValues(values, () => {
20
+ latest.length = 0;
21
+ const numValues = values.length;
22
+ for (let i = 0; i < numValues; i++) {
23
+ latest[i] = values[i].get();
24
+ }
25
+ return transformer(latest);
26
+ });
27
+ }
28
+
29
+ export { useTransform };
@@ -0,0 +1,35 @@
1
+ import { useMotionValueEvent } from '../utils/use-motion-value-event.mjs';
2
+ import { useMotionValue } from './use-motion-value.mjs';
3
+ import { frame } from '../frameloop/frame.mjs';
4
+
5
+ /**
6
+ * Creates a `MotionValue` that updates when the velocity of the provided `MotionValue` changes.
7
+ *
8
+ * ```javascript
9
+ * const x = useMotionValue(0)
10
+ * const xVelocity = useVelocity(x)
11
+ * const xAcceleration = useVelocity(xVelocity)
12
+ * ```
13
+ *
14
+ * @public
15
+ */
16
+ function useVelocity(value) {
17
+ const velocity = useMotionValue(value.getVelocity());
18
+ const updateVelocity = () => {
19
+ const latest = value.getVelocity();
20
+ velocity.set(latest);
21
+ /**
22
+ * If we still have velocity, schedule an update for the next frame
23
+ * to keep checking until it is zero.
24
+ */
25
+ if (latest)
26
+ frame.update(updateVelocity);
27
+ };
28
+ useMotionValueEvent(value, "change", () => {
29
+ // Schedule an update to this value at the end of the current frame.
30
+ frame.update(updateVelocity, false, true);
31
+ });
32
+ return velocity;
33
+ }
34
+
35
+ export { useVelocity };
@@ -0,0 +1,22 @@
1
+ import { MotionValue } from '../index.mjs';
2
+ import { getWillChangeName } from './get-will-change-name.mjs';
3
+ import { addUniqueItem } from '../../utils/array.mjs';
4
+
5
+ class WillChangeMotionValue extends MotionValue {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.values = [];
9
+ }
10
+ add(name) {
11
+ const styleName = getWillChangeName(name);
12
+ if (styleName) {
13
+ addUniqueItem(this.values, styleName);
14
+ this.update();
15
+ }
16
+ }
17
+ update() {
18
+ this.set(this.values.length ? this.values.join(", ") : "auto");
19
+ }
20
+ }
21
+
22
+ export { WillChangeMotionValue };
@@ -0,0 +1,14 @@
1
+ import { isWillChangeMotionValue } from './is.mjs';
2
+
3
+ function addValueToWillChange(visualElement, key) {
4
+ const willChange = visualElement.getValue("willChange");
5
+ /**
6
+ * It could be that a user has set willChange to a regular MotionValue,
7
+ * in which case we can't add the value to it.
8
+ */
9
+ if (isWillChangeMotionValue(willChange)) {
10
+ return willChange.add(key);
11
+ }
12
+ }
13
+
14
+ export { addValueToWillChange };
@@ -0,0 +1,14 @@
1
+ import { acceleratedValues } from '../../animation/animators/utils/accelerated-values.mjs';
2
+ import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';
3
+ import { transformProps } from '../../render/html/utils/transform.mjs';
4
+
5
+ function getWillChangeName(name) {
6
+ if (transformProps.has(name)) {
7
+ return "transform";
8
+ }
9
+ else if (acceleratedValues.has(name)) {
10
+ return camelToDash(name);
11
+ }
12
+ }
13
+
14
+ export { getWillChangeName };
@@ -0,0 +1,8 @@
1
+ import { useConstant } from '../../utils/use-constant.mjs';
2
+ import { WillChangeMotionValue } from './WillChangeMotionValue.mjs';
3
+
4
+ function useWillChange() {
5
+ return useConstant(() => new WillChangeMotionValue("auto"));
6
+ }
7
+
8
+ export { useWillChange };
@@ -0,0 +1,7 @@
1
+ import { isMotionValue } from '../utils/is-motion-value.mjs';
2
+
3
+ function isWillChangeMotionValue(value) {
4
+ return Boolean(isMotionValue(value) && value.add);
5
+ }
6
+
7
+ export { isWillChangeMotionValue };
@@ -0,0 +1,3 @@
1
+ const isMotionValue = (value) => Boolean(value && value.getVelocity);
2
+
3
+ export { isMotionValue };
@@ -0,0 +1,16 @@
1
+ import { isCustomValue } from '../../utils/resolve-value.mjs';
2
+ import { isMotionValue } from './is-motion-value.mjs';
3
+
4
+ /**
5
+ * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself
6
+ *
7
+ * TODO: Remove and move to library
8
+ */
9
+ function resolveMotionValue(value) {
10
+ const unwrappedValue = isMotionValue(value) ? value.get() : value;
11
+ return isCustomValue(unwrappedValue)
12
+ ? unwrappedValue.toValue()
13
+ : unwrappedValue;
14
+ }
15
+
16
+ export { resolveMotionValue };
@@ -0,0 +1,30 @@
1
+ export { MotionValue, motionValue } from '../../framer-motion/dist/es/value/index.mjs';
2
+ export { animate, createScopedAnimate } from '../../framer-motion/dist/es/animation/animate/index.mjs';
3
+ export { animateMini } from '../../framer-motion/dist/es/animation/animators/waapi/animate-style.mjs';
4
+ export { scroll } from '../../framer-motion/dist/es/render/dom/scroll/index.mjs';
5
+ export { scrollInfo } from '../../framer-motion/dist/es/render/dom/scroll/track.mjs';
6
+ export { inView } from '../../framer-motion/dist/es/render/dom/viewport/index.mjs';
7
+ export { anticipate } from '../../framer-motion/dist/es/easing/anticipate.mjs';
8
+ export { backIn, backInOut, backOut } from '../../framer-motion/dist/es/easing/back.mjs';
9
+ export { circIn, circInOut, circOut } from '../../framer-motion/dist/es/easing/circ.mjs';
10
+ export { easeIn, easeInOut, easeOut } from '../../framer-motion/dist/es/easing/ease.mjs';
11
+ export { cubicBezier } from '../../framer-motion/dist/es/easing/cubic-bezier.mjs';
12
+ export { steps } from '../../framer-motion/dist/es/easing/steps.mjs';
13
+ export { mirrorEasing } from '../../framer-motion/dist/es/easing/modifiers/mirror.mjs';
14
+ export { reverseEasing } from '../../framer-motion/dist/es/easing/modifiers/reverse.mjs';
15
+ export { spring } from '../../framer-motion/dist/es/animation/generators/spring/index.mjs';
16
+ export { inertia } from '../../framer-motion/dist/es/animation/generators/inertia.mjs';
17
+ export { keyframes } from '../../framer-motion/dist/es/animation/generators/keyframes.mjs';
18
+ export { stagger } from '../../framer-motion/dist/es/animation/utils/stagger.mjs';
19
+ export { transform } from '../../framer-motion/dist/es/utils/transform.mjs';
20
+ export { clamp } from '../../framer-motion/dist/es/utils/clamp.mjs';
21
+ export { delayInSeconds as delay } from '../../framer-motion/dist/es/utils/delay.mjs';
22
+ export { distance, distance2D } from '../../framer-motion/dist/es/utils/distance.mjs';
23
+ export { invariant, warning } from '../../framer-motion/dist/es/utils/errors.mjs';
24
+ export { interpolate } from '../../framer-motion/dist/es/utils/interpolate.mjs';
25
+ export { mix } from '../../framer-motion/dist/es/utils/mix/index.mjs';
26
+ export { pipe } from '../../framer-motion/dist/es/utils/pipe.mjs';
27
+ export { progress } from '../../framer-motion/dist/es/utils/progress.mjs';
28
+ export { wrap } from '../../framer-motion/dist/es/utils/wrap.mjs';
29
+ export { cancelSync, sync } from '../../framer-motion/dist/es/frameloop/index-legacy.mjs';
30
+ export { cancelFrame, frame, frameData, frameSteps } from '../../framer-motion/dist/es/frameloop/frame.mjs';
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ export { createMotionComponent as create } from '../../framer-motion/dist/es/render/components/motion/create.mjs';
3
+ export { MotionA as a, MotionAbbr as abbr, MotionAddress as address, MotionAnimate as animate, MotionArea as area, MotionArticle as article, MotionAside as aside, MotionAudio as audio, MotionB as b, MotionBase as base, MotionBdi as bdi, MotionBdo as bdo, MotionBig as big, MotionBlockquote as blockquote, MotionBody as body, MotionButton as button, MotionCanvas as canvas, MotionCaption as caption, MotionCircle as circle, MotionCite as cite, MotionClipPath as clipPath, MotionCode as code, MotionCol as col, MotionColgroup as colgroup, MotionData as data, MotionDatalist as datalist, MotionDd as dd, MotionDefs as defs, MotionDel as del, MotionDesc as desc, MotionDetails as details, MotionDfn as dfn, MotionDialog as dialog, MotionDiv as div, MotionDl as dl, MotionDt as dt, MotionEllipse as ellipse, MotionEm as em, MotionEmbed as embed, MotionFeBlend as feBlend, MotionFeColorMatrix as feColorMatrix, MotionFeComponentTransfer as feComponentTransfer, MotionFeComposite as feComposite, MotionFeConvolveMatrix as feConvolveMatrix, MotionFeDiffuseLighting as feDiffuseLighting, MotionFeDisplacementMap as feDisplacementMap, MotionFeDistantLight as feDistantLight, MotionFeDropShadow as feDropShadow, MotionFeFlood as feFlood, MotionFeFuncA as feFuncA, MotionFeFuncB as feFuncB, MotionFeFuncG as feFuncG, MotionFeFuncR as feFuncR, MotionFeGaussianBlur as feGaussianBlur, MotionFeImage as feImage, MotionFeMerge as feMerge, MotionFeMergeNode as feMergeNode, MotionFeMorphology as feMorphology, MotionFeOffset as feOffset, MotionFePointLight as fePointLight, MotionFeSpecularLighting as feSpecularLighting, MotionFeSpotLight as feSpotLight, MotionFeTile as feTile, MotionFeTurbulence as feTurbulence, MotionFieldset as fieldset, MotionFigcaption as figcaption, MotionFigure as figure, MotionFilter as filter, MotionFooter as footer, MotionForeignObject as foreignObject, MotionForm as form, MotionG as g, MotionH1 as h1, MotionH2 as h2, MotionH3 as h3, MotionH4 as h4, MotionH5 as h5, MotionH6 as h6, MotionHead as head, MotionHeader as header, MotionHgroup as hgroup, MotionHr as hr, MotionHtml as html, MotionI as i, MotionIframe as iframe, MotionImage as image, MotionImg as img, MotionInput as input, MotionIns as ins, MotionKbd as kbd, MotionKeygen as keygen, MotionLabel as label, MotionLegend as legend, MotionLi as li, MotionLine as line, MotionLinearGradient as linearGradient, MotionLink as link, MotionMain as main, MotionMap as map, MotionMark as mark, MotionMarker as marker, MotionMask as mask, MotionMenu as menu, MotionMenuitem as menuitem, MotionMetadata as metadata, MotionMeter as meter, MotionNav as nav, MotionObject as object, MotionOl as ol, MotionOptgroup as optgroup, MotionOption as option, MotionOutput as output, MotionP as p, MotionParam as param, MotionPath as path, MotionPattern as pattern, MotionPicture as picture, MotionPolygon as polygon, MotionPolyline as polyline, MotionPre as pre, MotionProgress as progress, MotionQ as q, MotionRadialGradient as radialGradient, MotionRect as rect, MotionRp as rp, MotionRt as rt, MotionRuby as ruby, MotionS as s, MotionSamp as samp, MotionScript as script, MotionSection as section, MotionSelect as select, MotionSmall as small, MotionSource as source, MotionSpan as span, MotionStop as stop, MotionStrong as strong, MotionStyle as style, MotionSub as sub, MotionSummary as summary, MotionSup as sup, MotionSvg as svg, MotionSymbol as symbol, MotionTable as table, MotionTbody as tbody, MotionTd as td, MotionText as text, MotionTextPath as textPath, MotionTextarea as textarea, MotionTfoot as tfoot, MotionTh as th, MotionThead as thead, MotionTime as time, MotionTitle as title, MotionTr as tr, MotionTrack as track, MotionTspan as tspan, MotionU as u, MotionUl as ul, MotionUse as use, MotionVideo as video, MotionView as view, MotionWbr as wbr, MotionWebview as webview } from '../../framer-motion/dist/es/render/components/motion/elements.mjs';
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ export { createMinimalMotionComponent as create } from '../../framer-motion/dist/es/render/components/m/create.mjs';
3
+ export { MotionA as a, MotionAbbr as abbr, MotionAddress as address, MotionAnimate as animate, MotionArea as area, MotionArticle as article, MotionAside as aside, MotionAudio as audio, MotionB as b, MotionBase as base, MotionBdi as bdi, MotionBdo as bdo, MotionBig as big, MotionBlockquote as blockquote, MotionBody as body, MotionButton as button, MotionCanvas as canvas, MotionCaption as caption, MotionCircle as circle, MotionCite as cite, MotionClipPath as clipPath, MotionCode as code, MotionCol as col, MotionColgroup as colgroup, MotionData as data, MotionDatalist as datalist, MotionDd as dd, MotionDefs as defs, MotionDel as del, MotionDesc as desc, MotionDetails as details, MotionDfn as dfn, MotionDialog as dialog, MotionDiv as div, MotionDl as dl, MotionDt as dt, MotionEllipse as ellipse, MotionEm as em, MotionEmbed as embed, MotionFeBlend as feBlend, MotionFeColorMatrix as feColorMatrix, MotionFeComponentTransfer as feComponentTransfer, MotionFeComposite as feComposite, MotionFeConvolveMatrix as feConvolveMatrix, MotionFeDiffuseLighting as feDiffuseLighting, MotionFeDisplacementMap as feDisplacementMap, MotionFeDistantLight as feDistantLight, MotionFeDropShadow as feDropShadow, MotionFeFlood as feFlood, MotionFeFuncA as feFuncA, MotionFeFuncB as feFuncB, MotionFeFuncG as feFuncG, MotionFeFuncR as feFuncR, MotionFeGaussianBlur as feGaussianBlur, MotionFeImage as feImage, MotionFeMerge as feMerge, MotionFeMergeNode as feMergeNode, MotionFeMorphology as feMorphology, MotionFeOffset as feOffset, MotionFePointLight as fePointLight, MotionFeSpecularLighting as feSpecularLighting, MotionFeSpotLight as feSpotLight, MotionFeTile as feTile, MotionFeTurbulence as feTurbulence, MotionFieldset as fieldset, MotionFigcaption as figcaption, MotionFigure as figure, MotionFilter as filter, MotionFooter as footer, MotionForeignObject as foreignObject, MotionForm as form, MotionG as g, MotionH1 as h1, MotionH2 as h2, MotionH3 as h3, MotionH4 as h4, MotionH5 as h5, MotionH6 as h6, MotionHead as head, MotionHeader as header, MotionHgroup as hgroup, MotionHr as hr, MotionHtml as html, MotionI as i, MotionIframe as iframe, MotionImage as image, MotionImg as img, MotionInput as input, MotionIns as ins, MotionKbd as kbd, MotionKeygen as keygen, MotionLabel as label, MotionLegend as legend, MotionLi as li, MotionLine as line, MotionLinearGradient as linearGradient, MotionLink as link, MotionMain as main, MotionMap as map, MotionMark as mark, MotionMarker as marker, MotionMask as mask, MotionMenu as menu, MotionMenuitem as menuitem, MotionMetadata as metadata, MotionMeter as meter, MotionNav as nav, MotionObject as object, MotionOl as ol, MotionOptgroup as optgroup, MotionOption as option, MotionOutput as output, MotionP as p, MotionParam as param, MotionPath as path, MotionPattern as pattern, MotionPicture as picture, MotionPolygon as polygon, MotionPolyline as polyline, MotionPre as pre, MotionProgress as progress, MotionQ as q, MotionRadialGradient as radialGradient, MotionRect as rect, MotionRp as rp, MotionRt as rt, MotionRuby as ruby, MotionS as s, MotionSamp as samp, MotionScript as script, MotionSection as section, MotionSelect as select, MotionSmall as small, MotionSource as source, MotionSpan as span, MotionStop as stop, MotionStrong as strong, MotionStyle as style, MotionSub as sub, MotionSummary as summary, MotionSup as sup, MotionSvg as svg, MotionSymbol as symbol, MotionTable as table, MotionTbody as tbody, MotionTd as td, MotionText as text, MotionTextPath as textPath, MotionTextarea as textarea, MotionTfoot as tfoot, MotionTh as th, MotionThead as thead, MotionTime as time, MotionTitle as title, MotionTr as tr, MotionTrack as track, MotionTspan as tspan, MotionU as u, MotionUl as ul, MotionUse as use, MotionVideo as video, MotionView as view, MotionWbr as wbr, MotionWebview as webview } from '../../framer-motion/dist/es/render/components/m/elements.mjs';