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 +1 @@
1
- {"version":3,"file":"engine.cjs","sources":["../../src/components/engine/index.ts"],"sourcesContent":["/**\n * `motionary/engine` (= `motionary/components/engine`, 8.0) — the unified\n * timeline engine and SSR hydration animations.\n *\n * - **`motionClock`** — the one clock every component, effect and frame loop\n * runs on: `rate` (slow-mo / fast-forward), `pause()` / `resume()` /\n * `toggle()`, `time`, `onChange()`. Pausing it freezes every animation\n * started by Motionary on the page.\n * - **`createTimeline()`** — sequence animations on that clock:\n * `add(target, keyframes, options, position)` with positions `1200`\n * (ms), `'+=200'` / `'-=100'` (after / overlapping the previous end) or\n * `'<'` / `'<+=80'` (with the previous start); `play()`, `pause()`,\n * `seek(ms)`, `progress` (0–1, settable), `duration`, `finished`.\n * - **`hydrateMotion()`** — animate server-rendered `[data-usa-hydrate]`\n * markup in on hydration without a flash: `ssrHead()` gives the `<style>`\n * + one-line `<script>` for the document head (content stays visible\n * without JS, and a CSS fallback reveals it after 3 s if JS never runs).\n */\nimport { animateWithMotion, getClock, setClock, onClockChange, prefersReducedMotion } from '../base';\n\nexport { getClock, setClock, onClockChange, trackAnimation } from '../base';\n\n/** The shared motion clock (8.0). */\nexport const motionClock = {\n get rate(): number {\n return getClock().rate;\n },\n set rate(r: number) {\n setClock({ rate: r });\n },\n get paused(): boolean {\n return getClock().paused;\n },\n /** Clock time in ms (advances with the shared frame loop, scaled by `rate`, frozen while paused). */\n get time(): number {\n return getClock().time;\n },\n pause(): void {\n setClock({ paused: true });\n },\n resume(): void {\n setClock({ paused: false });\n },\n toggle(): void {\n setClock({ paused: !getClock().paused });\n },\n onChange: onClockChange,\n};\n\nexport type TimelinePosition = number | string;\nexport interface TimelineEntry {\n target: Element;\n keyframes: Keyframe[];\n options: KeyframeAnimationOptions;\n start: number;\n end: number;\n}\nexport interface MotionTimeline {\n readonly entries: readonly TimelineEntry[];\n readonly duration: number;\n readonly playing: boolean;\n progress: number;\n readonly finished: Promise<void>;\n add(target: Element | Element[] | NodeListOf<Element> | null, keyframes: Keyframe[], options?: number | KeyframeAnimationOptions, position?: TimelinePosition): MotionTimeline;\n play(): MotionTimeline;\n pause(): MotionTimeline;\n seek(ms: number): MotionTimeline;\n restart(): MotionTimeline;\n cancel(): void;\n}\n\n/** Resolve a timeline position against the previous entry (8.0). */\nexport function resolvePosition(position: TimelinePosition | undefined, prev: { start: number; end: number } | null, total: number): number {\n if (typeof position === 'number' && Number.isFinite(position)) return Math.max(0, position);\n const p = String(position ?? '').replace(/\\s+/g, '');\n const prevStart = prev ? prev.start : 0;\n const prevEnd = prev ? prev.end : 0;\n let m: RegExpMatchArray | null;\n if (p === '') return prev ? prevEnd : 0;\n if (p === '<') return prevStart;\n if ((m = p.match(/^<([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevStart + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if ((m = p.match(/^([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevEnd + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if (p === '>') return total;\n const n = Number(p);\n return Number.isFinite(n) ? Math.max(0, n) : prevEnd;\n}\n\nconst span = (o: KeyframeAnimationOptions): number => {\n const d = typeof o.duration === 'number' ? o.duration : 0;\n const it = typeof o.iterations === 'number' && Number.isFinite(o.iterations) ? o.iterations : 1;\n return (o.delay || 0) + d * it + (o.endDelay || 0);\n};\n\n/** Sequence animations on the shared clock (8.0). */\nexport function createTimeline(defaults: KeyframeAnimationOptions & { autoplay?: boolean } = {}): MotionTimeline {\n const { autoplay = false, ...base } = defaults;\n const entries: TimelineEntry[] = [];\n let anims: (Animation | null)[] = [];\n let playing = false;\n let pos = 0;\n let resolveDone: () => void = () => undefined;\n let finished = new Promise<void>((r) => (resolveDone = r));\n let timer = 0 as unknown as ReturnType<typeof setTimeout>;\n\n const duration = () => entries.reduce((m, e) => Math.max(m, e.end), 0);\n const build = () => {\n if (anims.length === entries.length) return;\n anims.forEach((a) => a?.cancel());\n anims = entries.map((e) => {\n const a = animateWithMotion(e.target, e.keyframes, { fill: 'both', ...e.options, delay: e.start + (e.options.delay || 0) });\n if (a) {\n a.pause();\n a.currentTime = pos;\n }\n return a;\n });\n };\n const done = () => {\n playing = false;\n pos = duration();\n resolveDone();\n };\n const tl: MotionTimeline = {\n get entries() {\n return entries;\n },\n get duration() {\n return duration();\n },\n get playing() {\n return playing;\n },\n get progress() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n const t = live && playing ? Number(live.currentTime) : pos;\n const d = duration();\n return d ? Math.min(1, Math.max(0, t / d)) : 0;\n },\n set progress(p: number) {\n tl.seek(Math.min(1, Math.max(0, p)) * duration());\n },\n get finished() {\n return finished;\n },\n add(target, keyframes, options = {}, position) {\n const opts: KeyframeAnimationOptions = { ...base, ...(typeof options === 'number' ? { duration: options } : options) };\n const list = !target ? [] : target instanceof Element ? [target] : Array.from(target as ArrayLike<Element>);\n const prev = entries.length ? entries[entries.length - 1] : null;\n let start = resolvePosition(position, prev, duration());\n const stagger = (opts as any).stagger ? Number((opts as any).stagger) : 0;\n delete (opts as any).stagger;\n for (const el of list) {\n entries.push({ target: el, keyframes, options: opts, start, end: start + span(opts) });\n start += stagger;\n }\n anims.forEach((a) => a?.cancel());\n anims = [];\n return tl;\n },\n play() {\n if (pos >= duration()) pos = 0;\n if (playing) return tl;\n if (pos === 0 && anims.length) {\n anims.forEach((a) => a?.cancel());\n anims = [];\n finished = new Promise<void>((r) => (resolveDone = r));\n }\n build();\n playing = true;\n const live = anims.filter(Boolean) as Animation[];\n live.forEach((a) => {\n a.currentTime = pos;\n a.play();\n });\n clearTimeout(timer);\n if (!live.length || prefersReducedMotion()) {\n tl.seek(duration());\n done();\n } else Promise.all(live.map((a) => a.finished.catch(() => undefined))).then(() => playing && done());\n return tl;\n },\n pause() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n if (live) pos = Number(live.currentTime);\n anims.forEach((a) => a?.pause());\n playing = false;\n return tl;\n },\n seek(ms) {\n pos = Math.min(duration(), Math.max(0, ms));\n build();\n anims.forEach((a) => {\n if (!a) return;\n a.currentTime = pos;\n if (!playing) a.pause();\n });\n return tl;\n },\n restart() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n pos = 0;\n playing = false;\n finished = new Promise<void>((r) => (resolveDone = r));\n return tl.play();\n },\n cancel() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n playing = false;\n pos = 0;\n },\n };\n if (autoplay) queueMicrotask(() => entries.length && tl.play());\n return tl;\n}\n\n/** Hydration presets for `data-usa-hydrate=\"…\"` (8.0). */\nexport const HYDRATE_PRESETS: Record<string, Keyframe[]> = {\n fade: [{ opacity: 0 }, { opacity: 1 }],\n 'fade-up': [{ opacity: 0, transform: 'translateY(16px)' }, { opacity: 1, transform: 'none' }],\n 'fade-down': [{ opacity: 0, transform: 'translateY(-16px)' }, { opacity: 1, transform: 'none' }],\n scale: [{ opacity: 0, transform: 'scale(.94)' }, { opacity: 1, transform: 'none' }],\n blur: [{ opacity: 0, filter: 'blur(8px)' }, { opacity: 1, filter: 'none' }],\n 'slide-left': [{ opacity: 0, transform: 'translateX(24px)' }, { opacity: 1, transform: 'none' }],\n};\n\n/**\n * CSS that keeps `[data-usa-hydrate]` hidden only while JS is on and the\n * page has not hydrated yet (`html.usa-js`), with a 3 s CSS fallback so the\n * content can never stay invisible (8.0).\n */\nexport const HYDRATION_CSS =\n 'html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:0;animation:usa-hydrate-fallback 0s 3s forwards}@keyframes usa-hydrate-fallback{to{opacity:1}}@media (prefers-reduced-motion:reduce){html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:1;animation:none}}';\n\n/** `<style>` + inline `<script>` for the SSR document head (8.0). Pass a CSP `nonce` if you use one. */\nexport function ssrHead(nonce?: string): string {\n const n = nonce ? ` nonce=\"${String(nonce).replace(/\"/g, '')}\"` : '';\n return `<style data-usa-hydration${n}>${HYDRATION_CSS}</style><script${n}>document.documentElement.classList.add('usa-js')</script>`;\n}\n\nexport interface HydrateOptions {\n /** Delay between elements in document order (ms). Default 60. */\n stagger?: number;\n /** Duration per element (ms). Default 600. */\n duration?: number;\n /** Fallback preset when `data-usa-hydrate` is empty. Default `fade-up`. */\n preset?: string;\n easing?: string;\n /** Run as a timeline you can pause / seek (returned). */\n}\n\n/**\n * Animate server-rendered `[data-usa-hydrate]` elements in (document order,\n * staggered; per-element `data-usa-delay`), mark them `data-usa-hydrated`\n * and emit `usa:hydrated` on the root. Returns the timeline (8.0).\n */\nexport function hydrateMotion(root: ParentNode = document, options: HydrateOptions = {}): MotionTimeline {\n const { stagger = 60, duration = 600, preset = 'fade-up', easing = 'cubic-bezier(.2,.8,.2,1)' } = options;\n if (typeof document !== 'undefined' && !document.querySelector('style[data-usa-hydration]')) {\n const s = document.createElement('style');\n s.setAttribute('data-usa-hydration', '');\n s.textContent = HYDRATION_CSS;\n document.head?.appendChild(s);\n }\n const els = Array.from(root.querySelectorAll<HTMLElement>('[data-usa-hydrate]:not([data-usa-hydrated])'));\n const tl = createTimeline({ easing, duration });\n els.forEach((el, i) => {\n const name = el.getAttribute('data-usa-hydrate') || preset;\n const frames = HYDRATE_PRESETS[name] || HYDRATE_PRESETS[preset] || HYDRATE_PRESETS['fade-up'];\n const extra = Number(el.getAttribute('data-usa-delay')) || 0;\n tl.add(el, frames, { duration, easing }, i * stagger + extra);\n });\n // mark first so the hiding CSS lets go; the animation's backwards fill holds the first frame\n tl.play();\n els.forEach((el) => el.setAttribute('data-usa-hydrated', ''));\n const target = (root as any).dispatchEvent ? (root as unknown as EventTarget) : document;\n tl.finished.then(() => target.dispatchEvent?.(new CustomEvent('usa:hydrated', { detail: { count: els.length }, bubbles: true })));\n return tl;\n}\n"],"names":["getClock","setClock","onClockChange","base","animateWithMotion","prefersReducedMotion"],"mappings":";;;;AAAA;;;;;;;;;;;;;;;;;AAiBG;AAKH;AACO,MAAM,WAAW,GAAG;AACzB,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAOA,aAAQ,EAAE,CAAC,IAAI;IACxB,CAAC;IACD,IAAI,IAAI,CAAC,CAAS,EAAA;AAChB,QAAAC,aAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACvB,CAAC;AACD,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAOD,aAAQ,EAAE,CAAC,MAAM;IAC1B,CAAC;;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAOA,aAAQ,EAAE,CAAC,IAAI;IACxB,CAAC;IACD,KAAK,GAAA;AACH,QAAAC,aAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,GAAA;AACJ,QAAAA,aAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,GAAA;QACJA,aAAQ,CAAC,EAAE,MAAM,EAAE,CAACD,aAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;AACD,IAAA,QAAQ,EAAEE,kBAAa;;AAyBzB;SACgB,eAAe,CAAC,QAAsC,EAAE,IAA2C,EAAE,KAAa,EAAA;IAChI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC3F,IAAA,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AACpD,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;AACvC,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;AACnC,IAAA,IAAI,CAA0B;IAC9B,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,GAAG,OAAO,GAAG,CAAC;IACvC,IAAI,CAAC,KAAK,GAAG;AAAE,QAAA,OAAO,SAAS;IAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;AAAG,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC;AAAG,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnH,IAAI,CAAC,KAAK,GAAG;AAAE,QAAA,OAAO,KAAK;AAC3B,IAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO;AACtD;AAEA,MAAM,IAAI,GAAG,CAAC,CAA2B,KAAY;AACnD,IAAA,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC;IACzD,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC;AAC/F,IAAA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;AACM,SAAU,cAAc,CAAC,QAAA,GAA8D,EAAE,EAAA;IAC7F,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAGC,MAAI,EAAE,GAAG,QAAQ;IAC9C,MAAM,OAAO,GAAoB,EAAE;IACnC,IAAI,KAAK,GAAyB,EAAE;IACpC,IAAI,OAAO,GAAG,KAAK;IACnB,IAAI,GAAG,GAAG,CAAC;AACX,IAAA,IAAI,WAAW,GAAe,MAAM,SAAS;AAC7C,IAAA,IAAI,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,GAAG,CAA6C;AAEzD,IAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,MAAK;AACjB,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YAAE;AACrC,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AACxB,YAAA,MAAM,CAAC,GAAGC,sBAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3H,IAAI,CAAC,EAAE;gBACL,CAAC,CAAC,KAAK,EAAE;AACT,gBAAA,CAAC,CAAC,WAAW,GAAG,GAAG;YACrB;AACA,YAAA,OAAO,CAAC;AACV,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;IACD,MAAM,IAAI,GAAG,MAAK;QAChB,OAAO,GAAG,KAAK;QACf,GAAG,GAAG,QAAQ,EAAE;AAChB,QAAA,WAAW,EAAE;AACf,IAAA,CAAC;AACD,IAAA,MAAM,EAAE,GAAmB;AACzB,QAAA,IAAI,OAAO,GAAA;AACT,YAAA,OAAO,OAAO;QAChB,CAAC;AACD,QAAA,IAAI,QAAQ,GAAA;YACV,OAAO,QAAQ,EAAE;QACnB,CAAC;AACD,QAAA,IAAI,OAAO,GAAA;AACT,YAAA,OAAO,OAAO;QAChB,CAAC;AACD,QAAA,IAAI,QAAQ,GAAA;YACV,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC;AACtE,YAAA,MAAM,CAAC,GAAG,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG;AAC1D,YAAA,MAAM,CAAC,GAAG,QAAQ,EAAE;YACpB,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,CAAC;QACD,IAAI,QAAQ,CAAC,CAAS,EAAA;YACpB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC;QACnD,CAAC;AACD,QAAA,IAAI,QAAQ,GAAA;AACV,YAAA,OAAO,QAAQ;QACjB,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,EAAA;YAC3C,MAAM,IAAI,GAA6B,EAAE,GAAGD,MAAI,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE;AACtH,YAAA,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAA4B,CAAC;YAC3G,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI;YAChE,IAAI,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACvD,YAAA,MAAM,OAAO,GAAI,IAAY,CAAC,OAAO,GAAG,MAAM,CAAE,IAAY,CAAC,OAAO,CAAC,GAAG,CAAC;YACzE,OAAQ,IAAY,CAAC,OAAO;AAC5B,YAAA,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtF,KAAK,IAAI,OAAO;YAClB;AACA,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjC,KAAK,GAAG,EAAE;AACV,YAAA,OAAO,EAAE;QACX,CAAC;QACD,IAAI,GAAA;YACF,IAAI,GAAG,IAAI,QAAQ,EAAE;gBAAE,GAAG,GAAG,CAAC;AAC9B,YAAA,IAAI,OAAO;AAAE,gBAAA,OAAO,EAAE;YACtB,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;AAC7B,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;gBACjC,KAAK,GAAG,EAAE;AACV,gBAAA,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC;YACxD;AACA,YAAA,KAAK,EAAE;YACP,OAAO,GAAG,IAAI;YACd,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAgB;AACjD,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACjB,gBAAA,CAAC,CAAC,WAAW,GAAG,GAAG;gBACnB,CAAC,CAAC,IAAI,EAAE;AACV,YAAA,CAAC,CAAC;YACF,YAAY,CAAC,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAIE,yBAAoB,EAAE,EAAE;AAC1C,gBAAA,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnB,gBAAA,IAAI,EAAE;YACR;;AAAO,gBAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;AACpG,YAAA,OAAO,EAAE;QACX,CAAC;QACD,KAAK,GAAA;YACH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC;AACtE,YAAA,IAAI,IAAI;AAAE,gBAAA,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AACxC,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;YAChC,OAAO,GAAG,KAAK;AACf,YAAA,OAAO,EAAE;QACX,CAAC;AACD,QAAA,IAAI,CAAC,EAAE,EAAA;AACL,YAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3C,YAAA,KAAK,EAAE;AACP,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAClB,gBAAA,IAAI,CAAC,CAAC;oBAAE;AACR,gBAAA,CAAC,CAAC,WAAW,GAAG,GAAG;AACnB,gBAAA,IAAI,CAAC,OAAO;oBAAE,CAAC,CAAC,KAAK,EAAE;AACzB,YAAA,CAAC,CAAC;AACF,YAAA,OAAO,EAAE;QACX,CAAC;QACD,OAAO,GAAA;AACL,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjC,KAAK,GAAG,EAAE;YACV,GAAG,GAAG,CAAC;YACP,OAAO,GAAG,KAAK;AACf,YAAA,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC;AACtD,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE;QAClB,CAAC;QACD,MAAM,GAAA;AACJ,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjC,KAAK,GAAG,EAAE;YACV,OAAO,GAAG,KAAK;YACf,GAAG,GAAG,CAAC;QACT,CAAC;KACF;AACD,IAAA,IAAI,QAAQ;AAAE,QAAA,cAAc,CAAC,MAAM,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/D,IAAA,OAAO,EAAE;AACX;AAEA;AACO,MAAM,eAAe,GAA+B;AACzD,IAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7F,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAChG,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACnF,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC3E,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;;AAGlG;;;;AAIG;AACI,MAAM,aAAa,GACxB;AAEF;AACM,SAAU,OAAO,CAAC,KAAc,EAAA;IACpC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAA,QAAA,EAAW,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE;AACpE,IAAA,OAAO,4BAA4B,CAAC,CAAA,CAAA,EAAI,aAAa,CAAA,eAAA,EAAkB,CAAC,4DAA4D;AACtI;AAaA;;;;AAIG;SACa,aAAa,CAAC,OAAmB,QAAQ,EAAE,UAA0B,EAAE,EAAA;AACrF,IAAA,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,GAAG,0BAA0B,EAAE,GAAG,OAAO;AACzG,IAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,EAAE;QAC3F,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AACzC,QAAA,CAAC,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,CAAC;AACxC,QAAA,CAAC,CAAC,WAAW,GAAG,aAAa;AAC7B,QAAA,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/B;AACA,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,6CAA6C,CAAC,CAAC;IACzG,MAAM,EAAE,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC/C,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;QACpB,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,MAAM;AAC1D,QAAA,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC;AAC7F,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;AAC5D,QAAA,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC;AAC/D,IAAA,CAAC,CAAC;;IAEF,EAAE,CAAC,IAAI,EAAE;AACT,IAAA,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,MAAM,GAAI,IAAY,CAAC,aAAa,GAAI,IAA+B,GAAG,QAAQ;AACxF,IAAA,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,aAAa,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACjI,IAAA,OAAO,EAAE;AACX;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"engine.cjs","sources":["../../src/components/engine/index.ts"],"sourcesContent":["/**\n * `motionary/engine` (= `motionary/components/engine`, 8.0) — the unified\n * timeline engine and SSR hydration animations.\n *\n * - **`motionClock`** — the one clock every component, effect and frame loop\n * runs on: `rate` (slow-mo / fast-forward), `pause()` / `resume()` /\n * `toggle()`, `time`, `onChange()`. Pausing it freezes every animation\n * started by Motionary on the page.\n * - **`createTimeline()`** — sequence animations on that clock:\n * `add(target, keyframes, options, position)` with positions `1200`\n * (ms), `'+=200'` / `'-=100'` (after / overlapping the previous end) or\n * `'<'` / `'<+=80'` (with the previous start); `play()`, `pause()`,\n * `seek(ms)`, `progress` (0–1, settable), `duration`, `finished`.\n * - **`hydrateMotion()`** — animate server-rendered `[data-usa-hydrate]`\n * markup in on hydration without a flash: `ssrHead()` gives the `<style>`\n * + one-line `<script>` for the document head (content stays visible\n * without JS, and a CSS fallback reveals it after 3 s if JS never runs).\n */\nimport { animateWithMotion, getClock, setClock, onClockChange, prefersReducedMotion } from '../base';\n\nexport { getClock, setClock, onClockChange, trackAnimation } from '../base';\n\n/** The shared motion clock (8.0). */\nexport const motionClock = {\n get rate(): number {\n return getClock().rate;\n },\n set rate(r: number) {\n setClock({ rate: r });\n },\n get paused(): boolean {\n return getClock().paused;\n },\n /** Clock time in ms (advances with the shared frame loop, scaled by `rate`, frozen while paused). */\n get time(): number {\n return getClock().time;\n },\n pause(): void {\n setClock({ paused: true });\n },\n resume(): void {\n setClock({ paused: false });\n },\n toggle(): void {\n setClock({ paused: !getClock().paused });\n },\n onChange: onClockChange,\n};\n\nexport type TimelinePosition = number | string;\nexport interface TimelineEntry {\n target: Element;\n keyframes: Keyframe[];\n options: KeyframeAnimationOptions;\n start: number;\n end: number;\n}\nexport interface MotionTimeline {\n readonly entries: readonly TimelineEntry[];\n readonly duration: number;\n readonly playing: boolean;\n progress: number;\n readonly finished: Promise<void>;\n add(target: Element | Element[] | NodeListOf<Element> | null, keyframes: Keyframe[], options?: number | KeyframeAnimationOptions, position?: TimelinePosition): MotionTimeline;\n play(): MotionTimeline;\n pause(): MotionTimeline;\n seek(ms: number): MotionTimeline;\n restart(): MotionTimeline;\n cancel(): void;\n}\n\n/** Resolve a timeline position against the previous entry (8.0). */\nexport function resolvePosition(position: TimelinePosition | undefined, prev: { start: number; end: number } | null, total: number): number {\n if (typeof position === 'number' && Number.isFinite(position)) return Math.max(0, position);\n const p = String(position ?? '').replace(/\\s+/g, '');\n const prevStart = prev ? prev.start : 0;\n const prevEnd = prev ? prev.end : 0;\n let m: RegExpMatchArray | null;\n if (p === '') return prev ? prevEnd : 0;\n if (p === '<') return prevStart;\n if ((m = p.match(/^<([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevStart + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if ((m = p.match(/^([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevEnd + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if (p === '>') return total;\n const n = Number(p);\n return Number.isFinite(n) ? Math.max(0, n) : prevEnd;\n}\n\nconst span = (o: KeyframeAnimationOptions): number => {\n const d = typeof o.duration === 'number' ? o.duration : 0;\n const it = typeof o.iterations === 'number' && Number.isFinite(o.iterations) ? o.iterations : 1;\n return (o.delay || 0) + d * it + (o.endDelay || 0);\n};\n\n/** Sequence animations on the shared clock (8.0). */\nexport function createTimeline(defaults: KeyframeAnimationOptions & { autoplay?: boolean } = {}): MotionTimeline {\n const { autoplay = false, ...base } = defaults;\n const entries: TimelineEntry[] = [];\n let anims: (Animation | null)[] = [];\n let playing = false;\n let pos = 0;\n let resolveDone: () => void = () => undefined;\n let finished = new Promise<void>((r) => (resolveDone = r));\n let timer = 0 as unknown as ReturnType<typeof setTimeout>;\n\n const duration = () => entries.reduce((m, e) => Math.max(m, e.end), 0);\n const build = () => {\n if (anims.length === entries.length) return;\n anims.forEach((a) => a?.cancel());\n anims = entries.map((e) => {\n const a = animateWithMotion(e.target, e.keyframes, { fill: 'both', ...e.options, delay: e.start + (e.options.delay || 0) });\n if (a) {\n a.pause();\n a.currentTime = pos;\n }\n return a;\n });\n };\n const done = () => {\n playing = false;\n pos = duration();\n resolveDone();\n };\n const tl: MotionTimeline = {\n get entries() {\n return entries;\n },\n get duration() {\n return duration();\n },\n get playing() {\n return playing;\n },\n get progress() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n const t = live && playing ? Number(live.currentTime) : pos;\n const d = duration();\n return d ? Math.min(1, Math.max(0, t / d)) : 0;\n },\n set progress(p: number) {\n tl.seek(Math.min(1, Math.max(0, p)) * duration());\n },\n get finished() {\n return finished;\n },\n add(target, keyframes, options = {}, position) {\n const opts: KeyframeAnimationOptions = { ...base, ...(typeof options === 'number' ? { duration: options } : options) };\n const list = !target ? [] : target instanceof Element ? [target] : Array.from(target as ArrayLike<Element>);\n const prev = entries.length ? entries[entries.length - 1] : null;\n let start = resolvePosition(position, prev, duration());\n const stagger = (opts as any).stagger ? Number((opts as any).stagger) : 0;\n delete (opts as any).stagger;\n for (const el of list) {\n entries.push({ target: el, keyframes, options: opts, start, end: start + span(opts) });\n start += stagger;\n }\n anims.forEach((a) => a?.cancel());\n anims = [];\n return tl;\n },\n play() {\n if (pos >= duration()) pos = 0;\n if (playing) return tl;\n if (pos === 0 && anims.length) {\n anims.forEach((a) => a?.cancel());\n anims = [];\n finished = new Promise<void>((r) => (resolveDone = r));\n }\n build();\n playing = true;\n const live = anims.filter(Boolean) as Animation[];\n live.forEach((a) => {\n a.currentTime = pos;\n a.play();\n });\n clearTimeout(timer);\n if (!live.length || prefersReducedMotion()) {\n tl.seek(duration());\n done();\n } else Promise.all(live.map((a) => a.finished.catch(() => undefined))).then(() => playing && done());\n return tl;\n },\n pause() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n if (live) pos = Number(live.currentTime);\n anims.forEach((a) => a?.pause());\n playing = false;\n return tl;\n },\n seek(ms) {\n pos = Math.min(duration(), Math.max(0, ms));\n build();\n anims.forEach((a) => {\n if (!a) return;\n a.currentTime = pos;\n if (!playing) a.pause();\n });\n return tl;\n },\n restart() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n pos = 0;\n playing = false;\n finished = new Promise<void>((r) => (resolveDone = r));\n return tl.play();\n },\n cancel() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n playing = false;\n pos = 0;\n },\n };\n if (autoplay) queueMicrotask(() => entries.length && tl.play());\n return tl;\n}\n\n/** Hydration presets for `data-usa-hydrate=\"…\"` (8.0). */\nexport const HYDRATE_PRESETS: Record<string, Keyframe[]> = {\n fade: [{ opacity: 0 }, { opacity: 1 }],\n 'fade-up': [{ opacity: 0, transform: 'translateY(16px)' }, { opacity: 1, transform: 'none' }],\n 'fade-down': [{ opacity: 0, transform: 'translateY(-16px)' }, { opacity: 1, transform: 'none' }],\n scale: [{ opacity: 0, transform: 'scale(.94)' }, { opacity: 1, transform: 'none' }],\n blur: [{ opacity: 0, filter: 'blur(8px)' }, { opacity: 1, filter: 'none' }],\n 'slide-left': [{ opacity: 0, transform: 'translateX(24px)' }, { opacity: 1, transform: 'none' }],\n};\n\n/**\n * CSS that keeps `[data-usa-hydrate]` hidden only while JS is on and the\n * page has not hydrated yet (`html.usa-js`), with a 3 s CSS fallback so the\n * content can never stay invisible (8.0).\n */\nexport const HYDRATION_CSS =\n 'html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:0;animation:usa-hydrate-fallback 0s 3s forwards}@keyframes usa-hydrate-fallback{to{opacity:1}}@media (prefers-reduced-motion:reduce){html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:1;animation:none}}';\n\n/** `<style>` + inline `<script>` for the SSR document head (8.0). Pass a CSP `nonce` if you use one. */\nexport function ssrHead(nonce?: string): string {\n const n = nonce ? ` nonce=\"${String(nonce).replace(/\"/g, '')}\"` : '';\n return `<style data-usa-hydration${n}>${HYDRATION_CSS}</style><script${n}>document.documentElement.classList.add('usa-js')</script>`;\n}\n\nexport interface HydrateOptions {\n /** Delay between elements in document order (ms). Default 60. */\n stagger?: number;\n /** Duration per element (ms). Default 600. */\n duration?: number;\n /** Fallback preset when `data-usa-hydrate` is empty. Default `fade-up`. */\n preset?: string;\n easing?: string;\n /** Run as a timeline you can pause / seek (returned). */\n}\n\n/**\n * Animate server-rendered `[data-usa-hydrate]` elements in (document order,\n * staggered; per-element `data-usa-delay`), mark them `data-usa-hydrated`\n * and emit `usa:hydrated` on the root. Returns the timeline (8.0).\n */\nexport function hydrateMotion(root: ParentNode = document, options: HydrateOptions = {}): MotionTimeline {\n const { stagger = 60, duration = 600, preset = 'fade-up', easing = 'cubic-bezier(.2,.8,.2,1)' } = options;\n if (typeof document !== 'undefined' && !document.querySelector('style[data-usa-hydration]')) {\n const s = document.createElement('style');\n s.setAttribute('data-usa-hydration', '');\n s.textContent = HYDRATION_CSS;\n document.head?.appendChild(s);\n }\n const els = Array.from(root.querySelectorAll<HTMLElement>('[data-usa-hydrate]:not([data-usa-hydrated])'));\n const tl = createTimeline({ easing, duration });\n els.forEach((el, i) => {\n const name = el.getAttribute('data-usa-hydrate') || preset;\n const frames = HYDRATE_PRESETS[name] || HYDRATE_PRESETS[preset] || HYDRATE_PRESETS['fade-up'];\n const extra = Number(el.getAttribute('data-usa-delay')) || 0;\n tl.add(el, frames, { duration, easing }, i * stagger + extra);\n });\n // mark first so the hiding CSS lets go; the animation's backwards fill holds the first frame\n tl.play();\n els.forEach((el) => el.setAttribute('data-usa-hydrated', ''));\n const target = (root as any).dispatchEvent ? (root as unknown as EventTarget) : document;\n tl.finished.then(() => target.dispatchEvent?.(new CustomEvent('usa:hydrated', { detail: { count: els.length }, bubbles: true })));\n return tl;\n}\n"],"names":["getClock","setClock","onClockChange","base","animateWithMotion","prefersReducedMotion"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { v as onClockChange, x as setClock, y as getClock, p as prefersReducedMotion, e as animateWithMotion } from '../chunks/base-BnRyfuyM.js';
2
- export { z as trackAnimation } from '../chunks/base-BnRyfuyM.js';
1
+ import { o as onClockChange, s as setClock, h as getClock, p as prefersReducedMotion, e as animateWithMotion } from '../chunks/base-BTev8qxg.js';
2
+ export { t as trackAnimation } from '../chunks/base-BTev8qxg.js';
3
3
 
4
4
  /**
5
5
  * `motionary/engine` (= `motionary/components/engine`, 8.0) — the unified
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sources":["../../src/components/engine/index.ts"],"sourcesContent":["/**\n * `motionary/engine` (= `motionary/components/engine`, 8.0) — the unified\n * timeline engine and SSR hydration animations.\n *\n * - **`motionClock`** — the one clock every component, effect and frame loop\n * runs on: `rate` (slow-mo / fast-forward), `pause()` / `resume()` /\n * `toggle()`, `time`, `onChange()`. Pausing it freezes every animation\n * started by Motionary on the page.\n * - **`createTimeline()`** — sequence animations on that clock:\n * `add(target, keyframes, options, position)` with positions `1200`\n * (ms), `'+=200'` / `'-=100'` (after / overlapping the previous end) or\n * `'<'` / `'<+=80'` (with the previous start); `play()`, `pause()`,\n * `seek(ms)`, `progress` (0–1, settable), `duration`, `finished`.\n * - **`hydrateMotion()`** — animate server-rendered `[data-usa-hydrate]`\n * markup in on hydration without a flash: `ssrHead()` gives the `<style>`\n * + one-line `<script>` for the document head (content stays visible\n * without JS, and a CSS fallback reveals it after 3 s if JS never runs).\n */\nimport { animateWithMotion, getClock, setClock, onClockChange, prefersReducedMotion } from '../base';\n\nexport { getClock, setClock, onClockChange, trackAnimation } from '../base';\n\n/** The shared motion clock (8.0). */\nexport const motionClock = {\n get rate(): number {\n return getClock().rate;\n },\n set rate(r: number) {\n setClock({ rate: r });\n },\n get paused(): boolean {\n return getClock().paused;\n },\n /** Clock time in ms (advances with the shared frame loop, scaled by `rate`, frozen while paused). */\n get time(): number {\n return getClock().time;\n },\n pause(): void {\n setClock({ paused: true });\n },\n resume(): void {\n setClock({ paused: false });\n },\n toggle(): void {\n setClock({ paused: !getClock().paused });\n },\n onChange: onClockChange,\n};\n\nexport type TimelinePosition = number | string;\nexport interface TimelineEntry {\n target: Element;\n keyframes: Keyframe[];\n options: KeyframeAnimationOptions;\n start: number;\n end: number;\n}\nexport interface MotionTimeline {\n readonly entries: readonly TimelineEntry[];\n readonly duration: number;\n readonly playing: boolean;\n progress: number;\n readonly finished: Promise<void>;\n add(target: Element | Element[] | NodeListOf<Element> | null, keyframes: Keyframe[], options?: number | KeyframeAnimationOptions, position?: TimelinePosition): MotionTimeline;\n play(): MotionTimeline;\n pause(): MotionTimeline;\n seek(ms: number): MotionTimeline;\n restart(): MotionTimeline;\n cancel(): void;\n}\n\n/** Resolve a timeline position against the previous entry (8.0). */\nexport function resolvePosition(position: TimelinePosition | undefined, prev: { start: number; end: number } | null, total: number): number {\n if (typeof position === 'number' && Number.isFinite(position)) return Math.max(0, position);\n const p = String(position ?? '').replace(/\\s+/g, '');\n const prevStart = prev ? prev.start : 0;\n const prevEnd = prev ? prev.end : 0;\n let m: RegExpMatchArray | null;\n if (p === '') return prev ? prevEnd : 0;\n if (p === '<') return prevStart;\n if ((m = p.match(/^<([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevStart + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if ((m = p.match(/^([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevEnd + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if (p === '>') return total;\n const n = Number(p);\n return Number.isFinite(n) ? Math.max(0, n) : prevEnd;\n}\n\nconst span = (o: KeyframeAnimationOptions): number => {\n const d = typeof o.duration === 'number' ? o.duration : 0;\n const it = typeof o.iterations === 'number' && Number.isFinite(o.iterations) ? o.iterations : 1;\n return (o.delay || 0) + d * it + (o.endDelay || 0);\n};\n\n/** Sequence animations on the shared clock (8.0). */\nexport function createTimeline(defaults: KeyframeAnimationOptions & { autoplay?: boolean } = {}): MotionTimeline {\n const { autoplay = false, ...base } = defaults;\n const entries: TimelineEntry[] = [];\n let anims: (Animation | null)[] = [];\n let playing = false;\n let pos = 0;\n let resolveDone: () => void = () => undefined;\n let finished = new Promise<void>((r) => (resolveDone = r));\n let timer = 0 as unknown as ReturnType<typeof setTimeout>;\n\n const duration = () => entries.reduce((m, e) => Math.max(m, e.end), 0);\n const build = () => {\n if (anims.length === entries.length) return;\n anims.forEach((a) => a?.cancel());\n anims = entries.map((e) => {\n const a = animateWithMotion(e.target, e.keyframes, { fill: 'both', ...e.options, delay: e.start + (e.options.delay || 0) });\n if (a) {\n a.pause();\n a.currentTime = pos;\n }\n return a;\n });\n };\n const done = () => {\n playing = false;\n pos = duration();\n resolveDone();\n };\n const tl: MotionTimeline = {\n get entries() {\n return entries;\n },\n get duration() {\n return duration();\n },\n get playing() {\n return playing;\n },\n get progress() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n const t = live && playing ? Number(live.currentTime) : pos;\n const d = duration();\n return d ? Math.min(1, Math.max(0, t / d)) : 0;\n },\n set progress(p: number) {\n tl.seek(Math.min(1, Math.max(0, p)) * duration());\n },\n get finished() {\n return finished;\n },\n add(target, keyframes, options = {}, position) {\n const opts: KeyframeAnimationOptions = { ...base, ...(typeof options === 'number' ? { duration: options } : options) };\n const list = !target ? [] : target instanceof Element ? [target] : Array.from(target as ArrayLike<Element>);\n const prev = entries.length ? entries[entries.length - 1] : null;\n let start = resolvePosition(position, prev, duration());\n const stagger = (opts as any).stagger ? Number((opts as any).stagger) : 0;\n delete (opts as any).stagger;\n for (const el of list) {\n entries.push({ target: el, keyframes, options: opts, start, end: start + span(opts) });\n start += stagger;\n }\n anims.forEach((a) => a?.cancel());\n anims = [];\n return tl;\n },\n play() {\n if (pos >= duration()) pos = 0;\n if (playing) return tl;\n if (pos === 0 && anims.length) {\n anims.forEach((a) => a?.cancel());\n anims = [];\n finished = new Promise<void>((r) => (resolveDone = r));\n }\n build();\n playing = true;\n const live = anims.filter(Boolean) as Animation[];\n live.forEach((a) => {\n a.currentTime = pos;\n a.play();\n });\n clearTimeout(timer);\n if (!live.length || prefersReducedMotion()) {\n tl.seek(duration());\n done();\n } else Promise.all(live.map((a) => a.finished.catch(() => undefined))).then(() => playing && done());\n return tl;\n },\n pause() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n if (live) pos = Number(live.currentTime);\n anims.forEach((a) => a?.pause());\n playing = false;\n return tl;\n },\n seek(ms) {\n pos = Math.min(duration(), Math.max(0, ms));\n build();\n anims.forEach((a) => {\n if (!a) return;\n a.currentTime = pos;\n if (!playing) a.pause();\n });\n return tl;\n },\n restart() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n pos = 0;\n playing = false;\n finished = new Promise<void>((r) => (resolveDone = r));\n return tl.play();\n },\n cancel() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n playing = false;\n pos = 0;\n },\n };\n if (autoplay) queueMicrotask(() => entries.length && tl.play());\n return tl;\n}\n\n/** Hydration presets for `data-usa-hydrate=\"…\"` (8.0). */\nexport const HYDRATE_PRESETS: Record<string, Keyframe[]> = {\n fade: [{ opacity: 0 }, { opacity: 1 }],\n 'fade-up': [{ opacity: 0, transform: 'translateY(16px)' }, { opacity: 1, transform: 'none' }],\n 'fade-down': [{ opacity: 0, transform: 'translateY(-16px)' }, { opacity: 1, transform: 'none' }],\n scale: [{ opacity: 0, transform: 'scale(.94)' }, { opacity: 1, transform: 'none' }],\n blur: [{ opacity: 0, filter: 'blur(8px)' }, { opacity: 1, filter: 'none' }],\n 'slide-left': [{ opacity: 0, transform: 'translateX(24px)' }, { opacity: 1, transform: 'none' }],\n};\n\n/**\n * CSS that keeps `[data-usa-hydrate]` hidden only while JS is on and the\n * page has not hydrated yet (`html.usa-js`), with a 3 s CSS fallback so the\n * content can never stay invisible (8.0).\n */\nexport const HYDRATION_CSS =\n 'html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:0;animation:usa-hydrate-fallback 0s 3s forwards}@keyframes usa-hydrate-fallback{to{opacity:1}}@media (prefers-reduced-motion:reduce){html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:1;animation:none}}';\n\n/** `<style>` + inline `<script>` for the SSR document head (8.0). Pass a CSP `nonce` if you use one. */\nexport function ssrHead(nonce?: string): string {\n const n = nonce ? ` nonce=\"${String(nonce).replace(/\"/g, '')}\"` : '';\n return `<style data-usa-hydration${n}>${HYDRATION_CSS}</style><script${n}>document.documentElement.classList.add('usa-js')</script>`;\n}\n\nexport interface HydrateOptions {\n /** Delay between elements in document order (ms). Default 60. */\n stagger?: number;\n /** Duration per element (ms). Default 600. */\n duration?: number;\n /** Fallback preset when `data-usa-hydrate` is empty. Default `fade-up`. */\n preset?: string;\n easing?: string;\n /** Run as a timeline you can pause / seek (returned). */\n}\n\n/**\n * Animate server-rendered `[data-usa-hydrate]` elements in (document order,\n * staggered; per-element `data-usa-delay`), mark them `data-usa-hydrated`\n * and emit `usa:hydrated` on the root. Returns the timeline (8.0).\n */\nexport function hydrateMotion(root: ParentNode = document, options: HydrateOptions = {}): MotionTimeline {\n const { stagger = 60, duration = 600, preset = 'fade-up', easing = 'cubic-bezier(.2,.8,.2,1)' } = options;\n if (typeof document !== 'undefined' && !document.querySelector('style[data-usa-hydration]')) {\n const s = document.createElement('style');\n s.setAttribute('data-usa-hydration', '');\n s.textContent = HYDRATION_CSS;\n document.head?.appendChild(s);\n }\n const els = Array.from(root.querySelectorAll<HTMLElement>('[data-usa-hydrate]:not([data-usa-hydrated])'));\n const tl = createTimeline({ easing, duration });\n els.forEach((el, i) => {\n const name = el.getAttribute('data-usa-hydrate') || preset;\n const frames = HYDRATE_PRESETS[name] || HYDRATE_PRESETS[preset] || HYDRATE_PRESETS['fade-up'];\n const extra = Number(el.getAttribute('data-usa-delay')) || 0;\n tl.add(el, frames, { duration, easing }, i * stagger + extra);\n });\n // mark first so the hiding CSS lets go; the animation's backwards fill holds the first frame\n tl.play();\n els.forEach((el) => el.setAttribute('data-usa-hydrated', ''));\n const target = (root as any).dispatchEvent ? (root as unknown as EventTarget) : document;\n tl.finished.then(() => target.dispatchEvent?.(new CustomEvent('usa:hydrated', { detail: { count: els.length }, bubbles: true })));\n return tl;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sources":["../../src/components/engine/index.ts"],"sourcesContent":["/**\n * `motionary/engine` (= `motionary/components/engine`, 8.0) — the unified\n * timeline engine and SSR hydration animations.\n *\n * - **`motionClock`** — the one clock every component, effect and frame loop\n * runs on: `rate` (slow-mo / fast-forward), `pause()` / `resume()` /\n * `toggle()`, `time`, `onChange()`. Pausing it freezes every animation\n * started by Motionary on the page.\n * - **`createTimeline()`** — sequence animations on that clock:\n * `add(target, keyframes, options, position)` with positions `1200`\n * (ms), `'+=200'` / `'-=100'` (after / overlapping the previous end) or\n * `'<'` / `'<+=80'` (with the previous start); `play()`, `pause()`,\n * `seek(ms)`, `progress` (0–1, settable), `duration`, `finished`.\n * - **`hydrateMotion()`** — animate server-rendered `[data-usa-hydrate]`\n * markup in on hydration without a flash: `ssrHead()` gives the `<style>`\n * + one-line `<script>` for the document head (content stays visible\n * without JS, and a CSS fallback reveals it after 3 s if JS never runs).\n */\nimport { animateWithMotion, getClock, setClock, onClockChange, prefersReducedMotion } from '../base';\n\nexport { getClock, setClock, onClockChange, trackAnimation } from '../base';\n\n/** The shared motion clock (8.0). */\nexport const motionClock = {\n get rate(): number {\n return getClock().rate;\n },\n set rate(r: number) {\n setClock({ rate: r });\n },\n get paused(): boolean {\n return getClock().paused;\n },\n /** Clock time in ms (advances with the shared frame loop, scaled by `rate`, frozen while paused). */\n get time(): number {\n return getClock().time;\n },\n pause(): void {\n setClock({ paused: true });\n },\n resume(): void {\n setClock({ paused: false });\n },\n toggle(): void {\n setClock({ paused: !getClock().paused });\n },\n onChange: onClockChange,\n};\n\nexport type TimelinePosition = number | string;\nexport interface TimelineEntry {\n target: Element;\n keyframes: Keyframe[];\n options: KeyframeAnimationOptions;\n start: number;\n end: number;\n}\nexport interface MotionTimeline {\n readonly entries: readonly TimelineEntry[];\n readonly duration: number;\n readonly playing: boolean;\n progress: number;\n readonly finished: Promise<void>;\n add(target: Element | Element[] | NodeListOf<Element> | null, keyframes: Keyframe[], options?: number | KeyframeAnimationOptions, position?: TimelinePosition): MotionTimeline;\n play(): MotionTimeline;\n pause(): MotionTimeline;\n seek(ms: number): MotionTimeline;\n restart(): MotionTimeline;\n cancel(): void;\n}\n\n/** Resolve a timeline position against the previous entry (8.0). */\nexport function resolvePosition(position: TimelinePosition | undefined, prev: { start: number; end: number } | null, total: number): number {\n if (typeof position === 'number' && Number.isFinite(position)) return Math.max(0, position);\n const p = String(position ?? '').replace(/\\s+/g, '');\n const prevStart = prev ? prev.start : 0;\n const prevEnd = prev ? prev.end : 0;\n let m: RegExpMatchArray | null;\n if (p === '') return prev ? prevEnd : 0;\n if (p === '<') return prevStart;\n if ((m = p.match(/^<([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevStart + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if ((m = p.match(/^([+-])=(\\d+(?:\\.\\d+)?)$/))) return Math.max(0, prevEnd + (m[1] === '+' ? 1 : -1) * Number(m[2]));\n if (p === '>') return total;\n const n = Number(p);\n return Number.isFinite(n) ? Math.max(0, n) : prevEnd;\n}\n\nconst span = (o: KeyframeAnimationOptions): number => {\n const d = typeof o.duration === 'number' ? o.duration : 0;\n const it = typeof o.iterations === 'number' && Number.isFinite(o.iterations) ? o.iterations : 1;\n return (o.delay || 0) + d * it + (o.endDelay || 0);\n};\n\n/** Sequence animations on the shared clock (8.0). */\nexport function createTimeline(defaults: KeyframeAnimationOptions & { autoplay?: boolean } = {}): MotionTimeline {\n const { autoplay = false, ...base } = defaults;\n const entries: TimelineEntry[] = [];\n let anims: (Animation | null)[] = [];\n let playing = false;\n let pos = 0;\n let resolveDone: () => void = () => undefined;\n let finished = new Promise<void>((r) => (resolveDone = r));\n let timer = 0 as unknown as ReturnType<typeof setTimeout>;\n\n const duration = () => entries.reduce((m, e) => Math.max(m, e.end), 0);\n const build = () => {\n if (anims.length === entries.length) return;\n anims.forEach((a) => a?.cancel());\n anims = entries.map((e) => {\n const a = animateWithMotion(e.target, e.keyframes, { fill: 'both', ...e.options, delay: e.start + (e.options.delay || 0) });\n if (a) {\n a.pause();\n a.currentTime = pos;\n }\n return a;\n });\n };\n const done = () => {\n playing = false;\n pos = duration();\n resolveDone();\n };\n const tl: MotionTimeline = {\n get entries() {\n return entries;\n },\n get duration() {\n return duration();\n },\n get playing() {\n return playing;\n },\n get progress() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n const t = live && playing ? Number(live.currentTime) : pos;\n const d = duration();\n return d ? Math.min(1, Math.max(0, t / d)) : 0;\n },\n set progress(p: number) {\n tl.seek(Math.min(1, Math.max(0, p)) * duration());\n },\n get finished() {\n return finished;\n },\n add(target, keyframes, options = {}, position) {\n const opts: KeyframeAnimationOptions = { ...base, ...(typeof options === 'number' ? { duration: options } : options) };\n const list = !target ? [] : target instanceof Element ? [target] : Array.from(target as ArrayLike<Element>);\n const prev = entries.length ? entries[entries.length - 1] : null;\n let start = resolvePosition(position, prev, duration());\n const stagger = (opts as any).stagger ? Number((opts as any).stagger) : 0;\n delete (opts as any).stagger;\n for (const el of list) {\n entries.push({ target: el, keyframes, options: opts, start, end: start + span(opts) });\n start += stagger;\n }\n anims.forEach((a) => a?.cancel());\n anims = [];\n return tl;\n },\n play() {\n if (pos >= duration()) pos = 0;\n if (playing) return tl;\n if (pos === 0 && anims.length) {\n anims.forEach((a) => a?.cancel());\n anims = [];\n finished = new Promise<void>((r) => (resolveDone = r));\n }\n build();\n playing = true;\n const live = anims.filter(Boolean) as Animation[];\n live.forEach((a) => {\n a.currentTime = pos;\n a.play();\n });\n clearTimeout(timer);\n if (!live.length || prefersReducedMotion()) {\n tl.seek(duration());\n done();\n } else Promise.all(live.map((a) => a.finished.catch(() => undefined))).then(() => playing && done());\n return tl;\n },\n pause() {\n const live = anims.find((a) => a && typeof a.currentTime === 'number');\n if (live) pos = Number(live.currentTime);\n anims.forEach((a) => a?.pause());\n playing = false;\n return tl;\n },\n seek(ms) {\n pos = Math.min(duration(), Math.max(0, ms));\n build();\n anims.forEach((a) => {\n if (!a) return;\n a.currentTime = pos;\n if (!playing) a.pause();\n });\n return tl;\n },\n restart() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n pos = 0;\n playing = false;\n finished = new Promise<void>((r) => (resolveDone = r));\n return tl.play();\n },\n cancel() {\n anims.forEach((a) => a?.cancel());\n anims = [];\n playing = false;\n pos = 0;\n },\n };\n if (autoplay) queueMicrotask(() => entries.length && tl.play());\n return tl;\n}\n\n/** Hydration presets for `data-usa-hydrate=\"…\"` (8.0). */\nexport const HYDRATE_PRESETS: Record<string, Keyframe[]> = {\n fade: [{ opacity: 0 }, { opacity: 1 }],\n 'fade-up': [{ opacity: 0, transform: 'translateY(16px)' }, { opacity: 1, transform: 'none' }],\n 'fade-down': [{ opacity: 0, transform: 'translateY(-16px)' }, { opacity: 1, transform: 'none' }],\n scale: [{ opacity: 0, transform: 'scale(.94)' }, { opacity: 1, transform: 'none' }],\n blur: [{ opacity: 0, filter: 'blur(8px)' }, { opacity: 1, filter: 'none' }],\n 'slide-left': [{ opacity: 0, transform: 'translateX(24px)' }, { opacity: 1, transform: 'none' }],\n};\n\n/**\n * CSS that keeps `[data-usa-hydrate]` hidden only while JS is on and the\n * page has not hydrated yet (`html.usa-js`), with a 3 s CSS fallback so the\n * content can never stay invisible (8.0).\n */\nexport const HYDRATION_CSS =\n 'html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:0;animation:usa-hydrate-fallback 0s 3s forwards}@keyframes usa-hydrate-fallback{to{opacity:1}}@media (prefers-reduced-motion:reduce){html.usa-js [data-usa-hydrate]:not([data-usa-hydrated]),html.usa-js usa-hydrate:not([data-usa-hydrated])>*{opacity:1;animation:none}}';\n\n/** `<style>` + inline `<script>` for the SSR document head (8.0). Pass a CSP `nonce` if you use one. */\nexport function ssrHead(nonce?: string): string {\n const n = nonce ? ` nonce=\"${String(nonce).replace(/\"/g, '')}\"` : '';\n return `<style data-usa-hydration${n}>${HYDRATION_CSS}</style><script${n}>document.documentElement.classList.add('usa-js')</script>`;\n}\n\nexport interface HydrateOptions {\n /** Delay between elements in document order (ms). Default 60. */\n stagger?: number;\n /** Duration per element (ms). Default 600. */\n duration?: number;\n /** Fallback preset when `data-usa-hydrate` is empty. Default `fade-up`. */\n preset?: string;\n easing?: string;\n /** Run as a timeline you can pause / seek (returned). */\n}\n\n/**\n * Animate server-rendered `[data-usa-hydrate]` elements in (document order,\n * staggered; per-element `data-usa-delay`), mark them `data-usa-hydrated`\n * and emit `usa:hydrated` on the root. Returns the timeline (8.0).\n */\nexport function hydrateMotion(root: ParentNode = document, options: HydrateOptions = {}): MotionTimeline {\n const { stagger = 60, duration = 600, preset = 'fade-up', easing = 'cubic-bezier(.2,.8,.2,1)' } = options;\n if (typeof document !== 'undefined' && !document.querySelector('style[data-usa-hydration]')) {\n const s = document.createElement('style');\n s.setAttribute('data-usa-hydration', '');\n s.textContent = HYDRATION_CSS;\n document.head?.appendChild(s);\n }\n const els = Array.from(root.querySelectorAll<HTMLElement>('[data-usa-hydrate]:not([data-usa-hydrated])'));\n const tl = createTimeline({ easing, duration });\n els.forEach((el, i) => {\n const name = el.getAttribute('data-usa-hydrate') || preset;\n const frames = HYDRATE_PRESETS[name] || HYDRATE_PRESETS[preset] || HYDRATE_PRESETS['fade-up'];\n const extra = Number(el.getAttribute('data-usa-delay')) || 0;\n tl.add(el, frames, { duration, easing }, i * stagger + extra);\n });\n // mark first so the hiding CSS lets go; the animation's backwards fill holds the first frame\n tl.play();\n els.forEach((el) => el.setAttribute('data-usa-hydrated', ''));\n const target = (root as any).dispatchEvent ? (root as unknown as EventTarget) : document;\n tl.finished.then(() => target.dispatchEvent?.(new CustomEvent('usa:hydrated', { detail: { count: els.length }, bubbles: true })));\n return tl;\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.cjs","sources":["../../src/components/feedback/spinner.ts","../../src/components/feedback/skeleton.ts","../../src/components/feedback/progress.ts","../../src/components/feedback/toast.ts","../../src/components/feedback/check.ts","../../src/components/feedback/index.ts"],"sourcesContent":["import { kindOf, defineElement, type UsaElement } from '../base';\nimport css from './spinner.css?raw';\n\nexport const SPINNER_VARIANTS = ['fluent', 'windows', 'ring', 'dots', 'pulse', 'bars'] as const;\nexport type SpinnerVariant = (typeof SPINNER_VARIANTS)[number];\n\n/**\n * `<usa-spinner>` — indeterminate loading indicators, pure CSS animations\n * of `transform` / `opacity` (plus an SVG stroke for `fluent`).\n *\n * Kinds (`kind`): `fluent` (default — the WinUI / Windows 11\n * ProgressRing arc), `windows` (the Windows 10 boot \"orbiting dots\"),\n * `ring` (classic border spinner), `dots` (three bouncing dots / typing\n * indicator), `pulse` (expanding ripple), `bars` (equalizer).\n * Attributes: `size` (px, 32), `label` (accessible name, \"Loading\"),\n * `paused`. Colour follows `color` / `--usa-spinner-color`.\n * `role=\"progressbar\"` without a value (indeterminate). Reduced motion:\n * a slow opacity pulse instead of movement.\n */\nexport interface UsaSpinnerElement extends UsaElement {\n /** Spinner kind (`kind` attribute). */\n kind: SpinnerVariant;\n}\n\nfunction markup(variant: string): string {\n switch (variant) {\n case 'windows':\n return '<i></i><i></i><i></i><i></i><i></i>';\n case 'dots':\n return '<i></i><i></i><i></i>';\n case 'bars':\n return '<i></i><i></i><i></i><i></i>';\n case 'pulse':\n return '<i></i><i></i>';\n case 'ring':\n return '<i></i>';\n default:\n return '<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><circle cx=\"8\" cy=\"8\" r=\"7\" pathLength=\"100\"/></svg>';\n }\n}\n\nexport function defineSpinner(tag = 'usa-spinner'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaSpinner extends Base {\n static get observedAttributes(): string[] {\n return ['kind', 'size', 'label'];\n }\n\n /** The spinner kind (`kind` attribute). */\n get kind(): SpinnerVariant {\n return kindOf(this, SPINNER_VARIANTS, 'fluent') as SpinnerVariant;\n }\n set kind(v: SpinnerVariant) {\n this.setAttribute('kind', v);\n }\n\n\n mount(): void {\n const variant = this.kind;\n if (this.getAttribute('data-kind') !== variant) {\n this.innerHTML = markup(variant);\n this.setAttribute('data-kind', variant);\n }\n const size = this.getAttribute('size');\n if (size) this.style.setProperty('--usa-spinner-size', `${Number(size)}px`);\n else this.style.removeProperty('--usa-spinner-size');\n this.setAttribute('role', 'progressbar');\n if (!this.hasAttribute('aria-label') || this.hasAttribute('label')) this.setAttribute('aria-label', this.str('label', 'Loading'));\n }\n },\n { id: 'spinner', text: css }\n );\n}\n","import { defineElement, EASE_OUT, type UsaElement } from '../base';\nimport css from './skeleton.css?raw';\n\n/**\n * `<usa-skeleton>` — shimmering placeholders while content loads. With\n * `loading`, it shows `lines` bars (or one block of `width` × `height`,\n * or a `circle`) and hides its children; remove `loading` and the real\n * content fades in.\n *\n * Attributes: `loading`, `lines` (3), `width`, `height` (CSS lengths),\n * `circle`, `radius`, `avatar` (circle + lines, like a list row).\n * `aria-busy` follows `loading`. Reduced motion: no shimmer sweep.\n */\nexport interface UsaSkeletonElement extends UsaElement {\n loading: boolean;\n}\n\nexport function defineSkeleton(tag = 'usa-skeleton'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaSkeleton extends Base {\n static get observedAttributes(): string[] {\n return ['loading', 'lines', 'width', 'height', 'circle', 'avatar', 'radius'];\n }\n\n private _ph: HTMLElement | null = null;\n\n get loading(): boolean {\n return this.hasAttribute('loading');\n }\n set loading(v: boolean) {\n this.toggleAttribute('loading', !!v);\n }\n\n changed(name: string): void {\n if (name === 'loading') this.sync(true);\n else {\n this._ph?.remove();\n this._ph = null;\n this.sync(false);\n }\n }\n\n mount(): void {\n this.sync(false);\n }\n\n private build(): HTMLElement {\n const ph = document.createElement('div');\n ph.className = 'usa-skeleton-ph';\n ph.setAttribute('aria-hidden', 'true');\n const bone = (cls = '') => {\n const b = document.createElement('span');\n b.className = `usa-bone ${cls}`.trim();\n return b;\n };\n const radius = this.getAttribute('radius');\n if (radius) this.style.setProperty('--usa-skeleton-radius', radius);\n if (this.flag('circle') || this.hasAttribute('width') || this.hasAttribute('height')) {\n const b = bone(this.flag('circle') ? 'usa-bone-circle' : 'usa-bone-block');\n b.style.width = this.str('width', this.flag('circle') ? this.str('height', '48px') : '100%');\n b.style.height = this.str('height', this.flag('circle') ? b.style.width : '120px');\n ph.append(b);\n } else {\n if (this.flag('avatar')) ph.append(bone('usa-bone-circle usa-bone-avatar'));\n const col = document.createElement('div');\n col.className = 'usa-bone-lines';\n const n = Math.max(1, Math.min(20, this.num('lines', 3)));\n for (let i = 0; i < n; i++) col.append(bone(i === n - 1 && n > 1 ? 'usa-bone-last' : ''));\n ph.append(col);\n }\n return ph;\n }\n\n private sync(animate: boolean): void {\n const loading = this.loading;\n this.setAttribute('aria-busy', String(loading));\n if (loading) {\n if (!this._ph) {\n this._ph = this.build();\n this.prepend(this._ph);\n }\n return;\n }\n if (this._ph) {\n this._ph.remove();\n this._ph = null;\n }\n if (animate && !this.reduced) {\n for (const kid of Array.from(this.children)) {\n this.motion(kid, [{ opacity: 0, transform: 'translateY(4px)' }, { opacity: 1, transform: 'none' }], { duration: 360, easing: EASE_OUT });\n }\n }\n this.emit('loaded');\n }\n },\n { id: 'skeleton', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport css from './progress.css?raw';\n\n/**\n * `<usa-progress>` — a linear progress bar. Determinate (`value` / `max`)\n * bars glide between values with `transform: scaleX()`; without a value,\n * or with `indeterminate`, it shows the Windows Fluent indeterminate\n * animation (two sliding segments).\n *\n * Attributes: `value`, `max` (100), `indeterminate`, `state`\n * (`paused` | `error` — the WinUI states), `label` (accessible name).\n * `role=\"progressbar\"` with `aria-valuenow` when determinate.\n * Reduced motion: no glide; indeterminate becomes a gentle pulse.\n */\nexport interface UsaProgressElement extends UsaElement {\n value: number | null;\n max: number;\n /** 0–1, or `null` when indeterminate. */\n readonly ratio: number | null;\n}\n\nexport function defineProgress(tag = 'usa-progress'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaProgress extends Base {\n static get observedAttributes(): string[] {\n return ['value', 'max', 'indeterminate', 'label'];\n }\n\n private _fill: HTMLElement | null = null;\n\n get value(): number | null {\n const v = this.getAttribute('value');\n return v === null || v === '' || Number.isNaN(Number(v)) ? null : Number(v);\n }\n set value(v: number | null) {\n if (v === null || v === undefined) this.removeAttribute('value');\n else this.setAttribute('value', String(v));\n }\n get max(): number {\n const m = this.num('max', 100);\n return m > 0 ? m : 100;\n }\n set max(v: number) {\n this.setAttribute('max', String(v));\n }\n get ratio(): number | null {\n const v = this.value;\n return this.hasAttribute('indeterminate') || v === null ? null : clamp(v / this.max, 0, 1);\n }\n\n changed(): void {\n this.sync();\n }\n\n mount(): void {\n if (!this._fill) {\n this.innerHTML = '<span class=\"usa-progress-bar\"></span><span class=\"usa-progress-bar usa-progress-bar2\"></span>';\n this._fill = this.firstElementChild as HTMLElement;\n }\n this.setAttribute('role', 'progressbar');\n this.sync();\n }\n\n private sync(): void {\n const ratio = this.ratio;\n const label = this.getAttribute('label');\n if (label) this.setAttribute('aria-label', label);\n this.toggleAttribute('data-indeterminate', ratio === null);\n if (ratio === null) {\n this.removeAttribute('aria-valuenow');\n if (this._fill) this._fill.style.transform = '';\n return;\n }\n this.setAttribute('aria-valuemin', '0');\n this.setAttribute('aria-valuemax', String(this.max));\n this.setAttribute('aria-valuenow', String(this.value));\n if (this._fill) this._fill.style.transform = `scaleX(${ratio})`;\n if (ratio === 1) this.emit('complete');\n }\n },\n { id: 'progress', text: css }\n );\n}\n","import { defineElement, EASE_OUT, FLUENT_DECELERATE, type UsaElement } from '../base';\nimport css from './toast.css?raw';\n\nexport type ToastType = 'info' | 'success' | 'warning' | 'error';\n\nexport interface ToastOptions {\n /** ms before it hides itself; `0` keeps it until closed (default 4000). */\n duration?: number;\n type?: ToastType;\n /** Optional action button. */\n action?: { label: string; onClick: () => void };\n /** Show a close button (default `true`). */\n dismissible?: boolean;\n /** The toaster to use (default: the first `<usa-toaster>`, created if missing). */\n toaster?: UsaToasterElement | string;\n}\n\nexport interface ToastHandle {\n element: HTMLElement;\n close(): Promise<void>;\n}\n\n/**\n * `<usa-toaster>` — the region toasts slide into (`role=\"region\"`, each\n * toast `role=\"status\"`, errors `role=\"alert\"`). Toasts pause their timer\n * while hovered or focused, and the stack re-flows with a FLIP animation.\n *\n * Attributes: `position` (`bottom-right` default, `bottom-left`,\n * `bottom-center`, `top-right`, `top-left`, `top-center`), `max` (visible\n * toasts, 4), `label` (region name, \"Notifications\").\n * Reduced motion: toasts fade instead of sliding.\n */\nexport interface UsaToasterElement extends UsaElement {\n show(message: string, options?: ToastOptions): ToastHandle;\n clear(): void;\n}\n\nconst ICONS: Record<ToastType, string> = {\n info: '<path d=\"M12 8h.01M11 12h1v5h1\"/>',\n success: '<path d=\"m8 12.5 3 3 5-6\"/>',\n warning: '<path d=\"M12 8v5M12 16.5h.01\"/>',\n error: '<path d=\"m9 9 6 6M15 9l-6 6\"/>',\n};\n\nexport function defineToaster(tag = 'usa-toaster'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaToaster extends Base {\n static get observedAttributes(): string[] {\n return ['label'];\n }\n\n mount(): void {\n this.setAttribute('role', 'region');\n this.setAttribute('aria-label', this.str('label', 'Notifications'));\n }\n\n private flip(mutate: () => void): void {\n const kids = Array.from(this.children) as HTMLElement[];\n const before = new Map(kids.map((k) => [k, k.getBoundingClientRect().top]));\n mutate();\n if (this.reduced) return;\n for (const k of Array.from(this.children) as HTMLElement[]) {\n const top = before.get(k);\n if (top === undefined || k.hasAttribute('data-leaving')) continue;\n const dy = top - k.getBoundingClientRect().top;\n if (Math.abs(dy) > 0.5) this.motion(k, [{ transform: `translateY(${dy}px)` }, { transform: 'none' }], { duration: 320, easing: EASE_OUT, composite: 'add' } as KeyframeAnimationOptions);\n }\n }\n\n private enterFrames(): Keyframe[] {\n if (this.reduced) return [{ opacity: 0 }, { opacity: 1 }];\n const pos = this.str('position', 'bottom-right');\n const x = pos.endsWith('right') ? '110%' : pos.endsWith('left') ? '-110%' : '0';\n const y = pos.endsWith('center') ? (pos.startsWith('top') ? '-120%' : '120%') : '0';\n return [{ opacity: 0, transform: `translate(${x}, ${y}) scale(0.96)` }, { opacity: 1, transform: 'none' }];\n }\n\n show(message: string, options: ToastOptions = {}): ToastHandle {\n const type = options.type || 'info';\n const el = document.createElement('div');\n el.className = 'usa-toast';\n el.setAttribute('data-type', type);\n el.setAttribute('role', type === 'error' ? 'alert' : 'status');\n el.innerHTML = `<svg class=\"usa-toast-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"/>${ICONS[type] || ICONS.info}</svg><div class=\"usa-toast-msg\"></div>`;\n (el.querySelector('.usa-toast-msg') as HTMLElement).textContent = message;\n let closed: Promise<void> | null = null;\n let timer: ReturnType<typeof setTimeout> | 0 = 0;\n const close = (): Promise<void> => {\n if (closed) return closed;\n clearTimeout(timer as ReturnType<typeof setTimeout>);\n el.setAttribute('data-leaving', '');\n const frames = this.enterFrames().reverse();\n const a = el.isConnected ? this.motion(el, frames, { duration: 220, easing: 'cubic-bezier(0.7, 0, 0.84, 0)', fill: 'forwards' }) : null;\n closed = new Promise<void>((resolve) => {\n const done = () => {\n this.flip(() => el.remove());\n resolve();\n };\n if (a) a.onfinish = done;\n else done();\n });\n return closed;\n };\n if (options.action) {\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.className = 'usa-toast-action';\n btn.textContent = options.action.label;\n btn.addEventListener('click', () => {\n options.action!.onClick();\n close();\n });\n el.append(btn);\n }\n if (options.dismissible !== false) {\n const x = document.createElement('button');\n x.type = 'button';\n x.className = 'usa-toast-close';\n x.setAttribute('aria-label', 'Close');\n x.innerHTML = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m7 7 10 10M17 7 7 17\"/></svg>';\n x.addEventListener('click', () => close());\n el.append(x);\n }\n const duration = options.duration ?? 4000;\n const arm = () => {\n clearTimeout(timer as ReturnType<typeof setTimeout>);\n if (duration > 0) timer = setTimeout(close, duration);\n };\n const hold = () => clearTimeout(timer as ReturnType<typeof setTimeout>);\n el.addEventListener('pointerenter', hold);\n el.addEventListener('pointerleave', arm);\n el.addEventListener('focusin', hold);\n el.addEventListener('focusout', arm);\n const top = this.str('position', 'bottom-right').startsWith('top');\n this.flip(() => (top ? this.prepend(el) : this.append(el)));\n this.motion(el, this.enterFrames(), { duration: 420, easing: FLUENT_DECELERATE });\n arm();\n const live = Array.from(this.querySelectorAll<HTMLElement>('.usa-toast:not([data-leaving])'));\n const max = Math.max(1, this.num('max', 4));\n const extra = live.length - max;\n if (extra > 0) (top ? live.slice(-extra) : live.slice(0, extra)).forEach((t) => (t as any)._close?.());\n (el as any)._close = close;\n this.emit('toast', { element: el, message, type });\n return { element: el, close };\n }\n\n clear(): void {\n this.querySelectorAll<HTMLElement>('.usa-toast').forEach((t) => (t as any)._close?.());\n }\n },\n { id: 'toast', text: css }\n );\n}\n\n/**\n * Show a toast. Defines `<usa-toaster>` and adds one to `<body>` if the\n * page has none. Returns a handle with `close()`. No-op on the server.\n *\n * ```js\n * toast('Saved', { type: 'success' });\n * ```\n */\nexport function toast(message: string, options: ToastOptions = {}): ToastHandle | null {\n if (typeof document === 'undefined' || !defineToaster()) return null;\n let host: UsaToasterElement | null =\n typeof options.toaster === 'string' ? document.querySelector(options.toaster) : options.toaster || document.querySelector('usa-toaster');\n if (!host) {\n host = document.createElement('usa-toaster') as UsaToasterElement;\n document.body.append(host);\n }\n return host.show(message, options);\n}\n","import { kindOf, defineElement, EASE_OUT, EASE_SPRING, type UsaElement } from '../base';\nimport css from './check.css?raw';\n\n/**\n * `<usa-check>` — an animated result icon: the circle draws itself, then the\n * check mark (or cross / exclamation) strokes in with a little pop.\n *\n * Attributes: `kind` (`success` default, `error`, `warning`), `size`\n * (px, 56), `start` (`view` default | `load` | `manual`), `label`\n * (accessible name, e.g. \"Payment complete\"; the icon is decorative\n * without it). Event: `usa:complete`. Reduced motion: drawn instantly.\n */\nexport interface UsaCheckElement extends UsaElement {\n play(): Promise<void>;\n reset(): void;\n}\n\nconst PATHS: Record<string, string> = {\n success: 'M15 27 l7 7 l14 -15',\n error: 'M18 18 L34 34 M34 18 L18 34',\n warning: 'M26 15 V30 M26 37 V37.5',\n};\n\nexport function defineCheck(tag = 'usa-check'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaCheck extends Base {\n static get observedAttributes(): string[] {\n return ['kind', 'size', 'label'];\n }\n\n private _anims: Animation[] = [];\n\n mount(): void {\n const variant = kindOf(this, PATHS, 'success');\n this.innerHTML = `<svg viewBox=\"0 0 52 52\" aria-hidden=\"true\"><circle class=\"usa-check-circle\" cx=\"26\" cy=\"26\" r=\"23\" pathLength=\"1\"/><path class=\"usa-check-mark\" d=\"${PATHS[variant]}\" pathLength=\"1\"/></svg>`;\n this.setAttribute('data-kind', variant);\n const size = this.getAttribute('size');\n if (size) this.style.setProperty('--usa-check-size', `${Number(size)}px`);\n const label = this.getAttribute('label');\n if (label) {\n this.setAttribute('role', 'img');\n this.setAttribute('aria-label', label);\n }\n if (this.reduced) {\n this.setAttribute('data-state', 'done');\n return;\n }\n this.setAttribute('data-state', 'idle');\n const start = this.str('start', 'view');\n if (start === 'load') this.play();\n else if (start === 'view') {\n let done = false;\n this.inView((v) => v && !done && ((done = true), this.play()), { threshold: 0.5 });\n }\n }\n\n unmount(): void {\n this._anims.splice(0).forEach((a) => a.cancel());\n }\n\n reset(): void {\n this._anims.splice(0).forEach((a) => a.cancel());\n this.setAttribute('data-state', this.reduced ? 'done' : 'idle');\n }\n\n play(): Promise<void> {\n this.reset();\n this.setAttribute('data-state', 'done');\n const circle = this.querySelector('.usa-check-circle');\n const mark = this.querySelector('.usa-check-mark');\n const svg = this.querySelector('svg');\n if (this.reduced || !circle || !mark || !svg) {\n this.emit('complete');\n return Promise.resolve();\n }\n const draw = [{ strokeDashoffset: 1 }, { strokeDashoffset: 0 }];\n const anims = [\n this.motion(circle, draw, { duration: 520, easing: EASE_OUT, fill: 'backwards' }),\n this.motion(mark, draw, { duration: 340, delay: 420, easing: EASE_OUT, fill: 'backwards' }),\n this.motion(svg, [{ transform: 'scale(1)' }, { transform: 'scale(1.12)' }, { transform: 'scale(1)' }], { duration: 420, delay: 640, easing: EASE_SPRING }),\n ].filter((a): a is Animation => !!a);\n this._anims = anims;\n return new Promise((resolve) => {\n const last = anims[anims.length - 1];\n const done = () => {\n this.emit('complete');\n resolve();\n };\n if (last) last.onfinish = done;\n else done();\n });\n }\n },\n { id: 'check', text: css }\n );\n}\n","/**\n * motionary/components/feedback — loading & feedback.\n * `<usa-spinner>`, `<usa-skeleton>`, `<usa-progress>`, `<usa-toaster>` +\n * `toast()`, `<usa-check>`.\n */\nimport { defineSpinner, type UsaSpinnerElement } from './spinner';\nimport { defineSkeleton, type UsaSkeletonElement } from './skeleton';\nimport { defineProgress, type UsaProgressElement } from './progress';\nimport { defineToaster, type UsaToasterElement } from './toast';\nimport { defineCheck, type UsaCheckElement } from './check';\n\nexport { defineSpinner, defineSkeleton, defineProgress, defineToaster, defineCheck };\nexport { toast } from './toast';\nexport { SPINNER_VARIANTS } from './spinner';\nexport type { SpinnerVariant } from './spinner';\nexport type { ToastOptions, ToastHandle, ToastType } from './toast';\nexport type { UsaSpinnerElement, UsaSkeletonElement, UsaProgressElement, UsaToasterElement, UsaCheckElement };\n\n/** Register every component of this category under its default tag. */\nexport function defineFeedbackComponents(): void {\n defineSpinner();\n defineSkeleton();\n defineProgress();\n defineToaster();\n defineCheck();\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-spinner': UsaSpinnerElement;\n 'usa-skeleton': UsaSkeletonElement;\n 'usa-progress': UsaProgressElement;\n 'usa-toaster': UsaToasterElement;\n 'usa-check': UsaCheckElement;\n }\n}\n"],"names":["defineElement","kindOf","css","EASE_OUT","clamp","FLUENT_DECELERATE","EASE_SPRING"],"mappings":"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"}
1
+ {"version":3,"file":"feedback.cjs","sources":["../../src/components/feedback/spinner.ts","../../src/components/feedback/skeleton.ts","../../src/components/feedback/progress.ts","../../src/components/feedback/toast.ts","../../src/components/feedback/check.ts","../../src/components/feedback/index.ts"],"sourcesContent":["import { kindOf, defineElement, type UsaElement } from '../base';\nimport css from './spinner.css?raw';\n\nexport const SPINNER_VARIANTS = ['fluent', 'windows', 'ring', 'dots', 'pulse', 'bars'] as const;\nexport type SpinnerVariant = (typeof SPINNER_VARIANTS)[number];\n\n/**\n * `<usa-spinner>` — indeterminate loading indicators, pure CSS animations\n * of `transform` / `opacity` (plus an SVG stroke for `fluent`).\n *\n * Kinds (`kind`): `fluent` (default — the WinUI / Windows 11\n * ProgressRing arc), `windows` (the Windows 10 boot \"orbiting dots\"),\n * `ring` (classic border spinner), `dots` (three bouncing dots / typing\n * indicator), `pulse` (expanding ripple), `bars` (equalizer).\n * Attributes: `size` (px, 32), `label` (accessible name, \"Loading\"),\n * `paused`. Colour follows `color` / `--usa-spinner-color`.\n * `role=\"progressbar\"` without a value (indeterminate). Reduced motion:\n * a slow opacity pulse instead of movement.\n */\nexport interface UsaSpinnerElement extends UsaElement {\n /** Spinner kind (`kind` attribute). */\n kind: SpinnerVariant;\n}\n\nfunction markup(variant: string): string {\n switch (variant) {\n case 'windows':\n return '<i></i><i></i><i></i><i></i><i></i>';\n case 'dots':\n return '<i></i><i></i><i></i>';\n case 'bars':\n return '<i></i><i></i><i></i><i></i>';\n case 'pulse':\n return '<i></i><i></i>';\n case 'ring':\n return '<i></i>';\n default:\n return '<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><circle cx=\"8\" cy=\"8\" r=\"7\" pathLength=\"100\"/></svg>';\n }\n}\n\nexport function defineSpinner(tag = 'usa-spinner'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaSpinner extends Base {\n static get observedAttributes(): string[] {\n return ['kind', 'size', 'label'];\n }\n\n /** The spinner kind (`kind` attribute). */\n get kind(): SpinnerVariant {\n return kindOf(this, SPINNER_VARIANTS, 'fluent') as SpinnerVariant;\n }\n set kind(v: SpinnerVariant) {\n this.setAttribute('kind', v);\n }\n\n\n mount(): void {\n const variant = this.kind;\n if (this.getAttribute('data-kind') !== variant) {\n this.innerHTML = markup(variant);\n this.setAttribute('data-kind', variant);\n }\n const size = this.getAttribute('size');\n if (size) this.style.setProperty('--usa-spinner-size', `${Number(size)}px`);\n else this.style.removeProperty('--usa-spinner-size');\n this.setAttribute('role', 'progressbar');\n if (!this.hasAttribute('aria-label') || this.hasAttribute('label')) this.setAttribute('aria-label', this.str('label', 'Loading'));\n }\n },\n { id: 'spinner', text: css }\n );\n}\n","import { defineElement, EASE_OUT, type UsaElement } from '../base';\nimport css from './skeleton.css?raw';\n\n/**\n * `<usa-skeleton>` — shimmering placeholders while content loads. With\n * `loading`, it shows `lines` bars (or one block of `width` × `height`,\n * or a `circle`) and hides its children; remove `loading` and the real\n * content fades in.\n *\n * Attributes: `loading`, `lines` (3), `width`, `height` (CSS lengths),\n * `circle`, `radius`, `avatar` (circle + lines, like a list row).\n * `aria-busy` follows `loading`. Reduced motion: no shimmer sweep.\n */\nexport interface UsaSkeletonElement extends UsaElement {\n loading: boolean;\n}\n\nexport function defineSkeleton(tag = 'usa-skeleton'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaSkeleton extends Base {\n static get observedAttributes(): string[] {\n return ['loading', 'lines', 'width', 'height', 'circle', 'avatar', 'radius'];\n }\n\n private _ph: HTMLElement | null = null;\n\n get loading(): boolean {\n return this.hasAttribute('loading');\n }\n set loading(v: boolean) {\n this.toggleAttribute('loading', !!v);\n }\n\n changed(name: string): void {\n if (name === 'loading') this.sync(true);\n else {\n this._ph?.remove();\n this._ph = null;\n this.sync(false);\n }\n }\n\n mount(): void {\n this.sync(false);\n }\n\n private build(): HTMLElement {\n const ph = document.createElement('div');\n ph.className = 'usa-skeleton-ph';\n ph.setAttribute('aria-hidden', 'true');\n const bone = (cls = '') => {\n const b = document.createElement('span');\n b.className = `usa-bone ${cls}`.trim();\n return b;\n };\n const radius = this.getAttribute('radius');\n if (radius) this.style.setProperty('--usa-skeleton-radius', radius);\n if (this.flag('circle') || this.hasAttribute('width') || this.hasAttribute('height')) {\n const b = bone(this.flag('circle') ? 'usa-bone-circle' : 'usa-bone-block');\n b.style.width = this.str('width', this.flag('circle') ? this.str('height', '48px') : '100%');\n b.style.height = this.str('height', this.flag('circle') ? b.style.width : '120px');\n ph.append(b);\n } else {\n if (this.flag('avatar')) ph.append(bone('usa-bone-circle usa-bone-avatar'));\n const col = document.createElement('div');\n col.className = 'usa-bone-lines';\n const n = Math.max(1, Math.min(20, this.num('lines', 3)));\n for (let i = 0; i < n; i++) col.append(bone(i === n - 1 && n > 1 ? 'usa-bone-last' : ''));\n ph.append(col);\n }\n return ph;\n }\n\n private sync(animate: boolean): void {\n const loading = this.loading;\n this.setAttribute('aria-busy', String(loading));\n if (loading) {\n if (!this._ph) {\n this._ph = this.build();\n this.prepend(this._ph);\n }\n return;\n }\n if (this._ph) {\n this._ph.remove();\n this._ph = null;\n }\n if (animate && !this.reduced) {\n for (const kid of Array.from(this.children)) {\n this.motion(kid, [{ opacity: 0, transform: 'translateY(4px)' }, { opacity: 1, transform: 'none' }], { duration: 360, easing: EASE_OUT });\n }\n }\n this.emit('loaded');\n }\n },\n { id: 'skeleton', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport css from './progress.css?raw';\n\n/**\n * `<usa-progress>` — a linear progress bar. Determinate (`value` / `max`)\n * bars glide between values with `transform: scaleX()`; without a value,\n * or with `indeterminate`, it shows the Windows Fluent indeterminate\n * animation (two sliding segments).\n *\n * Attributes: `value`, `max` (100), `indeterminate`, `state`\n * (`paused` | `error` — the WinUI states), `label` (accessible name).\n * `role=\"progressbar\"` with `aria-valuenow` when determinate.\n * Reduced motion: no glide; indeterminate becomes a gentle pulse.\n */\nexport interface UsaProgressElement extends UsaElement {\n value: number | null;\n max: number;\n /** 0–1, or `null` when indeterminate. */\n readonly ratio: number | null;\n}\n\nexport function defineProgress(tag = 'usa-progress'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaProgress extends Base {\n static get observedAttributes(): string[] {\n return ['value', 'max', 'indeterminate', 'label'];\n }\n\n private _fill: HTMLElement | null = null;\n\n get value(): number | null {\n const v = this.getAttribute('value');\n return v === null || v === '' || Number.isNaN(Number(v)) ? null : Number(v);\n }\n set value(v: number | null) {\n if (v === null || v === undefined) this.removeAttribute('value');\n else this.setAttribute('value', String(v));\n }\n get max(): number {\n const m = this.num('max', 100);\n return m > 0 ? m : 100;\n }\n set max(v: number) {\n this.setAttribute('max', String(v));\n }\n get ratio(): number | null {\n const v = this.value;\n return this.hasAttribute('indeterminate') || v === null ? null : clamp(v / this.max, 0, 1);\n }\n\n changed(): void {\n this.sync();\n }\n\n mount(): void {\n if (!this._fill) {\n this.innerHTML = '<span class=\"usa-progress-bar\"></span><span class=\"usa-progress-bar usa-progress-bar2\"></span>';\n this._fill = this.firstElementChild as HTMLElement;\n }\n this.setAttribute('role', 'progressbar');\n this.sync();\n }\n\n private sync(): void {\n const ratio = this.ratio;\n const label = this.getAttribute('label');\n if (label) this.setAttribute('aria-label', label);\n this.toggleAttribute('data-indeterminate', ratio === null);\n if (ratio === null) {\n this.removeAttribute('aria-valuenow');\n if (this._fill) this._fill.style.transform = '';\n return;\n }\n this.setAttribute('aria-valuemin', '0');\n this.setAttribute('aria-valuemax', String(this.max));\n this.setAttribute('aria-valuenow', String(this.value));\n if (this._fill) this._fill.style.transform = `scaleX(${ratio})`;\n if (ratio === 1) this.emit('complete');\n }\n },\n { id: 'progress', text: css }\n );\n}\n","import { defineElement, EASE_OUT, FLUENT_DECELERATE, type UsaElement } from '../base';\nimport css from './toast.css?raw';\n\nexport type ToastType = 'info' | 'success' | 'warning' | 'error';\n\nexport interface ToastOptions {\n /** ms before it hides itself; `0` keeps it until closed (default 4000). */\n duration?: number;\n type?: ToastType;\n /** Optional action button. */\n action?: { label: string; onClick: () => void };\n /** Show a close button (default `true`). */\n dismissible?: boolean;\n /** The toaster to use (default: the first `<usa-toaster>`, created if missing). */\n toaster?: UsaToasterElement | string;\n}\n\nexport interface ToastHandle {\n element: HTMLElement;\n close(): Promise<void>;\n}\n\n/**\n * `<usa-toaster>` — the region toasts slide into (`role=\"region\"`, each\n * toast `role=\"status\"`, errors `role=\"alert\"`). Toasts pause their timer\n * while hovered or focused, and the stack re-flows with a FLIP animation.\n *\n * Attributes: `position` (`bottom-right` default, `bottom-left`,\n * `bottom-center`, `top-right`, `top-left`, `top-center`), `max` (visible\n * toasts, 4), `label` (region name, \"Notifications\").\n * Reduced motion: toasts fade instead of sliding.\n */\nexport interface UsaToasterElement extends UsaElement {\n show(message: string, options?: ToastOptions): ToastHandle;\n clear(): void;\n}\n\nconst ICONS: Record<ToastType, string> = {\n info: '<path d=\"M12 8h.01M11 12h1v5h1\"/>',\n success: '<path d=\"m8 12.5 3 3 5-6\"/>',\n warning: '<path d=\"M12 8v5M12 16.5h.01\"/>',\n error: '<path d=\"m9 9 6 6M15 9l-6 6\"/>',\n};\n\nexport function defineToaster(tag = 'usa-toaster'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaToaster extends Base {\n static get observedAttributes(): string[] {\n return ['label'];\n }\n\n mount(): void {\n this.setAttribute('role', 'region');\n this.setAttribute('aria-label', this.str('label', 'Notifications'));\n }\n\n private flip(mutate: () => void): void {\n const kids = Array.from(this.children) as HTMLElement[];\n const before = new Map(kids.map((k) => [k, k.getBoundingClientRect().top]));\n mutate();\n if (this.reduced) return;\n for (const k of Array.from(this.children) as HTMLElement[]) {\n const top = before.get(k);\n if (top === undefined || k.hasAttribute('data-leaving')) continue;\n const dy = top - k.getBoundingClientRect().top;\n if (Math.abs(dy) > 0.5) this.motion(k, [{ transform: `translateY(${dy}px)` }, { transform: 'none' }], { duration: 320, easing: EASE_OUT, composite: 'add' } as KeyframeAnimationOptions);\n }\n }\n\n private enterFrames(): Keyframe[] {\n if (this.reduced) return [{ opacity: 0 }, { opacity: 1 }];\n const pos = this.str('position', 'bottom-right');\n const x = pos.endsWith('right') ? '110%' : pos.endsWith('left') ? '-110%' : '0';\n const y = pos.endsWith('center') ? (pos.startsWith('top') ? '-120%' : '120%') : '0';\n return [{ opacity: 0, transform: `translate(${x}, ${y}) scale(0.96)` }, { opacity: 1, transform: 'none' }];\n }\n\n show(message: string, options: ToastOptions = {}): ToastHandle {\n const type = options.type || 'info';\n const el = document.createElement('div');\n el.className = 'usa-toast';\n el.setAttribute('data-type', type);\n el.setAttribute('role', type === 'error' ? 'alert' : 'status');\n el.innerHTML = `<svg class=\"usa-toast-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"/>${ICONS[type] || ICONS.info}</svg><div class=\"usa-toast-msg\"></div>`;\n (el.querySelector('.usa-toast-msg') as HTMLElement).textContent = message;\n let closed: Promise<void> | null = null;\n let timer: ReturnType<typeof setTimeout> | 0 = 0;\n const close = (): Promise<void> => {\n if (closed) return closed;\n clearTimeout(timer as ReturnType<typeof setTimeout>);\n el.setAttribute('data-leaving', '');\n const frames = this.enterFrames().reverse();\n const a = el.isConnected ? this.motion(el, frames, { duration: 220, easing: 'cubic-bezier(0.7, 0, 0.84, 0)', fill: 'forwards' }) : null;\n closed = new Promise<void>((resolve) => {\n const done = () => {\n this.flip(() => el.remove());\n resolve();\n };\n if (a) a.onfinish = done;\n else done();\n });\n return closed;\n };\n if (options.action) {\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.className = 'usa-toast-action';\n btn.textContent = options.action.label;\n btn.addEventListener('click', () => {\n options.action!.onClick();\n close();\n });\n el.append(btn);\n }\n if (options.dismissible !== false) {\n const x = document.createElement('button');\n x.type = 'button';\n x.className = 'usa-toast-close';\n x.setAttribute('aria-label', 'Close');\n x.innerHTML = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m7 7 10 10M17 7 7 17\"/></svg>';\n x.addEventListener('click', () => close());\n el.append(x);\n }\n const duration = options.duration ?? 4000;\n const arm = () => {\n clearTimeout(timer as ReturnType<typeof setTimeout>);\n if (duration > 0) timer = setTimeout(close, duration);\n };\n const hold = () => clearTimeout(timer as ReturnType<typeof setTimeout>);\n el.addEventListener('pointerenter', hold);\n el.addEventListener('pointerleave', arm);\n el.addEventListener('focusin', hold);\n el.addEventListener('focusout', arm);\n const top = this.str('position', 'bottom-right').startsWith('top');\n this.flip(() => (top ? this.prepend(el) : this.append(el)));\n this.motion(el, this.enterFrames(), { duration: 420, easing: FLUENT_DECELERATE });\n arm();\n const live = Array.from(this.querySelectorAll<HTMLElement>('.usa-toast:not([data-leaving])'));\n const max = Math.max(1, this.num('max', 4));\n const extra = live.length - max;\n if (extra > 0) (top ? live.slice(-extra) : live.slice(0, extra)).forEach((t) => (t as any)._close?.());\n (el as any)._close = close;\n this.emit('toast', { element: el, message, type });\n return { element: el, close };\n }\n\n clear(): void {\n this.querySelectorAll<HTMLElement>('.usa-toast').forEach((t) => (t as any)._close?.());\n }\n },\n { id: 'toast', text: css }\n );\n}\n\n/**\n * Show a toast. Defines `<usa-toaster>` and adds one to `<body>` if the\n * page has none. Returns a handle with `close()`. No-op on the server.\n *\n * ```js\n * toast('Saved', { type: 'success' });\n * ```\n */\nexport function toast(message: string, options: ToastOptions = {}): ToastHandle | null {\n if (typeof document === 'undefined' || !defineToaster()) return null;\n let host: UsaToasterElement | null =\n typeof options.toaster === 'string' ? document.querySelector(options.toaster) : options.toaster || document.querySelector('usa-toaster');\n if (!host) {\n host = document.createElement('usa-toaster') as UsaToasterElement;\n document.body.append(host);\n }\n return host.show(message, options);\n}\n","import { kindOf, defineElement, EASE_OUT, EASE_SPRING, type UsaElement } from '../base';\nimport css from './check.css?raw';\n\n/**\n * `<usa-check>` — an animated result icon: the circle draws itself, then the\n * check mark (or cross / exclamation) strokes in with a little pop.\n *\n * Attributes: `kind` (`success` default, `error`, `warning`), `size`\n * (px, 56), `start` (`view` default | `load` | `manual`), `label`\n * (accessible name, e.g. \"Payment complete\"; the icon is decorative\n * without it). Event: `usa:complete`. Reduced motion: drawn instantly.\n */\nexport interface UsaCheckElement extends UsaElement {\n play(): Promise<void>;\n reset(): void;\n}\n\nconst PATHS: Record<string, string> = {\n success: 'M15 27 l7 7 l14 -15',\n error: 'M18 18 L34 34 M34 18 L18 34',\n warning: 'M26 15 V30 M26 37 V37.5',\n};\n\nexport function defineCheck(tag = 'usa-check'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaCheck extends Base {\n static get observedAttributes(): string[] {\n return ['kind', 'size', 'label'];\n }\n\n private _anims: Animation[] = [];\n\n mount(): void {\n const variant = kindOf(this, PATHS, 'success');\n this.innerHTML = `<svg viewBox=\"0 0 52 52\" aria-hidden=\"true\"><circle class=\"usa-check-circle\" cx=\"26\" cy=\"26\" r=\"23\" pathLength=\"1\"/><path class=\"usa-check-mark\" d=\"${PATHS[variant]}\" pathLength=\"1\"/></svg>`;\n this.setAttribute('data-kind', variant);\n const size = this.getAttribute('size');\n if (size) this.style.setProperty('--usa-check-size', `${Number(size)}px`);\n const label = this.getAttribute('label');\n if (label) {\n this.setAttribute('role', 'img');\n this.setAttribute('aria-label', label);\n }\n if (this.reduced) {\n this.setAttribute('data-state', 'done');\n return;\n }\n this.setAttribute('data-state', 'idle');\n const start = this.str('start', 'view');\n if (start === 'load') this.play();\n else if (start === 'view') {\n let done = false;\n this.inView((v) => v && !done && ((done = true), this.play()), { threshold: 0.5 });\n }\n }\n\n unmount(): void {\n this._anims.splice(0).forEach((a) => a.cancel());\n }\n\n reset(): void {\n this._anims.splice(0).forEach((a) => a.cancel());\n this.setAttribute('data-state', this.reduced ? 'done' : 'idle');\n }\n\n play(): Promise<void> {\n this.reset();\n this.setAttribute('data-state', 'done');\n const circle = this.querySelector('.usa-check-circle');\n const mark = this.querySelector('.usa-check-mark');\n const svg = this.querySelector('svg');\n if (this.reduced || !circle || !mark || !svg) {\n this.emit('complete');\n return Promise.resolve();\n }\n const draw = [{ strokeDashoffset: 1 }, { strokeDashoffset: 0 }];\n const anims = [\n this.motion(circle, draw, { duration: 520, easing: EASE_OUT, fill: 'backwards' }),\n this.motion(mark, draw, { duration: 340, delay: 420, easing: EASE_OUT, fill: 'backwards' }),\n this.motion(svg, [{ transform: 'scale(1)' }, { transform: 'scale(1.12)' }, { transform: 'scale(1)' }], { duration: 420, delay: 640, easing: EASE_SPRING }),\n ].filter((a): a is Animation => !!a);\n this._anims = anims;\n return new Promise((resolve) => {\n const last = anims[anims.length - 1];\n const done = () => {\n this.emit('complete');\n resolve();\n };\n if (last) last.onfinish = done;\n else done();\n });\n }\n },\n { id: 'check', text: css }\n );\n}\n","/**\n * motionary/components/feedback — loading & feedback.\n * `<usa-spinner>`, `<usa-skeleton>`, `<usa-progress>`, `<usa-toaster>` +\n * `toast()`, `<usa-check>`.\n */\nimport { defineSpinner, type UsaSpinnerElement } from './spinner';\nimport { defineSkeleton, type UsaSkeletonElement } from './skeleton';\nimport { defineProgress, type UsaProgressElement } from './progress';\nimport { defineToaster, type UsaToasterElement } from './toast';\nimport { defineCheck, type UsaCheckElement } from './check';\n\nexport { defineSpinner, defineSkeleton, defineProgress, defineToaster, defineCheck };\nexport { toast } from './toast';\nexport { SPINNER_VARIANTS } from './spinner';\nexport type { SpinnerVariant } from './spinner';\nexport type { ToastOptions, ToastHandle, ToastType } from './toast';\nexport type { UsaSpinnerElement, UsaSkeletonElement, UsaProgressElement, UsaToasterElement, UsaCheckElement };\n\n/** Register every component of this category under its default tag. */\nexport function defineFeedbackComponents(): void {\n defineSpinner();\n defineSkeleton();\n defineProgress();\n defineToaster();\n defineCheck();\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-spinner': UsaSpinnerElement;\n 'usa-skeleton': UsaSkeletonElement;\n 'usa-progress': UsaProgressElement;\n 'usa-toaster': UsaToasterElement;\n 'usa-check': UsaCheckElement;\n }\n}\n"],"names":["defineElement","kindOf","css","EASE_OUT","clamp","FLUENT_DECELERATE","EASE_SPRING"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { u as defineElement, F as kindOf, D as EASE_OUT, k as clamp, H as FLUENT_DECELERATE, E as EASE_SPRING } from '../chunks/base-BnRyfuyM.js';
1
+ import { f as defineElement, F as kindOf, D as EASE_OUT, d as clamp, H as FLUENT_DECELERATE, E as EASE_SPRING } from '../chunks/base-BTev8qxg.js';
2
2
 
3
3
  var css$4 = "usa-spinner{--usa-spinner-size:32px;--usa-spinner-color:currentColor;position:relative;display:inline-block;vertical-align:middle;flex:none;width:var(--usa-spinner-size);height:var(--usa-spinner-size);color:var(--usa-spinner-color)}usa-spinner i{position:absolute;display:block}usa-spinner[paused] *,usa-spinner[paused] *::after{animation-play-state:paused !important}usa-spinner svg{width:100%;height:100%;animation:usa-spin 2s linear infinite;overflow:visible}usa-spinner svg circle{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-dasharray:0.5 100;stroke-dashoffset:0;animation:usa-ring-arc 1.6s ease-in-out infinite}@keyframes usa-spin{to{transform:rotate(360deg)}}@keyframes usa-ring-arc{0%{stroke-dasharray:0.5 100;stroke-dashoffset:0}50%{stroke-dasharray:62 100;stroke-dashoffset:-20}100%{stroke-dasharray:0.5 100;stroke-dashoffset:-99}}usa-spinner[data-kind=\"windows\"] i{inset:0;opacity:0;animation:usa-orbit 5.5s infinite}usa-spinner[data-kind=\"windows\"] i::after{content:\"\";position:absolute;left:50%;top:0;width:12%;height:12%;margin-left:-6%;border-radius:50%;background:currentColor}usa-spinner[data-kind=\"windows\"] i:nth-child(2){animation-delay:240ms;--n:1}usa-spinner[data-kind=\"windows\"] i:nth-child(3){animation-delay:480ms;--n:2}usa-spinner[data-kind=\"windows\"] i:nth-child(4){animation-delay:720ms;--n:3}usa-spinner[data-kind=\"windows\"] i:nth-child(5){animation-delay:960ms;--n:4}@keyframes usa-orbit{0%{transform:rotate(225deg);opacity:1;animation-timing-function:ease-out}7%{transform:rotate(345deg);animation-timing-function:linear}30%{transform:rotate(455deg);animation-timing-function:ease-in-out}39%{transform:rotate(690deg);animation-timing-function:linear}70%{transform:rotate(815deg);opacity:1;animation-timing-function:ease-out}75%{transform:rotate(945deg);animation-timing-function:ease-out}76%,100%{transform:rotate(945deg);opacity:0}}usa-spinner[data-kind=\"ring\"] i{inset:0;border-radius:50%;border:calc(var(--usa-spinner-size) / 9) solid color-mix(in srgb,currentColor 20%,transparent);border-top-color:currentColor;animation:usa-spin 0.8s linear infinite}usa-spinner[data-kind=\"dots\"]{display:inline-flex;align-items:center;justify-content:space-between;height:calc(var(--usa-spinner-size) / 2.5)}usa-spinner[data-kind=\"dots\"] i{position:static;width:22%;aspect-ratio:1;border-radius:50%;background:currentColor;animation:usa-dot 1.2s ease-in-out infinite}usa-spinner[data-kind=\"dots\"] i:nth-child(2){animation-delay:0.15s}usa-spinner[data-kind=\"dots\"] i:nth-child(3){animation-delay:0.3s}@keyframes usa-dot{0%,60%,100%{transform:translateY(0);opacity:0.35}30%{transform:translateY(-70%);opacity:1}}usa-spinner[data-kind=\"pulse\"] i{inset:0;border-radius:50%;background:currentColor;opacity:0;animation:usa-pulse 1.6s cubic-bezier(0.22,1,0.36,1) infinite}usa-spinner[data-kind=\"pulse\"] i:nth-child(2){animation-delay:0.8s}@keyframes usa-pulse{from{transform:scale(0.1);opacity:0.8}to{transform:scale(1);opacity:0}}usa-spinner[data-kind=\"bars\"]{display:inline-flex;align-items:center;justify-content:space-between}usa-spinner[data-kind=\"bars\"] i{position:static;width:16%;height:100%;border-radius:2px;background:currentColor;transform:scaleY(0.35);animation:usa-bar 1s ease-in-out infinite}usa-spinner[data-kind=\"bars\"] i:nth-child(2){animation-delay:0.12s}usa-spinner[data-kind=\"bars\"] i:nth-child(3){animation-delay:0.24s}usa-spinner[data-kind=\"bars\"] i:nth-child(4){animation-delay:0.36s}@keyframes usa-bar{0%,100%{transform:scaleY(0.35)}40%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){usa-spinner svg,usa-spinner i,usa-spinner i::after{animation:usa-calm 2.4s ease-in-out infinite !important}usa-spinner[data-kind=\"windows\"] i{transform:rotate(calc(var(--n,0) * 72deg))}usa-spinner svg circle{animation:none;stroke-dasharray:30 100}}@keyframes usa-calm{0%,100%{opacity:1}50%{opacity:0.4}}";
4
4