use-scroll-animate 10.2.0 → 10.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/AGENTS.md +4 -0
  2. package/CHANGELOG.md +35 -0
  3. package/README.md +67 -0
  4. package/bin/motionary-mcp.mjs +265 -0
  5. package/dist/chunks/anim-image-DDdb9q3X.js +166 -0
  6. package/dist/chunks/anim-image-DDdb9q3X.js.map +1 -0
  7. package/dist/chunks/anim-image-blQgPFFS.cjs +174 -0
  8. package/dist/chunks/anim-image-blQgPFFS.cjs.map +1 -0
  9. package/dist/chunks/audio-BpU-A1m1.cjs.map +1 -1
  10. package/dist/chunks/{audio-D95jwlOh.js → audio-CWt1xdZB.js} +3 -3
  11. package/dist/chunks/{audio-D95jwlOh.js.map → audio-CWt1xdZB.js.map} +1 -1
  12. package/dist/chunks/{base-BnRyfuyM.js → base-BTev8qxg.js} +2 -2
  13. package/dist/chunks/{base-BnRyfuyM.js.map → base-BTev8qxg.js.map} +1 -1
  14. package/dist/chunks/base-DBheNxJu.cjs.map +1 -1
  15. package/dist/chunks/bind-B_CTL6Qn.js.map +1 -1
  16. package/dist/chunks/bind-Ui43-n2d.cjs.map +1 -1
  17. package/dist/chunks/builtins-CKKZNR95.cjs.map +1 -1
  18. package/dist/chunks/{builtins-CqIq1zBv.js → builtins-CPmS6aDB.js} +3 -3
  19. package/dist/chunks/{builtins-CqIq1zBv.js.map → builtins-CPmS6aDB.js.map} +1 -1
  20. package/dist/chunks/core-B5T0dhFH.cjs.map +1 -1
  21. package/dist/chunks/{core-DsGoL9EY.js → core-BviA7nFa.js} +2 -2
  22. package/dist/chunks/{core-DsGoL9EY.js.map → core-BviA7nFa.js.map} +1 -1
  23. package/dist/chunks/core-D74Fz-dL.cjs.map +1 -1
  24. package/dist/chunks/core-D7cVumUu.js.map +1 -1
  25. package/dist/chunks/{core-XA2yhn1b.js → core-KiM7MXjL.js} +2 -2
  26. package/dist/chunks/{core-XA2yhn1b.js.map → core-KiM7MXjL.js.map} +1 -1
  27. package/dist/chunks/core-MQlXZKUG.cjs.map +1 -1
  28. package/dist/chunks/ease-HwYZnZat.cjs +94 -0
  29. package/dist/chunks/ease-HwYZnZat.cjs.map +1 -0
  30. package/dist/chunks/ease-XN8_0sXu.js +89 -0
  31. package/dist/chunks/ease-XN8_0sXu.js.map +1 -0
  32. package/dist/chunks/fx-B_pbhpDp.cjs.map +1 -1
  33. package/dist/chunks/{fx-CtnrFEg9.js → fx-CgWKqVsn.js} +2 -2
  34. package/dist/chunks/{fx-CtnrFEg9.js.map → fx-CgWKqVsn.js.map} +1 -1
  35. package/dist/chunks/generative-2LhxG5BJ.js.map +1 -1
  36. package/dist/chunks/generative-BHIj-NU0.cjs.map +1 -1
  37. package/dist/chunks/{gpu-CDcXiNA8.js → gpu-BWfgYWMY.js} +2 -2
  38. package/dist/chunks/{gpu-CDcXiNA8.js.map → gpu-BWfgYWMY.js.map} +1 -1
  39. package/dist/chunks/gpu-cUixt7kT.cjs.map +1 -1
  40. package/dist/chunks/index-tags-B-JBecYg.js.map +1 -1
  41. package/dist/chunks/index-tags-hLIF2Clq.cjs.map +1 -1
  42. package/dist/chunks/{keyframes-W-474DMc.js → keyframes-B5PWe5bU.js} +3 -2
  43. package/dist/chunks/keyframes-B5PWe5bU.js.map +1 -0
  44. package/dist/chunks/{keyframes-ZheOkpt0.cjs → keyframes-tC3I7anQ.cjs} +4 -3
  45. package/dist/chunks/keyframes-tC3I7anQ.cjs.map +1 -0
  46. package/dist/chunks/{manifest-D58HXVY-.js → manifest-BHx5yPN6.js} +2 -2
  47. package/dist/chunks/{manifest-D58HXVY-.js.map → manifest-BHx5yPN6.js.map} +1 -1
  48. package/dist/chunks/manifest-PaF9B8Vt.cjs.map +1 -1
  49. package/dist/chunks/{player-48Zy_NBG.js → player-BfHMNtiM.js} +4 -4
  50. package/dist/chunks/{player-48Zy_NBG.js.map → player-BfHMNtiM.js.map} +1 -1
  51. package/dist/chunks/player-C4y4jXSv.cjs.map +1 -1
  52. package/dist/chunks/presets-BYBVJVeP.js.map +1 -1
  53. package/dist/chunks/presets-CUHys3sK.cjs.map +1 -1
  54. package/dist/chunks/{registry-gFJRpPES.js → registry-BKzyg1JV.js} +2 -2
  55. package/dist/chunks/{registry-gFJRpPES.js.map → registry-BKzyg1JV.js.map} +1 -1
  56. package/dist/chunks/{registry-BIEjKngP.js → registry-CT-TT_bx.js} +3 -3
  57. package/dist/chunks/{registry-BIEjKngP.js.map → registry-CT-TT_bx.js.map} +1 -1
  58. package/dist/chunks/{registry-eJgpFAzI.cjs → registry-tzwKkldE.cjs} +2 -2
  59. package/dist/chunks/{registry-eJgpFAzI.cjs.map → registry-tzwKkldE.cjs.map} +1 -1
  60. package/dist/chunks/registry-xQZnSqqV.cjs.map +1 -1
  61. package/dist/chunks/shared-CkKHWrtJ.js.map +1 -1
  62. package/dist/chunks/shared-jkgRH-Hx.cjs.map +1 -1
  63. package/dist/chunks/{spring-CZDNyqWp.js → spring-BHuP55DR.js} +2 -2
  64. package/dist/chunks/{spring-CZDNyqWp.js.map → spring-BHuP55DR.js.map} +1 -1
  65. package/dist/chunks/spring-BlTQD2AV.cjs.map +1 -1
  66. package/dist/chunks/stagger-CCFyhzSw.cjs.map +1 -1
  67. package/dist/chunks/stagger-DtMKo2SK.js.map +1 -1
  68. package/dist/chunks/{ticker-CM_56oVy.js → ticker-C8lSGml9.js} +2 -2
  69. package/dist/chunks/{ticker-CM_56oVy.js.map → ticker-C8lSGml9.js.map} +1 -1
  70. package/dist/chunks/{ticker-D4o6enH0.cjs → ticker-Un0bvTWR.cjs} +2 -2
  71. package/dist/chunks/{ticker-D4o6enH0.cjs.map → ticker-Un0bvTWR.cjs.map} +1 -1
  72. package/dist/chunks/{tween-CqX1JBuj.js → tween-BcejKpsx.js} +15 -91
  73. package/dist/chunks/tween-BcejKpsx.js.map +1 -0
  74. package/dist/chunks/{tween-CBuWYpI-.cjs → tween-CwLLC3Ko.cjs} +15 -95
  75. package/dist/chunks/tween-CwLLC3Ko.cjs.map +1 -0
  76. package/dist/chunks/variants-CrDDJoYK.cjs.map +1 -1
  77. package/dist/chunks/{variants-GU3yIL4F.js → variants-CsRGUIyA.js} +2 -2
  78. package/dist/chunks/{variants-GU3yIL4F.js.map → variants-CsRGUIyA.js.map} +1 -1
  79. package/dist/components/a11y.cjs.map +1 -1
  80. package/dist/components/a11y.js +2 -2
  81. package/dist/components/a11y.js.map +1 -1
  82. package/dist/components/angular.cjs.map +1 -1
  83. package/dist/components/angular.js +8 -8
  84. package/dist/components/angular.js.map +1 -1
  85. package/dist/components/background.cjs.map +1 -1
  86. package/dist/components/background.js +2 -2
  87. package/dist/components/background.js.map +1 -1
  88. package/dist/components/bridge.cjs.map +1 -1
  89. package/dist/components/bridge.js +1 -1
  90. package/dist/components/bridge.js.map +1 -1
  91. package/dist/components/cards.cjs.map +1 -1
  92. package/dist/components/cards.js +2 -2
  93. package/dist/components/cards.js.map +1 -1
  94. package/dist/components/click.cjs.map +1 -1
  95. package/dist/components/click.js +3 -3
  96. package/dist/components/click.js.map +1 -1
  97. package/dist/components/core.cjs.map +1 -1
  98. package/dist/components/core.js.map +1 -1
  99. package/dist/components/depth.cjs.map +1 -1
  100. package/dist/components/depth.js +3 -3
  101. package/dist/components/depth.js.map +1 -1
  102. package/dist/components/design.cjs.map +1 -1
  103. package/dist/components/design.js +3 -3
  104. package/dist/components/design.js.map +1 -1
  105. package/dist/components/dsl.cjs.map +1 -1
  106. package/dist/components/dsl.js +2 -2
  107. package/dist/components/dsl.js.map +1 -1
  108. package/dist/components/effects.cjs.map +1 -1
  109. package/dist/components/effects.js +9 -9
  110. package/dist/components/effects.js.map +1 -1
  111. package/dist/components/engine.cjs.map +1 -1
  112. package/dist/components/engine.js +2 -2
  113. package/dist/components/engine.js.map +1 -1
  114. package/dist/components/feedback.cjs.map +1 -1
  115. package/dist/components/feedback.js +1 -1
  116. package/dist/components/feedback.js.map +1 -1
  117. package/dist/components/fx-3d.cjs.map +1 -1
  118. package/dist/components/fx-3d.js +2 -2
  119. package/dist/components/fx-3d.js.map +1 -1
  120. package/dist/components/fx-ai.cjs.map +1 -1
  121. package/dist/components/fx-ai.js +2 -2
  122. package/dist/components/fx-ai.js.map +1 -1
  123. package/dist/components/fx-chart.cjs.map +1 -1
  124. package/dist/components/fx-chart.js +2 -2
  125. package/dist/components/fx-chart.js.map +1 -1
  126. package/dist/components/fx-cinema.cjs.map +1 -1
  127. package/dist/components/fx-cinema.js +2 -2
  128. package/dist/components/fx-cinema.js.map +1 -1
  129. package/dist/components/fx-cyber.cjs.map +1 -1
  130. package/dist/components/fx-cyber.js +2 -2
  131. package/dist/components/fx-cyber.js.map +1 -1
  132. package/dist/components/fx-festival.cjs.map +1 -1
  133. package/dist/components/fx-festival.js +2 -2
  134. package/dist/components/fx-festival.js.map +1 -1
  135. package/dist/components/fx-focus.cjs.map +1 -1
  136. package/dist/components/fx-focus.js +2 -2
  137. package/dist/components/fx-focus.js.map +1 -1
  138. package/dist/components/fx-form.cjs.map +1 -1
  139. package/dist/components/fx-form.js +2 -2
  140. package/dist/components/fx-form.js.map +1 -1
  141. package/dist/components/fx-game.cjs.map +1 -1
  142. package/dist/components/fx-game.js +2 -2
  143. package/dist/components/fx-game.js.map +1 -1
  144. package/dist/components/fx-genart.cjs.map +1 -1
  145. package/dist/components/fx-genart.js +2 -2
  146. package/dist/components/fx-genart.js.map +1 -1
  147. package/dist/components/fx-geo.cjs.map +1 -1
  148. package/dist/components/fx-geo.js +2 -2
  149. package/dist/components/fx-geo.js.map +1 -1
  150. package/dist/components/fx-gesture.cjs.map +1 -1
  151. package/dist/components/fx-gesture.js +2 -2
  152. package/dist/components/fx-gesture.js.map +1 -1
  153. package/dist/components/fx-gpu.js +3 -3
  154. package/dist/components/fx-light.cjs.map +1 -1
  155. package/dist/components/fx-light.js +2 -2
  156. package/dist/components/fx-light.js.map +1 -1
  157. package/dist/components/fx-lottie.cjs.map +1 -1
  158. package/dist/components/fx-lottie.js +2 -2
  159. package/dist/components/fx-lottie.js.map +1 -1
  160. package/dist/components/fx-morph.cjs.map +1 -1
  161. package/dist/components/fx-morph.js +2 -2
  162. package/dist/components/fx-morph.js.map +1 -1
  163. package/dist/components/fx-music.cjs.map +1 -1
  164. package/dist/components/fx-music.js +3 -3
  165. package/dist/components/fx-music.js.map +1 -1
  166. package/dist/components/fx-organic.cjs.map +1 -1
  167. package/dist/components/fx-organic.js +2 -2
  168. package/dist/components/fx-organic.js.map +1 -1
  169. package/dist/components/fx-paper.cjs.map +1 -1
  170. package/dist/components/fx-paper.js +2 -2
  171. package/dist/components/fx-paper.js.map +1 -1
  172. package/dist/components/fx-perf.cjs.map +1 -1
  173. package/dist/components/fx-perf.js +2 -2
  174. package/dist/components/fx-perf.js.map +1 -1
  175. package/dist/components/fx-physics.cjs.map +1 -1
  176. package/dist/components/fx-physics.js +2 -2
  177. package/dist/components/fx-physics.js.map +1 -1
  178. package/dist/components/fx-retro.cjs.map +1 -1
  179. package/dist/components/fx-retro.js +2 -2
  180. package/dist/components/fx-retro.js.map +1 -1
  181. package/dist/components/fx-safe.cjs.map +1 -1
  182. package/dist/components/fx-safe.js +2 -2
  183. package/dist/components/fx-safe.js.map +1 -1
  184. package/dist/components/fx-shop.cjs.map +1 -1
  185. package/dist/components/fx-shop.js +2 -2
  186. package/dist/components/fx-shop.js.map +1 -1
  187. package/dist/components/fx-social.cjs.map +1 -1
  188. package/dist/components/fx-social.js +2 -2
  189. package/dist/components/fx-social.js.map +1 -1
  190. package/dist/components/fx-spatial.cjs.map +1 -1
  191. package/dist/components/fx-spatial.js +2 -2
  192. package/dist/components/fx-spatial.js.map +1 -1
  193. package/dist/components/fx-surface.cjs.map +1 -1
  194. package/dist/components/fx-surface.js +2 -2
  195. package/dist/components/fx-surface.js.map +1 -1
  196. package/dist/components/fx-text.cjs.map +1 -1
  197. package/dist/components/fx-text.js +2 -2
  198. package/dist/components/fx-text.js.map +1 -1
  199. package/dist/components/fx-transitions.cjs.map +1 -1
  200. package/dist/components/fx-transitions.js +3 -3
  201. package/dist/components/fx-transitions.js.map +1 -1
  202. package/dist/components/fx-video.cjs.map +1 -1
  203. package/dist/components/fx-video.js +2 -2
  204. package/dist/components/fx-video.js.map +1 -1
  205. package/dist/components/fx-weather.cjs.map +1 -1
  206. package/dist/components/fx-weather.js +2 -2
  207. package/dist/components/fx-weather.js.map +1 -1
  208. package/dist/components/fx.cjs.map +1 -1
  209. package/dist/components/fx.js +6 -6
  210. package/dist/components/fx.js.map +1 -1
  211. package/dist/components/fx2.cjs.map +1 -1
  212. package/dist/components/fx2.js +6 -6
  213. package/dist/components/fx2.js.map +1 -1
  214. package/dist/components/gesture.cjs.map +1 -1
  215. package/dist/components/gesture.js +4 -4
  216. package/dist/components/gesture.js.map +1 -1
  217. package/dist/components/interaction.cjs.map +1 -1
  218. package/dist/components/interaction.js +1 -1
  219. package/dist/components/interaction.js.map +1 -1
  220. package/dist/components/layout.cjs.map +1 -1
  221. package/dist/components/layout.js +1 -1
  222. package/dist/components/layout.js.map +1 -1
  223. package/dist/components/lazy.cjs.map +1 -1
  224. package/dist/components/lazy.js.map +1 -1
  225. package/dist/components/lite.cjs.map +1 -1
  226. package/dist/components/lite.js.map +1 -1
  227. package/dist/components/marketplace.cjs.map +1 -1
  228. package/dist/components/marketplace.js +4 -4
  229. package/dist/components/marketplace.js.map +1 -1
  230. package/dist/components/native.cjs.map +1 -1
  231. package/dist/components/native.js +3 -3
  232. package/dist/components/native.js.map +1 -1
  233. package/dist/components/packs.cjs.map +1 -1
  234. package/dist/components/packs.js +1 -1
  235. package/dist/components/packs.js.map +1 -1
  236. package/dist/components/page.cjs.map +1 -1
  237. package/dist/components/page.js +3 -3
  238. package/dist/components/page.js.map +1 -1
  239. package/dist/components/perf.cjs.map +1 -1
  240. package/dist/components/perf.js +2 -2
  241. package/dist/components/perf.js.map +1 -1
  242. package/dist/components/physics.cjs.map +1 -1
  243. package/dist/components/physics.js +3 -3
  244. package/dist/components/physics.js.map +1 -1
  245. package/dist/components/plugins.cjs.map +1 -1
  246. package/dist/components/plugins.js +4 -4
  247. package/dist/components/plugins.js.map +1 -1
  248. package/dist/components/react.cjs.map +1 -1
  249. package/dist/components/react.js.map +1 -1
  250. package/dist/components/reveal.cjs.map +1 -1
  251. package/dist/components/reveal.js +1 -1
  252. package/dist/components/reveal.js.map +1 -1
  253. package/dist/components/solid.cjs.map +1 -1
  254. package/dist/components/solid.js +8 -8
  255. package/dist/components/solid.js.map +1 -1
  256. package/dist/components/svelte.cjs.map +1 -1
  257. package/dist/components/svelte.js +8 -8
  258. package/dist/components/svelte.js.map +1 -1
  259. package/dist/components/svg.cjs.map +1 -1
  260. package/dist/components/svg.js +1 -1
  261. package/dist/components/svg.js.map +1 -1
  262. package/dist/components/text.cjs.map +1 -1
  263. package/dist/components/text.js +2 -2
  264. package/dist/components/text.js.map +1 -1
  265. package/dist/components/timeline.cjs.map +1 -1
  266. package/dist/components/timeline.js +3 -3
  267. package/dist/components/timeline.js.map +1 -1
  268. package/dist/components/tokens.cjs.map +1 -1
  269. package/dist/components/tokens.js.map +1 -1
  270. package/dist/components/transitions.cjs.map +1 -1
  271. package/dist/components/transitions.js +1 -1
  272. package/dist/components/transitions.js.map +1 -1
  273. package/dist/components/ui.cjs.map +1 -1
  274. package/dist/components/ui.js +4 -4
  275. package/dist/components/ui.js.map +1 -1
  276. package/dist/components/vue.cjs.map +1 -1
  277. package/dist/components/vue.js +8 -8
  278. package/dist/components/vue.js.map +1 -1
  279. package/dist/components/webgl.cjs.map +1 -1
  280. package/dist/components/webgl.js +1 -1
  281. package/dist/components/webgl.js.map +1 -1
  282. package/dist/components/widgets.cjs +766 -212
  283. package/dist/components/widgets.cjs.map +1 -1
  284. package/dist/components/widgets.d.cts +207 -2
  285. package/dist/components/widgets.d.ts +207 -2
  286. package/dist/components/widgets.js +770 -221
  287. package/dist/components/widgets.js.map +1 -1
  288. package/dist/components.cjs.map +1 -1
  289. package/dist/components.js +10 -10
  290. package/dist/components.js.map +1 -1
  291. package/dist/element.cjs.map +1 -1
  292. package/dist/element.js.map +1 -1
  293. package/dist/index.cjs.map +1 -1
  294. package/dist/index.js +2 -2
  295. package/dist/index.js.map +1 -1
  296. package/dist/llms-full.txt +250 -1
  297. package/dist/llms.txt +13 -2
  298. package/dist/manifest.json +646 -1
  299. package/dist/presets/extended.cjs.map +1 -1
  300. package/dist/presets/extended.js.map +1 -1
  301. package/dist/react.cjs.map +1 -1
  302. package/dist/react.js.map +1 -1
  303. package/dist/runtime/format-apng.cjs +131 -0
  304. package/dist/runtime/format-apng.cjs.map +1 -0
  305. package/dist/runtime/format-apng.d.cts +250 -0
  306. package/dist/runtime/format-apng.d.ts +250 -0
  307. package/dist/runtime/format-apng.iife.js +2 -0
  308. package/dist/runtime/format-apng.iife.js.map +1 -0
  309. package/dist/runtime/format-apng.js +123 -0
  310. package/dist/runtime/format-apng.js.map +1 -0
  311. package/dist/runtime/format-css.cjs +5 -4
  312. package/dist/runtime/format-css.cjs.map +1 -1
  313. package/dist/runtime/format-css.js +5 -4
  314. package/dist/runtime/format-css.js.map +1 -1
  315. package/dist/runtime/format-gif.cjs +206 -0
  316. package/dist/runtime/format-gif.cjs.map +1 -0
  317. package/dist/runtime/format-gif.d.cts +223 -0
  318. package/dist/runtime/format-gif.d.ts +223 -0
  319. package/dist/runtime/format-gif.iife.js +2 -0
  320. package/dist/runtime/format-gif.iife.js.map +1 -0
  321. package/dist/runtime/format-gif.js +199 -0
  322. package/dist/runtime/format-gif.js.map +1 -0
  323. package/dist/runtime/format-motion.cjs +9 -8
  324. package/dist/runtime/format-motion.cjs.map +1 -1
  325. package/dist/runtime/format-motion.js +5 -4
  326. package/dist/runtime/format-motion.js.map +1 -1
  327. package/dist/runtime/format-sprite.cjs +226 -0
  328. package/dist/runtime/format-sprite.cjs.map +1 -0
  329. package/dist/runtime/format-sprite.d.cts +224 -0
  330. package/dist/runtime/format-sprite.d.ts +224 -0
  331. package/dist/runtime/format-sprite.iife.js +2 -0
  332. package/dist/runtime/format-sprite.iife.js.map +1 -0
  333. package/dist/runtime/format-sprite.js +216 -0
  334. package/dist/runtime/format-sprite.js.map +1 -0
  335. package/dist/runtime/format-svg.cjs +5 -4
  336. package/dist/runtime/format-svg.cjs.map +1 -1
  337. package/dist/runtime/format-svg.iife.js.map +1 -1
  338. package/dist/runtime/format-svg.js +4 -3
  339. package/dist/runtime/format-svg.js.map +1 -1
  340. package/dist/runtime/format-webp.cjs +123 -0
  341. package/dist/runtime/format-webp.cjs.map +1 -0
  342. package/dist/runtime/format-webp.d.cts +245 -0
  343. package/dist/runtime/format-webp.d.ts +245 -0
  344. package/dist/runtime/format-webp.iife.js +2 -0
  345. package/dist/runtime/format-webp.iife.js.map +1 -0
  346. package/dist/runtime/format-webp.js +115 -0
  347. package/dist/runtime/format-webp.js.map +1 -0
  348. package/dist/runtime/scroll.cjs +2 -2
  349. package/dist/runtime/scroll.cjs.map +1 -1
  350. package/dist/runtime/scroll.js +2 -2
  351. package/dist/runtime/scroll.js.map +1 -1
  352. package/dist/runtime/smooth.cjs +284 -0
  353. package/dist/runtime/smooth.cjs.map +1 -0
  354. package/dist/runtime/smooth.d.cts +137 -0
  355. package/dist/runtime/smooth.d.ts +137 -0
  356. package/dist/runtime/smooth.iife.js +2 -0
  357. package/dist/runtime/smooth.iife.js.map +1 -0
  358. package/dist/runtime/smooth.js +279 -0
  359. package/dist/runtime/smooth.js.map +1 -0
  360. package/dist/runtime/text.cjs +147 -0
  361. package/dist/runtime/text.cjs.map +1 -0
  362. package/dist/runtime/text.d.cts +65 -0
  363. package/dist/runtime/text.d.ts +65 -0
  364. package/dist/runtime/text.iife.js +2 -0
  365. package/dist/runtime/text.iife.js.map +1 -0
  366. package/dist/runtime/text.js +143 -0
  367. package/dist/runtime/text.js.map +1 -0
  368. package/dist/runtime.cjs +9 -8
  369. package/dist/runtime.cjs.map +1 -1
  370. package/dist/runtime.d.cts +9 -2
  371. package/dist/runtime.d.ts +9 -2
  372. package/dist/runtime.iife.js +1 -1
  373. package/dist/runtime.iife.js.map +1 -1
  374. package/dist/runtime.js +6 -5
  375. package/dist/runtime.js.map +1 -1
  376. package/dist/solid.cjs.map +1 -1
  377. package/dist/solid.js.map +1 -1
  378. package/dist/svelte.cjs.map +1 -1
  379. package/dist/svelte.js.map +1 -1
  380. package/dist/vue.cjs.map +1 -1
  381. package/dist/vue.js.map +1 -1
  382. package/dist/widgets.umd.js +1 -1
  383. package/dist/widgets.umd.js.map +1 -1
  384. package/docs/ROADMAP.md +2 -2
  385. package/docs/components/README.md +12 -7
  386. package/docs/components/usa-parallax-layers.md +38 -0
  387. package/docs/components/usa-route-transition.md +38 -0
  388. package/docs/components/usa-scroll-ring.md +32 -0
  389. package/docs/components/usa-smooth-scroll.md +60 -0
  390. package/docs/components/usa-text-splitter.md +60 -0
  391. package/docs/components.md +94 -0
  392. package/docs/mcp.md +50 -0
  393. package/docs/runtime/format-apng.md +59 -0
  394. package/docs/runtime/format-gif.md +60 -0
  395. package/docs/runtime/format-sprite.md +60 -0
  396. package/docs/runtime/format-webp.md +58 -0
  397. package/docs/runtime/smooth.md +60 -0
  398. package/docs/runtime/text.md +59 -0
  399. package/package.json +64 -2
  400. package/dist/chunks/keyframes-W-474DMc.js.map +0 -1
  401. package/dist/chunks/keyframes-ZheOkpt0.cjs.map +0 -1
  402. package/dist/chunks/tween-CBuWYpI-.cjs.map +0 -1
  403. package/dist/chunks/tween-CqX1JBuj.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { f as registry } from './registry-BIEjKngP.js';
1
+ import { r as registry } from './registry-CT-TT_bx.js';
2
2
 
3
3
  /**
4
4
  * The shared ticker: one requestAnimationFrame loop per page (or worker) for
@@ -67,4 +67,4 @@ function getTicker() {
67
67
  }
68
68
 
69
69
  export { getTicker as g };
70
- //# sourceMappingURL=ticker-CM_56oVy.js.map
70
+ //# sourceMappingURL=ticker-C8lSGml9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ticker-CM_56oVy.js","sources":["../../src/runtime/ticker.ts"],"sourcesContent":["/**\n * The shared ticker: one requestAnimationFrame loop per page (or worker) for\n * every runtime animation, with lag smoothing and a frame budget readout.\n * Falls back to a 16 ms timer where rAF is missing (Node, some workers).\n * Nothing runs until the first listener is added (SSR-safe).\n */\nimport { registry } from './registry';\n\nexport type TickFn = (time: number, delta: number) => void;\n\nexport interface Ticker {\n /** Add a listener; returns a remover. */\n add(fn: TickFn): () => void;\n remove(fn: TickFn): void;\n /** ms since the ticker started (frozen while sleeping). */\n readonly time: number;\n /** Smoothed frames per second. */\n readonly fps: number;\n /** Listener count (0 = asleep). */\n readonly size: number;\n /** Cap a single frame's delta (default 100 ms) so a background tab does not jump animations. */\n lagSmoothing(maxDelta: number): void;\n /** Global time scale (1 = normal, 0.5 = half speed, 0 = frozen). */\n timeScale: number;\n /** Advance by `ms` synchronously (tests, offline rendering, worker loops). */\n step(ms: number): void;\n}\n\nfunction createTicker(): Ticker {\n const fns = new Set<TickFn>();\n let time = 0, last = -1, fps = 60, maxDelta = 100, handle: unknown = null;\n const g = globalThis as any;\n const now = (): number => (g.performance?.now ? g.performance.now() : Date.now());\n const raf = (cb: (t: number) => void): unknown => (typeof g.requestAnimationFrame === 'function' ? g.requestAnimationFrame(cb) : setTimeout(() => cb(now()), 16));\n const caf = (h: unknown): void => (typeof g.cancelAnimationFrame === 'function' ? g.cancelAnimationFrame(h) : clearTimeout(h as any));\n const run = (dt: number, cap = true): void => {\n const d = (cap ? Math.min(dt, maxDelta) : dt) * t.timeScale;\n time += d;\n for (const fn of Array.from(fns)) fn(time, d);\n };\n const frame = (ts: number): void => {\n handle = null;\n if (!fns.size) return;\n const n = typeof ts === 'number' && ts > 0 ? ts : now();\n const dt = last < 0 ? 0 : n - last;\n last = n;\n if (dt > 0) fps = fps * 0.9 + (1000 / dt) * 0.1;\n run(dt);\n if (fns.size) handle = raf(frame);\n };\n const wake = (): void => {\n if (handle === null && fns.size) {\n last = -1;\n handle = raf(frame);\n }\n };\n const t: Ticker = {\n add(fn) {\n fns.add(fn);\n wake();\n return () => t.remove(fn);\n },\n remove(fn) {\n fns.delete(fn);\n if (!fns.size && handle !== null) {\n caf(handle);\n handle = null;\n }\n },\n get time() { return time; },\n get fps() { return Math.round(fps); },\n get size() { return fns.size; },\n lagSmoothing(ms) { maxDelta = ms > 0 ? ms : Infinity; },\n timeScale: 1,\n step(ms) { run(ms, false); },\n };\n return t;\n}\n\n/** The page-wide ticker (shared across every copy of the runtime). */\nexport function getTicker(): Ticker {\n const s = registry().slots;\n return (s.ticker ||= createTicker()) as Ticker;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticker-C8lSGml9.js","sources":["../../src/runtime/ticker.ts"],"sourcesContent":["/**\n * The shared ticker: one requestAnimationFrame loop per page (or worker) for\n * every runtime animation, with lag smoothing and a frame budget readout.\n * Falls back to a 16 ms timer where rAF is missing (Node, some workers).\n * Nothing runs until the first listener is added (SSR-safe).\n */\nimport { registry } from './registry';\n\nexport type TickFn = (time: number, delta: number) => void;\n\nexport interface Ticker {\n /** Add a listener; returns a remover. */\n add(fn: TickFn): () => void;\n remove(fn: TickFn): void;\n /** ms since the ticker started (frozen while sleeping). */\n readonly time: number;\n /** Smoothed frames per second. */\n readonly fps: number;\n /** Listener count (0 = asleep). */\n readonly size: number;\n /** Cap a single frame's delta (default 100 ms) so a background tab does not jump animations. */\n lagSmoothing(maxDelta: number): void;\n /** Global time scale (1 = normal, 0.5 = half speed, 0 = frozen). */\n timeScale: number;\n /** Advance by `ms` synchronously (tests, offline rendering, worker loops). */\n step(ms: number): void;\n}\n\nfunction createTicker(): Ticker {\n const fns = new Set<TickFn>();\n let time = 0, last = -1, fps = 60, maxDelta = 100, handle: unknown = null;\n const g = globalThis as any;\n const now = (): number => (g.performance?.now ? g.performance.now() : Date.now());\n const raf = (cb: (t: number) => void): unknown => (typeof g.requestAnimationFrame === 'function' ? g.requestAnimationFrame(cb) : setTimeout(() => cb(now()), 16));\n const caf = (h: unknown): void => (typeof g.cancelAnimationFrame === 'function' ? g.cancelAnimationFrame(h) : clearTimeout(h as any));\n const run = (dt: number, cap = true): void => {\n const d = (cap ? Math.min(dt, maxDelta) : dt) * t.timeScale;\n time += d;\n for (const fn of Array.from(fns)) fn(time, d);\n };\n const frame = (ts: number): void => {\n handle = null;\n if (!fns.size) return;\n const n = typeof ts === 'number' && ts > 0 ? ts : now();\n const dt = last < 0 ? 0 : n - last;\n last = n;\n if (dt > 0) fps = fps * 0.9 + (1000 / dt) * 0.1;\n run(dt);\n if (fns.size) handle = raf(frame);\n };\n const wake = (): void => {\n if (handle === null && fns.size) {\n last = -1;\n handle = raf(frame);\n }\n };\n const t: Ticker = {\n add(fn) {\n fns.add(fn);\n wake();\n return () => t.remove(fn);\n },\n remove(fn) {\n fns.delete(fn);\n if (!fns.size && handle !== null) {\n caf(handle);\n handle = null;\n }\n },\n get time() { return time; },\n get fps() { return Math.round(fps); },\n get size() { return fns.size; },\n lagSmoothing(ms) { maxDelta = ms > 0 ? ms : Infinity; },\n timeScale: 1,\n step(ms) { run(ms, false); },\n };\n return t;\n}\n\n/** The page-wide ticker (shared across every copy of the runtime). */\nexport function getTicker(): Ticker {\n const s = registry().slots;\n return (s.ticker ||= createTicker()) as Ticker;\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var registry = require('./registry-eJgpFAzI.cjs');
3
+ var registry = require('./registry-tzwKkldE.cjs');
4
4
 
5
5
  /**
6
6
  * The shared ticker: one requestAnimationFrame loop per page (or worker) for
@@ -69,4 +69,4 @@ function getTicker() {
69
69
  }
70
70
 
71
71
  exports.getTicker = getTicker;
72
- //# sourceMappingURL=ticker-D4o6enH0.cjs.map
72
+ //# sourceMappingURL=ticker-Un0bvTWR.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ticker-D4o6enH0.cjs","sources":["../../src/runtime/ticker.ts"],"sourcesContent":["/**\n * The shared ticker: one requestAnimationFrame loop per page (or worker) for\n * every runtime animation, with lag smoothing and a frame budget readout.\n * Falls back to a 16 ms timer where rAF is missing (Node, some workers).\n * Nothing runs until the first listener is added (SSR-safe).\n */\nimport { registry } from './registry';\n\nexport type TickFn = (time: number, delta: number) => void;\n\nexport interface Ticker {\n /** Add a listener; returns a remover. */\n add(fn: TickFn): () => void;\n remove(fn: TickFn): void;\n /** ms since the ticker started (frozen while sleeping). */\n readonly time: number;\n /** Smoothed frames per second. */\n readonly fps: number;\n /** Listener count (0 = asleep). */\n readonly size: number;\n /** Cap a single frame's delta (default 100 ms) so a background tab does not jump animations. */\n lagSmoothing(maxDelta: number): void;\n /** Global time scale (1 = normal, 0.5 = half speed, 0 = frozen). */\n timeScale: number;\n /** Advance by `ms` synchronously (tests, offline rendering, worker loops). */\n step(ms: number): void;\n}\n\nfunction createTicker(): Ticker {\n const fns = new Set<TickFn>();\n let time = 0, last = -1, fps = 60, maxDelta = 100, handle: unknown = null;\n const g = globalThis as any;\n const now = (): number => (g.performance?.now ? g.performance.now() : Date.now());\n const raf = (cb: (t: number) => void): unknown => (typeof g.requestAnimationFrame === 'function' ? g.requestAnimationFrame(cb) : setTimeout(() => cb(now()), 16));\n const caf = (h: unknown): void => (typeof g.cancelAnimationFrame === 'function' ? g.cancelAnimationFrame(h) : clearTimeout(h as any));\n const run = (dt: number, cap = true): void => {\n const d = (cap ? Math.min(dt, maxDelta) : dt) * t.timeScale;\n time += d;\n for (const fn of Array.from(fns)) fn(time, d);\n };\n const frame = (ts: number): void => {\n handle = null;\n if (!fns.size) return;\n const n = typeof ts === 'number' && ts > 0 ? ts : now();\n const dt = last < 0 ? 0 : n - last;\n last = n;\n if (dt > 0) fps = fps * 0.9 + (1000 / dt) * 0.1;\n run(dt);\n if (fns.size) handle = raf(frame);\n };\n const wake = (): void => {\n if (handle === null && fns.size) {\n last = -1;\n handle = raf(frame);\n }\n };\n const t: Ticker = {\n add(fn) {\n fns.add(fn);\n wake();\n return () => t.remove(fn);\n },\n remove(fn) {\n fns.delete(fn);\n if (!fns.size && handle !== null) {\n caf(handle);\n handle = null;\n }\n },\n get time() { return time; },\n get fps() { return Math.round(fps); },\n get size() { return fns.size; },\n lagSmoothing(ms) { maxDelta = ms > 0 ? ms : Infinity; },\n timeScale: 1,\n step(ms) { run(ms, false); },\n };\n return t;\n}\n\n/** The page-wide ticker (shared across every copy of the runtime). */\nexport function getTicker(): Ticker {\n const s = registry().slots;\n return (s.ticker ||= createTicker()) as Ticker;\n}\n"],"names":["registry"],"mappings":"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"}
1
+ {"version":3,"file":"ticker-Un0bvTWR.cjs","sources":["../../src/runtime/ticker.ts"],"sourcesContent":["/**\n * The shared ticker: one requestAnimationFrame loop per page (or worker) for\n * every runtime animation, with lag smoothing and a frame budget readout.\n * Falls back to a 16 ms timer where rAF is missing (Node, some workers).\n * Nothing runs until the first listener is added (SSR-safe).\n */\nimport { registry } from './registry';\n\nexport type TickFn = (time: number, delta: number) => void;\n\nexport interface Ticker {\n /** Add a listener; returns a remover. */\n add(fn: TickFn): () => void;\n remove(fn: TickFn): void;\n /** ms since the ticker started (frozen while sleeping). */\n readonly time: number;\n /** Smoothed frames per second. */\n readonly fps: number;\n /** Listener count (0 = asleep). */\n readonly size: number;\n /** Cap a single frame's delta (default 100 ms) so a background tab does not jump animations. */\n lagSmoothing(maxDelta: number): void;\n /** Global time scale (1 = normal, 0.5 = half speed, 0 = frozen). */\n timeScale: number;\n /** Advance by `ms` synchronously (tests, offline rendering, worker loops). */\n step(ms: number): void;\n}\n\nfunction createTicker(): Ticker {\n const fns = new Set<TickFn>();\n let time = 0, last = -1, fps = 60, maxDelta = 100, handle: unknown = null;\n const g = globalThis as any;\n const now = (): number => (g.performance?.now ? g.performance.now() : Date.now());\n const raf = (cb: (t: number) => void): unknown => (typeof g.requestAnimationFrame === 'function' ? g.requestAnimationFrame(cb) : setTimeout(() => cb(now()), 16));\n const caf = (h: unknown): void => (typeof g.cancelAnimationFrame === 'function' ? g.cancelAnimationFrame(h) : clearTimeout(h as any));\n const run = (dt: number, cap = true): void => {\n const d = (cap ? Math.min(dt, maxDelta) : dt) * t.timeScale;\n time += d;\n for (const fn of Array.from(fns)) fn(time, d);\n };\n const frame = (ts: number): void => {\n handle = null;\n if (!fns.size) return;\n const n = typeof ts === 'number' && ts > 0 ? ts : now();\n const dt = last < 0 ? 0 : n - last;\n last = n;\n if (dt > 0) fps = fps * 0.9 + (1000 / dt) * 0.1;\n run(dt);\n if (fns.size) handle = raf(frame);\n };\n const wake = (): void => {\n if (handle === null && fns.size) {\n last = -1;\n handle = raf(frame);\n }\n };\n const t: Ticker = {\n add(fn) {\n fns.add(fn);\n wake();\n return () => t.remove(fn);\n },\n remove(fn) {\n fns.delete(fn);\n if (!fns.size && handle !== null) {\n caf(handle);\n handle = null;\n }\n },\n get time() { return time; },\n get fps() { return Math.round(fps); },\n get size() { return fns.size; },\n lagSmoothing(ms) { maxDelta = ms > 0 ? ms : Infinity; },\n timeScale: 1,\n step(ms) { run(ms, false); },\n };\n return t;\n}\n\n/** The page-wide ticker (shared across every copy of the runtime). */\nexport function getTicker(): Ticker {\n const s = registry().slots;\n return (s.ticker ||= createTicker()) as Ticker;\n}\n"],"names":["registry"],"mappings":"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"}
@@ -1,91 +1,5 @@
1
- import { g as getTicker } from './ticker-CM_56oVy.js';
2
-
3
- const out = (f) => (t) => 1 - f(1 - t);
4
- const inOut = (f) => (t) => (t < 0.5 ? f(t * 2) / 2 : 1 - f((1 - t) * 2) / 2);
5
- const pow = (p) => (t) => Math.pow(t, p);
6
- const sine = (t) => 1 - Math.cos((t * Math.PI) / 2);
7
- const expo = (t) => (t === 0 ? 0 : Math.pow(2, 10 * t - 10));
8
- const circ = (t) => 1 - Math.sqrt(1 - t * t);
9
- const back = (s = 1.70158) => (t) => t * t * ((s + 1) * t - s);
10
- const elastic = (t) => (t === 0 || t === 1 ? t : -Math.pow(2, 10 * t - 10) * Math.sin((t * 10 - 10.75) * ((2 * Math.PI) / 3)));
11
- const bounceOut = (t) => {
12
- const n = 7.5625, d = 2.75;
13
- if (t < 1 / d)
14
- return n * t * t;
15
- if (t < 2 / d)
16
- return n * (t -= 1.5 / d) * t + 0.75;
17
- if (t < 2.5 / d)
18
- return n * (t -= 2.25 / d) * t + 0.9375;
19
- return n * (t -= 2.625 / d) * t + 0.984375;
20
- };
21
- /** cubic-bezier(x1, y1, x2, y2), solved with Newton steps + bisection fallback. */
22
- function cubicBezier(x1, y1, x2, y2) {
23
- const a = (p1, p2) => 1 - 3 * p2 + 3 * p1;
24
- const b = (p1, p2) => 3 * p2 - 6 * p1;
25
- const c = (p1) => 3 * p1;
26
- const at = (t, p1, p2) => ((a(p1, p2) * t + b(p1, p2)) * t + c(p1)) * t;
27
- const slope = (t, p1, p2) => 3 * a(p1, p2) * t * t + 2 * b(p1, p2) * t + c(p1);
28
- return (x) => {
29
- if (x <= 0 || x >= 1)
30
- return x <= 0 ? 0 : 1;
31
- let t = x;
32
- for (let i = 0; i < 6; i++) {
33
- const s = slope(t, x1, x2);
34
- if (Math.abs(s) < 1e-6)
35
- break;
36
- t -= (at(t, x1, x2) - x) / s;
37
- }
38
- if (t < 0 || t > 1 || Math.abs(at(t, x1, x2) - x) > 1e-4) {
39
- let lo = 0, hi = 1;
40
- t = x;
41
- for (let i = 0; i < 30; i++) {
42
- const v = at(t, x1, x2);
43
- if (Math.abs(v - x) < 1e-6)
44
- break;
45
- if (v < x)
46
- lo = t;
47
- else
48
- hi = t;
49
- t = (lo + hi) / 2;
50
- }
51
- }
52
- return at(t, y1, y2);
53
- };
54
- }
55
- /** steps(n, 'end' | 'start'). */
56
- const steps = (n, pos = 'end') => (t) => {
57
- const k = pos === 'start' ? Math.ceil(t * n) : Math.floor(t * n);
58
- return Math.min(1, Math.max(0, k / n));
59
- };
60
- /** Named eases: linear, quad/cubic/quart/quint, sine, expo, circ, back, elastic, bounce — each `.in`, `.out`, `.inOut` via 'name-in' | 'name-out' | 'name-in-out'. */
61
- const BASE = { quad: pow(2), cubic: pow(3), quart: pow(4), quint: pow(5), sine, expo, circ, back: back(), elastic, bounce: out(bounceOut) };
62
- const EASES = { linear: (t) => t, ease: cubicBezier(0.25, 0.1, 0.25, 1), 'ease-in': cubicBezier(0.42, 0, 1, 1), 'ease-out': cubicBezier(0, 0, 0.58, 1), 'ease-in-out': cubicBezier(0.42, 0, 0.58, 1), smooth: cubicBezier(0.22, 1, 0.36, 1) };
63
- for (const [k, f] of Object.entries(BASE)) {
64
- EASES[`${k}-in`] = f;
65
- EASES[`${k}-out`] = out(f);
66
- EASES[`${k}-in-out`] = inOut(f);
67
- }
68
- /** Resolve an ease: a function, a name ('cubic-out', 'ease-in-out', 'linear'), 'cubic-bezier(a,b,c,d)' or 'steps(n[, start|end])'. Unknown names throw. */
69
- function parseEase(e) {
70
- if (typeof e === 'function')
71
- return e;
72
- if (!e)
73
- return EASES['cubic-out'];
74
- const s = e.trim();
75
- if (EASES[s])
76
- return EASES[s];
77
- let m = /^cubic-bezier\(\s*([-\d.]+)\s*,\s*([-\d.]+)\s*,\s*([-\d.]+)\s*,\s*([-\d.]+)\s*\)$/.exec(s);
78
- if (m)
79
- return cubicBezier(+m[1], +m[2], +m[3], +m[4]);
80
- m = /^steps\(\s*(\d+)\s*(?:,\s*(jump-)?(start|end)\s*)?\)$/.exec(s);
81
- if (m)
82
- return steps(+m[1], m[3] || 'end');
83
- if (s === 'step-start')
84
- return steps(1, 'start');
85
- if (s === 'step-end')
86
- return steps(1, 'end');
87
- throw new Error(`[motionary] unknown ease "${s}" — use a name from EASES, cubic-bezier(…) or steps(…)`);
88
- }
1
+ import { g as getTicker } from './ticker-C8lSGml9.js';
2
+ import { p as parseEase } from './ease-XN8_0sXu.js';
89
3
 
90
4
  /**
91
5
  * Tween + timeline engine (original implementation). Times are in
@@ -99,6 +13,7 @@ const TRANSFORM = ['x', 'y', 'rotate', 'scale', 'scaleX', 'scaleY', 'skewX', 'sk
99
13
  const DEFAULT_UNIT = { x: 'px', y: 'px', rotate: 'deg', skewX: 'deg', skewY: 'deg', scale: '', scaleX: '', scaleY: '' };
100
14
  const tstate = new WeakMap();
101
15
  const isEl = (t) => typeof Element !== 'undefined' && t instanceof Element;
16
+ const NUM_RE = /-?(?:\d+\.?\d*|\.\d+)(?:e-?\d+)?/gi;
102
17
  /** Parse '12px', '-3.5', '50%', '#0af', 'rgb(1 2 3 / .5)', 'rgba(…)'. */
103
18
  function parseValue(v) {
104
19
  if (typeof v === 'number')
@@ -122,9 +37,16 @@ function parseValue(v) {
122
37
  m = /^(-?[\d.]+(?:e-?\d+)?)([a-z%]*)$/i.exec(s);
123
38
  if (m)
124
39
  return { kind: 'num', v: parseFloat(m[1]), u: m[2] };
125
- throw new Error(`[motionary] cannot tween value "${s}"`);
40
+ return { kind: 'str', s, parts: s.split(NUM_RE), nums: (s.match(NUM_RE) || []).map(Number) };
126
41
  }
127
42
  const lerpVal = (a, b, p) => {
43
+ if (a.kind === 'str' || b.kind === 'str') {
44
+ if (a.kind === 'str' && b.kind === 'str' && a.parts.join('\u0000') === b.parts.join('\u0000') && a.nums.length === b.nums.length) {
45
+ return a.parts.map((t, i) => t + (i < a.nums.length ? +(a.nums[i] + (b.nums[i] - a.nums[i]) * p).toFixed(4) : '')).join('');
46
+ }
47
+ const src = p < 0.5 ? a : b;
48
+ return src.kind === 'str' ? src.s : src.kind === 'num' ? (src.u ? src.v + src.u : src.v) : `rgba(${src.c.join(', ')})`;
49
+ }
128
50
  if (a.kind === 'col' || b.kind === 'col') {
129
51
  const ca = a.kind === 'col' ? a.c : [0, 0, 0, 0], cb = b.kind === 'col' ? b.c : [0, 0, 0, 0];
130
52
  const c = ca.map((x, i) => x + (cb[i] - x) * p);
@@ -174,6 +96,8 @@ function writeProp(t, k, v) {
174
96
  }
175
97
  if (TRANSFORM.includes(k)) {
176
98
  const p = parseValue(v);
99
+ if (p.kind !== 'num')
100
+ throw new Error(`[motionary] ${k} needs a number (got "${v}")`);
177
101
  const s = tstate.get(t) || {};
178
102
  s[k] = { v: p.v, u: p.u };
179
103
  tstate.set(t, s);
@@ -472,5 +396,5 @@ function timeline(o = {}) {
472
396
  return tl;
473
397
  }
474
398
 
475
- export { EASES as E, Playable as P, Timeline as T, Tween as a, tween as b, cubicBezier as c, parseValue as d, parseEase as p, steps as s, timeline as t };
476
- //# sourceMappingURL=tween-CqX1JBuj.js.map
399
+ export { Playable as P, Timeline as T, Tween as a, tween as b, parseValue as p, timeline as t };
400
+ //# sourceMappingURL=tween-BcejKpsx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tween-BcejKpsx.js","sources":["../../src/runtime/tween.ts"],"sourcesContent":["/**\n * Tween + timeline engine (original implementation). Times are in\n * milliseconds. Targets are plain objects (numeric props) or elements\n * (CSS: numbers with units, colours, `opacity`, custom properties, and the\n * transform shorthands `x y rotate scale scaleX scaleY skewX skewY`,\n * composed in that order). Driven by the shared ticker; a tween placed in a\n * timeline is driven by the timeline instead.\n */\nimport { getTicker } from './ticker';\nimport { parseEase, type Ease } from './ease';\n\nexport type Target = object | Element;\nexport type Props = Record<string, number | string>;\n\nexport interface PlayOptions {\n /** Delay before the first iteration, ms. */\n delay?: number;\n /** Extra iterations (-1 = forever). */\n repeat?: number;\n /** Alternate direction on every other iteration. */\n yoyo?: boolean;\n /** Start paused (`play()` to start). */\n paused?: boolean;\n onUpdate?: (progress: number) => void;\n onComplete?: () => void;\n}\n\nexport interface TweenOptions extends PlayOptions {\n to?: Props;\n from?: Props;\n /** ms (default 600). */\n duration?: number;\n ease?: string | Ease;\n /** Delay added per target index (ms) when several targets are given. */\n stagger?: number;\n}\n\nconst TRANSFORM = ['x', 'y', 'rotate', 'scale', 'scaleX', 'scaleY', 'skewX', 'skewY'];\nconst DEFAULT_UNIT: Record<string, string> = { x: 'px', y: 'px', rotate: 'deg', skewX: 'deg', skewY: 'deg', scale: '', scaleX: '', scaleY: '' };\ntype TState = Record<string, { v: number; u: string }>;\nconst tstate = new WeakMap<Element, TState>();\n\nconst isEl = (t: unknown): t is HTMLElement => typeof Element !== 'undefined' && t instanceof Element;\n\ninterface Num { kind: 'num'; v: number; u: string }\ninterface Col { kind: 'col'; c: number[] }\n/** Any other string: its numbers are interpolated when both ends share the same text around them. */\ninterface Str { kind: 'str'; s: string; parts: string[]; nums: number[] }\ntype Val = Num | Col | Str;\nconst NUM_RE = /-?(?:\\d+\\.?\\d*|\\.\\d+)(?:e-?\\d+)?/gi;\n\n/** Parse '12px', '-3.5', '50%', '#0af', 'rgb(1 2 3 / .5)', 'rgba(…)'. */\nexport function parseValue(v: number | string): Val {\n if (typeof v === 'number') return { kind: 'num', v, u: '' };\n const s = v.trim();\n let m = /^#([0-9a-f]{3,8})$/i.exec(s);\n if (m) {\n let h = m[1];\n if (h.length <= 4) h = h.split('').map((c) => c + c).join('');\n const n = (i: number) => parseInt(h.slice(i, i + 2), 16);\n return { kind: 'col', c: [n(0), n(2), n(4), h.length === 8 ? n(6) / 255 : 1] };\n }\n m = /^rgba?\\(([^)]+)\\)$/i.exec(s);\n if (m) {\n const p = m[1].split(/[\\s,/]+/).filter(Boolean).map((x) => (x.endsWith('%') ? (parseFloat(x) / 100) * 255 : parseFloat(x)));\n return { kind: 'col', c: [p[0], p[1], p[2], p[3] === undefined ? 1 : p[3] > 1 ? p[3] / 255 : p[3]] };\n }\n if (s === 'transparent') return { kind: 'col', c: [0, 0, 0, 0] };\n m = /^(-?[\\d.]+(?:e-?\\d+)?)([a-z%]*)$/i.exec(s);\n if (m) return { kind: 'num', v: parseFloat(m[1]), u: m[2] };\n return { kind: 'str', s, parts: s.split(NUM_RE), nums: (s.match(NUM_RE) || []).map(Number) };\n}\n\nconst lerpVal = (a: Val, b: Val, p: number): string | number => {\n if (a.kind === 'str' || b.kind === 'str') {\n if (a.kind === 'str' && b.kind === 'str' && a.parts.join('\\u0000') === b.parts.join('\\u0000') && a.nums.length === b.nums.length) {\n return a.parts.map((t, i) => t + (i < a.nums.length ? +(a.nums[i] + (b.nums[i] - a.nums[i]) * p).toFixed(4) : '')).join('');\n }\n const src = p < 0.5 ? a : b;\n return src.kind === 'str' ? src.s : src.kind === 'num' ? (src.u ? src.v + src.u : src.v) : `rgba(${src.c.join(', ')})`;\n }\n if (a.kind === 'col' || b.kind === 'col') {\n const ca = a.kind === 'col' ? a.c : [0, 0, 0, 0], cb = b.kind === 'col' ? b.c : [0, 0, 0, 0];\n const c = ca.map((x, i) => x + (cb[i] - x) * p);\n return `rgba(${Math.round(c[0])}, ${Math.round(c[1])}, ${Math.round(c[2])}, ${+c[3].toFixed(3)})`;\n }\n const v = a.v + (b.v - a.v) * p;\n const u = b.u || a.u;\n return u ? `${+v.toFixed(4)}${u}` : +v.toFixed(6);\n};\n\nconst kebab = (k: string) => (k.startsWith('--') ? k : k.replace(/[A-Z]/g, (c) => '-' + c.toLowerCase()));\n\nfunction readProp(t: Target, k: string): number | string {\n if (!isEl(t)) return (t as any)[k] ?? 0;\n if (TRANSFORM.includes(k)) {\n const s = tstate.get(t)?.[k];\n return s ? s.v + s.u : k.startsWith('scale') ? 1 : 0;\n }\n const inline = t.style.getPropertyValue(kebab(k));\n if (inline) return inline;\n const cs = typeof getComputedStyle === 'function' ? getComputedStyle(t).getPropertyValue(kebab(k)) : '';\n return cs || (k === 'opacity' ? 1 : 0);\n}\n\nfunction writeTransform(el: HTMLElement): void {\n const s = tstate.get(el)!;\n const g = (k: string, d: number) => (s[k] ? s[k].v : d);\n const u = (k: string) => (s[k]?.u ?? DEFAULT_UNIT[k]);\n const parts: string[] = [];\n if (s.x || s.y) parts.push(`translate(${g('x', 0)}${u('x') || 'px'}, ${g('y', 0)}${u('y') || 'px'})`);\n if (s.rotate) parts.push(`rotate(${g('rotate', 0)}${u('rotate') || 'deg'})`);\n if (s.scale) parts.push(`scale(${g('scale', 1)})`);\n if (s.scaleX || s.scaleY) parts.push(`scale(${g('scaleX', 1)}, ${g('scaleY', 1)})`);\n if (s.skewX) parts.push(`skewX(${g('skewX', 0)}${u('skewX') || 'deg'})`);\n if (s.skewY) parts.push(`skewY(${g('skewY', 0)}${u('skewY') || 'deg'})`);\n el.style.transform = parts.join(' ');\n}\n\nfunction writeProp(t: Target, k: string, v: string | number): void {\n if (!isEl(t)) {\n (t as any)[k] = typeof v === 'string' && typeof (t as any)[k] === 'number' ? parseFloat(v) : v;\n return;\n }\n if (TRANSFORM.includes(k)) {\n const p = parseValue(v) as Num;\n if (p.kind !== 'num') throw new Error(`[motionary] ${k} needs a number (got \"${v}\")`);\n const s = tstate.get(t) || {};\n s[k] = { v: p.v, u: p.u };\n tstate.set(t, s);\n return;\n }\n t.style.setProperty(kebab(k), typeof v === 'number' && !['opacity', 'zIndex', 'z-index'].includes(k) && !k.startsWith('--') ? v + 'px' : String(v));\n}\n\n/** Common playback: delay, repeat, yoyo, direction, ticker attachment, promise. */\nexport abstract class Playable {\n delay: number;\n repeat: number;\n yoyo: boolean;\n /** Playback rate multiplier. */\n timeScale = 1;\n onUpdate?: (progress: number) => void;\n onComplete?: () => void;\n protected _t = 0;\n private _dir = 1;\n private _off: (() => void) | null = null;\n private _done = false;\n private _resolve!: () => void;\n /** Resolves on completion (forward end, or start when reversed). */\n finished: Promise<void>;\n /** Set when owned by a timeline (then the ticker never drives it). */\n parent: Timeline | null = null;\n\n constructor(o: PlayOptions) {\n this.delay = o.delay || 0;\n this.repeat = o.repeat || 0;\n this.yoyo = !!o.yoyo;\n this.onUpdate = o.onUpdate;\n this.onComplete = o.onComplete;\n this.finished = new Promise((r) => (this._resolve = r));\n }\n /** One iteration, ms. */\n abstract get duration(): number;\n /** Render at `ms` into one iteration. */\n protected abstract renderLocal(ms: number, iterationEnded: boolean): void;\n\n get totalDuration(): number {\n return this.repeat < 0 ? Infinity : this.delay + this.duration * (this.repeat + 1);\n }\n get time(): number {\n return this._t;\n }\n get progress(): number {\n const td = this.totalDuration;\n return td === Infinity ? ((this._t - this.delay) % this.duration) / this.duration : td ? this._t / td : 1;\n }\n set progress(p: number) {\n this.seek(p * (this.totalDuration === Infinity ? this.delay + this.duration : this.totalDuration));\n }\n get isActive(): boolean {\n return !!this._off;\n }\n get reversed(): boolean {\n return this._dir < 0;\n }\n\n /** Jump to `ms` (total time, including the delay) and render. */\n seek(ms: number): this {\n const td = this.totalDuration;\n this._t = Math.max(0, Math.min(ms, td));\n const t = this._t - this.delay;\n const d = this.duration || 0;\n if (t < 0) this.renderLocal(0, false);\n else if (!d) this.renderLocal(0, true);\n else {\n let it = d === Infinity ? 0 : Math.floor(t / d);\n let local = d === Infinity ? t : t - it * d;\n if (t >= td - this.delay && td !== Infinity) {\n it = this.repeat;\n local = d;\n }\n const back = this.yoyo && it % 2 === 1;\n this.renderLocal(back ? d - local : local, local === d);\n }\n this.onUpdate?.(this.progress);\n return this;\n }\n\n play(): this {\n this._dir = 1;\n if (this._t >= this.totalDuration) this._t = 0;\n return this.attach();\n }\n pause(): this {\n this._off?.();\n this._off = null;\n return this;\n }\n /** Play backwards from the current time. */\n reverse(): this {\n this._dir = -1;\n if (this._t <= 0) this._t = this.totalDuration === Infinity ? this.delay + this.duration : this.totalDuration;\n return this.attach();\n }\n restart(): this {\n this._done = false;\n this.seek(0);\n return this.play();\n }\n /** Stop and detach for good. */\n kill(): void {\n this.pause();\n this.parent?.remove(this);\n }\n /** Promise-like: `await tween(...)`. */\n then<R>(ok?: (v: void) => R, err?: (e: unknown) => R): Promise<R> {\n return this.finished.then(ok, err);\n }\n\n private attach(): this {\n if (this.parent || this._off) return this;\n this._done = false;\n this._off = getTicker().add((_, dt) => this.advance(dt));\n return this;\n }\n private advance(dt: number): void {\n const td = this.totalDuration;\n this.seek(this._t + dt * this._dir * this.timeScale);\n if ((this._dir > 0 && this._t >= td) || (this._dir < 0 && this._t <= 0)) this.complete();\n }\n protected complete(): void {\n this.pause();\n if (this._done) return;\n this._done = true;\n this.onComplete?.();\n this._resolve();\n }\n}\n\ninterface Track { k: string; from?: Val; to: Val; fromRaw?: number | string; toRaw: number | string }\n\n/** A tween of one target. */\nexport class Tween extends Playable {\n readonly target: Target;\n private _dur: number;\n private ease: Ease;\n private tracks: Track[] | null = null;\n private toProps: Props;\n private fromProps: Props;\n constructor(target: Target, o: TweenOptions) {\n super(o);\n this.target = target;\n this._dur = o.duration ?? 600;\n this.ease = parseEase(o.ease);\n this.toProps = o.to || {};\n this.fromProps = o.from || {};\n }\n get duration(): number {\n return this._dur;\n }\n /** Capture start values (first render). */\n private init(): Track[] {\n const keys = Array.from(new Set([...Object.keys(this.fromProps), ...Object.keys(this.toProps)]));\n return keys.map((k) => {\n const fromRaw = k in this.fromProps ? this.fromProps[k] : readProp(this.target, k);\n const toRaw = k in this.toProps ? this.toProps[k] : readProp(this.target, k);\n return { k, fromRaw, toRaw, from: parseValue(fromRaw), to: parseValue(toRaw) };\n });\n }\n protected renderLocal(ms: number, ended: boolean): void {\n this.tracks ||= this.init();\n const p = this._dur ? (ended ? this.ease(ms >= this._dur ? 1 : 0) : this.ease(ms / this._dur)) : 1;\n let tr = false;\n for (const t of this.tracks) {\n writeProp(this.target, t.k, lerpVal(t.from!, t.to, p));\n if (TRANSFORM.includes(t.k)) tr = true;\n }\n if (tr && isEl(this.target)) writeTransform(this.target);\n }\n}\n\ntype Child = { item: Playable | (() => void); start: number; fired?: boolean };\n\n/** Position: ms number, '<' (start of previous), '>' (end of previous, default), '+=200' / '-=200' (relative to the end), 'label', 'label+=100', '<+=100'. */\nexport type Position = number | string;\n\nexport interface TimelineOptions extends PlayOptions {\n /** Defaults merged into every `.to()`. */\n defaults?: Omit<TweenOptions, 'to' | 'from'>;\n}\n\n/** A sequence of tweens, nested timelines and callbacks. */\nexport class Timeline extends Playable {\n private children: Child[] = [];\n private labels: Record<string, number> = {};\n private prevStart = 0;\n private prevEnd = 0;\n private defaults: TimelineOptions['defaults'];\n private lastLocal = 0;\n constructor(o: TimelineOptions = {}) {\n super(o);\n this.defaults = o.defaults;\n }\n get duration(): number {\n let d = 0;\n for (const c of this.children) d = Math.max(d, c.start + (typeof c.item === 'function' ? 0 : c.item.totalDuration));\n return d;\n }\n private resolve(pos: Position | undefined): number {\n if (pos === undefined || pos === '>') return this.prevEnd;\n if (typeof pos === 'number') return Math.max(0, pos);\n const m = /^([<>]|[\\w-]+)?\\s*(?:([+-])=\\s*([\\d.]+))?$/.exec(pos.trim());\n if (!m) throw new Error(`[motionary] bad timeline position \"${pos}\"`);\n let base = this.prevEnd;\n if (m[1] === '<') base = this.prevStart;\n else if (m[1] && m[1] !== '>') {\n if (!(m[1] in this.labels)) throw new Error(`[motionary] unknown timeline label \"${m[1]}\"`);\n base = this.labels[m[1]];\n }\n const off = m[2] ? (m[2] === '+' ? 1 : -1) * parseFloat(m[3]) : 0;\n return Math.max(0, base + off);\n }\n /** Add a tween, timeline or callback at a position. */\n add(item: Playable | (() => void), position?: Position): this {\n const start = this.resolve(position);\n if (typeof item !== 'function') {\n item.pause();\n item.parent = this;\n }\n this.children.push({ item, start });\n this.prevStart = start;\n this.prevEnd = start + (typeof item === 'function' ? 0 : item.totalDuration);\n return this;\n }\n /** `tween(target, vars)` placed at `position` (stagger across several targets). */\n to(target: Target | Target[] | ArrayLike<Target>, vars: TweenOptions, position?: Position): this {\n const list = toList(target);\n const start = this.resolve(position);\n let end = start;\n list.forEach((t, i) => {\n const tw = new Tween(t, { ...this.defaults, ...vars, delay: (vars.delay || 0) + (vars.stagger || 0) * i, paused: true });\n tw.parent = this;\n this.children.push({ item: tw, start });\n end = Math.max(end, start + tw.totalDuration);\n });\n this.prevStart = start;\n this.prevEnd = end;\n return this;\n }\n call(fn: () => void, position?: Position): this {\n return this.add(fn, position);\n }\n label(name: string, position?: Position): this {\n this.labels[name] = this.resolve(position);\n return this;\n }\n /** Time of a label, ms. */\n labelTime(name: string): number | undefined {\n return this.labels[name];\n }\n remove(item: Playable): void {\n this.children = this.children.filter((c) => c.item !== item);\n }\n /** Children in start order (callbacks excluded). */\n getChildren(): Playable[] {\n return this.children.filter((c) => typeof c.item !== 'function').map((c) => c.item as Playable);\n }\n protected renderLocal(ms: number): void {\n const forward = ms >= this.lastLocal;\n const list = [...this.children].sort((a, b) => (forward ? a.start - b.start : b.start - a.start));\n for (const c of list) {\n if (typeof c.item === 'function') {\n if (forward && !c.fired && ms >= c.start && this.lastLocal <= c.start) {\n c.fired = true;\n c.item();\n } else if (!forward && ms < c.start) c.fired = false;\n continue;\n }\n const local = ms - c.start;\n const p = c.item as Playable & { _started?: boolean };\n if (local < 0) {\n if (p._started) p.seek(0);\n continue;\n }\n p._started = true;\n p.seek(Math.min(local, p.totalDuration));\n }\n this.lastLocal = ms;\n }\n}\n\nfunction toList(t: Target | Target[] | ArrayLike<Target>): Target[] {\n if (Array.isArray(t)) return t;\n if (t && typeof (t as ArrayLike<Target>).length === 'number' && !isEl(t)) return Array.from(t as ArrayLike<Target>);\n return [t as Target];\n}\n\n/**\n * Tween one or more targets. Returns a `Tween` (or a `Timeline` holding one\n * tween per target when several are given) that starts on the next frame\n * unless `paused`. `await` it for completion.\n */\nexport function tween(target: Target | Target[] | ArrayLike<Target>, o: TweenOptions): Playable {\n const list = toList(target);\n let p: Playable;\n if (list.length === 1) p = new Tween(list[0], o);\n else {\n const tl = new Timeline({ repeat: o.repeat, yoyo: o.yoyo, onUpdate: o.onUpdate, onComplete: o.onComplete, delay: o.delay });\n tl.to(list, { ...o, delay: 0, repeat: 0, yoyo: false, onUpdate: undefined, onComplete: undefined }, 0);\n p = tl;\n }\n if (!o.paused) p.play();\n return p;\n}\n\n/** A new timeline (plays on the next frame unless `paused`). */\nexport function timeline(o: TimelineOptions = {}): Timeline {\n const tl = new Timeline(o);\n if (!o.paused) tl.play();\n return tl;\n}\n"],"names":[],"mappings":"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"}
@@ -1,93 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var ticker = require('./ticker-D4o6enH0.cjs');
4
-
5
- const out = (f) => (t) => 1 - f(1 - t);
6
- const inOut = (f) => (t) => (t < 0.5 ? f(t * 2) / 2 : 1 - f((1 - t) * 2) / 2);
7
- const pow = (p) => (t) => Math.pow(t, p);
8
- const sine = (t) => 1 - Math.cos((t * Math.PI) / 2);
9
- const expo = (t) => (t === 0 ? 0 : Math.pow(2, 10 * t - 10));
10
- const circ = (t) => 1 - Math.sqrt(1 - t * t);
11
- const back = (s = 1.70158) => (t) => t * t * ((s + 1) * t - s);
12
- const elastic = (t) => (t === 0 || t === 1 ? t : -Math.pow(2, 10 * t - 10) * Math.sin((t * 10 - 10.75) * ((2 * Math.PI) / 3)));
13
- const bounceOut = (t) => {
14
- const n = 7.5625, d = 2.75;
15
- if (t < 1 / d)
16
- return n * t * t;
17
- if (t < 2 / d)
18
- return n * (t -= 1.5 / d) * t + 0.75;
19
- if (t < 2.5 / d)
20
- return n * (t -= 2.25 / d) * t + 0.9375;
21
- return n * (t -= 2.625 / d) * t + 0.984375;
22
- };
23
- /** cubic-bezier(x1, y1, x2, y2), solved with Newton steps + bisection fallback. */
24
- function cubicBezier(x1, y1, x2, y2) {
25
- const a = (p1, p2) => 1 - 3 * p2 + 3 * p1;
26
- const b = (p1, p2) => 3 * p2 - 6 * p1;
27
- const c = (p1) => 3 * p1;
28
- const at = (t, p1, p2) => ((a(p1, p2) * t + b(p1, p2)) * t + c(p1)) * t;
29
- const slope = (t, p1, p2) => 3 * a(p1, p2) * t * t + 2 * b(p1, p2) * t + c(p1);
30
- return (x) => {
31
- if (x <= 0 || x >= 1)
32
- return x <= 0 ? 0 : 1;
33
- let t = x;
34
- for (let i = 0; i < 6; i++) {
35
- const s = slope(t, x1, x2);
36
- if (Math.abs(s) < 1e-6)
37
- break;
38
- t -= (at(t, x1, x2) - x) / s;
39
- }
40
- if (t < 0 || t > 1 || Math.abs(at(t, x1, x2) - x) > 1e-4) {
41
- let lo = 0, hi = 1;
42
- t = x;
43
- for (let i = 0; i < 30; i++) {
44
- const v = at(t, x1, x2);
45
- if (Math.abs(v - x) < 1e-6)
46
- break;
47
- if (v < x)
48
- lo = t;
49
- else
50
- hi = t;
51
- t = (lo + hi) / 2;
52
- }
53
- }
54
- return at(t, y1, y2);
55
- };
56
- }
57
- /** steps(n, 'end' | 'start'). */
58
- const steps = (n, pos = 'end') => (t) => {
59
- const k = pos === 'start' ? Math.ceil(t * n) : Math.floor(t * n);
60
- return Math.min(1, Math.max(0, k / n));
61
- };
62
- /** Named eases: linear, quad/cubic/quart/quint, sine, expo, circ, back, elastic, bounce — each `.in`, `.out`, `.inOut` via 'name-in' | 'name-out' | 'name-in-out'. */
63
- const BASE = { quad: pow(2), cubic: pow(3), quart: pow(4), quint: pow(5), sine, expo, circ, back: back(), elastic, bounce: out(bounceOut) };
64
- const EASES = { linear: (t) => t, ease: cubicBezier(0.25, 0.1, 0.25, 1), 'ease-in': cubicBezier(0.42, 0, 1, 1), 'ease-out': cubicBezier(0, 0, 0.58, 1), 'ease-in-out': cubicBezier(0.42, 0, 0.58, 1), smooth: cubicBezier(0.22, 1, 0.36, 1) };
65
- for (const [k, f] of Object.entries(BASE)) {
66
- EASES[`${k}-in`] = f;
67
- EASES[`${k}-out`] = out(f);
68
- EASES[`${k}-in-out`] = inOut(f);
69
- }
70
- /** Resolve an ease: a function, a name ('cubic-out', 'ease-in-out', 'linear'), 'cubic-bezier(a,b,c,d)' or 'steps(n[, start|end])'. Unknown names throw. */
71
- function parseEase(e) {
72
- if (typeof e === 'function')
73
- return e;
74
- if (!e)
75
- return EASES['cubic-out'];
76
- const s = e.trim();
77
- if (EASES[s])
78
- return EASES[s];
79
- let m = /^cubic-bezier\(\s*([-\d.]+)\s*,\s*([-\d.]+)\s*,\s*([-\d.]+)\s*,\s*([-\d.]+)\s*\)$/.exec(s);
80
- if (m)
81
- return cubicBezier(+m[1], +m[2], +m[3], +m[4]);
82
- m = /^steps\(\s*(\d+)\s*(?:,\s*(jump-)?(start|end)\s*)?\)$/.exec(s);
83
- if (m)
84
- return steps(+m[1], m[3] || 'end');
85
- if (s === 'step-start')
86
- return steps(1, 'start');
87
- if (s === 'step-end')
88
- return steps(1, 'end');
89
- throw new Error(`[motionary] unknown ease "${s}" — use a name from EASES, cubic-bezier(…) or steps(…)`);
90
- }
3
+ var ticker = require('./ticker-Un0bvTWR.cjs');
4
+ var ease = require('./ease-HwYZnZat.cjs');
91
5
 
92
6
  /**
93
7
  * Tween + timeline engine (original implementation). Times are in
@@ -101,6 +15,7 @@ const TRANSFORM = ['x', 'y', 'rotate', 'scale', 'scaleX', 'scaleY', 'skewX', 'sk
101
15
  const DEFAULT_UNIT = { x: 'px', y: 'px', rotate: 'deg', skewX: 'deg', skewY: 'deg', scale: '', scaleX: '', scaleY: '' };
102
16
  const tstate = new WeakMap();
103
17
  const isEl = (t) => typeof Element !== 'undefined' && t instanceof Element;
18
+ const NUM_RE = /-?(?:\d+\.?\d*|\.\d+)(?:e-?\d+)?/gi;
104
19
  /** Parse '12px', '-3.5', '50%', '#0af', 'rgb(1 2 3 / .5)', 'rgba(…)'. */
105
20
  function parseValue(v) {
106
21
  if (typeof v === 'number')
@@ -124,9 +39,16 @@ function parseValue(v) {
124
39
  m = /^(-?[\d.]+(?:e-?\d+)?)([a-z%]*)$/i.exec(s);
125
40
  if (m)
126
41
  return { kind: 'num', v: parseFloat(m[1]), u: m[2] };
127
- throw new Error(`[motionary] cannot tween value "${s}"`);
42
+ return { kind: 'str', s, parts: s.split(NUM_RE), nums: (s.match(NUM_RE) || []).map(Number) };
128
43
  }
129
44
  const lerpVal = (a, b, p) => {
45
+ if (a.kind === 'str' || b.kind === 'str') {
46
+ if (a.kind === 'str' && b.kind === 'str' && a.parts.join('\u0000') === b.parts.join('\u0000') && a.nums.length === b.nums.length) {
47
+ return a.parts.map((t, i) => t + (i < a.nums.length ? +(a.nums[i] + (b.nums[i] - a.nums[i]) * p).toFixed(4) : '')).join('');
48
+ }
49
+ const src = p < 0.5 ? a : b;
50
+ return src.kind === 'str' ? src.s : src.kind === 'num' ? (src.u ? src.v + src.u : src.v) : `rgba(${src.c.join(', ')})`;
51
+ }
130
52
  if (a.kind === 'col' || b.kind === 'col') {
131
53
  const ca = a.kind === 'col' ? a.c : [0, 0, 0, 0], cb = b.kind === 'col' ? b.c : [0, 0, 0, 0];
132
54
  const c = ca.map((x, i) => x + (cb[i] - x) * p);
@@ -176,6 +98,8 @@ function writeProp(t, k, v) {
176
98
  }
177
99
  if (TRANSFORM.includes(k)) {
178
100
  const p = parseValue(v);
101
+ if (p.kind !== 'num')
102
+ throw new Error(`[motionary] ${k} needs a number (got "${v}")`);
179
103
  const s = tstate.get(t) || {};
180
104
  s[k] = { v: p.v, u: p.u };
181
105
  tstate.set(t, s);
@@ -304,7 +228,7 @@ class Tween extends Playable {
304
228
  this.tracks = null;
305
229
  this.target = target;
306
230
  this._dur = o.duration ?? 600;
307
- this.ease = parseEase(o.ease);
231
+ this.ease = ease.parseEase(o.ease);
308
232
  this.toProps = o.to || {};
309
233
  this.fromProps = o.from || {};
310
234
  }
@@ -474,14 +398,10 @@ function timeline(o = {}) {
474
398
  return tl;
475
399
  }
476
400
 
477
- exports.EASES = EASES;
478
401
  exports.Playable = Playable;
479
402
  exports.Timeline = Timeline;
480
403
  exports.Tween = Tween;
481
- exports.cubicBezier = cubicBezier;
482
- exports.parseEase = parseEase;
483
404
  exports.parseValue = parseValue;
484
- exports.steps = steps;
485
405
  exports.timeline = timeline;
486
406
  exports.tween = tween;
487
- //# sourceMappingURL=tween-CBuWYpI-.cjs.map
407
+ //# sourceMappingURL=tween-CwLLC3Ko.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tween-CwLLC3Ko.cjs","sources":["../../src/runtime/tween.ts"],"sourcesContent":["/**\n * Tween + timeline engine (original implementation). Times are in\n * milliseconds. Targets are plain objects (numeric props) or elements\n * (CSS: numbers with units, colours, `opacity`, custom properties, and the\n * transform shorthands `x y rotate scale scaleX scaleY skewX skewY`,\n * composed in that order). Driven by the shared ticker; a tween placed in a\n * timeline is driven by the timeline instead.\n */\nimport { getTicker } from './ticker';\nimport { parseEase, type Ease } from './ease';\n\nexport type Target = object | Element;\nexport type Props = Record<string, number | string>;\n\nexport interface PlayOptions {\n /** Delay before the first iteration, ms. */\n delay?: number;\n /** Extra iterations (-1 = forever). */\n repeat?: number;\n /** Alternate direction on every other iteration. */\n yoyo?: boolean;\n /** Start paused (`play()` to start). */\n paused?: boolean;\n onUpdate?: (progress: number) => void;\n onComplete?: () => void;\n}\n\nexport interface TweenOptions extends PlayOptions {\n to?: Props;\n from?: Props;\n /** ms (default 600). */\n duration?: number;\n ease?: string | Ease;\n /** Delay added per target index (ms) when several targets are given. */\n stagger?: number;\n}\n\nconst TRANSFORM = ['x', 'y', 'rotate', 'scale', 'scaleX', 'scaleY', 'skewX', 'skewY'];\nconst DEFAULT_UNIT: Record<string, string> = { x: 'px', y: 'px', rotate: 'deg', skewX: 'deg', skewY: 'deg', scale: '', scaleX: '', scaleY: '' };\ntype TState = Record<string, { v: number; u: string }>;\nconst tstate = new WeakMap<Element, TState>();\n\nconst isEl = (t: unknown): t is HTMLElement => typeof Element !== 'undefined' && t instanceof Element;\n\ninterface Num { kind: 'num'; v: number; u: string }\ninterface Col { kind: 'col'; c: number[] }\n/** Any other string: its numbers are interpolated when both ends share the same text around them. */\ninterface Str { kind: 'str'; s: string; parts: string[]; nums: number[] }\ntype Val = Num | Col | Str;\nconst NUM_RE = /-?(?:\\d+\\.?\\d*|\\.\\d+)(?:e-?\\d+)?/gi;\n\n/** Parse '12px', '-3.5', '50%', '#0af', 'rgb(1 2 3 / .5)', 'rgba(…)'. */\nexport function parseValue(v: number | string): Val {\n if (typeof v === 'number') return { kind: 'num', v, u: '' };\n const s = v.trim();\n let m = /^#([0-9a-f]{3,8})$/i.exec(s);\n if (m) {\n let h = m[1];\n if (h.length <= 4) h = h.split('').map((c) => c + c).join('');\n const n = (i: number) => parseInt(h.slice(i, i + 2), 16);\n return { kind: 'col', c: [n(0), n(2), n(4), h.length === 8 ? n(6) / 255 : 1] };\n }\n m = /^rgba?\\(([^)]+)\\)$/i.exec(s);\n if (m) {\n const p = m[1].split(/[\\s,/]+/).filter(Boolean).map((x) => (x.endsWith('%') ? (parseFloat(x) / 100) * 255 : parseFloat(x)));\n return { kind: 'col', c: [p[0], p[1], p[2], p[3] === undefined ? 1 : p[3] > 1 ? p[3] / 255 : p[3]] };\n }\n if (s === 'transparent') return { kind: 'col', c: [0, 0, 0, 0] };\n m = /^(-?[\\d.]+(?:e-?\\d+)?)([a-z%]*)$/i.exec(s);\n if (m) return { kind: 'num', v: parseFloat(m[1]), u: m[2] };\n return { kind: 'str', s, parts: s.split(NUM_RE), nums: (s.match(NUM_RE) || []).map(Number) };\n}\n\nconst lerpVal = (a: Val, b: Val, p: number): string | number => {\n if (a.kind === 'str' || b.kind === 'str') {\n if (a.kind === 'str' && b.kind === 'str' && a.parts.join('\\u0000') === b.parts.join('\\u0000') && a.nums.length === b.nums.length) {\n return a.parts.map((t, i) => t + (i < a.nums.length ? +(a.nums[i] + (b.nums[i] - a.nums[i]) * p).toFixed(4) : '')).join('');\n }\n const src = p < 0.5 ? a : b;\n return src.kind === 'str' ? src.s : src.kind === 'num' ? (src.u ? src.v + src.u : src.v) : `rgba(${src.c.join(', ')})`;\n }\n if (a.kind === 'col' || b.kind === 'col') {\n const ca = a.kind === 'col' ? a.c : [0, 0, 0, 0], cb = b.kind === 'col' ? b.c : [0, 0, 0, 0];\n const c = ca.map((x, i) => x + (cb[i] - x) * p);\n return `rgba(${Math.round(c[0])}, ${Math.round(c[1])}, ${Math.round(c[2])}, ${+c[3].toFixed(3)})`;\n }\n const v = a.v + (b.v - a.v) * p;\n const u = b.u || a.u;\n return u ? `${+v.toFixed(4)}${u}` : +v.toFixed(6);\n};\n\nconst kebab = (k: string) => (k.startsWith('--') ? k : k.replace(/[A-Z]/g, (c) => '-' + c.toLowerCase()));\n\nfunction readProp(t: Target, k: string): number | string {\n if (!isEl(t)) return (t as any)[k] ?? 0;\n if (TRANSFORM.includes(k)) {\n const s = tstate.get(t)?.[k];\n return s ? s.v + s.u : k.startsWith('scale') ? 1 : 0;\n }\n const inline = t.style.getPropertyValue(kebab(k));\n if (inline) return inline;\n const cs = typeof getComputedStyle === 'function' ? getComputedStyle(t).getPropertyValue(kebab(k)) : '';\n return cs || (k === 'opacity' ? 1 : 0);\n}\n\nfunction writeTransform(el: HTMLElement): void {\n const s = tstate.get(el)!;\n const g = (k: string, d: number) => (s[k] ? s[k].v : d);\n const u = (k: string) => (s[k]?.u ?? DEFAULT_UNIT[k]);\n const parts: string[] = [];\n if (s.x || s.y) parts.push(`translate(${g('x', 0)}${u('x') || 'px'}, ${g('y', 0)}${u('y') || 'px'})`);\n if (s.rotate) parts.push(`rotate(${g('rotate', 0)}${u('rotate') || 'deg'})`);\n if (s.scale) parts.push(`scale(${g('scale', 1)})`);\n if (s.scaleX || s.scaleY) parts.push(`scale(${g('scaleX', 1)}, ${g('scaleY', 1)})`);\n if (s.skewX) parts.push(`skewX(${g('skewX', 0)}${u('skewX') || 'deg'})`);\n if (s.skewY) parts.push(`skewY(${g('skewY', 0)}${u('skewY') || 'deg'})`);\n el.style.transform = parts.join(' ');\n}\n\nfunction writeProp(t: Target, k: string, v: string | number): void {\n if (!isEl(t)) {\n (t as any)[k] = typeof v === 'string' && typeof (t as any)[k] === 'number' ? parseFloat(v) : v;\n return;\n }\n if (TRANSFORM.includes(k)) {\n const p = parseValue(v) as Num;\n if (p.kind !== 'num') throw new Error(`[motionary] ${k} needs a number (got \"${v}\")`);\n const s = tstate.get(t) || {};\n s[k] = { v: p.v, u: p.u };\n tstate.set(t, s);\n return;\n }\n t.style.setProperty(kebab(k), typeof v === 'number' && !['opacity', 'zIndex', 'z-index'].includes(k) && !k.startsWith('--') ? v + 'px' : String(v));\n}\n\n/** Common playback: delay, repeat, yoyo, direction, ticker attachment, promise. */\nexport abstract class Playable {\n delay: number;\n repeat: number;\n yoyo: boolean;\n /** Playback rate multiplier. */\n timeScale = 1;\n onUpdate?: (progress: number) => void;\n onComplete?: () => void;\n protected _t = 0;\n private _dir = 1;\n private _off: (() => void) | null = null;\n private _done = false;\n private _resolve!: () => void;\n /** Resolves on completion (forward end, or start when reversed). */\n finished: Promise<void>;\n /** Set when owned by a timeline (then the ticker never drives it). */\n parent: Timeline | null = null;\n\n constructor(o: PlayOptions) {\n this.delay = o.delay || 0;\n this.repeat = o.repeat || 0;\n this.yoyo = !!o.yoyo;\n this.onUpdate = o.onUpdate;\n this.onComplete = o.onComplete;\n this.finished = new Promise((r) => (this._resolve = r));\n }\n /** One iteration, ms. */\n abstract get duration(): number;\n /** Render at `ms` into one iteration. */\n protected abstract renderLocal(ms: number, iterationEnded: boolean): void;\n\n get totalDuration(): number {\n return this.repeat < 0 ? Infinity : this.delay + this.duration * (this.repeat + 1);\n }\n get time(): number {\n return this._t;\n }\n get progress(): number {\n const td = this.totalDuration;\n return td === Infinity ? ((this._t - this.delay) % this.duration) / this.duration : td ? this._t / td : 1;\n }\n set progress(p: number) {\n this.seek(p * (this.totalDuration === Infinity ? this.delay + this.duration : this.totalDuration));\n }\n get isActive(): boolean {\n return !!this._off;\n }\n get reversed(): boolean {\n return this._dir < 0;\n }\n\n /** Jump to `ms` (total time, including the delay) and render. */\n seek(ms: number): this {\n const td = this.totalDuration;\n this._t = Math.max(0, Math.min(ms, td));\n const t = this._t - this.delay;\n const d = this.duration || 0;\n if (t < 0) this.renderLocal(0, false);\n else if (!d) this.renderLocal(0, true);\n else {\n let it = d === Infinity ? 0 : Math.floor(t / d);\n let local = d === Infinity ? t : t - it * d;\n if (t >= td - this.delay && td !== Infinity) {\n it = this.repeat;\n local = d;\n }\n const back = this.yoyo && it % 2 === 1;\n this.renderLocal(back ? d - local : local, local === d);\n }\n this.onUpdate?.(this.progress);\n return this;\n }\n\n play(): this {\n this._dir = 1;\n if (this._t >= this.totalDuration) this._t = 0;\n return this.attach();\n }\n pause(): this {\n this._off?.();\n this._off = null;\n return this;\n }\n /** Play backwards from the current time. */\n reverse(): this {\n this._dir = -1;\n if (this._t <= 0) this._t = this.totalDuration === Infinity ? this.delay + this.duration : this.totalDuration;\n return this.attach();\n }\n restart(): this {\n this._done = false;\n this.seek(0);\n return this.play();\n }\n /** Stop and detach for good. */\n kill(): void {\n this.pause();\n this.parent?.remove(this);\n }\n /** Promise-like: `await tween(...)`. */\n then<R>(ok?: (v: void) => R, err?: (e: unknown) => R): Promise<R> {\n return this.finished.then(ok, err);\n }\n\n private attach(): this {\n if (this.parent || this._off) return this;\n this._done = false;\n this._off = getTicker().add((_, dt) => this.advance(dt));\n return this;\n }\n private advance(dt: number): void {\n const td = this.totalDuration;\n this.seek(this._t + dt * this._dir * this.timeScale);\n if ((this._dir > 0 && this._t >= td) || (this._dir < 0 && this._t <= 0)) this.complete();\n }\n protected complete(): void {\n this.pause();\n if (this._done) return;\n this._done = true;\n this.onComplete?.();\n this._resolve();\n }\n}\n\ninterface Track { k: string; from?: Val; to: Val; fromRaw?: number | string; toRaw: number | string }\n\n/** A tween of one target. */\nexport class Tween extends Playable {\n readonly target: Target;\n private _dur: number;\n private ease: Ease;\n private tracks: Track[] | null = null;\n private toProps: Props;\n private fromProps: Props;\n constructor(target: Target, o: TweenOptions) {\n super(o);\n this.target = target;\n this._dur = o.duration ?? 600;\n this.ease = parseEase(o.ease);\n this.toProps = o.to || {};\n this.fromProps = o.from || {};\n }\n get duration(): number {\n return this._dur;\n }\n /** Capture start values (first render). */\n private init(): Track[] {\n const keys = Array.from(new Set([...Object.keys(this.fromProps), ...Object.keys(this.toProps)]));\n return keys.map((k) => {\n const fromRaw = k in this.fromProps ? this.fromProps[k] : readProp(this.target, k);\n const toRaw = k in this.toProps ? this.toProps[k] : readProp(this.target, k);\n return { k, fromRaw, toRaw, from: parseValue(fromRaw), to: parseValue(toRaw) };\n });\n }\n protected renderLocal(ms: number, ended: boolean): void {\n this.tracks ||= this.init();\n const p = this._dur ? (ended ? this.ease(ms >= this._dur ? 1 : 0) : this.ease(ms / this._dur)) : 1;\n let tr = false;\n for (const t of this.tracks) {\n writeProp(this.target, t.k, lerpVal(t.from!, t.to, p));\n if (TRANSFORM.includes(t.k)) tr = true;\n }\n if (tr && isEl(this.target)) writeTransform(this.target);\n }\n}\n\ntype Child = { item: Playable | (() => void); start: number; fired?: boolean };\n\n/** Position: ms number, '<' (start of previous), '>' (end of previous, default), '+=200' / '-=200' (relative to the end), 'label', 'label+=100', '<+=100'. */\nexport type Position = number | string;\n\nexport interface TimelineOptions extends PlayOptions {\n /** Defaults merged into every `.to()`. */\n defaults?: Omit<TweenOptions, 'to' | 'from'>;\n}\n\n/** A sequence of tweens, nested timelines and callbacks. */\nexport class Timeline extends Playable {\n private children: Child[] = [];\n private labels: Record<string, number> = {};\n private prevStart = 0;\n private prevEnd = 0;\n private defaults: TimelineOptions['defaults'];\n private lastLocal = 0;\n constructor(o: TimelineOptions = {}) {\n super(o);\n this.defaults = o.defaults;\n }\n get duration(): number {\n let d = 0;\n for (const c of this.children) d = Math.max(d, c.start + (typeof c.item === 'function' ? 0 : c.item.totalDuration));\n return d;\n }\n private resolve(pos: Position | undefined): number {\n if (pos === undefined || pos === '>') return this.prevEnd;\n if (typeof pos === 'number') return Math.max(0, pos);\n const m = /^([<>]|[\\w-]+)?\\s*(?:([+-])=\\s*([\\d.]+))?$/.exec(pos.trim());\n if (!m) throw new Error(`[motionary] bad timeline position \"${pos}\"`);\n let base = this.prevEnd;\n if (m[1] === '<') base = this.prevStart;\n else if (m[1] && m[1] !== '>') {\n if (!(m[1] in this.labels)) throw new Error(`[motionary] unknown timeline label \"${m[1]}\"`);\n base = this.labels[m[1]];\n }\n const off = m[2] ? (m[2] === '+' ? 1 : -1) * parseFloat(m[3]) : 0;\n return Math.max(0, base + off);\n }\n /** Add a tween, timeline or callback at a position. */\n add(item: Playable | (() => void), position?: Position): this {\n const start = this.resolve(position);\n if (typeof item !== 'function') {\n item.pause();\n item.parent = this;\n }\n this.children.push({ item, start });\n this.prevStart = start;\n this.prevEnd = start + (typeof item === 'function' ? 0 : item.totalDuration);\n return this;\n }\n /** `tween(target, vars)` placed at `position` (stagger across several targets). */\n to(target: Target | Target[] | ArrayLike<Target>, vars: TweenOptions, position?: Position): this {\n const list = toList(target);\n const start = this.resolve(position);\n let end = start;\n list.forEach((t, i) => {\n const tw = new Tween(t, { ...this.defaults, ...vars, delay: (vars.delay || 0) + (vars.stagger || 0) * i, paused: true });\n tw.parent = this;\n this.children.push({ item: tw, start });\n end = Math.max(end, start + tw.totalDuration);\n });\n this.prevStart = start;\n this.prevEnd = end;\n return this;\n }\n call(fn: () => void, position?: Position): this {\n return this.add(fn, position);\n }\n label(name: string, position?: Position): this {\n this.labels[name] = this.resolve(position);\n return this;\n }\n /** Time of a label, ms. */\n labelTime(name: string): number | undefined {\n return this.labels[name];\n }\n remove(item: Playable): void {\n this.children = this.children.filter((c) => c.item !== item);\n }\n /** Children in start order (callbacks excluded). */\n getChildren(): Playable[] {\n return this.children.filter((c) => typeof c.item !== 'function').map((c) => c.item as Playable);\n }\n protected renderLocal(ms: number): void {\n const forward = ms >= this.lastLocal;\n const list = [...this.children].sort((a, b) => (forward ? a.start - b.start : b.start - a.start));\n for (const c of list) {\n if (typeof c.item === 'function') {\n if (forward && !c.fired && ms >= c.start && this.lastLocal <= c.start) {\n c.fired = true;\n c.item();\n } else if (!forward && ms < c.start) c.fired = false;\n continue;\n }\n const local = ms - c.start;\n const p = c.item as Playable & { _started?: boolean };\n if (local < 0) {\n if (p._started) p.seek(0);\n continue;\n }\n p._started = true;\n p.seek(Math.min(local, p.totalDuration));\n }\n this.lastLocal = ms;\n }\n}\n\nfunction toList(t: Target | Target[] | ArrayLike<Target>): Target[] {\n if (Array.isArray(t)) return t;\n if (t && typeof (t as ArrayLike<Target>).length === 'number' && !isEl(t)) return Array.from(t as ArrayLike<Target>);\n return [t as Target];\n}\n\n/**\n * Tween one or more targets. Returns a `Tween` (or a `Timeline` holding one\n * tween per target when several are given) that starts on the next frame\n * unless `paused`. `await` it for completion.\n */\nexport function tween(target: Target | Target[] | ArrayLike<Target>, o: TweenOptions): Playable {\n const list = toList(target);\n let p: Playable;\n if (list.length === 1) p = new Tween(list[0], o);\n else {\n const tl = new Timeline({ repeat: o.repeat, yoyo: o.yoyo, onUpdate: o.onUpdate, onComplete: o.onComplete, delay: o.delay });\n tl.to(list, { ...o, delay: 0, repeat: 0, yoyo: false, onUpdate: undefined, onComplete: undefined }, 0);\n p = tl;\n }\n if (!o.paused) p.play();\n return p;\n}\n\n/** A new timeline (plays on the next frame unless `paused`). */\nexport function timeline(o: TimelineOptions = {}): Timeline {\n const tl = new Timeline(o);\n if (!o.paused) tl.play();\n return tl;\n}\n"],"names":["getTicker","parseEase"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"variants-CrDDJoYK.cjs","sources":["../../src/components/ui/variants.ts"],"sourcesContent":["import { adoptStyles } from '../base';\nimport css from './variants.css?raw';\n\n/**\n * Style variants (v2.6): `variant=\"minimal | neon | glass | brutalist |\n * fluent | material\"` on any `<usa-*>` element — or on any ancestor as\n * `data-usa-variant`, or page-wide with `setVariant()` — sets the shared\n * design tokens every component reads:\n *\n * `--usa-accent`, `--usa-accent-text`, `--usa-surface`, `--usa-text`,\n * `--usa-radius`, `--usa-border`, `--usa-shadow`, `--usa-blur`, `--usa-font`.\n *\n * (`<usa-spinner>`, `<usa-check>` and `<usa-dialog>` already use `variant`\n * for their kind; the token names never clash with those values except\n * `fluent`, which means the same thing there.)\n */\nexport const VARIANTS = ['minimal', 'neon', 'glass', 'brutalist', 'fluent', 'material'] as const;\nexport type Variant = (typeof VARIANTS)[number];\n\n/** Inject the variant token sheet (done automatically by every `ui` component). */\nexport function adoptVariants(): void {\n adoptStyles('variants', css);\n}\n\n/** Apply a variant to the whole page (or `root`); `null` removes it. */\nexport function setVariant(variant: Variant | null, root: Element | null = typeof document !== 'undefined' ? document.documentElement : null): void {\n if (!root) return;\n adoptVariants();\n if (variant) root.setAttribute('data-usa-variant', variant);\n else root.removeAttribute('data-usa-variant');\n}\n"],"names":["adoptStyles"],"mappings":";;;;;;AAGA;;;;;;;;;;;;AAYG;AACI,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU;AAGtF;SACgB,aAAa,GAAA;AAC3B,IAAAA,gBAAW,CAAC,UAAU,EAAE,GAAG,CAAC;AAC9B;AAEA;SACgB,UAAU,CAAC,OAAuB,EAAE,IAAA,GAAuB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,eAAe,GAAG,IAAI,EAAA;AAC1I,IAAA,IAAI,CAAC,IAAI;QAAE;AACX,IAAA,aAAa,EAAE;AACf,IAAA,IAAI,OAAO;AAAE,QAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC;;AACtD,QAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;AAC/C;;;;;;"}
1
+ {"version":3,"file":"variants-CrDDJoYK.cjs","sources":["../../src/components/ui/variants.ts"],"sourcesContent":["import { adoptStyles } from '../base';\nimport css from './variants.css?raw';\n\n/**\n * Style variants (v2.6): `variant=\"minimal | neon | glass | brutalist |\n * fluent | material\"` on any `<usa-*>` element — or on any ancestor as\n * `data-usa-variant`, or page-wide with `setVariant()` — sets the shared\n * design tokens every component reads:\n *\n * `--usa-accent`, `--usa-accent-text`, `--usa-surface`, `--usa-text`,\n * `--usa-radius`, `--usa-border`, `--usa-shadow`, `--usa-blur`, `--usa-font`.\n *\n * (`<usa-spinner>`, `<usa-check>` and `<usa-dialog>` already use `variant`\n * for their kind; the token names never clash with those values except\n * `fluent`, which means the same thing there.)\n */\nexport const VARIANTS = ['minimal', 'neon', 'glass', 'brutalist', 'fluent', 'material'] as const;\nexport type Variant = (typeof VARIANTS)[number];\n\n/** Inject the variant token sheet (done automatically by every `ui` component). */\nexport function adoptVariants(): void {\n adoptStyles('variants', css);\n}\n\n/** Apply a variant to the whole page (or `root`); `null` removes it. */\nexport function setVariant(variant: Variant | null, root: Element | null = typeof document !== 'undefined' ? document.documentElement : null): void {\n if (!root) return;\n adoptVariants();\n if (variant) root.setAttribute('data-usa-variant', variant);\n else root.removeAttribute('data-usa-variant');\n}\n"],"names":["adoptStyles"],"mappings":";;;;;;AAGA;;;;;;;;;;;;AAYG;AACI,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU;AAGtF;SACgB,aAAa,GAAA;AAC3B,IAAAA,gBAAW,CAAC,UAAU,EAAE,GAAG,CAAC;AAC9B;AAEA;SACgB,UAAU,CAAC,OAAuB,EAAE,IAAA,GAAuB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,eAAe,GAAG,IAAI,EAAA;AAC1I,IAAA,IAAI,CAAC,IAAI;QAAE;AACX,IAAA,aAAa,EAAE;AACf,IAAA,IAAI,OAAO;AAAE,QAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC;;AACtD,QAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;AAC/C;;;;"}
@@ -1,4 +1,4 @@
1
- import { B as adoptStyles } from './base-BnRyfuyM.js';
1
+ import { C as adoptStyles } from './base-BTev8qxg.js';
2
2
 
3
3
  var css = ":root{--usa-accent:#7c5cff;--usa-accent-text:#fff;--usa-surface:#1b1e27;--usa-text:inherit;--usa-radius:14px;--usa-border:1px solid rgb(127 127 127 / 0.25);--usa-shadow:0 10px 30px -12px rgb(0 0 0 / 0.45);--usa-blur:0px;--usa-font:inherit}:where([variant=\"minimal\"],[data-usa-variant=\"minimal\"]){--usa-accent:currentColor;--usa-accent-text:Canvas;--usa-surface:transparent;--usa-radius:6px;--usa-border:1px solid color-mix(in srgb,currentColor 22%,transparent);--usa-shadow:none;--usa-blur:0px}:where([variant=\"neon\"],[data-usa-variant=\"neon\"]){--usa-accent:#00f0ff;--usa-accent-text:#04121a;--usa-surface:#0a0b14;--usa-text:#e6fbff;--usa-radius:10px;--usa-border:1px solid #00f0ff;--usa-shadow:0 0 6px #00f0ff,0 0 22px rgb(0 240 255 / 0.45);--usa-blur:0px}:where([variant=\"glass\"],[data-usa-variant=\"glass\"]){--usa-accent:#a78bfa;--usa-accent-text:#fff;--usa-surface:rgb(255 255 255 / 0.12);--usa-radius:18px;--usa-border:1px solid rgb(255 255 255 / 0.28);--usa-shadow:0 12px 40px -12px rgb(0 0 0 / 0.35);--usa-blur:16px}:where([variant=\"brutalist\"],[data-usa-variant=\"brutalist\"]){--usa-accent:#ff3d00;--usa-accent-text:#000;--usa-surface:#fff;--usa-text:#000;--usa-radius:0px;--usa-border:3px solid #000;--usa-shadow:5px 5px 0 #000;--usa-blur:0px;--usa-font:ui-monospace,\"SFMono-Regular\",Menlo,monospace}:where([variant=\"fluent\"],[data-usa-variant=\"fluent\"]){--usa-accent:#0067c0;--usa-accent-text:#fff;--usa-surface:rgb(249 249 249 / 0.82);--usa-text:#1a1a1a;--usa-radius:8px;--usa-border:1px solid rgb(0 0 0 / 0.08);--usa-shadow:0 2px 4px rgb(0 0 0 / 0.14),0 0 2px rgb(0 0 0 / 0.12);--usa-blur:30px;--usa-font:\"Segoe UI Variable\",\"Segoe UI\",system-ui,sans-serif}:where([variant=\"material\"],[data-usa-variant=\"material\"]){--usa-accent:#6750a4;--usa-accent-text:#fff;--usa-surface:#fffbfe;--usa-text:#1c1b1f;--usa-radius:20px;--usa-border:0 solid transparent;--usa-shadow:0 1px 3px rgb(0 0 0 / 0.3),0 4px 8px 3px rgb(0 0 0 / 0.15);--usa-blur:0px;--usa-font:Roboto,system-ui,sans-serif}@media (prefers-color-scheme:dark){:where([variant=\"fluent\"],[data-usa-variant=\"fluent\"]){--usa-accent:#4cc2ff;--usa-accent-text:#000;--usa-surface:rgb(44 44 44 / 0.8);--usa-text:#fff;--usa-border:1px solid rgb(255 255 255 / 0.08)}:where([variant=\"material\"],[data-usa-variant=\"material\"]){--usa-accent:#d0bcff;--usa-accent-text:#381e72;--usa-surface:#1c1b1f;--usa-text:#e6e1e5}}.usa-surface{background:var(--usa-surface);color:var(--usa-text);border:var(--usa-border);border-radius:var(--usa-radius);box-shadow:var(--usa-shadow);font-family:var(--usa-font);-webkit-backdrop-filter:blur(var(--usa-blur));backdrop-filter:blur(var(--usa-blur))}@media (prefers-reduced-transparency:reduce){.usa-surface{-webkit-backdrop-filter:none;backdrop-filter:none}}";
4
4
 
@@ -32,4 +32,4 @@ function setVariant(variant, root = typeof document !== 'undefined' ? document.d
32
32
  }
33
33
 
34
34
  export { VARIANTS as V, adoptVariants as a, setVariant as s };
35
- //# sourceMappingURL=variants-GU3yIL4F.js.map
35
+ //# sourceMappingURL=variants-CsRGUIyA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"variants-GU3yIL4F.js","sources":["../../src/components/ui/variants.ts"],"sourcesContent":["import { adoptStyles } from '../base';\nimport css from './variants.css?raw';\n\n/**\n * Style variants (v2.6): `variant=\"minimal | neon | glass | brutalist |\n * fluent | material\"` on any `<usa-*>` element — or on any ancestor as\n * `data-usa-variant`, or page-wide with `setVariant()` — sets the shared\n * design tokens every component reads:\n *\n * `--usa-accent`, `--usa-accent-text`, `--usa-surface`, `--usa-text`,\n * `--usa-radius`, `--usa-border`, `--usa-shadow`, `--usa-blur`, `--usa-font`.\n *\n * (`<usa-spinner>`, `<usa-check>` and `<usa-dialog>` already use `variant`\n * for their kind; the token names never clash with those values except\n * `fluent`, which means the same thing there.)\n */\nexport const VARIANTS = ['minimal', 'neon', 'glass', 'brutalist', 'fluent', 'material'] as const;\nexport type Variant = (typeof VARIANTS)[number];\n\n/** Inject the variant token sheet (done automatically by every `ui` component). */\nexport function adoptVariants(): void {\n adoptStyles('variants', css);\n}\n\n/** Apply a variant to the whole page (or `root`); `null` removes it. */\nexport function setVariant(variant: Variant | null, root: Element | null = typeof document !== 'undefined' ? document.documentElement : null): void {\n if (!root) return;\n adoptVariants();\n if (variant) root.setAttribute('data-usa-variant', variant);\n else root.removeAttribute('data-usa-variant');\n}\n"],"names":[],"mappings":";;;;AAGA;;;;;;;;;;;;AAYG;AACI,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU;AAGtF;SACgB,aAAa,GAAA;AAC3B,IAAA,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC;AAC9B;AAEA;SACgB,UAAU,CAAC,OAAuB,EAAE,IAAA,GAAuB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,eAAe,GAAG,IAAI,EAAA;AAC1I,IAAA,IAAI,CAAC,IAAI;QAAE;AACX,IAAA,aAAa,EAAE;AACf,IAAA,IAAI,OAAO;AAAE,QAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC;;AACtD,QAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;AAC/C;;;;"}
1
+ {"version":3,"file":"variants-CsRGUIyA.js","sources":["../../src/components/ui/variants.ts"],"sourcesContent":["import { adoptStyles } from '../base';\nimport css from './variants.css?raw';\n\n/**\n * Style variants (v2.6): `variant=\"minimal | neon | glass | brutalist |\n * fluent | material\"` on any `<usa-*>` element — or on any ancestor as\n * `data-usa-variant`, or page-wide with `setVariant()` — sets the shared\n * design tokens every component reads:\n *\n * `--usa-accent`, `--usa-accent-text`, `--usa-surface`, `--usa-text`,\n * `--usa-radius`, `--usa-border`, `--usa-shadow`, `--usa-blur`, `--usa-font`.\n *\n * (`<usa-spinner>`, `<usa-check>` and `<usa-dialog>` already use `variant`\n * for their kind; the token names never clash with those values except\n * `fluent`, which means the same thing there.)\n */\nexport const VARIANTS = ['minimal', 'neon', 'glass', 'brutalist', 'fluent', 'material'] as const;\nexport type Variant = (typeof VARIANTS)[number];\n\n/** Inject the variant token sheet (done automatically by every `ui` component). */\nexport function adoptVariants(): void {\n adoptStyles('variants', css);\n}\n\n/** Apply a variant to the whole page (or `root`); `null` removes it. */\nexport function setVariant(variant: Variant | null, root: Element | null = typeof document !== 'undefined' ? document.documentElement : null): void {\n if (!root) return;\n adoptVariants();\n if (variant) root.setAttribute('data-usa-variant', variant);\n else root.removeAttribute('data-usa-variant');\n}\n"],"names":[],"mappings":";;;;AAGA;;;;;;;;;;;;AAYG;AACI,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU;AAGtF;SACgB,aAAa,GAAA;AAC3B,IAAA,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC;AAC9B;AAEA;SACgB,UAAU,CAAC,OAAuB,EAAE,IAAA,GAAuB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,eAAe,GAAG,IAAI,EAAA;AAC1I,IAAA,IAAI,CAAC,IAAI;QAAE;AACX,IAAA,aAAa,EAAE;AACf,IAAA,IAAI,OAAO;AAAE,QAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC;;AACtD,QAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;AAC/C;;"}