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":"text.cjs","sources":["../../src/components/text/typewriter.ts","../../src/components/text/split.ts","../../src/components/text/split-text.ts","../../src/components/text/scramble.ts","../../src/components/text/counter.ts","../../src/components/text/shimmer-text.ts","../../src/components/text/text-rotate.ts","../../src/components/text/text-fx.ts","../../src/components/text/index.ts"],"sourcesContent":["import { defineElement, srText, type UsaElement } from '../base';\nimport css from './typewriter.css?raw';\n\n/**\n * `<usa-typewriter>` — types text character by character, optionally cycling\n * through several phrases (typing, pausing, deleting).\n *\n * Attributes: `text` (default: the element's text), `words` (phrases\n * separated by `|`, overrides `text`), `speed` (ms per character, 55),\n * `delete-speed` (ms, 30), `pause` (ms before deleting, 1400), `delay`\n * (ms, 0), `loop`, `cursor=\"false\"` to hide the caret, `start`\n * (`view` | `load` | `manual`, default `view`). The full text is exposed to\n * assistive tech via `aria-label`. Event: `usa:complete` (one pass done).\n * Reduced motion: the text appears at once.\n */\nexport interface UsaTypewriterElement extends UsaElement {\n /** Phrases being typed. */\n readonly phrases: string[];\n start(): void;\n stop(): void;\n restart(): void;\n}\n\nexport function defineTypewriter(tag = 'usa-typewriter'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaTypewriter extends Base {\n static get observedAttributes(): string[] {\n return ['text', 'words'];\n }\n\n private _source: string | null = null;\n private _out: HTMLElement | null = null;\n private _timer: ReturnType<typeof setTimeout> | 0 = 0;\n private _running = false;\n\n get phrases(): string[] {\n const words = this.getAttribute('words');\n if (words) return words.split('|').map((w) => w.trim()).filter(Boolean);\n return [this.getAttribute('text') ?? this._source ?? ''];\n }\n\n mount(): void {\n if (this._source === null) this._source = (this.textContent || '').trim();\n const phrases = this.phrases;\n const sr = srText(phrases.join(', '));\n this._out = document.createElement('span');\n this._out.className = 'usa-tw-text';\n this._out.setAttribute('aria-hidden', 'true');\n const caret = document.createElement('span');\n caret.className = 'usa-tw-caret';\n caret.setAttribute('aria-hidden', 'true');\n this.replaceChildren(sr, this._out, caret);\n this.toggleAttribute('data-no-cursor', this.getAttribute('cursor') === 'false');\n if (this.reduced) {\n this._out.textContent = phrases[0] || '';\n return;\n }\n const start = this.str('start', 'view');\n if (start === 'load') this.start();\n else if (start === 'view') {\n this.inView((visible) => {\n if (visible && !this._running && !this._out?.textContent) this.start();\n });\n }\n }\n\n unmount(): void {\n this.stop();\n }\n\n stop(): void {\n clearTimeout(this._timer as ReturnType<typeof setTimeout>);\n this._timer = 0;\n this._running = false;\n this.removeAttribute('data-typing');\n }\n\n restart(): void {\n this.stop();\n if (this._out) this._out.textContent = '';\n this.start();\n }\n\n start(): void {\n if (this._running || !this._out) return;\n const out = this._out;\n const phrases = this.phrases;\n if (this.reduced) {\n out.textContent = phrases[0] || '';\n return;\n }\n this._running = true;\n const speed = this.num('speed', 55);\n const del = this.num('delete-speed', 30);\n const pause = this.num('pause', 1400);\n const loop = this.flag('loop') || phrases.length > 1;\n let p = 0;\n let i = 0;\n let deleting = false;\n const tick = () => {\n const word = phrases[p] || '';\n if (!deleting) {\n i++;\n out.textContent = word.slice(0, i);\n this.setAttribute('data-typing', '');\n if (i >= word.length) {\n this.removeAttribute('data-typing');\n const last = p === phrases.length - 1;\n if (last) this.emit('complete');\n if (!loop && last) {\n this._running = false;\n return;\n }\n deleting = true;\n this._timer = setTimeout(tick, pause);\n return;\n }\n this._timer = setTimeout(tick, speed * (0.6 + Math.random() * 0.8));\n } else {\n i--;\n out.textContent = word.slice(0, Math.max(0, i));\n if (i <= 0) {\n deleting = false;\n p = (p + 1) % phrases.length;\n this._timer = setTimeout(tick, speed * 4);\n return;\n }\n this._timer = setTimeout(tick, del);\n }\n };\n this._timer = setTimeout(tick, this.num('delay', 0));\n }\n },\n { id: 'typewriter', text: css }\n );\n}\n","import { timeline, type Timeline } from '../timeline/core';\n\n/**\n * `splitText()` (4.3) — split an element's text into characters, words and / or\n * lines, ready for per-unit choreography with `timeline()`.\n *\n * - Grapheme- and word-aware via `Intl.Segmenter` when available: emoji and\n * combining marks stay whole; Chinese / Japanese / Korean text is split into\n * real words (or one unit per character without `Segmenter`).\n * - RTL aware: Arabic-script text (cursive, letters join) is never split\n * below the word, so shaping is preserved; Hebrew and other RTL scripts\n * split per character. Units stay in logical (reading) order.\n * - Nested inline markup (`<em>`, `<a>`, `<br>`) is preserved.\n * - Accessible: the original text stays available to assistive tech via a\n * visually hidden copy; the split spans are `aria-hidden`.\n */\nexport type SplitBy = 'char' | 'word' | 'line';\n\nexport interface SplitTextOptions {\n /** What to split into: `'char'`, `'word'`, `'line'` or several, e.g. `['word', 'line']`. Default `'char'` (words are always wrapped too). */\n by?: SplitBy | SplitBy[] | string;\n /** Locale for `Intl.Segmenter` (default: the element's `lang`, else the document's). */\n locale?: string;\n /** Class prefix (default `usa-split`): units get `usa-split-char` / `-word` / `-line`. */\n className?: string;\n}\n\nexport interface SplitResult {\n chars: HTMLElement[];\n words: HTMLElement[];\n lines: HTMLElement[];\n /** `'rtl'` or `'ltr'` — the direction the split ran in. */\n direction: 'ltr' | 'rtl';\n /** Re-measure lines (call after a resize or font load). */\n relayout(): HTMLElement[];\n /** Restore the original markup. */\n revert(): void;\n}\n\nconst CJK = /[\\u2E80-\\u2FFF\\u3000-\\u303F\\u3040-\\u30FF\\u3100-\\u312F\\u3130-\\u318F\\u31A0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\uF900-\\uFAFF\\uFF00-\\uFFEF]/;\n/** Scripts whose letters join (splitting them would break shaping). */\nexport const JOINING_SCRIPT = /[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/;\nconst RTL = /[\\u0590-\\u08FF\\uFB1D-\\uFDFF\\uFE70-\\uFEFF]/;\nconst SR = 'position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0';\n\nfunction segmenter(locale: string | undefined, granularity: 'grapheme' | 'word'): { segment(s: string): Iterable<{ segment: string; isWordLike?: boolean }> } | null {\n const S = (globalThis as any).Intl?.Segmenter;\n if (typeof S !== 'function') return null;\n try {\n return new S(locale || undefined, { granularity });\n } catch {\n return null;\n }\n}\n\n/** Grapheme clusters of `s` (emoji / combining marks stay whole). */\nexport function graphemes(s: string, locale?: string): string[] {\n const seg = segmenter(locale, 'grapheme');\n if (seg) return Array.from(seg.segment(s), (x) => x.segment);\n return Array.from(s);\n}\n\n/**\n * Word-ish tokens of `s`, whitespace kept as separate tokens. CJK text is\n * segmented into words with `Intl.Segmenter`, or per character without it.\n */\nexport function words(s: string, locale?: string): string[] {\n const seg = segmenter(locale, 'word');\n const out: string[] = [];\n if (seg) {\n for (const x of seg.segment(s)) {\n const last = out[out.length - 1];\n // glue punctuation onto the previous word so it never starts a line alone\n if (!x.isWordLike && !/^\\s+$/.test(x.segment) && last && !/^\\s+$/.test(last)) out[out.length - 1] = last + x.segment;\n else out.push(x.segment);\n }\n return out;\n }\n for (const part of s.split(/(\\s+)/)) {\n if (!part) continue;\n if (/^\\s+$/.test(part) || !CJK.test(part)) out.push(part);\n else {\n let buf = '';\n for (const ch of Array.from(part)) {\n if (CJK.test(ch)) {\n if (buf) out.push(buf), (buf = '');\n out.push(ch);\n } else if (/[\\p{P}]/u.test(ch) && out.length) out[out.length - 1] += ch;\n else buf += ch;\n }\n if (buf) out.push(buf);\n }\n }\n return out;\n}\n\nfunction dirOf(el: HTMLElement, text: string): 'ltr' | 'rtl' {\n const attr = el.closest?.('[dir]')?.getAttribute('dir');\n if (attr === 'rtl' || attr === 'ltr') return attr;\n try {\n const d = getComputedStyle(el).direction;\n if (d === 'rtl') return 'rtl';\n } catch {\n /* no layout */\n }\n return RTL.test(text) && !/[A-Za-z]/.test(text.replace(RTL, '')) ? 'rtl' : 'ltr';\n}\n\nexport function splitText(el: HTMLElement, options: SplitTextOptions = {}): SplitResult {\n const by = new Set<string>((Array.isArray(options.by) ? options.by : String(options.by ?? 'char').split(/[\\s,]+/)).filter(Boolean));\n const cls = options.className || 'usa-split';\n const locale = options.locale || el.closest?.('[lang]')?.getAttribute('lang') || undefined;\n const original = Array.from(el.childNodes).map((n) => n.cloneNode(true));\n const text = el.textContent || '';\n const direction = dirOf(el, text);\n const chars: HTMLElement[] = [];\n const wordEls: HTMLElement[] = [];\n let lines: HTMLElement[] = [];\n const doc = el.ownerDocument;\n\n const span = (c: string, t?: string) => {\n const s = doc.createElement('span');\n s.className = c;\n if (t !== undefined) s.textContent = t;\n return s;\n };\n\n const splitNode = (node: Node) => {\n if (node.nodeType === 3) {\n const frag = doc.createDocumentFragment();\n for (const w of words(node.nodeValue || '', locale)) {\n if (/^\\s+$/.test(w)) {\n frag.append(doc.createTextNode(w));\n continue;\n }\n const wordEl = span(`${cls}-word`);\n wordEl.style.display = 'inline-block';\n wordEl.style.whiteSpace = 'nowrap';\n wordEl.dataset.index = String(wordEls.length);\n wordEls.push(wordEl);\n // Arabic script joins its letters: keep the word whole (shaping), even in char mode.\n if (by.has('char') && !JOINING_SCRIPT.test(w)) {\n for (const g of graphemes(w, locale)) {\n const c = span(`${cls}-char`, g);\n c.style.display = 'inline-block';\n c.dataset.index = String(chars.length);\n chars.push(c);\n wordEl.append(c);\n }\n } else {\n wordEl.textContent = w;\n if (by.has('char')) {\n wordEl.dataset.whole = '';\n chars.push(wordEl);\n }\n }\n frag.append(wordEl);\n }\n node.parentNode!.replaceChild(frag, node);\n } else if (node.nodeType === 1 && !/^(BR|SCRIPT|STYLE|SVG|IMG)$/i.test((node as Element).tagName)) {\n Array.from(node.childNodes).forEach(splitNode);\n }\n };\n\n const wrap = doc.createElement('span');\n wrap.setAttribute('aria-hidden', 'true');\n wrap.className = `${cls}-body`;\n original.forEach((n) => wrap.append(n.cloneNode(true)));\n Array.from(wrap.childNodes).forEach(splitNode);\n const sr = span(`${cls}-sr`, text.replace(/\\s+/g, ' ').trim());\n sr.setAttribute('style', SR);\n el.replaceChildren(sr, wrap);\n el.setAttribute('data-split', [...by].join(' '));\n if (direction === 'rtl') el.setAttribute('data-split-dir', 'rtl');\n\n const relayout = (): HTMLElement[] => {\n // unwrap old lines\n for (const l of lines) l.replaceWith(...Array.from(l.childNodes));\n lines = [];\n if (!by.has('line') || !wordEls.length) return lines;\n const groups: HTMLElement[][] = [];\n let lastTop: number | null = null;\n for (const w of wordEls) {\n const top = Math.round(w.offsetTop);\n if (lastTop === null || Math.abs(top - lastTop) > 2) groups.push([]);\n groups[groups.length - 1].push(w);\n lastTop = top;\n }\n groups.forEach((g, i) => {\n // only group words that share a parent (inline markup keeps its words)\n const parent = g[0].parentNode!;\n const same = g.filter((w) => w.parentNode === parent);\n const line = span(`${cls}-line`);\n line.style.display = 'inline-block';\n line.dataset.index = String(i);\n parent.insertBefore(line, same[0]);\n let n: ChildNode | null = same[0];\n const end = same[same.length - 1];\n while (n) {\n const next: ChildNode | null = n.nextSibling;\n line.append(n);\n if (n === end) break;\n n = next;\n }\n // keep the space between lines outside the line box\n lines.push(line);\n });\n return lines;\n };\n relayout();\n\n return {\n chars,\n words: wordEls,\n get lines() {\n return lines;\n },\n direction,\n relayout,\n revert() {\n el.replaceChildren(...original.map((n) => n.cloneNode(true)));\n el.removeAttribute('data-split');\n el.removeAttribute('data-split-dir');\n },\n } as SplitResult;\n}\n\nexport type SplitFrom = 'start' | 'end' | 'center' | 'edges' | 'random';\n\n/** Order indices `0…n-1` by choreography: from the start, end, center outwards, edges inwards, or random (seeded). */\nexport function splitOrder(n: number, from: SplitFrom = 'start', seed = 1): number[] {\n const idx = Array.from({ length: n }, (_, i) => i);\n const mid = (n - 1) / 2;\n if (from === 'end') return idx.map((i) => n - 1 - i);\n if (from === 'center') return idx.map((i) => Math.round(Math.abs(i - mid) * 2) / 2);\n if (from === 'edges') return idx.map((i) => Math.round((mid - Math.abs(i - mid)) * 2) / 2);\n if (from === 'random') {\n let s = seed;\n const r = () => ((s = (s * 16807) % 2147483647) / 2147483647);\n const shuffled = idx.slice().sort(() => r() - 0.5);\n const rank: number[] = [];\n shuffled.forEach((v, i) => (rank[v] = i));\n return rank;\n }\n return idx;\n}\n\nexport interface SplitTimelineOptions extends SplitTextOptions {\n /** Which units to animate (default: the finest in `by`). */\n unit?: 'char' | 'word' | 'line';\n /** Timeline preset name or keyframes (default `'fade-up'`). */\n preset?: string | Keyframe[];\n /** ms between units (default 30 for chars, 80 for words, 140 for lines). */\n stagger?: number;\n /** Duration per unit in ms or a motion token name (default 500). */\n duration?: number | string;\n easing?: string;\n /** Choreography order (default `'start'` — reading order, also for RTL). */\n from?: SplitFrom;\n}\n\n/**\n * Split `el` and build a `timeline()` with one step per unit — play it,\n * `scrub()` it with scroll, `reverse()` or `seek()` it.\n *\n * ```ts\n * const { timeline: tl } = splitTimeline(h1, { by: 'char', preset: 'blur', from: 'center' });\n * tl.play();\n * ```\n */\nexport function splitTimeline(el: HTMLElement, options: SplitTimelineOptions = {}): { split: SplitResult; timeline: Timeline } {\n const split = splitText(el, options);\n const by = Array.isArray(options.by) ? options.by : String(options.by ?? 'char').split(/[\\s,]+/);\n const unit = options.unit || (by.includes('char') ? 'char' : by.includes('word') ? 'word' : 'line');\n const units = unit === 'char' ? split.chars : unit === 'word' ? split.words : split.lines;\n const stagger = options.stagger ?? (unit === 'char' ? 30 : unit === 'word' ? 80 : 140);\n const order = splitOrder(units.length, options.from);\n const tl = timeline({ defaults: { duration: options.duration ?? 500, easing: options.easing } });\n units.forEach((u, i) => tl.to(u, (options.preset as any) || 'fade-up', { at: order[i] * stagger }));\n tl.seek(0);\n return { split, timeline: tl };\n}\n","import { defineElement, srText, type UsaElement } from '../base';\nimport css from './split-text.css?raw';\nimport { graphemes, words, splitOrder, JOINING_SCRIPT, type SplitFrom } from './split';\n\n/**\n * `<usa-split-text>` — splits its text into words or characters and reveals\n * them in a cascade (pure CSS animation per unit, transform / opacity /\n * filter only). Words never break across lines.\n *\n * 4.3: `Intl.Segmenter`-aware (emoji, CJK words), Arabic-script words are\n * never split below the word, `by=\"lines\"` reveals line by line, and `from`\n * (`start` · `end` · `center` · `edges` · `random`) sets the cascade order.\n *\n * Attributes: `by` (`chars` | `words` | `lines`, default `chars`), `effect`\n * (`rise` | `fade` | `blur` | `flip` | `pop`, default `rise`), `stagger`\n * (ms between units, 28 for chars / 70 for words), `duration` (ms, 620),\n * `delay` (ms, 0), `trigger` (`view` | `load` | `manual`, default `view`),\n * `repeat`. The original text stays readable via `aria-label`.\n * Event: `usa:complete`.\n */\nexport interface UsaSplitTextElement extends UsaElement {\n readonly units: HTMLElement[];\n play(): void;\n reset(): void;\n}\n\nexport function defineSplitText(tag = 'usa-split-text'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaSplitText extends Base {\n static get observedAttributes(): string[] {\n return ['by', 'text'];\n }\n\n private _source: string | null = null;\n private _timer: ReturnType<typeof setTimeout> | 0 = 0;\n private _steps = 0;\n\n get units(): HTMLElement[] {\n return Array.from(this.querySelectorAll<HTMLElement>('.usa-split-unit'));\n }\n\n mount(): void {\n if (this._source === null) this._source = this.getAttribute('text') ?? (this.textContent || '').replace(/\\s+/g, ' ').trim();\n const text = this.getAttribute('text') ?? this._source;\n const mode = this.str('by', 'chars');\n const byWords = mode !== 'chars';\n const lang = this.closest('[lang]')?.getAttribute('lang') || undefined;\n const frag = document.createDocumentFragment();\n frag.append(srText(text));\n const units: HTMLElement[] = [];\n for (const word of words(text, lang)) {\n if (/^\\s+$/.test(word)) {\n frag.append(' ');\n continue;\n }\n const wordEl = document.createElement('span');\n wordEl.className = 'usa-split-word';\n wordEl.setAttribute('aria-hidden', 'true');\n const parts = byWords || JOINING_SCRIPT.test(word) ? [word] : graphemes(word, lang);\n for (const part of parts) {\n const u = document.createElement('span');\n u.className = 'usa-split-unit';\n u.textContent = part;\n units.push(u);\n wordEl.append(u);\n }\n frag.append(wordEl);\n }\n this.replaceChildren(frag);\n // cascade order: per unit, or per line for by=\"lines\"\n let rank = units.map((_, k) => k);\n if (mode === 'lines') {\n let line = -1;\n let top: number | null = null;\n rank = units.map((u) => {\n const t = Math.round((u.parentElement as HTMLElement).offsetTop);\n if (top === null || Math.abs(t - top) > 2) line++;\n top = t;\n return line;\n });\n }\n const groups = Math.max(0, ...rank) + 1;\n const order = splitOrder(groups, this.str('from', 'start') as SplitFrom);\n units.forEach((u, k) => u.style.setProperty('--i', String(order[rank[k]] ?? 0)));\n const i = Math.max(0, ...units.map((_, k) => order[rank[k]] ?? 0)) + 1;\n this._steps = i;\n this.style.setProperty('--usa-split-stagger', `${this.num('stagger', mode === 'lines' ? 140 : byWords ? 70 : 28)}ms`);\n this.style.setProperty('--usa-split-duration', `${this.num('duration', 620)}ms`);\n this.style.setProperty('--usa-split-delay', `${this.num('delay', 0)}ms`);\n this.style.setProperty('--usa-split-count', String(i));\n if (this.reduced) {\n this.setAttribute('data-state', 'shown');\n return;\n }\n this.setAttribute('data-state', 'hidden');\n const trigger = this.str('trigger', 'view');\n if (trigger === 'load') this.play();\n else if (trigger === 'view') {\n this.inView((visible) => {\n if (visible && this.getAttribute('data-state') === 'hidden') this.play();\n else if (!visible && this.flag('repeat')) this.reset();\n }, { threshold: 0.2 });\n }\n }\n\n unmount(): void {\n clearTimeout(this._timer as ReturnType<typeof setTimeout>);\n }\n\n play(): void {\n clearTimeout(this._timer as ReturnType<typeof setTimeout>);\n if (this.reduced) {\n this.setAttribute('data-state', 'shown');\n return;\n }\n // Restart the CSS animations\n this.setAttribute('data-state', 'hidden');\n void this.offsetWidth;\n this.setAttribute('data-state', 'play');\n const by = this.str('by', 'chars');\n const total = this.num('delay', 0) + this.num('duration', 620) + Math.max(0, this._steps - 1) * this.num('stagger', by === 'lines' ? 140 : by === 'words' ? 70 : 28);\n this._timer = setTimeout(() => {\n this.setAttribute('data-state', 'shown');\n this.emit('complete');\n }, total);\n }\n\n reset(): void {\n clearTimeout(this._timer as ReturnType<typeof setTimeout>);\n this.setAttribute('data-state', this.reduced ? 'shown' : 'hidden');\n }\n },\n { id: 'split-text', text: css }\n );\n}\n","import { defineElement, srText, raf, caf, now, type UsaElement } from '../base';\n\nconst GLYPHS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#%&*+=<>/\\\\?!';\n\n/**\n * `<usa-scramble>` — \"decodes\" text out of random glyphs, left to right.\n *\n * Attributes: `text` (default: the element's text), `duration` (ms, 900),\n * `chars` (glyph set), `trigger` (`view` | `hover` | `load` | `manual`,\n * default `view`). Spaces and punctuation stay in place. Uses a monospace-\n * friendly fixed width per glyph only if you style it so; the element sets\n * nothing that causes reflow beyond its own text. Event: `usa:complete`.\n * Reduced motion: shows the final text.\n */\nexport interface UsaScrambleElement extends UsaElement {\n play(): Promise<void>;\n}\n\n/** One frame of the scramble: the first `progress` share is resolved. */\nexport function scrambleFrame(text: string, progress: number, glyphs = GLYPHS, rnd: () => number = Math.random): string {\n const done = Math.floor(text.length * progress);\n let out = '';\n for (let i = 0; i < text.length; i++) {\n const ch = text[i];\n out += i < done || /\\s|[.,:;!?'\"()\\-–—]/.test(ch) ? ch : glyphs[Math.floor(rnd() * glyphs.length)];\n }\n return out;\n}\n\nexport function defineScramble(tag = 'usa-scramble'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaScramble extends Base {\n static get observedAttributes(): string[] {\n return ['text'];\n }\n\n private _source: string | null = null;\n private _out: HTMLElement | null = null;\n private _frame = 0;\n\n private get text(): string {\n return this.getAttribute('text') ?? this._source ?? '';\n }\n\n mount(): void {\n if (this._source === null) this._source = (this.textContent || '').trim();\n this._out = document.createElement('span');\n this._out.setAttribute('aria-hidden', 'true');\n this._out.textContent = this.text;\n this.replaceChildren(srText(this.text), this._out);\n if (this.reduced) return;\n const trigger = this.str('trigger', 'view');\n if (trigger === 'load') this.play();\n else if (trigger === 'hover') {\n this.listen(this, 'pointerenter', () => this.play());\n this.listen(this, 'focusin', () => this.play());\n } else if (trigger === 'view') {\n let played = false;\n this.inView((v) => {\n if (v && !played) {\n played = true;\n this.play();\n }\n });\n }\n }\n\n unmount(): void {\n caf(this._frame);\n this._frame = 0;\n }\n\n play(): Promise<void> {\n caf(this._frame);\n const out = this._out;\n const text = this.text;\n if (!out || this.reduced) {\n if (out) out.textContent = text;\n return Promise.resolve();\n }\n const duration = this.num('duration', 900);\n const glyphs = this.str('chars', GLYPHS) || GLYPHS;\n const t0 = now();\n let last = -1;\n return new Promise((resolve) => {\n const step = () => {\n const p = Math.min(1, Math.max(0, now() - t0) / duration);\n // ~30 fps glyph churn is plenty and halves DOM writes\n const bucket = Math.floor(p * duration / 33);\n if (bucket !== last || p === 1) {\n last = bucket;\n out.textContent = p === 1 ? text : scrambleFrame(text, p, glyphs);\n }\n if (p < 1) this._frame = raf(step);\n else {\n this._frame = 0;\n this.emit('complete');\n resolve();\n }\n };\n this._frame = raf(step);\n });\n }\n },\n undefined\n );\n}\n","import { defineElement, raf, caf, now, type UsaElement } from '../base';\nimport css from './counter.css?raw';\n\n/**\n * `<usa-counter>` — counts up (or down) to a number when it scrolls into view.\n *\n * Attributes: `to` (target, required), `from` (0), `duration` (ms, 1600),\n * `decimals` (0), `locale` (default: the document language), `prefix`,\n * `suffix`, `grouping=\"false\"` (no thousands separators), `start`\n * (`view` | `load` | `manual`). Setting the `value` property animates from\n * the current value — handy for live dashboards. Uses tabular digits so\n * the width does not jump. Event: `usa:complete`. Reduced motion: jumps.\n */\nexport interface UsaCounterElement extends UsaElement {\n /** Current target; setting it animates to the new number. */\n value: number;\n /** Animate to `to` (default: the `to` attribute). */\n play(to?: number): Promise<void>;\n format(n: number): string;\n}\n\n/** easeOutExpo */\nexport const easeOutExpo = (t: number): number => (t >= 1 ? 1 : 1 - Math.pow(2, -10 * t));\n\nexport function defineCounter(tag = 'usa-counter'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaCounter extends Base {\n static get observedAttributes(): string[] {\n return ['to', 'decimals', 'locale', 'prefix', 'suffix', 'grouping'];\n }\n\n private _current = NaN;\n private _target = NaN;\n private _frame = 0;\n private _fmt: Intl.NumberFormat | null = null;\n\n get value(): number {\n return Number.isNaN(this._target) ? this.num('to', 0) : this._target;\n }\n set value(v: number) {\n this.play(Number(v));\n }\n\n format(n: number): string {\n if (!this._fmt) {\n const d = Math.max(0, Math.min(20, this.num('decimals', 0)));\n const locale = this.getAttribute('locale') || (typeof document !== 'undefined' && document.documentElement.lang) || undefined;\n try {\n this._fmt = new Intl.NumberFormat(locale, { minimumFractionDigits: d, maximumFractionDigits: d, useGrouping: this.getAttribute('grouping') !== 'false' });\n } catch {\n this._fmt = new Intl.NumberFormat(undefined, { minimumFractionDigits: d, maximumFractionDigits: d });\n }\n }\n return `${this.str('prefix')}${this._fmt.format(n)}${this.str('suffix')}`;\n }\n\n private render(n: number): void {\n this._current = n;\n this.textContent = this.format(n);\n }\n\n changed(name: string): void {\n this._fmt = null;\n if (name === 'to') this.play();\n else this.render(Number.isNaN(this._current) ? this.num('from', 0) : this._current);\n }\n\n mount(): void {\n this._fmt = null;\n const to = this.num('to', 0);\n if (this.reduced) {\n this._target = to;\n this.render(to);\n return;\n }\n if (Number.isNaN(this._current)) this.render(this.num('from', 0));\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) => {\n if (v && !done) {\n done = true;\n this.play();\n }\n }, { threshold: 0.4 });\n }\n }\n\n unmount(): void {\n caf(this._frame);\n this._frame = 0;\n }\n\n play(to = this.num('to', 0)): Promise<void> {\n caf(this._frame);\n this._target = to;\n const from = Number.isNaN(this._current) ? this.num('from', 0) : this._current;\n if (this.reduced || from === to || !this.isConnected) {\n this.render(to);\n this.emit('complete', { value: to });\n return Promise.resolve();\n }\n const duration = this.num('duration', 1600);\n const t0 = now();\n return new Promise((resolve) => {\n const step = () => {\n const t = Math.min(1, Math.max(0, now() - t0) / duration);\n this.render(from + (to - from) * easeOutExpo(t));\n if (t < 1) this._frame = raf(step);\n else {\n this._frame = 0;\n this.render(to);\n this.emit('complete', { value: to });\n resolve();\n }\n };\n this._frame = raf(step);\n });\n }\n },\n { id: 'counter', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './shimmer-text.css?raw';\n\n/**\n * `<usa-shimmer-text>` — a light sweep across gradient-filled text (CSS\n * only; the element just maps attributes to custom properties).\n *\n * Attributes: `duration` (ms, 2600), `color` (base text colour), `shine`\n * (highlight colour), `angle` (deg, 110). Or style `--usa-shimmer-*`\n * directly. Reduced motion: static gradient text.\n */\nexport type UsaShimmerTextElement = UsaElement;\n\nexport function defineShimmerText(tag = 'usa-shimmer-text'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaShimmerText extends Base {\n static get observedAttributes(): string[] {\n return ['duration', 'color', 'shine', 'angle'];\n }\n\n mount(): void {\n const set = (attr: string, prop: string, unit = '') => {\n const v = this.getAttribute(attr);\n if (v !== null) this.style.setProperty(prop, v + unit);\n else this.style.removeProperty(prop);\n };\n set('duration', '--usa-shimmer-duration', 'ms');\n set('color', '--usa-shimmer-color');\n set('shine', '--usa-shimmer-shine');\n set('angle', '--usa-shimmer-angle', 'deg');\n }\n },\n { id: 'shimmer-text', text: css }\n );\n}\n","import { defineElement, srText, EASE_SPRING, EASE_OUT, type UsaElement } from '../base';\nimport css from './text-rotate.css?raw';\n\n/**\n * `<usa-text-rotate>` — cycles through words in place (\"Build *fast* /\n * *small* / *typed* apps\"). All words share one grid cell, so the width is\n * that of the longest word and nothing around it reflows.\n *\n * Attributes: `words` (separated by `|`, default: the element's text split\n * on `|`), `interval` (ms, 2200), `effect` (`slide` | `fade` | `flip` |\n * `blur`, default `slide`), `paused`. Pauses while off-screen and on hover\n * is not needed. Event: `usa:change` (`detail.index`, `detail.word`).\n * Reduced motion: words still change, without movement (fade only).\n */\nexport interface UsaTextRotateElement extends UsaElement {\n readonly index: number;\n next(): void;\n}\n\nexport function defineTextRotate(tag = 'usa-text-rotate'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaTextRotate extends Base {\n static get observedAttributes(): string[] {\n return ['words', 'interval', 'paused'];\n }\n\n private _source: string | null = null;\n private _index = 0;\n private _timer: ReturnType<typeof setInterval> | 0 = 0;\n private _visible = true;\n\n get index(): number {\n return this._index;\n }\n\n private get words(): string[] {\n return (this.getAttribute('words') ?? this._source ?? '').split('|').map((w) => w.trim()).filter(Boolean);\n }\n\n mount(): void {\n if (this._source === null) this._source = (this.textContent || '').trim();\n const words = this.words;\n this.replaceChildren(\n srText(words.join(', ')),\n ...words.map((w, i) => {\n const s = document.createElement('span');\n s.className = 'usa-rotate-word';\n s.textContent = w;\n s.setAttribute('aria-hidden', 'true');\n if (i !== this._index) s.setAttribute('data-hidden', '');\n return s;\n })\n );\n if (this._index >= words.length) this._index = 0;\n if (words.length < 2) return;\n this.inView((v) => (this._visible = v));\n if (!this.flag('paused')) {\n this._timer = setInterval(() => {\n if (this._visible && !(typeof document !== 'undefined' && document.hidden)) this.next();\n }, Math.max(400, this.num('interval', 2200)));\n }\n }\n\n unmount(): void {\n clearInterval(this._timer as ReturnType<typeof setInterval>);\n this._timer = 0;\n }\n\n next(): void {\n const els = Array.from(this.querySelectorAll<HTMLElement>('.usa-rotate-word'));\n if (els.length < 2) return;\n const prev = els[this._index];\n this._index = (this._index + 1) % els.length;\n const cur = els[this._index];\n prev.setAttribute('data-hidden', '');\n cur.removeAttribute('data-hidden');\n const effect = this.reduced ? 'fade' : this.str('effect', 'slide');\n const [inFrom, outTo] =\n effect === 'fade'\n ? [{ opacity: 0 }, { opacity: 0 }]\n : effect === 'flip'\n ? [{ opacity: 0, transform: 'perspective(400px) rotateX(-90deg)' }, { opacity: 0, transform: 'perspective(400px) rotateX(90deg)' }]\n : effect === 'blur'\n ? [{ opacity: 0, filter: 'blur(8px)' }, { opacity: 0, filter: 'blur(8px)' }]\n : [{ opacity: 0, transform: 'translateY(0.8em)' }, { opacity: 0, transform: 'translateY(-0.8em)' }];\n const neutral = { opacity: 1, transform: 'none', filter: 'none' };\n const pick = (f: Keyframe) => Object.fromEntries(Object.keys(f).map((k) => [k, (neutral as any)[k]]));\n this.motion(prev, [{ ...pick(outTo) }, outTo], { duration: 380, easing: EASE_OUT });\n this.motion(cur, [inFrom, pick(inFrom)], { duration: 520, easing: effect === 'slide' ? EASE_SPRING : EASE_OUT });\n this.emit('change', { index: this._index, word: cur.textContent });\n }\n },\n { id: 'text-rotate', text: css }\n );\n}\n","import { defineElement, srText, raf, caf, clamp, type UsaElement } from '../base';\nimport css from './text-fx.css?raw';\n\n/** Split `text` into per-character spans (words never break). The animated copy is aria-hidden. */\nfunction splitChars(host: HTMLElement, text: string): HTMLElement[] {\n const vis = document.createElement('span');\n vis.setAttribute('aria-hidden', 'true');\n const chars: HTMLElement[] = [];\n text.split(/(\\s+)/).forEach((w) => {\n if (/^\\s+$/.test(w)) {\n vis.append(document.createTextNode(w));\n return;\n }\n const word = document.createElement('span');\n word.className = 'usa-word';\n for (const c of Array.from(w)) {\n const s = document.createElement('span');\n s.className = 'usa-char';\n s.textContent = c;\n s.style.setProperty('--i', String(chars.length));\n word.append(s);\n chars.push(s);\n }\n vis.append(word);\n });\n host.replaceChildren(srText(text), vis);\n return chars;\n}\n\nconst textOf = (el: HTMLElement): string => (el.getAttribute('text') ?? el.dataset.usaText ?? (el.dataset.usaText = (el.textContent || '').trim()));\n\n/**\n * `<usa-wave-text>` — letters bob in a travelling wave.\n * Attributes: `amplitude` (em, 0.25), `speed` (s per cycle, 1.6), `stagger`\n * (s between letters, 0.06). Reduced motion: still text.\n */\nexport interface UsaWaveTextElement extends UsaElement {}\nexport function defineWaveText(tag = 'usa-wave-text'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['text']; }\n mount(): void {\n splitChars(this, textOf(this));\n this.style.setProperty('--usa-wave-a', `${this.num('amplitude', 0.25)}em`);\n this.style.setProperty('--usa-wave-s', `${this.num('speed', 1.6)}s`);\n this.style.setProperty('--usa-wave-d', `${this.num('stagger', 0.06)}s`);\n }\n }, { id: 'text-fx', text: css });\n}\n\n/**\n * `<usa-glitch>` — an RGB-split glitch on its text (`trigger=\"always\"`\n * default, or `hover`). Attributes: `intensity` (px, 3), `trigger`.\n * Reduced motion: no animation (plain text).\n */\nexport interface UsaGlitchElement extends UsaElement {}\nexport function defineGlitch(tag = 'usa-glitch'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['text', 'intensity']; }\n mount(): void {\n const t = textOf(this);\n this.setAttribute('data-text', t);\n this.style.setProperty('--usa-glitch-i', `${this.num('intensity', 3)}px`);\n if (!this.firstChild) this.textContent = t;\n }\n }, { id: 'text-fx', text: css });\n}\n\n/**\n * `<usa-gradient-text>` — text filled with a flowing multi-colour gradient.\n * Attributes: `colors` (comma list), `speed` (s, 6), `angle` (deg, 90).\n * Reduced motion: a static gradient.\n */\nexport interface UsaGradientTextElement extends UsaElement {}\nexport function defineGradientText(tag = 'usa-gradient-text'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['colors', 'speed', 'angle']; }\n mount(): void {\n const c = this.str('colors', '#7c5cff,#22d3ee,#f472b6,#facc15').split(',').map((s) => s.trim());\n this.style.setProperty('--usa-grad', `linear-gradient(${this.num('angle', 90)}deg, ${[...c, c[0]].join(', ')})`);\n this.style.setProperty('--usa-grad-s', `${this.num('speed', 6)}s`);\n }\n }, { id: 'text-fx', text: css });\n}\n\n/**\n * `<usa-handwriting>` — the text draws itself stroke by stroke (SVG text\n * outline), then fills in, when it scrolls into view.\n * Attributes: `text`, `duration` (ms, 2400), `stroke` (colour), `size` (px,\n * 64), `font` (family; a script font looks best). Events: `usa:complete`.\n * Reduced motion: the filled text appears at once.\n */\nexport interface UsaHandwritingElement extends UsaElement {\n play(): void;\n}\nexport function defineHandwriting(tag = 'usa-handwriting'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['text', 'size', 'font']; }\n mount(): void {\n const t = textOf(this);\n const size = this.num('size', 64);\n const w = Math.ceil(t.length * size * 0.62) + 8;\n this.replaceChildren(srText(t));\n this.insertAdjacentHTML('beforeend', `<svg aria-hidden=\"true\" viewBox=\"0 0 ${w} ${Math.ceil(size * 1.3)}\" width=\"${w}\" height=\"${Math.ceil(size * 1.3)}\"><text x=\"4\" y=\"${Math.round(size)}\" font-size=\"${size}\"></text></svg>`);\n const text = this.querySelector('text')!;\n text.textContent = t;\n if (this.str('font')) text.setAttribute('font-family', this.str('font'));\n if (this.str('stroke')) this.style.setProperty('--usa-hw-stroke', this.str('stroke'));\n this.style.setProperty('--usa-hw-d', `${this.num('duration', 2400)}ms`);\n if (this.reduced) {\n this.setAttribute('data-state', 'done');\n return;\n }\n this.inView((v) => v && this.play(), { threshold: 0.3 });\n }\n play(): void {\n this.removeAttribute('data-state');\n void this.offsetWidth;\n this.setAttribute('data-state', 'drawing');\n setTimeout(() => {\n this.setAttribute('data-state', 'done');\n this.emit('complete');\n }, this.reduced ? 0 : this.num('duration', 2400));\n }\n }, { id: 'text-fx', text: css });\n}\n\n/**\n * `<usa-scroll-highlight>` — reading highlight: words light up one by one\n * as the paragraph scrolls through the viewport (`mode=\"words\"`, default),\n * or a highlighter marker sweeps behind the text on enter (`mode=\"marker\"`).\n * Attributes: `mode`, `color` (marker), `dim` (opacity of unread words,\n * 0.2). Reduced motion: fully highlighted text.\n */\nexport interface UsaScrollHighlightElement extends UsaElement {\n readonly progress: number;\n}\nexport function defineScrollHighlight(tag = 'usa-scroll-highlight'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['mode', 'text']; }\n private _f = 0;\n private _p = 0;\n get progress(): number { return this._p; }\n mount(): void {\n const mode = this.str('mode', 'words');\n if (this.str('color')) this.style.setProperty('--usa-hl-color', this.str('color'));\n this.style.setProperty('--usa-hl-dim', String(this.num('dim', 0.2)));\n if (mode === 'marker') {\n if (this.reduced) this.setAttribute('data-lit', '');\n else this.inView((v) => v && this.setAttribute('data-lit', ''), { threshold: 0.6 });\n return;\n }\n const t = textOf(this);\n const vis = document.createElement('span');\n vis.setAttribute('aria-hidden', 'true');\n const words = t.split(/\\s+/).filter(Boolean).map((w) => {\n const s = document.createElement('span');\n s.className = 'usa-hl-word';\n s.textContent = w;\n vis.append(s, ' ');\n return s;\n });\n this.replaceChildren(srText(t), vis);\n if (this.reduced) {\n words.forEach((w) => w.setAttribute('data-on', ''));\n return;\n }\n const update = () => {\n this._f = 0;\n const r = this.getBoundingClientRect();\n const H = window.innerHeight || 800;\n this._p = clamp((H * 0.85 - r.top) / (r.height + H * 0.35), 0, 1);\n const lit = Math.round(this._p * words.length);\n words.forEach((w, i) => w.toggleAttribute('data-on', i < lit));\n };\n const on = () => !this._f && (this._f = raf(update));\n let active = false;\n this.inView((v) => {\n if (v === active) return;\n active = v;\n if (v) window.addEventListener('scroll', on, { passive: true });\n else window.removeEventListener('scroll', on);\n on();\n });\n this.onCleanup(() => window.removeEventListener('scroll', on));\n }\n unmount(): void {\n caf(this._f);\n this._f = 0;\n }\n }, { id: 'text-fx', text: css });\n}\n","/**\n * motionary/components/text — text effects.\n * `<usa-typewriter>`, `<usa-split-text>`, `<usa-scramble>`, `<usa-counter>`,\n * `<usa-shimmer-text>`, `<usa-text-rotate>`.\n */\nimport { defineTypewriter, type UsaTypewriterElement } from './typewriter';\nimport { defineSplitText, type UsaSplitTextElement } from './split-text';\nimport { defineScramble, type UsaScrambleElement } from './scramble';\nimport { defineCounter, type UsaCounterElement } from './counter';\nimport { defineShimmerText, type UsaShimmerTextElement } from './shimmer-text';\nimport { defineTextRotate, type UsaTextRotateElement } from './text-rotate';\n\nimport { defineWaveText, defineGlitch, defineGradientText, defineHandwriting, defineScrollHighlight } from './text-fx';\nimport type { UsaWaveTextElement, UsaGlitchElement, UsaGradientTextElement, UsaHandwritingElement, UsaScrollHighlightElement } from './text-fx';\nexport { defineTypewriter, defineSplitText, defineScramble, defineCounter, defineShimmerText, defineTextRotate };\nexport { scrambleFrame } from './scramble';\nexport { splitText, splitTimeline, splitOrder, graphemes, words as splitWords, JOINING_SCRIPT } from './split';\nexport type { SplitBy, SplitTextOptions, SplitResult, SplitFrom, SplitTimelineOptions } from './split';\nexport { easeOutExpo } from './counter';\nexport type { UsaTypewriterElement, UsaSplitTextElement, UsaScrambleElement, UsaCounterElement, UsaShimmerTextElement, UsaTextRotateElement };\nexport { defineWaveText, defineGlitch, defineGradientText, defineHandwriting, defineScrollHighlight };\nexport type { UsaWaveTextElement, UsaGlitchElement, UsaGradientTextElement, UsaHandwritingElement, UsaScrollHighlightElement };\n\n/** Register every component of this category under its default tag. */\nexport function defineTextComponents(): void {\n defineTypewriter();\n defineSplitText();\n defineScramble();\n defineCounter();\n defineShimmerText();\n defineTextRotate();\n defineWaveText();\n defineGlitch();\n defineGradientText();\n defineHandwriting();\n defineScrollHighlight();\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-wave-text': UsaWaveTextElement;\n 'usa-glitch': UsaGlitchElement;\n 'usa-gradient-text': UsaGradientTextElement;\n 'usa-handwriting': UsaHandwritingElement;\n 'usa-scroll-highlight': UsaScrollHighlightElement;\n 'usa-typewriter': UsaTypewriterElement;\n 'usa-split-text': UsaSplitTextElement;\n 'usa-scramble': UsaScrambleElement;\n 'usa-counter': UsaCounterElement;\n 'usa-shimmer-text': UsaShimmerTextElement;\n 'usa-text-rotate': UsaTextRotateElement;\n }\n}\n"],"names":["defineElement","srText","css","timeline","caf","now","raf","EASE_OUT","EASE_SPRING","clamp"],"mappings":";;;;;;;;AAuBM,SAAU,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,EAAA;AACrD,IAAA,OAAOA,kBAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,aAAc,SAAQ,IAAI,CAAA;AAAhC,QAAA,WAAA,GAAA;;YAKU,IAAA,CAAA,OAAO,GAAkB,IAAI;YAC7B,IAAA,CAAA,IAAI,GAAuB,IAAI;YAC/B,IAAA,CAAA,MAAM,GAAsC,CAAC;YAC7C,IAAA,CAAA,QAAQ,GAAG,KAAK;QAmG1B;AA1GE,QAAA,WAAW,kBAAkB,GAAA;AAC3B,YAAA,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;QAC1B;AAOA,QAAA,IAAI,OAAO,GAAA;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AACxC,YAAA,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACvE,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1D;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;AAAE,gBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE;AACzE,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;YAC5B,MAAM,EAAE,GAAGC,WAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa;YACnC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5C,YAAA,KAAK,CAAC,SAAS,GAAG,cAAc;AAChC,YAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1C,YAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC;AAC/E,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;gBACxC;YACF;YACA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;YACvC,IAAI,KAAK,KAAK,MAAM;gBAAE,IAAI,CAAC,KAAK,EAAE;AAC7B,iBAAA,IAAI,KAAK,KAAK,MAAM,EAAE;AACzB,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,KAAI;AACtB,oBAAA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW;wBAAE,IAAI,CAAC,KAAK,EAAE;AACxE,gBAAA,CAAC,CAAC;YACJ;QACF;QAEA,OAAO,GAAA;YACL,IAAI,CAAC,IAAI,EAAE;QACb;QAEA,IAAI,GAAA;AACF,YAAA,YAAY,CAAC,IAAI,CAAC,MAAuC,CAAC;AAC1D,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QACrC;QAEA,OAAO,GAAA;YACL,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,IAAI,CAAC,IAAI;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE;YACzC,IAAI,CAAC,KAAK,EAAE;QACd;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE;AACjC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AACrB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;gBAClC;YACF;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACrC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC;YACT,IAAI,CAAC,GAAG,CAAC;YACT,IAAI,QAAQ,GAAG,KAAK;YACpB,MAAM,IAAI,GAAG,MAAK;gBAChB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC7B,IAAI,CAAC,QAAQ,EAAE;AACb,oBAAA,CAAC,EAAE;oBACH,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,oBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;AACpC,oBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AACpB,wBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;wBACnC,MAAM,IAAI,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC;AACrC,wBAAA,IAAI,IAAI;AAAE,4BAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/B,wBAAA,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AACjB,4BAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;4BACrB;wBACF;wBACA,QAAQ,GAAG,IAAI;wBACf,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;wBACrC;oBACF;oBACA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;gBACrE;qBAAO;AACL,oBAAA,CAAC,EAAE;AACH,oBAAA,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,oBAAA,IAAI,CAAC,IAAI,CAAC,EAAE;wBACV,QAAQ,GAAG,KAAK;wBAChB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM;wBAC5B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;wBACzC;oBACF;oBACA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBACrC;AACF,YAAA,CAAC;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtD;KACD,EACH,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAEC,KAAG,EAAE,CAChC;AACH;;;;AClGA,MAAM,GAAG,GAAG,mJAAmJ;AAC/J;AACO,MAAM,cAAc,GAAG;AAC9B,MAAM,GAAG,GAAG,2CAA2C;AACvD,MAAM,EAAE,GAAG,kJAAkJ;AAE7J,SAAS,SAAS,CAAC,MAA0B,EAAE,WAAgC,EAAA;AAC7E,IAAA,MAAM,CAAC,GAAI,UAAkB,CAAC,IAAI,EAAE,SAAS;IAC7C,IAAI,OAAO,CAAC,KAAK,UAAU;AAAE,QAAA,OAAO,IAAI;AACxC,IAAA,IAAI;QACF,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,SAAS,EAAE,EAAE,WAAW,EAAE,CAAC;IACpD;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;AAEA;AACM,SAAU,SAAS,CAAC,CAAS,EAAE,MAAe,EAAA;IAClD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;AACzC,IAAA,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAC5D,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB;AAEA;;;AAGG;AACG,SAAU,KAAK,CAAC,CAAS,EAAE,MAAe,EAAA;IAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACrC,MAAM,GAAG,GAAa,EAAE;IACxB,IAAI,GAAG,EAAE;QACP,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;;YAEhC,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAAE,gBAAA,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO;;AAC/G,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1B;AACA,QAAA,OAAO,GAAG;IACZ;IACA,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACnC,QAAA,IAAI,CAAC,IAAI;YAAE;AACX,QAAA,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAAE,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;aACpD;YACH,IAAI,GAAG,GAAG,EAAE;YACZ,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACjC,gBAAA,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAChB,oBAAA,IAAI,GAAG;wBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AAClC,oBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACd;qBAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM;oBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;;oBAClE,GAAG,IAAI,EAAE;YAChB;AACA,YAAA,IAAI,GAAG;AAAE,gBAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QACxB;IACF;AACA,IAAA,OAAO,GAAG;AACZ;AAEA,SAAS,KAAK,CAAC,EAAe,EAAE,IAAY,EAAA;AAC1C,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC;AACvD,IAAA,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK;AAAE,QAAA,OAAO,IAAI;AACjD,IAAA,IAAI;QACF,MAAM,CAAC,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS;QACxC,IAAI,CAAC,KAAK,KAAK;AAAE,YAAA,OAAO,KAAK;IAC/B;AAAE,IAAA,MAAM;;IAER;AACA,IAAA,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK;AAClF;SAEgB,SAAS,CAAC,EAAe,EAAE,UAA4B,EAAE,EAAA;AACvE,IAAA,MAAM,EAAE,GAAG,IAAI,GAAG,CAAS,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACnI,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,WAAW;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,OAAO,GAAG,QAAQ,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS;IAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACxE,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC;IACjC,MAAM,KAAK,GAAkB,EAAE;IAC/B,MAAM,OAAO,GAAkB,EAAE;IACjC,IAAI,KAAK,GAAkB,EAAE;AAC7B,IAAA,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa;AAE5B,IAAA,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAU,KAAI;QACrC,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AACnC,QAAA,CAAC,CAAC,SAAS,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,SAAS;AAAE,YAAA,CAAC,CAAC,WAAW,GAAG,CAAC;AACtC,QAAA,OAAO,CAAC;AACV,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,IAAU,KAAI;AAC/B,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AACvB,YAAA,MAAM,IAAI,GAAG,GAAG,CAAC,sBAAsB,EAAE;AACzC,YAAA,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE;AACnD,gBAAA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClC;gBACF;gBACA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAA,KAAA,CAAO,CAAC;AAClC,gBAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;AACrC,gBAAA,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;gBAClC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AAC7C,gBAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEpB,gBAAA,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC7C,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;wBACpC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA,EAAG,GAAG,CAAA,KAAA,CAAO,EAAE,CAAC,CAAC;AAChC,wBAAA,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;wBAChC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AACtC,wBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACb,wBAAA,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClB;gBACF;qBAAO;AACL,oBAAA,MAAM,CAAC,WAAW,GAAG,CAAC;AACtB,oBAAA,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAClB,wBAAA,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;AACzB,wBAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;oBACpB;gBACF;AACA,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACrB;YACA,IAAI,CAAC,UAAW,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;QAC3C;AAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAE,IAAgB,CAAC,OAAO,CAAC,EAAE;AACjG,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAChD;AACF,IAAA,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AACtC,IAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACxC,IAAA,IAAI,CAAC,SAAS,GAAG,CAAA,EAAG,GAAG,OAAO;IAC9B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,IAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAA,GAAA,CAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9D,IAAA,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AAC5B,IAAA,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC;AAC5B,IAAA,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,SAAS,KAAK,KAAK;AAAE,QAAA,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,CAAC;IAEjE,MAAM,QAAQ,GAAG,MAAoB;;QAEnC,KAAK,MAAM,CAAC,IAAI,KAAK;AAAE,YAAA,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACjE,KAAK,GAAG,EAAE;QACV,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;QACpD,MAAM,MAAM,GAAoB,EAAE;QAClC,IAAI,OAAO,GAAkB,IAAI;AACjC,QAAA,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnC,YAAA,IAAI,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AAAE,gBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACpE,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,OAAO,GAAG,GAAG;QACf;QACA,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;;YAEtB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAW;AAC/B,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAA,KAAA,CAAO,CAAC;AAChC,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;YACnC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,GAAqB,IAAI,CAAC,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,OAAO,CAAC,EAAE;AACR,gBAAA,MAAM,IAAI,GAAqB,CAAC,CAAC,WAAW;AAC5C,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,KAAK,GAAG;oBAAE;gBACf,CAAC,GAAG,IAAI;YACV;;AAEA,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAClB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;AACD,IAAA,QAAQ,EAAE;IAEV,OAAO;QACL,KAAK;AACL,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,KAAK,GAAA;AACP,YAAA,OAAO,KAAK;QACd,CAAC;QACD,SAAS;QACT,QAAQ;QACR,MAAM,GAAA;YACJ,EAAE,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,YAAA,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;AAChC,YAAA,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC;QACtC,CAAC;KACa;AAClB;AAIA;AACM,SAAU,UAAU,CAAC,CAAS,EAAE,OAAkB,OAAO,EAAE,IAAI,GAAG,CAAC,EAAA;IACvE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,IAAI,IAAI,KAAK,KAAK;AAAE,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACnF,IAAI,IAAI,KAAK,OAAO;AAAE,QAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1F,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,IAAI,CAAC,GAAG,IAAI;QACZ,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,UAAU,IAAI,UAAU,CAAC;AAC7D,QAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC;QAClD,MAAM,IAAI,GAAa,EAAE;AACzB,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,QAAA,OAAO,IAAI;IACb;AACA,IAAA,OAAO,GAAG;AACZ;AAgBA;;;;;;;;AAQG;SACa,aAAa,CAAC,EAAe,EAAE,UAAgC,EAAE,EAAA;IAC/E,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;AACpC,IAAA,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;AAChG,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;AACnG,IAAA,MAAM,KAAK,GAAG,IAAI,KAAK,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACzF,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC;AACtF,IAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;IACpD,MAAM,EAAE,GAAGC,aAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAChG,IAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAG,OAAO,CAAC,MAAc,IAAI,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;AACnG,IAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACV,IAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;AAChC;;AC/PM,SAAU,eAAe,CAAC,GAAG,GAAG,gBAAgB,EAAA;AACpD,IAAA,OAAOH,kBAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,YAAa,SAAQ,IAAI,CAAA;AAA/B,QAAA,WAAA,GAAA;;YAKU,IAAA,CAAA,OAAO,GAAkB,IAAI;YAC7B,IAAA,CAAA,MAAM,GAAsC,CAAC;YAC7C,IAAA,CAAA,MAAM,GAAG,CAAC;QAgGpB;AAtGE,QAAA,WAAW,kBAAkB,GAAA;AAC3B,YAAA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;QACvB;AAMA,QAAA,IAAI,KAAK,GAAA;YACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,iBAAiB,CAAC,CAAC;QAC1E;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AAC3H,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;AACpC,YAAA,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO;AAChC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS;AACtE,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,sBAAsB,EAAE;YAC9C,IAAI,CAAC,MAAM,CAACC,WAAM,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,KAAK,GAAkB,EAAE;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACpC,gBAAA,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACtB,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAChB;gBACF;gBACA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC7C,gBAAA,MAAM,CAAC,SAAS,GAAG,gBAAgB;AACnC,gBAAA,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;gBAC1C,MAAM,KAAK,GAAG,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;AACnF,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;oBACxB,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACxC,oBAAA,CAAC,CAAC,SAAS,GAAG,gBAAgB;AAC9B,oBAAA,CAAC,CAAC,WAAW,GAAG,IAAI;AACpB,oBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACb,oBAAA,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClB;AACA,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACrB;AACA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;AAE1B,YAAA,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACjC,YAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AACpB,gBAAA,IAAI,IAAI,GAAG,EAAE;gBACb,IAAI,GAAG,GAAkB,IAAI;gBAC7B,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AACrB,oBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC,aAA6B,CAAC,SAAS,CAAC;AAChE,oBAAA,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AAAE,wBAAA,IAAI,EAAE;oBACjD,GAAG,GAAG,CAAC;AACP,oBAAA,OAAO,IAAI;AACb,gBAAA,CAAC,CAAC;YACJ;AACA,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;AACvC,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAc,CAAC;AACxE,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChF,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AACtE,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,KAAK,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC;AACrH,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA,EAAA,CAAI,CAAC;AAChF,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;AACxE,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACtD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC;gBACxC;YACF;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3C,IAAI,OAAO,KAAK,MAAM;gBAAE,IAAI,CAAC,IAAI,EAAE;AAC9B,iBAAA,IAAI,OAAO,KAAK,MAAM,EAAE;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,KAAI;oBACtB,IAAI,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,QAAQ;wBAAE,IAAI,CAAC,IAAI,EAAE;yBACnE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAAE,IAAI,CAAC,KAAK,EAAE;AACxD,gBAAA,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;YACxB;QACF;QAEA,OAAO,GAAA;AACL,YAAA,YAAY,CAAC,IAAI,CAAC,MAAuC,CAAC;QAC5D;QAEA,IAAI,GAAA;AACF,YAAA,YAAY,CAAC,IAAI,CAAC,MAAuC,CAAC;AAC1D,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC;gBACxC;YACF;;AAEA,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;YACzC,KAAK,IAAI,CAAC,WAAW;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC;YACvC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;AAClC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,OAAO,GAAG,GAAG,GAAG,EAAE,KAAK,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC;AACpK,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAK;AAC5B,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC;AACxC,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACvB,CAAC,EAAE,KAAK,CAAC;QACX;QAEA,KAAK,GAAA;AACH,YAAA,YAAY,CAAC,IAAI,CAAC,MAAuC,CAAC;AAC1D,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;QACpE;KACD,EACH,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAEC,KAAG,EAAE,CAChC;AACH;;ACtIA,MAAM,MAAM,GAAG,mDAAmD;AAgBlE;AACM,SAAU,aAAa,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,GAAA,GAAoB,IAAI,CAAC,MAAM,EAAA;AAC5G,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC/C,IAAI,GAAG,GAAG,EAAE;AACZ,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAClB,QAAA,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACpG;AACA,IAAA,OAAO,GAAG;AACZ;AAEM,SAAU,cAAc,CAAC,GAAG,GAAG,cAAc,EAAA;AACjD,IAAA,OAAOF,kBAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,WAAY,SAAQ,IAAI,CAAA;AAA9B,QAAA,WAAA,GAAA;;YAKU,IAAA,CAAA,OAAO,GAAkB,IAAI;YAC7B,IAAA,CAAA,IAAI,GAAuB,IAAI;YAC/B,IAAA,CAAA,MAAM,GAAG,CAAC;QAiEpB;AAvEE,QAAA,WAAW,kBAAkB,GAAA;YAC3B,OAAO,CAAC,MAAM,CAAC;QACjB;AAMA,QAAA,IAAY,IAAI,GAAA;AACd,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE;QACxD;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;AAAE,gBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE;YACzE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI;AACjC,YAAA,IAAI,CAAC,eAAe,CAACC,WAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;YAClD,IAAI,IAAI,CAAC,OAAO;gBAAE;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3C,IAAI,OAAO,KAAK,MAAM;gBAAE,IAAI,CAAC,IAAI,EAAE;AAC9B,iBAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AAC5B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACpD,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjD;AAAO,iBAAA,IAAI,OAAO,KAAK,MAAM,EAAE;gBAC7B,IAAI,MAAM,GAAG,KAAK;AAClB,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AAChB,oBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;wBAChB,MAAM,GAAG,IAAI;wBACb,IAAI,CAAC,IAAI,EAAE;oBACb;AACF,gBAAA,CAAC,CAAC;YACJ;QACF;QAEA,OAAO,GAAA;AACL,YAAAG,QAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;QACjB;QAEA,IAAI,GAAA;AACF,YAAAA,QAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAChB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AACrB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;AACtB,YAAA,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,gBAAA,IAAI,GAAG;AAAE,oBAAA,GAAG,CAAC,WAAW,GAAG,IAAI;AAC/B,gBAAA,OAAO,OAAO,CAAC,OAAO,EAAE;YAC1B;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC;AAC1C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,MAAM;AAClD,YAAA,MAAM,EAAE,GAAGC,QAAG,EAAE;AAChB,YAAA,IAAI,IAAI,GAAG,EAAE;AACb,YAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;gBAC7B,MAAM,IAAI,GAAG,MAAK;oBAChB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAEA,QAAG,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC;;AAEzD,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC;oBAC5C,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;wBAC9B,IAAI,GAAG,MAAM;wBACb,GAAG,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC;oBACnE;oBACA,IAAI,CAAC,GAAG,CAAC;AAAE,wBAAA,IAAI,CAAC,MAAM,GAAGC,QAAG,CAAC,IAAI,CAAC;yBAC7B;AACH,wBAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,wBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AACrB,wBAAA,OAAO,EAAE;oBACX;AACF,gBAAA,CAAC;AACD,gBAAA,IAAI,CAAC,MAAM,GAAGA,QAAG,CAAC,IAAI,CAAC;AACzB,YAAA,CAAC,CAAC;QACJ;KACD,EACH,SAAS,CACV;AACH;;;;ACvFA;AACO,MAAM,WAAW,GAAG,CAAC,CAAS,MAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAElF,SAAU,aAAa,CAAC,GAAG,GAAG,aAAa,EAAA;AAC/C,IAAA,OAAON,kBAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,UAAW,SAAQ,IAAI,CAAA;AAA7B,QAAA,WAAA,GAAA;;YAKU,IAAA,CAAA,QAAQ,GAAG,GAAG;YACd,IAAA,CAAA,OAAO,GAAG,GAAG;YACb,IAAA,CAAA,MAAM,GAAG,CAAC;YACV,IAAA,CAAA,IAAI,GAA6B,IAAI;QAsF/C;AA7FE,QAAA,WAAW,kBAAkB,GAAA;AAC3B,YAAA,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;QACrE;AAOA,QAAA,IAAI,KAAK,GAAA;YACP,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO;QACtE;QACA,IAAI,KAAK,CAAC,CAAS,EAAA;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB;AAEA,QAAA,MAAM,CAAC,CAAS,EAAA;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,SAAS;AAC7H,gBAAA,IAAI;AACF,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,OAAO,EAAE,CAAC;gBAC3J;AAAE,gBAAA,MAAM;oBACN,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC;gBACtG;YACF;YACA,OAAO,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,CAAE;QAC3E;AAEQ,QAAA,MAAM,CAAC,CAAS,EAAA;AACtB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACnC;AAEA,QAAA,OAAO,CAAC,IAAY,EAAA;AAClB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;YAChB,IAAI,IAAI,KAAK,IAAI;gBAAE,IAAI,CAAC,IAAI,EAAE;;AACzB,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrF;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;YAChB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5B,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,gBAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACf;YACF;AACA,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAAE,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;YACvC,IAAI,KAAK,KAAK,MAAM;gBAAE,IAAI,CAAC,IAAI,EAAE;AAC5B,iBAAA,IAAI,KAAK,KAAK,MAAM,EAAE;gBACzB,IAAI,IAAI,GAAG,KAAK;AAChB,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AAChB,oBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;wBACd,IAAI,GAAG,IAAI;wBACX,IAAI,CAAC,IAAI,EAAE;oBACb;AACF,gBAAA,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;YACxB;QACF;QAEA,OAAO,GAAA;AACL,YAAAI,QAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;QACjB;QAEA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAA;AACzB,YAAAA,QAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAChB,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;YACjB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ;AAC9E,YAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACpD,gBAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACpC,gBAAA,OAAO,OAAO,CAAC,OAAO,EAAE;YAC1B;YACA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;AAC3C,YAAA,MAAM,EAAE,GAAGC,QAAG,EAAE;AAChB,YAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;gBAC7B,MAAM,IAAI,GAAG,MAAK;oBAChB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAEA,QAAG,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC;AACzD,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;oBAChD,IAAI,CAAC,GAAG,CAAC;AAAE,wBAAA,IAAI,CAAC,MAAM,GAAGC,QAAG,CAAC,IAAI,CAAC;yBAC7B;AACH,wBAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,wBAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;wBACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACpC,wBAAA,OAAO,EAAE;oBACX;AACF,gBAAA,CAAC;AACD,gBAAA,IAAI,CAAC,MAAM,GAAGA,QAAG,CAAC,IAAI,CAAC;AACzB,YAAA,CAAC,CAAC;QACJ;KACD,EACH,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAEJ,KAAG,EAAE,CAC7B;AACH;;;;AChHM,SAAU,iBAAiB,CAAC,GAAG,GAAG,kBAAkB,EAAA;AACxD,IAAA,OAAOF,kBAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,cAAe,SAAQ,IAAI,CAAA;AAC/B,QAAA,WAAW,kBAAkB,GAAA;YAC3B,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;QAChD;QAEA,KAAK,GAAA;YACH,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,IAAI,GAAG,EAAE,KAAI;gBACpD,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,KAAK,IAAI;oBAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;;AACjD,oBAAA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;AACtC,YAAA,CAAC;AACD,YAAA,GAAG,CAAC,UAAU,EAAE,wBAAwB,EAAE,IAAI,CAAC;AAC/C,YAAA,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC;AACnC,YAAA,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC;AACnC,YAAA,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,CAAC;QAC5C;KACD,EACH,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAEE,KAAG,EAAE,CAClC;AACH;;;;ACjBM,SAAU,gBAAgB,CAAC,GAAG,GAAG,iBAAiB,EAAA;AACtD,IAAA,OAAOF,kBAAa,CAClB,GAAG,EACH,CAAC,IAAI,KACH,MAAM,aAAc,SAAQ,IAAI,CAAA;AAAhC,QAAA,WAAA,GAAA;;YAKU,IAAA,CAAA,OAAO,GAAkB,IAAI;YAC7B,IAAA,CAAA,MAAM,GAAG,CAAC;YACV,IAAA,CAAA,MAAM,GAAuC,CAAC;YAC9C,IAAA,CAAA,QAAQ,GAAG,IAAI;QA8DzB;AArEE,QAAA,WAAW,kBAAkB,GAAA;AAC3B,YAAA,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;QACxC;AAOA,QAAA,IAAI,KAAK,GAAA;YACP,OAAO,IAAI,CAAC,MAAM;QACpB;AAEA,QAAA,IAAY,KAAK,GAAA;AACf,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3G;QAEA,KAAK,GAAA;AACH,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;AAAE,gBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE;AACzE,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;YACxB,IAAI,CAAC,eAAe,CAClBC,WAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EACxB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;gBACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACxC,gBAAA,CAAC,CAAC,SAAS,GAAG,iBAAiB;AAC/B,gBAAA,CAAC,CAAC,WAAW,GAAG,CAAC;AACjB,gBAAA,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACrC,gBAAA,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;AAAE,oBAAA,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;AACxD,gBAAA,OAAO,CAAC;YACV,CAAC,CAAC,CACH;AACD,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;AAAE,gBAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AAChD,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAK;AAC7B,oBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC;wBAAE,IAAI,CAAC,IAAI,EAAE;AACzF,gBAAA,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/C;QACF;QAEA,OAAO,GAAA;AACL,YAAA,aAAa,CAAC,IAAI,CAAC,MAAwC,CAAC;AAC5D,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;QACjB;QAEA,IAAI,GAAA;AACF,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,kBAAkB,CAAC,CAAC;AAC9E,YAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE;YACpB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7B,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM;YAC5C,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;AACpC,YAAA,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;YAClE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnB,MAAM,KAAK;AACT,kBAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;kBAC/B,MAAM,KAAK;sBACT,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,oCAAoC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mCAAmC,EAAE;sBAChI,MAAM,KAAK;0BACT,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;0BACzE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;AAC3G,YAAA,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACjE,YAAA,MAAM,IAAI,GAAG,CAAC,CAAW,KAAK,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAG,OAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAEM,aAAQ,EAAE,CAAC;AACnF,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,GAAGC,gBAAW,GAAGD,aAAQ,EAAE,CAAC;AAChH,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;QACpE;KACD,EACH,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAEL,KAAG,EAAE,CACjC;AACH;;;;AC7FA;AACA,SAAS,UAAU,CAAC,IAAiB,EAAE,IAAY,EAAA;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC1C,IAAA,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;IACvC,MAAM,KAAK,GAAkB,EAAE;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAChC,QAAA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACtC;QACF;QACA,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU;QAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC7B,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACxC,YAAA,CAAC,CAAC,SAAS,GAAG,UAAU;AACxB,YAAA,CAAC,CAAC,WAAW,GAAG,CAAC;AACjB,YAAA,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACd,YAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACf;AACA,QAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAClB,IAAA,CAAC,CAAC;IACF,IAAI,CAAC,eAAe,CAACD,WAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;AACvC,IAAA,OAAO,KAAK;AACd;AAEA,MAAM,MAAM,GAAG,CAAC,EAAe,MAAc,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAQ7I,SAAU,cAAc,CAAC,GAAG,GAAG,eAAe,EAAA;IAClD,OAAOD,kBAAa,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,CAAA;QACpD,WAAW,kBAAkB,GAAA,EAAe,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,KAAK,GAAA;YACH,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA,EAAA,CAAI,CAAC;AAC1E,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AACpE,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC;QACzE;KACD,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAClC;AAQM,SAAU,YAAY,CAAC,GAAG,GAAG,YAAY,EAAA;IAC7C,OAAOA,kBAAa,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,CAAA;QACpD,WAAW,kBAAkB,GAAA,EAAe,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1E,KAAK,GAAA;AACH,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;YACzE,IAAI,CAAC,IAAI,CAAC,UAAU;AAAE,gBAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QAC5C;KACD,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAClC;AAQM,SAAU,kBAAkB,CAAC,GAAG,GAAG,mBAAmB,EAAA;IAC1D,OAAOA,kBAAa,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,CAAA;AACpD,QAAA,WAAW,kBAAkB,GAAA,EAAe,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACjF,KAAK,GAAA;AACH,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/F,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA,gBAAA,EAAmB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA,KAAA,EAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC;AAChH,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC;QACpE;KACD,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAClC;AAYM,SAAU,iBAAiB,CAAC,GAAG,GAAG,iBAAiB,EAAA;IACvD,OAAOA,kBAAa,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,CAAA;AACpD,QAAA,WAAW,kBAAkB,GAAA,EAAe,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7E,KAAK,GAAA;AACH,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;AACjC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;YAC/C,IAAI,CAAC,eAAe,CAACC,WAAM,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,wCAAwC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,CAAA,UAAA,EAAa,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAA,iBAAA,EAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAA,eAAA,CAAiB,CAAC;YAChO,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAE;AACxC,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAAE,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxE,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA,EAAA,CAAI,CAAC;AACvE,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC;gBACvC;YACF;YACA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QAC1D;QACA,IAAI,GAAA;AACF,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;YAClC,KAAK,IAAI,CAAC,WAAW;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC;YAC1C,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC;AACvC,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACvB,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACnD;KACD,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAClC;AAYM,SAAU,qBAAqB,CAAC,GAAG,GAAG,sBAAsB,EAAA;IAChE,OAAOD,kBAAa,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,CAAA;AAAlB,QAAA,WAAA,GAAA;;YAE1B,IAAA,CAAA,EAAE,GAAG,CAAC;YACN,IAAA,CAAA,EAAE,GAAG,CAAC;QAiDhB;QAnDE,WAAW,kBAAkB,GAAA,EAAe,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAGrE,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,KAAK,GAAA;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;AACtC,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACpE,YAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;gBACrB,IAAI,IAAI,CAAC,OAAO;AAAE,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;;oBAC9C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;gBACnF;YACF;AACA,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC1C,YAAA,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AACvC,YAAA,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;gBACrD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACxC,gBAAA,CAAC,CAAC,SAAS,GAAG,aAAa;AAC3B,gBAAA,CAAC,CAAC,WAAW,GAAG,CAAC;AACjB,gBAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;AAClB,gBAAA,OAAO,CAAC;AACV,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,eAAe,CAACC,WAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACpC,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACnD;YACF;YACA,MAAM,MAAM,GAAG,MAAK;AAClB,gBAAA,IAAI,CAAC,EAAE,GAAG,CAAC;AACX,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACtC,gBAAA,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,IAAI,GAAG;AACnC,gBAAA,IAAI,CAAC,EAAE,GAAGQ,UAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjE,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC9C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;AAChE,YAAA,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAGH,QAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,MAAM,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;gBAChB,IAAI,CAAC,KAAK,MAAM;oBAAE;gBAClB,MAAM,GAAG,CAAC;AACV,gBAAA,IAAI,CAAC;AAAE,oBAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;AAC1D,oBAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC7C,gBAAA,EAAE,EAAE;AACN,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChE;QACA,OAAO,GAAA;AACL,YAAAF,QAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACZ,YAAA,IAAI,CAAC,EAAE,GAAG,CAAC;QACb;KACD,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAClC;;AC9LA;;;;AAIG;AAmBH;SACgB,oBAAoB,GAAA;AAClC,IAAA,gBAAgB,EAAE;AAClB,IAAA,eAAe,EAAE;AACjB,IAAA,cAAc,EAAE;AAChB,IAAA,aAAa,EAAE;AACf,IAAA,iBAAiB,EAAE;AACnB,IAAA,gBAAgB,EAAE;AAClB,IAAA,cAAc,EAAE;AAChB,IAAA,YAAY,EAAE;AACd,IAAA,kBAAkB,EAAE;AACpB,IAAA,iBAAiB,EAAE;AACnB,IAAA,qBAAqB,EAAE;AACzB;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"text.cjs","sources":["../../src/components/text/typewriter.ts","../../src/components/text/split.ts","../../src/components/text/split-text.ts","../../src/components/text/scramble.ts","../../src/components/text/counter.ts","../../src/components/text/shimmer-text.ts","../../src/components/text/text-rotate.ts","../../src/components/text/text-fx.ts","../../src/components/text/index.ts"],"sourcesContent":["import { defineElement, srText, type UsaElement } from '../base';\nimport css from './typewriter.css?raw';\n\n/**\n * `<usa-typewriter>` — types text character by character, optionally cycling\n * through several phrases (typing, pausing, deleting).\n *\n * Attributes: `text` (default: the element's text), `words` (phrases\n * separated by `|`, overrides `text`), `speed` (ms per character, 55),\n * `delete-speed` (ms, 30), `pause` (ms before deleting, 1400), `delay`\n * (ms, 0), `loop`, `cursor=\"false\"` to hide the caret, `start`\n * (`view` | `load` | `manual`, default `view`). The full text is exposed to\n * assistive tech via `aria-label`. Event: `usa:complete` (one pass done).\n * Reduced motion: the text appears at once.\n */\nexport interface UsaTypewriterElement extends UsaElement {\n /** Phrases being typed. */\n readonly phrases: string[];\n start(): void;\n stop(): void;\n restart(): void;\n}\n\nexport function defineTypewriter(tag = 'usa-typewriter'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaTypewriter extends Base {\n static get observedAttributes(): string[] {\n return ['text', 'words'];\n }\n\n private _source: string | null = null;\n private _out: HTMLElement | null = null;\n private _timer: ReturnType<typeof setTimeout> | 0 = 0;\n private _running = false;\n\n get phrases(): string[] {\n const words = this.getAttribute('words');\n if (words) return words.split('|').map((w) => w.trim()).filter(Boolean);\n return [this.getAttribute('text') ?? this._source ?? ''];\n }\n\n mount(): void {\n if (this._source === null) this._source = (this.textContent || '').trim();\n const phrases = this.phrases;\n const sr = srText(phrases.join(', '));\n this._out = document.createElement('span');\n this._out.className = 'usa-tw-text';\n this._out.setAttribute('aria-hidden', 'true');\n const caret = document.createElement('span');\n caret.className = 'usa-tw-caret';\n caret.setAttribute('aria-hidden', 'true');\n this.replaceChildren(sr, this._out, caret);\n this.toggleAttribute('data-no-cursor', this.getAttribute('cursor') === 'false');\n if (this.reduced) {\n this._out.textContent = phrases[0] || '';\n return;\n }\n const start = this.str('start', 'view');\n if (start === 'load') this.start();\n else if (start === 'view') {\n this.inView((visible) => {\n if (visible && !this._running && !this._out?.textContent) this.start();\n });\n }\n }\n\n unmount(): void {\n this.stop();\n }\n\n stop(): void {\n clearTimeout(this._timer as ReturnType<typeof setTimeout>);\n this._timer = 0;\n this._running = false;\n this.removeAttribute('data-typing');\n }\n\n restart(): void {\n this.stop();\n if (this._out) this._out.textContent = '';\n this.start();\n }\n\n start(): void {\n if (this._running || !this._out) return;\n const out = this._out;\n const phrases = this.phrases;\n if (this.reduced) {\n out.textContent = phrases[0] || '';\n return;\n }\n this._running = true;\n const speed = this.num('speed', 55);\n const del = this.num('delete-speed', 30);\n const pause = this.num('pause', 1400);\n const loop = this.flag('loop') || phrases.length > 1;\n let p = 0;\n let i = 0;\n let deleting = false;\n const tick = () => {\n const word = phrases[p] || '';\n if (!deleting) {\n i++;\n out.textContent = word.slice(0, i);\n this.setAttribute('data-typing', '');\n if (i >= word.length) {\n this.removeAttribute('data-typing');\n const last = p === phrases.length - 1;\n if (last) this.emit('complete');\n if (!loop && last) {\n this._running = false;\n return;\n }\n deleting = true;\n this._timer = setTimeout(tick, pause);\n return;\n }\n this._timer = setTimeout(tick, speed * (0.6 + Math.random() * 0.8));\n } else {\n i--;\n out.textContent = word.slice(0, Math.max(0, i));\n if (i <= 0) {\n deleting = false;\n p = (p + 1) % phrases.length;\n this._timer = setTimeout(tick, speed * 4);\n return;\n }\n this._timer = setTimeout(tick, del);\n }\n };\n this._timer = setTimeout(tick, this.num('delay', 0));\n }\n },\n { id: 'typewriter', text: css }\n );\n}\n","import { timeline, type Timeline } from '../timeline/core';\n\n/**\n * `splitText()` (4.3) — split an element's text into characters, words and / or\n * lines, ready for per-unit choreography with `timeline()`.\n *\n * - Grapheme- and word-aware via `Intl.Segmenter` when available: emoji and\n * combining marks stay whole; Chinese / Japanese / Korean text is split into\n * real words (or one unit per character without `Segmenter`).\n * - RTL aware: Arabic-script text (cursive, letters join) is never split\n * below the word, so shaping is preserved; Hebrew and other RTL scripts\n * split per character. Units stay in logical (reading) order.\n * - Nested inline markup (`<em>`, `<a>`, `<br>`) is preserved.\n * - Accessible: the original text stays available to assistive tech via a\n * visually hidden copy; the split spans are `aria-hidden`.\n */\nexport type SplitBy = 'char' | 'word' | 'line';\n\nexport interface SplitTextOptions {\n /** What to split into: `'char'`, `'word'`, `'line'` or several, e.g. `['word', 'line']`. Default `'char'` (words are always wrapped too). */\n by?: SplitBy | SplitBy[] | string;\n /** Locale for `Intl.Segmenter` (default: the element's `lang`, else the document's). */\n locale?: string;\n /** Class prefix (default `usa-split`): units get `usa-split-char` / `-word` / `-line`. */\n className?: string;\n}\n\nexport interface SplitResult {\n chars: HTMLElement[];\n words: HTMLElement[];\n lines: HTMLElement[];\n /** `'rtl'` or `'ltr'` — the direction the split ran in. */\n direction: 'ltr' | 'rtl';\n /** Re-measure lines (call after a resize or font load). */\n relayout(): HTMLElement[];\n /** Restore the original markup. */\n revert(): void;\n}\n\nconst CJK = /[\\u2E80-\\u2FFF\\u3000-\\u303F\\u3040-\\u30FF\\u3100-\\u312F\\u3130-\\u318F\\u31A0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uAC00-\\uD7AF\\uF900-\\uFAFF\\uFF00-\\uFFEF]/;\n/** Scripts whose letters join (splitting them would break shaping). */\nexport const JOINING_SCRIPT = /[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/;\nconst RTL = /[\\u0590-\\u08FF\\uFB1D-\\uFDFF\\uFE70-\\uFEFF]/;\nconst SR = 'position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0';\n\nfunction segmenter(locale: string | undefined, granularity: 'grapheme' | 'word'): { segment(s: string): Iterable<{ segment: string; isWordLike?: boolean }> } | null {\n const S = (globalThis as any).Intl?.Segmenter;\n if (typeof S !== 'function') return null;\n try {\n return new S(locale || undefined, { granularity });\n } catch {\n return null;\n }\n}\n\n/** Grapheme clusters of `s` (emoji / combining marks stay whole). */\nexport function graphemes(s: string, locale?: string): string[] {\n const seg = segmenter(locale, 'grapheme');\n if (seg) return Array.from(seg.segment(s), (x) => x.segment);\n return Array.from(s);\n}\n\n/**\n * Word-ish tokens of `s`, whitespace kept as separate tokens. CJK text is\n * segmented into words with `Intl.Segmenter`, or per character without it.\n */\nexport function words(s: string, locale?: string): string[] {\n const seg = segmenter(locale, 'word');\n const out: string[] = [];\n if (seg) {\n for (const x of seg.segment(s)) {\n const last = out[out.length - 1];\n // glue punctuation onto the previous word so it never starts a line alone\n if (!x.isWordLike && !/^\\s+$/.test(x.segment) && last && !/^\\s+$/.test(last)) out[out.length - 1] = last + x.segment;\n else out.push(x.segment);\n }\n return out;\n }\n for (const part of s.split(/(\\s+)/)) {\n if (!part) continue;\n if (/^\\s+$/.test(part) || !CJK.test(part)) out.push(part);\n else {\n let buf = '';\n for (const ch of Array.from(part)) {\n if (CJK.test(ch)) {\n if (buf) out.push(buf), (buf = '');\n out.push(ch);\n } else if (/[\\p{P}]/u.test(ch) && out.length) out[out.length - 1] += ch;\n else buf += ch;\n }\n if (buf) out.push(buf);\n }\n }\n return out;\n}\n\nfunction dirOf(el: HTMLElement, text: string): 'ltr' | 'rtl' {\n const attr = el.closest?.('[dir]')?.getAttribute('dir');\n if (attr === 'rtl' || attr === 'ltr') return attr;\n try {\n const d = getComputedStyle(el).direction;\n if (d === 'rtl') return 'rtl';\n } catch {\n /* no layout */\n }\n return RTL.test(text) && !/[A-Za-z]/.test(text.replace(RTL, '')) ? 'rtl' : 'ltr';\n}\n\nexport function splitText(el: HTMLElement, options: SplitTextOptions = {}): SplitResult {\n const by = new Set<string>((Array.isArray(options.by) ? options.by : String(options.by ?? 'char').split(/[\\s,]+/)).filter(Boolean));\n const cls = options.className || 'usa-split';\n const locale = options.locale || el.closest?.('[lang]')?.getAttribute('lang') || undefined;\n const original = Array.from(el.childNodes).map((n) => n.cloneNode(true));\n const text = el.textContent || '';\n const direction = dirOf(el, text);\n const chars: HTMLElement[] = [];\n const wordEls: HTMLElement[] = [];\n let lines: HTMLElement[] = [];\n const doc = el.ownerDocument;\n\n const span = (c: string, t?: string) => {\n const s = doc.createElement('span');\n s.className = c;\n if (t !== undefined) s.textContent = t;\n return s;\n };\n\n const splitNode = (node: Node) => {\n if (node.nodeType === 3) {\n const frag = doc.createDocumentFragment();\n for (const w of words(node.nodeValue || '', locale)) {\n if (/^\\s+$/.test(w)) {\n frag.append(doc.createTextNode(w));\n continue;\n }\n const wordEl = span(`${cls}-word`);\n wordEl.style.display = 'inline-block';\n wordEl.style.whiteSpace = 'nowrap';\n wordEl.dataset.index = String(wordEls.length);\n wordEls.push(wordEl);\n // Arabic script joins its letters: keep the word whole (shaping), even in char mode.\n if (by.has('char') && !JOINING_SCRIPT.test(w)) {\n for (const g of graphemes(w, locale)) {\n const c = span(`${cls}-char`, g);\n c.style.display = 'inline-block';\n c.dataset.index = String(chars.length);\n chars.push(c);\n wordEl.append(c);\n }\n } else {\n wordEl.textContent = w;\n if (by.has('char')) {\n wordEl.dataset.whole = '';\n chars.push(wordEl);\n }\n }\n frag.append(wordEl);\n }\n node.parentNode!.replaceChild(frag, node);\n } else if (node.nodeType === 1 && !/^(BR|SCRIPT|STYLE|SVG|IMG)$/i.test((node as Element).tagName)) {\n Array.from(node.childNodes).forEach(splitNode);\n }\n };\n\n const wrap = doc.createElement('span');\n wrap.setAttribute('aria-hidden', 'true');\n wrap.className = `${cls}-body`;\n original.forEach((n) => wrap.append(n.cloneNode(true)));\n Array.from(wrap.childNodes).forEach(splitNode);\n const sr = span(`${cls}-sr`, text.replace(/\\s+/g, ' ').trim());\n sr.setAttribute('style', SR);\n el.replaceChildren(sr, wrap);\n el.setAttribute('data-split', [...by].join(' '));\n if (direction === 'rtl') el.setAttribute('data-split-dir', 'rtl');\n\n const relayout = (): HTMLElement[] => {\n // unwrap old lines\n for (const l of lines) l.replaceWith(...Array.from(l.childNodes));\n lines = [];\n if (!by.has('line') || !wordEls.length) return lines;\n const groups: HTMLElement[][] = [];\n let lastTop: number | null = null;\n for (const w of wordEls) {\n const top = Math.round(w.offsetTop);\n if (lastTop === null || Math.abs(top - lastTop) > 2) groups.push([]);\n groups[groups.length - 1].push(w);\n lastTop = top;\n }\n groups.forEach((g, i) => {\n // only group words that share a parent (inline markup keeps its words)\n const parent = g[0].parentNode!;\n const same = g.filter((w) => w.parentNode === parent);\n const line = span(`${cls}-line`);\n line.style.display = 'inline-block';\n line.dataset.index = String(i);\n parent.insertBefore(line, same[0]);\n let n: ChildNode | null = same[0];\n const end = same[same.length - 1];\n while (n) {\n const next: ChildNode | null = n.nextSibling;\n line.append(n);\n if (n === end) break;\n n = next;\n }\n // keep the space between lines outside the line box\n lines.push(line);\n });\n return lines;\n };\n relayout();\n\n return {\n chars,\n words: wordEls,\n get lines() {\n return lines;\n },\n direction,\n relayout,\n revert() {\n el.replaceChildren(...original.map((n) => n.cloneNode(true)));\n el.removeAttribute('data-split');\n el.removeAttribute('data-split-dir');\n },\n } as SplitResult;\n}\n\nexport type SplitFrom = 'start' | 'end' | 'center' | 'edges' | 'random';\n\n/** Order indices `0…n-1` by choreography: from the start, end, center outwards, edges inwards, or random (seeded). */\nexport function splitOrder(n: number, from: SplitFrom = 'start', seed = 1): number[] {\n const idx = Array.from({ length: n }, (_, i) => i);\n const mid = (n - 1) / 2;\n if (from === 'end') return idx.map((i) => n - 1 - i);\n if (from === 'center') return idx.map((i) => Math.round(Math.abs(i - mid) * 2) / 2);\n if (from === 'edges') return idx.map((i) => Math.round((mid - Math.abs(i - mid)) * 2) / 2);\n if (from === 'random') {\n let s = seed;\n const r = () => ((s = (s * 16807) % 2147483647) / 2147483647);\n const shuffled = idx.slice().sort(() => r() - 0.5);\n const rank: number[] = [];\n shuffled.forEach((v, i) => (rank[v] = i));\n return rank;\n }\n return idx;\n}\n\nexport interface SplitTimelineOptions extends SplitTextOptions {\n /** Which units to animate (default: the finest in `by`). */\n unit?: 'char' | 'word' | 'line';\n /** Timeline preset name or keyframes (default `'fade-up'`). */\n preset?: string | Keyframe[];\n /** ms between units (default 30 for chars, 80 for words, 140 for lines). */\n stagger?: number;\n /** Duration per unit in ms or a motion token name (default 500). */\n duration?: number | string;\n easing?: string;\n /** Choreography order (default `'start'` — reading order, also for RTL). */\n from?: SplitFrom;\n}\n\n/**\n * Split `el` and build a `timeline()` with one step per unit — play it,\n * `scrub()` it with scroll, `reverse()` or `seek()` it.\n *\n * ```ts\n * const { timeline: tl } = splitTimeline(h1, { by: 'char', preset: 'blur', from: 'center' });\n * tl.play();\n * ```\n */\nexport function splitTimeline(el: HTMLElement, options: SplitTimelineOptions = {}): { split: SplitResult; timeline: Timeline } {\n const split = splitText(el, options);\n const by = Array.isArray(options.by) ? options.by : String(options.by ?? 'char').split(/[\\s,]+/);\n const unit = options.unit || (by.includes('char') ? 'char' : by.includes('word') ? 'word' : 'line');\n const units = unit === 'char' ? split.chars : unit === 'word' ? split.words : split.lines;\n const stagger = options.stagger ?? (unit === 'char' ? 30 : unit === 'word' ? 80 : 140);\n const order = splitOrder(units.length, options.from);\n const tl = timeline({ defaults: { duration: options.duration ?? 500, easing: options.easing } });\n units.forEach((u, i) => tl.to(u, (options.preset as any) || 'fade-up', { at: order[i] * stagger }));\n tl.seek(0);\n return { split, timeline: tl };\n}\n","import { defineElement, srText, type UsaElement } from '../base';\nimport css from './split-text.css?raw';\nimport { graphemes, words, splitOrder, JOINING_SCRIPT, type SplitFrom } from './split';\n\n/**\n * `<usa-split-text>` — splits its text into words or characters and reveals\n * them in a cascade (pure CSS animation per unit, transform / opacity /\n * filter only). Words never break across lines.\n *\n * 4.3: `Intl.Segmenter`-aware (emoji, CJK words), Arabic-script words are\n * never split below the word, `by=\"lines\"` reveals line by line, and `from`\n * (`start` · `end` · `center` · `edges` · `random`) sets the cascade order.\n *\n * Attributes: `by` (`chars` | `words` | `lines`, default `chars`), `effect`\n * (`rise` | `fade` | `blur` | `flip` | `pop`, default `rise`), `stagger`\n * (ms between units, 28 for chars / 70 for words), `duration` (ms, 620),\n * `delay` (ms, 0), `trigger` (`view` | `load` | `manual`, default `view`),\n * `repeat`. The original text stays readable via `aria-label`.\n * Event: `usa:complete`.\n */\nexport interface UsaSplitTextElement extends UsaElement {\n readonly units: HTMLElement[];\n play(): void;\n reset(): void;\n}\n\nexport function defineSplitText(tag = 'usa-split-text'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaSplitText extends Base {\n static get observedAttributes(): string[] {\n return ['by', 'text'];\n }\n\n private _source: string | null = null;\n private _timer: ReturnType<typeof setTimeout> | 0 = 0;\n private _steps = 0;\n\n get units(): HTMLElement[] {\n return Array.from(this.querySelectorAll<HTMLElement>('.usa-split-unit'));\n }\n\n mount(): void {\n if (this._source === null) this._source = this.getAttribute('text') ?? (this.textContent || '').replace(/\\s+/g, ' ').trim();\n const text = this.getAttribute('text') ?? this._source;\n const mode = this.str('by', 'chars');\n const byWords = mode !== 'chars';\n const lang = this.closest('[lang]')?.getAttribute('lang') || undefined;\n const frag = document.createDocumentFragment();\n frag.append(srText(text));\n const units: HTMLElement[] = [];\n for (const word of words(text, lang)) {\n if (/^\\s+$/.test(word)) {\n frag.append(' ');\n continue;\n }\n const wordEl = document.createElement('span');\n wordEl.className = 'usa-split-word';\n wordEl.setAttribute('aria-hidden', 'true');\n const parts = byWords || JOINING_SCRIPT.test(word) ? [word] : graphemes(word, lang);\n for (const part of parts) {\n const u = document.createElement('span');\n u.className = 'usa-split-unit';\n u.textContent = part;\n units.push(u);\n wordEl.append(u);\n }\n frag.append(wordEl);\n }\n this.replaceChildren(frag);\n // cascade order: per unit, or per line for by=\"lines\"\n let rank = units.map((_, k) => k);\n if (mode === 'lines') {\n let line = -1;\n let top: number | null = null;\n rank = units.map((u) => {\n const t = Math.round((u.parentElement as HTMLElement).offsetTop);\n if (top === null || Math.abs(t - top) > 2) line++;\n top = t;\n return line;\n });\n }\n const groups = Math.max(0, ...rank) + 1;\n const order = splitOrder(groups, this.str('from', 'start') as SplitFrom);\n units.forEach((u, k) => u.style.setProperty('--i', String(order[rank[k]] ?? 0)));\n const i = Math.max(0, ...units.map((_, k) => order[rank[k]] ?? 0)) + 1;\n this._steps = i;\n this.style.setProperty('--usa-split-stagger', `${this.num('stagger', mode === 'lines' ? 140 : byWords ? 70 : 28)}ms`);\n this.style.setProperty('--usa-split-duration', `${this.num('duration', 620)}ms`);\n this.style.setProperty('--usa-split-delay', `${this.num('delay', 0)}ms`);\n this.style.setProperty('--usa-split-count', String(i));\n if (this.reduced) {\n this.setAttribute('data-state', 'shown');\n return;\n }\n this.setAttribute('data-state', 'hidden');\n const trigger = this.str('trigger', 'view');\n if (trigger === 'load') this.play();\n else if (trigger === 'view') {\n this.inView((visible) => {\n if (visible && this.getAttribute('data-state') === 'hidden') this.play();\n else if (!visible && this.flag('repeat')) this.reset();\n }, { threshold: 0.2 });\n }\n }\n\n unmount(): void {\n clearTimeout(this._timer as ReturnType<typeof setTimeout>);\n }\n\n play(): void {\n clearTimeout(this._timer as ReturnType<typeof setTimeout>);\n if (this.reduced) {\n this.setAttribute('data-state', 'shown');\n return;\n }\n // Restart the CSS animations\n this.setAttribute('data-state', 'hidden');\n void this.offsetWidth;\n this.setAttribute('data-state', 'play');\n const by = this.str('by', 'chars');\n const total = this.num('delay', 0) + this.num('duration', 620) + Math.max(0, this._steps - 1) * this.num('stagger', by === 'lines' ? 140 : by === 'words' ? 70 : 28);\n this._timer = setTimeout(() => {\n this.setAttribute('data-state', 'shown');\n this.emit('complete');\n }, total);\n }\n\n reset(): void {\n clearTimeout(this._timer as ReturnType<typeof setTimeout>);\n this.setAttribute('data-state', this.reduced ? 'shown' : 'hidden');\n }\n },\n { id: 'split-text', text: css }\n );\n}\n","import { defineElement, srText, raf, caf, now, type UsaElement } from '../base';\n\nconst GLYPHS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#%&*+=<>/\\\\?!';\n\n/**\n * `<usa-scramble>` — \"decodes\" text out of random glyphs, left to right.\n *\n * Attributes: `text` (default: the element's text), `duration` (ms, 900),\n * `chars` (glyph set), `trigger` (`view` | `hover` | `load` | `manual`,\n * default `view`). Spaces and punctuation stay in place. Uses a monospace-\n * friendly fixed width per glyph only if you style it so; the element sets\n * nothing that causes reflow beyond its own text. Event: `usa:complete`.\n * Reduced motion: shows the final text.\n */\nexport interface UsaScrambleElement extends UsaElement {\n play(): Promise<void>;\n}\n\n/** One frame of the scramble: the first `progress` share is resolved. */\nexport function scrambleFrame(text: string, progress: number, glyphs = GLYPHS, rnd: () => number = Math.random): string {\n const done = Math.floor(text.length * progress);\n let out = '';\n for (let i = 0; i < text.length; i++) {\n const ch = text[i];\n out += i < done || /\\s|[.,:;!?'\"()\\-–—]/.test(ch) ? ch : glyphs[Math.floor(rnd() * glyphs.length)];\n }\n return out;\n}\n\nexport function defineScramble(tag = 'usa-scramble'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaScramble extends Base {\n static get observedAttributes(): string[] {\n return ['text'];\n }\n\n private _source: string | null = null;\n private _out: HTMLElement | null = null;\n private _frame = 0;\n\n private get text(): string {\n return this.getAttribute('text') ?? this._source ?? '';\n }\n\n mount(): void {\n if (this._source === null) this._source = (this.textContent || '').trim();\n this._out = document.createElement('span');\n this._out.setAttribute('aria-hidden', 'true');\n this._out.textContent = this.text;\n this.replaceChildren(srText(this.text), this._out);\n if (this.reduced) return;\n const trigger = this.str('trigger', 'view');\n if (trigger === 'load') this.play();\n else if (trigger === 'hover') {\n this.listen(this, 'pointerenter', () => this.play());\n this.listen(this, 'focusin', () => this.play());\n } else if (trigger === 'view') {\n let played = false;\n this.inView((v) => {\n if (v && !played) {\n played = true;\n this.play();\n }\n });\n }\n }\n\n unmount(): void {\n caf(this._frame);\n this._frame = 0;\n }\n\n play(): Promise<void> {\n caf(this._frame);\n const out = this._out;\n const text = this.text;\n if (!out || this.reduced) {\n if (out) out.textContent = text;\n return Promise.resolve();\n }\n const duration = this.num('duration', 900);\n const glyphs = this.str('chars', GLYPHS) || GLYPHS;\n const t0 = now();\n let last = -1;\n return new Promise((resolve) => {\n const step = () => {\n const p = Math.min(1, Math.max(0, now() - t0) / duration);\n // ~30 fps glyph churn is plenty and halves DOM writes\n const bucket = Math.floor(p * duration / 33);\n if (bucket !== last || p === 1) {\n last = bucket;\n out.textContent = p === 1 ? text : scrambleFrame(text, p, glyphs);\n }\n if (p < 1) this._frame = raf(step);\n else {\n this._frame = 0;\n this.emit('complete');\n resolve();\n }\n };\n this._frame = raf(step);\n });\n }\n },\n undefined\n );\n}\n","import { defineElement, raf, caf, now, type UsaElement } from '../base';\nimport css from './counter.css?raw';\n\n/**\n * `<usa-counter>` — counts up (or down) to a number when it scrolls into view.\n *\n * Attributes: `to` (target, required), `from` (0), `duration` (ms, 1600),\n * `decimals` (0), `locale` (default: the document language), `prefix`,\n * `suffix`, `grouping=\"false\"` (no thousands separators), `start`\n * (`view` | `load` | `manual`). Setting the `value` property animates from\n * the current value — handy for live dashboards. Uses tabular digits so\n * the width does not jump. Event: `usa:complete`. Reduced motion: jumps.\n */\nexport interface UsaCounterElement extends UsaElement {\n /** Current target; setting it animates to the new number. */\n value: number;\n /** Animate to `to` (default: the `to` attribute). */\n play(to?: number): Promise<void>;\n format(n: number): string;\n}\n\n/** easeOutExpo */\nexport const easeOutExpo = (t: number): number => (t >= 1 ? 1 : 1 - Math.pow(2, -10 * t));\n\nexport function defineCounter(tag = 'usa-counter'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaCounter extends Base {\n static get observedAttributes(): string[] {\n return ['to', 'decimals', 'locale', 'prefix', 'suffix', 'grouping'];\n }\n\n private _current = NaN;\n private _target = NaN;\n private _frame = 0;\n private _fmt: Intl.NumberFormat | null = null;\n\n get value(): number {\n return Number.isNaN(this._target) ? this.num('to', 0) : this._target;\n }\n set value(v: number) {\n this.play(Number(v));\n }\n\n format(n: number): string {\n if (!this._fmt) {\n const d = Math.max(0, Math.min(20, this.num('decimals', 0)));\n const locale = this.getAttribute('locale') || (typeof document !== 'undefined' && document.documentElement.lang) || undefined;\n try {\n this._fmt = new Intl.NumberFormat(locale, { minimumFractionDigits: d, maximumFractionDigits: d, useGrouping: this.getAttribute('grouping') !== 'false' });\n } catch {\n this._fmt = new Intl.NumberFormat(undefined, { minimumFractionDigits: d, maximumFractionDigits: d });\n }\n }\n return `${this.str('prefix')}${this._fmt.format(n)}${this.str('suffix')}`;\n }\n\n private render(n: number): void {\n this._current = n;\n this.textContent = this.format(n);\n }\n\n changed(name: string): void {\n this._fmt = null;\n if (name === 'to') this.play();\n else this.render(Number.isNaN(this._current) ? this.num('from', 0) : this._current);\n }\n\n mount(): void {\n this._fmt = null;\n const to = this.num('to', 0);\n if (this.reduced) {\n this._target = to;\n this.render(to);\n return;\n }\n if (Number.isNaN(this._current)) this.render(this.num('from', 0));\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) => {\n if (v && !done) {\n done = true;\n this.play();\n }\n }, { threshold: 0.4 });\n }\n }\n\n unmount(): void {\n caf(this._frame);\n this._frame = 0;\n }\n\n play(to = this.num('to', 0)): Promise<void> {\n caf(this._frame);\n this._target = to;\n const from = Number.isNaN(this._current) ? this.num('from', 0) : this._current;\n if (this.reduced || from === to || !this.isConnected) {\n this.render(to);\n this.emit('complete', { value: to });\n return Promise.resolve();\n }\n const duration = this.num('duration', 1600);\n const t0 = now();\n return new Promise((resolve) => {\n const step = () => {\n const t = Math.min(1, Math.max(0, now() - t0) / duration);\n this.render(from + (to - from) * easeOutExpo(t));\n if (t < 1) this._frame = raf(step);\n else {\n this._frame = 0;\n this.render(to);\n this.emit('complete', { value: to });\n resolve();\n }\n };\n this._frame = raf(step);\n });\n }\n },\n { id: 'counter', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './shimmer-text.css?raw';\n\n/**\n * `<usa-shimmer-text>` — a light sweep across gradient-filled text (CSS\n * only; the element just maps attributes to custom properties).\n *\n * Attributes: `duration` (ms, 2600), `color` (base text colour), `shine`\n * (highlight colour), `angle` (deg, 110). Or style `--usa-shimmer-*`\n * directly. Reduced motion: static gradient text.\n */\nexport type UsaShimmerTextElement = UsaElement;\n\nexport function defineShimmerText(tag = 'usa-shimmer-text'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaShimmerText extends Base {\n static get observedAttributes(): string[] {\n return ['duration', 'color', 'shine', 'angle'];\n }\n\n mount(): void {\n const set = (attr: string, prop: string, unit = '') => {\n const v = this.getAttribute(attr);\n if (v !== null) this.style.setProperty(prop, v + unit);\n else this.style.removeProperty(prop);\n };\n set('duration', '--usa-shimmer-duration', 'ms');\n set('color', '--usa-shimmer-color');\n set('shine', '--usa-shimmer-shine');\n set('angle', '--usa-shimmer-angle', 'deg');\n }\n },\n { id: 'shimmer-text', text: css }\n );\n}\n","import { defineElement, srText, EASE_SPRING, EASE_OUT, type UsaElement } from '../base';\nimport css from './text-rotate.css?raw';\n\n/**\n * `<usa-text-rotate>` — cycles through words in place (\"Build *fast* /\n * *small* / *typed* apps\"). All words share one grid cell, so the width is\n * that of the longest word and nothing around it reflows.\n *\n * Attributes: `words` (separated by `|`, default: the element's text split\n * on `|`), `interval` (ms, 2200), `effect` (`slide` | `fade` | `flip` |\n * `blur`, default `slide`), `paused`. Pauses while off-screen and on hover\n * is not needed. Event: `usa:change` (`detail.index`, `detail.word`).\n * Reduced motion: words still change, without movement (fade only).\n */\nexport interface UsaTextRotateElement extends UsaElement {\n readonly index: number;\n next(): void;\n}\n\nexport function defineTextRotate(tag = 'usa-text-rotate'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) =>\n class UsaTextRotate extends Base {\n static get observedAttributes(): string[] {\n return ['words', 'interval', 'paused'];\n }\n\n private _source: string | null = null;\n private _index = 0;\n private _timer: ReturnType<typeof setInterval> | 0 = 0;\n private _visible = true;\n\n get index(): number {\n return this._index;\n }\n\n private get words(): string[] {\n return (this.getAttribute('words') ?? this._source ?? '').split('|').map((w) => w.trim()).filter(Boolean);\n }\n\n mount(): void {\n if (this._source === null) this._source = (this.textContent || '').trim();\n const words = this.words;\n this.replaceChildren(\n srText(words.join(', ')),\n ...words.map((w, i) => {\n const s = document.createElement('span');\n s.className = 'usa-rotate-word';\n s.textContent = w;\n s.setAttribute('aria-hidden', 'true');\n if (i !== this._index) s.setAttribute('data-hidden', '');\n return s;\n })\n );\n if (this._index >= words.length) this._index = 0;\n if (words.length < 2) return;\n this.inView((v) => (this._visible = v));\n if (!this.flag('paused')) {\n this._timer = setInterval(() => {\n if (this._visible && !(typeof document !== 'undefined' && document.hidden)) this.next();\n }, Math.max(400, this.num('interval', 2200)));\n }\n }\n\n unmount(): void {\n clearInterval(this._timer as ReturnType<typeof setInterval>);\n this._timer = 0;\n }\n\n next(): void {\n const els = Array.from(this.querySelectorAll<HTMLElement>('.usa-rotate-word'));\n if (els.length < 2) return;\n const prev = els[this._index];\n this._index = (this._index + 1) % els.length;\n const cur = els[this._index];\n prev.setAttribute('data-hidden', '');\n cur.removeAttribute('data-hidden');\n const effect = this.reduced ? 'fade' : this.str('effect', 'slide');\n const [inFrom, outTo] =\n effect === 'fade'\n ? [{ opacity: 0 }, { opacity: 0 }]\n : effect === 'flip'\n ? [{ opacity: 0, transform: 'perspective(400px) rotateX(-90deg)' }, { opacity: 0, transform: 'perspective(400px) rotateX(90deg)' }]\n : effect === 'blur'\n ? [{ opacity: 0, filter: 'blur(8px)' }, { opacity: 0, filter: 'blur(8px)' }]\n : [{ opacity: 0, transform: 'translateY(0.8em)' }, { opacity: 0, transform: 'translateY(-0.8em)' }];\n const neutral = { opacity: 1, transform: 'none', filter: 'none' };\n const pick = (f: Keyframe) => Object.fromEntries(Object.keys(f).map((k) => [k, (neutral as any)[k]]));\n this.motion(prev, [{ ...pick(outTo) }, outTo], { duration: 380, easing: EASE_OUT });\n this.motion(cur, [inFrom, pick(inFrom)], { duration: 520, easing: effect === 'slide' ? EASE_SPRING : EASE_OUT });\n this.emit('change', { index: this._index, word: cur.textContent });\n }\n },\n { id: 'text-rotate', text: css }\n );\n}\n","import { defineElement, srText, raf, caf, clamp, type UsaElement } from '../base';\nimport css from './text-fx.css?raw';\n\n/** Split `text` into per-character spans (words never break). The animated copy is aria-hidden. */\nfunction splitChars(host: HTMLElement, text: string): HTMLElement[] {\n const vis = document.createElement('span');\n vis.setAttribute('aria-hidden', 'true');\n const chars: HTMLElement[] = [];\n text.split(/(\\s+)/).forEach((w) => {\n if (/^\\s+$/.test(w)) {\n vis.append(document.createTextNode(w));\n return;\n }\n const word = document.createElement('span');\n word.className = 'usa-word';\n for (const c of Array.from(w)) {\n const s = document.createElement('span');\n s.className = 'usa-char';\n s.textContent = c;\n s.style.setProperty('--i', String(chars.length));\n word.append(s);\n chars.push(s);\n }\n vis.append(word);\n });\n host.replaceChildren(srText(text), vis);\n return chars;\n}\n\nconst textOf = (el: HTMLElement): string => (el.getAttribute('text') ?? el.dataset.usaText ?? (el.dataset.usaText = (el.textContent || '').trim()));\n\n/**\n * `<usa-wave-text>` — letters bob in a travelling wave.\n * Attributes: `amplitude` (em, 0.25), `speed` (s per cycle, 1.6), `stagger`\n * (s between letters, 0.06). Reduced motion: still text.\n */\nexport interface UsaWaveTextElement extends UsaElement {}\nexport function defineWaveText(tag = 'usa-wave-text'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['text']; }\n mount(): void {\n splitChars(this, textOf(this));\n this.style.setProperty('--usa-wave-a', `${this.num('amplitude', 0.25)}em`);\n this.style.setProperty('--usa-wave-s', `${this.num('speed', 1.6)}s`);\n this.style.setProperty('--usa-wave-d', `${this.num('stagger', 0.06)}s`);\n }\n }, { id: 'text-fx', text: css });\n}\n\n/**\n * `<usa-glitch>` — an RGB-split glitch on its text (`trigger=\"always\"`\n * default, or `hover`). Attributes: `intensity` (px, 3), `trigger`.\n * Reduced motion: no animation (plain text).\n */\nexport interface UsaGlitchElement extends UsaElement {}\nexport function defineGlitch(tag = 'usa-glitch'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['text', 'intensity']; }\n mount(): void {\n const t = textOf(this);\n this.setAttribute('data-text', t);\n this.style.setProperty('--usa-glitch-i', `${this.num('intensity', 3)}px`);\n if (!this.firstChild) this.textContent = t;\n }\n }, { id: 'text-fx', text: css });\n}\n\n/**\n * `<usa-gradient-text>` — text filled with a flowing multi-colour gradient.\n * Attributes: `colors` (comma list), `speed` (s, 6), `angle` (deg, 90).\n * Reduced motion: a static gradient.\n */\nexport interface UsaGradientTextElement extends UsaElement {}\nexport function defineGradientText(tag = 'usa-gradient-text'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['colors', 'speed', 'angle']; }\n mount(): void {\n const c = this.str('colors', '#7c5cff,#22d3ee,#f472b6,#facc15').split(',').map((s) => s.trim());\n this.style.setProperty('--usa-grad', `linear-gradient(${this.num('angle', 90)}deg, ${[...c, c[0]].join(', ')})`);\n this.style.setProperty('--usa-grad-s', `${this.num('speed', 6)}s`);\n }\n }, { id: 'text-fx', text: css });\n}\n\n/**\n * `<usa-handwriting>` — the text draws itself stroke by stroke (SVG text\n * outline), then fills in, when it scrolls into view.\n * Attributes: `text`, `duration` (ms, 2400), `stroke` (colour), `size` (px,\n * 64), `font` (family; a script font looks best). Events: `usa:complete`.\n * Reduced motion: the filled text appears at once.\n */\nexport interface UsaHandwritingElement extends UsaElement {\n play(): void;\n}\nexport function defineHandwriting(tag = 'usa-handwriting'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['text', 'size', 'font']; }\n mount(): void {\n const t = textOf(this);\n const size = this.num('size', 64);\n const w = Math.ceil(t.length * size * 0.62) + 8;\n this.replaceChildren(srText(t));\n this.insertAdjacentHTML('beforeend', `<svg aria-hidden=\"true\" viewBox=\"0 0 ${w} ${Math.ceil(size * 1.3)}\" width=\"${w}\" height=\"${Math.ceil(size * 1.3)}\"><text x=\"4\" y=\"${Math.round(size)}\" font-size=\"${size}\"></text></svg>`);\n const text = this.querySelector('text')!;\n text.textContent = t;\n if (this.str('font')) text.setAttribute('font-family', this.str('font'));\n if (this.str('stroke')) this.style.setProperty('--usa-hw-stroke', this.str('stroke'));\n this.style.setProperty('--usa-hw-d', `${this.num('duration', 2400)}ms`);\n if (this.reduced) {\n this.setAttribute('data-state', 'done');\n return;\n }\n this.inView((v) => v && this.play(), { threshold: 0.3 });\n }\n play(): void {\n this.removeAttribute('data-state');\n void this.offsetWidth;\n this.setAttribute('data-state', 'drawing');\n setTimeout(() => {\n this.setAttribute('data-state', 'done');\n this.emit('complete');\n }, this.reduced ? 0 : this.num('duration', 2400));\n }\n }, { id: 'text-fx', text: css });\n}\n\n/**\n * `<usa-scroll-highlight>` — reading highlight: words light up one by one\n * as the paragraph scrolls through the viewport (`mode=\"words\"`, default),\n * or a highlighter marker sweeps behind the text on enter (`mode=\"marker\"`).\n * Attributes: `mode`, `color` (marker), `dim` (opacity of unread words,\n * 0.2). Reduced motion: fully highlighted text.\n */\nexport interface UsaScrollHighlightElement extends UsaElement {\n readonly progress: number;\n}\nexport function defineScrollHighlight(tag = 'usa-scroll-highlight'): CustomElementConstructor | undefined {\n return defineElement(tag, (Base) => class extends Base {\n static get observedAttributes(): string[] { return ['mode', 'text']; }\n private _f = 0;\n private _p = 0;\n get progress(): number { return this._p; }\n mount(): void {\n const mode = this.str('mode', 'words');\n if (this.str('color')) this.style.setProperty('--usa-hl-color', this.str('color'));\n this.style.setProperty('--usa-hl-dim', String(this.num('dim', 0.2)));\n if (mode === 'marker') {\n if (this.reduced) this.setAttribute('data-lit', '');\n else this.inView((v) => v && this.setAttribute('data-lit', ''), { threshold: 0.6 });\n return;\n }\n const t = textOf(this);\n const vis = document.createElement('span');\n vis.setAttribute('aria-hidden', 'true');\n const words = t.split(/\\s+/).filter(Boolean).map((w) => {\n const s = document.createElement('span');\n s.className = 'usa-hl-word';\n s.textContent = w;\n vis.append(s, ' ');\n return s;\n });\n this.replaceChildren(srText(t), vis);\n if (this.reduced) {\n words.forEach((w) => w.setAttribute('data-on', ''));\n return;\n }\n const update = () => {\n this._f = 0;\n const r = this.getBoundingClientRect();\n const H = window.innerHeight || 800;\n this._p = clamp((H * 0.85 - r.top) / (r.height + H * 0.35), 0, 1);\n const lit = Math.round(this._p * words.length);\n words.forEach((w, i) => w.toggleAttribute('data-on', i < lit));\n };\n const on = () => !this._f && (this._f = raf(update));\n let active = false;\n this.inView((v) => {\n if (v === active) return;\n active = v;\n if (v) window.addEventListener('scroll', on, { passive: true });\n else window.removeEventListener('scroll', on);\n on();\n });\n this.onCleanup(() => window.removeEventListener('scroll', on));\n }\n unmount(): void {\n caf(this._f);\n this._f = 0;\n }\n }, { id: 'text-fx', text: css });\n}\n","/**\n * motionary/components/text — text effects.\n * `<usa-typewriter>`, `<usa-split-text>`, `<usa-scramble>`, `<usa-counter>`,\n * `<usa-shimmer-text>`, `<usa-text-rotate>`.\n */\nimport { defineTypewriter, type UsaTypewriterElement } from './typewriter';\nimport { defineSplitText, type UsaSplitTextElement } from './split-text';\nimport { defineScramble, type UsaScrambleElement } from './scramble';\nimport { defineCounter, type UsaCounterElement } from './counter';\nimport { defineShimmerText, type UsaShimmerTextElement } from './shimmer-text';\nimport { defineTextRotate, type UsaTextRotateElement } from './text-rotate';\n\nimport { defineWaveText, defineGlitch, defineGradientText, defineHandwriting, defineScrollHighlight } from './text-fx';\nimport type { UsaWaveTextElement, UsaGlitchElement, UsaGradientTextElement, UsaHandwritingElement, UsaScrollHighlightElement } from './text-fx';\nexport { defineTypewriter, defineSplitText, defineScramble, defineCounter, defineShimmerText, defineTextRotate };\nexport { scrambleFrame } from './scramble';\nexport { splitText, splitTimeline, splitOrder, graphemes, words as splitWords, JOINING_SCRIPT } from './split';\nexport type { SplitBy, SplitTextOptions, SplitResult, SplitFrom, SplitTimelineOptions } from './split';\nexport { easeOutExpo } from './counter';\nexport type { UsaTypewriterElement, UsaSplitTextElement, UsaScrambleElement, UsaCounterElement, UsaShimmerTextElement, UsaTextRotateElement };\nexport { defineWaveText, defineGlitch, defineGradientText, defineHandwriting, defineScrollHighlight };\nexport type { UsaWaveTextElement, UsaGlitchElement, UsaGradientTextElement, UsaHandwritingElement, UsaScrollHighlightElement };\n\n/** Register every component of this category under its default tag. */\nexport function defineTextComponents(): void {\n defineTypewriter();\n defineSplitText();\n defineScramble();\n defineCounter();\n defineShimmerText();\n defineTextRotate();\n defineWaveText();\n defineGlitch();\n defineGradientText();\n defineHandwriting();\n defineScrollHighlight();\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-wave-text': UsaWaveTextElement;\n 'usa-glitch': UsaGlitchElement;\n 'usa-gradient-text': UsaGradientTextElement;\n 'usa-handwriting': UsaHandwritingElement;\n 'usa-scroll-highlight': UsaScrollHighlightElement;\n 'usa-typewriter': UsaTypewriterElement;\n 'usa-split-text': UsaSplitTextElement;\n 'usa-scramble': UsaScrambleElement;\n 'usa-counter': UsaCounterElement;\n 'usa-shimmer-text': UsaShimmerTextElement;\n 'usa-text-rotate': UsaTextRotateElement;\n }\n}\n"],"names":["defineElement","srText","css","timeline","caf","now","raf","EASE_OUT","EASE_SPRING","clamp"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { u as defineElement, A as srText, l as caf, q as now, r as raf, D as EASE_OUT, E as EASE_SPRING, k as clamp } from '../chunks/base-BnRyfuyM.js';
2
- import { t as timeline } from '../chunks/core-DsGoL9EY.js';
1
+ import { f as defineElement, A as srText, b as caf, n as now, r as raf, D as EASE_OUT, E as EASE_SPRING, d as clamp } from '../chunks/base-BTev8qxg.js';
2
+ import { t as timeline } from '../chunks/core-BviA7nFa.js';
3
3
  import './tokens.js';
4
4
 
5
5
  var css$5 = "usa-typewriter{white-space:pre-wrap}usa-typewriter .usa-tw-caret{display:inline-block;width:var(--usa-caret-width,0.08em);height:1.05em;margin-left:0.06em;vertical-align:-0.12em;background:var(--usa-caret-color,currentColor);animation:usa-caret 1.06s steps(1) infinite}usa-typewriter[data-typing] .usa-tw-caret{animation:none}usa-typewriter[data-no-cursor] .usa-tw-caret{display:none}@keyframes usa-caret{50%{opacity:0}}@media (prefers-reduced-motion:reduce){usa-typewriter .usa-tw-caret,usa-shimmer-text{animation:none}}";