motionary 7.9.0 → 8.1.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 (219) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +1 -1
  3. package/README_ja.md +1 -1
  4. package/README_zh.md +1 -1
  5. package/dist/chunks/{audio-DcPvT2Kh.js → audio-CynhhWDi.js} +3 -3
  6. package/dist/chunks/{audio-DcPvT2Kh.js.map → audio-CynhhWDi.js.map} +1 -1
  7. package/dist/chunks/{audio-EXUoijsG.cjs → audio-cgWbDkoY.cjs} +3 -3
  8. package/dist/chunks/{audio-EXUoijsG.cjs.map → audio-cgWbDkoY.cjs.map} +1 -1
  9. package/dist/chunks/{base-2-yYc93C.js → base-CLuqlLfG.js} +63 -6
  10. package/dist/chunks/base-CLuqlLfG.js.map +1 -0
  11. package/dist/chunks/{base-BaQV-2ha.cjs → base-DoRUZBy-.cjs} +66 -5
  12. package/dist/chunks/base-DoRUZBy-.cjs.map +1 -0
  13. package/dist/chunks/{builtins-HlqAkK0f.js → builtins-Bs4smevg.js} +3 -3
  14. package/dist/chunks/{builtins-HlqAkK0f.js.map → builtins-Bs4smevg.js.map} +1 -1
  15. package/dist/chunks/{builtins-xalxV2d5.cjs → builtins-ClXshqj-.cjs} +3 -3
  16. package/dist/chunks/{builtins-xalxV2d5.cjs.map → builtins-ClXshqj-.cjs.map} +1 -1
  17. package/dist/chunks/{core-DuO-AVXL.js → core-C3Taz-ew.js} +2 -2
  18. package/dist/chunks/{core-DuO-AVXL.js.map → core-C3Taz-ew.js.map} +1 -1
  19. package/dist/chunks/{core-D5rU0CV6.js → core-CiN5sqxB.js} +2 -2
  20. package/dist/chunks/{core-D5rU0CV6.js.map → core-CiN5sqxB.js.map} +1 -1
  21. package/dist/chunks/{core-BGAyaY6L.cjs → core-CwO835Wm.cjs} +2 -2
  22. package/dist/chunks/{core-BGAyaY6L.cjs.map → core-CwO835Wm.cjs.map} +1 -1
  23. package/dist/chunks/{core-zq17EeCI.cjs → core-O4grKHSa.cjs} +2 -2
  24. package/dist/chunks/{core-zq17EeCI.cjs.map → core-O4grKHSa.cjs.map} +1 -1
  25. package/dist/chunks/{fx-lBGVtQO1.cjs → fx-C-XjLOTc.cjs} +2 -2
  26. package/dist/chunks/{fx-lBGVtQO1.cjs.map → fx-C-XjLOTc.cjs.map} +1 -1
  27. package/dist/chunks/{fx-CMxWNwH8.js → fx-CQv3IxMf.js} +2 -2
  28. package/dist/chunks/{fx-CMxWNwH8.js.map → fx-CQv3IxMf.js.map} +1 -1
  29. package/dist/chunks/{gpu-DLPghVWr.js → gpu-CB8frFOD.js} +2 -2
  30. package/dist/chunks/{gpu-DLPghVWr.js.map → gpu-CB8frFOD.js.map} +1 -1
  31. package/dist/chunks/{gpu-Dx0H875w.cjs → gpu-CcdA2D2i.cjs} +2 -2
  32. package/dist/chunks/{gpu-Dx0H875w.cjs.map → gpu-CcdA2D2i.cjs.map} +1 -1
  33. package/dist/chunks/{index-tags-C04JP8g4.js → index-tags-B-JBecYg.js} +2 -2
  34. package/dist/chunks/index-tags-B-JBecYg.js.map +1 -0
  35. package/dist/chunks/{index-tags-BTMwrfgV.cjs → index-tags-hLIF2Clq.cjs} +2 -2
  36. package/dist/chunks/index-tags-hLIF2Clq.cjs.map +1 -0
  37. package/dist/chunks/{player-PS6_FzNw.cjs → player-C2n17sdH.cjs} +4 -4
  38. package/dist/chunks/{player-PS6_FzNw.cjs.map → player-C2n17sdH.cjs.map} +1 -1
  39. package/dist/chunks/{player-DxvCYo7Q.js → player-YzQGkKaW.js} +4 -4
  40. package/dist/chunks/{player-DxvCYo7Q.js.map → player-YzQGkKaW.js.map} +1 -1
  41. package/dist/chunks/{registry-DehBVRDV.cjs → registry-BVklOepd.cjs} +2 -2
  42. package/dist/chunks/{registry-DehBVRDV.cjs.map → registry-BVklOepd.cjs.map} +1 -1
  43. package/dist/chunks/{registry-CyKExAmE.js → registry-CnO7ZVPK.js} +2 -2
  44. package/dist/chunks/{registry-CyKExAmE.js.map → registry-CnO7ZVPK.js.map} +1 -1
  45. package/dist/chunks/{spring-BK8DiezC.js → spring-BFKNHmfl.js} +2 -2
  46. package/dist/chunks/{spring-BK8DiezC.js.map → spring-BFKNHmfl.js.map} +1 -1
  47. package/dist/chunks/{spring-Dgx187Vh.cjs → spring-uQMVJTj9.cjs} +2 -2
  48. package/dist/chunks/{spring-Dgx187Vh.cjs.map → spring-uQMVJTj9.cjs.map} +1 -1
  49. package/dist/chunks/{variants-BQ6bhzn4.js → variants-B-zKORvt.js} +2 -2
  50. package/dist/chunks/{variants-BQ6bhzn4.js.map → variants-B-zKORvt.js.map} +1 -1
  51. package/dist/chunks/{variants-BhjyddG8.cjs → variants-DagykrKH.cjs} +2 -2
  52. package/dist/chunks/{variants-BhjyddG8.cjs.map → variants-DagykrKH.cjs.map} +1 -1
  53. package/dist/components/a11y.cjs +2 -2
  54. package/dist/components/a11y.d.cts +1 -1
  55. package/dist/components/a11y.d.ts +1 -1
  56. package/dist/components/a11y.js +3 -3
  57. package/dist/components/angular.cjs +9 -9
  58. package/dist/components/angular.d.cts +2 -18
  59. package/dist/components/angular.d.ts +2 -18
  60. package/dist/components/angular.js +9 -9
  61. package/dist/components/background.cjs +2 -2
  62. package/dist/components/background.js +2 -2
  63. package/dist/components/bridge.cjs +1 -1
  64. package/dist/components/bridge.js +1 -1
  65. package/dist/components/cards.cjs +2 -2
  66. package/dist/components/cards.js +2 -2
  67. package/dist/components/click.cjs +3 -3
  68. package/dist/components/click.js +3 -3
  69. package/dist/components/depth.cjs +3 -3
  70. package/dist/components/depth.js +3 -3
  71. package/dist/components/effects.cjs +7 -7
  72. package/dist/components/effects.js +9 -9
  73. package/dist/components/engine.cjs +266 -0
  74. package/dist/components/engine.cjs.map +1 -0
  75. package/dist/components/engine.d.cts +105 -0
  76. package/dist/components/engine.d.ts +105 -0
  77. package/dist/components/engine.js +255 -0
  78. package/dist/components/engine.js.map +1 -0
  79. package/dist/components/feedback.cjs +1 -1
  80. package/dist/components/feedback.js +1 -1
  81. package/dist/components/fx-3d.cjs +2 -2
  82. package/dist/components/fx-3d.js +2 -2
  83. package/dist/components/fx-ai.cjs +2 -2
  84. package/dist/components/fx-ai.js +2 -2
  85. package/dist/components/fx-chart.cjs +2 -2
  86. package/dist/components/fx-chart.js +2 -2
  87. package/dist/components/fx-festival.cjs +121 -0
  88. package/dist/components/fx-festival.cjs.map +1 -0
  89. package/dist/components/fx-festival.d.cts +69 -0
  90. package/dist/components/fx-festival.d.ts +69 -0
  91. package/dist/components/fx-festival.js +117 -0
  92. package/dist/components/fx-festival.js.map +1 -0
  93. package/dist/components/fx-focus.cjs +2 -2
  94. package/dist/components/fx-focus.js +2 -2
  95. package/dist/components/fx-form.cjs +2 -2
  96. package/dist/components/fx-form.js +2 -2
  97. package/dist/components/fx-game.cjs +2 -2
  98. package/dist/components/fx-game.js +2 -2
  99. package/dist/components/fx-geo.cjs +2 -2
  100. package/dist/components/fx-geo.js +2 -2
  101. package/dist/components/fx-gpu.cjs +3 -3
  102. package/dist/components/fx-gpu.js +3 -3
  103. package/dist/components/fx-light.cjs +2 -2
  104. package/dist/components/fx-light.js +2 -2
  105. package/dist/components/fx-morph.cjs +2 -2
  106. package/dist/components/fx-morph.js +2 -2
  107. package/dist/components/fx-music.cjs +3 -3
  108. package/dist/components/fx-music.js +3 -3
  109. package/dist/components/fx-physics.cjs +2 -2
  110. package/dist/components/fx-physics.js +2 -2
  111. package/dist/components/fx-shop.cjs +2 -2
  112. package/dist/components/fx-shop.js +2 -2
  113. package/dist/components/fx-social.cjs +2 -2
  114. package/dist/components/fx-social.js +2 -2
  115. package/dist/components/fx-text.cjs +2 -2
  116. package/dist/components/fx-text.js +2 -2
  117. package/dist/components/fx-transitions.cjs +3 -3
  118. package/dist/components/fx-transitions.js +3 -3
  119. package/dist/components/fx-weather.cjs +2 -2
  120. package/dist/components/fx-weather.js +2 -2
  121. package/dist/components/fx.cjs +5 -5
  122. package/dist/components/fx.js +6 -6
  123. package/dist/components/fx2.cjs +10 -4
  124. package/dist/components/fx2.cjs.map +1 -1
  125. package/dist/components/fx2.d.cts +26 -1
  126. package/dist/components/fx2.d.ts +26 -1
  127. package/dist/components/fx2.js +10 -6
  128. package/dist/components/fx2.js.map +1 -1
  129. package/dist/components/gesture.cjs +3 -3
  130. package/dist/components/gesture.js +4 -4
  131. package/dist/components/interaction.cjs +1 -1
  132. package/dist/components/interaction.js +1 -1
  133. package/dist/components/jsx.d.cts +1 -1
  134. package/dist/components/jsx.d.ts +1 -1
  135. package/dist/components/layout.cjs +1 -1
  136. package/dist/components/layout.js +1 -1
  137. package/dist/components/lazy.cjs +1 -1
  138. package/dist/components/lazy.d.cts +1 -1
  139. package/dist/components/lazy.d.ts +1 -1
  140. package/dist/components/lazy.js +1 -1
  141. package/dist/components/lite.cjs +151 -206
  142. package/dist/components/lite.cjs.map +1 -1
  143. package/dist/components/lite.js +152 -206
  144. package/dist/components/lite.js.map +1 -1
  145. package/dist/components/marketplace.cjs +2 -2
  146. package/dist/components/marketplace.js +2 -2
  147. package/dist/components/packs.cjs +1 -1
  148. package/dist/components/packs.js +1 -1
  149. package/dist/components/page.cjs +2 -2
  150. package/dist/components/page.js +3 -3
  151. package/dist/components/perf.cjs +2 -2
  152. package/dist/components/perf.d.cts +1 -1
  153. package/dist/components/perf.d.ts +1 -1
  154. package/dist/components/perf.js +3 -3
  155. package/dist/components/physics.cjs +2 -2
  156. package/dist/components/physics.js +3 -3
  157. package/dist/components/react.cjs +1 -1
  158. package/dist/components/react.js +1 -1
  159. package/dist/components/reveal.cjs +1 -1
  160. package/dist/components/reveal.js +1 -1
  161. package/dist/components/solid.cjs +9 -9
  162. package/dist/components/solid.d.cts +2 -18
  163. package/dist/components/solid.d.ts +2 -18
  164. package/dist/components/solid.js +9 -9
  165. package/dist/components/svelte.cjs +9 -9
  166. package/dist/components/svelte.d.cts +2 -18
  167. package/dist/components/svelte.d.ts +2 -18
  168. package/dist/components/svelte.js +9 -9
  169. package/dist/components/svg.cjs +1 -1
  170. package/dist/components/svg.js +1 -1
  171. package/dist/components/text.cjs +2 -2
  172. package/dist/components/text.js +2 -2
  173. package/dist/components/timeline.cjs +2 -2
  174. package/dist/components/timeline.js +3 -3
  175. package/dist/components/transitions.cjs +1 -1
  176. package/dist/components/transitions.js +1 -1
  177. package/dist/components/ui.cjs +17 -108
  178. package/dist/components/ui.cjs.map +1 -1
  179. package/dist/components/ui.css +0 -1
  180. package/dist/components/ui.d.cts +3 -20
  181. package/dist/components/ui.d.ts +3 -20
  182. package/dist/components/ui.js +19 -109
  183. package/dist/components/ui.js.map +1 -1
  184. package/dist/components/vue.cjs +9 -9
  185. package/dist/components/vue.d.cts +2 -18
  186. package/dist/components/vue.d.ts +2 -18
  187. package/dist/components/vue.js +9 -9
  188. package/dist/components/webgl.cjs +1 -1
  189. package/dist/components/webgl.js +1 -1
  190. package/dist/components/widgets.cjs +373 -146
  191. package/dist/components/widgets.cjs.map +1 -1
  192. package/dist/components/widgets.d.cts +110 -2
  193. package/dist/components/widgets.d.ts +110 -2
  194. package/dist/components/widgets.js +369 -147
  195. package/dist/components/widgets.js.map +1 -1
  196. package/dist/components.cjs +9 -10
  197. package/dist/components.cjs.map +1 -1
  198. package/dist/components.css +0 -1
  199. package/dist/components.d.cts +4 -21
  200. package/dist/components.d.ts +4 -21
  201. package/dist/components.js +12 -12
  202. package/dist/components.umd.js +2 -2
  203. package/dist/components.umd.js.map +1 -1
  204. package/dist/index.cjs +2 -2
  205. package/dist/index.js +2 -2
  206. package/dist/index.umd.js +2 -2
  207. package/dist/index.umd.js.map +1 -1
  208. package/dist/widgets.umd.js +1 -1
  209. package/dist/widgets.umd.js.map +1 -1
  210. package/docs/ROADMAP.md +14 -12
  211. package/docs/accessibility.md +1 -2
  212. package/docs/components.md +44 -1
  213. package/docs/deprecations.md +1 -1
  214. package/docs/upgrading-8.md +9 -6
  215. package/package.json +41 -1
  216. package/dist/chunks/base-2-yYc93C.js.map +0 -1
  217. package/dist/chunks/base-BaQV-2ha.cjs.map +0 -1
  218. package/dist/chunks/index-tags-BTMwrfgV.cjs.map +0 -1
  219. package/dist/chunks/index-tags-C04JP8g4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.js","sources":["../../src/components/widgets/shared.ts","../../src/components/widgets/carousel.ts","../../src/components/widgets/tab-bar.ts","../../src/components/widgets/disclosure.ts","../../src/components/widgets/stories.ts","../../src/components/widgets/overlay.ts","../../src/components/widgets/toast.ts","../../src/components/widgets/menu.ts","../../src/components/widgets/meters.ts","../../src/components/widgets/skeleton-reveal.ts","../../src/components/widgets/star-rating.ts","../../src/components/widgets/milestones.ts","../../src/components/widgets/masonry-flow.ts","../../src/components/widgets/compare.ts","../../src/components/widgets/cube-gallery.ts","../../src/components/widgets/dock.ts","../../src/components/widgets/nav-morph.ts","../../src/components/widgets/menu-toggle.ts","../../src/components/widgets/tip.ts","../../src/components/widgets/stepper.ts","../../src/components/widgets/pagination.ts","../../src/components/widgets/segmented.ts","../../src/components/widgets/switch.ts","../../src/components/widgets/kanban.ts","../../src/components/widgets/swipe-deck.ts","../../src/components/widgets/weather-card.ts","../../src/components/widgets/pull-cord.ts","../../src/components/widgets/date-picker.ts","../../src/components/widgets/color-picker.ts","../../src/components/widgets/file-drop.ts","../../src/components/widgets/keyframe-editor.ts","../../src/components/widgets/music-player.ts","../../src/components/widgets/volume-knob.ts","../../src/components/widgets/equalizer.ts","../../src/components/widgets/lyrics.ts","../../src/components/widgets/bar-chart.ts","../../src/components/widgets/gauge.ts","../../src/components/widgets/sparkline.ts","../../src/components/widgets/shared-figure.ts","../../src/components/widgets/kpi.ts","../../src/components/widgets/add-to-cart.ts","../../src/components/widgets/cart-drawer.ts","../../src/components/widgets/product-gallery.ts","../../src/components/widgets/countdown.ts","../../src/components/widgets/message-list.ts","../../src/components/widgets/reactions.ts","../../src/components/widgets/notification-bell.ts","../../src/components/widgets/presence.ts","../../src/components/widgets/leaderboard.ts","../../src/components/widgets/xp-bar.ts","../../src/components/widgets/badge-wall.ts","../../src/components/widgets/prize-wheel.ts","../../src/components/widgets/globe.ts","../../src/components/widgets/location-card.ts","../../src/components/widgets/field.ts","../../src/components/widgets/otp.ts","../../src/components/widgets/upload-progress.ts","../../src/components/widgets/chat-composer.ts","../../src/components/widgets/suggestion-chips.ts","../../src/components/widgets/voice-button.ts","../../src/components/widgets/command-palette.ts","../../src/components/widgets/shortcut.ts","../../src/components/widgets/index.ts"],"sourcesContent":["/** Helpers shared by the 6.x widgets (`motionary/components/widgets`). */\nexport const clampN = (v: number, a: number, b: number): number => Math.min(b, Math.max(a, v));\n\n/** Children of `el` that are elements and not created by the widget itself. */\nexport const ownChildren = (el: Element, skip = '[data-usa-part]'): HTMLElement[] =>\n Array.from(el.children).filter((c): c is HTMLElement => c instanceof HTMLElement && !c.matches(skip));\n\n/** Create a part element (marked so re-mounts can find / skip it). */\nexport function part<K extends keyof HTMLElementTagNameMap>(tag: K, cls: string, attrs: Record<string, string> = {}, html = ''): HTMLElementTagNameMap[K] {\n const n = document.createElement(tag);\n n.className = cls;\n n.setAttribute('data-usa-part', '');\n for (const [k, v] of Object.entries(attrs)) n.setAttribute(k, v);\n if (html) n.innerHTML = html;\n return n;\n}\n\n/** Remove the parts a previous mount created. */\nexport const dropParts = (el: Element): void => el.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n\nlet uid = 0;\n/** A document-unique id with a prefix. */\nexport const nextId = (p: string): string => `${p}-${++uid}`;\n\n/** Roving arrow-key focus over `items` (horizontal or vertical); returns the new index or -1. */\nexport function arrowIndex(e: KeyboardEvent, i: number, n: number, vertical = false): number {\n const prev = vertical ? 'ArrowUp' : 'ArrowLeft';\n const next = vertical ? 'ArrowDown' : 'ArrowRight';\n if (e.key === prev) return (i - 1 + n) % n;\n if (e.key === next) return (i + 1) % n;\n if (e.key === 'Home') return 0;\n if (e.key === 'End') return n - 1;\n return -1;\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, ownChildren, part, dropParts } from './shared';\nimport css from './carousel.css?raw';\n\n/**\n * `<usa-carousel>` (6.2) — swipeable carousel / slider. Each child is a slide.\n * Attributes: `effect` (`slide` · `fade` · `scale` · `cards` — 3D coverflow),\n * `autoplay` (ms; pauses on hover, focus, when off screen and under reduced\n * motion), `loop`, `index`, `label` (\"Carousel\"), `no-controls`, `no-dots`.\n * Drag / swipe with a pointer, arrow keys when focused. API: `next()`,\n * `prev()`, `goTo(i)`, `index`, `length`. Events: `usa:change` (`{ index, from }`).\n * Reduced motion: slides switch without movement.\n */\nexport interface UsaCarouselElement extends UsaElement {\n index: number;\n readonly length: number;\n next(): void;\n prev(): void;\n goTo(i: number): void;\n}\n\nexport const CAROUSEL_EFFECTS = ['slide', 'fade', 'scale', 'cards'] as const;\n\nexport function defineCarousel(tag = 'usa-carousel'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCarousel extends Base {\n static get observedAttributes(): string[] {\n return ['effect', 'autoplay', 'loop', 'no-controls', 'no-dots'];\n }\n private _i = 0;\n private _slides: HTMLElement[] = [];\n private _track: HTMLElement | null = null;\n private _timer = 0;\n private _hold = false;\n private _dots: HTMLButtonElement[] = [];\n\n get length(): number {\n return this._slides.length;\n }\n get index(): number {\n return this._i;\n }\n set index(v: number) {\n this.goTo(v);\n }\n get effect(): string {\n const e = this.str('effect', 'slide');\n return (CAROUSEL_EFFECTS as readonly string[]).includes(e) ? e : 'slide';\n }\n\n mount(): void {\n this.dataset.effect = this.effect; // (not the observed attribute: no re-mount loop)\n this.toggleAttribute('data-reduced', this.reduced);\n const old = this.querySelector<HTMLElement>(':scope > .usa-carousel-viewport');\n this._slides = old ? ownChildren(old.firstElementChild as HTMLElement) : ownChildren(this);\n dropParts(this);\n const vp = part('div', 'usa-carousel-viewport', { 'aria-live': this.num('autoplay', 0) ? 'off' : 'polite' });\n const track = part('div', 'usa-carousel-track');\n this._track = track;\n vp.append(track);\n const n = this._slides.length;\n this._slides.forEach((s, i) => {\n s.setAttribute('role', 'group');\n s.setAttribute('aria-roledescription', 'slide');\n s.setAttribute('aria-label', `${i + 1} of ${n}`);\n track.append(s);\n });\n this.prepend(vp);\n this.setAttribute('role', 'region');\n this.setAttribute('aria-roledescription', 'carousel');\n this.setAttribute('aria-label', this.str('label', 'Carousel'));\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (n > 1 && !this.flag('no-controls')) {\n const prev = part('button', 'usa-carousel-nav usa-carousel-prev', { type: 'button', 'aria-label': 'Previous slide' }, '‹');\n const next = part('button', 'usa-carousel-nav usa-carousel-next', { type: 'button', 'aria-label': 'Next slide' }, '›');\n this.listen(prev, 'click', () => this.prev());\n this.listen(next, 'click', () => this.next());\n this.append(prev, next);\n }\n this._dots = [];\n if (n > 1 && !this.flag('no-dots')) {\n const dots = part('div', 'usa-carousel-dots', { role: 'group', 'aria-label': 'Choose slide' });\n for (let i = 0; i < n; i++) {\n const d = part('button', 'usa-carousel-dot', { type: 'button', 'aria-label': `Slide ${i + 1}` });\n this.listen(d, 'click', () => this.goTo(i));\n this._dots.push(d);\n dots.append(d);\n }\n this.append(dots);\n }\n this._i = clampN(Math.round(this.num('index', 0)), 0, Math.max(0, n - 1));\n this.layout(0);\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight') (e.preventDefault(), this.next());\n else if (e.key === 'ArrowLeft') (e.preventDefault(), this.prev());\n });\n this.drag(vp);\n const ms = this.num('autoplay', 0);\n if (ms > 0 && n > 1 && !this.reduced) {\n let visible = true;\n this.inView((v) => (visible = v));\n const pause = (on: boolean) => () => (this._hold = on);\n this.listen(this, 'pointerenter', pause(true));\n this.listen(this, 'pointerleave', pause(false));\n this.listen(this, 'focusin', pause(true));\n this.listen(this, 'focusout', pause(false));\n this._timer = window.setInterval(() => {\n if (visible && !this._hold && !document.hidden) this.next();\n }, Math.max(1200, ms));\n this.onCleanup(() => clearInterval(this._timer));\n }\n }\n\n private drag(vp: HTMLElement): void {\n let x0 = 0;\n let dx = 0;\n let id = -1;\n this.listen(vp, 'pointerdown', (e: PointerEvent) => {\n if (this.length < 2 || (e.target as Element).closest('button,a,input')) return;\n id = e.pointerId;\n x0 = e.clientX;\n dx = 0;\n this.setAttribute('data-dragging', '');\n });\n this.listen(window, 'pointermove', (e: PointerEvent) => {\n if (e.pointerId !== id) return;\n dx = e.clientX - x0;\n this.layout(dx / Math.max(1, vp.clientWidth));\n });\n const end = (e: PointerEvent) => {\n if (e.pointerId !== id) return;\n id = -1;\n this.removeAttribute('data-dragging');\n const w = Math.max(1, vp.clientWidth);\n if (Math.abs(dx) > w * 0.18) dx < 0 ? this.next() : this.prev();\n else this.layout(0);\n };\n this.listen(window, 'pointerup', end);\n this.listen(window, 'pointercancel', end);\n }\n\n /** Position the slides (`drag` = fraction of a slide the pointer moved). */\n private layout(drag: number): void {\n const n = this.length;\n const i = this._i;\n const fx = this.effect;\n if (this._track) this._track.style.transform = fx === 'slide' ? `translateX(${(-i + drag) * 100}%)` : '';\n this._slides.forEach((s, k) => {\n let off = k - i + drag;\n if (this.flag('loop') && n > 2) {\n if (off > n / 2) off -= n;\n if (off < -n / 2) off += n;\n }\n const active = k === i;\n s.toggleAttribute('data-active', active);\n s.setAttribute('aria-hidden', String(!active));\n s.inert = !active;\n if (fx === 'slide') {\n s.style.transform = s.style.opacity = s.style.zIndex = s.style.filter = '';\n return;\n }\n const a = Math.abs(off);\n if (fx === 'fade') {\n s.style.opacity = String(clampN(1 - a, 0, 1));\n s.style.transform = '';\n } else if (fx === 'scale') {\n s.style.opacity = String(clampN(1 - a, 0, 1));\n s.style.transform = `scale(${1 + Math.min(1, a) * (off < 0 ? 0.12 : -0.12)})`;\n } else {\n s.style.opacity = a > 2.2 ? '0' : String(1 - Math.min(a, 2) * 0.28);\n s.style.transform = `translateX(${off * 58}%) translateZ(${-a * 140}px) rotateY(${clampN(-off * 38, -60, 60)}deg)`;\n s.style.filter = a > 0.5 ? `brightness(${1 - Math.min(a, 2) * 0.18})` : '';\n }\n s.style.zIndex = String(100 - Math.round(a * 10));\n });\n this._dots.forEach((d, k) => d.setAttribute('aria-current', String(k === i)));\n }\n\n goTo(to: number): void {\n const n = this.length;\n if (!n) return;\n const t = this.flag('loop') ? ((Math.round(to) % n) + n) % n : clampN(Math.round(to), 0, n - 1);\n const from = this._i;\n this._i = t;\n this.layout(0);\n if (t !== from) this.emit('change', { index: t, from });\n }\n next(): void {\n this.goTo(this._i + 1 >= this.length && !this.flag('loop') ? 0 : this._i + 1);\n }\n prev(): void {\n this.goTo(this._i - 1 < 0 && !this.flag('loop') ? this.length - 1 : this._i - 1);\n }\n }\n return UsaCarousel as unknown as CustomElementConstructor;\n },\n { id: 'carousel', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part, nextId, arrowIndex } from './shared';\nimport css from './tab-bar.css?raw';\n\n/**\n * `<usa-tab-bar>` (6.2) — tabs with an animated indicator that stretches\n * from the old tab to the new one (leading edge first, then the trailing edge\n * catches up). Children: `<button>` tabs, and optional panels marked\n * `data-panel` (in the same order). Attributes: `indicator` (`pill` ·\n * `underline` · `glow` · `gooey`), `selected` (index), `label`. Arrow keys,\n * Home/End. API: `select(i)`, `selected`. Events: `usa:change` (`{ index, from }`).\n * Panels slide in from the side of travel. Reduced motion: no stretch / slide.\n */\nexport interface UsaTabBarElement extends UsaElement {\n selected: number;\n select(i: number): void;\n}\n\nexport const TAB_INDICATORS = ['pill', 'underline', 'glow', 'gooey'] as const;\n\nexport function defineTabBar(tag = 'usa-tab-bar'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaTabBar extends Base {\n static get observedAttributes(): string[] {\n return ['indicator'];\n }\n private _tabs: HTMLElement[] = [];\n private _panels: HTMLElement[] = [];\n private _ink: HTMLElement | null = null;\n private _i = 0;\n\n get selected(): number {\n return this._i;\n }\n set selected(v: number) {\n this.select(v);\n }\n\n mount(): void {\n const ind = this.str('indicator', 'pill');\n this.dataset.indicator = (TAB_INDICATORS as readonly string[]).includes(ind) ? ind : 'pill';\n let list = this.querySelector<HTMLElement>(':scope > .usa-tab-bar-list');\n if (!list) {\n list = part('div', 'usa-tab-bar-list');\n this.prepend(list);\n }\n list.setAttribute('role', 'tablist');\n list.setAttribute('aria-label', this.str('label', 'Tabs'));\n const kids = ownChildren(this);\n this._panels = kids.filter((k) => k.hasAttribute('data-panel'));\n for (const k of kids) if (!k.hasAttribute('data-panel') && k.matches('button,[data-tab]')) list.append(k);\n this._tabs = Array.from(list.children).filter((c): c is HTMLElement => c instanceof HTMLElement && !c.classList.contains('usa-tab-bar-ink'));\n this._ink = list.querySelector('.usa-tab-bar-ink') || part('span', 'usa-tab-bar-ink', { 'aria-hidden': 'true' });\n list.prepend(this._ink);\n this._tabs.forEach((t, i) => {\n t.setAttribute('role', 'tab');\n if (t.localName === 'button' && !t.hasAttribute('type')) t.setAttribute('type', 'button');\n t.id ||= nextId('usa-tab');\n const p = this._panels[i];\n if (p) {\n p.id ||= nextId('usa-tabpanel');\n p.classList.add('usa-tab-bar-panel');\n p.setAttribute('role', 'tabpanel');\n p.setAttribute('aria-labelledby', t.id);\n p.tabIndex = 0;\n t.setAttribute('aria-controls', p.id);\n }\n this.listen(t, 'click', () => this.select(i));\n });\n this.listen(list, 'keydown', (e: KeyboardEvent) => {\n const n = arrowIndex(e, this._i, this._tabs.length);\n if (n < 0) return;\n e.preventDefault();\n this.select(n);\n this._tabs[n].focus();\n });\n this._i = Math.min(Math.max(0, Math.round(this.num('selected', 0))), Math.max(0, this._tabs.length - 1));\n this.sync(-1);\n if (typeof ResizeObserver === 'function') {\n const ro = new ResizeObserver(() => this.place());\n ro.observe(list);\n this.onCleanup(() => ro.disconnect());\n }\n }\n\n private rect(i: number): [number, number] {\n const t = this._tabs[i];\n return t ? [t.offsetLeft, t.offsetWidth] : [0, 0];\n }\n private place(): void {\n if (!this._ink) return;\n const [x, w] = this.rect(this._i);\n this._ink.style.transform = `translateX(${x}px)`;\n this._ink.style.width = `${w}px`;\n }\n\n private sync(from: number): void {\n this._tabs.forEach((t, k) => {\n t.setAttribute('aria-selected', String(k === this._i));\n t.tabIndex = k === this._i ? 0 : -1;\n });\n this._panels.forEach((p, k) => (p.hidden = k !== this._i));\n this.place();\n if (from < 0 || from === this._i || !this._ink || this.reduced) return;\n // stretchy travel: the leading edge arrives first, the trailing edge follows\n const [x0, w0] = this.rect(from);\n const [x1, w1] = this.rect(this._i);\n const right = x1 > x0;\n const mid = right ? { transform: `translateX(${x0}px)`, width: `${x1 + w1 - x0}px` } : { transform: `translateX(${x1}px)`, width: `${x0 + w0 - x1}px` };\n this.motion(this._ink, [{ transform: `translateX(${x0}px)`, width: `${w0}px` }, { ...mid, offset: 0.45 }, { transform: `translateX(${x1}px)`, width: `${w1}px` }], { duration: 480, easing: 'cubic-bezier(.22,1,.36,1)' });\n const p = this._panels[this._i];\n if (p) this.motion(p, [{ opacity: 0, transform: `translateX(${right ? 24 : -24}px)` }, { opacity: 1, transform: 'none' }], { duration: 320, easing: 'cubic-bezier(.22,1,.36,1)' });\n }\n\n select(i: number): void {\n const n = Math.min(Math.max(0, Math.round(i)), this._tabs.length - 1);\n if (n === this._i || n < 0) return;\n const from = this._i;\n this._i = n;\n this.sync(from);\n this.emit('change', { index: n, from });\n }\n }\n return UsaTabBar as unknown as CustomElementConstructor;\n },\n { id: 'tab-bar', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { springEasing } from '../physics/spring';\nimport css from './disclosure.css?raw';\n\n/**\n * `<usa-disclosure>` (6.2) — accordion 2.0 on native `<details>`: the\n * content springs open / closed (height + fade), the chevron flips with an\n * overshoot. Children: `<details><summary>…</summary>…</details>`.\n * Attributes: `multiple` (allow several open; default: one at a time),\n * `spring` (preset, default `gentle`), `variant=\"cards\"`. API: `openAll()`,\n * `closeAll()`, `toggle(i, force?)`. Events: `usa:toggle` (`{ index, open }`).\n * Native semantics (keyboard, find-in-page) kept. Reduced motion: instant.\n */\nexport interface UsaDisclosureElement extends UsaElement {\n toggle(i: number, force?: boolean): void;\n openAll(): void;\n closeAll(): void;\n}\n\nexport function defineDisclosure(tag = 'usa-disclosure'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaDisclosure extends Base {\n private _anims = new WeakMap<HTMLDetailsElement, Animation>();\n get items(): HTMLDetailsElement[] {\n return Array.from(this.children).filter((c): c is HTMLDetailsElement => c.localName === 'details');\n }\n mount(): void {\n this.listen(this, 'click', (e: MouseEvent) => {\n const s = (e.target as Element).closest('summary');\n const d = s?.parentElement as HTMLDetailsElement | null;\n if (!s || !d || d.parentElement !== this) return;\n e.preventDefault();\n this.set(d, !d.open);\n });\n }\n private set(d: HTMLDetailsElement, open: boolean): void {\n if (open && !this.flag('multiple')) for (const o of this.items) if (o !== d && o.open) this.set(o, false);\n if (d.open === open && !this._anims.get(d)) return;\n const summary = d.querySelector('summary');\n const closedH = summary ? summary.offsetHeight : 0;\n const startH = d.offsetHeight;\n this._anims.get(d)?.cancel();\n if (open) d.open = true;\n const endH = open ? d.scrollHeight : closedH;\n const sp = springEasing(this.str('spring', 'gentle'));\n const a = this.reduced ? null : this.motion(d, [{ height: `${startH}px` }, { height: `${endH}px` }], { duration: Math.min(sp.duration, 700), easing: sp.easing, fill: 'forwards' });\n const body = Array.from(d.children).filter((c) => c.localName !== 'summary');\n if (open && !this.reduced) body.forEach((b) => this.motion(b, [{ opacity: 0, transform: 'translateY(-6px)' }, { opacity: 1, transform: 'none' }], { duration: 300, delay: 60, easing: 'ease-out' }));\n const done = () => {\n this._anims.delete(d);\n if (!open) d.open = false;\n a?.cancel();\n };\n if (a) {\n this._anims.set(d, a);\n a.finished.then(() => this._anims.get(d) === a && done(), () => undefined);\n } else done();\n this.emit('toggle', { index: this.items.indexOf(d), open });\n }\n toggle(i: number, force?: boolean): void {\n const d = this.items[i];\n if (d) this.set(d, force ?? !d.open);\n }\n openAll(): void {\n this.items.forEach((d) => (d.open = true));\n }\n closeAll(): void {\n this.items.forEach((d) => this.set(d, false));\n }\n }\n return UsaDisclosure as unknown as CustomElementConstructor;\n },\n { id: 'disclosure', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part, dropParts } from './shared';\nimport css from './stories.css?raw';\n\n/**\n * `<usa-stories>` (6.2) — story viewer: segmented progress bars at the top,\n * auto-advance, tap the left / right third to go back / forward, press and\n * hold to pause, a pause button (WCAG 2.2.2). Each child is one story.\n * Attributes: `duration` (ms per story, 5000), `loop`, `paused`.\n * API: `next()`, `prev()`, `goTo(i)`, `pause()`, `play()`, `index`.\n * Events: `usa:change` (`{ index }`), `usa:end`. Reduced motion: no\n * auto-advance (paused until the user navigates), cross-fade only.\n */\nexport interface UsaStoriesElement extends UsaElement {\n readonly index: number;\n next(): void;\n prev(): void;\n goTo(i: number): void;\n pause(): void;\n play(): void;\n}\n\nexport function defineStories(tag = 'usa-stories'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaStories extends Base {\n static get observedAttributes(): string[] {\n return ['duration', 'loop'];\n }\n private _i = 0;\n private _items: HTMLElement[] = [];\n private _bars: HTMLElement[] = [];\n private _fill: Animation | null = null;\n private _btn: HTMLButtonElement | null = null;\n get index(): number {\n return this._i;\n }\n mount(): void {\n dropParts(this);\n this._items = ownChildren(this);\n const bars = part('div', 'usa-stories-bars', { 'aria-hidden': 'true' });\n this._bars = this._items.map(() => {\n const b = part('div', 'usa-stories-bar', {}, '<i></i>');\n bars.append(b);\n return b;\n });\n this._btn = part('button', 'usa-stories-toggle', { type: 'button' });\n this.listen(this._btn, 'click', (e: Event) => {\n e.stopPropagation();\n this.hasAttribute('paused') ? this.play() : this.pause();\n });\n this.append(bars, this._btn);\n this.setAttribute('role', 'region');\n this.setAttribute('aria-roledescription', 'stories');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', 'Stories');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (this.reduced) this.setAttribute('paused', '');\n let held = false;\n let downAt = 0;\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n if ((e.target as Element).closest('button,a')) return;\n downAt = performance.now();\n held = !this.hasAttribute('paused');\n if (held) this._fill?.pause();\n });\n this.listen(this, 'pointerup', (e: PointerEvent) => {\n if ((e.target as Element).closest('button,a') || !downAt) return;\n const long = performance.now() - downAt > 350;\n downAt = 0;\n if (held && !this.hasAttribute('paused')) this._fill?.play();\n if (long) return;\n const r = this.getBoundingClientRect();\n e.clientX - r.left < r.width / 3 ? this.prev() : this.next();\n });\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight') this.next();\n else if (e.key === 'ArrowLeft') this.prev();\n else if (e.key === ' ') (e.preventDefault(), this.hasAttribute('paused') ? this.play() : this.pause());\n });\n this.onCleanup(() => this._fill?.cancel());\n this.goTo(Math.min(this._i, Math.max(0, this._items.length - 1)), true);\n }\n private label(): void {\n if (this._btn) {\n const p = this.hasAttribute('paused');\n this._btn.textContent = p ? '▶' : '❚❚';\n this._btn.setAttribute('aria-label', p ? 'Play stories' : 'Pause stories');\n }\n }\n goTo(i: number, initial = false): void {\n const n = this._items.length;\n if (!n) return;\n if (i >= n && !this.flag('loop')) {\n this.emit('end');\n this.pause();\n return;\n }\n const t = ((i % n) + n) % n;\n const changed = t !== this._i || initial;\n this._i = t;\n this._items.forEach((s, k) => {\n s.toggleAttribute('data-active', k === t);\n s.setAttribute('aria-hidden', String(k !== t));\n });\n this._bars.forEach((b, k) => b.toggleAttribute('data-done', k < t));\n this._fill?.cancel();\n const fillEl = this._bars[t]?.firstElementChild as HTMLElement | undefined;\n this._fill = fillEl ? fillEl.animate?.([{ transform: 'scaleX(0)' }, { transform: 'scaleX(1)' }], { duration: Math.max(800, this.num('duration', 5000)), fill: 'forwards' }) ?? null : null;\n if (this._fill) {\n const a = this._fill;\n a.onfinish = () => this._fill === a && this.goTo(this._i + 1);\n if (this.hasAttribute('paused')) a.pause();\n }\n this.label();\n if (changed && !initial) this.emit('change', { index: t });\n }\n next(): void {\n this.goTo(this._i + 1);\n }\n prev(): void {\n this.goTo(Math.max(0, this._i - 1));\n }\n pause(): void {\n this.setAttribute('paused', '');\n this._fill?.pause();\n this.label();\n }\n play(): void {\n this.removeAttribute('paused');\n if (this._fill?.playState === 'finished') this.goTo(this._i + 1 >= this._items.length ? 0 : this._i + 1);\n else this._fill?.play();\n this.label();\n }\n }\n return UsaStories as unknown as CustomElementConstructor;\n },\n { id: 'stories', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part } from './shared';\nimport css from './overlay.css?raw';\n\n/**\n * `<usa-modal>` and `<usa-sheet>` (6.3) — modal overlays on the native\n * `<dialog>` (top layer, focus trap, Esc, inert page), with animated open\n * and close and a fading, blurred backdrop.\n *\n * - `<usa-modal effect=\"scale | slide-up | flip | origin\">` — `origin`\n * grows the dialog out of the button that opened it.\n * - `<usa-sheet side=\"right | left | bottom | top\">` — a side sheet; a\n * bottom sheet can be dragged down to dismiss (`<div data-handle>` or the\n * built-in grab handle).\n *\n * Attributes: `open` (initial), `label`, `persistent` (backdrop click / Esc\n * don't close). Any element with `data-usa-open=\"<id>\"` opens the overlay\n * with that id; `[data-usa-close]` inside closes it. API: `show(trigger?)`,\n * `close(value?)`, `toggle()`, `opened`. Events: `usa:open`, `usa:close`\n * (`{ value }`). Focus returns to the opener. Reduced motion: no movement,\n * a short fade.\n */\nexport interface UsaOverlayElement extends UsaElement {\n readonly opened: boolean;\n readonly returnValue: string;\n show(trigger?: Element | null): void;\n close(value?: string): Promise<void>;\n toggle(): void;\n}\nexport type UsaModalElement = UsaOverlayElement;\nexport type UsaSheetElement = UsaOverlayElement;\n\nexport const MODAL_EFFECTS = ['scale', 'slide-up', 'flip', 'origin'] as const;\nexport const SHEET_SIDES = ['right', 'left', 'bottom', 'top'] as const;\n\nconst EASE_OUT = 'cubic-bezier(.22,1,.36,1)';\n\n// one delegated listener for [data-usa-open] / [data-usa-toast] triggers anywhere on the page\nlet delegated = false;\nexport function delegateTriggers(): void {\n if (delegated || typeof document === 'undefined') return;\n delegated = true;\n document.addEventListener('click', (e) => {\n const t = (e.target as Element | null)?.closest?.('[data-usa-open]');\n if (!t) return;\n const target = document.getElementById(t.getAttribute('data-usa-open') || '') as (HTMLElement & Partial<UsaOverlayElement>) | null;\n if (target && typeof target.show === 'function') {\n e.preventDefault();\n if (target.opened) void target.close?.();\n else target.show(t);\n }\n });\n}\n\nfunction defineOverlay(tag: string, kind: 'modal' | 'sheet'): CustomElementConstructor | undefined {\n delegateTriggers();\n return defineElement(\n tag,\n (Base) => {\n class UsaOverlay extends Base {\n static get observedAttributes(): string[] {\n return kind === 'modal' ? ['effect'] : ['side'];\n }\n private _dlg: HTMLDialogElement | null = null;\n private _panel: HTMLElement | null = null;\n private _open = false;\n private _ret: Element | null = null;\n private _origin: DOMRect | null = null;\n private _value = '';\n private _closing: Promise<void> | null = null;\n\n get opened(): boolean {\n return this._open;\n }\n get returnValue(): string {\n return this._value;\n }\n\n mount(): void {\n let d = this.querySelector<HTMLDialogElement>(':scope > dialog.usa-ov');\n if (!d) {\n d = part('dialog', `usa-ov usa-${kind}-panel`);\n const body = part('div', 'usa-ov-body');\n body.append(...ownChildren(this));\n d.append(body);\n this.append(d);\n }\n this._dlg = d;\n this._panel = d.querySelector('.usa-ov-body');\n if (kind === 'modal') {\n const ef = this.str('effect', 'scale');\n this.dataset.effect = (MODAL_EFFECTS as readonly string[]).includes(ef) ? ef : 'scale';\n } else {\n const side = this.str('side', 'right');\n this.dataset.side = (SHEET_SIDES as readonly string[]).includes(side) ? side : 'right';\n if (this.dataset.side === 'bottom' && this._panel && !this._panel.querySelector('[data-handle]')) this._panel.prepend(part('div', 'usa-ov-grab', { 'data-handle': '', 'aria-hidden': 'true' }));\n this.drag();\n }\n if (!d.hasAttribute('aria-labelledby')) d.setAttribute('aria-label', this.str('label', kind === 'modal' ? 'Dialog' : 'Panel'));\n this.listen(d, 'cancel', (e: Event) => {\n e.preventDefault();\n if (!this.flag('persistent')) void this.close();\n });\n this.listen(d, 'click', (e: MouseEvent) => {\n const t = e.target as Element;\n const c = t.closest?.('[data-usa-close]');\n if (c) return void this.close(c.getAttribute('data-usa-close') || '');\n if (t === d && !this.flag('persistent')) void this.close(); // the ::backdrop\n });\n if (this.flag('open') && !this._open) this.show();\n }\n\n unmount(): void {\n if (this._open && this._dlg?.open) this._dlg.close?.();\n this._open = false;\n }\n\n private frames(opening: boolean): Keyframe[] {\n const fade: Keyframe[] = [{ opacity: 0 }, { opacity: 1 }];\n if (this.reduced) return opening ? fade : [...fade].reverse();\n let f: Keyframe[];\n if (kind === 'sheet') {\n const s = this.dataset.side;\n const off = s === 'left' ? 'translateX(-100%)' : s === 'bottom' ? 'translateY(100%)' : s === 'top' ? 'translateY(-100%)' : 'translateX(100%)';\n f = [{ transform: off }, { transform: 'none' }];\n } else {\n const e = this.dataset.effect;\n const o = this._origin;\n const r = this._dlg?.getBoundingClientRect();\n if (e === 'origin' && o && r && r.width) {\n const dx = o.left + o.width / 2 - (r.left + r.width / 2);\n const dy = o.top + o.height / 2 - (r.top + r.height / 2);\n f = [{ transform: `translate(${dx}px,${dy}px) scale(${Math.max(0.05, o.width / r.width).toFixed(3)},${Math.max(0.05, o.height / r.height).toFixed(3)})`, opacity: 0, borderRadius: '40px' }, { transform: 'none', opacity: 1 }];\n } else if (e === 'slide-up') f = [{ transform: 'translateY(48px)', opacity: 0 }, { transform: 'none', opacity: 1 }];\n else if (e === 'flip') f = [{ transform: 'perspective(900px) rotateX(-28deg) translateY(30px)', opacity: 0 }, { transform: 'none', opacity: 1 }];\n else f = [{ transform: 'scale(.88)', opacity: 0 }, { transform: 'scale(1.015)', opacity: 1, offset: 0.7 }, { transform: 'none', opacity: 1 }];\n }\n return opening ? f : [f[0], f[f.length - 1]].reverse();\n }\n\n private backdrop(opening: boolean): void {\n if (!this._dlg) return;\n const k: Keyframe[] = [{ opacity: 0 }, { opacity: 1 }];\n try {\n this._dlg.animate?.(opening ? k : k.reverse(), { duration: opening ? 280 : 200, pseudoElement: '::backdrop', fill: 'forwards' } as KeyframeAnimationOptions);\n } catch {\n /* no ::backdrop animation support */\n }\n }\n\n show(trigger?: Element | null): void {\n const d = this._dlg;\n if (!d || this._open) return;\n this._open = true;\n this._ret = trigger || (document.activeElement as Element | null);\n this._origin = trigger ? trigger.getBoundingClientRect() : null;\n if (typeof d.showModal === 'function') {\n try {\n d.showModal();\n } catch {\n d.setAttribute('open', '');\n }\n } else d.setAttribute('open', '');\n this.setAttribute('data-open', '');\n this.backdrop(true);\n this.motion(d, this.frames(true), { duration: this.reduced ? 150 : kind === 'sheet' ? 420 : 460, easing: EASE_OUT });\n const f = d.querySelector<HTMLElement>('[autofocus]') || d.querySelector<HTMLElement>('button,[href],input,select,textarea,[tabindex]:not([tabindex=\"-1\"])');\n f?.focus?.();\n this.emit('open', { trigger: trigger || null });\n }\n\n close(value = ''): Promise<void> {\n const d = this._dlg;\n if (!d || !this._open) return Promise.resolve();\n if (this._closing) return this._closing;\n this._value = value;\n this.backdrop(false);\n const a = this.motion(d, this.frames(false), { duration: this.reduced ? 120 : 260, easing: 'cubic-bezier(.4,0,1,1)', fill: 'forwards' });\n const done = () => {\n this._closing = null;\n this._open = false;\n this.removeAttribute('data-open');\n if (d.open && typeof d.close === 'function') d.close(value);\n else d.removeAttribute('open');\n a?.cancel?.();\n d.style.transform = '';\n (this._ret as HTMLElement | null)?.focus?.();\n this.emit('close', { value });\n };\n this._closing = a ? a.finished.then(done, done) : Promise.resolve().then(done);\n return this._closing;\n }\n\n toggle(): void {\n if (this._open) void this.close();\n else this.show();\n }\n\n // bottom sheet: drag down to dismiss, springs back otherwise\n private drag(): void {\n const p = this._panel;\n const d = this._dlg;\n if (!p || !d || this.dataset.side !== 'bottom') return;\n let y0 = -1;\n let dy = 0;\n let t0 = 0;\n this.listen(p, 'pointerdown', (e: PointerEvent) => {\n if (!(e.target as Element).closest('[data-handle]')) return;\n y0 = e.clientY;\n dy = 0;\n t0 = performance.now();\n (e.target as Element).setPointerCapture?.(e.pointerId);\n });\n this.listen(p, 'pointermove', (e: PointerEvent) => {\n if (y0 < 0) return;\n dy = Math.max(0, e.clientY - y0);\n d.style.transform = `translateY(${dy}px)`;\n });\n const up = () => {\n if (y0 < 0) return;\n y0 = -1;\n const v = dy / Math.max(1, performance.now() - t0);\n if (dy > d.offsetHeight * 0.3 || v > 0.6) void this.close();\n else {\n this.motion(d, [{ transform: `translateY(${dy}px)` }, { transform: 'translateY(-6px)', offset: 0.6 }, { transform: 'none' }], { duration: 380, easing: EASE_OUT });\n d.style.transform = '';\n }\n };\n this.listen(p, 'pointerup', up);\n this.listen(p, 'pointercancel', up);\n }\n }\n return UsaOverlay as unknown as CustomElementConstructor;\n },\n { id: 'overlay', text: css }\n );\n}\n\nexport const defineModal = (tag = 'usa-modal'): CustomElementConstructor | undefined => defineOverlay(tag, 'modal');\nexport const defineSheet = (tag = 'usa-sheet'): CustomElementConstructor | undefined => defineOverlay(tag, 'sheet');\n","import { defineElement, type UsaElement } from '../base';\nimport { part } from './shared';\nimport { delegateTriggers } from './overlay';\nimport css from './toast.css?raw';\n\n/**\n * `<usa-toast-stack>` (6.3) — notifications that pile up into a collapsed\n * stack (newest in front, older ones peeking behind), fan out on hover or\n * focus, auto-dismiss (paused while hovered), and can be swiped away.\n *\n * Attributes: `position` (`bottom-right` · `bottom-left` · `bottom-center` ·\n * `top-right` · `top-left` · `top-center`), `duration` (ms, `0` = sticky),\n * `max` (visible in the stack), `contained` (positioned inside its parent\n * instead of the viewport). API: `show(message | options)` → id,\n * `dismiss(id)`, `clear()`; module helper `stackToast()` uses the first stack on\n * the page (creating one). Any `[data-usa-toast=\"message\"]` element shows a\n * toast on click (`data-usa-toast-type`, `data-usa-target`). Events:\n * `usa:show`, `usa:dismiss` (`{ id, reason }`). Toasts live in a polite live\n * region. Reduced motion: no slide or swipe animation.\n */\nexport interface StackToastOptions {\n message?: string;\n title?: string;\n type?: 'info' | 'success' | 'warning' | 'error';\n /** ms; 0 = stays until dismissed. Defaults to the stack's `duration`. */\n duration?: number;\n /** An action button. */\n action?: { label: string; onClick?: () => void };\n}\nexport interface UsaToastStackElement extends UsaElement {\n show(input: string | StackToastOptions): string;\n dismiss(id: string, reason?: string): void;\n clear(): void;\n readonly count: number;\n}\n\nexport const TOAST_POSITIONS = ['bottom-right', 'bottom-left', 'bottom-center', 'top-right', 'top-left', 'top-center'] as const;\nconst ICONS: Record<string, string> = { info: 'ℹ', success: '✓', warning: '!', error: '✕' };\nlet tid = 0;\n\nexport function defineToastStack(tag = 'usa-toast-stack'): CustomElementConstructor | undefined {\n installToastTriggers();\n return defineElement(\n tag,\n (Base) => {\n class UsaToastStack extends Base {\n static get observedAttributes(): string[] {\n return ['position'];\n }\n private _list: HTMLOListElement | null = null;\n private _timers = new Map<string, { left: number; start: number; h: ReturnType<typeof setTimeout> | 0 }>();\n private _hover = false;\n\n get count(): number {\n return this._list ? this._list.querySelectorAll(':scope > .usa-tstack:not([data-leaving])').length : 0;\n }\n\n mount(): void {\n const pos = this.str('position', 'bottom-right');\n this.dataset.position = (TOAST_POSITIONS as readonly string[]).includes(pos) ? pos : 'bottom-right';\n this.setAttribute('role', 'region');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', 'Notifications');\n this._list = this.querySelector(':scope > .usa-tstack-list') || part('ol', 'usa-tstack-list', { 'aria-live': 'polite', 'aria-relevant': 'additions' });\n if (!this._list.isConnected) this.append(this._list);\n const expand = (on: boolean) => {\n this._hover = on;\n this.toggleAttribute('data-expanded', on);\n this.layout();\n for (const [id, t] of this._timers) on ? this.pause(id, t) : this.resume(id);\n };\n this.listen(this, 'pointerenter', () => expand(true));\n this.listen(this, 'pointerleave', () => expand(false));\n this.listen(this, 'focusin', () => expand(true));\n this.listen(this, 'focusout', (e: FocusEvent) => !this.contains(e.relatedTarget as Node) && expand(false));\n this.onCleanup(() => this._timers.forEach((t) => t.h && clearTimeout(t.h)));\n }\n\n private pause(_id: string, t: { left: number; start: number; h: ReturnType<typeof setTimeout> | 0 }): void {\n if (!t.h) return;\n clearTimeout(t.h);\n t.h = 0;\n t.left -= Date.now() - t.start;\n }\n private resume(id: string): void {\n const t = this._timers.get(id);\n if (!t || t.h) return;\n t.start = Date.now();\n t.h = setTimeout(() => this.dismiss(id, 'timeout'), Math.max(400, t.left));\n }\n\n show(input: string | StackToastOptions): string {\n const o: StackToastOptions = typeof input === 'string' ? { message: input } : input || {};\n const id = `usa-tstack-${++tid}`;\n const type = o.type && ICONS[o.type] ? o.type : 'info';\n const li = part('li', `usa-tstack usa-tstack-${type}`, { id, role: type === 'error' ? 'alert' : 'status' });\n li.append(part('span', 'usa-tstack-icon', { 'aria-hidden': 'true' }, ICONS[type]));\n const txt = part('div', 'usa-tstack-text');\n if (o.title) txt.append(Object.assign(document.createElement('strong'), { textContent: o.title }));\n if (o.message) txt.append(Object.assign(document.createElement('span'), { textContent: o.message }));\n li.append(txt);\n if (o.action) {\n const b = part('button', 'usa-tstack-action', { type: 'button' });\n b.textContent = o.action.label;\n b.addEventListener('click', () => {\n o.action?.onClick?.();\n this.dismiss(id, 'action');\n });\n li.append(b);\n }\n const x = part('button', 'usa-tstack-close', { type: 'button', 'aria-label': 'Dismiss' }, '×');\n x.addEventListener('click', () => this.dismiss(id, 'close'));\n li.append(x);\n this.swipe(li, id);\n this._list?.prepend(li);\n const top = this.dataset.position?.startsWith('top');\n this.motion(li, this.reduced ? [{ opacity: 0 }, { opacity: 1 }] : [{ opacity: 0, translate: `0 ${top ? -110 : 110}%`, scale: '0.9' }, { opacity: 1, translate: '0 0', scale: '1' }], { duration: this.reduced ? 150 : 420, easing: 'cubic-bezier(.22,1,.36,1)' });\n this.layout();\n const dur = o.duration ?? this.num('duration', 4000);\n if (dur > 0) {\n this._timers.set(id, { left: dur, start: Date.now(), h: 0 });\n if (!this._hover) this.resume(id);\n }\n this.emit('show', { id, ...o });\n return id;\n }\n\n dismiss(id: string, reason = 'api'): void {\n const li = this._list?.querySelector<HTMLElement>(`#${id}`);\n const t = this._timers.get(id);\n if (t?.h) clearTimeout(t.h);\n this._timers.delete(id);\n if (!li || li.hasAttribute('data-leaving')) return;\n li.setAttribute('data-leaving', '');\n const dx = Number(li.dataset.dx || 0);\n const a = this.motion(li, this.reduced ? [{ opacity: 1 }, { opacity: 0 }] : [{ opacity: 1, transform: `translateX(${dx}px)` }, { opacity: 0, transform: `translateX(${dx >= 0 ? 120 : -120}%)` }], { duration: this.reduced ? 120 : 260, easing: 'cubic-bezier(.4,0,1,1)', fill: 'forwards' });\n const rm = () => {\n li.remove();\n this.layout();\n };\n if (a) a.finished.then(rm, rm);\n else rm();\n this.emit('dismiss', { id, reason });\n }\n\n clear(): void {\n this._list?.querySelectorAll<HTMLElement>(':scope > .usa-tstack').forEach((li) => this.dismiss(li.id, 'clear'));\n }\n\n /** Collapsed: newest in front, older ones scaled down peeking behind. Expanded: a list. */\n private layout(): void {\n if (!this._list) return;\n const items = Array.from(this._list.querySelectorAll<HTMLElement>(':scope > .usa-tstack:not([data-leaving])'));\n const max = Math.max(1, this.num('max', 3));\n const dir = this.dataset.position?.startsWith('top') ? 1 : -1;\n let y = 0;\n items.forEach((li, k) => {\n const h = li.offsetHeight || 56;\n const tf = this._hover ? `translateY(${dir * y}px)` : `translateY(${dir * k * 10}px) scale(${(1 - k * 0.05).toFixed(3)})`;\n li.style.transform = tf;\n li.style.zIndex = String(100 - k);\n li.style.opacity = !this._hover && k >= max ? '0' : '';\n li.toggleAttribute('inert', !this._hover && k > 0);\n y += h + 10;\n });\n this._list.style.height = this._hover && items.length ? `${y}px` : '';\n }\n\n private swipe(li: HTMLElement, id: string): void {\n let x0 = NaN;\n li.addEventListener('pointerdown', (e) => {\n if ((e.target as Element).closest('button')) return;\n x0 = e.clientX;\n li.setPointerCapture?.(e.pointerId);\n });\n li.addEventListener('pointermove', (e) => {\n if (Number.isNaN(x0)) return;\n const dx = e.clientX - x0;\n li.dataset.dx = String(dx);\n li.style.translate = `${dx}px 0`;\n li.style.opacity = String(Math.max(0.2, 1 - Math.abs(dx) / 240));\n });\n const up = () => {\n if (Number.isNaN(x0)) return;\n x0 = NaN;\n const dx = Number(li.dataset.dx || 0);\n li.style.translate = '';\n li.style.opacity = '';\n if (Math.abs(dx) > 80) this.dismiss(id, 'swipe');\n else li.dataset.dx = '0';\n };\n li.addEventListener('pointerup', up);\n li.addEventListener('pointercancel', up);\n }\n }\n return UsaToastStack as unknown as CustomElementConstructor;\n },\n { id: 'toast', text: css }\n );\n}\n\n/** Show a toast on the first `<usa-toast-stack>` of the page (one is created when missing). */\nexport function stackToast(input: string | StackToastOptions, stack?: UsaToastStackElement | null): string {\n defineToastStack();\n let s = stack || document.querySelector<UsaToastStackElement>('usa-toast-stack');\n if (!s) {\n s = document.createElement('usa-toast-stack') as UsaToastStackElement;\n document.body.append(s);\n }\n return s.show(input);\n}\n\nlet trig = false;\nfunction installToastTriggers(): void {\n delegateTriggers();\n if (trig || typeof document === 'undefined') return;\n trig = true;\n document.addEventListener('click', (e) => {\n const t = (e.target as Element | null)?.closest?.('[data-usa-toast]');\n if (!t) return;\n const target = t.getAttribute('data-usa-target');\n const s = target ? (document.getElementById(target) as UsaToastStackElement | null) : null;\n stackToast({ message: t.getAttribute('data-usa-toast') || '', title: t.getAttribute('data-usa-toast-title') || undefined, type: (t.getAttribute('data-usa-toast-type') as StackToastOptions['type']) || 'info' }, s);\n });\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part, nextId } from './shared';\nimport css from './menu.css?raw';\n\n/**\n * `<usa-menu>` (6.3) — a dropdown menu that unfolds from its button: the\n * list scales out of the trigger corner and the items cascade in. The first\n * child is the trigger (or `[data-trigger]`); the other children (`<button>`,\n * `<a>`, `<hr>` separators) become menu items.\n *\n * Attributes: `placement` (`bottom-start` · `bottom-end` · `top-start` ·\n * `top-end`), `effect` (`scale` · `fold` · `slide`). Keyboard: Enter / Space /\n * ArrowDown open, arrows and Home / End move, Esc closes, Tab leaves; outside\n * clicks close. API: `open()`, `close()`, `toggle()`, `opened`. Events:\n * `usa:select` (`{ index, value, item }`), `usa:open`, `usa:close`. Reduced\n * motion: a short fade.\n */\nexport interface UsaMenuElement extends UsaElement {\n readonly opened: boolean;\n open(focus?: 'first' | 'last'): void;\n close(focusTrigger?: boolean): void;\n toggle(): void;\n}\n\nexport const MENU_EFFECTS = ['scale', 'fold', 'slide'] as const;\n\nexport function defineMenu(tag = 'usa-menu'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMenu extends Base {\n static get observedAttributes(): string[] {\n return ['placement', 'effect'];\n }\n private _btn: HTMLElement | null = null;\n private _list: HTMLElement | null = null;\n private _items: HTMLElement[] = [];\n private _open = false;\n\n get opened(): boolean {\n return this._open;\n }\n\n mount(): void {\n const kids = ownChildren(this);\n this._btn = kids.find((k) => k.hasAttribute('data-trigger')) || kids[0] || null;\n let list = this.querySelector<HTMLElement>(':scope > .usa-menu-list');\n if (!list) {\n list = part('div', 'usa-menu-list', { role: 'menu' });\n for (const k of kids) if (k !== this._btn) list.append(k);\n this.append(list);\n }\n this._list = list;\n list.id ||= nextId('usa-menu');\n list.hidden = !this._open;\n const pl = this.str('placement', 'bottom-start');\n this.dataset.placement = /^(bottom|top)-(start|end)$/.test(pl) ? pl : 'bottom-start';\n const ef = this.str('effect', 'scale');\n this.dataset.effect = (MENU_EFFECTS as readonly string[]).includes(ef) ? ef : 'scale';\n this._items = Array.from(list.children).filter((c): c is HTMLElement => c instanceof HTMLElement && !c.matches('hr,[role=\"separator\"]'));\n list.querySelectorAll('hr').forEach((h) => h.setAttribute('role', 'separator'));\n this._items.forEach((it, i) => {\n it.setAttribute('role', 'menuitem');\n it.tabIndex = -1;\n if (it.localName === 'button' && !it.hasAttribute('type')) it.setAttribute('type', 'button');\n this.listen(it, 'click', () => {\n this.emit('select', { index: i, value: it.dataset.value || (it.textContent || '').trim(), item: it });\n this.close(true);\n });\n });\n const b = this._btn;\n if (b) {\n b.setAttribute('aria-haspopup', 'menu');\n b.setAttribute('aria-expanded', String(this._open));\n b.setAttribute('aria-controls', list.id);\n if (b.localName === 'button' && !b.hasAttribute('type')) b.setAttribute('type', 'button');\n this.listen(b, 'click', () => this.toggle());\n this.listen(b, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n this.open(e.key === 'ArrowUp' ? 'last' : 'first');\n }\n });\n }\n this.listen(list, 'keydown', (e: KeyboardEvent) => {\n const n = this._items.length;\n const i = this._items.indexOf(document.activeElement as HTMLElement);\n let j = -1;\n if (e.key === 'ArrowDown') j = (i + 1) % n;\n else if (e.key === 'ArrowUp') j = (i - 1 + n) % n;\n else if (e.key === 'Home') j = 0;\n else if (e.key === 'End') j = n - 1;\n else if (e.key === 'Escape') {\n e.preventDefault();\n return this.close(true);\n } else if (e.key === 'Tab') return this.close(false);\n if (j >= 0) {\n e.preventDefault();\n this._items[j]?.focus();\n }\n });\n this.listen(document, 'pointerdown', (e: PointerEvent) => {\n if (this._open && !this.contains(e.target as Node)) this.close(false);\n });\n }\n\n open(focus: 'first' | 'last' = 'first'): void {\n const l = this._list;\n if (!l || this._open) return;\n this._open = true;\n l.hidden = false;\n this._btn?.setAttribute('aria-expanded', 'true');\n this.setAttribute('data-open', '');\n const ef = this.dataset.effect;\n if (this.reduced) this.motion(l, [{ opacity: 0 }, { opacity: 1 }], { duration: 120 });\n else {\n const f: Keyframe[] = ef === 'fold' ? [{ transform: 'perspective(600px) rotateX(-70deg)', opacity: 0 }, { transform: 'none', opacity: 1 }] : ef === 'slide' ? [{ transform: 'translateY(-10px)', opacity: 0, clipPath: 'inset(0 0 100% 0 round 12px)' }, { transform: 'none', opacity: 1, clipPath: 'inset(0 0 0 0 round 12px)' }] : [{ transform: 'scale(.6)', opacity: 0 }, { transform: 'scale(1.03)', opacity: 1, offset: 0.7 }, { transform: 'none', opacity: 1 }];\n this.motion(l, f, { duration: 300, easing: 'cubic-bezier(.22,1,.36,1)' });\n this._items.forEach((it, i) => this.motion(it, [{ opacity: 0, transform: 'translateY(-6px)' }, { opacity: 1, transform: 'none' }], { duration: 260, delay: 40 + i * 35, easing: 'cubic-bezier(.22,1,.36,1)', fill: 'backwards' }));\n }\n (focus === 'last' ? this._items[this._items.length - 1] : this._items[0])?.focus();\n this.emit('open');\n }\n\n close(focusTrigger = false): void {\n const l = this._list;\n if (!l || !this._open) return;\n this._open = false;\n this._btn?.setAttribute('aria-expanded', 'false');\n this.removeAttribute('data-open');\n const a = this.motion(l, [{ opacity: 1, transform: 'none' }, { opacity: 0, transform: this.reduced ? 'none' : 'scale(.96)' }], { duration: this.reduced ? 80 : 150, easing: 'ease-in' });\n const hide = () => {\n if (!this._open) l.hidden = true;\n };\n if (a) a.finished.then(hide, hide);\n else hide();\n if (focusTrigger) this._btn?.focus();\n this.emit('close');\n }\n\n toggle(): void {\n if (this._open) this.close(true);\n else this.open();\n }\n }\n return UsaMenu as unknown as CustomElementConstructor;\n },\n { id: 'menu', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, part } from './shared';\nimport css from './meters.css?raw';\n\n/**\n * 6.4 meters: `<usa-progress-ring>` and `<usa-odometer>`.\n *\n * `<usa-progress-ring value=\"64\" max=\"100\">` — a ring, `bar` or `semi`\n * (semicircle gauge) `variant`; the arc eases (with a little overshoot) to\n * each new value while the centre label counts; `gradient=\"#a,#b\"`;\n * no `value` = indeterminate (spinning arc). `role=\"progressbar\"`.\n * Event `usa:complete` when it reaches max.\n *\n * `<usa-odometer value=\"1234\">` — rolling digit wheels: every digit column\n * spins to its new digit (lower digits travel further), columns slide in /\n * out when the length changes; `locale` grouping via Intl.NumberFormat,\n * `decimals`, `prefix` / `suffix`, `duration`. The accessible name is the\n * formatted number.\n *\n * Reduced motion: values switch without animation.\n */\nexport interface UsaProgressRingElement extends UsaElement {\n value: number | null;\n max: number;\n}\nexport interface UsaOdometerElement extends UsaElement {\n value: number;\n readonly text: string;\n}\n\nexport const PROGRESS_VARIANTS = ['ring', 'bar', 'semi'] as const;\nconst NS = 'http://www.w3.org/2000/svg';\n\nexport function defineProgressRing(tag = 'usa-progress-ring'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaProgressRing extends Base {\n static get observedAttributes(): string[] {\n return ['variant', 'value', 'max', 'gradient'];\n }\n private _shown = 0;\n private _arc: SVGPathElement | SVGCircleElement | HTMLElement | null = null;\n private _label: HTMLElement | null = null;\n private _len = 1;\n private _raf = 0;\n\n get value(): number | null {\n return this.hasAttribute('value') ? this.num('value', 0) : null;\n }\n set value(v: number | null) {\n if (v === null) this.removeAttribute('value');\n else this.setAttribute('value', String(v));\n }\n get max(): number {\n return Math.max(1e-9, this.num('max', 100));\n }\n set max(v: number) {\n this.setAttribute('max', String(v));\n }\n\n changed(name: string): void {\n if (name === 'value' && this._arc) return this.update();\n super.changed(name);\n }\n\n mount(): void {\n const v = this.str('variant', 'ring');\n const variant = (PROGRESS_VARIANTS as readonly string[]).includes(v) ? v : 'ring';\n this.dataset.variant = variant;\n this.setAttribute('role', 'progressbar');\n this.setAttribute('aria-valuemin', '0');\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const stops = this.str('gradient', '').split(',').map((s) => s.trim()).filter(Boolean);\n const gid = `usa-pr-${Math.random().toString(36).slice(2, 8)}`;\n if (variant === 'bar') {\n const track = part('div', 'usa-pr-track');\n const fill = part('div', 'usa-pr-fill');\n if (stops.length) fill.style.background = `linear-gradient(90deg,${stops.join(',')})`;\n track.append(fill);\n this.append(track);\n this._arc = fill;\n } else {\n const svg = document.createElementNS(NS, 'svg');\n svg.setAttribute('data-usa-part', '');\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('class', 'usa-pr-svg');\n svg.setAttribute('width', '100%');\n svg.setAttribute('height', '100%');\n const semi = variant === 'semi';\n svg.setAttribute('viewBox', semi ? '0 0 100 56' : '0 0 100 100');\n const d = semi ? 'M 8 50 A 42 42 0 0 1 92 50' : 'M 50 8 A 42 42 0 1 1 49.99 8';\n const grad = stops.length ? `<defs><linearGradient id=\"${gid}\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">${stops.map((c, i) => `<stop offset=\"${stops.length > 1 ? i / (stops.length - 1) : 0}\" stop-color=\"${c}\"/>`).join('')}</linearGradient></defs>` : '';\n svg.innerHTML = `${grad}<path class=\"usa-pr-track\" d=\"${d}\"/><path class=\"usa-pr-arc\" d=\"${d}\"${stops.length ? ` stroke=\"url(#${gid})\"` : ''}/>`;\n this.append(svg);\n this._arc = svg.querySelector('.usa-pr-arc');\n this._len = semi ? Math.PI * 42 : Math.PI * 2 * 42;\n (this._arc as SVGPathElement).style.strokeDasharray = `${this._len}`;\n (this._arc as SVGPathElement).style.strokeDashoffset = `${this._len}`;\n }\n this._label = part('span', 'usa-pr-label', { 'aria-hidden': 'true' });\n if (this.flag('no-label')) this._label.hidden = true;\n this.append(this._label);\n this._shown = 0;\n this.onCleanup(() => {\n if (this._raf && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(this._raf);\n });\n this.update();\n }\n\n private paint(frac: number): void {\n const f = clampN(frac, 0, 1.08);\n if (this._arc instanceof HTMLElement) this._arc.style.transform = `scaleX(${Math.min(1, f)})`;\n else if (this._arc) (this._arc as SVGPathElement).style.strokeDashoffset = `${(this._len * (1 - Math.min(1, f))).toFixed(2)}`;\n }\n\n private update(): void {\n const v = this.value;\n const max = this.max;\n this.setAttribute('aria-valuemax', String(max));\n this.toggleAttribute('data-indeterminate', v === null);\n if (v === null) {\n this.removeAttribute('aria-valuenow');\n if (this._label) this._label.textContent = '';\n this.paint(0.28);\n return;\n }\n const target = clampN(v, 0, max) / max;\n this.setAttribute('aria-valuenow', String(clampN(v, 0, max)));\n const from = this._shown;\n this._shown = target;\n const label = (f: number) => {\n if (this._label) this._label.textContent = `${Math.round(f * 100)}%`;\n };\n if (this._raf && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(this._raf);\n if (this.reduced || typeof requestAnimationFrame !== 'function') {\n this.paint(target);\n label(target);\n } else {\n const t0 = performance.now();\n const dur = this.num('duration', 900);\n const step = (now: number) => {\n const k = Math.min(1, (now - t0) / dur);\n // ease-out-back: a little overshoot, then settle\n const c = 1.4;\n const e = 1 + (c + 1) * Math.pow(k - 1, 3) + c * Math.pow(k - 1, 2);\n const f = from + (target - from) * e;\n this.paint(f);\n label(from + (target - from) * Math.min(1, k * 1.15));\n this._raf = k < 1 ? requestAnimationFrame(step) : 0;\n if (k >= 1) this.paint(target);\n };\n this._raf = requestAnimationFrame(step);\n }\n if (target >= 1 && from < 1) this.emit('complete', { value: v });\n }\n }\n return UsaProgressRing as unknown as CustomElementConstructor;\n },\n { id: 'meters', text: css }\n );\n}\n\nexport function defineOdometer(tag = 'usa-odometer'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaOdometer extends Base {\n static get observedAttributes(): string[] {\n return ['value', 'locale', 'decimals', 'prefix', 'suffix'];\n }\n private _row: HTMLElement | null = null;\n private _text = '';\n\n get value(): number {\n return this.num('value', 0);\n }\n set value(v: number) {\n this.setAttribute('value', String(v));\n }\n get text(): string {\n return this._text;\n }\n\n changed(name: string): void {\n if (name === 'value' && this._row) return this.render(true);\n super.changed(name);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this._row = part('span', 'usa-odo-row', { 'aria-hidden': 'true' });\n this.append(this._row);\n this.setAttribute('role', 'img');\n this._text = '';\n this.render(false);\n }\n\n private format(): string {\n const d = Math.max(0, Math.min(6, Math.round(this.num('decimals', 0))));\n let s: string;\n try {\n s = new Intl.NumberFormat(this.str('locale', '') || undefined, { minimumFractionDigits: d, maximumFractionDigits: d }).format(this.value);\n } catch {\n s = this.value.toFixed(d);\n }\n return `${this.str('prefix', '')}${s}${this.str('suffix', '')}`;\n }\n\n private column(ch: string): HTMLElement {\n const isDigit = /\\d/.test(ch);\n const col = part('span', isDigit ? 'usa-odo-col' : 'usa-odo-sym');\n if (isDigit) {\n const strip = document.createElement('span');\n strip.className = 'usa-odo-strip';\n strip.textContent = '01234567890123456789'.split('').join('\\n');\n col.append(strip);\n col.dataset.d = ch;\n strip.style.transform = `translateY(${-Number(ch) * 5}%)`;\n } else col.textContent = ch;\n return col;\n }\n\n private render(animate: boolean): void {\n const row = this._row;\n if (!row) return;\n const next = this.format();\n this._text = next;\n this.setAttribute('aria-label', next);\n const anim = animate && !this.reduced;\n const dur = this.num('duration', 1100);\n const chars = next.split('');\n const old = Array.from(row.children) as HTMLElement[];\n const off = chars.length - old.length; // right-aligned: digits keep their place value\n const fresh = new Set<HTMLElement>();\n const cols = chars.map((ch, i) => {\n const o = old[i - off];\n const digit = /\\d/.test(ch);\n if (o && digit && o.dataset.d !== undefined) return o;\n if (o && !digit && o.dataset.d === undefined) {\n o.textContent = ch;\n return o;\n }\n const c = this.column(ch);\n fresh.add(c);\n return c;\n });\n row.replaceChildren(...cols);\n cols.forEach((c, i) => {\n if (fresh.has(c)) {\n if (anim) this.motion(c, [{ opacity: 0, transform: 'translateY(-60%)' }, { opacity: 1, transform: 'none' }], { duration: 420, easing: 'cubic-bezier(.22,1,.36,1)' });\n return;\n }\n if (c.dataset.d === undefined) return;\n const to = Number(chars[i]);\n const from = Number(c.dataset.d);\n c.dataset.d = String(to);\n const strip = c.firstElementChild as HTMLElement;\n strip.style.transform = `translateY(${-to * 5}%)`;\n if (!anim || from === to) return;\n const end = to >= from ? -to * 5 : -(to + 10) * 5; // always roll forward\n const place = cols.length - i;\n this.motion(strip, [{ transform: `translateY(${-from * 5}%)` }, { transform: `translateY(${end}%)` }], { duration: Math.max(400, dur - place * 60), easing: 'cubic-bezier(.2,.9,.25,1.04)' });\n });\n }\n }\n return UsaOdometer as unknown as CustomElementConstructor;\n },\n { id: 'meters', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { part } from './shared';\nimport css from './skeleton-reveal.css?raw';\n\n/**\n * `<usa-skeleton-reveal loading>` (6.4) — a skeleton generated from the\n * real content: while `loading`, every text line, image and marked block\n * (`[data-skeleton]`) of the children is measured and covered by a\n * placeholder with one synchronized shimmer (`variant=\"wave | pulse |\n * glow\"`). Remove `loading` (or call `reveal()`) and the placeholders\n * dissolve top-to-bottom while the content fades in from a blur.\n *\n * `aria-busy` follows `loading`. Event `usa:reveal`. Reduced motion: no\n * shimmer, a plain crossfade.\n */\nexport interface UsaSkeletonRevealElement extends UsaElement {\n loading: boolean;\n reveal(): Promise<void>;\n}\n\nexport const SKELETON_VARIANTS = ['wave', 'pulse', 'glow'] as const;\n\nexport function defineSkeletonReveal(tag = 'usa-skeleton-reveal'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSkeletonReveal extends Base {\n static get observedAttributes(): string[] {\n return ['loading', 'variant'];\n }\n private _layer: HTMLElement | null = null;\n\n get loading(): boolean {\n return this.flag('loading');\n }\n set loading(v: boolean) {\n this.setFlag('loading', v);\n }\n\n changed(name: string): void {\n if (name === 'loading') {\n if (this.loading) this.build();\n else void this.reveal();\n return;\n }\n super.changed(name);\n }\n\n mount(): void {\n const v = this.str('variant', 'wave');\n this.dataset.variant = (SKELETON_VARIANTS as readonly string[]).includes(v) ? v : 'wave';\n if (this.loading) this.build();\n if (typeof ResizeObserver === 'function') {\n const ro = new ResizeObserver(() => this.loading && this.build());\n ro.observe(this);\n this.onCleanup(() => ro.disconnect());\n }\n this.onCleanup(() => this._layer?.remove());\n }\n\n /** Measure the content and lay placeholders over it. */\n private build(): void {\n this.setAttribute('aria-busy', 'true');\n this.setAttribute('data-loading', '');\n this._layer?.remove();\n const layer = part('div', 'usa-sk-layer', { 'aria-hidden': 'true' });\n const host = this.getBoundingClientRect();\n const boxes: [number, number, number, number, boolean][] = [];\n const add = (r: DOMRect | { left: number; top: number; width: number; height: number }, round = false) => {\n if (r.width < 2 || r.height < 2) return;\n boxes.push([r.left - host.left, r.top - host.top, r.width, r.height, round]);\n };\n const marked = Array.from(this.querySelectorAll<HTMLElement>('[data-skeleton], img, svg, video, canvas, button, input'));\n for (const m of marked) if (!m.closest('.usa-sk-layer')) add(m.getBoundingClientRect(), m.dataset.skeleton === 'circle' || getComputedStyle(m).borderRadius === '50%');\n // text: one bar per rendered line (Range client rects), skipping marked elements\n const walker = document.createTreeWalker(this, NodeFilter.SHOW_TEXT);\n for (let n = walker.nextNode(); n; n = walker.nextNode()) {\n if (!n.textContent?.trim() || (n.parentElement && marked.some((m) => m.contains(n!.parentElement)))) continue;\n const range = document.createRange();\n range.selectNodeContents(n);\n const rects = typeof range.getClientRects === 'function' ? Array.from(range.getClientRects()) : [];\n for (const r of rects) add({ left: r.left, top: r.top + r.height * 0.18, width: r.width, height: r.height * 0.64 });\n }\n for (const [x, y, w, h, round] of boxes) {\n const b = document.createElement('span');\n b.className = 'usa-sk-box';\n b.style.cssText = `left:${x.toFixed(1)}px;top:${y.toFixed(1)}px;width:${w.toFixed(1)}px;height:${h.toFixed(1)}px;${round ? 'border-radius:50%' : ''}`;\n b.style.setProperty('--usa-sk-x', `${(-x).toFixed(1)}px`);\n layer.append(b);\n }\n this.append(layer);\n this._layer = layer;\n }\n\n reveal(): Promise<void> {\n const layer = this._layer;\n this.removeAttribute('aria-busy');\n if (this.hasAttribute('loading')) this.removeAttribute('loading');\n this._layer = null;\n if (!layer) {\n this.removeAttribute('data-loading');\n return Promise.resolve();\n }\n const boxes = Array.from(layer.children) as HTMLElement[];\n const kids = Array.from(this.children).filter((c) => c !== layer) as HTMLElement[];\n this.removeAttribute('data-loading');\n const done: Promise<unknown>[] = [];\n if (this.reduced) {\n const a = this.motion(layer, [{ opacity: 1 }, { opacity: 0 }], { duration: 200, fill: 'forwards' });\n if (a) done.push(a.finished);\n } else {\n const top = Math.min(...boxes.map((b) => parseFloat(b.style.top) || 0), 0);\n for (const b of boxes) {\n const a = this.motion(b, [{ opacity: 1, transform: 'none', filter: 'blur(0)' }, { opacity: 0, transform: 'scale(1.04)', filter: 'blur(6px)' }], { duration: 420, delay: Math.min(500, ((parseFloat(b.style.top) || 0) - top) * 1.2), easing: 'cubic-bezier(.4,0,.2,1)', fill: 'forwards' });\n if (a) done.push(a.finished);\n }\n kids.forEach((k, i) => this.motion(k, [{ opacity: 0, filter: 'blur(8px)', transform: 'translateY(6px)' }, { opacity: 1, filter: 'blur(0)', transform: 'none' }], { duration: 520, delay: 60 + i * 70, easing: 'cubic-bezier(.22,1,.36,1)', fill: 'backwards' }));\n }\n const end = () => {\n layer.remove();\n this.emit('reveal');\n };\n return Promise.all(done).then(end, end);\n }\n }\n return UsaSkeletonReveal as unknown as CustomElementConstructor;\n },\n { id: 'skeleton-reveal', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, part } from './shared';\nimport css from './star-rating.css?raw';\n\n/**\n * `<usa-star-rating value=\"3.5\">` (6.4) — rating stars 2.0: the fill\n * follows the pointer (hover preview, `step=\"0.5\"` half stars), a click\n * pops the chosen star and throws a small sparkle burst, the other stars\n * ripple in sequence. `max`, `step` (`1` · `0.5`), `readonly`, `label`,\n * `icon` (`star` · `heart`). Keyboard: it is a `role=\"slider\"` — arrows,\n * Home / End. Events `change`, `usa:change` (`{ value }`). Form-associated\n * (7.9): with `name` the value is submitted like `<usa-rating>`'s, which it\n * replaces in 8.0. Reduced motion: no pop,\n * burst or ripple.\n */\nexport interface UsaStarRatingElement extends UsaElement {\n value: number;\n}\n\nconst PATHS: Record<string, string> = {\n star: 'M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6L2.5 9.4l6.6-.8z',\n heart: 'M12 21s-7.5-4.6-9.6-9.2C.9 8.4 2.9 4.5 6.6 4.5c2.1 0 3.6 1.2 5.4 3.1 1.8-1.9 3.3-3.1 5.4-3.1 3.7 0 5.7 3.9 4.2 7.3C19.5 16.4 12 21 12 21z',\n};\n\n/** <usa-rating> icon characters accepted by `icon` (7.9). */\nconst ICON_ALIASES: Record<string, string> = { '★': 'star', '☆': 'star', '♥': 'heart', '❤': 'heart', '❤️': 'heart' };\n\nexport function defineStarRating(tag = 'usa-star-rating'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaStarRating extends Base {\n static formAssociated = true;\n static get observedAttributes(): string[] {\n return ['max', 'icon', 'readonly', 'step'];\n }\n private _internals: ElementInternals | null = null;\n constructor() {\n super();\n try {\n this._internals = (this as any).attachInternals?.() ?? null;\n } catch {\n this._internals = null;\n }\n }\n private _v = 0;\n private _stars: HTMLElement[] = [];\n\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this.set(v, false);\n }\n\n private get max(): number {\n return Math.max(1, Math.round(this.num('max', 5)));\n }\n private get step(): number {\n return this.num('step', 1) === 0.5 ? 0.5 : 1;\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const icon = PATHS[ICON_ALIASES[this.str('icon', 'star')] || this.str('icon', 'star')] || PATHS.star;\n this._stars = [];\n for (let i = 0; i < this.max; i++) {\n const s = part('span', 'usa-star', { 'aria-hidden': 'true' }, `<svg viewBox=\"0 0 24 24\" width=\"100%\" height=\"100%\"><path class=\"usa-star-bg\" d=\"${icon}\"/></svg><span class=\"usa-star-fg\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"${icon}\"/></svg></span>`);\n this._stars.push(s);\n this.append(s);\n }\n const ro = this.flag('readonly');\n this.setAttribute('role', ro ? 'img' : 'slider');\n if (!ro) {\n this.tabIndex = 0;\n this.setAttribute('aria-valuemin', '0');\n this.setAttribute('aria-valuemax', String(this.max));\n }\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Rating'));\n this._v = clampN(this.num('value', 0), 0, this.max);\n this.paint(this._v);\n this.sync();\n if (ro) return;\n const at = (e: PointerEvent) => {\n const r = this._stars[0].getBoundingClientRect();\n const last = this._stars[this._stars.length - 1].getBoundingClientRect();\n const w = last.right - r.left || 1;\n const raw = ((e.clientX - r.left) / w) * this.max;\n return clampN(Math.ceil(raw / this.step) * this.step, this.step, this.max);\n };\n this.listen(this, 'pointermove', (e: PointerEvent) => {\n this.setAttribute('data-preview', '');\n this.paint(at(e));\n });\n this.listen(this, 'pointerleave', () => {\n this.removeAttribute('data-preview');\n this.paint(this._v);\n });\n this.listen(this, 'click', (e: MouseEvent) => this.set(at(e as PointerEvent), true));\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n const k = e.key;\n let v = this._v;\n if (k === 'ArrowRight' || k === 'ArrowUp') v += this.step;\n else if (k === 'ArrowLeft' || k === 'ArrowDown') v -= this.step;\n else if (k === 'Home') v = 0;\n else if (k === 'End') v = this.max;\n else return;\n e.preventDefault();\n this.set(v, true);\n });\n }\n\n private sync(): void {\n this.setAttribute('aria-valuenow', String(this._v));\n this.setAttribute('aria-valuetext', `${this._v} of ${this.max}`);\n this._internals?.setFormValue?.(String(this._v));\n if (this.flag('readonly')) this.setAttribute('aria-label', `${this.str('label', 'Rating')}: ${this._v} of ${this.max}`);\n }\n\n private paint(v: number): void {\n this._stars.forEach((s, i) => s.style.setProperty('--usa-star-fill', `${(clampN(v - i, 0, 1) * 100).toFixed(0)}%`));\n }\n\n private set(v: number, user: boolean): void {\n const nv = clampN(Math.round(v / this.step) * this.step, 0, this.max);\n const changed = nv !== this._v;\n this._v = nv;\n this.paint(nv);\n this.sync();\n if (!user) return;\n const idx = Math.ceil(nv) - 1;\n if (!this.reduced && idx >= 0) {\n const star = this._stars[idx];\n this.motion(star, [{ transform: 'scale(1)' }, { transform: 'scale(1.45) rotate(-12deg)', offset: 0.35 }, { transform: 'scale(.92)', offset: 0.7 }, { transform: 'none' }], { duration: 520, easing: 'cubic-bezier(.3,1.4,.5,1)' });\n this._stars.slice(0, idx).forEach((s, i) => this.motion(s, [{ transform: 'none' }, { transform: 'translateY(-5px)' }, { transform: 'none' }], { duration: 320, delay: i * 45, easing: 'ease-out' }));\n for (let k = 0; k < 8; k++) {\n const sp = part('span', 'usa-star-spark', { 'aria-hidden': 'true' });\n star.append(sp);\n const a = (k / 8) * Math.PI * 2;\n const anim = this.motion(sp, [{ transform: 'translate(-50%,-50%) scale(1)', opacity: 1 }, { transform: `translate(calc(-50% + ${(Math.cos(a) * 22).toFixed(1)}px), calc(-50% + ${(Math.sin(a) * 22).toFixed(1)}px)) scale(.2)`, opacity: 0 }], { duration: 520, easing: 'cubic-bezier(.2,.8,.3,1)', fill: 'forwards' });\n const rm = () => sp.remove();\n if (anim) anim.finished.then(rm, rm);\n else rm();\n }\n }\n if (changed) {\n this.dispatchEvent(new Event('change', { bubbles: true }));\n this.emit('change', { value: nv });\n }\n }\n }\n return UsaStarRating as unknown as CustomElementConstructor;\n },\n { id: 'star-rating', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part } from './shared';\nimport css from './milestones.css?raw';\n\n/**\n * `<usa-milestones>` (6.5) — a scroll-drawn timeline: a progress line grows\n * down the rail as you scroll, and each milestone (a child element, with an\n * optional `data-date`) pops its dot and slides its card in when the line\n * reaches it. Cards alternate sides on wide screens (`layout=\"alternate\"`,\n * default) or sit on one side (`layout=\"left\"`); below 640 px they always\n * stack. Events `usa:reach` (`{ index }`). Reduced motion: everything is\n * shown, the line is full.\n */\nexport interface UsaMilestonesElement extends UsaElement {\n readonly reached: number;\n}\n\nexport function defineMilestones(tag = 'usa-milestones'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMilestones extends Base {\n static get observedAttributes(): string[] {\n return ['layout'];\n }\n private _items: HTMLElement[] = [];\n private _fill: HTMLElement | null = null;\n private _reached = -1;\n private _raf = 0;\n\n get reached(): number {\n return this._reached;\n }\n\n mount(): void {\n this.dataset.layout = this.str('layout', 'alternate') === 'left' ? 'left' : 'alternate';\n this.setAttribute('role', this.getAttribute('role') || 'list');\n this.querySelectorAll(':scope > .usa-ms-rail').forEach((n) => n.remove());\n const rail = part('div', 'usa-ms-rail', { 'aria-hidden': 'true' });\n this._fill = part('div', 'usa-ms-fill');\n rail.append(this._fill);\n this.prepend(rail);\n this._items = ownChildren(this, '[data-usa-part],.usa-ms-rail');\n this._items.forEach((it, i) => {\n it.classList.add('usa-ms-item');\n it.setAttribute('role', 'listitem');\n it.dataset.side = this.dataset.layout === 'left' || i % 2 === 0 ? 'right' : 'left';\n if (!it.querySelector(':scope > .usa-ms-dot')) it.prepend(part('span', 'usa-ms-dot', { 'aria-hidden': 'true' }));\n const date = it.dataset.date;\n if (date && !it.querySelector(':scope > .usa-ms-date')) it.querySelector(':scope > .usa-ms-dot')!.after(part('span', 'usa-ms-date', {}, ''));\n const d = it.querySelector<HTMLElement>(':scope > .usa-ms-date');\n if (d && date) d.textContent = date;\n });\n this._reached = -1;\n if (this.reduced) {\n this._fill.style.transform = 'scaleY(1)';\n this._items.forEach((it) => it.setAttribute('data-reached', ''));\n this._reached = this._items.length - 1;\n return;\n }\n const on = () => {\n if (!this._raf) this._raf = typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => this.update()) : (this.update(), 0);\n };\n this.listen(window, 'scroll', on, { passive: true });\n this.listen(window, 'resize', on);\n this.onCleanup(() => {\n if (this._raf && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(this._raf);\n });\n this.update();\n }\n\n /** Fill the rail up to the viewport's 60 % line and reveal the milestones it passed. */\n update(): void {\n this._raf = 0;\n const r = this.getBoundingClientRect();\n const vh = (typeof window !== 'undefined' && window.innerHeight) || 800;\n const line = vh * 0.6;\n const p = r.height ? Math.min(1, Math.max(0, (line - r.top) / r.height)) : 0;\n if (this._fill) this._fill.style.transform = `scaleY(${p.toFixed(4)})`;\n this._items.forEach((it, i) => {\n if (it.hasAttribute('data-reached')) return;\n const top = it.getBoundingClientRect().top;\n if (top < line || p >= 1) {\n it.setAttribute('data-reached', '');\n const card = Array.from(it.children).filter((c) => !c.matches('.usa-ms-dot,.usa-ms-date')) as HTMLElement[];\n const dot = it.querySelector(':scope > .usa-ms-dot');\n if (dot) this.motion(dot, [{ transform: 'scale(0)' }, { transform: 'scale(1.5)', offset: 0.6 }, { transform: 'scale(1)' }], { duration: 420, easing: 'cubic-bezier(.3,1.4,.5,1)' });\n const dx = it.dataset.side === 'left' ? -28 : 28;\n card.forEach((c, k) => this.motion(c, [{ opacity: 0, transform: `translateX(${dx}px)` }, { opacity: 1, transform: 'none' }], { duration: 520, delay: 80 + k * 60, easing: 'cubic-bezier(.22,1,.36,1)', fill: 'backwards' }));\n if (i > this._reached) this._reached = i;\n this.emit('reach', { index: i });\n }\n });\n }\n }\n return UsaMilestones as unknown as CustomElementConstructor;\n },\n { id: 'milestones', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './masonry-flow.css?raw';\n\n/**\n * `<usa-masonry-flow>` (6.5) — a masonry grid whose items glide to their\n * new places (FLIP) whenever the layout changes: resize, items added or\n * removed, `filter()`, `shuffle()`, `sort()`. Columns come from `min`\n * (minimum column width, px) and `gap`. Hidden items scale out, shown ones\n * scale in. Event `usa:layout` (`{ columns }`). Reduced motion: items jump.\n */\nexport interface UsaMasonryFlowElement extends UsaElement {\n readonly columns: number;\n layout(animate?: boolean): void;\n filter(fn: ((el: HTMLElement) => boolean) | string | null): void;\n shuffle(): void;\n sort(compare: (a: HTMLElement, b: HTMLElement) => number): void;\n}\n\nexport function defineMasonryFlow(tag = 'usa-masonry-flow'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMasonryFlow extends Base {\n static get observedAttributes(): string[] {\n return ['min', 'gap'];\n }\n private _cols = 1;\n private _pos = new Map<HTMLElement, [number, number]>();\n private _busy = false;\n\n get columns(): number {\n return this._cols;\n }\n\n private items(): HTMLElement[] {\n return ownChildren(this);\n }\n\n mount(): void {\n this.layout(false);\n if (typeof ResizeObserver === 'function') {\n let w = this.clientWidth;\n const ro = new ResizeObserver(() => {\n if (Math.abs(this.clientWidth - w) < 2) return;\n w = this.clientWidth;\n this.layout(true);\n });\n ro.observe(this);\n this.onCleanup(() => ro.disconnect());\n }\n if (typeof MutationObserver === 'function') {\n const mo = new MutationObserver(() => !this._busy && this.layout(true));\n mo.observe(this, { childList: true });\n this.onCleanup(() => mo.disconnect());\n }\n // images change heights when they load\n this.listen(this, 'load', () => this.layout(false), { capture: true } as AddEventListenerOptions);\n }\n\n layout(animate = true): void {\n const gap = Math.max(0, this.num('gap', 12));\n const min = Math.max(60, this.num('min', 160));\n const W = this.clientWidth || 1;\n const cols = Math.max(1, Math.floor((W + gap) / (min + gap)));\n const cw = (W - gap * (cols - 1)) / cols;\n const heights = new Array(cols).fill(0);\n const all = this.items();\n for (const it of all) {\n const hidden = it.hasAttribute('data-hidden');\n it.style.width = `${cw}px`;\n if (hidden) continue;\n const c = heights.indexOf(Math.min(...heights));\n const x = c * (cw + gap);\n const y = heights[c];\n heights[c] += (it.offsetHeight || 0) + gap;\n const old = this._pos.get(it);\n it.style.transform = `translate(${x.toFixed(1)}px,${y.toFixed(1)}px)`;\n if (animate && !this.reduced && old && (old[0] !== x || old[1] !== y)) {\n this.motion(it, [{ transform: `translate(${old[0].toFixed(1)}px,${old[1].toFixed(1)}px)` }, { transform: `translate(${x.toFixed(1)}px,${y.toFixed(1)}px)` }], { duration: 520, easing: 'cubic-bezier(.22,1,.36,1)' });\n } else if (animate && !this.reduced && !old) {\n this.motion(it, [{ opacity: 0, transform: `translate(${x.toFixed(1)}px,${(y + 20).toFixed(1)}px) scale(.9)` }, { opacity: 1, transform: `translate(${x.toFixed(1)}px,${y.toFixed(1)}px)` }], { duration: 420, easing: 'cubic-bezier(.22,1,.36,1)' });\n }\n this._pos.set(it, [x, y]);\n }\n for (const k of Array.from(this._pos.keys())) if (!all.includes(k) || k.hasAttribute('data-hidden')) this._pos.delete(k);\n this.style.height = `${Math.max(0, Math.max(...heights) - gap)}px`;\n const changed = cols !== this._cols;\n this._cols = cols;\n if (changed || animate) this.emit('layout', { columns: cols });\n }\n\n filter(fn: ((el: HTMLElement) => boolean) | string | null): void {\n const test = typeof fn === 'string' ? (el: HTMLElement) => el.matches(fn) : fn || (() => true);\n for (const it of this.items()) {\n const show = test(it);\n const was = !it.hasAttribute('data-hidden');\n if (show === was) continue;\n if (show) it.removeAttribute('data-hidden');\n else if (this.reduced) it.setAttribute('data-hidden', '');\n else {\n const tf = it.style.transform;\n const a = this.motion(it, [{ opacity: 1, transform: tf }, { opacity: 0, transform: `${tf} scale(.6)` }], { duration: 260, easing: 'ease-in' });\n it.setAttribute('data-hidden', '');\n if (a) {\n it.setAttribute('data-leaving', '');\n const rm = () => it.removeAttribute('data-leaving');\n a.finished.then(rm, rm);\n }\n }\n }\n this.layout(true);\n }\n\n private reorder(list: HTMLElement[]): void {\n this._busy = true;\n for (const it of list) this.append(it);\n this._busy = false;\n this.layout(true);\n }\n\n shuffle(): void {\n const list = this.items();\n for (let i = list.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [list[i], list[j]] = [list[j], list[i]];\n }\n this.reorder(list);\n }\n\n sort(compare: (a: HTMLElement, b: HTMLElement) => number): void {\n this.reorder(this.items().sort(compare));\n }\n }\n return UsaMasonryFlow as unknown as CustomElementConstructor;\n },\n { id: 'masonry-flow', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, ownChildren, part } from './shared';\nimport css from './compare.css?raw';\n\n/**\n * `<usa-compare>` (6.5) — before / after image compare slider. The first\n * child is \"before\", the second \"after\" (images, videos or any element).\n * Drag the handle (or anywhere with `hover`), click to jump, or use the\n * keyboard (it is a `role=\"slider\"`: arrows, Page Up / Down, Home / End).\n * `position` (0–100, default 50), `orientation=\"horizontal | vertical\"`,\n * `intro` plays a short sweep when it scrolls into view, `labels=\"Before,\n * After\"`. Event `usa:change` (`{ position }`). Reduced motion: no intro\n * sweep or eased jumps.\n */\nexport interface UsaCompareElement extends UsaElement {\n position: number;\n}\n\nexport function defineCompare(tag = 'usa-compare'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCompare extends Base {\n static get observedAttributes(): string[] {\n return ['orientation', 'labels'];\n }\n private _p = 50;\n private _after: HTMLElement | null = null;\n private _handle: HTMLElement | null = null;\n\n get position(): number {\n return this._p;\n }\n set position(v: number) {\n this.set(v, false);\n }\n\n private get vertical(): boolean {\n return this.str('orientation', 'horizontal') === 'vertical';\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const [before, after] = ownChildren(this);\n this.dataset.orientation = this.vertical ? 'vertical' : 'horizontal';\n before?.classList.add('usa-cmp-before');\n after?.classList.add('usa-cmp-after');\n this._after = after || null;\n const [lb, la] = this.str('labels', '').split(',').map((s) => s.trim());\n if (lb) this.append(Object.assign(part('span', 'usa-cmp-label usa-cmp-label-b', { 'aria-hidden': 'true' }), { textContent: lb }));\n if (la) this.append(Object.assign(part('span', 'usa-cmp-label usa-cmp-label-a', { 'aria-hidden': 'true' }), { textContent: la }));\n const h = part('span', 'usa-cmp-handle', { 'aria-hidden': 'true' }, '<span class=\"usa-cmp-knob\"><svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\"><path d=\"M9 6l-6 6 6 6M15 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>');\n this.append(h);\n this._handle = h;\n this.setAttribute('role', 'slider');\n this.tabIndex = 0;\n this.setAttribute('aria-valuemin', '0');\n this.setAttribute('aria-valuemax', '100');\n this.setAttribute('aria-orientation', this.vertical ? 'vertical' : 'horizontal');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Compare before and after'));\n this.set(this.num('position', 50), false);\n let drag = false;\n const at = (e: PointerEvent) => {\n const r = this.getBoundingClientRect();\n return this.vertical ? ((e.clientY - r.top) / (r.height || 1)) * 100 : ((e.clientX - r.left) / (r.width || 1)) * 100;\n };\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n drag = true;\n this.setPointerCapture?.(e.pointerId);\n this.set(at(e), true, !(e.target as Element).closest('.usa-cmp-handle'));\n });\n this.listen(this, 'pointermove', (e: PointerEvent) => {\n if (drag || this.flag('hover')) this.set(at(e), true);\n });\n const up = () => (drag = false);\n this.listen(this, 'pointerup', up);\n this.listen(this, 'pointercancel', up);\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n const map: Record<string, number> = { ArrowLeft: -2, ArrowDown: -2, ArrowRight: 2, ArrowUp: 2, PageDown: -10, PageUp: 10 };\n if (this.vertical) Object.assign(map, { ArrowDown: 2, ArrowUp: -2 });\n if (e.key === 'Home') this.set(0, true);\n else if (e.key === 'End') this.set(100, true);\n else if (e.key in map) this.set(this._p + map[e.key], true);\n else return;\n e.preventDefault();\n });\n if (this.flag('intro') && !this.reduced) {\n let played = false;\n this.inView((v) => {\n if (!v || played) return;\n played = true;\n const end = this._p;\n const t0 = performance.now();\n const step = (now: number) => {\n const k = Math.min(1, (now - t0) / 1400);\n this.paint(end + Math.sin(k * Math.PI * 2) * 22 * (1 - k));\n if (k < 1 && typeof requestAnimationFrame === 'function') requestAnimationFrame(step);\n else this.paint(end);\n };\n if (typeof requestAnimationFrame === 'function') requestAnimationFrame(step);\n }, { threshold: 0.5 });\n }\n }\n\n private paint(p: number): void {\n const v = clampN(p, 0, 100);\n if (this._after) this._after.style.clipPath = this.vertical ? `inset(${v}% 0 0 0)` : `inset(0 0 0 ${v}%)`;\n if (this._handle) this._handle.style[this.vertical ? 'top' : 'left'] = `${v}%`;\n this.style.setProperty('--usa-cmp', `${v}%`);\n }\n\n private set(p: number, user: boolean, ease = false): void {\n const v = Math.round(clampN(p, 0, 100) * 10) / 10;\n const from = this._p;\n this._p = v;\n this.setAttribute('aria-valuenow', String(Math.round(v)));\n this.setAttribute('aria-valuetext', `${Math.round(v)}%`);\n if (ease && !this.reduced && this._after && this._handle) {\n const prop = this.vertical ? 'top' : 'left';\n const clip = (x: number) => (this.vertical ? `inset(${x}% 0 0 0)` : `inset(0 0 0 ${x}%)`);\n this.motion(this._after, [{ clipPath: clip(from) }, { clipPath: clip(v) }], { duration: 320, easing: 'cubic-bezier(.22,1,.36,1)' });\n this.motion(this._handle, [{ [prop]: `${from}%` }, { [prop]: `${v}%` }], { duration: 320, easing: 'cubic-bezier(.22,1,.36,1)' });\n }\n this.paint(v);\n if (user && from !== v) this.emit('change', { position: v });\n }\n }\n return UsaCompare as unknown as CustomElementConstructor;\n },\n { id: 'compare', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part } from './shared';\nimport css from './cube-gallery.css?raw';\n\n/**\n * `<usa-cube-gallery>` (6.5) — a gallery on a turning 3D cube: the current\n * slide and the next one sit on adjacent faces and the cube rotates between\n * them. Swipe / drag, arrow keys, prev / next buttons, `autoplay` (ms;\n * pauses on hover, focus and off screen), `axis=\"y | x\"`. API `next()`,\n * `prev()`, `goTo(i)`, `index`; event `usa:change`. Reduced motion: slides\n * switch with a fade.\n */\nexport interface UsaCubeGalleryElement extends UsaElement {\n readonly index: number;\n next(): void;\n prev(): void;\n goTo(i: number): void;\n}\n\nexport function defineCubeGallery(tag = 'usa-cube-gallery'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCubeGallery extends Base {\n static get observedAttributes(): string[] {\n return ['axis', 'autoplay'];\n }\n private _slides: HTMLElement[] = [];\n private _i = 0;\n private _stage: HTMLElement | null = null;\n private _busy = false;\n private _timer: ReturnType<typeof setInterval> | 0 = 0;\n\n get index(): number {\n return this._i;\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this._slides = ownChildren(this);\n this.dataset.axis = this.str('axis', 'y') === 'x' ? 'x' : 'y';\n this.setAttribute('role', 'region');\n this.setAttribute('aria-roledescription', 'carousel');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Gallery'));\n this.tabIndex = 0;\n const stage = part('div', 'usa-cube-stage');\n this._slides.forEach((s, i) => {\n s.classList.add('usa-cube-face');\n s.setAttribute('role', 'group');\n s.setAttribute('aria-roledescription', 'slide');\n s.setAttribute('aria-label', `${i + 1} of ${this._slides.length}`);\n stage.append(s);\n });\n this.append(stage);\n this._stage = stage;\n const prev = part('button', 'usa-cube-btn usa-cube-prev', { type: 'button', 'aria-label': 'Previous slide' }, '‹');\n const next = part('button', 'usa-cube-btn usa-cube-next', { type: 'button', 'aria-label': 'Next slide' }, '›');\n this.append(prev, next);\n this.listen(prev, 'click', () => this.prev());\n this.listen(next, 'click', () => this.next());\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.target !== this) return;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') this.next();\n else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') this.prev();\n else return;\n e.preventDefault();\n });\n let x0 = NaN;\n this.listen(stage, 'pointerdown', (e: PointerEvent) => (x0 = this.dataset.axis === 'x' ? e.clientY : e.clientX));\n this.listen(stage, 'pointerup', (e: PointerEvent) => {\n if (Number.isNaN(x0)) return;\n const d = (this.dataset.axis === 'x' ? e.clientY : e.clientX) - x0;\n x0 = NaN;\n if (Math.abs(d) > 40) (d < 0 ? this.next() : this.prev());\n });\n this._i = Math.min(this._i, Math.max(0, this._slides.length - 1));\n this.show();\n const ms = this.num('autoplay', 0);\n if (ms > 0 && !this.reduced) {\n let hold = false;\n let vis = true;\n const pause = (v: boolean) => (hold = v);\n this.listen(this, 'pointerenter', () => pause(true));\n this.listen(this, 'pointerleave', () => pause(false));\n this.listen(this, 'focusin', () => pause(true));\n this.listen(this, 'focusout', () => pause(false));\n this.inView((v) => (vis = v));\n this._timer = setInterval(() => !hold && vis && this.next(), Math.max(1200, ms));\n this.onCleanup(() => this._timer && clearInterval(this._timer));\n }\n }\n\n private show(): void {\n this._slides.forEach((s, k) => {\n const on = k === this._i;\n s.toggleAttribute('data-active', on);\n s.inert = !on;\n s.style.transform = '';\n });\n }\n\n goTo(i: number): void {\n const n = this._slides.length;\n if (!n || this._busy) return;\n const to = ((i % n) + n) % n;\n if (to === this._i) return;\n const from = this._i;\n const dir = (to > from && !(from === 0 && to === n - 1)) || (from === n - 1 && to === 0) ? 1 : -1;\n const a = this._slides[from];\n const b = this._slides[to];\n this._i = to;\n this.emit('change', { index: to, from });\n if (this.reduced || !this._stage) {\n this.show();\n this.motion(b, [{ opacity: 0 }, { opacity: 1 }], { duration: 200 });\n return;\n }\n // b waits on the adjacent face; the stage turns by 90°\n const ax = this.dataset.axis === 'x' ? 'X' : 'Y';\n const half = `${(((ax === 'Y' ? this.offsetWidth : this.offsetHeight) || 280) / 2).toFixed(1)}px`;\n const faceB = ax === 'Y' ? `rotateY(${dir * 90}deg) translateZ(${half})` : `rotateX(${-dir * 90}deg) translateZ(${half})`;\n b.setAttribute('data-active', '');\n b.style.transform = faceB;\n a.style.transform = `translateZ(${half})`;\n this._busy = true;\n const turn = ax === 'Y' ? `rotateY(${-dir * 90}deg)` : `rotateX(${dir * 90}deg)`;\n const anim = this.motion(this._stage, [{ transform: `translateZ(-${half}) rotate${ax}(0deg)` }, { transform: `translateZ(-${half}) ${turn}` }], { duration: 780, easing: 'cubic-bezier(.65,.05,.3,1)' });\n const end = () => {\n this._busy = false;\n this.show();\n };\n if (anim) anim.finished.then(end, end);\n else end();\n }\n\n next(): void {\n this.goTo(this._i + 1);\n }\n prev(): void {\n this.goTo(this._i - 1);\n }\n }\n return UsaCubeGallery as unknown as CustomElementConstructor;\n },\n { id: 'cube-gallery', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './dock.css?raw';\n\n/**\n * `<usa-dock>` (6.6) — a macOS-style dock: items magnify with a smooth\n * cosine falloff as the pointer moves along it, neighbours make room, and a\n * click bounces the item (`bounce`). Children are the items (`<a>` /\n * `<button>`, each with an accessible name); `data-label` shows a tooltip\n * label above the hovered item. Attributes: `magnify` (max scale, 1.9),\n * `range` (px of influence, 140), `orientation=\"horizontal | vertical\"`.\n * Keyboard focus magnifies the focused item. Reduced motion: no\n * magnification or bounce (labels still show).\n */\nexport interface UsaDockElement extends UsaElement {\n readonly items: HTMLElement[];\n}\n\nexport function defineDock(tag = 'usa-dock'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaDock extends Base {\n static get observedAttributes(): string[] {\n return ['orientation', 'magnify', 'range'];\n }\n private _items: HTMLElement[] = [];\n private _raf = 0;\n\n get items(): HTMLElement[] {\n return this._items;\n }\n\n mount(): void {\n this.dataset.orientation = this.str('orientation', 'horizontal') === 'vertical' ? 'vertical' : 'horizontal';\n this.setAttribute('role', this.getAttribute('role') || 'toolbar');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Dock'));\n this._items = ownChildren(this);\n this._items.forEach((it) => {\n it.classList.add('usa-dock-item');\n if (it.dataset.label && !it.getAttribute('aria-label') && !it.textContent?.trim()) it.setAttribute('aria-label', it.dataset.label);\n this.listen(it, 'click', () => this.bounce(it));\n this.listen(it, 'focus', () => this.magnifyAt(this.center(it)));\n this.listen(it, 'blur', () => this.magnifyAt(null));\n });\n this.listen(this, 'pointermove', (e: PointerEvent) => {\n const v = this.dataset.orientation === 'vertical' ? e.clientY : e.clientX;\n if (!this._raf) this._raf = typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => ((this._raf = 0), this.magnifyAt(v))) : (this.magnifyAt(v), 0);\n });\n this.listen(this, 'pointerleave', () => this.magnifyAt(null));\n this.onCleanup(() => {\n if (this._raf && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(this._raf);\n });\n }\n\n private center(it: HTMLElement): number {\n const r = it.getBoundingClientRect();\n return this.dataset.orientation === 'vertical' ? r.top + r.height / 2 : r.left + r.width / 2;\n }\n\n /** Scale every item by its distance to `pos` (client px), or reset with `null`. */\n magnifyAt(pos: number | null): void {\n const max = this.num('magnify', 1.9);\n const range = Math.max(20, this.num('range', 140));\n for (const it of this._items) {\n let s = 1;\n if (pos !== null && !this.reduced) {\n const d = Math.abs(this.center(it) - pos);\n if (d < range) s = 1 + (max - 1) * (0.5 + 0.5 * Math.cos((d / range) * Math.PI));\n }\n it.style.setProperty('--usa-dock-s', s.toFixed(3));\n it.toggleAttribute('data-near', s > 1.5 || (pos !== null && this.reduced && Math.abs(this.center(it) - pos) < 24));\n }\n }\n\n bounce(it: HTMLElement): void {\n if (this.reduced || !this.flag('bounce')) return;\n const v = this.dataset.orientation === 'vertical';\n this.motion(it, [{ translate: '0 0' }, { translate: v ? '18px 0' : '0 -22px', offset: 0.3 }, { translate: '0 0', offset: 0.55 }, { translate: v ? '8px 0' : '0 -9px', offset: 0.75 }, { translate: '0 0' }], { duration: 760, easing: 'ease-out' });\n }\n }\n return UsaDock as unknown as CustomElementConstructor;\n },\n { id: 'dock', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part, arrowIndex } from './shared';\nimport css from './nav-morph.css?raw';\n\n/**\n * `<usa-nav-morph>` (6.6) — navigation links with an indicator that morphs\n * between them: it follows the hovered / focused link (stretching from the\n * old one, leading edge first) and settles back on the current page\n * (`aria-current=\"page\"`, `active` index, or a click). `indicator=\"underline |\n * pill | blob | dot\"`. Arrow keys move focus across links. Event\n * `usa:change` (`{ index }`). Reduced motion: the indicator jumps.\n */\nexport interface UsaNavMorphElement extends UsaElement {\n active: number;\n}\n\nexport const NAV_INDICATORS = ['underline', 'pill', 'blob', 'dot'] as const;\n\nexport function defineNavMorph(tag = 'usa-nav-morph'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaNavMorph extends Base {\n static get observedAttributes(): string[] {\n return ['indicator'];\n }\n private _links: HTMLElement[] = [];\n private _ink: HTMLElement | null = null;\n private _active = 0;\n private _at = -1;\n\n get active(): number {\n return this._active;\n }\n set active(i: number) {\n this.setActive(i, false);\n }\n\n mount(): void {\n const ind = this.str('indicator', 'underline');\n this.dataset.indicator = (NAV_INDICATORS as readonly string[]).includes(ind) ? ind : 'underline';\n if (this.localName !== 'nav' && !this.hasAttribute('role')) this.setAttribute('role', 'navigation');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Main'));\n this.querySelectorAll(':scope > .usa-nm-ink').forEach((n) => n.remove());\n this._links = ownChildren(this);\n this._ink = part('span', 'usa-nm-ink', { 'aria-hidden': 'true' });\n this.prepend(this._ink);\n const cur = this._links.findIndex((l) => l.getAttribute('aria-current') === 'page');\n this._active = cur >= 0 ? cur : Math.max(0, Math.min(this._links.length - 1, Math.round(this.num('active', 0))));\n this._at = -1;\n this._links.forEach((l, i) => {\n this.listen(l, 'pointerenter', () => this.moveTo(i));\n this.listen(l, 'focus', () => this.moveTo(i));\n this.listen(l, 'click', () => this.setActive(i, true));\n this.listen(l, 'keydown', (e: KeyboardEvent) => {\n const n = arrowIndex(e, i, this._links.length);\n if (n >= 0) {\n e.preventDefault();\n this._links[n].focus();\n }\n });\n });\n this.listen(this, 'pointerleave', () => this.moveTo(this._active));\n this.listen(this, 'focusout', (e: FocusEvent) => !this.contains(e.relatedTarget as Node) && this.moveTo(this._active));\n this.sync();\n this.moveTo(this._active);\n if (typeof ResizeObserver === 'function') {\n const ro = new ResizeObserver(() => this.place(this._at < 0 ? this._active : this._at));\n ro.observe(this);\n this.onCleanup(() => ro.disconnect());\n }\n }\n\n private rect(i: number): [number, number] {\n const l = this._links[i];\n return l ? [l.offsetLeft, l.offsetWidth] : [0, 0];\n }\n\n private place(i: number): void {\n if (!this._ink) return;\n const [x, w] = this.rect(i);\n this._ink.style.transform = `translateX(${x}px)`;\n this._ink.style.width = `${w}px`;\n }\n\n private moveTo(i: number): void {\n const from = this._at;\n this._at = i;\n this.place(i);\n if (from < 0 || from === i || this.reduced || !this._ink) return;\n const [x0, w0] = this.rect(from);\n const [x1, w1] = this.rect(i);\n const mid = x1 > x0 ? { transform: `translateX(${x0}px)`, width: `${x1 + w1 - x0}px` } : { transform: `translateX(${x1}px)`, width: `${x0 + w0 - x1}px` };\n const blob = this.dataset.indicator === 'blob';\n this.motion(this._ink, [\n { transform: `translateX(${x0}px)`, width: `${w0}px` },\n { ...mid, offset: 0.4, ...(blob ? { borderRadius: '40% 60% 55% 45% / 60% 40% 60% 40%' } : {}) },\n { transform: `translateX(${x1}px)`, width: `${w1}px` },\n ], { duration: 420, easing: 'cubic-bezier(.22,1,.36,1)' });\n }\n\n private sync(): void {\n this._links.forEach((l, k) => {\n if (k === this._active) l.setAttribute('aria-current', 'page');\n else if (l.getAttribute('aria-current') === 'page') l.removeAttribute('aria-current');\n });\n }\n\n private setActive(i: number, user: boolean): void {\n const n = Math.max(0, Math.min(this._links.length - 1, Math.round(i)));\n const changed = n !== this._active;\n this._active = n;\n this.sync();\n this.moveTo(n);\n if (changed && user) this.emit('change', { index: n });\n }\n }\n return UsaNavMorph as unknown as CustomElementConstructor;\n },\n { id: 'nav-morph', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './menu-toggle.css?raw';\n\n/**\n * `<usa-menu-toggle>` (6.6) — the hamburger button that morphs into its\n * \"open\" icon: `variant=\"cross\"` (✕, default), `arrow` (←), `minus` (—) or\n * `plus-x` (+ turning into ✕). It is a real `<button>`-like control\n * (`role=\"button\"`, Space / Enter, `aria-expanded`); `for=\"<id>\"` sets\n * `aria-controls` and toggles the `hidden` attribute (or `.open()` /\n * `.close()` / `.show()`) of that element. `pressed` reflects the state.\n * Event `usa:toggle` (`{ open }`). Reduced motion: the icon switches without\n * the morph.\n */\nexport interface UsaMenuToggleElement extends UsaElement {\n open: boolean;\n toggle(force?: boolean): void;\n}\n\nexport const TOGGLE_VARIANTS = ['cross', 'arrow', 'minus', 'plus-x'] as const;\n\nexport function defineMenuToggle(tag = 'usa-menu-toggle'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMenuToggle extends Base {\n static get observedAttributes(): string[] {\n return ['variant'];\n }\n private _open = false;\n\n get open(): boolean {\n return this._open;\n }\n set open(v: boolean) {\n this.toggle(v);\n }\n\n mount(): void {\n const v = this.str('variant', 'cross');\n this.dataset.variant = (TOGGLE_VARIANTS as readonly string[]).includes(v) ? v : 'cross';\n if (!this.querySelector(':scope > .usa-mt-box')) {\n const box = document.createElement('span');\n box.className = 'usa-mt-box';\n box.setAttribute('aria-hidden', 'true');\n box.setAttribute('data-usa-part', '');\n box.innerHTML = '<span class=\"usa-mt-bar\"></span><span class=\"usa-mt-bar\"></span><span class=\"usa-mt-bar\"></span>';\n this.prepend(box);\n }\n this.setAttribute('role', 'button');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (!this.hasAttribute('aria-label') && !this.textContent?.trim()) this.setAttribute('aria-label', this.str('label', 'Menu'));\n const id = this.str('for', '');\n if (id) this.setAttribute('aria-controls', id);\n this._open = this.flag('pressed');\n this.sync(false);\n this.listen(this, 'click', () => this.toggle());\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.toggle();\n }\n });\n }\n\n private sync(animate: boolean): void {\n this.setAttribute('aria-expanded', String(this._open));\n this.toggleAttribute('data-open', this._open);\n this.toggleAttribute('data-animate', animate && !this.reduced);\n const target = this.str('for', '') ? (document.getElementById(this.str('for', '')) as (HTMLElement & { open?: unknown; show?: () => void; close?: () => void }) | null) : null;\n if (!target || !animate) return;\n if (this._open && typeof target.show === 'function') target.show();\n else if (!this._open && typeof target.close === 'function') target.close();\n else target.hidden = !this._open;\n }\n\n toggle(force?: boolean): void {\n const next = typeof force === 'boolean' ? force : !this._open;\n if (next === this._open) return;\n this._open = next;\n this.toggleAttribute('pressed', next);\n this.sync(true);\n this.emit('toggle', { open: next });\n }\n }\n return UsaMenuToggle as unknown as CustomElementConstructor;\n },\n { id: 'menu-toggle', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { part, nextId } from './shared';\nimport css from './tip.css?raw';\n\n/**\n * `<usa-tip>` (6.6) — tooltip / popover 2.0. Wrap the trigger; the tip\n * content is the `text` attribute or a child with `[slot=\"tip\"]` / `[data-tip]`\n * (rich content). It springs out of the trigger with its arrow,\n * auto-flips to stay inside the viewport and shifts along the edge.\n * `placement=\"top | bottom | left | right\"`, `trigger=\"hover | click\"`\n * (`click` = popover: toggles, Esc / outside click close), `delay` (ms).\n * Hover tips also open on keyboard focus and close on Esc (WCAG 1.4.13).\n * Events `usa:open`, `usa:close`. Reduced motion: a short fade.\n */\nexport interface UsaTipElement extends UsaElement {\n readonly opened: boolean;\n show(): void;\n hide(): void;\n}\n\nexport const TIP_PLACEMENTS = ['top', 'bottom', 'left', 'right'] as const;\nconst FLIP: Record<string, string> = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' };\n\nexport function defineTip(tag = 'usa-tip'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaTip extends Base {\n static get observedAttributes(): string[] {\n return ['text', 'placement', 'trigger'];\n }\n private _bubble: HTMLElement | null = null;\n private _trigger: HTMLElement | null = null;\n private _open = false;\n private _t: ReturnType<typeof setTimeout> | 0 = 0;\n\n get opened(): boolean {\n return this._open;\n }\n\n mount(): void {\n this.querySelectorAll(':scope > .usa-tip-bubble[data-usa-part]').forEach((n) => n.remove());\n const rich = this.querySelector<HTMLElement>(':scope > [slot=\"tip\"], :scope > [data-tip]');\n this._trigger = Array.from(this.children).find((c) => c !== rich && !c.matches('.usa-tip-bubble')) as HTMLElement | null;\n const b = rich || part('span', 'usa-tip-bubble');\n b.classList.add('usa-tip-bubble');\n if (!rich) b.textContent = this.str('text', '');\n b.id ||= nextId('usa-tipb');\n b.hidden = true;\n if (!b.querySelector(':scope > .usa-tip-arrow')) b.append(part('span', 'usa-tip-arrow', { 'aria-hidden': 'true' }));\n if (!b.isConnected) this.append(b);\n this._bubble = b;\n const click = this.str('trigger', 'hover') === 'click';\n b.setAttribute('role', click ? 'dialog' : 'tooltip');\n const t = this._trigger;\n if (t) {\n if (click) {\n t.setAttribute('aria-expanded', 'false');\n t.setAttribute('aria-controls', b.id);\n t.setAttribute('aria-haspopup', 'dialog');\n this.listen(t, 'click', () => (this._open ? this.hide() : this.show()));\n this.listen(document, 'pointerdown', (e: PointerEvent) => this._open && !this.contains(e.target as Node) && this.hide());\n } else {\n t.setAttribute('aria-describedby', b.id);\n const delay = this.num('delay', 120);\n const later = (fn: () => void, ms: number) => {\n if (this._t) clearTimeout(this._t);\n this._t = setTimeout(fn, ms);\n };\n this.listen(this, 'pointerenter', () => later(() => this.show(), delay));\n this.listen(this, 'pointerleave', () => later(() => this.hide(), 80));\n this.listen(t, 'focusin', () => this.show());\n this.listen(t, 'focusout', () => this.hide());\n this.onCleanup(() => this._t && clearTimeout(this._t));\n }\n }\n this.listen(document, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Escape' && this._open) {\n this.hide();\n if (click) t?.focus();\n }\n });\n }\n\n private position(): string {\n const b = this._bubble!;\n const t = this._trigger || this;\n const want = (TIP_PLACEMENTS as readonly string[]).includes(this.str('placement', 'top')) ? this.str('placement', 'top') : 'top';\n const tr = t.getBoundingClientRect();\n const br = b.getBoundingClientRect();\n const vw = document.documentElement.clientWidth || window.innerWidth || 1024;\n const vh = window.innerHeight || 768;\n const gap = 10;\n const fits = (p: string) => (p === 'top' ? tr.top - br.height - gap >= 4 : p === 'bottom' ? tr.bottom + br.height + gap <= vh - 4 : p === 'left' ? tr.left - br.width - gap >= 4 : tr.right + br.width + gap <= vw - 4);\n const place = fits(want) || !fits(FLIP[want]) ? want : FLIP[want];\n const host = this.getBoundingClientRect();\n let x: number;\n let y: number;\n if (place === 'top' || place === 'bottom') {\n x = tr.left + tr.width / 2 - br.width / 2;\n y = place === 'top' ? tr.top - br.height - gap : tr.bottom + gap;\n } else {\n x = place === 'left' ? tr.left - br.width - gap : tr.right + gap;\n y = tr.top + tr.height / 2 - br.height / 2;\n }\n const cx = Math.min(Math.max(4, x), Math.max(4, vw - br.width - 4)); // shift inside the viewport\n b.style.left = `${(cx - host.left).toFixed(1)}px`;\n b.style.top = `${(y - host.top).toFixed(1)}px`;\n b.style.setProperty('--usa-tip-shift', `${(x - cx).toFixed(1)}px`);\n b.dataset.placement = place;\n return place;\n }\n\n show(): void {\n const b = this._bubble;\n if (!b || this._open) return;\n this._open = true;\n b.hidden = false;\n const place = this.position();\n this._trigger?.setAttribute('aria-expanded', this._trigger.hasAttribute('aria-expanded') ? 'true' : '');\n if (this._trigger?.getAttribute('aria-expanded') === '') this._trigger.removeAttribute('aria-expanded');\n const off = place === 'top' ? '0 6px' : place === 'bottom' ? '0 -6px' : place === 'left' ? '6px 0' : '-6px 0';\n this.motion(b, this.reduced ? [{ opacity: 0 }, { opacity: 1 }] : [{ opacity: 0, translate: off, scale: '0.6' }, { opacity: 1, translate: '0 0', scale: '1.04', offset: 0.65 }, { opacity: 1, translate: '0 0', scale: '1' }], { duration: this.reduced ? 120 : 340, easing: 'cubic-bezier(.3,1.3,.5,1)' });\n this.emit('open');\n }\n\n hide(): void {\n const b = this._bubble;\n if (!b || !this._open) return;\n this._open = false;\n if (this._trigger?.hasAttribute('aria-expanded')) this._trigger.setAttribute('aria-expanded', 'false');\n const a = this.motion(b, [{ opacity: 1 }, { opacity: 0, scale: this.reduced ? '1' : '0.9' }], { duration: 120, easing: 'ease-in' });\n const done = () => {\n if (!this._open) b.hidden = true;\n };\n if (a) a.finished.then(done, done);\n else done();\n this.emit('close');\n }\n }\n return UsaTip as unknown as CustomElementConstructor;\n },\n { id: 'tip', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, clampN } from './shared';\nimport css from './stepper.css?raw';\n\n/**\n * `<usa-stepper>` (6.7) — a step indicator / wizard. Each child is a step\n * (its text is the label). `value` is the current step (0-based); finished\n * steps pop a check mark, the connecting rail fills toward the current step\n * and the current step pulses once. `orientation=\"vertical\"` stacks the\n * steps. `next()` / `prev()` / `value`; event `usa:change` (`{ value }`).\n * The list is an ordered list with `aria-current=\"step\"`. Reduced motion: no\n * pop or pulse, the rail jumps.\n */\nexport interface UsaStepperElement extends UsaElement {\n value: number;\n readonly steps: HTMLElement[];\n next(): void;\n prev(): void;\n}\n\nexport function defineStepper(tag = 'usa-stepper'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaStepper extends Base {\n static get observedAttributes(): string[] {\n return ['orientation'];\n }\n private _steps: HTMLElement[] = [];\n private _v = 0;\n private _fill: HTMLElement | null = null;\n\n get steps(): HTMLElement[] {\n return this._steps;\n }\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this.go(v);\n }\n\n mount(): void {\n this.dataset.orientation = this.str('orientation', 'horizontal') === 'vertical' ? 'vertical' : 'horizontal';\n this.setAttribute('role', 'list');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Progress'));\n this._steps = ownChildren(this);\n if (!this.querySelector(':scope > .usa-st-rail')) {\n const rail = document.createElement('span');\n rail.className = 'usa-st-rail';\n rail.setAttribute('data-usa-part', '');\n rail.setAttribute('aria-hidden', 'true');\n rail.innerHTML = '<span class=\"usa-st-fill\"></span>';\n this.prepend(rail);\n }\n this._fill = this.querySelector('.usa-st-fill');\n this._steps.forEach((s, i) => {\n s.classList.add('usa-st-step');\n s.setAttribute('role', 'listitem');\n s.style.setProperty('--usa-st-i', String(i));\n if (!s.querySelector(':scope > .usa-st-dot')) {\n const d = document.createElement('span');\n d.className = 'usa-st-dot';\n d.setAttribute('aria-hidden', 'true');\n d.setAttribute('data-usa-part', '');\n d.innerHTML = `<span class=\"usa-st-num\">${i + 1}</span><svg class=\"usa-st-check\" viewBox=\"0 0 16 16\"><path d=\"M3 8.5l3.2 3L13 4.8\"/></svg>`;\n s.prepend(d);\n }\n if (s.hasAttribute('data-clickable') || this.flag('clickable')) this.listen(s, 'click', () => this.go(i));\n });\n this._v = clampN(this.num('value', 0) | 0, 0, Math.max(0, this._steps.length - 1));\n this.sync(-1);\n }\n\n private sync(prev: number): void {\n const n = this._steps.length;\n this._steps.forEach((s, i) => {\n s.toggleAttribute('data-done', i < this._v);\n s.toggleAttribute('data-current', i === this._v);\n if (i === this._v) s.setAttribute('aria-current', 'step');\n else s.removeAttribute('aria-current');\n });\n const pct = n > 1 ? (this._v / (n - 1)) * 100 : 0;\n this.style.setProperty('--usa-st-p', pct.toFixed(2) + '%');\n if (prev < 0 || this.reduced) return;\n const cur = this._steps[this._v]?.querySelector('.usa-st-dot');\n if (cur) this.motion(cur, [{ transform: 'scale(1)', boxShadow: '0 0 0 0 rgba(124,92,255,.55)' }, { transform: 'scale(1.18)', offset: 0.35 }, { transform: 'scale(1)', boxShadow: '0 0 0 12px rgba(124,92,255,0)' }], { duration: 620, easing: 'ease-out' });\n if (this._v > prev) {\n const done = this._steps[prev]?.querySelector('.usa-st-check');\n if (done) this.motion(done, [{ strokeDashoffset: 20, transform: 'scale(.4)' }, { strokeDashoffset: 0, transform: 'scale(1)' }], { duration: 420, easing: 'cubic-bezier(.3,1.4,.5,1)' });\n }\n }\n\n go(i: number): void {\n const v = clampN(Math.round(i), 0, Math.max(0, this._steps.length - 1));\n if (v === this._v) return;\n const prev = this._v;\n this._v = v;\n this.setAttribute('value', String(v));\n this.sync(prev);\n this.emit('change', { value: v });\n }\n next(): void {\n this.go(this._v + 1);\n }\n prev(): void {\n this.go(this._v - 1);\n }\n }\n return UsaStepper as unknown as CustomElementConstructor;\n },\n { id: 'stepper', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, dropParts } from './shared';\nimport css from './pagination.css?raw';\n\n/**\n * `<usa-pagination>` (6.7) — page buttons with a sliding \"ink\" that springs\n * to the current page (squashing as it travels) and numbers that slide in\n * from the direction of travel when the window of pages shifts. Attributes\n * `total`, `page` (1-based), `siblings` (pages each side, 1). Prev / next\n * buttons, ellipses, `aria-current=\"page\"`; event `usa:change` (`{ page }`).\n * Reduced motion: the ink jumps and numbers do not slide.\n */\nexport interface UsaPaginationElement extends UsaElement {\n page: number;\n readonly total: number;\n}\n\n/** The visible page list: numbers and `'…'` gaps (1-based). */\nexport function pageWindow(page: number, total: number, siblings = 1): (number | '…')[] {\n const out: (number | '…')[] = [];\n const lo = Math.max(2, page - siblings);\n const hi = Math.min(total - 1, page + siblings);\n out.push(1);\n if (lo > 2) out.push('…');\n for (let p = lo; p <= hi; p++) out.push(p);\n if (hi < total - 1) out.push('…');\n if (total > 1) out.push(total);\n return out;\n}\n\nexport function definePagination(tag = 'usa-pagination'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaPagination extends Base {\n static get observedAttributes(): string[] {\n return ['total', 'siblings'];\n }\n private _page = 1;\n private _ink: HTMLElement | null = null;\n private _list: HTMLElement | null = null;\n\n get total(): number {\n return Math.max(1, this.num('total', 1) | 0);\n }\n get page(): number {\n return this._page;\n }\n set page(p: number) {\n this.go(p);\n }\n\n mount(): void {\n dropParts(this);\n this.setAttribute('role', 'navigation');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Pagination'));\n this._page = clampN(this.num('page', 1) | 0, 1, this.total);\n const prev = this.btn('‹', 'Previous page', 'usa-pg-prev');\n const next = this.btn('›', 'Next page', 'usa-pg-next');\n this._list = document.createElement('span');\n this._list.className = 'usa-pg-list';\n this._list.setAttribute('data-usa-part', '');\n this._ink = document.createElement('span');\n this._ink.className = 'usa-pg-ink';\n this._ink.setAttribute('aria-hidden', 'true');\n this._list.appendChild(this._ink);\n this.append(prev, this._list, next);\n this.listen(prev, 'click', () => this.go(this._page - 1));\n this.listen(next, 'click', () => this.go(this._page + 1));\n this.listen(this._list, 'click', (e: Event) => {\n const b = (e.target as HTMLElement).closest?.('[data-page]') as HTMLElement | null;\n if (b) this.go(Number(b.dataset.page));\n });\n this.render(0);\n }\n\n private btn(txt: string, label: string, cls: string): HTMLButtonElement {\n const b = document.createElement('button');\n b.type = 'button';\n b.className = 'usa-pg-btn ' + cls;\n b.textContent = txt;\n b.setAttribute('aria-label', label);\n b.setAttribute('data-usa-part', '');\n return b;\n }\n\n private render(dir: number): void {\n const list = this._list!;\n const old = new Map(Array.from(list.querySelectorAll<HTMLElement>('[data-page]')).map((b) => [b.dataset.page, b]));\n list.querySelectorAll('.usa-pg-btn,.usa-pg-gap').forEach((n) => n.remove());\n for (const p of pageWindow(this._page, this.total, Math.max(0, this.num('siblings', 1) | 0))) {\n if (p === '…') {\n const g = document.createElement('span');\n g.className = 'usa-pg-gap';\n g.textContent = '…';\n g.setAttribute('aria-hidden', 'true');\n list.appendChild(g);\n continue;\n }\n const b = this.btn(String(p), `Page ${p}`, 'usa-pg-num');\n b.dataset.page = String(p);\n if (p === this._page) b.setAttribute('aria-current', 'page');\n list.appendChild(b);\n if (dir && !old.has(String(p)) && !this.reduced) this.motion(b, [{ transform: `translateX(${dir * 14}px)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 280, easing: 'ease-out' });\n }\n (this.querySelector('.usa-pg-prev') as HTMLButtonElement).disabled = this._page <= 1;\n (this.querySelector('.usa-pg-next') as HTMLButtonElement).disabled = this._page >= this.total;\n this.placeInk(dir !== 0);\n }\n\n private placeInk(animate: boolean): void {\n const cur = this._list?.querySelector<HTMLElement>('[aria-current=\"page\"]');\n const ink = this._ink;\n if (!cur || !ink) return;\n const from = ink.style.transform;\n const to = `translateX(${cur.offsetLeft}px)`;\n ink.style.width = cur.offsetWidth + 'px';\n ink.style.transform = to;\n if (animate && from && from !== to && !this.reduced) this.motion(ink, [{ transform: from }, { transform: `${to} scaleX(1.35) scaleY(.8)`, offset: 0.55 }, { transform: to }], { duration: 420, easing: 'cubic-bezier(.3,1.3,.5,1)' });\n }\n\n go(p: number): void {\n const v = clampN(Math.round(p), 1, this.total);\n if (v === this._page) return;\n const dir = v > this._page ? 1 : -1;\n this._page = v;\n this.setAttribute('page', String(v));\n this.render(dir);\n this.emit('change', { page: v });\n }\n }\n return UsaPagination as unknown as CustomElementConstructor;\n },\n { id: 'pagination', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, arrowIndex, clampN } from './shared';\nimport css from './segmented.css?raw';\n\n/**\n * `<usa-segmented>` (6.7) — a segmented control (iOS style): a thumb slides\n * under the chosen segment with a spring and stretches while it travels;\n * the chosen label scales up slightly. Children are the segments (buttons\n * or any element). It is a radio group (`role=\"radiogroup\"`, arrow keys,\n * Home / End, roving tabindex). `value` is the selected index; `usa:change`\n * (`{ value, label }`). `variant=\"ios | pill | outline\"`. Reduced motion:\n * the thumb jumps.\n */\nexport interface UsaSegmentedElement extends UsaElement {\n value: number;\n readonly segments: HTMLElement[];\n}\n\nexport const SEGMENTED_VARIANTS = ['ios', 'pill', 'outline'] as const;\n\nexport function defineSegmented(tag = 'usa-segmented'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSegmented extends Base {\n static get observedAttributes(): string[] {\n return ['variant'];\n }\n private _segs: HTMLElement[] = [];\n private _v = 0;\n private _thumb: HTMLElement | null = null;\n\n get segments(): HTMLElement[] {\n return this._segs;\n }\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this.select(v, false);\n }\n\n mount(): void {\n const v = this.str('variant', 'ios');\n this.dataset.variant = (SEGMENTED_VARIANTS as readonly string[]).includes(v) ? v : 'ios';\n this.setAttribute('role', 'radiogroup');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Options'));\n this._segs = ownChildren(this);\n if (!this.querySelector(':scope > .usa-seg-thumb')) {\n const t = document.createElement('span');\n t.className = 'usa-seg-thumb';\n t.setAttribute('aria-hidden', 'true');\n t.setAttribute('data-usa-part', '');\n this.prepend(t);\n }\n this._thumb = this.querySelector('.usa-seg-thumb');\n const pre = this._segs.findIndex((s) => s.hasAttribute('selected') || s.getAttribute('aria-checked') === 'true');\n this._v = clampN(pre >= 0 ? pre : this.num('value', 0) | 0, 0, Math.max(0, this._segs.length - 1));\n this._segs.forEach((s, i) => {\n s.classList.add('usa-seg-item');\n s.setAttribute('role', 'radio');\n this.listen(s, 'click', () => this.select(i, true));\n this.listen(s, 'keydown', (e: KeyboardEvent) => {\n const j = arrowIndex(e, i, this._segs.length);\n if (j < 0) return;\n e.preventDefault();\n this.select(j, true);\n this._segs[j].focus();\n });\n });\n this.sync(false);\n if (typeof ResizeObserver === 'function') {\n const ro = new ResizeObserver(() => this.place(false));\n ro.observe(this);\n this.onCleanup(() => ro.disconnect());\n }\n }\n\n private sync(animate: boolean): void {\n this._segs.forEach((s, i) => {\n s.setAttribute('aria-checked', String(i === this._v));\n s.tabIndex = i === this._v ? 0 : -1;\n s.toggleAttribute('data-selected', i === this._v);\n });\n this.place(animate);\n }\n\n private place(animate: boolean): void {\n const s = this._segs[this._v];\n const t = this._thumb;\n if (!s || !t) return;\n const from = { x: t.offsetLeft, w: t.offsetWidth };\n t.style.left = s.offsetLeft + 'px';\n t.style.width = s.offsetWidth + 'px';\n if (!animate || this.reduced || !from.w) return;\n const dx = from.x - s.offsetLeft;\n const sx = from.w / (s.offsetWidth || 1);\n this.motion(t, [{ transform: `translateX(${dx}px) scaleX(${sx})` }, { transform: `translateX(${dx * 0.35}px) scaleX(${Math.max(sx, 1) * 1.18}) scaleY(.88)`, offset: 0.45 }, { transform: 'none' }], { duration: 430, easing: 'cubic-bezier(.3,1.25,.5,1)' });\n }\n\n select(i: number, user: boolean): void {\n const v = clampN(i | 0, 0, Math.max(0, this._segs.length - 1));\n if (v === this._v) return;\n this._v = v;\n this.sync(true);\n if (user) this.emit('change', { value: v, label: this._segs[v]?.textContent?.trim() || '' });\n }\n }\n return UsaSegmented as unknown as CustomElementConstructor;\n },\n { id: 'segmented', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './switch.css?raw';\n\n/**\n * `<usa-switch>` (6.7) — toggle switch variants: `ios` (the thumb stretches\n * while pressed and slides), `daynight` (sun → moon with stars and\n * clouds), `bounce` (the thumb squashes and bounces at the end) and\n * `liquid` (a gooey fill pours behind the thumb). A real switch:\n * `role=\"switch\"`, `aria-checked`, Space / Enter, `disabled`; `checked`\n * property / attribute; inside a `<form>` with `name` it submits `value`\n * (\"on\") when checked. Event `usa:change` (`{ checked }`). Reduced motion:\n * no squash, bounce or pour — it just switches.\n */\nexport interface UsaSwitchElement extends UsaElement {\n checked: boolean;\n toggle(force?: boolean): void;\n}\n\nexport const SWITCH_VARIANTS = ['ios', 'daynight', 'bounce', 'liquid'] as const;\n\nexport function defineSwitch(tag = 'usa-switch'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSwitch extends Base {\n static get observedAttributes(): string[] {\n return ['variant'];\n }\n private _on = false;\n private _input: HTMLInputElement | null = null;\n\n get checked(): boolean {\n return this._on;\n }\n set checked(v: boolean) {\n this.toggle(!!v, false);\n }\n\n mount(): void {\n const v = this.str('variant', 'ios');\n this.dataset.variant = (SWITCH_VARIANTS as readonly string[]).includes(v) ? v : 'ios';\n if (!this.querySelector(':scope > .usa-sw-track')) {\n const t = document.createElement('span');\n t.className = 'usa-sw-track';\n t.setAttribute('aria-hidden', 'true');\n t.setAttribute('data-usa-part', '');\n t.innerHTML = '<span class=\"usa-sw-fill\"></span><span class=\"usa-sw-deco\"></span><span class=\"usa-sw-thumb\"></span>';\n this.prepend(t);\n }\n this.setAttribute('role', 'switch');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (!this.hasAttribute('aria-label') && !this.textContent?.trim()) this.setAttribute('aria-label', this.str('label', 'Toggle'));\n this._on = this.flag('checked');\n if (this.str('name', '') && !this._input) {\n this._input = document.createElement('input');\n this._input.type = 'hidden';\n this._input.setAttribute('data-usa-part', '');\n this.appendChild(this._input);\n }\n this.sync(false);\n const thumb = this.querySelector('.usa-sw-thumb') as HTMLElement;\n this.listen(this, 'pointerdown', () => !this.reduced && this.toggleAttribute('data-press', true));\n this.listen(this, 'pointerup', () => this.removeAttribute('data-press'));\n this.listen(this, 'pointerleave', () => this.removeAttribute('data-press'));\n this.listen(this, 'click', () => this.toggle(undefined, true));\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n this.toggle(undefined, true);\n }\n });\n void thumb;\n }\n\n private sync(animate: boolean): void {\n this.setAttribute('aria-checked', String(this._on));\n this.toggleAttribute('data-on', this._on);\n this.toggleAttribute('data-animate', animate && !this.reduced);\n if (this._input) {\n this._input.name = this.str('name', '');\n this._input.value = this.str('value', 'on');\n this._input.disabled = !this._on;\n }\n if (!animate || this.reduced) return;\n const thumb = this.querySelector('.usa-sw-thumb');\n if (thumb && this.dataset.variant === 'bounce') this.motion(thumb, [{ scale: '1 1' }, { scale: '1.35 .7', offset: 0.55 }, { scale: '.9 1.1', offset: 0.75 }, { scale: '1 1' }], { duration: 520, easing: 'ease-out' });\n const fill = this.querySelector('.usa-sw-fill');\n if (fill && this.dataset.variant === 'liquid') this.motion(fill, [{ borderRadius: '50% 50% 40% 60%' }, { borderRadius: '30% 70% 60% 40%', offset: 0.5 }, { borderRadius: '999px' }], { duration: 600, easing: 'ease-out' });\n }\n\n toggle(force?: boolean, user = false): void {\n if (this.flag('disabled') && user) return;\n const next = typeof force === 'boolean' ? force : !this._on;\n if (next === this._on) return;\n this._on = next;\n this.toggleAttribute('checked', next);\n this.sync(user);\n if (user) this.emit('change', { checked: next });\n }\n }\n return UsaSwitch as unknown as CustomElementConstructor;\n },\n { id: 'switch', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './kanban.css?raw';\n\n/**\n * `<usa-kanban>` (6.8) — a kanban board with drag-sort. Children are the\n * columns (any element; a `[data-title]` attribute or its first heading is\n * the title); the column's `[data-card]` children (or `<li>`s) are cards.\n * Drag a card (pointer or touch): it lifts and tilts toward the drag\n * direction, a placeholder opens where it will land, and the other cards\n * glide out of the way (FLIP). Keyboard: Space / Enter picks a card up,\n * arrows move it (← → between columns, ↑ ↓ within), Space drops, Esc cancels;\n * moves are announced politely. Event `usa:move` (`{ card, from, to, index }`).\n * Reduced motion: no tilt or glide.\n */\nexport interface UsaKanbanElement extends UsaElement {\n readonly columns: HTMLElement[];\n cardsOf(col: HTMLElement): HTMLElement[];\n move(card: HTMLElement, to: HTMLElement, index: number): void;\n}\n\nexport function defineKanban(tag = 'usa-kanban'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaKanban extends Base {\n private _cols: HTMLElement[] = [];\n private _live: HTMLElement | null = null;\n private _held: HTMLElement | null = null;\n\n get columns(): HTMLElement[] {\n return this._cols;\n }\n\n cardsOf(col: HTMLElement): HTMLElement[] {\n return Array.from(col.children).filter((c): c is HTMLElement => c instanceof HTMLElement && (c.hasAttribute('data-card') || c.localName === 'li'));\n }\n\n mount(): void {\n this._cols = ownChildren(this);\n this.setAttribute('role', 'group');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Board'));\n if (!this.querySelector(':scope > .usa-kb-live')) {\n const l = document.createElement('span');\n l.className = 'usa-kb-live';\n l.setAttribute('data-usa-part', '');\n l.setAttribute('aria-live', 'polite');\n this.appendChild(l);\n }\n this._live = this.querySelector('.usa-kb-live');\n this._cols.forEach((col) => {\n col.classList.add('usa-kb-col');\n col.setAttribute('role', 'list');\n const title = col.dataset.title || col.querySelector('h1,h2,h3,h4,h5,h6')?.textContent?.trim() || '';\n if (title) col.setAttribute('aria-label', title);\n this.cardsOf(col).forEach((c) => this.prepCard(c));\n });\n this.listen(this, 'pointerdown', (e: PointerEvent) => this.drag(e));\n this.listen(this, 'keydown', (e: KeyboardEvent) => this.key(e));\n }\n\n private prepCard(c: HTMLElement): void {\n c.classList.add('usa-kb-card');\n c.setAttribute('role', 'listitem');\n if (!c.hasAttribute('tabindex')) c.tabIndex = 0;\n c.setAttribute('aria-roledescription', 'draggable card');\n }\n\n private say(msg: string): void {\n if (this._live) this._live.textContent = msg;\n }\n\n private colName(col: HTMLElement): string {\n return col.getAttribute('aria-label') || `column ${this._cols.indexOf(col) + 1}`;\n }\n\n /** FLIP: run `change`, then glide every card from its old box. */\n private flip(change: () => void): void {\n const cards = this._cols.flatMap((c) => this.cardsOf(c));\n const before = new Map(cards.map((c) => [c, c.getBoundingClientRect()]));\n change();\n if (this.reduced) return;\n for (const c of cards) {\n const a = before.get(c)!;\n const b = c.getBoundingClientRect();\n const dx = a.left - b.left;\n const dy = a.top - b.top;\n if ((dx || dy) && c !== this._held) this.motion(c, [{ transform: `translate(${dx}px,${dy}px)` }, { transform: 'none' }], { duration: 260, easing: 'cubic-bezier(.2,.8,.2,1)' });\n }\n }\n\n move(card: HTMLElement, to: HTMLElement, index: number): void {\n const from = card.parentElement as HTMLElement;\n const list = this.cardsOf(to).filter((c) => c !== card);\n const i = Math.max(0, Math.min(list.length, index));\n this.flip(() => {\n const ref = list[i] || null;\n if (ref) to.insertBefore(card, ref);\n else to.appendChild(card);\n });\n this.emit('move', { card, from, to, index: i });\n }\n\n private drag(e: PointerEvent): void {\n const card = (e.target as HTMLElement).closest?.('.usa-kb-card') as HTMLElement | null;\n if (!card || !this.contains(card) || e.button > 0) return;\n const r = card.getBoundingClientRect();\n const ox = e.clientX - r.left;\n const oy = e.clientY - r.top;\n let started = false;\n let lastX = e.clientX;\n const ghost = card;\n const ph = document.createElement('div');\n ph.className = 'usa-kb-ph';\n ph.setAttribute('data-usa-part', '');\n const onMove = (ev: PointerEvent) => {\n if (!started) {\n if (Math.hypot(ev.clientX - e.clientX, ev.clientY - e.clientY) < 6) return;\n started = true;\n ph.style.height = r.height + 'px';\n card.parentElement!.insertBefore(ph, card);\n ghost.classList.add('usa-kb-lifted');\n ghost.style.width = r.width + 'px';\n ghost.style.position = 'fixed';\n ghost.style.zIndex = '1000';\n ghost.style.pointerEvents = 'none';\n }\n ev.preventDefault();\n const tilt = this.reduced ? 0 : Math.max(-8, Math.min(8, (ev.clientX - lastX) * 0.8));\n lastX = ev.clientX;\n ghost.style.left = ev.clientX - ox + 'px';\n ghost.style.top = ev.clientY - oy + 'px';\n ghost.style.transform = `rotate(${tilt}deg) scale(${this.reduced ? 1 : 1.04})`;\n const col = this._cols.find((c) => {\n const b = c.getBoundingClientRect();\n return ev.clientX >= b.left && ev.clientX <= b.right;\n });\n if (!col) return;\n const cards = this.cardsOf(col).filter((c) => c !== card);\n const at = cards.find((c) => {\n const b = c.getBoundingClientRect();\n return ev.clientY < b.top + b.height / 2;\n });\n if (ph.parentElement !== col || ph.nextElementSibling !== (at || null)) this.flip(() => (at ? col.insertBefore(ph, at) : col.appendChild(ph)));\n };\n const onUp = () => {\n window.removeEventListener('pointermove', onMove);\n window.removeEventListener('pointerup', onUp);\n window.removeEventListener('pointercancel', onUp);\n if (!started) return;\n const to = ph.parentElement as HTMLElement;\n const index = this.cardsOf(to).filter((c) => c !== card).indexOf(ph.nextElementSibling as HTMLElement);\n const from = card.parentElement as HTMLElement;\n const g = ghost.getBoundingClientRect();\n to.insertBefore(card, ph);\n ph.remove();\n ghost.classList.remove('usa-kb-lifted');\n ghost.style.cssText = '';\n const b = card.getBoundingClientRect();\n if (!this.reduced) this.motion(card, [{ transform: `translate(${g.left - b.left}px,${g.top - b.top}px) rotate(3deg)` }, { transform: 'none' }], { duration: 240, easing: 'cubic-bezier(.2,.9,.3,1.2)' });\n const list = this.cardsOf(to);\n this.emit('move', { card, from, to, index: index < 0 ? list.indexOf(card) : list.indexOf(card) });\n this.say(`Moved to ${this.colName(to)}, position ${list.indexOf(card) + 1}`);\n };\n window.addEventListener('pointermove', onMove, { passive: false });\n window.addEventListener('pointerup', onUp);\n window.addEventListener('pointercancel', onUp);\n }\n\n private key(e: KeyboardEvent): void {\n const card = (e.target as HTMLElement).closest?.('.usa-kb-card') as HTMLElement | null;\n if (!card) return;\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n if (this._held === card) {\n card.removeAttribute('aria-grabbed');\n card.classList.remove('usa-kb-held');\n this._held = null;\n this.say(`Dropped in ${this.colName(card.parentElement as HTMLElement)}`);\n } else {\n this._held = card;\n card.setAttribute('aria-grabbed', 'true');\n card.classList.add('usa-kb-held');\n this.say('Picked up. Use arrow keys to move, Space to drop.');\n }\n return;\n }\n if (e.key === 'Escape' && this._held) {\n this._held.classList.remove('usa-kb-held');\n this._held.removeAttribute('aria-grabbed');\n this._held = null;\n return;\n }\n if (this._held !== card) return;\n const col = card.parentElement as HTMLElement;\n const ci = this._cols.indexOf(col);\n const idx = this.cardsOf(col).indexOf(card);\n let to = col;\n let i = idx;\n if (e.key === 'ArrowLeft' && ci > 0) (to = this._cols[ci - 1]), (i = Math.min(idx, this.cardsOf(to).length));\n else if (e.key === 'ArrowRight' && ci < this._cols.length - 1) (to = this._cols[ci + 1]), (i = Math.min(idx, this.cardsOf(to).length));\n else if (e.key === 'ArrowUp') i = Math.max(0, idx - 1);\n else if (e.key === 'ArrowDown') i = idx + 1;\n else return;\n e.preventDefault();\n this.move(card, to, i);\n card.focus();\n this.say(`${this.colName(to)}, position ${this.cardsOf(to).indexOf(card) + 1}`);\n }\n }\n return UsaKanban as unknown as CustomElementConstructor;\n },\n { id: 'kanban', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './swipe-deck.css?raw';\n\n/**\n * `<usa-swipe-deck>` (6.8) — a stack of swipe cards (Tinder style). Drag the\n * top card: it follows the pointer and rotates, \"LIKE\" / \"NOPE\" stamps fade\n * in, and past `threshold` px (or a fast fling) it flies off; otherwise it\n * springs back. The next card scales up from behind. Buttons / keys:\n * `like()`, `nope()`, ← / →, and `undo()` brings the last card back.\n * Event `usa:swipe` (`{ card, dir: 'left' | 'right', index }`) and\n * `usa:empty`. Reduced motion: cards fade instead of flying.\n */\nexport interface UsaSwipeDeckElement extends UsaElement {\n readonly cards: HTMLElement[];\n readonly top: HTMLElement | null;\n like(): void;\n nope(): void;\n undo(): void;\n}\n\nexport function defineSwipeDeck(tag = 'usa-swipe-deck'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSwipeDeck extends Base {\n private _cards: HTMLElement[] = [];\n private _gone: HTMLElement[] = [];\n\n get cards(): HTMLElement[] {\n return this._cards.filter((c) => !this._gone.includes(c));\n }\n get top(): HTMLElement | null {\n return this.cards[0] || null;\n }\n\n mount(): void {\n this._cards = ownChildren(this);\n this._gone = [];\n this.setAttribute('role', 'region');\n this.setAttribute('aria-roledescription', 'card deck');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Cards'));\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n this._cards.forEach((c) => {\n c.classList.add('usa-sd-card');\n if (!c.querySelector(':scope > .usa-sd-stamp')) {\n c.insertAdjacentHTML('beforeend', '<span class=\"usa-sd-stamp usa-sd-like\" data-usa-part aria-hidden=\"true\">LIKE</span><span class=\"usa-sd-stamp usa-sd-nope\" data-usa-part aria-hidden=\"true\">NOPE</span>');\n }\n });\n this.layout();\n this.listen(this, 'pointerdown', (e: PointerEvent) => this.drag(e));\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight') this.like();\n else if (e.key === 'ArrowLeft') this.nope();\n else if (e.key === 'Backspace' || (e.key === 'z' && (e.ctrlKey || e.metaKey))) this.undo();\n else return;\n e.preventDefault();\n });\n }\n\n private layout(): void {\n this.cards.forEach((c, i) => {\n c.style.zIndex = String(100 - i);\n c.style.transform = i ? `translateY(${Math.min(i, 2) * 10}px) scale(${1 - Math.min(i, 2) * 0.05})` : '';\n c.style.opacity = i > 2 ? '0' : '1';\n c.toggleAttribute('data-top', i === 0);\n c.setAttribute('aria-hidden', String(i !== 0));\n });\n this._cards.filter((c) => this._gone.includes(c)).forEach((c) => (c.style.visibility = 'hidden'));\n }\n\n private stamp(c: HTMLElement, dx: number): void {\n const k = Math.min(1, Math.abs(dx) / Math.max(40, this.num('threshold', 110)));\n (c.querySelector('.usa-sd-like') as HTMLElement | null)?.style.setProperty('opacity', dx > 0 ? k.toFixed(2) : '0');\n (c.querySelector('.usa-sd-nope') as HTMLElement | null)?.style.setProperty('opacity', dx < 0 ? k.toFixed(2) : '0');\n }\n\n private fly(dir: 'left' | 'right', dx = 0, dy = 0): void {\n const c = this.top;\n if (!c) return;\n const index = this._cards.indexOf(c);\n this._gone.push(c);\n const sign = dir === 'right' ? 1 : -1;\n const w = this.getBoundingClientRect().width || 300;\n const done = () => {\n c.style.visibility = 'hidden';\n this.stamp(c, 0);\n };\n const a = this.reduced\n ? this.motion(c, [{ opacity: 1 }, { opacity: 0 }], { duration: 200, fill: 'forwards' })\n : this.motion(c, [{ transform: `translate(${dx}px,${dy}px) rotate(${dx * 0.06}deg)` }, { transform: `translate(${sign * w * 1.5}px,${dy + 60}px) rotate(${sign * 30}deg)`, opacity: 0.6 }], { duration: 420, easing: 'cubic-bezier(.3,.6,.4,1)', fill: 'forwards' });\n if (a) a.finished.then(done, done);\n else done();\n this.layout();\n const next = this.top;\n if (next && !this.reduced) this.motion(next, [{ transform: 'translateY(10px) scale(.95)' }, { transform: 'none' }], { duration: 300, easing: 'cubic-bezier(.3,1.3,.5,1)' });\n this.emit('swipe', { card: c, dir, index });\n if (!this.top) this.emit('empty', {});\n }\n\n like(): void {\n this.fly('right');\n }\n nope(): void {\n this.fly('left');\n }\n undo(): void {\n const c = this._gone.pop();\n if (!c) return;\n c.getAnimations?.().forEach((a) => a.cancel());\n c.style.visibility = '';\n this.layout();\n if (!this.reduced) this.motion(c, [{ transform: 'translate(-120%,40px) rotate(-25deg)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 380, easing: 'cubic-bezier(.2,.9,.3,1.1)' });\n }\n\n private drag(e: PointerEvent): void {\n const c = this.top;\n if (!c || !c.contains(e.target as Node) || e.button > 0) return;\n const x0 = e.clientX;\n const y0 = e.clientY;\n const t0 = performance.now();\n let dx = 0;\n let dy = 0;\n c.setPointerCapture?.(e.pointerId);\n c.classList.add('usa-sd-dragging');\n const move = (ev: PointerEvent) => {\n dx = ev.clientX - x0;\n dy = ev.clientY - y0;\n c.style.transform = `translate(${dx}px,${dy}px) rotate(${this.reduced ? 0 : dx * 0.06}deg)`;\n this.stamp(c, dx);\n };\n const up = () => {\n c.removeEventListener('pointermove', move);\n c.removeEventListener('pointerup', up);\n c.removeEventListener('pointercancel', up);\n c.classList.remove('usa-sd-dragging');\n const v = Math.abs(dx) / Math.max(1, performance.now() - t0);\n if (Math.abs(dx) > this.num('threshold', 110) || (v > 0.6 && Math.abs(dx) > 30)) this.fly(dx > 0 ? 'right' : 'left', dx, dy);\n else {\n const from = c.style.transform;\n c.style.transform = '';\n this.stamp(c, 0);\n if (!this.reduced && from) this.motion(c, [{ transform: from }, { transform: 'none' }], { duration: 420, easing: 'cubic-bezier(.3,1.5,.5,1)' });\n }\n };\n c.addEventListener('pointermove', move);\n c.addEventListener('pointerup', up);\n c.addEventListener('pointercancel', up);\n }\n }\n return UsaSwipeDeck as unknown as CustomElementConstructor;\n },\n { id: 'swipe-deck', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './weather-card.css?raw';\n\n/**\n * `<usa-weather-card>` (6.8) — an animated weather widget. `condition`\n * (`clear | cloudy | rain | snow | storm | fog | night`) picks an animated\n * icon and sky (sun rays turn, clouds drift, rain and snow fall, a gentle —\n * flash-safe — bolt, fog bands, twinkling stars); `temp` counts up to the\n * value, `unit` (°), `place` and `label` fill the text. Changing `condition`\n * cross-fades the scene. Reduced motion: static icon, no count-up. The scene\n * is decorative; the text is the accessible summary (`role=\"group\"` with an\n * `aria-label` like \"Rain, 12°, Lisbon\").\n */\nexport interface UsaWeatherCardElement extends UsaElement {\n condition: string;\n}\n\nexport const WEATHER_CONDITIONS = ['clear', 'cloudy', 'rain', 'snow', 'storm', 'fog', 'night'] as const;\nconst LABEL: Record<string, string> = { clear: 'Clear', cloudy: 'Cloudy', rain: 'Rain', snow: 'Snow', storm: 'Thunderstorm', fog: 'Fog', night: 'Clear night' };\n\nconst icon = (c: string): string => {\n const drops = (cls: string, n: number) => Array.from({ length: n }, (_, i) => `<i class=\"${cls}\" style=\"--i:${i}\"></i>`).join('');\n switch (c) {\n case 'clear':\n return '<span class=\"usa-wc-sun\"></span>';\n case 'night':\n return `<span class=\"usa-wc-moon\"></span>${drops('usa-wc-star', 5)}`;\n case 'cloudy':\n return '<span class=\"usa-wc-cloud usa-wc-c2\"></span><span class=\"usa-wc-cloud\"></span>';\n case 'rain':\n return `<span class=\"usa-wc-cloud\"></span>${drops('usa-wc-drop', 6)}`;\n case 'snow':\n return `<span class=\"usa-wc-cloud\"></span>${drops('usa-wc-flake', 6)}`;\n case 'storm':\n return `<span class=\"usa-wc-cloud usa-wc-dark\"></span><span class=\"usa-wc-bolt\"></span>${drops('usa-wc-drop', 4)}`;\n default:\n return `${drops('usa-wc-fogband', 3)}`;\n }\n};\n\nexport function defineWeatherCard(tag = 'usa-weather-card'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaWeatherCard extends Base {\n static get observedAttributes(): string[] {\n return ['condition', 'temp', 'place', 'unit', 'label'];\n }\n get condition(): string {\n return this.dataset.condition || 'clear';\n }\n set condition(v: string) {\n this.setAttribute('condition', v);\n }\n\n mount(): void {\n const c = this.str('condition', 'clear');\n const cond = (WEATHER_CONDITIONS as readonly string[]).includes(c) ? c : 'clear';\n const changed = this.dataset.condition && this.dataset.condition !== cond;\n this.dataset.condition = cond;\n const temp = this.num('temp', NaN);\n const unit = this.str('unit', '°');\n const label = this.str('label', LABEL[cond]);\n const place = this.str('place', '');\n this.setAttribute('role', 'group');\n this.setAttribute('aria-label', [label, Number.isFinite(temp) ? `${Math.round(temp)}${unit}` : '', place].filter(Boolean).join(', '));\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const scene = document.createElement('div');\n scene.className = 'usa-wc-scene';\n scene.setAttribute('aria-hidden', 'true');\n scene.setAttribute('data-usa-part', '');\n scene.innerHTML = `<span class=\"usa-wc-icon\">${icon(cond)}</span>`;\n const text = document.createElement('div');\n text.className = 'usa-wc-text';\n text.setAttribute('data-usa-part', '');\n text.setAttribute('aria-hidden', 'true');\n text.innerHTML = `<b class=\"usa-wc-temp\">${Number.isFinite(temp) ? Math.round(temp) + unit : ''}</b><span class=\"usa-wc-label\"></span><span class=\"usa-wc-place\"></span>`;\n (text.querySelector('.usa-wc-label') as HTMLElement).textContent = label;\n (text.querySelector('.usa-wc-place') as HTMLElement).textContent = place;\n this.prepend(scene, text);\n if (this.reduced) return;\n if (changed) this.motion(scene, [{ opacity: 0, transform: 'scale(.9)' }, { opacity: 1, transform: 'none' }], { duration: 420, easing: 'ease-out' });\n if (Number.isFinite(temp) && typeof requestAnimationFrame === 'function') {\n const el = text.querySelector('.usa-wc-temp') as HTMLElement;\n const t0 = performance.now();\n const from = Math.round(temp) - Math.min(12, Math.abs(Math.round(temp)) + 6);\n let raf = 0;\n const f = (now: number) => {\n const k = Math.min(1, (now - t0) / 900);\n el.textContent = Math.round(from + (Math.round(temp) - from) * (1 - Math.pow(1 - k, 3))) + unit;\n if (k < 1) raf = requestAnimationFrame(f);\n };\n raf = requestAnimationFrame(f);\n this.onCleanup(() => cancelAnimationFrame(raf));\n }\n }\n }\n return UsaWeatherCard as unknown as CustomElementConstructor;\n },\n { id: 'weather-card', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './pull-cord.css?raw';\n\n/**\n * `<usa-pull-cord>` (6.8) — a lamp pull-cord switch. Drag the handle down\n * (or click / Space / Enter): the cord stretches, and when released past\n * `threshold` px it toggles `on` with a click-bounce; the cord swings back on\n * a damped spring (simulated, drawn as an SVG curve). The lamp shade above\n * glows when on (CSS custom property `--usa-pc-glow`). A real switch:\n * `role=\"switch\"`, `aria-checked`; event `usa:change` (`{ on }`). Reduced\n * motion: no swing — it just toggles.\n */\nexport interface UsaPullCordElement extends UsaElement {\n on: boolean;\n toggle(force?: boolean): void;\n}\n\nexport function definePullCord(tag = 'usa-pull-cord'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaPullCord extends Base {\n private _on = false;\n private _raf = 0;\n private _x = 0;\n private _y = 0;\n private _vx = 0;\n private _vy = 0;\n\n get on(): boolean {\n return this._on;\n }\n set on(v: boolean) {\n this.toggle(!!v, false);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<span class=\"usa-pc-lamp\" data-usa-part aria-hidden=\"true\"></span><svg class=\"usa-pc-svg\" data-usa-part aria-hidden=\"true\" viewBox=\"-40 0 80 150\"><path class=\"usa-pc-cord\" d=\"M0 0 L0 90\"/><circle class=\"usa-pc-knob\" cx=\"0\" cy=\"96\" r=\"7\"/></svg>');\n this.setAttribute('role', 'switch');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Light'));\n this._on = this.flag('on');\n this.sync();\n this.draw();\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n this.pull();\n }\n });\n this.listen(this, 'pointerdown', (e: PointerEvent) => this.drag(e));\n this.onCleanup(() => this._raf && cancelAnimationFrame(this._raf));\n }\n\n private sync(): void {\n this.setAttribute('aria-checked', String(this._on));\n this.toggleAttribute('data-on', this._on);\n }\n\n private draw(): void {\n const cord = this.querySelector('.usa-pc-cord');\n const knob = this.querySelector('.usa-pc-knob');\n const ex = this._x;\n const ey = 90 + this._y;\n cord?.setAttribute('d', `M0 0 Q${(ex * 0.5).toFixed(1)} ${(ey * 0.55).toFixed(1)} ${ex.toFixed(1)} ${ey.toFixed(1)}`);\n knob?.setAttribute('cx', ex.toFixed(1));\n knob?.setAttribute('cy', (ey + 6).toFixed(1));\n }\n\n /** Damped spring back to rest. */\n private release(): void {\n if (this.reduced || typeof requestAnimationFrame !== 'function') {\n this._x = this._y = 0;\n this.draw();\n return;\n }\n let last = 0;\n const f = (now: number) => {\n const dt = last ? Math.min(0.033, (now - last) / 1000) : 1 / 60;\n last = now;\n this._vx += (-120 * this._x - 3 * this._vx) * dt;\n this._vy += (-260 * this._y - 9 * this._vy) * dt;\n this._x += this._vx * dt;\n this._y += this._vy * dt;\n this.draw();\n if (Math.abs(this._x) + Math.abs(this._y) + Math.abs(this._vx) + Math.abs(this._vy) > 0.05) this._raf = requestAnimationFrame(f);\n else ((this._raf = 0), (this._x = this._y = this._vx = this._vy = 0), this.draw());\n };\n if (!this._raf) this._raf = requestAnimationFrame(f);\n }\n\n /** Pull once (keyboard / click): tug the cord and toggle. */\n pull(): void {\n this._y = 26;\n this._vx = (Math.random() - 0.5) * 60;\n this.draw();\n this.toggle(undefined, true);\n this.release();\n }\n\n private drag(e: PointerEvent): void {\n if (e.button > 0) return;\n const y0 = e.clientY;\n const x0 = e.clientX;\n let moved = false;\n if (this._raf) (cancelAnimationFrame(this._raf), (this._raf = 0));\n const move = (ev: PointerEvent) => {\n moved = moved || Math.abs(ev.clientY - y0) > 4;\n this._y = Math.max(0, Math.min(50, ev.clientY - y0));\n this._x = Math.max(-30, Math.min(30, (ev.clientX - x0) * 0.6));\n this.draw();\n };\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n window.removeEventListener('pointercancel', up);\n if (!moved) return this.pull();\n if (this._y >= this.num('threshold', 24)) this.toggle(undefined, true);\n this._vy = -this._y * 2;\n this.release();\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n window.addEventListener('pointercancel', up);\n }\n\n toggle(force?: boolean, user = false): void {\n const next = typeof force === 'boolean' ? force : !this._on;\n if (next === this._on) return;\n this._on = next;\n this.toggleAttribute('on', next);\n this.sync();\n const lamp = this.querySelector('.usa-pc-lamp');\n if (user && lamp && !this.reduced) this.motion(lamp, [{ transform: 'translateY(0)' }, { transform: 'translateY(3px)', offset: 0.3 }, { transform: 'translateY(0)' }], { duration: 300, easing: 'ease-out' });\n if (user) this.emit('change', { on: next });\n }\n }\n return UsaPullCord as unknown as CustomElementConstructor;\n },\n { id: 'pull-cord', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './date-picker.css?raw';\n\n/**\n * `<usa-date-picker>` (6.9) — an inline calendar. Changing month slides the\n * grid in from the direction of travel, the selected day pops inside a\n * spring circle and today has a ring. A real date grid: `role=\"grid\"`,\n * arrows (day / week), PageUp / PageDown (month), Home / End (week start /\n * end), Enter / Space selects; `min` / `max` (ISO `YYYY-MM-DD`) disable days\n * outside the range. `value` (ISO), `first-day` (0 = Sunday, 1 = Monday,\n * default 1), `locale`. Event `usa:change` (`{ value, date }`). Reduced\n * motion: no slide or pop.\n */\nexport interface UsaDatePickerElement extends UsaElement {\n value: string;\n month: string;\n showMonth(delta: number): void;\n}\n\nconst iso = (d: Date): string => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;\n/** Parse `YYYY-MM-DD` as a local date (or null). */\nexport function parseISODate(s: string | null | undefined): Date | null {\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(s || '');\n if (!m) return null;\n const d = new Date(+m[1], +m[2] - 1, +m[3]);\n return d.getMonth() === +m[2] - 1 ? d : null;\n}\n/** The 6×7 day grid of a month (first row starts on `firstDay`). */\nexport function monthGrid(year: number, month: number, firstDay = 1): Date[] {\n const first = new Date(year, month, 1);\n const off = (first.getDay() - firstDay + 7) % 7;\n return Array.from({ length: 42 }, (_, i) => new Date(year, month, 1 - off + i));\n}\n\nexport function defineDatePicker(tag = 'usa-date-picker'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaDatePicker extends Base {\n static get observedAttributes(): string[] {\n return ['min', 'max', 'first-day', 'locale'];\n }\n private _value: Date | null = null;\n private _view = new Date();\n private _focus = new Date();\n\n get value(): string {\n return this._value ? iso(this._value) : '';\n }\n set value(v: string) {\n const d = parseISODate(v);\n this._value = d;\n if (d) (this._view = new Date(d.getFullYear(), d.getMonth(), 1)), (this._focus = d);\n if (this.isConnected) this.render(0);\n }\n get month(): string {\n return iso(this._view).slice(0, 7);\n }\n\n mount(): void {\n const v = parseISODate(this.getAttribute('value'));\n if (v) (this._value = v), (this._focus = v);\n else this._focus = this._value || new Date();\n this._view = new Date(this._focus.getFullYear(), this._focus.getMonth(), 1);\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<div class=\"usa-dp-head\" data-usa-part><button type=\"button\" class=\"usa-dp-nav\" data-d=\"-1\" aria-label=\"Previous month\">‹</button><span class=\"usa-dp-title\" aria-live=\"polite\"></span><button type=\"button\" class=\"usa-dp-nav\" data-d=\"1\" aria-label=\"Next month\">›</button></div><div class=\"usa-dp-viewport\" data-usa-part><div class=\"usa-dp-grid\" role=\"grid\"></div></div>');\n this.listen(this, 'click', (e: Event) => {\n const t = e.target as HTMLElement;\n const nav = t.closest?.('.usa-dp-nav') as HTMLElement | null;\n if (nav) return this.showMonth(Number(nav.dataset.d));\n const day = t.closest?.('[data-date]') as HTMLElement | null;\n if (day && !day.hasAttribute('aria-disabled')) this.pick(parseISODate(day.dataset.date!)!);\n });\n this.listen(this, 'keydown', (e: KeyboardEvent) => this.key(e));\n this.render(0);\n }\n\n private inRange(d: Date): boolean {\n const lo = parseISODate(this.getAttribute('min'));\n const hi = parseISODate(this.getAttribute('max'));\n return (!lo || d >= lo) && (!hi || d <= hi);\n }\n\n private render(dir: number, focus = false): void {\n const grid = this.querySelector('.usa-dp-grid') as HTMLElement | null;\n if (!grid) return;\n const loc = this.str('locale', '') || undefined;\n const fd = this.num('first-day', 1);\n const title = this.querySelector('.usa-dp-title') as HTMLElement;\n title.textContent = this._view.toLocaleDateString(loc, { month: 'long', year: 'numeric' });\n const days = monthGrid(this._view.getFullYear(), this._view.getMonth(), fd);\n const names = days.slice(0, 7).map((d) => d.toLocaleDateString(loc, { weekday: 'narrow' }));\n const today = iso(new Date());\n const sel = this.value;\n const foc = iso(this._focus);\n let html = `<div role=\"row\" class=\"usa-dp-row usa-dp-dow\">${names.map((n) => `<span role=\"columnheader\">${n}</span>`).join('')}</div>`;\n for (let r = 0; r < 6; r++) {\n html += '<div role=\"row\" class=\"usa-dp-row\">';\n for (const d of days.slice(r * 7, r * 7 + 7)) {\n const k = iso(d);\n const out = d.getMonth() !== this._view.getMonth();\n const dis = !this.inRange(d);\n html += `<span role=\"gridcell\" class=\"usa-dp-day\" data-date=\"${k}\"${out ? ' data-out' : ''}${k === today ? ' data-today' : ''} aria-selected=\"${k === sel}\"${dis ? ' aria-disabled=\"true\"' : ''} tabindex=\"${k === foc ? 0 : -1}\" aria-label=\"${d.toLocaleDateString(loc, { day: 'numeric', month: 'long', year: 'numeric' })}\">${d.getDate()}</span>`;\n }\n html += '</div>';\n }\n grid.innerHTML = html;\n if (focus) (grid.querySelector(`[data-date=\"${foc}\"]`) as HTMLElement | null)?.focus();\n if (dir && !this.reduced) this.motion(grid, [{ transform: `translateX(${dir * 30}%)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 320, easing: 'cubic-bezier(.2,.8,.2,1)' });\n }\n\n showMonth(delta: number): void {\n this._view = new Date(this._view.getFullYear(), this._view.getMonth() + delta, 1);\n this._focus = new Date(this._view);\n this.render(Math.sign(delta));\n }\n\n private pick(d: Date): void {\n if (!this.inRange(d)) return;\n this._value = d;\n this._focus = d;\n const dir = d.getMonth() !== this._view.getMonth() || d.getFullYear() !== this._view.getFullYear() ? (d > this._view ? 1 : -1) : 0;\n if (dir) this._view = new Date(d.getFullYear(), d.getMonth(), 1);\n this.setAttribute('value', iso(d));\n this.render(dir, true);\n const cell = this.querySelector(`[data-date=\"${iso(d)}\"]`);\n if (cell && !this.reduced) this.motion(cell, [{ transform: 'scale(.6)' }, { transform: 'scale(1.15)', offset: 0.6 }, { transform: 'scale(1)' }], { duration: 380, easing: 'ease-out' });\n this.emit('change', { value: iso(d), date: d });\n }\n\n private key(e: KeyboardEvent): void {\n if (!(e.target as HTMLElement).closest?.('[data-date]')) return;\n const f = new Date(this._focus);\n const step: Record<string, () => void> = {\n ArrowLeft: () => f.setDate(f.getDate() - 1),\n ArrowRight: () => f.setDate(f.getDate() + 1),\n ArrowUp: () => f.setDate(f.getDate() - 7),\n ArrowDown: () => f.setDate(f.getDate() + 7),\n PageUp: () => f.setMonth(f.getMonth() - 1),\n PageDown: () => f.setMonth(f.getMonth() + 1),\n Home: () => f.setDate(f.getDate() - ((f.getDay() - this.num('first-day', 1) + 7) % 7)),\n End: () => f.setDate(f.getDate() + 6 - ((f.getDay() - this.num('first-day', 1) + 7) % 7)),\n };\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n return this.pick(this._focus);\n }\n if (!step[e.key]) return;\n e.preventDefault();\n step[e.key]();\n const dir = f.getMonth() !== this._view.getMonth() ? (f > this._view ? 1 : -1) : 0;\n this._focus = f;\n if (dir) this._view = new Date(f.getFullYear(), f.getMonth(), 1);\n this.render(dir, true);\n }\n }\n return UsaDatePicker as unknown as CustomElementConstructor;\n },\n { id: 'date-picker', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './color-picker.css?raw';\n\n/**\n * `<usa-color-picker>` (6.9) — a colour picker: a saturation / brightness\n * square and a hue strip (both `role=\"slider\"`, arrow keys, Shift = ×10),\n * spring-follow thumbs, a preview chip that morphs to the new colour, and\n * optional `swatches` (comma-separated hex) that pop on pick. `value` is\n * `#rrggbb`. Events `usa:input` while dragging and `usa:change` on release\n * (`{ value }`). Reduced motion: thumbs jump, no pop.\n */\nexport interface UsaColorPickerElement extends UsaElement {\n value: string;\n}\n\n/** HSV (h 0–360, s / v 0–1) → `#rrggbb`. */\nexport function hsvToHex(h: number, s: number, v: number): string {\n const f = (n: number) => {\n const k = (n + h / 60) % 6;\n return Math.round((v - v * s * Math.max(0, Math.min(k, 4 - k, 1))) * 255);\n };\n return '#' + [f(5), f(3), f(1)].map((x) => x.toString(16).padStart(2, '0')).join('');\n}\n/** `#rrggbb` → HSV (or null). */\nexport function hexToHsv(hex: string): [number, number, number] | null {\n const m = /^#?([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/i.exec(hex.trim());\n if (!m) return null;\n const [r, g, b] = [m[1], m[2], m[3]].map((x) => parseInt(x, 16) / 255);\n const mx = Math.max(r, g, b);\n const d = mx - Math.min(r, g, b);\n let h = 0;\n if (d) h = mx === r ? ((g - b) / d) % 6 : mx === g ? (b - r) / d + 2 : (r - g) / d + 4;\n return [(h * 60 + 360) % 360, mx ? d / mx : 0, mx];\n}\n\nexport function defineColorPicker(tag = 'usa-color-picker'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaColorPicker extends Base {\n static get observedAttributes(): string[] {\n return ['swatches'];\n }\n private _h = 260;\n private _s = 0.64;\n private _v = 1;\n\n get value(): string {\n return hsvToHex(this._h, this._s, this._v);\n }\n set value(v: string) {\n const hsv = hexToHsv(v);\n if (!hsv) return;\n [this._h, this._s, this._v] = hsv;\n this.paint(true);\n }\n\n mount(): void {\n const hsv = hexToHsv(this.str('value', '#7c5cff'));\n if (hsv) [this._h, this._s, this._v] = hsv;\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const sw = this.str('swatches', '').split(',').map((s) => s.trim()).filter((s) => hexToHsv(s));\n this.insertAdjacentHTML('afterbegin', `<div class=\"usa-cp-sv\" data-usa-part role=\"slider\" tabindex=\"0\" aria-label=\"Saturation and brightness\"><span class=\"usa-cp-thumb\"></span></div><div class=\"usa-cp-row\" data-usa-part><span class=\"usa-cp-chip\" aria-hidden=\"true\"></span><div class=\"usa-cp-hue\" role=\"slider\" tabindex=\"0\" aria-label=\"Hue\" aria-valuemin=\"0\" aria-valuemax=\"360\"><span class=\"usa-cp-thumb\"></span></div></div>${sw.length ? `<div class=\"usa-cp-swatches\" data-usa-part>${sw.map((c) => `<button type=\"button\" class=\"usa-cp-sw\" style=\"background:${c}\" data-c=\"${c}\" aria-label=\"${c}\"></button>`).join('')}</div>` : ''}`);\n const sv = this.querySelector('.usa-cp-sv') as HTMLElement;\n const hue = this.querySelector('.usa-cp-hue') as HTMLElement;\n this.drag(sv, (x, y) => ((this._s = x), (this._v = 1 - y)));\n this.drag(hue, (x) => (this._h = x * 360));\n this.listen(sv, 'keydown', (e: KeyboardEvent) => this.keys(e, (d, ax) => (ax ? (this._v = clampN(this._v - d, 0, 1)) : (this._s = clampN(this._s + d, 0, 1)))));\n this.listen(hue, 'keydown', (e: KeyboardEvent) => this.keys(e, (d) => (this._h = (this._h + d * 360 + 360) % 360)));\n this.listen(this, 'click', (e: Event) => {\n const b = (e.target as HTMLElement).closest?.('.usa-cp-sw') as HTMLElement | null;\n if (!b) return;\n this.value = b.dataset.c!;\n if (!this.reduced) this.motion(b, [{ transform: 'scale(1)' }, { transform: 'scale(1.35)', offset: 0.4 }, { transform: 'scale(1)' }], { duration: 360, easing: 'cubic-bezier(.3,1.5,.5,1)' });\n this.emit('change', { value: this.value });\n });\n this.paint(false);\n }\n\n private keys(e: KeyboardEvent, fn: (d: number, vertical: boolean) => void): void {\n const k = e.shiftKey ? 0.1 : 0.01;\n const map: Record<string, [number, boolean]> = { ArrowLeft: [-k, false], ArrowRight: [k, false], ArrowUp: [-k, true], ArrowDown: [k, true] };\n const m = map[e.key];\n if (!m) return;\n e.preventDefault();\n fn(m[0], m[1]);\n this.paint(false);\n this.emit('change', { value: this.value });\n }\n\n private drag(area: HTMLElement, fn: (x: number, y: number) => void): void {\n const at = (e: PointerEvent) => {\n const r = area.getBoundingClientRect();\n fn(clampN((e.clientX - r.left) / (r.width || 1), 0, 1), clampN((e.clientY - r.top) / (r.height || 1), 0, 1));\n this.paint(false);\n this.emit('input', { value: this.value });\n };\n this.listen(area, 'pointerdown', (e: PointerEvent) => {\n area.setPointerCapture?.(e.pointerId);\n area.toggleAttribute('data-drag', true);\n at(e);\n const move = (ev: PointerEvent) => at(ev);\n const up = () => {\n area.removeAttribute('data-drag');\n area.removeEventListener('pointermove', move);\n area.removeEventListener('pointerup', up);\n this.emit('change', { value: this.value });\n };\n area.addEventListener('pointermove', move);\n area.addEventListener('pointerup', up);\n });\n }\n\n private paint(morph: boolean): void {\n const c = this.value;\n this.style.setProperty('--usa-cp-h', String(Math.round(this._h)));\n this.style.setProperty('--usa-cp-color', c);\n this.style.setProperty('--usa-cp-x', (this._s * 100).toFixed(2) + '%');\n this.style.setProperty('--usa-cp-y', ((1 - this._v) * 100).toFixed(2) + '%');\n this.style.setProperty('--usa-cp-hx', ((this._h / 360) * 100).toFixed(2) + '%');\n const sv = this.querySelector('.usa-cp-sv');\n sv?.setAttribute('aria-valuetext', `saturation ${Math.round(this._s * 100)}%, brightness ${Math.round(this._v * 100)}%`);\n const hue = this.querySelector('.usa-cp-hue');\n hue?.setAttribute('aria-valuenow', String(Math.round(this._h)));\n this.setAttribute('value', c);\n const chip = this.querySelector('.usa-cp-chip');\n if (morph && chip && !this.reduced) this.motion(chip, [{ borderRadius: '50%', transform: 'scale(.7) rotate(-20deg)' }, { borderRadius: '30%', transform: 'scale(1.1)', offset: 0.6 }, { borderRadius: '50%', transform: 'none' }], { duration: 420, easing: 'ease-out' });\n }\n }\n return UsaColorPicker as unknown as CustomElementConstructor;\n },\n { id: 'color-picker', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './file-drop.css?raw';\n\n/**\n * `<usa-file-drop>` (6.9) — a file drop zone. Dragging files over it lights\n * the zone with marching-ants borders and lifts the icon; dropping (or\n * choosing via the built-in file input — click / Enter / Space) flies each\n * file into a list with a progress bar. Progress is yours to report with\n * `setProgress(index, 0–1)`, or `simulate` fakes it for demos; a finished\n * file draws a check. Attributes `accept`, `multiple`, `label`. Event\n * `usa:files` (`{ files }`). Reduced motion: no ants, lift or fly-in.\n */\nexport interface UsaFileDropElement extends UsaElement {\n readonly files: File[];\n setProgress(index: number, value: number): void;\n addFiles(files: ArrayLike<File>): void;\n clear(): void;\n}\n\nconst size = (n: number): string => (n < 1024 ? `${n} B` : n < 1048576 ? `${(n / 1024).toFixed(1)} KB` : `${(n / 1048576).toFixed(1)} MB`);\n\nexport function defineFileDrop(tag = 'usa-file-drop'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaFileDrop extends Base {\n private _files: File[] = [];\n private _depth = 0;\n\n get files(): File[] {\n return this._files.slice();\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const label = this.str('label', 'Drop files here or browse');\n this.insertAdjacentHTML('afterbegin', `<div class=\"usa-fd-zone\" data-usa-part role=\"button\" tabindex=\"0\"><svg class=\"usa-fd-ants\" aria-hidden=\"true\"><rect x=\"1\" y=\"1\" width=\"calc(100% - 2px)\" height=\"calc(100% - 2px)\" rx=\"14\"/></svg><span class=\"usa-fd-icon\" aria-hidden=\"true\">⇪</span><span class=\"usa-fd-label\"></span><input type=\"file\" hidden></div><ul class=\"usa-fd-list\" data-usa-part aria-live=\"polite\"></ul>`);\n const zone = this.querySelector('.usa-fd-zone') as HTMLElement;\n (zone.querySelector('.usa-fd-label') as HTMLElement).textContent = label;\n zone.setAttribute('aria-label', label);\n const input = zone.querySelector('input') as HTMLInputElement;\n if (this.str('accept', '')) input.accept = this.str('accept', '');\n input.multiple = this.flag('multiple');\n this.listen(zone, 'click', (e: Event) => e.target !== input && input.click());\n this.listen(zone, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n input.click();\n }\n });\n this.listen(input, 'change', () => input.files && this.addFiles(input.files));\n this.listen(zone, 'dragenter', (e: DragEvent) => {\n e.preventDefault();\n this._depth++;\n this.toggleAttribute('data-over', true);\n });\n this.listen(zone, 'dragover', (e: DragEvent) => e.preventDefault());\n this.listen(zone, 'dragleave', () => {\n this._depth = Math.max(0, this._depth - 1);\n if (!this._depth) this.removeAttribute('data-over');\n });\n this.listen(zone, 'drop', (e: DragEvent) => {\n e.preventDefault();\n this._depth = 0;\n this.removeAttribute('data-over');\n if (e.dataTransfer?.files?.length) this.addFiles(e.dataTransfer.files);\n });\n }\n\n addFiles(list: ArrayLike<File>): void {\n const ul = this.querySelector('.usa-fd-list') as HTMLElement;\n const files = Array.from(list).slice(0, this.flag('multiple') ? undefined : 1);\n if (!this.flag('multiple')) this.clear();\n const start = this._files.length;\n files.forEach((f, i) => {\n this._files.push(f);\n const li = document.createElement('li');\n li.className = 'usa-fd-item';\n li.innerHTML = '<span class=\"usa-fd-name\"></span><span class=\"usa-fd-size\"></span><span class=\"usa-fd-bar\"><span class=\"usa-fd-fill\"></span></span><svg class=\"usa-fd-check\" viewBox=\"0 0 16 16\" aria-hidden=\"true\"><path d=\"M3 8.5l3.2 3L13 4.8\"/></svg>';\n (li.querySelector('.usa-fd-name') as HTMLElement).textContent = f.name;\n (li.querySelector('.usa-fd-size') as HTMLElement).textContent = size(f.size);\n li.setAttribute('aria-label', `${f.name}, ${size(f.size)}`);\n ul.appendChild(li);\n if (!this.reduced) this.motion(li, [{ transform: 'translateY(-28px) scale(.85)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 380, delay: i * 70, easing: 'cubic-bezier(.2,.9,.3,1.2)', fill: 'backwards' });\n });\n this.emit('files', { files });\n if (this.flag('simulate')) files.forEach((_, i) => this.simulate(start + i));\n }\n\n private simulate(i: number): void {\n let p = 0;\n const tick = () => {\n if (!this.isConnected) return;\n p = Math.min(1, p + 0.12 + Math.random() * 0.15);\n this.setProgress(i, p);\n if (p < 1) setTimeout(tick, 160);\n };\n setTimeout(tick, 200);\n }\n\n setProgress(index: number, value: number): void {\n const li = this.querySelectorAll('.usa-fd-item')[index] as HTMLElement | undefined;\n if (!li) return;\n const v = Math.max(0, Math.min(1, value));\n li.style.setProperty('--usa-fd-p', String(v));\n li.toggleAttribute('data-done', v >= 1);\n li.setAttribute('aria-label', `${this._files[index]?.name || ''}, ${Math.round(v * 100)}%`);\n }\n\n clear(): void {\n this._files = [];\n (this.querySelector('.usa-fd-list') as HTMLElement | null)?.replaceChildren();\n }\n }\n return UsaFileDrop as unknown as CustomElementConstructor;\n },\n { id: 'file-drop', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { createPlayer, ANIMATION_FORMAT, type AnimationJSON, type Player } from '../effects/player';\nimport css from './keyframe-editor.css?raw';\n\n/**\n * `<usa-keyframe-editor>` (6.9) — animation editor 2.0: a compact timeline\n * for `<usa-player>` JSON. Each track is a row with a draggable bar (drag to\n * move, drag the right edge to resize; ← / → move by 50 ms, Shift + ← / →\n * resize); a playhead scrubs the preview, ▶ plays it. The preview target is\n * the element with id `for` (its children are the tracks' targets). Set\n * `animation` (object or JSON string, or a `<script type=\"application/json\">`\n * child); read `animation` / `toJSON()` for the edited JSON (format\n * `use-scroll-animate/animation` v1 — playable by `<usa-player>`). Event\n * `usa:change` (`{ animation }`). Reduced motion: the preview jumps to the\n * end state.\n */\nexport interface UsaKeyframeEditorElement extends UsaElement {\n animation: AnimationJSON;\n toJSON(): AnimationJSON;\n play(): void;\n seek(ms: number): void;\n}\n\nconst DEFAULT: AnimationJSON = {\n format: ANIMATION_FORMAT,\n version: 1,\n name: 'Untitled',\n tracks: [\n { target: ':scope > :nth-child(1)', start: 0, duration: 600, preset: 'fade-up', label: 'Title' },\n { target: ':scope > :nth-child(2)', start: 300, duration: 600, preset: 'scale', label: 'Card' },\n { target: ':scope > :nth-child(3)', start: 700, duration: 500, preset: 'fade-up', label: 'Button' },\n ],\n};\n\nexport function defineKeyframeEditor(tag = 'usa-keyframe-editor'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaKeyframeEditor extends Base {\n private _anim: AnimationJSON = JSON.parse(JSON.stringify(DEFAULT));\n private _player: Player | null = null;\n\n get animation(): AnimationJSON {\n return this.toJSON();\n }\n set animation(v: AnimationJSON | string) {\n try {\n const a = typeof v === 'string' ? JSON.parse(v) : v;\n if (a && Array.isArray(a.tracks)) this._anim = { format: ANIMATION_FORMAT, version: 1, ...JSON.parse(JSON.stringify(a)) };\n } catch {\n return;\n }\n if (this.isConnected) this.render();\n }\n\n toJSON(): AnimationJSON {\n return JSON.parse(JSON.stringify({ ...this._anim, duration: this.total() }));\n }\n\n private total(): number {\n return Math.max(500, ...this._anim.tracks.map((t) => (t.start || 0) + (t.duration || 0)));\n }\n\n mount(): void {\n const src = this.querySelector(':scope > script[type=\"application/json\"]');\n if (src?.textContent) this.animation = src.textContent;\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<div class=\"usa-ke-bar\" data-usa-part><button type=\"button\" class=\"usa-ke-play\" aria-label=\"Play\">▶</button><input class=\"usa-ke-scrub\" type=\"range\" min=\"0\" max=\"1000\" value=\"1000\" aria-label=\"Playhead\"><output class=\"usa-ke-time\">0 ms</output></div><div class=\"usa-ke-tracks\" data-usa-part role=\"list\"></div>');\n this.listen(this.querySelector('.usa-ke-play')!, 'click', () => this.play());\n this.listen(this.querySelector('.usa-ke-scrub')!, 'input', (e: Event) => this.seek((Number((e.target as HTMLInputElement).value) / 1000) * this.total()));\n this.render();\n }\n\n private target(): HTMLElement | null {\n const id = this.str('for', '');\n return id ? document.getElementById(id) : null;\n }\n\n private rebuild(): void {\n this._player?.destroy?.();\n this._player = null;\n const t = this.target();\n if (t) this._player = createPlayer(t, this.toJSON(), { autoplay: false });\n }\n\n private render(): void {\n const box = this.querySelector('.usa-ke-tracks') as HTMLElement | null;\n if (!box) return;\n const total = this.total();\n box.innerHTML = '';\n this._anim.tracks.forEach((t, i) => {\n const row = document.createElement('div');\n row.className = 'usa-ke-row';\n row.setAttribute('role', 'listitem');\n row.innerHTML = `<span class=\"usa-ke-label\"></span><span class=\"usa-ke-lane\"><span class=\"usa-ke-clip\" tabindex=\"0\" role=\"slider\" aria-valuemin=\"0\" aria-valuemax=\"${total}\"><span class=\"usa-ke-grip\" aria-hidden=\"true\"></span></span></span>`;\n (row.querySelector('.usa-ke-label') as HTMLElement).textContent = t.label || t.preset || t.effect || `Track ${i + 1}`;\n const clip = row.querySelector('.usa-ke-clip') as HTMLElement;\n clip.style.left = `${((t.start || 0) / total) * 100}%`;\n clip.style.width = `${Math.max(2, ((t.duration || 300) / total) * 100)}%`;\n clip.setAttribute('aria-valuenow', String(t.start || 0));\n clip.setAttribute('aria-label', `${(row.querySelector('.usa-ke-label') as HTMLElement).textContent}: start ${t.start || 0} ms, ${t.duration || 0} ms`);\n clip.dataset.i = String(i);\n this.wire(clip, i);\n box.appendChild(row);\n });\n this.rebuild();\n }\n\n private update(i: number, start: number, duration: number): void {\n const t = this._anim.tracks[i];\n t.start = Math.max(0, Math.round(start / 10) * 10);\n t.duration = Math.max(50, Math.round(duration / 10) * 10);\n this.render();\n (this.querySelector(`.usa-ke-clip[data-i=\"${i}\"]`) as HTMLElement | null)?.focus();\n this.emit('change', { animation: this.toJSON() });\n }\n\n private wire(clip: HTMLElement, i: number): void {\n clip.addEventListener('keydown', (e: KeyboardEvent) => {\n const t = this._anim.tracks[i];\n const d = e.key === 'ArrowRight' ? 50 : e.key === 'ArrowLeft' ? -50 : 0;\n if (!d) return;\n e.preventDefault();\n if (e.shiftKey) this.update(i, t.start || 0, (t.duration || 300) + d);\n else this.update(i, (t.start || 0) + d, t.duration || 300);\n });\n clip.addEventListener('pointerdown', (e: PointerEvent) => {\n const lane = clip.parentElement as HTMLElement;\n const w = lane.getBoundingClientRect().width || 1;\n const total = this.total();\n const t = this._anim.tracks[i];\n const s0 = t.start || 0;\n const d0 = t.duration || 300;\n const resize = (e.target as HTMLElement).classList.contains('usa-ke-grip');\n const x0 = e.clientX;\n clip.setPointerCapture?.(e.pointerId);\n clip.toggleAttribute('data-drag', true);\n const move = (ev: PointerEvent) => {\n const dms = ((ev.clientX - x0) / w) * total;\n if (resize) clip.style.width = `${(Math.max(50, d0 + dms) / total) * 100}%`;\n else clip.style.left = `${(Math.max(0, s0 + dms) / total) * 100}%`;\n };\n const up = (ev: PointerEvent) => {\n clip.removeEventListener('pointermove', move);\n clip.removeEventListener('pointerup', up);\n clip.removeAttribute('data-drag');\n const dms = ((ev.clientX - x0) / w) * total;\n if (Math.abs(ev.clientX - x0) < 2) return;\n if (resize) this.update(i, s0, d0 + dms);\n else this.update(i, s0 + dms, d0);\n };\n clip.addEventListener('pointermove', move);\n clip.addEventListener('pointerup', up);\n });\n }\n\n seek(ms: number): void {\n const total = this.total();\n const v = Math.max(0, Math.min(total, ms));\n this._player?.seek?.(v);\n const out = this.querySelector('.usa-ke-time');\n if (out) out.textContent = `${Math.round(v)} ms`;\n this.style.setProperty('--usa-ke-head', `${(v / total) * 100}%`);\n }\n\n play(): void {\n if (!this._player) this.rebuild();\n if (this.reduced) return this.seek(this.total());\n this._player?.seek?.(0);\n this._player?.play?.();\n const t0 = performance.now();\n const total = this.total();\n const scrub = this.querySelector('.usa-ke-scrub') as HTMLInputElement | null;\n const f = () => {\n const ms = Math.min(total, performance.now() - t0);\n if (scrub) scrub.value = String(Math.round((ms / total) * 1000));\n this.style.setProperty('--usa-ke-head', `${(ms / total) * 100}%`);\n const out = this.querySelector('.usa-ke-time');\n if (out) out.textContent = `${Math.round(ms)} ms`;\n if (ms < total && this.isConnected) requestAnimationFrame(f);\n };\n if (typeof requestAnimationFrame === 'function') requestAnimationFrame(f);\n }\n }\n return UsaKeyframeEditor as unknown as CustomElementConstructor;\n },\n { id: 'keyframe-editor', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './music-player.css?raw';\n\n/**\n * `<usa-music-player>` (7.1) — a music player card: the cover turns like a\n * record while playing, the play button morphs ▶ ↔ ❚❚, mini equalizer bars\n * dance, and the progress bar is a scrubbable slider (arrows ±5 s). Plays a\n * child `<audio>` (or `src`), or simulates a track of `duration` seconds for\n * demos. Attributes `title`, `artist`, `cover` (image URL), `src`,\n * `duration`. Methods `play()`, `pause()`, `toggle()`, `seek(s)`; events\n * `usa:play`, `usa:pause`, `usa:seek`, `usa:prev`, `usa:next`. Reduced\n * motion: no spin or dancing bars.\n */\nexport interface UsaMusicPlayerElement extends UsaElement {\n readonly playing: boolean;\n currentTime: number;\n readonly duration: number;\n play(): void;\n pause(): void;\n toggle(): void;\n seek(s: number): void;\n}\n\nconst fmt = (s: number): string => `${Math.floor(s / 60)}:${String(Math.floor(s % 60)).padStart(2, '0')}`;\n\nexport function defineMusicPlayer(tag = 'usa-music-player'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMusicPlayer extends Base {\n static get observedAttributes(): string[] {\n return ['title', 'artist', 'cover', 'src'];\n }\n private _audio: HTMLAudioElement | null = null;\n private _playing = false;\n private _t = 0;\n private _raf = 0;\n private _last = 0;\n\n get playing(): boolean {\n return this._playing;\n }\n get duration(): number {\n const d = this._audio?.duration;\n return d && Number.isFinite(d) ? d : Math.max(1, this.num('duration', 180));\n }\n get currentTime(): number {\n return this._audio ? this._audio.currentTime : this._t;\n }\n set currentTime(v: number) {\n this.seek(v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this._audio = this.querySelector(':scope > audio');\n if (!this._audio && this.str('src', '')) {\n this._audio = document.createElement('audio');\n this._audio.src = this.str('src', '');\n this._audio.preload = 'metadata';\n this._audio.setAttribute('data-usa-part', '');\n this.appendChild(this._audio);\n }\n this.setAttribute('role', 'group');\n this.setAttribute('aria-roledescription', 'music player');\n const title = this.str('title', 'Untitled');\n const artist = this.str('artist', '');\n this.setAttribute('aria-label', artist ? `${title} — ${artist}` : title);\n const cover = this.str('cover', '');\n this.insertAdjacentHTML('afterbegin', `<div class=\"usa-mp-cover\" data-usa-part aria-hidden=\"true\"><span class=\"usa-mp-disc\"${cover ? ` style=\"background-image:url('${cover.replace(/'/g, '%27')}')\"` : ''}></span></div><div class=\"usa-mp-body\" data-usa-part><div class=\"usa-mp-meta\"><b class=\"usa-mp-title\"></b><span class=\"usa-mp-artist\"></span></div><div class=\"usa-mp-bars\" aria-hidden=\"true\"><i></i><i></i><i></i><i></i></div><div class=\"usa-mp-track\" role=\"slider\" tabindex=\"0\" aria-label=\"Seek\" aria-valuemin=\"0\"><span class=\"usa-mp-fill\"></span><span class=\"usa-mp-knob\"></span></div><div class=\"usa-mp-times\"><span class=\"usa-mp-cur\">0:00</span><span class=\"usa-mp-dur\"></span></div><div class=\"usa-mp-ctrls\"><button type=\"button\" class=\"usa-mp-btn\" data-act=\"prev\" aria-label=\"Previous\">⏮</button><button type=\"button\" class=\"usa-mp-play\" data-act=\"play\" aria-label=\"Play\"><span class=\"usa-mp-icon\"></span></button><button type=\"button\" class=\"usa-mp-btn\" data-act=\"next\" aria-label=\"Next\">⏭</button></div></div>`);\n (this.querySelector('.usa-mp-title') as HTMLElement).textContent = title;\n (this.querySelector('.usa-mp-artist') as HTMLElement).textContent = artist;\n this.listen(this, 'click', (e: Event) => {\n const act = (e.target as HTMLElement).closest?.('[data-act]') as HTMLElement | null;\n if (!act) return;\n if (act.dataset.act === 'play') this.toggle();\n else this.emit(act.dataset.act!, {});\n });\n const track = this.querySelector('.usa-mp-track') as HTMLElement;\n this.listen(track, 'pointerdown', (e: PointerEvent) => {\n const at = (ev: PointerEvent) => {\n const r = track.getBoundingClientRect();\n this.seek(clampN((ev.clientX - r.left) / (r.width || 1), 0, 1) * this.duration);\n };\n at(e);\n track.setPointerCapture?.(e.pointerId);\n const up = () => (track.removeEventListener('pointermove', at), track.removeEventListener('pointerup', up));\n track.addEventListener('pointermove', at);\n track.addEventListener('pointerup', up);\n });\n this.listen(track, 'keydown', (e: KeyboardEvent) => {\n const d = e.key === 'ArrowRight' ? 5 : e.key === 'ArrowLeft' ? -5 : 0;\n if (!d) return;\n e.preventDefault();\n this.seek(this.currentTime + d);\n });\n if (this._audio) {\n this.listen(this._audio, 'timeupdate', () => this.sync());\n this.listen(this._audio, 'loadedmetadata', () => this.sync());\n this.listen(this._audio, 'ended', () => this.pause());\n }\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n this.sync();\n }\n\n private sync(): void {\n const d = this.duration;\n const t = this.currentTime;\n this.style.setProperty('--usa-mp-p', String(clampN(t / d, 0, 1)));\n const cur = this.querySelector('.usa-mp-cur');\n if (cur) cur.textContent = fmt(t);\n const dur = this.querySelector('.usa-mp-dur');\n if (dur) dur.textContent = fmt(d);\n const tr = this.querySelector('.usa-mp-track');\n tr?.setAttribute('aria-valuemax', String(Math.round(d)));\n tr?.setAttribute('aria-valuenow', String(Math.round(t)));\n tr?.setAttribute('aria-valuetext', `${fmt(t)} of ${fmt(d)}`);\n this.toggleAttribute('data-playing', this._playing);\n this.toggleAttribute('data-animate', this._playing && !this.reduced);\n const b = this.querySelector('.usa-mp-play');\n b?.setAttribute('aria-label', this._playing ? 'Pause' : 'Play');\n b?.setAttribute('aria-pressed', String(this._playing));\n }\n\n private tick = (now: number): void => {\n if (!this._playing) return;\n if (!this._audio) {\n this._t += this._last ? (now - this._last) / 1000 : 0;\n this._last = now;\n if (this._t >= this.duration) {\n this._t = this.duration;\n this.sync();\n return this.pause();\n }\n this.sync();\n }\n this._raf = requestAnimationFrame(this.tick);\n };\n\n play(): void {\n if (this._playing) return;\n this._playing = true;\n if (this._audio) void this._audio.play()?.catch?.(() => undefined);\n this._last = 0;\n if (typeof requestAnimationFrame === 'function') this._raf = requestAnimationFrame(this.tick);\n this.sync();\n const icon = this.querySelector('.usa-mp-play');\n if (icon && !this.reduced) this.motion(icon, [{ transform: 'scale(.85)' }, { transform: 'scale(1.08)', offset: 0.6 }, { transform: 'scale(1)' }], { duration: 300, easing: 'ease-out' });\n this.emit('play', {});\n }\n pause(): void {\n if (!this._playing) return;\n this._playing = false;\n this._audio?.pause();\n cancelAnimationFrame(this._raf);\n this.sync();\n this.emit('pause', {});\n }\n toggle(): void {\n if (this._playing) this.pause();\n else this.play();\n }\n seek(s: number): void {\n const t = clampN(s, 0, this.duration);\n if (this._audio) this._audio.currentTime = t;\n else this._t = t;\n this.sync();\n this.emit('seek', { time: t });\n }\n }\n return UsaMusicPlayer as unknown as CustomElementConstructor;\n },\n { id: 'music-player', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './volume-knob.css?raw';\n\n/**\n * `<usa-volume-knob>` (7.1) — a rotary knob: drag up / down (or around),\n * scroll, or use the keyboard (arrows ±1, PageUp / PageDown ±10, Home / End)\n * to turn it; the value arc fills, a ring of LED ticks lights up and the\n * pointer springs to the new angle. `role=\"slider\"`; attributes `value`,\n * `min` (0), `max` (100), `label`, `size`. Events `usa:input` while turning,\n * `usa:change` when done (`{ value }`). Reduced motion: no spring.\n */\nexport interface UsaVolumeKnobElement extends UsaElement {\n value: number;\n}\n\nconst ARC = 270;\n\nexport function defineVolumeKnob(tag = 'usa-volume-knob'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaVolumeKnob extends Base {\n static get observedAttributes(): string[] {\n return ['min', 'max'];\n }\n private _v = 50;\n\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this.set(v, false);\n }\n\n mount(): void {\n this._v = clampN(this.num('value', 50), this.num('min', 0), this.num('max', 100));\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const ticks = Array.from({ length: 21 }, (_, i) => `<i style=\"--a:${-ARC / 2 + (i / 20) * ARC}deg\"></i>`).join('');\n this.insertAdjacentHTML('afterbegin', `<span class=\"usa-vk-ticks\" data-usa-part aria-hidden=\"true\">${ticks}</span><svg class=\"usa-vk-arc\" data-usa-part aria-hidden=\"true\" viewBox=\"0 0 100 100\"><path class=\"usa-vk-bg\" d=\"${this.arc(1)}\"/><path class=\"usa-vk-val\" d=\"${this.arc(1)}\"/></svg><span class=\"usa-vk-cap\" data-usa-part aria-hidden=\"true\"><span class=\"usa-vk-dot\"></span></span>`);\n this.setAttribute('role', 'slider');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Volume'));\n this.setAttribute('aria-valuemin', String(this.num('min', 0)));\n this.setAttribute('aria-valuemax', String(this.num('max', 100)));\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n const span = this.num('max', 100) - this.num('min', 0);\n const d: Record<string, number> = { ArrowUp: 1, ArrowRight: 1, ArrowDown: -1, ArrowLeft: -1, PageUp: span / 10, PageDown: -span / 10, Home: -Infinity, End: Infinity };\n if (!(e.key in d)) return;\n e.preventDefault();\n this.set(this._v + d[e.key], true, true);\n });\n this.listen(this, 'wheel', (e: WheelEvent) => {\n e.preventDefault();\n this.set(this._v - Math.sign(e.deltaY) * 2, true, true);\n }, { passive: false });\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n const y0 = e.clientY;\n const v0 = this._v;\n const span = this.num('max', 100) - this.num('min', 0);\n this.setPointerCapture?.(e.pointerId);\n this.toggleAttribute('data-drag', true);\n const move = (ev: PointerEvent) => this.set(v0 + ((y0 - ev.clientY) / 150) * span, true);\n const up = () => {\n this.removeAttribute('data-drag');\n this.removeEventListener('pointermove', move);\n this.removeEventListener('pointerup', up);\n this.emit('change', { value: this._v });\n };\n this.addEventListener('pointermove', move);\n this.addEventListener('pointerup', up);\n });\n this.paint();\n }\n\n /** SVG arc path for fraction `k` (0–1) of the 270° sweep. */\n private arc(k: number): string {\n const a0 = ((-ARC / 2 - 90) * Math.PI) / 180;\n const a1 = a0 + ((ARC * Math.max(0.0001, k)) * Math.PI) / 180;\n const p = (a: number) => `${(50 + 42 * Math.cos(a)).toFixed(2)} ${(50 + 42 * Math.sin(a)).toFixed(2)}`;\n return `M${p(a0)} A42 42 0 ${ARC * k > 180 ? 1 : 0} 1 ${p(a1)}`;\n }\n\n private paint(): void {\n const lo = this.num('min', 0);\n const hi = this.num('max', 100);\n const k = (this._v - lo) / (hi - lo || 1);\n this.style.setProperty('--usa-vk-angle', `${-ARC / 2 + k * ARC}deg`);\n this.querySelector('.usa-vk-val')?.setAttribute('d', this.arc(k));\n this.querySelectorAll('.usa-vk-ticks i').forEach((t, i) => t.toggleAttribute('data-on', i / 20 <= k + 1e-6 && k > 0));\n this.setAttribute('aria-valuenow', String(Math.round(this._v)));\n this.setAttribute('value', String(Math.round(this._v)));\n }\n\n set(v: number, user: boolean, commit = false): void {\n const n = clampN(Math.round(v), this.num('min', 0), this.num('max', 100));\n if (n === this._v) return;\n this._v = n;\n this.paint();\n if (user) this.emit('input', { value: n });\n if (commit) this.emit('change', { value: n });\n }\n }\n return UsaVolumeKnob as unknown as CustomElementConstructor;\n },\n { id: 'volume-knob', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './equalizer.css?raw';\n\n/**\n * `<usa-equalizer>` (7.1) — a graphic equalizer: one vertical slider per\n * band (`bands`, comma-separated labels — default 60 Hz … 16 kHz), each with\n * a springy cap; a smooth response curve is drawn through them. Presets\n * (`preset=\"flat | bass | vocal | rock | electronic\"` or `applyPreset()`)\n * glide every band to its gain. Gains are −12…+12 dB; `values` (array),\n * keyboard per band (↑ / ↓ ±1, PageUp / PageDown ±3). Event `usa:change`\n * (`{ values }`). Reduced motion: bands jump.\n */\nexport interface UsaEqualizerElement extends UsaElement {\n values: number[];\n applyPreset(name: string): void;\n}\n\nexport const EQ_PRESETS: Record<string, number[]> = {\n flat: [0, 0, 0, 0, 0, 0, 0],\n bass: [8, 6, 3, 0, -1, -1, 0],\n vocal: [-3, -1, 2, 5, 4, 1, -1],\n rock: [5, 3, -1, -2, 1, 4, 6],\n electronic: [6, 4, 0, -2, 2, 5, 7],\n};\n\nexport function defineEqualizer(tag = 'usa-equalizer'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaEqualizer extends Base {\n static get observedAttributes(): string[] {\n return ['bands'];\n }\n private _v: number[] = [];\n\n get values(): number[] {\n return this._v.slice();\n }\n set values(v: number[]) {\n v.forEach((x, i) => (this._v[i] = clampN(Math.round(x), -12, 12)));\n this.paint(true);\n }\n\n mount(): void {\n const labels = this.str('bands', '60,150,400,1k,2.4k,6k,16k').split(',').map((s) => s.trim()).filter(Boolean);\n const pre = EQ_PRESETS[this.str('preset', 'flat')] || EQ_PRESETS.flat;\n this._v = labels.map((_, i) => pre[Math.round((i / Math.max(1, labels.length - 1)) * (pre.length - 1))] || 0);\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.setAttribute('role', 'group');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Equalizer'));\n const bands = labels.map((l, i) => `<div class=\"usa-eq-band\"><div class=\"usa-eq-slot\" role=\"slider\" tabindex=\"0\" aria-orientation=\"vertical\" aria-valuemin=\"-12\" aria-valuemax=\"12\" aria-label=\"${l} Hz\" data-i=\"${i}\"><span class=\"usa-eq-fill\"></span><span class=\"usa-eq-cap\"></span></div><span class=\"usa-eq-label\">${l}</span></div>`).join('');\n this.insertAdjacentHTML('afterbegin', `<svg class=\"usa-eq-curve\" data-usa-part aria-hidden=\"true\" preserveAspectRatio=\"none\" viewBox=\"0 0 100 100\"><path/></svg><div class=\"usa-eq-bands\" data-usa-part>${bands}</div>`);\n this.querySelectorAll<HTMLElement>('.usa-eq-slot').forEach((slot) => {\n const i = Number(slot.dataset.i);\n this.listen(slot, 'keydown', (e: KeyboardEvent) => {\n const d: Record<string, number> = { ArrowUp: 1, ArrowRight: 1, ArrowDown: -1, ArrowLeft: -1, PageUp: 3, PageDown: -3 };\n if (!(e.key in d)) return;\n e.preventDefault();\n this.setBand(i, this._v[i] + d[e.key]);\n });\n this.listen(slot, 'pointerdown', (e: PointerEvent) => {\n slot.setPointerCapture?.(e.pointerId);\n slot.toggleAttribute('data-drag', true);\n const at = (ev: PointerEvent) => {\n const r = slot.getBoundingClientRect();\n this.setBand(i, 12 - clampN((ev.clientY - r.top) / (r.height || 1), 0, 1) * 24);\n };\n at(e);\n const up = () => (slot.removeAttribute('data-drag'), slot.removeEventListener('pointermove', at), slot.removeEventListener('pointerup', up));\n slot.addEventListener('pointermove', at);\n slot.addEventListener('pointerup', up);\n });\n });\n this.paint(false);\n }\n\n private setBand(i: number, v: number): void {\n const n = clampN(Math.round(v), -12, 12);\n if (n === this._v[i]) return;\n this._v[i] = n;\n this.paint(false);\n this.emit('change', { values: this.values });\n }\n\n applyPreset(name: string): void {\n const p = EQ_PRESETS[name];\n if (!p) return;\n const n = this._v.length;\n this._v = this._v.map((_, i) => p[Math.round((i / Math.max(1, n - 1)) * (p.length - 1))] || 0);\n this.paint(true);\n this.emit('change', { values: this.values });\n }\n\n private paint(glide: boolean): void {\n this.toggleAttribute('data-glide', glide && !this.reduced);\n const slots = this.querySelectorAll<HTMLElement>('.usa-eq-slot');\n slots.forEach((s, i) => {\n const v = this._v[i] ?? 0;\n s.style.setProperty('--usa-eq-k', ((v + 12) / 24).toFixed(4));\n s.setAttribute('aria-valuenow', String(v));\n s.setAttribute('aria-valuetext', `${v > 0 ? '+' : ''}${v} dB`);\n });\n const n = this._v.length;\n const pts = this._v.map((v, i) => [((i + 0.5) / n) * 100, 50 - (v / 12) * 40]);\n let d = `M0 ${pts[0]?.[1] ?? 50}`;\n pts.forEach(([x, y], i) => {\n const [px, py] = i ? pts[i - 1] : [0, pts[0][1]];\n d += ` C${((px + x) / 2).toFixed(2)} ${py.toFixed(2)} ${((px + x) / 2).toFixed(2)} ${y.toFixed(2)} ${x.toFixed(2)} ${y.toFixed(2)}`;\n });\n d += ` L100 ${pts[n - 1]?.[1] ?? 50}`;\n this.querySelector('.usa-eq-curve path')?.setAttribute('d', d);\n }\n }\n return UsaEqualizer as unknown as CustomElementConstructor;\n },\n { id: 'equalizer', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './lyrics.css?raw';\n\n/**\n * `<usa-lyrics>` (7.1) — synced karaoke lyrics. Lines come from `[data-t]`\n * children (start time in seconds) or LRC text (`[mm:ss.xx] line`) in a\n * `<script type=\"text/plain\">` child. Set `time` (s) — or `for` the id of an\n * `<audio>` / `<video>` / `<usa-music-player>` to follow — and the active\n * line glows and scrolls to the centre while a highlight sweeps across it\n * word by word; past lines dim. Click a line to emit `usa:seek` (`{ time }`).\n * Reduced motion: no sweep or smooth scroll — the active line just switches.\n */\nexport interface UsaLyricsElement extends UsaElement {\n time: number;\n readonly lines: { t: number; text: string }[];\n}\n\n/** Parse LRC text into sorted `{ t, text }` lines. */\nexport function parseLRC(src: string): { t: number; text: string }[] {\n const out: { t: number; text: string }[] = [];\n for (const raw of src.split(/\\r?\\n/)) {\n const stamps = [...raw.matchAll(/\\[(\\d+):(\\d+(?:\\.\\d+)?)\\]/g)];\n const text = raw.replace(/\\[[^\\]]*\\]/g, '').trim();\n for (const m of stamps) out.push({ t: Number(m[1]) * 60 + Number(m[2]), text });\n }\n return out.sort((a, b) => a.t - b.t);\n}\n\nexport function defineLyrics(tag = 'usa-lyrics'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaLyrics extends Base {\n private _lines: { t: number; text: string }[] = [];\n private _time = 0;\n private _active = -1;\n private _raf = 0;\n\n get lines(): { t: number; text: string }[] {\n return this._lines.slice();\n }\n get time(): number {\n return this._time;\n }\n set time(v: number) {\n this._time = Math.max(0, Number(v) || 0);\n this.update();\n }\n\n mount(): void {\n const lrc = this.querySelector(':scope > script[type=\"text/plain\"]');\n if (lrc?.textContent) this._lines = parseLRC(lrc.textContent);\n else this._lines = ownChildren(this).filter((c) => c.hasAttribute('data-t')).map((c) => ({ t: Number(c.dataset.t) || 0, text: c.textContent?.trim() || '' }));\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n ownChildren(this).forEach((c) => c.localName !== 'script' && (c.hidden = true));\n const list = document.createElement('ol');\n list.className = 'usa-ly-list';\n list.setAttribute('data-usa-part', '');\n this._lines.forEach((l, i) => {\n const li = document.createElement('li');\n li.className = 'usa-ly-line';\n li.dataset.i = String(i);\n li.textContent = l.text || '♪';\n list.appendChild(li);\n });\n this.appendChild(list);\n this.setAttribute('role', 'region');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Lyrics'));\n this.listen(list, 'click', (e: Event) => {\n const li = (e.target as HTMLElement).closest?.('.usa-ly-line') as HTMLElement | null;\n if (li) this.emit('seek', { time: this._lines[Number(li.dataset.i)].t });\n });\n this._active = -1;\n const src = this.str('for', '') ? document.getElementById(this.str('for', '')) : null;\n if (src && typeof requestAnimationFrame === 'function') {\n const f = () => {\n const t = (src as unknown as { currentTime?: number }).currentTime;\n if (typeof t === 'number' && Math.abs(t - this._time) > 0.01) this.time = t;\n this._raf = requestAnimationFrame(f);\n };\n this._raf = requestAnimationFrame(f);\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n }\n this.update();\n }\n\n /** Index of the line playing at `t`. */\n lineAt(t: number): number {\n let i = -1;\n for (let k = 0; k < this._lines.length && this._lines[k].t <= t; k++) i = k;\n return i;\n }\n\n private update(): void {\n const i = this.lineAt(this._time);\n const items = this.querySelectorAll<HTMLElement>('.usa-ly-line');\n const cur = this._lines[i];\n const next = this._lines[i + 1];\n const k = cur ? Math.min(1, (this._time - cur.t) / Math.max(0.3, (next ? next.t : cur.t + 4) - cur.t)) : 0;\n if (items[i]) items[i].style.setProperty('--usa-ly-k', this.reduced ? '1' : k.toFixed(3));\n if (i === this._active) return;\n this._active = i;\n items.forEach((li, j) => {\n li.toggleAttribute('data-active', j === i);\n li.toggleAttribute('data-past', j < i);\n if (j === i) li.setAttribute('aria-current', 'true');\n else li.removeAttribute('aria-current');\n });\n const list = this.querySelector('.usa-ly-list') as HTMLElement | null;\n const li = items[i];\n if (list && li) {\n const top = li.offsetTop - list.clientHeight / 2 + li.offsetHeight / 2;\n if (typeof list.scrollTo === 'function') list.scrollTo({ top, behavior: this.reduced ? 'auto' : 'smooth' });\n else list.scrollTop = top;\n }\n }\n }\n return UsaLyrics as unknown as CustomElementConstructor;\n },\n { id: 'lyrics', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './bar-chart.css?raw';\n\n/**\n * `<usa-bar-chart>` (7.2) — an animated bar chart from data: bars grow in a\n * stagger on first view, value labels count with them, and new data glides\n * every bar to its new height (bars that appear grow, bars that leave\n * shrink). Data from `data` (`[{ label, value }]`), a `values` +\n * `labels` attribute pair, or `<data value=\"…\">label</data>` children.\n * `max`, `unit`, `horizontal`. Accessible as a list of \"label: value\"\n * items. Reduced motion: no growth or glide.\n */\nexport interface UsaBarChartElement extends UsaElement {\n data: { label: string; value: number }[];\n}\n\nexport function defineBarChart(tag = 'usa-bar-chart'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaBarChart extends Base {\n static get observedAttributes(): string[] {\n return ['horizontal', 'unit', 'max'];\n }\n private _data: { label: string; value: number }[] = [];\n private _seen = false;\n\n get data(): { label: string; value: number }[] {\n return this._data.map((d) => ({ ...d }));\n }\n set data(v: { label: string; value: number }[]) {\n this._data = (v || []).map((d) => ({ label: String(d.label), value: Number(d.value) || 0 }));\n if (this.isConnected) this.render(true);\n }\n\n mount(): void {\n if (!this._data.length) {\n const kids = Array.from(this.querySelectorAll(':scope > data'));\n if (kids.length) this._data = kids.map((k) => ({ label: k.textContent?.trim() || '', value: Number(k.getAttribute('value')) || 0 }));\n else {\n const vals = this.str('values', '').split(',').map(Number);\n const labels = this.str('labels', '').split(',');\n this._data = vals.filter(Number.isFinite).map((v, i) => ({ label: (labels[i] || String(i + 1)).trim(), value: v }));\n }\n }\n this.querySelectorAll(':scope > data').forEach((d) => ((d as HTMLElement).hidden = true));\n this.dataset.dir = this.flag('horizontal') ? 'h' : 'v';\n this.render(false);\n this.inView((vis) => {\n if (!vis || this._seen) return;\n this._seen = true;\n if (this.reduced) return;\n this.querySelectorAll<HTMLElement>('.usa-bc-bar').forEach((b, i) => this.motion(b, [{ transform: this.dataset.dir === 'h' ? 'scaleX(0)' : 'scaleY(0)' }, { transform: 'none' }], { duration: 700, delay: i * 70, easing: 'cubic-bezier(.2,.8,.3,1.1)', fill: 'backwards' }));\n });\n }\n\n private render(glide: boolean): void {\n let list = this.querySelector(':scope > .usa-bc-list') as HTMLElement | null;\n if (!list) {\n list = document.createElement('ul');\n list.className = 'usa-bc-list';\n list.setAttribute('data-usa-part', '');\n this.appendChild(list);\n }\n const max = this.num('max', 0) || Math.max(1, ...this._data.map((d) => d.value));\n const unit = this.str('unit', '');\n const old = new Map(Array.from(list.children).map((li) => [(li as HTMLElement).dataset.label, li as HTMLElement]));\n const next: HTMLElement[] = [];\n for (const d of this._data) {\n let li = old.get(d.label);\n const isNew = !li;\n if (!li) {\n li = document.createElement('li');\n li.className = 'usa-bc-item';\n li.dataset.label = d.label;\n li.innerHTML = '<span class=\"usa-bc-track\"><span class=\"usa-bc-bar\"></span></span><span class=\"usa-bc-val\"></span><span class=\"usa-bc-label\"></span>';\n (li.querySelector('.usa-bc-label') as HTMLElement).textContent = d.label;\n }\n old.delete(d.label);\n const k = Math.max(0, Math.min(1, d.value / max));\n li.style.setProperty('--usa-bc-k', k.toFixed(4));\n (li.querySelector('.usa-bc-val') as HTMLElement).textContent = `${d.value.toLocaleString()}${unit}`;\n li.setAttribute('aria-label', `${d.label}: ${d.value.toLocaleString()}${unit}`);\n li.toggleAttribute('data-glide', glide && !this.reduced);\n if (isNew && glide && !this.reduced) this.motion(li.querySelector('.usa-bc-bar')!, [{ transform: this.dataset.dir === 'h' ? 'scaleX(0)' : 'scaleY(0)' }, { transform: 'none' }], { duration: 500, easing: 'ease-out' });\n next.push(li);\n }\n old.forEach((li) => {\n if (this.reduced || !glide) return li.remove();\n const a = this.motion(li, [{ opacity: 1, transform: 'none' }, { opacity: 0, transform: 'scale(.6)' }], { duration: 300, fill: 'forwards' });\n if (a) a.finished.then(() => li.remove(), () => li.remove());\n else li.remove();\n });\n next.forEach((li) => list!.appendChild(li));\n this.setAttribute('role', 'figure');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Bar chart'));\n list.setAttribute('role', 'list');\n next.forEach((li) => li.setAttribute('role', 'listitem'));\n }\n }\n return UsaBarChart as unknown as CustomElementConstructor;\n },\n { id: 'bar-chart', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './gauge.css?raw';\n\n/**\n * `<usa-gauge>` (7.2) — a semicircular gauge: the needle swings to `value`\n * on a damped spring (overshoot, settle), the arc fills with a colour that\n * follows `zones` (\"60:#22c55e,85:#f59e0b,100:#ef4444\" — upper bound:color)\n * and the number counts. `min` / `max` / `unit` / `label`; `role=\"meter\"`.\n * Reduced motion: no swing or count.\n */\nexport interface UsaGaugeElement extends UsaElement {\n value: number;\n}\n\nexport function defineGauge(tag = 'usa-gauge'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaGauge extends Base {\n static get observedAttributes(): string[] {\n return ['min', 'max', 'zones', 'unit', 'label'];\n }\n private _v = 0;\n private _shown = 0;\n private _vel = 0;\n private _raf = 0;\n\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this._v = clampN(Number(v) || 0, this.num('min', 0), this.num('max', 100));\n this.setAttribute('aria-valuenow', String(this._v));\n this.animateTo();\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<svg class=\"usa-gg-svg\" data-usa-part aria-hidden=\"true\" viewBox=\"0 0 200 120\"><path class=\"usa-gg-track\" d=\"M20 100 A80 80 0 0 1 180 100\"/><path class=\"usa-gg-arc\" d=\"M20 100 A80 80 0 0 1 180 100\" pathLength=\"100\"/><g class=\"usa-gg-needle\"><path d=\"M100 100 L96 100 L100 30 L104 100 Z\"/><circle cx=\"100\" cy=\"100\" r=\"7\"/></g></svg><div class=\"usa-gg-read\" data-usa-part aria-hidden=\"true\"><b class=\"usa-gg-num\">0</b><span class=\"usa-gg-label\"></span></div>');\n (this.querySelector('.usa-gg-label') as HTMLElement).textContent = this.str('label', '');\n this.setAttribute('role', 'meter');\n this.setAttribute('aria-valuemin', String(this.num('min', 0)));\n this.setAttribute('aria-valuemax', String(this.num('max', 100)));\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Gauge'));\n this._v = clampN(this.num('value', 0), this.num('min', 0), this.num('max', 100));\n this.setAttribute('aria-valuenow', String(this._v));\n this._shown = this.reduced ? this._v : this.num('min', 0);\n this.paint();\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n this.inView((v) => v && this.animateTo());\n }\n\n /** Colour of the zone containing `v`. */\n zoneColor(v: number): string {\n const zones = this.str('zones', '').split(',').map((z) => z.split(':')).filter((z) => z.length === 2).map(([b, c]) => [Number(b), c.trim()] as [number, string]).sort((a, b) => a[0] - b[0]);\n for (const [b, c] of zones) if (v <= b) return c;\n return zones.length ? zones[zones.length - 1][1] : '';\n }\n\n private paint(): void {\n const lo = this.num('min', 0);\n const hi = this.num('max', 100);\n const k = clampN((this._shown - lo) / (hi - lo || 1), -0.05, 1.05);\n this.style.setProperty('--usa-gg-k', k.toFixed(4));\n this.style.setProperty('--usa-gg-angle', `${-90 + k * 180}deg`);\n const z = this.zoneColor(this._shown);\n if (z) this.style.setProperty('--usa-gg-c', z);\n const num = this.querySelector('.usa-gg-num');\n if (num) num.textContent = `${Math.round(clampN(this._shown, lo, hi))}${this.str('unit', '')}`;\n this.setAttribute('aria-valuetext', `${Math.round(this._v)}${this.str('unit', '')}`);\n }\n\n private animateTo(): void {\n if (this.reduced || typeof requestAnimationFrame !== 'function') {\n this._shown = this._v;\n return this.paint();\n }\n if (this._raf) return;\n let last = 0;\n const f = (now: number) => {\n const dt = last ? Math.min(0.033, (now - last) / 1000) : 1 / 60;\n last = now;\n const span = this.num('max', 100) - this.num('min', 0) || 1;\n this._vel += (120 * (this._v - this._shown) - 11 * this._vel) * dt;\n this._shown += this._vel * dt;\n this.paint();\n if (Math.abs(this._v - this._shown) / span > 0.0005 || Math.abs(this._vel) / span > 0.002) this._raf = requestAnimationFrame(f);\n else ((this._raf = 0), (this._shown = this._v), (this._vel = 0), this.paint());\n };\n this._raf = requestAnimationFrame(f);\n }\n }\n return UsaGauge as unknown as CustomElementConstructor;\n },\n { id: 'gauge', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './sparkline.css?raw';\n\n/**\n * `<usa-sparkline>` (7.2) — a tiny inline trend line. `values`\n * (\"3,5,4,8,6,9\") or the `data` property; it draws itself on first view, a\n * soft area fades in under it, the last point pulses, and setting new data\n * morphs the line (point-by-point tween). `variant=\"line | area | bars\"`,\n * `color`. Hover / touch shows a dot + value tooltip. Decorative by default\n * with a text summary as `aria-label` (\"Trend: 3 to 9, up 200%\").\n * Reduced motion: no draw, morph or pulse.\n */\nexport interface UsaSparklineElement extends UsaElement {\n data: number[];\n}\n\nexport const SPARK_VARIANTS = ['line', 'area', 'bars'] as const;\n\n/** Map values to SVG points in a w×h box (with padding). */\nexport function sparkPoints(vals: number[], w = 100, h = 30, pad = 3): [number, number][] {\n if (!vals.length) return [];\n const lo = Math.min(...vals);\n const hi = Math.max(...vals);\n const span = hi - lo || 1;\n return vals.map((v, i) => [vals.length === 1 ? w / 2 : pad + (i / (vals.length - 1)) * (w - pad * 2), h - pad - ((v - lo) / span) * (h - pad * 2)]);\n}\n\nexport function defineSparkline(tag = 'usa-sparkline'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSparkline extends Base {\n static get observedAttributes(): string[] {\n return ['variant', 'color'];\n }\n private _data: number[] = [];\n private _drawn = false;\n private _raf = 0;\n\n get data(): number[] {\n return this._data.slice();\n }\n set data(v: number[]) {\n const from = sparkPoints(this._data);\n this._data = (v || []).map(Number).filter(Number.isFinite);\n if (this.isConnected) this.render(from);\n }\n\n mount(): void {\n if (!this._data.length) this._data = this.str('values', '').split(',').map(Number).filter(Number.isFinite);\n const v = this.str('variant', 'line');\n this.dataset.variant = (SPARK_VARIANTS as readonly string[]).includes(v) ? v : 'line';\n if (this.str('color', '')) this.style.setProperty('--usa-sl-c', this.str('color', ''));\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<svg class=\"usa-sl-svg\" data-usa-part viewBox=\"0 0 100 30\" preserveAspectRatio=\"none\" aria-hidden=\"true\"><path class=\"usa-sl-area\"/><g class=\"usa-sl-bars\"></g><path class=\"usa-sl-line\" pathLength=\"1\"/><circle class=\"usa-sl-end\" r=\"2.2\"/><circle class=\"usa-sl-hover\" r=\"2.4\"/></svg><span class=\"usa-sl-tip\" data-usa-part aria-hidden=\"true\"></span>');\n this.setAttribute('role', 'img');\n this.listen(this, 'pointermove', (e: PointerEvent) => this.hover(e));\n this.listen(this, 'pointerleave', () => this.removeAttribute('data-hover'));\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n this.render(null);\n this.inView((vis) => {\n if (!vis || this._drawn) return;\n this._drawn = true;\n const line = this.querySelector('.usa-sl-line');\n if (line && !this.reduced) this.motion(line, [{ strokeDashoffset: 1 }, { strokeDashoffset: 0 }], { duration: 900, easing: 'cubic-bezier(.6,.05,.3,1)' });\n });\n }\n\n private summary(): string {\n const d = this._data;\n if (!d.length) return 'No data';\n const a = d[0];\n const b = d[d.length - 1];\n const pct = a ? Math.round(((b - a) / Math.abs(a)) * 100) : 0;\n return `Trend: ${a} to ${b}${a ? `, ${pct >= 0 ? 'up' : 'down'} ${Math.abs(pct)}%` : ''}`;\n }\n\n private paths(pts: [number, number][]): { line: string; area: string } {\n if (!pts.length) return { line: '', area: '' };\n const line = pts.map(([x, y], i) => `${i ? 'L' : 'M'}${x.toFixed(2)} ${y.toFixed(2)}`).join('');\n return { line, area: `${line}L${pts[pts.length - 1][0].toFixed(2)} 30L${pts[0][0].toFixed(2)} 30Z` };\n }\n\n private render(from: [number, number][] | null): void {\n this.setAttribute('aria-label', this.str('label', '') || this.summary());\n const to = sparkPoints(this._data);\n const apply = (pts: [number, number][]) => {\n const { line, area } = this.paths(pts);\n this.querySelector('.usa-sl-line')?.setAttribute('d', line);\n this.querySelector('.usa-sl-area')?.setAttribute('d', area);\n const end = pts[pts.length - 1];\n const c = this.querySelector('.usa-sl-end');\n if (end && c) (c.setAttribute('cx', end[0].toFixed(2)), c.setAttribute('cy', end[1].toFixed(2)));\n };\n const bars = this.querySelector('.usa-sl-bars');\n if (bars) {\n const lo = Math.min(0, ...this._data);\n const hi = Math.max(...this._data, 1);\n const w = 100 / Math.max(1, this._data.length);\n bars.innerHTML = this._data.map((v, i) => `<rect x=\"${(i * w + w * 0.15).toFixed(2)}\" width=\"${(w * 0.7).toFixed(2)}\" y=\"${(30 - ((v - lo) / (hi - lo || 1)) * 28).toFixed(2)}\" height=\"${(((v - lo) / (hi - lo || 1)) * 28).toFixed(2)}\" rx=\"1\"/>`).join('');\n }\n if (!from || from.length !== to.length || this.reduced || typeof requestAnimationFrame !== 'function') return apply(to);\n cancelAnimationFrame(this._raf);\n const t0 = performance.now();\n const f = (now: number) => {\n const k = Math.min(1, (now - t0) / 500);\n const e = 1 - Math.pow(1 - k, 3);\n apply(to.map(([x, y], i) => [from[i][0] + (x - from[i][0]) * e, from[i][1] + (y - from[i][1]) * e]));\n if (k < 1) this._raf = requestAnimationFrame(f);\n };\n this._raf = requestAnimationFrame(f);\n }\n\n private hover(e: PointerEvent): void {\n if (!this._data.length) return;\n const r = this.getBoundingClientRect();\n const pts = sparkPoints(this._data);\n const x = ((e.clientX - r.left) / (r.width || 1)) * 100;\n let i = 0;\n pts.forEach(([px], j) => Math.abs(px - x) < Math.abs(pts[i][0] - x) && (i = j));\n const c = this.querySelector('.usa-sl-hover');\n c?.setAttribute('cx', pts[i][0].toFixed(2));\n c?.setAttribute('cy', pts[i][1].toFixed(2));\n const tip = this.querySelector('.usa-sl-tip') as HTMLElement | null;\n if (tip) {\n tip.textContent = String(this._data[i]);\n tip.style.left = `${pts[i][0]}%`;\n }\n this.toggleAttribute('data-hover', true);\n }\n }\n return UsaSparkline as unknown as CustomElementConstructor;\n },\n { id: 'sparkline', text: css }\n );\n}\n","/** Parse a figure like \"$12.4k\" / \"−3.5%\" / \"1,204\" → number + prefix / suffix / decimals (7.2). */\nexport function parseFigureText(s: string): { n: number; pre: string; post: string; dec: number } | null {\n const m = /^(\\D*?)([-−]?[\\d,]*\\.?\\d+)(.*)$/.exec(String(s).trim());\n if (!m) return null;\n const raw = m[2].replace(/,/g, '').replace('−', '-');\n const n = Number(raw);\n return Number.isFinite(n) ? { n, pre: m[1], post: m[3], dec: (raw.split('.')[1] || '').length } : null;\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { parseFigureText } from './shared-figure';\nimport css from './kpi.css?raw';\n\n/**\n * `<usa-kpi>` (7.2) — a KPI card: the value counts up on first view (keeps\n * prefix / suffix / decimals: \"$12.4k\", \"98.2%\"), the delta chip slides in\n * with an arrow that points and colours by sign (`delta=\"+12.5%\"`, or\n * `invert` when down is good), and an optional `trend` (\"4,6,5,9\") draws a\n * sparkline. `label`, `value`, `delta`, `caption`. Setting `value` later\n * rolls from the old number to the new one and flashes the card.\n * Reduced motion: no count, slide or flash.\n */\nexport interface UsaKpiElement extends UsaElement {\n value: string;\n}\n\nexport function defineKpi(tag = 'usa-kpi'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaKpi extends Base {\n static get observedAttributes(): string[] {\n return ['label', 'delta', 'caption', 'trend', 'invert'];\n }\n private _shown = 0;\n private _raf = 0;\n private _seen = false;\n\n get value(): string {\n return this.str('value', '0');\n }\n set value(v: string) {\n const prev = this._shown;\n this.setAttribute('value', String(v));\n this.roll(prev, true);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const delta = this.str('delta', '');\n const neg = /^\\s*[-−]/.test(delta);\n const good = this.flag('invert') ? neg : !neg;\n this.insertAdjacentHTML('afterbegin', `<span class=\"usa-kpi-label\" data-usa-part></span><b class=\"usa-kpi-value\" data-usa-part></b>${delta ? `<span class=\"usa-kpi-delta\" data-usa-part data-good=\"${good}\"><i aria-hidden=\"true\">${neg ? '▼' : '▲'}</i><span></span></span>` : ''}${this.str('trend', '') ? `<usa-sparkline class=\"usa-kpi-trend\" data-usa-part variant=\"area\" values=\"${this.str('trend', '')}\" aria-hidden=\"true\"></usa-sparkline>` : ''}<span class=\"usa-kpi-caption\" data-usa-part></span>`);\n (this.querySelector('.usa-kpi-label') as HTMLElement).textContent = this.str('label', '');\n (this.querySelector('.usa-kpi-caption') as HTMLElement).textContent = this.str('caption', '');\n const ds = this.querySelector('.usa-kpi-delta span');\n if (ds) ds.textContent = delta;\n this.setAttribute('role', 'group');\n this.setAttribute('aria-label', [this.str('label', ''), this.value, delta && `(${delta})`, this.str('caption', '')].filter(Boolean).join(' '));\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n const f = parseFigureText(this.value);\n this._shown = this.reduced || !f ? (f?.n ?? 0) : 0;\n this.write(this._shown);\n this.inView((vis) => {\n if (!vis || this._seen) return;\n this._seen = true;\n this.roll(0, false);\n const d = this.querySelector('.usa-kpi-delta');\n if (d && !this.reduced) this.motion(d, [{ transform: 'translateY(8px)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 420, delay: 500, easing: 'cubic-bezier(.2,.9,.3,1.2)', fill: 'backwards' });\n });\n }\n\n private write(n: number): void {\n const f = parseFigureText(this.value);\n const el = this.querySelector('.usa-kpi-value');\n if (!el) return;\n el.textContent = f ? f.pre + n.toLocaleString(this.str('locale', '') || undefined, { minimumFractionDigits: f.dec, maximumFractionDigits: f.dec }) + f.post : this.value;\n }\n\n private roll(from: number, flash: boolean): void {\n const f = parseFigureText(this.value);\n if (!f) return this.write(0);\n const to = f.n;\n if (this.reduced || typeof requestAnimationFrame !== 'function') {\n this._shown = to;\n return this.write(to);\n }\n cancelAnimationFrame(this._raf);\n const t0 = performance.now();\n const step = (now: number) => {\n const k = Math.min(1, (now - t0) / 1100);\n this._shown = from + (to - from) * (1 - Math.pow(1 - k, 3));\n this.write(this._shown);\n if (k < 1) this._raf = requestAnimationFrame(step);\n };\n this._raf = requestAnimationFrame(step);\n if (flash) this.motion(this, [{ boxShadow: '0 0 0 0 rgba(124,92,255,.5)' }, { boxShadow: '0 0 0 10px rgba(124,92,255,0)' }], { duration: 700, easing: 'ease-out' });\n }\n }\n return UsaKpi as unknown as CustomElementConstructor;\n },\n { id: 'kpi', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { getEffect, playEffect } from '../fx';\nimport { registerShopPack } from '../fx2/shop';\nimport css from './add-to-cart.css?raw';\n\n/**\n * `<usa-add-to-cart>` (7.3) — a buy button: on click a ghost of the product\n * (`from` selector, default the closest `[data-product]` image) flies into\n * the cart (`cart` selector, default `[data-cart]`, or a `<usa-cart-drawer>`\n * whose `add()` is called with `item` JSON), then the button morphs into a\n * ✓ \"Added\" state for `hold` ms. `usa:add` (`{ item }`). A real `<button>`\n * inside; `aria-live` announces \"Added to cart\". Reduced motion: no flight\n * or morph — the cart just bumps.\n */\nexport interface UsaAddToCartElement extends UsaElement {\n add(): void;\n}\n\nexport function defineAddToCart(tag = 'usa-add-to-cart'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaAddToCart extends Base {\n private _t: ReturnType<typeof setTimeout> | 0 = 0;\n\n mount(): void {\n registerShopPack();\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const label = this.textContent?.trim() || this.str('label', 'Add to cart');\n this.textContent = '';\n this.insertAdjacentHTML('afterbegin', '<button type=\"button\" class=\"usa-atc-btn\" data-usa-part><span class=\"usa-atc-label\"></span><span class=\"usa-atc-done\" aria-hidden=\"true\">✓ <span></span></span></button><span class=\"usa-atc-live\" data-usa-part aria-live=\"polite\"></span>');\n (this.querySelector('.usa-atc-label') as HTMLElement).textContent = label;\n (this.querySelector('.usa-atc-done span') as HTMLElement).textContent = this.str('added', 'Added');\n this.listen(this.querySelector('.usa-atc-btn')!, 'click', () => this.add());\n this.onCleanup(() => this._t && clearTimeout(this._t));\n }\n\n add(): void {\n let item: unknown = {};\n try {\n item = JSON.parse(this.str('item', '{}'));\n } catch {\n item = { name: this.str('item', '') };\n }\n const cartSel = this.str('cart', '[data-cart]');\n const cart = document.querySelector(cartSel) as (HTMLElement & { add?: (i: unknown) => void }) | null;\n const from = (this.str('from', '') && document.querySelector(this.str('from', ''))) || this.closest('[data-product]')?.querySelector('img') || this;\n if (getEffect('fly-to-cart')) void playEffect(from as HTMLElement, 'fly-to-cart', { to: cart?.matches('usa-cart-drawer') ? `${cartSel} .usa-cd2-toggle` : cartSel });\n cart?.add?.(item);\n this.setAttribute('data-added', '');\n (this.querySelector('.usa-atc-live') as HTMLElement).textContent = `${this.str('added', 'Added')} to cart`;\n if (!this.reduced) this.motion(this.querySelector('.usa-atc-btn')!, [{ transform: 'scale(1)' }, { transform: 'scale(.92)', offset: 0.3 }, { transform: 'scale(1)' }], { duration: 380, easing: 'ease-out' });\n if (this._t) clearTimeout(this._t);\n this._t = setTimeout(() => this.removeAttribute('data-added'), this.num('hold', 1600));\n this.emit('add', { item });\n }\n }\n return UsaAddToCart as unknown as CustomElementConstructor;\n },\n { id: 'add-to-cart', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './cart-drawer.css?raw';\n\nexport interface CartItem {\n id?: string;\n name: string;\n price: number;\n qty?: number;\n img?: string;\n}\n\n/**\n * `<usa-cart-drawer>` (7.3) — a cart button with a count badge plus a drawer\n * that slides in from the side. `add(item)` slides the line in (or bumps its\n * quantity), the badge bumps and the total rolls; lines remove with a collapse.\n * `open` / `close()` / `toggle()`; Esc and the backdrop close it; focus moves\n * into the panel and back. `currency` (default \"$\"), `label`. Events\n * `usa:change` (`{ items, total }`), `usa:open`, `usa:close`. The panel is a\n * labelled `dialog`; the badge count is announced. Reduced motion: no slide,\n * bump or roll.\n */\nexport interface UsaCartDrawerElement extends UsaElement {\n items: CartItem[];\n readonly total: number;\n readonly count: number;\n open: boolean;\n add(item: CartItem): void;\n removeItem(id: string): void;\n toggle(force?: boolean): void;\n}\n\n/** Cart total (7.3). */\nexport const cartTotal = (items: CartItem[]): number => Math.round(items.reduce((a, i) => a + (Number(i.price) || 0) * (i.qty || 1), 0) * 100) / 100;\n\nexport function defineCartDrawer(tag = 'usa-cart-drawer'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCartDrawer extends Base {\n private _items: CartItem[] = [];\n private _open = false;\n private _ret: HTMLElement | null = null;\n\n get items(): CartItem[] {\n return this._items.map((i) => ({ ...i }));\n }\n set items(v: CartItem[]) {\n this._items = (v || []).map((i) => ({ ...i, id: i.id || i.name, qty: i.qty || 1 }));\n if (this.isConnected) this.render(null);\n }\n get total(): number {\n return cartTotal(this._items);\n }\n get count(): number {\n return this._items.reduce((a, i) => a + (i.qty || 1), 0);\n }\n get open(): boolean {\n return this._open;\n }\n set open(v: boolean) {\n this.toggle(!!v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const label = this.str('label', 'Cart');\n this.insertAdjacentHTML('afterbegin', `<button type=\"button\" class=\"usa-cd2-toggle\" data-usa-part aria-haspopup=\"dialog\" aria-expanded=\"false\"><span aria-hidden=\"true\">🛒</span><b class=\"usa-cd2-badge\" aria-live=\"polite\"></b></button><div class=\"usa-cd2-backdrop\" data-usa-part hidden></div><div class=\"usa-cd2-panel\" data-usa-part role=\"dialog\" aria-modal=\"true\" hidden tabindex=\"-1\"><header><strong></strong><button type=\"button\" class=\"usa-cd2-close\" aria-label=\"Close\">×</button></header><ul class=\"usa-cd2-list\"></ul><p class=\"usa-cd2-empty\">Your cart is empty</p><footer><span>Total</span><b class=\"usa-cd2-total\"></b></footer></div>`);\n (this.querySelector('.usa-cd2-panel strong') as HTMLElement).textContent = label;\n this.querySelector('.usa-cd2-panel')!.setAttribute('aria-label', label);\n this.listen(this.querySelector('.usa-cd2-toggle')!, 'click', () => this.toggle());\n this.listen(this.querySelector('.usa-cd2-close')!, 'click', () => this.toggle(false));\n this.listen(this.querySelector('.usa-cd2-backdrop')!, 'click', () => this.toggle(false));\n this.listen(this, 'keydown', (e: KeyboardEvent) => e.key === 'Escape' && this._open && this.toggle(false));\n this.listen(this.querySelector('.usa-cd2-list')!, 'click', (e: Event) => {\n const b = (e.target as HTMLElement).closest('[data-rm]') as HTMLElement | null;\n if (b) this.removeItem(b.dataset.rm!);\n });\n if (!this._items.length) {\n try {\n const init = JSON.parse(this.str('items', '[]'));\n if (Array.isArray(init)) this._items = init.map((i: CartItem) => ({ ...i, id: i.id || i.name, qty: i.qty || 1 }));\n } catch {\n /* ignore bad JSON */\n }\n }\n this.render(null);\n }\n\n toggle(force?: boolean): void {\n const on = force ?? !this._open;\n if (on === this._open) return;\n this._open = on;\n const panel = this.querySelector('.usa-cd2-panel') as HTMLElement;\n const bd = this.querySelector('.usa-cd2-backdrop') as HTMLElement;\n this.querySelector('.usa-cd2-toggle')!.setAttribute('aria-expanded', String(on));\n this.toggleAttribute('data-open', on);\n if (on) {\n this._ret = (document.activeElement as HTMLElement) || null;\n panel.hidden = bd.hidden = false;\n if (!this.reduced) {\n this.motion(panel, [{ transform: 'translateX(105%)' }, { transform: 'none' }], { duration: 380, easing: 'cubic-bezier(.2,.9,.3,1)' });\n this.motion(bd, [{ opacity: 0 }, { opacity: 1 }], { duration: 300 });\n }\n panel.focus();\n this.emit('open', {});\n } else {\n const done = () => {\n if (!this._open) panel.hidden = bd.hidden = true;\n };\n const a = this.reduced ? null : this.motion(panel, [{ transform: 'none' }, { transform: 'translateX(105%)' }], { duration: 260, easing: 'ease-in' });\n if (a) a.finished.then(done, done);\n else done();\n this._ret?.focus?.();\n this.emit('close', {});\n }\n }\n\n add(item: CartItem): void {\n const id = item.id || item.name;\n const hit = this._items.find((i) => i.id === id);\n if (hit) hit.qty = (hit.qty || 1) + (item.qty || 1);\n else this._items.push({ ...item, id, qty: item.qty || 1 });\n this.render(id);\n }\n\n removeItem(id: string): void {\n const li = Array.from(this.querySelectorAll<HTMLElement>('.usa-cd2-item')).find((n) => n.dataset.id === id) || null;\n this._items = this._items.filter((i) => i.id !== id);\n const a = li && !this.reduced ? this.motion(li, [{ opacity: 1, maxHeight: `${li.offsetHeight}px` }, { opacity: 0, maxHeight: '0px', paddingTop: '0', paddingBottom: '0' }], { duration: 260, fill: 'forwards' }) : null;\n if (a) a.finished.then(() => this.render(null), () => this.render(null));\n else this.render(null);\n }\n\n private render(changed: string | null): void {\n const cur = this.str('currency', '$');\n const list = this.querySelector('.usa-cd2-list') as HTMLElement;\n const old = new Map(Array.from(list.children).map((li) => [(li as HTMLElement).dataset.id, li as HTMLElement]));\n for (const it of this._items) {\n let li = old.get(it.id!);\n old.delete(it.id!);\n const isNew = !li;\n if (!li) {\n li = document.createElement('li');\n li.className = 'usa-cd2-item';\n li.dataset.id = it.id!;\n li.innerHTML = `${it.img ? '<img alt=\"\">' : '<i aria-hidden=\"true\"></i>'}<span class=\"usa-cd2-name\"></span><span class=\"usa-cd2-qty\"></span><span class=\"usa-cd2-price\"></span><button type=\"button\" class=\"usa-cd2-rm\">×</button>`;\n if (it.img) li.querySelector('img')!.setAttribute('src', it.img);\n }\n (li.querySelector('.usa-cd2-name') as HTMLElement).textContent = it.name;\n (li.querySelector('.usa-cd2-qty') as HTMLElement).textContent = `×${it.qty || 1}`;\n (li.querySelector('.usa-cd2-price') as HTMLElement).textContent = `${cur}${((it.price || 0) * (it.qty || 1)).toFixed(2)}`;\n const rm = li.querySelector('.usa-cd2-rm') as HTMLElement;\n rm.dataset.rm = it.id!;\n rm.setAttribute('aria-label', `Remove ${it.name}`);\n list.appendChild(li);\n if (changed === it.id && !this.reduced) this.motion(li, isNew ? [{ transform: 'translateX(40px)', opacity: 0 }, { transform: 'none', opacity: 1 }] : [{ background: 'rgba(124,92,255,.18)' }, { background: 'transparent' }], { duration: 420, easing: 'cubic-bezier(.2,.9,.3,1.2)' });\n }\n old.forEach((li) => li.remove());\n const n = this.count;\n const badge = this.querySelector('.usa-cd2-badge') as HTMLElement;\n badge.textContent = n ? String(n) : '';\n this.querySelector('.usa-cd2-toggle')!.setAttribute('aria-label', `${this.str('label', 'Cart')}, ${n} item${n === 1 ? '' : 's'}`);\n if (changed && !this.reduced) this.motion(badge, [{ transform: 'scale(1)' }, { transform: 'scale(1.5)', offset: 0.4 }, { transform: 'scale(1)' }], { duration: 420, easing: 'ease-out' });\n (this.querySelector('.usa-cd2-empty') as HTMLElement).hidden = !!this._items.length;\n const tot = this.querySelector('.usa-cd2-total') as HTMLElement;\n const to = this.total;\n const from = Number(tot.dataset.v || 0);\n tot.dataset.v = String(to);\n if (this.reduced || from === to || typeof requestAnimationFrame !== 'function') tot.textContent = `${cur}${to.toFixed(2)}`;\n else {\n const t0 = performance.now();\n const f = (now: number) => {\n const k = Math.min(1, (now - t0) / 500);\n tot.textContent = `${cur}${(from + (to - from) * (1 - Math.pow(1 - k, 3))).toFixed(2)}`;\n if (k < 1) requestAnimationFrame(f);\n };\n requestAnimationFrame(f);\n }\n this.emit('change', { items: this.items, total: to });\n }\n }\n return UsaCartDrawer as unknown as CustomElementConstructor;\n },\n { id: 'cart-drawer', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './product-gallery.css?raw';\n\n/**\n * `<usa-product-gallery>` (7.3) — a product image gallery from its `<img>`\n * children: a large stage plus a thumbnail strip. Picking a thumbnail (click,\n * ←/→, swipe on touch) cross-slides the stage in the direction of travel; the\n * active thumbnail's ring glides to it. Hovering the stage zooms the photo\n * under the pointer (`zoom`, default 2; `nozoom` turns it off). `index`\n * property / attribute; `usa:change` (`{ index }`). The stage is a labelled\n * `group` whose label says \"Image 2 of 4: alt\". Reduced motion: images swap\n * instantly and the hover zoom is off.\n */\nexport interface UsaProductGalleryElement extends UsaElement {\n index: number;\n readonly count: number;\n go(i: number): void;\n next(): void;\n prev(): void;\n}\n\n/** Wrap an index into 0..n-1 (7.3). */\nexport const wrapIndex = (i: number, n: number): number => (n ? ((i % n) + n) % n : 0);\n\nexport function defineProductGallery(tag = 'usa-product-gallery'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaProductGallery extends Base {\n static get observedAttributes(): string[] {\n return ['index'];\n }\n private _i = 0;\n private _imgs: HTMLImageElement[] = [];\n\n get count(): number {\n return this._imgs.length;\n }\n get index(): number {\n return this._i;\n }\n set index(v: number) {\n this.go(v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this._imgs = Array.from(this.querySelectorAll<HTMLImageElement>(':scope > img'));\n this._imgs.forEach((im) => (im.hidden = true));\n this.insertAdjacentHTML('beforeend', '<div class=\"usa-pg2-stage\" data-usa-part role=\"group\" tabindex=\"0\"><img class=\"usa-pg2-main\" alt=\"\"></div><div class=\"usa-pg2-thumbs\" data-usa-part role=\"tablist\" aria-label=\"Product images\"></div>');\n const thumbs = this.querySelector('.usa-pg2-thumbs') as HTMLElement;\n this._imgs.forEach((im, i) => {\n const b = document.createElement('button');\n b.type = 'button';\n b.className = 'usa-pg2-thumb';\n b.setAttribute('role', 'tab');\n b.setAttribute('aria-label', im.alt || `Image ${i + 1}`);\n b.innerHTML = `<img alt=\"\" src=\"${im.getAttribute('src') || ''}\">`;\n this.listen(b, 'click', () => this.go(i));\n thumbs.appendChild(b);\n });\n thumbs.insertAdjacentHTML('beforeend', '<i class=\"usa-pg2-ring\" aria-hidden=\"true\"></i>');\n const stage = this.querySelector('.usa-pg2-stage') as HTMLElement;\n const main = this.querySelector('.usa-pg2-main') as HTMLImageElement;\n this.listen(stage, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight') (this.next(), e.preventDefault());\n if (e.key === 'ArrowLeft') (this.prev(), e.preventDefault());\n });\n this.listen(thumbs, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n e.key === 'ArrowRight' ? this.next() : this.prev();\n (thumbs.children[this._i] as HTMLElement)?.focus();\n e.preventDefault();\n }\n });\n let sx = 0;\n this.listen(stage, 'pointerdown', (e: PointerEvent) => (sx = e.clientX));\n this.listen(stage, 'pointerup', (e: PointerEvent) => {\n const dx = e.clientX - sx;\n if (e.pointerType !== 'mouse' && Math.abs(dx) > 40) dx < 0 ? this.next() : this.prev();\n });\n this.listen(stage, 'pointermove', (e: PointerEvent) => {\n if (e.pointerType !== 'mouse' || this.reduced || this.flag('nozoom')) return;\n const r = stage.getBoundingClientRect();\n main.style.transformOrigin = `${(((e.clientX - r.left) / r.width) * 100).toFixed(1)}% ${(((e.clientY - r.top) / r.height) * 100).toFixed(1)}%`;\n main.style.transform = `scale(${this.num('zoom', 2)})`;\n });\n this.listen(stage, 'pointerleave', () => (main.style.transform = ''));\n this._i = wrapIndex(this.num('index', 0), this.count);\n this.paint(0);\n }\n\n changed(): void {\n if (this.isConnected && this._imgs.length) this.go(this.num('index', 0));\n }\n\n go(i: number): void {\n const n = wrapIndex(Math.round(i), this.count);\n if (n === this._i) return;\n const dir = n > this._i ? 1 : -1;\n this._i = n;\n this.paint(dir);\n this.emit('change', { index: n });\n }\n next(): void {\n this.go(wrapIndex(this._i + 1, this.count));\n }\n prev(): void {\n this.go(wrapIndex(this._i - 1, this.count));\n }\n\n private paint(dir: number): void {\n const im = this._imgs[this._i];\n const main = this.querySelector('.usa-pg2-main') as HTMLImageElement | null;\n if (!im || !main) return;\n main.src = im.getAttribute('src') || '';\n main.alt = im.alt;\n this.querySelector('.usa-pg2-stage')!.setAttribute('aria-label', `Image ${this._i + 1} of ${this.count}${im.alt ? `: ${im.alt}` : ''}`);\n const thumbs = Array.from(this.querySelectorAll<HTMLElement>('.usa-pg2-thumb'));\n thumbs.forEach((t, k) => (t.setAttribute('aria-selected', String(k === this._i)), (t.tabIndex = k === this._i ? 0 : -1)));\n const t = thumbs[this._i];\n const ring = this.querySelector('.usa-pg2-ring') as HTMLElement;\n if (t && ring) {\n ring.style.transform = `translateX(${t.offsetLeft}px)`;\n ring.style.width = `${t.offsetWidth || 56}px`;\n }\n if (dir && !this.reduced) this.motion(main, [{ transform: `translateX(${dir * 18}%)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 380, easing: 'cubic-bezier(.2,.8,.2,1)' });\n }\n }\n return UsaProductGallery as unknown as CustomElementConstructor;\n },\n { id: 'product-gallery', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './countdown.css?raw';\n\n/**\n * `<usa-countdown>` (7.3) — a flip-card countdown to `to` (ISO date / time)\n * or for `seconds`: days · hours · minutes · seconds, each digit flips like a\n * split-flap card when it changes. `units` (\"d,h,m,s\"), `labels`. Fires\n * `usa:tick` (`{ left }`) and `usa:done`; adds `data-done`. A `timer` with an\n * `aria-label` that updates once a minute (not every second). Reduced motion:\n * digits change without the flip.\n */\nexport interface UsaCountdownElement extends UsaElement {\n /** Seconds left. */\n readonly left: number;\n start(): void;\n stop(): void;\n}\n\n/** Split seconds into d/h/m/s (7.3). */\nexport function splitTime(sec: number): { d: number; h: number; m: number; s: number } {\n const t = Math.max(0, Math.floor(sec));\n return { d: Math.floor(t / 86400), h: Math.floor((t % 86400) / 3600), m: Math.floor((t % 3600) / 60), s: t % 60 };\n}\n\nconst NAMES: Record<string, string> = { d: 'days', h: 'hours', m: 'minutes', s: 'seconds' };\n\nexport function defineCountdown(tag = 'usa-countdown'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCountdown extends Base {\n static get observedAttributes(): string[] {\n return ['to', 'seconds'];\n }\n private _end = 0;\n private _timer: ReturnType<typeof setInterval> | 0 = 0;\n private _lastMin = -1;\n\n get left(): number {\n return Math.max(0, Math.round((this._end - Date.now()) / 1000));\n }\n\n mount(): void {\n const units = this.str('units', 'd,h,m,s').split(',').map((u) => u.trim()).filter((u) => u in NAMES);\n const labels = this.str('labels', '').split(',');\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', `<span class=\"usa-cd-row\" data-usa-part aria-hidden=\"true\">${units.map((u, i) => `<span class=\"usa-cd-unit\" data-u=\"${u}\"><span class=\"usa-cd-digits\"></span><small>${labels[i]?.trim() || NAMES[u]}</small></span>`).join('')}</span>`);\n this.setAttribute('role', 'timer');\n this.reset();\n this.onCleanup(() => this.stop());\n this.start();\n }\n\n changed(): void {\n if (this.isConnected) (this.reset(), this.start());\n }\n\n private reset(): void {\n const to = this.str('to', '');\n const t = to ? Date.parse(to) : NaN;\n this._end = Number.isFinite(t) ? t : Date.now() + this.num('seconds', 60) * 1000;\n this._lastMin = -1;\n this.removeAttribute('data-done');\n this.paint(false);\n }\n\n start(): void {\n this.stop();\n this._timer = setInterval(() => this.paint(true), 1000);\n }\n stop(): void {\n if (this._timer) clearInterval(this._timer);\n this._timer = 0;\n }\n\n private paint(flip: boolean): void {\n const left = this.left;\n const t = splitTime(left);\n this.querySelectorAll<HTMLElement>('.usa-cd-unit').forEach((u) => {\n const key = u.dataset.u as 'd' | 'h' | 'm' | 's';\n const val = String(key === 'h' && !this.querySelector('[data-u=\"d\"]') ? t.h + t.d * 24 : t[key]).padStart(2, '0');\n const box = u.querySelector('.usa-cd-digits') as HTMLElement;\n while (box.children.length < val.length) box.insertAdjacentHTML('afterbegin', '<b class=\"usa-cd-d\">0</b>');\n while (box.children.length > val.length) box.firstElementChild!.remove();\n Array.from(box.children).forEach((d, i) => {\n if (d.textContent === val[i]) return;\n d.textContent = val[i];\n if (flip && !this.reduced) this.motion(d, [{ transform: 'rotateX(-90deg)', filter: 'brightness(.7)' }, { transform: 'none', filter: 'none' }], { duration: 360, easing: 'cubic-bezier(.3,1.4,.6,1)' });\n });\n });\n const min = Math.floor(left / 60);\n if (min !== this._lastMin) {\n this._lastMin = min;\n this.setAttribute('aria-label', `${this.str('label', 'Time left')}: ${t.d ? `${t.d} days ` : ''}${t.h} hours ${t.m} minutes`);\n }\n if (flip) this.emit('tick', { left });\n if (left <= 0 && !this.hasAttribute('data-done')) {\n this.setAttribute('data-done', '');\n this.stop();\n this.emit('done', {});\n }\n }\n }\n return UsaCountdown as unknown as CustomElementConstructor;\n },\n { id: 'countdown', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './message-list.css?raw';\n\nexport interface ChatMessage {\n text: string;\n from?: string;\n me?: boolean;\n time?: string;\n}\n\n/**\n * `<usa-message-list>` (7.4) — a chat thread. Messages come from `<p>`\n * children (`data-me`, `data-from`, `data-time`) or `push(msg)`: each new\n * bubble pops in from its side, consecutive bubbles from the same sender are\n * grouped, and the list sticks to the bottom (smooth scroll) unless the\n * reader scrolled up — then a “↓ New messages” pill appears. `typing(name)`\n * shows an animated “… is typing” bubble until the next message (or\n * `typing(false)`). A `log` with `aria-live=\"polite\"`. Reduced motion: no pop\n * or smooth scroll, the typing dots are static.\n */\nexport interface UsaMessageListElement extends UsaElement {\n readonly messages: ChatMessage[];\n push(msg: ChatMessage): void;\n typing(who: string | false): void;\n}\n\nexport function defineMessageList(tag = 'usa-message-list'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMessageList extends Base {\n private _msgs: ChatMessage[] = [];\n get messages(): ChatMessage[] {\n return this._msgs.map((m) => ({ ...m }));\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const seed = Array.from(this.querySelectorAll<HTMLElement>(':scope > p'));\n this._msgs = [];\n this.insertAdjacentHTML('beforeend', '<ol class=\"usa-ml-list\" data-usa-part role=\"log\" aria-live=\"polite\"></ol><button type=\"button\" class=\"usa-ml-new\" data-usa-part hidden>↓ New messages</button>');\n (this.querySelector('.usa-ml-list') as HTMLElement).setAttribute('aria-label', this.str('label', 'Messages'));\n seed.forEach((p) => {\n p.hidden = true;\n this.add({ text: p.textContent || '', me: p.hasAttribute('data-me'), from: p.dataset.from, time: p.dataset.time }, false);\n });\n const list = this.querySelector('.usa-ml-list') as HTMLElement;\n const pill = this.querySelector('.usa-ml-new') as HTMLElement;\n this.listen(list, 'scroll', () => this.atBottom() && (pill.hidden = true));\n this.listen(pill, 'click', () => this.toBottom(true));\n this.toBottom(false);\n }\n\n private atBottom(): boolean {\n const l = this.querySelector('.usa-ml-list') as HTMLElement;\n return l.scrollHeight - l.scrollTop - l.clientHeight < 24;\n }\n private toBottom(smooth: boolean): void {\n const l = this.querySelector('.usa-ml-list') as HTMLElement;\n if (typeof l.scrollTo === 'function') l.scrollTo({ top: l.scrollHeight, behavior: smooth && !this.reduced ? 'smooth' : 'auto' });\n else l.scrollTop = l.scrollHeight;\n (this.querySelector('.usa-ml-new') as HTMLElement).hidden = true;\n }\n\n private add(m: ChatMessage, animate: boolean): void {\n const list = this.querySelector('.usa-ml-list') as HTMLElement;\n const stick = this.atBottom();\n this.typing(false);\n const prev = this._msgs[this._msgs.length - 1];\n this._msgs.push({ ...m });\n const li = document.createElement('li');\n li.className = 'usa-ml-msg';\n li.dataset.side = m.me ? 'right' : 'left';\n if (prev && !!prev.me === !!m.me && prev.from === m.from) li.dataset.grouped = '';\n li.innerHTML = '<span class=\"usa-ml-from\"></span><span class=\"usa-ml-bubble\"></span><time class=\"usa-ml-time\"></time>';\n (li.querySelector('.usa-ml-from') as HTMLElement).textContent = m.me ? '' : m.from || '';\n (li.querySelector('.usa-ml-bubble') as HTMLElement).textContent = m.text;\n (li.querySelector('.usa-ml-time') as HTMLElement).textContent = m.time || '';\n list.appendChild(li);\n if (animate && !this.reduced) {\n li.style.transformOrigin = m.me ? '100% 100%' : '0 100%';\n this.motion(li, [{ transform: `translateX(${m.me ? 20 : -20}px) scale(.7)`, opacity: 0 }, { transform: 'scale(1.03)', opacity: 1, offset: 0.65 }, { transform: 'none', opacity: 1 }], { duration: 380, easing: 'cubic-bezier(.2,.9,.3,1)' });\n }\n if (stick || m.me) this.toBottom(animate);\n else (this.querySelector('.usa-ml-new') as HTMLElement).hidden = false;\n }\n\n push(msg: ChatMessage): void {\n this.add(msg, true);\n this.emit('message', { message: { ...msg } });\n }\n\n typing(who: string | false): void {\n const list = this.querySelector('.usa-ml-list') as HTMLElement | null;\n if (!list) return;\n list.querySelector('.usa-ml-typing')?.remove();\n if (who === false || who === '') return;\n const li = document.createElement('li');\n li.className = 'usa-ml-msg usa-ml-typing';\n li.dataset.side = 'left';\n li.innerHTML = '<span class=\"usa-ml-bubble\"><i></i><i></i><i></i></span>';\n li.setAttribute('aria-label', `${who} is typing`);\n list.appendChild(li);\n if (this.atBottom() || list.children.length < 3) this.toBottom(false);\n }\n }\n return UsaMessageList as unknown as CustomElementConstructor;\n },\n { id: 'message-list', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './reactions.css?raw';\n\n/**\n * `<usa-reactions>` (7.4) — an emoji reaction bar (Slack / iMessage style).\n * `emojis` (\"👍,❤️,😂,🎉\") with optional `counts` (\"3,1,0,0\"). Clicking a pill\n * toggles your reaction: the count rolls up / down, the emoji pops and a few\n * copies float up. A + button opens a small picker that springs open. Each\n * pill is a `button` with `aria-pressed` and a label (\"❤️ 2 reactions\").\n * `usa:react` (`{ emoji, on, count }`). Reduced motion: no pop, roll or float.\n */\nexport interface UsaReactionsElement extends UsaElement {\n /** emoji → count */\n readonly counts: Record<string, number>;\n /** Your active reactions. */\n readonly mine: string[];\n toggle(emoji: string, on?: boolean): void;\n}\n\n/** Parse \"👍,❤️\" + \"3,1\" into ordered [emoji, count] pairs (7.4). */\nexport function parseReactions(emojis: string, counts = ''): [string, number][] {\n const c = counts.split(',').map((n) => Math.max(0, parseInt(n, 10) || 0));\n return emojis.split(',').map((e) => e.trim()).filter(Boolean).map((e, i) => [e, c[i] || 0]);\n}\n\nexport function defineReactions(tag = 'usa-reactions'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaReactions extends Base {\n private _c = new Map<string, number>();\n private _mine = new Set<string>();\n get counts(): Record<string, number> {\n return Object.fromEntries(this._c);\n }\n get mine(): string[] {\n return Array.from(this._mine);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.setAttribute('role', 'group');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', 'Reactions');\n this._c = new Map(parseReactions(this.str('emojis', '👍,❤️,😂,🎉'), this.str('counts', '')));\n this.insertAdjacentHTML('beforeend', '<span class=\"usa-rx-row\" data-usa-part></span><button type=\"button\" class=\"usa-rx-add\" data-usa-part aria-label=\"Add reaction\" aria-expanded=\"false\">+</button><span class=\"usa-rx-picker\" data-usa-part hidden></span>');\n const picker = this.querySelector('.usa-rx-picker') as HTMLElement;\n for (const e of this.str('picker', '👍,❤️,😂,🎉,😮,😢,🔥,👀').split(',').map((s) => s.trim()).filter(Boolean)) {\n const b = document.createElement('button');\n b.type = 'button';\n b.textContent = e;\n b.setAttribute('aria-label', `React ${e}`);\n this.listen(b, 'click', () => (this.toggle(e, true), this.pick(false)));\n picker.appendChild(b);\n }\n this.listen(this.querySelector('.usa-rx-add')!, 'click', () => this.pick(picker.hidden === true));\n this.listen(this, 'keydown', (e: KeyboardEvent) => e.key === 'Escape' && this.pick(false));\n this.render(null);\n }\n\n private pick(open: boolean): void {\n const p = this.querySelector('.usa-rx-picker') as HTMLElement;\n p.hidden = !open;\n this.querySelector('.usa-rx-add')!.setAttribute('aria-expanded', String(open));\n if (open && !this.reduced) this.motion(p, [{ transform: 'scale(.4) translateY(8px)', opacity: 0 }, { transform: 'scale(1.05)', opacity: 1, offset: 0.7 }, { transform: 'none', opacity: 1 }], { duration: 300, easing: 'ease-out' });\n }\n\n toggle(emoji: string, on?: boolean): void {\n const has = this._mine.has(emoji);\n const want = on ?? !has;\n if (want === has) return;\n const n = Math.max(0, (this._c.get(emoji) || 0) + (want ? 1 : -1));\n this._c.set(emoji, n);\n want ? this._mine.add(emoji) : this._mine.delete(emoji);\n this.render(emoji, want);\n this.emit('react', { emoji, on: want, count: n });\n }\n\n private render(changed: string | null, up = true): void {\n const row = this.querySelector('.usa-rx-row') as HTMLElement;\n for (const [e, n] of this._c) {\n let b = Array.from(row.children).find((x) => (x as HTMLElement).dataset.e === e) as HTMLElement | undefined;\n if (!b) {\n b = document.createElement('button');\n b.setAttribute('type', 'button');\n b.className = 'usa-rx-pill';\n b.dataset.e = e;\n b.innerHTML = '<span class=\"usa-rx-emo\" aria-hidden=\"true\"></span><span class=\"usa-rx-n\" aria-hidden=\"true\"></span>';\n (b.querySelector('.usa-rx-emo') as HTMLElement).textContent = e;\n this.listen(b, 'click', () => this.toggle(e));\n row.appendChild(b);\n }\n b.hidden = n === 0 && !this._mine.has(e);\n b.setAttribute('aria-pressed', String(this._mine.has(e)));\n b.setAttribute('aria-label', `${e} ${n} reaction${n === 1 ? '' : 's'}`);\n const num = b.querySelector('.usa-rx-n') as HTMLElement;\n num.textContent = String(n);\n if (changed === e && !this.reduced) {\n this.motion(b.querySelector('.usa-rx-emo')!, [{ transform: 'scale(1)' }, { transform: 'scale(1.6) rotate(-12deg)', offset: 0.35 }, { transform: 'scale(1)' }], { duration: 420, easing: 'ease-out' });\n this.motion(num, [{ transform: `translateY(${up ? 10 : -10}px)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 260, easing: 'ease-out' });\n if (up) this.float(b, e);\n }\n }\n }\n\n private float(b: HTMLElement, e: string): void {\n for (let i = 0; i < 3; i++) {\n const s = document.createElement('span');\n s.className = 'usa-rx-float';\n s.setAttribute('aria-hidden', 'true');\n s.textContent = e;\n b.appendChild(s);\n const a = this.motion(s, [{ transform: 'translate(-50%,0) scale(.5)', opacity: 1 }, { transform: `translate(${-50 + (i - 1) * 60}%,-42px) scale(1)`, opacity: 0 }], { duration: 700, delay: i * 70, easing: 'ease-out' });\n if (a) a.finished.then(() => s.remove(), () => s.remove());\n else s.remove();\n }\n }\n }\n return UsaReactions as unknown as CustomElementConstructor;\n },\n { id: 'reactions', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './notification-bell.css?raw';\n\nexport interface BellNotice {\n id?: string;\n text: string;\n time?: string;\n read?: boolean;\n}\n\n/**\n * `<usa-notification-bell>` (7.4) — a bell button with an unread badge and a\n * dropdown list. `notify(n)` rings the bell (a pendulum swing), bumps the\n * badge and slides the notice in at the top of the list; opening the list and\n * “Mark all read” clears the badge (it shrinks away). Notices from `<li>`\n * children too. Esc / outside click close it. The bell is a `button` with\n * `aria-expanded` and a label including the unread count; the list is a\n * labelled region. `usa:notify`, `usa:read`. Reduced motion: no swing, bump\n * or slide.\n */\nexport interface UsaNotificationBellElement extends UsaElement {\n readonly unread: number;\n readonly notices: BellNotice[];\n open: boolean;\n notify(n: BellNotice | string): void;\n markAllRead(): void;\n ring(): void;\n}\n\nexport function defineNotificationBell(tag = 'usa-notification-bell'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaNotificationBell extends Base {\n private _n: BellNotice[] = [];\n private _open = false;\n get unread(): number {\n return this._n.filter((n) => !n.read).length;\n }\n get notices(): BellNotice[] {\n return this._n.map((n) => ({ ...n }));\n }\n get open(): boolean {\n return this._open;\n }\n set open(v: boolean) {\n this.toggle(!!v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const seed = Array.from(this.querySelectorAll<HTMLElement>(':scope > li'));\n this._n = seed.map((li, i) => ({ id: `n${i}`, text: li.textContent || '', time: li.dataset.time, read: li.hasAttribute('data-read') }));\n seed.forEach((li) => li.remove());\n this.insertAdjacentHTML('beforeend', '<button type=\"button\" class=\"usa-nb-btn\" data-usa-part aria-expanded=\"false\"><svg class=\"usa-nb-bell\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 3a6 6 0 0 0-6 6v4l-2 3h16l-2-3V9a6 6 0 0 0-6-6zm-2 15a2 2 0 0 0 4 0\"/></svg><b class=\"usa-nb-badge\"></b></button><div class=\"usa-nb-panel\" data-usa-part role=\"region\" hidden><header><strong>Notifications</strong><button type=\"button\" class=\"usa-nb-read\">Mark all read</button></header><ul class=\"usa-nb-list\"></ul><p class=\"usa-nb-empty\">You’re all caught up</p></div>');\n this.querySelector('.usa-nb-panel')!.setAttribute('aria-label', this.str('label', 'Notifications'));\n this.listen(this.querySelector('.usa-nb-btn')!, 'click', () => this.toggle());\n this.listen(this.querySelector('.usa-nb-read')!, 'click', () => this.markAllRead());\n this.listen(this, 'keydown', (e: KeyboardEvent) => e.key === 'Escape' && this._open && (this.toggle(false), (this.querySelector('.usa-nb-btn') as HTMLElement).focus()));\n this.listen(document, 'pointerdown', (e: Event) => this._open && !this.contains(e.target as Node) && this.toggle(false));\n this.render(null);\n }\n\n toggle(force?: boolean): void {\n const on = force ?? !this._open;\n this._open = on;\n const p = this.querySelector('.usa-nb-panel') as HTMLElement | null;\n if (!p) return;\n p.hidden = !on;\n this.querySelector('.usa-nb-btn')!.setAttribute('aria-expanded', String(on));\n if (on && !this.reduced) this.motion(p, [{ transform: 'translateY(-8px) scale(.96)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 220, easing: 'ease-out' });\n }\n\n ring(): void {\n if (this.reduced) return;\n this.motion(this.querySelector('.usa-nb-bell')!, [0, 18, -16, 12, -8, 4, 0].map((d) => ({ transform: `rotate(${d}deg)` })), { duration: 800, easing: 'ease-out' });\n }\n\n notify(n: BellNotice | string): void {\n const item: BellNotice = typeof n === 'string' ? { text: n } : { ...n };\n item.id = item.id || `n${Date.now().toString(36)}${this._n.length}`;\n item.read = !!item.read;\n this._n.unshift(item);\n this.ring();\n this.render(item.id);\n this.emit('notify', { notice: { ...item } });\n }\n\n markAllRead(): void {\n if (!this.unread) return;\n this._n.forEach((n) => (n.read = true));\n this.render(null);\n this.emit('read', {});\n }\n\n private render(added: string | null): void {\n const list = this.querySelector('.usa-nb-list') as HTMLElement;\n list.textContent = '';\n for (const n of this._n) {\n const li = document.createElement('li');\n li.className = 'usa-nb-item';\n if (!n.read) li.dataset.unread = '';\n li.innerHTML = '<span class=\"usa-nb-text\"></span><time></time>';\n (li.querySelector('.usa-nb-text') as HTMLElement).textContent = n.text;\n (li.querySelector('time') as HTMLElement).textContent = n.time || '';\n list.appendChild(li);\n if (n.id === added && !this.reduced) this.motion(li, [{ transform: 'translateY(-100%)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 320, easing: 'cubic-bezier(.2,.9,.3,1)' });\n }\n (this.querySelector('.usa-nb-empty') as HTMLElement).hidden = this._n.length > 0;\n const u = this.unread;\n const badge = this.querySelector('.usa-nb-badge') as HTMLElement;\n const had = badge.textContent !== '';\n badge.textContent = u ? (u > 99 ? '99+' : String(u)) : '';\n this.querySelector('.usa-nb-btn')!.setAttribute('aria-label', `${this.str('label', 'Notifications')}${u ? `, ${u} unread` : ''}`);\n if (!this.reduced && added) this.motion(badge, [{ transform: 'scale(.3)' }, { transform: 'scale(1.35)', offset: 0.5 }, { transform: 'scale(1)' }], { duration: 380, easing: 'ease-out' });\n else if (!this.reduced && had && !u) this.motion(badge, [{ transform: 'scale(1)', opacity: 1 }, { transform: 'scale(0)', opacity: 0 }], { duration: 200 });\n }\n }\n return UsaNotificationBell as unknown as CustomElementConstructor;\n },\n { id: 'notification-bell', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './presence.css?raw';\n\n/** Presence states (7.4). */\nexport const PRESENCE_STATES = ['online', 'away', 'busy', 'offline'] as const;\nexport type PresenceState = (typeof PRESENCE_STATES)[number];\n\n/**\n * `<usa-presence>` (7.4) — an avatar with a live status dot: `status`\n * online | away | busy | offline. Going online sends a ripple from the dot;\n * every change cross-fades the dot colour; `speaking` adds a pulsing ring\n * (voice chat), `story` an animated gradient ring (unseen story). Initials from\n * `name` when there is no `src`. Labelled `img` (\"Ada Lovelace, online\").\n * Reduced motion: no ripple, pulse or ring spin.\n */\nexport interface UsaPresenceElement extends UsaElement {\n status: PresenceState;\n}\n\n/** Initials for a display name (7.4). */\nexport const initials = (name: string): string =>\n name\n .trim()\n .split(/\\s+/)\n .filter(Boolean)\n .slice(0, 2)\n .map((w) => Array.from(w)[0]!.toUpperCase())\n .join('');\n\nexport function definePresence(tag = 'usa-presence'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaPresence extends Base {\n static get observedAttributes(): string[] {\n return ['status', 'speaking', 'name', 'src'];\n }\n private _prev = '';\n get status(): PresenceState {\n const s = this.str('status', 'offline') as PresenceState;\n return PRESENCE_STATES.includes(s) ? s : 'offline';\n }\n set status(v: PresenceState) {\n this.setAttribute('status', v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<span class=\"usa-pr2-face\" data-usa-part></span><i class=\"usa-pr2-dot\" data-usa-part aria-hidden=\"true\"></i>');\n this.setAttribute('role', 'img');\n this._prev = '';\n this.paint();\n }\n\n changed(): void {\n if (this.isConnected && this.querySelector('.usa-pr2-face')) this.paint();\n }\n\n private paint(): void {\n const face = this.querySelector('.usa-pr2-face') as HTMLElement;\n const name = this.str('name', '');\n const src = this.str('src', '');\n if (src) face.innerHTML = `<img alt=\"\" src=\"${src.replace(/\"/g, '&quot;')}\">`;\n else face.textContent = initials(name) || '?';\n const s = this.status;\n this.dataset.state = s;\n this.setAttribute('aria-label', `${name || 'User'}, ${s}${this.flag('speaking') ? ', speaking' : ''}`);\n const dot = this.querySelector('.usa-pr2-dot') as HTMLElement;\n if (this._prev && this._prev !== s && !this.reduced) {\n this.motion(dot, [{ transform: 'scale(.4)' }, { transform: 'scale(1.3)', offset: 0.6 }, { transform: 'scale(1)' }], { duration: 360, easing: 'ease-out' });\n if (s === 'online') {\n const r = document.createElement('i');\n r.className = 'usa-pr2-ripple';\n r.setAttribute('aria-hidden', 'true');\n this.appendChild(r);\n const a = this.motion(r, [{ transform: 'scale(1)', opacity: 0.7 }, { transform: 'scale(3.2)', opacity: 0 }], { duration: 700, easing: 'ease-out' });\n if (a) a.finished.then(() => r.remove(), () => r.remove());\n else r.remove();\n }\n }\n this._prev = s;\n }\n }\n return UsaPresence as unknown as CustomElementConstructor;\n },\n { id: 'presence', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './leaderboard.css?raw';\n\nexport interface LeaderRow {\n name: string;\n score: number;\n avatar?: string;\n}\n\n/**\n * `<usa-leaderboard>` (7.5) — a ranked list from `<li data-score>` children or\n * the `rows` property. When scores change, rows glide to their new rank\n * (FLIP), climbers flash green with ▲n, fallers red with ▼n, and scores roll.\n * Top three get 🥇🥈🥉. `limit`, `me` (name to highlight). An ordered list\n * whose items read \"1. Ada, 980 points\"; rank changes are announced politely.\n * `usa:rank` (`{ name, from, to }`). Reduced motion: rows jump, no flash or roll.\n */\nexport interface UsaLeaderboardElement extends UsaElement {\n rows: LeaderRow[];\n setScore(name: string, score: number): void;\n}\n\n/** Sort rows by score desc, then name (7.5). */\nexport const rankRows = (rows: LeaderRow[]): LeaderRow[] => [...rows].sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));\n\nconst MEDAL = ['🥇', '🥈', '🥉'];\n\nexport function defineLeaderboard(tag = 'usa-leaderboard'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaLeaderboard extends Base {\n private _rows: LeaderRow[] = [];\n get rows(): LeaderRow[] {\n return rankRows(this._rows).map((r) => ({ ...r }));\n }\n set rows(v: LeaderRow[]) {\n this._rows = (v || []).map((r) => ({ ...r, score: Number(r.score) || 0 }));\n if (this.isConnected) this.render();\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const seed = Array.from(this.querySelectorAll<HTMLElement>(':scope > li'));\n if (seed.length) this._rows = seed.map((li) => ({ name: (li.textContent || '').trim(), score: Number(li.dataset.score) || 0, avatar: li.dataset.avatar }));\n seed.forEach((li) => li.remove());\n this.insertAdjacentHTML('beforeend', '<ol class=\"usa-lb-list\" data-usa-part></ol><span class=\"usa-lb-live\" data-usa-part aria-live=\"polite\"></span>');\n this.querySelector('.usa-lb-list')!.setAttribute('aria-label', this.str('label', 'Leaderboard'));\n this.render();\n }\n\n setScore(name: string, score: number): void {\n const r = this._rows.find((x) => x.name === name);\n if (r) r.score = score;\n else this._rows.push({ name, score });\n this.render();\n }\n\n private render(): void {\n const list = this.querySelector('.usa-lb-list') as HTMLElement | null;\n if (!list) return;\n const ranked = rankRows(this._rows).slice(0, this.num('limit', 10));\n const old = new Map<string, { li: HTMLElement; top: number; rank: number; score: number }>();\n Array.from(list.children).forEach((li) => {\n const h = li as HTMLElement;\n old.set(h.dataset.name!, { li: h, top: h.getBoundingClientRect().top, rank: Number(h.dataset.rank), score: Number(h.dataset.score) });\n });\n const me = this.str('me', '');\n const moves: string[] = [];\n ranked.forEach((r, i) => {\n const prev = old.get(r.name);\n old.delete(r.name);\n const li = prev?.li || document.createElement('li');\n if (!prev) {\n li.className = 'usa-lb-row';\n li.innerHTML = '<b class=\"usa-lb-rank\" aria-hidden=\"true\"></b><span class=\"usa-lb-av\" aria-hidden=\"true\"></span><span class=\"usa-lb-name\"></span><i class=\"usa-lb-delta\" aria-hidden=\"true\"></i><span class=\"usa-lb-score\"></span>';\n }\n li.dataset.name = r.name;\n li.dataset.rank = String(i + 1);\n li.dataset.score = String(r.score);\n li.toggleAttribute('data-me', r.name === me);\n (li.querySelector('.usa-lb-rank') as HTMLElement).textContent = MEDAL[i] || String(i + 1);\n const av = li.querySelector('.usa-lb-av') as HTMLElement;\n av.textContent = r.avatar ? '' : Array.from(r.name)[0] || '?';\n av.style.backgroundImage = r.avatar ? `url(\"${r.avatar}\")` : '';\n (li.querySelector('.usa-lb-name') as HTMLElement).textContent = r.name;\n li.setAttribute('aria-label', `${i + 1}. ${r.name}, ${r.score} points`);\n const sc = li.querySelector('.usa-lb-score') as HTMLElement;\n const delta = li.querySelector('.usa-lb-delta') as HTMLElement;\n list.appendChild(li);\n if (prev && prev.rank !== i + 1) {\n const d = prev.rank - (i + 1);\n delta.textContent = d > 0 ? `▲${d}` : `▼${-d}`;\n li.dataset.move = d > 0 ? 'up' : 'down';\n moves.push(`${r.name} ${d > 0 ? 'up' : 'down'} to ${i + 1}`);\n this.emit('rank', { name: r.name, from: prev.rank, to: i + 1 });\n } else if (prev) {\n delete li.dataset.move;\n delta.textContent = '';\n }\n if (!this.reduced && prev) {\n const dy = prev.top - li.getBoundingClientRect().top;\n if (dy) this.motion(li, [{ transform: `translateY(${dy}px)` }, { transform: 'none' }], { duration: 520, easing: 'cubic-bezier(.2,.9,.3,1)' });\n if (li.dataset.move) this.motion(li, [{ backgroundColor: li.dataset.move === 'up' ? 'rgba(34,197,94,.25)' : 'rgba(239,68,68,.2)' }, { backgroundColor: 'transparent' }], { duration: 1200, composite: 'add' } as KeyframeAnimationOptions);\n }\n this.roll(sc, prev ? prev.score : r.score, r.score);\n });\n old.forEach(({ li }) => li.remove());\n if (moves.length) (this.querySelector('.usa-lb-live') as HTMLElement).textContent = moves.join('; ');\n }\n\n private roll(el: HTMLElement, from: number, to: number): void {\n if (this.reduced || from === to || typeof requestAnimationFrame !== 'function') return void (el.textContent = to.toLocaleString());\n const t0 = performance.now();\n const f = (now: number) => {\n const k = Math.min(1, (now - t0) / 600);\n el.textContent = Math.round(from + (to - from) * (1 - Math.pow(1 - k, 3))).toLocaleString();\n if (k < 1) requestAnimationFrame(f);\n };\n requestAnimationFrame(f);\n }\n }\n return UsaLeaderboard as unknown as CustomElementConstructor;\n },\n { id: 'leaderboard', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './xp-bar.css?raw';\n\n/**\n * `<usa-xp-bar>` (7.5) — an experience bar: `level`, `xp`, `per` (XP per\n * level, default 100). `add(n)` fills the bar smoothly; when it overflows the\n * bar fills to the end, the level badge pops (“Level up!”) and the bar restarts\n * with the remainder — several levels in a row if needed. A `progressbar`\n * labelled \"Level 3, 40 of 100 XP\"; level-ups are announced politely.\n * `usa:xp` (`{ level, xp, gained }`), `usa:levelup` (`{ level }`).\n * Reduced motion: the bar and level change at once, no pop.\n */\nexport interface UsaXpBarElement extends UsaElement {\n level: number;\n xp: number;\n add(n: number): void;\n}\n\n/** Apply `gain` XP to (level, xp) with `per` XP per level (7.5). */\nexport function levelFor(level: number, xp: number, gain: number, per = 100): { level: number; xp: number; ups: number } {\n const p = Math.max(1, per);\n let total = Math.max(0, xp + gain);\n let ups = 0;\n while (total >= p) {\n total -= p;\n ups++;\n }\n return { level: level + ups, xp: total, ups };\n}\n\nexport function defineXpBar(tag = 'usa-xp-bar'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaXpBar extends Base {\n static get observedAttributes(): string[] {\n return ['level', 'xp', 'per'];\n }\n private _busy = false;\n get level(): number {\n return Math.max(1, Math.floor(this.num('level', 1)));\n }\n set level(v: number) {\n this.setAttribute('level', String(v));\n }\n get xp(): number {\n return Math.max(0, this.num('xp', 0));\n }\n set xp(v: number) {\n this.setAttribute('xp', String(v));\n }\n private get per(): number {\n return Math.max(1, this.num('per', 100));\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML(\n 'beforeend',\n '<b class=\"usa-xp-lvl\" data-usa-part aria-hidden=\"true\"></b><span class=\"usa-xp-track\" data-usa-part><i class=\"usa-xp-fill\"></i></span><span class=\"usa-xp-num\" data-usa-part aria-hidden=\"true\"></span><span class=\"usa-xp-live\" data-usa-part aria-live=\"polite\"></span>'\n );\n this.setAttribute('role', 'progressbar');\n this.setAttribute('aria-valuemin', '0');\n this.paint(false);\n }\n\n changed(): void {\n if (!this._busy && this.querySelector('.usa-xp-fill')) this.paint(false);\n }\n\n private paint(animate: boolean, from?: number): void {\n const per = this.per;\n const xp = Math.min(this.xp, per);\n (this.querySelector('.usa-xp-lvl') as HTMLElement).textContent = String(this.level);\n (this.querySelector('.usa-xp-num') as HTMLElement).textContent = `${Math.round(xp)} / ${per} XP`;\n this.setAttribute('aria-valuemax', String(per));\n this.setAttribute('aria-valuenow', String(Math.round(xp)));\n this.setAttribute('aria-label', `Level ${this.level}, ${Math.round(xp)} of ${per} XP`);\n const fill = this.querySelector('.usa-xp-fill') as HTMLElement;\n const to = `scaleX(${(xp / per).toFixed(4)})`;\n if (animate && !this.reduced && from !== undefined) this.motion(fill, [{ transform: `scaleX(${from.toFixed(4)})` }, { transform: to }], { duration: 500, easing: 'cubic-bezier(.2,.8,.3,1)' });\n fill.style.transform = to;\n }\n\n add(n: number): void {\n const per = this.per;\n const start = this.level;\n const r = levelFor(start, Math.min(this.xp, per), Number(n) || 0, per);\n const fill = this.querySelector('.usa-xp-fill') as HTMLElement | null;\n const fromK = Math.min(this.xp, per) / per;\n this._busy = true;\n this.level = r.level;\n this.xp = r.xp;\n this._busy = false;\n if (!fill) return;\n if (r.ups && !this.reduced) {\n this.motion(fill, [{ transform: `scaleX(${fromK.toFixed(4)})` }, { transform: 'scaleX(1)' }], { duration: 380, easing: 'ease-in' });\n const lvl = this.querySelector('.usa-xp-lvl') as HTMLElement;\n this.motion(lvl, [{ transform: 'scale(1)' }, { transform: 'scale(1.6) rotate(-8deg)', offset: 0.5 }, { transform: 'scale(1)' }], { duration: 600, delay: 340, easing: 'ease-out' });\n this.dataset.levelup = '';\n setTimeout(() => {\n delete this.dataset.levelup;\n }, 1200);\n setTimeout(() => this.isConnected && this.paint(true, 0), 380);\n this.paint(false);\n fill.style.transform = 'scaleX(1)';\n } else this.paint(true, fromK);\n if (r.ups) {\n (this.querySelector('.usa-xp-live') as HTMLElement).textContent = `Level up! Level ${r.level}`;\n this.emit('levelup', { level: r.level });\n }\n this.emit('xp', { level: r.level, xp: r.xp, gained: n });\n }\n }\n return UsaXpBar as unknown as CustomElementConstructor;\n },\n { id: 'xp-bar', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './badge-wall.css?raw';\n\nexport interface WallBadge {\n name: string;\n icon: string;\n locked: boolean;\n}\n\n/**\n * `<usa-badge-wall>` (7.5) — an achievement grid from `<li data-icon\n * data-locked>` children: locked badges are grey with a 🔒; `unlock(name)`\n * flips the badge over to its colour side with a shine, and the\n * “3 / 8 unlocked” counter rolls. Each badge is a labelled list item\n * (\"First win, unlocked\"); unlocks are announced politely. `badges`,\n * `usa:unlock` (`{ name }`). Reduced motion: the badge just changes, no flip.\n */\nexport interface UsaBadgeWallElement extends UsaElement {\n readonly badges: WallBadge[];\n unlock(name: string): boolean;\n}\n\n/** Unlocked / total counts for a badge list (7.5). */\nexport const badgeProgress = (b: WallBadge[]): { unlocked: number; total: number } => ({ unlocked: b.filter((x) => !x.locked).length, total: b.length });\n\nexport function defineBadgeWall(tag = 'usa-badge-wall'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaBadgeWall extends Base {\n private _b: WallBadge[] = [];\n get badges(): WallBadge[] {\n return this._b.map((b) => ({ ...b }));\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const seed = Array.from(this.querySelectorAll<HTMLElement>(':scope > li'));\n if (seed.length) this._b = seed.map((li) => ({ name: (li.textContent || '').trim(), icon: li.dataset.icon || '🏅', locked: li.hasAttribute('data-locked') }));\n seed.forEach((li) => li.remove());\n this.insertAdjacentHTML('beforeend', '<p class=\"usa-bw-count\" data-usa-part></p><ul class=\"usa-bw-grid\" data-usa-part></ul><span class=\"usa-bw-live\" data-usa-part aria-live=\"polite\"></span>');\n const grid = this.querySelector('.usa-bw-grid') as HTMLElement;\n grid.setAttribute('aria-label', this.str('label', 'Achievements'));\n for (const b of this._b) {\n const li = document.createElement('li');\n li.className = 'usa-bw-badge';\n li.innerHTML = '<span class=\"usa-bw-icon\" aria-hidden=\"true\"></span><span class=\"usa-bw-name\"></span>';\n (li.querySelector('.usa-bw-icon') as HTMLElement).textContent = b.icon;\n (li.querySelector('.usa-bw-name') as HTMLElement).textContent = b.name;\n li.dataset.name = b.name;\n grid.appendChild(li);\n this.paintBadge(li, b);\n }\n this.count();\n }\n\n private paintBadge(li: HTMLElement, b: WallBadge): void {\n li.toggleAttribute('data-locked', b.locked);\n li.setAttribute('aria-label', `${b.name}, ${b.locked ? 'locked' : 'unlocked'}`);\n }\n\n private count(): void {\n const p = badgeProgress(this._b);\n (this.querySelector('.usa-bw-count') as HTMLElement).textContent = `${p.unlocked} / ${p.total} unlocked`;\n }\n\n unlock(name: string): boolean {\n const b = this._b.find((x) => x.name === name && x.locked);\n if (!b) return false;\n b.locked = false;\n const li = Array.from(this.querySelectorAll<HTMLElement>('.usa-bw-badge')).find((x) => x.dataset.name === name);\n if (li) {\n if (!this.reduced) {\n this.motion(li, [{ transform: 'perspective(400px) rotateY(0)' }, { transform: 'perspective(400px) rotateY(90deg)', offset: 0.45 }, { transform: 'perspective(400px) rotateY(0) scale(1.12)', offset: 0.8 }, { transform: 'none' }], { duration: 700, easing: 'ease-out' });\n setTimeout(() => this.paintBadge(li, b), 300);\n li.dataset.shine = '';\n setTimeout(() => delete li.dataset.shine, 1100);\n } else this.paintBadge(li, b);\n li.setAttribute('aria-label', `${b.name}, unlocked`);\n }\n this.count();\n (this.querySelector('.usa-bw-live') as HTMLElement).textContent = `Unlocked: ${name}`;\n this.emit('unlock', { name });\n return true;\n }\n }\n return UsaBadgeWall as unknown as CustomElementConstructor;\n },\n { id: 'badge-wall', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './prize-wheel.css?raw';\n\n/**\n * `<usa-prize-wheel>` (7.5) — a lottery wheel from `segments`\n * (\"10%,Free ship,Try again,…\"): the Spin button whirls the wheel and it eases\n * out on the result (random, or `spin(index)`), the pointer ticks and the\n * winning segment glows. `duration`, `turns`; `result`, `spinning`;\n * `usa:result` (`{ index, label }`). The button is disabled while spinning and\n * the result is announced politely. Reduced motion: the wheel jumps to the\n * result.\n */\nexport interface UsaPrizeWheelElement extends UsaElement {\n readonly segments: string[];\n readonly result: number;\n readonly spinning: boolean;\n spin(index?: number): Promise<number>;\n}\n\n/** Final wheel rotation (deg) that puts segment `index` of `count` under the top pointer after `turns` full turns (7.5). */\nexport function wheelAngle(index: number, count: number, turns = 5): number {\n const seg = 360 / Math.max(1, count);\n return turns * 360 + (360 - (index * seg + seg / 2));\n}\n\nconst COLORS = ['#7c5cff', '#22d3ee', '#f59e0b', '#ef4444', '#22c55e', '#ec4899', '#3b82f6', '#a3e635'];\n\nexport function definePrizeWheel(tag = 'usa-prize-wheel'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaPrizeWheel extends Base {\n private _r = -1;\n private _spin = false;\n private _rot = 0;\n get segments(): string[] {\n return this.str('segments', '10% off,Free ship,Try again,🎁 Gift,5% off,Jackpot').split(',').map((s) => s.trim()).filter(Boolean);\n }\n get result(): number {\n return this._r;\n }\n get spinning(): boolean {\n return this._spin;\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const s = this.segments;\n const seg = 360 / s.length;\n const grad = s.map((_, i) => `${COLORS[i % COLORS.length]} ${(i * seg).toFixed(2)}deg ${((i + 1) * seg).toFixed(2)}deg`).join(',');\n this.insertAdjacentHTML(\n 'beforeend',\n '<span class=\"usa-pw-box\" data-usa-part><i class=\"usa-pw-pointer\" aria-hidden=\"true\"></i><span class=\"usa-pw-wheel\" aria-hidden=\"true\"></span><button type=\"button\" class=\"usa-pw-btn\"></button></span><span class=\"usa-pw-live\" data-usa-part aria-live=\"polite\"></span>'\n );\n const wheel = this.querySelector('.usa-pw-wheel') as HTMLElement;\n wheel.style.background = `conic-gradient(${grad})`;\n s.forEach((label, i) => {\n const l = document.createElement('span');\n l.className = 'usa-pw-label';\n l.textContent = label;\n l.style.transform = `rotate(${(i * seg + seg / 2).toFixed(2)}deg)`;\n wheel.appendChild(l);\n });\n this._rot = 0;\n const btn = this.querySelector('.usa-pw-btn') as HTMLButtonElement;\n btn.textContent = this.str('label', 'Spin');\n btn.setAttribute('aria-label', `${this.str('label', 'Spin')} the prize wheel`);\n this.listen(btn, 'click', () => void this.spin());\n }\n\n async spin(index?: number): Promise<number> {\n if (this._spin) return this._r;\n const s = this.segments;\n const i = index !== undefined && index >= 0 && index < s.length ? Math.floor(index) : Math.floor(Math.random() * s.length);\n const wheel = this.querySelector('.usa-pw-wheel') as HTMLElement | null;\n const btn = this.querySelector('.usa-pw-btn') as HTMLButtonElement | null;\n if (!wheel || !btn) return -1;\n this._spin = true;\n btn.disabled = true;\n this.removeAttribute('data-done');\n const base = this._rot - (this._rot % 360);\n const to = base + wheelAngle(i, s.length, this.reduced ? 0 : this.num('turns', 5));\n const from = this._rot;\n this._rot = to;\n const a = this.reduced ? null : this.motion(wheel, [{ transform: `rotate(${from}deg)` }, { transform: `rotate(${to}deg)` }], { duration: this.num('duration', 4000), easing: 'cubic-bezier(.12,.6,.1,1)' });\n wheel.style.transform = `rotate(${to}deg)`;\n if (a) {\n const ptr = this.querySelector('.usa-pw-pointer') as HTMLElement;\n this.motion(ptr, [{ transform: 'rotate(0)' }, { transform: 'rotate(-18deg)' }, { transform: 'rotate(0)' }], { duration: 160, iterations: 18, easing: 'ease-out' });\n await a.finished.catch(() => undefined);\n }\n this._spin = false;\n btn.disabled = false;\n this._r = i;\n this.setAttribute('data-done', '');\n (this.querySelector('.usa-pw-live') as HTMLElement).textContent = `Result: ${s[i]}`;\n this.emit('result', { index: i, label: s[i] });\n return i;\n }\n }\n return UsaPrizeWheel as unknown as CustomElementConstructor;\n },\n { id: 'prize-wheel', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './globe.css?raw';\n\n/**\n * `<usa-globe>` (7.6) — a spinning SVG globe (orthographic projection, no\n * WebGL, no map tiles): graticule, an optional `markers` list\n * (\"Shanghai:31.2,121.5; London:51.5,-0.1\") with pulsing dots, `speed`\n * (degrees per second, default 12; 0 = still), `tilt` (default 18°) and `lon`\n * (start longitude). Spins only while on screen; drag to turn it. `flyTo(name)`\n * rotates a marker to the front (`usa:focus`). The globe is `role=\"img\"`\n * labelled with the marker names; reduced motion: no spin, flyTo jumps.\n */\nexport interface GlobeMarker {\n name: string;\n lat: number;\n lon: number;\n}\nexport interface UsaGlobeElement extends UsaElement {\n readonly markers: GlobeMarker[];\n lon: number;\n flyTo(name: string): Promise<void>;\n}\n\nconst RAD = Math.PI / 180;\n\n/** Orthographic projection on a unit sphere seen from longitude `lon0`, tilted by `tilt` degrees (7.6). */\nexport function project(lat: number, lon: number, lon0 = 0, tilt = 0): { x: number; y: number; visible: boolean } {\n const p = lat * RAD;\n const l = (lon - lon0) * RAD;\n const t = tilt * RAD;\n const x = Math.cos(p) * Math.sin(l);\n const y0 = Math.sin(p);\n const z0 = Math.cos(p) * Math.cos(l);\n const y = y0 * Math.cos(t) - z0 * Math.sin(t);\n const z = y0 * Math.sin(t) + z0 * Math.cos(t);\n return { x: Math.round(x * 1e4) / 1e4, y: Math.round(-y * 1e4) / 1e4, visible: z >= 0 };\n}\n\n/** Parse \"Name:lat,lon; Name2:lat,lon\" (7.6). */\nexport function parseMarkers(s: string): GlobeMarker[] {\n return String(s || '')\n .split(';')\n .map((part) => {\n const m = /^\\s*([^:]+):\\s*(-?[\\d.]+)\\s*,\\s*(-?[\\d.]+)\\s*$/.exec(part);\n return m ? { name: m[1].trim(), lat: Math.max(-90, Math.min(90, +m[2])), lon: +m[3] } : null;\n })\n .filter((m): m is GlobeMarker => !!m);\n}\n\nconst R = 90;\nconst C = 100;\nconst line = (pts: { x: number; y: number; visible: boolean }[]): string => {\n let d = '';\n let pen = false;\n for (const p of pts) {\n if (!p.visible) {\n pen = false;\n continue;\n }\n d += `${pen ? 'L' : 'M'}${(C + p.x * R).toFixed(1)} ${(C + p.y * R).toFixed(1)}`;\n pen = true;\n }\n return d;\n};\n\nexport function defineGlobe(tag = 'usa-globe'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaGlobe extends Base {\n static get observedAttributes(): string[] {\n return ['markers', 'speed', 'tilt'];\n }\n private _lon = 0;\n private _raf = 0;\n private _visible = false;\n private _drag: { x: number; lon: number } | null = null;\n get markers(): GlobeMarker[] {\n return parseMarkers(this.str('markers'));\n }\n get lon(): number {\n return this._lon;\n }\n set lon(v: number) {\n this._lon = ((Number(v) % 360) + 360) % 360;\n this.draw();\n }\n mount(): void {\n this._lon = this.num('lon', this._lon);\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const ms = this.markers;\n this.insertAdjacentHTML(\n 'beforeend',\n `<svg class=\"usa-gl-svg\" data-usa-part viewBox=\"0 0 200 200\" aria-hidden=\"true\"><defs><radialGradient id=\"usa-gl-shade\" cx=\"35%\" cy=\"30%\" r=\"75%\"><stop offset=\"0\" stop-color=\"#fff\" stop-opacity=\".35\"/><stop offset=\"1\" stop-color=\"#000\" stop-opacity=\".25\"/></radialGradient></defs><circle class=\"usa-gl-sea\" cx=\"100\" cy=\"100\" r=\"${R}\"/><path class=\"usa-gl-grid\"/><g class=\"usa-gl-marks\">${ms.map((m) => `<g class=\"usa-gl-mark\" data-name=\"${m.name.replace(/\"/g, '&quot;')}\"><circle class=\"usa-gl-ring\" r=\"4\"/><circle class=\"usa-gl-dot\" r=\"3.2\"/></g>`).join('')}</g><circle cx=\"100\" cy=\"100\" r=\"${R}\" fill=\"url(#usa-gl-shade)\" pointer-events=\"none\"/></svg>`\n );\n this.setAttribute('role', 'img');\n this.setAttribute('aria-label', ms.length ? `Globe: ${ms.map((m) => m.name).join(', ')}` : 'Globe');\n this.draw();\n this.inView((v) => {\n this._visible = v;\n if (v) this.spin();\n else cancelAnimationFrame(this._raf);\n });\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n this._drag = { x: e.clientX, lon: this._lon };\n this.setPointerCapture?.(e.pointerId);\n });\n this.listen(this, 'pointermove', (e: PointerEvent) => {\n if (this._drag) this.lon = this._drag.lon - (e.clientX - this._drag.x) * 0.6;\n });\n const up = () => (this._drag = null);\n this.listen(this, 'pointerup', up);\n this.listen(this, 'pointercancel', up);\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n }\n private spin(): void {\n cancelAnimationFrame(this._raf);\n const speed = this.num('speed', 12);\n if (this.reduced || !speed) return;\n let last = 0;\n const step = (t: number) => {\n if (!this._visible || !this.isConnected) return;\n const dt = last ? Math.min(64, t - last) : 0;\n last = t;\n if (!this._drag) this.lon = this._lon + (speed * dt) / 1000;\n this._raf = requestAnimationFrame(step);\n };\n this._raf = requestAnimationFrame(step);\n }\n draw(): void {\n const grid = this.querySelector('.usa-gl-grid');\n if (!grid) return;\n const tilt = this.num('tilt', 18);\n let d = '';\n for (let lon = 0; lon < 360; lon += 30) d += line(Array.from({ length: 37 }, (_, i) => project(-90 + i * 5, lon, this._lon, tilt)));\n for (let lat = -60; lat <= 60; lat += 30) d += line(Array.from({ length: 73 }, (_, i) => project(lat, i * 5, this._lon, tilt)));\n grid.setAttribute('d', d);\n const ms = this.markers;\n this.querySelectorAll<SVGGElement>('.usa-gl-mark').forEach((g, i) => {\n const m = ms[i];\n if (!m) return;\n const p = project(m.lat, m.lon, this._lon, tilt);\n g.setAttribute('transform', `translate(${(C + p.x * R).toFixed(1)} ${(C + p.y * R).toFixed(1)})`);\n g.toggleAttribute('data-hidden', !p.visible);\n });\n }\n async flyTo(name: string): Promise<void> {\n const m = this.markers.find((x) => x.name === name);\n if (!m) return;\n const from = this._lon;\n const delta = (((m.lon - from) % 360) + 540) % 360 - 180;\n if (this.reduced) this.lon = from + delta;\n else\n await new Promise<void>((done) => {\n const t0 = performance.now();\n const dur = 900;\n const tick = (t: number) => {\n const k = Math.min(1, (t - t0) / dur);\n const e = 1 - Math.pow(1 - k, 3);\n this.lon = from + delta * e;\n if (k < 1 && this.isConnected) requestAnimationFrame(tick);\n else done();\n };\n requestAnimationFrame(tick);\n });\n this.querySelectorAll('.usa-gl-mark').forEach((g) => g.toggleAttribute('data-active', g.getAttribute('data-name') === name));\n this.emit('focus', { name, lat: m.lat, lon: m.lon });\n }\n }\n return UsaGlobe as unknown as CustomElementConstructor;\n },\n { id: 'globe', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './location-card.css?raw';\n\n/**\n * `<usa-location-card>` (7.6) — a place card with a stylised mini map (SVG\n * streets, no tiles, no network): `name`, `address`, `lat`/`lon`, an optional\n * origin `from-lat`/`from-lon` (the distance is computed with the haversine\n * formula, or set it with `distance`), `href` for a “Directions” link and\n * `unit` (`km` | `mi`). When it scrolls into view the pin drops in with a\n * bounce and a ring pulses under it; with an origin, the route from it draws\n * itself. `usa:arrive` fires when the pin lands. An `<article>` with a heading;\n * reduced motion: pin and route are shown at once.\n */\nexport interface UsaLocationCardElement extends UsaElement {\n readonly km: number | null;\n replay(): void;\n}\n\n/** Great-circle distance in km between two lat/lon points (7.6). */\nexport function haversine(lat1: number, lon1: number, lat2: number, lon2: number): number {\n const r = Math.PI / 180;\n const a = Math.sin(((lat2 - lat1) * r) / 2) ** 2 + Math.cos(lat1 * r) * Math.cos(lat2 * r) * Math.sin(((lon2 - lon1) * r) / 2) ** 2;\n return 2 * 6371 * Math.asin(Math.min(1, Math.sqrt(a)));\n}\n\n/** \"850 m\", \"4.2 km\", \"12 km\" — or miles with `unit = 'mi'` (7.6). */\nexport function formatDistance(km: number, unit: 'km' | 'mi' = 'km'): string {\n if (unit === 'mi') {\n const mi = km * 0.621371;\n return mi < 0.1 ? `${Math.round(mi * 5280)} ft` : `${mi < 10 ? mi.toFixed(1) : Math.round(mi)} mi`;\n }\n return km < 1 ? `${Math.round(km * 1000)} m` : `${km < 10 ? km.toFixed(1) : Math.round(km)} km`;\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineLocationCard(tag = 'usa-location-card'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaLocationCard extends Base {\n static get observedAttributes(): string[] {\n return ['name', 'address', 'lat', 'lon', 'from-lat', 'from-lon', 'distance', 'href', 'unit'];\n }\n private _played = false;\n get km(): number | null {\n const lat = this.num('lat', NaN);\n const lon = this.num('lon', NaN);\n const fl = this.num('from-lat', NaN);\n const fo = this.num('from-lon', NaN);\n return [lat, lon, fl, fo].every(Number.isFinite) ? haversine(fl, fo, lat, lon) : null;\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const name = this.str('name', 'Location');\n const km = this.km;\n const dist = this.str('distance') || (km === null ? '' : formatDistance(km, this.str('unit') === 'mi' ? 'mi' : 'km'));\n const href = this.str('href');\n const origin = km !== null;\n this.insertAdjacentHTML(\n 'beforeend',\n `<article class=\"usa-lc\" data-usa-part aria-label=\"${esc(name)}\"><div class=\"usa-lc-map\" aria-hidden=\"true\"><svg viewBox=\"0 0 240 120\" preserveAspectRatio=\"xMidYMid slice\"><path class=\"usa-lc-street\" d=\"M0 30H240M0 78H240M40 0V120M120 0V120M196 0V120M0 112L240 8\"/>${origin ? '<path class=\"usa-lc-route\" pathLength=\"100\" d=\"M28 100C60 100 64 78 96 78S120 40 160 40 168 58 168 58\"/><circle class=\"usa-lc-from\" cx=\"28\" cy=\"100\" r=\"4\"/>' : ''}</svg><span class=\"usa-lc-ring\"></span><span class=\"usa-lc-pin\"></span></div><div class=\"usa-lc-body\"><h3 class=\"usa-lc-name\">${esc(name)}</h3>${this.str('address') ? `<p class=\"usa-lc-addr\">${esc(this.str('address'))}</p>` : ''}<p class=\"usa-lc-meta\">${dist ? `<span class=\"usa-lc-dist\">${esc(dist)}</span>` : ''}${href ? `<a class=\"usa-lc-go\" href=\"${esc(href)}\" target=\"_blank\" rel=\"noopener\">Directions</a>` : ''}</p></div></article>`\n );\n if (origin) this.setAttribute('data-route', '');\n else this.removeAttribute('data-route');\n this._played = false;\n this.inView((v) => v && !this._played && this.replay(), { threshold: 0.4 });\n }\n replay(): void {\n this._played = true;\n const pin = this.querySelector('.usa-lc-pin') as HTMLElement | null;\n const ring = this.querySelector('.usa-lc-ring') as HTMLElement | null;\n const route = this.querySelector('.usa-lc-route') as SVGPathElement | null;\n if (!pin) return;\n if (this.reduced) {\n this.emit('arrive', { name: this.str('name') });\n return;\n }\n if (route) this.motion(route, [{ strokeDashoffset: '100' }, { strokeDashoffset: '0' }], { duration: 900, easing: 'ease-in-out' });\n const delay = route ? 700 : 0;\n const a = this.motion(pin, [{ transform: 'translate(-50%,-100%) translateY(-60px)', opacity: 0 }, { transform: 'translate(-50%,-100%)', opacity: 1, offset: 0.55 }, { transform: 'translate(-50%,-100%) translateY(-10px) scaleY(1.04)', offset: 0.75 }, { transform: 'translate(-50%,-100%)' }], { duration: 650, delay, easing: 'ease-out', fill: 'backwards' });\n if (ring) this.motion(ring, [{ transform: 'translate(-50%,-50%) scale(.2)', opacity: 0.9 }, { transform: 'translate(-50%,-50%) scale(2.4)', opacity: 0 }], { duration: 900, delay: delay + 450, easing: 'ease-out', iterations: 2 });\n const done = () => this.isConnected && this.emit('arrive', { name: this.str('name') });\n if (a) a.finished.then(done, () => undefined);\n else done();\n }\n }\n return UsaLocationCard as unknown as CustomElementConstructor;\n },\n { id: 'location-card', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './field.css?raw';\n\n/**\n * `<usa-field>` (7.7) — an animated text input: the `label` floats up when\n * the field is focused or filled, the underline grows from the caret, and the\n * field validates on blur (native constraint validation: `type`, `required`,\n * `pattern`, `minlength`, `maxlength`). Invalid → the field shakes and the\n * message slides in (`usa:invalid`); valid → a check draws itself\n * (`usa:valid`). With `strength` (on `type=\"password\"`) a 4-step strength\n * meter fills as you type (`passwordStrength()`). The `<input>` lives in the\n * light DOM, so a surrounding `<form>` submits it by its `name`. Reduced\n * motion: no shake, no slide — states switch at once.\n */\nexport interface UsaFieldElement extends UsaElement {\n value: string;\n readonly input: HTMLInputElement | null;\n validate(): boolean;\n}\n\n/** 0–4 password strength score with a label (7.7). */\nexport function passwordStrength(pw: string): { score: 0 | 1 | 2 | 3 | 4; label: string } {\n let s = 0;\n if (pw.length >= 8) s++;\n if (pw.length >= 12) s++;\n if (/[a-z]/.test(pw) && /[A-Z]/.test(pw)) s++;\n if (/\\d/.test(pw)) s++;\n if (/[^A-Za-z0-9]/.test(pw)) s++;\n if (!pw) s = 0;\n else if (pw.length < 6) s = Math.min(s, 1);\n const score = Math.min(4, s) as 0 | 1 | 2 | 3 | 4;\n return { score, label: ['Too short', 'Weak', 'Fair', 'Good', 'Strong'][score] };\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\nlet uid = 0;\nconst PASS = ['type', 'name', 'required', 'pattern', 'minlength', 'maxlength', 'autocomplete', 'inputmode', 'placeholder'];\n\nexport function defineField(tag = 'usa-field'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaField extends Base {\n static get observedAttributes(): string[] {\n return ['label', 'hint', 'error', 'strength', ...PASS];\n }\n private _id = `usa-fld-${++uid}`;\n private _checking = false;\n get input(): HTMLInputElement | null {\n return this.querySelector('.usa-fld-input');\n }\n get value(): string {\n return this.input?.value ?? this.str('value');\n }\n set value(v: string) {\n if (this.input) {\n this.input.value = v;\n this.sync();\n } else this.setAttribute('value', v);\n }\n mount(): void {\n const keep = this.input?.value ?? this.str('value');\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const id = this._id;\n const strength = this.flag('strength');\n const attrs = PASS.filter((a) => this.hasAttribute(a))\n .map((a) => (a === 'required' ? ' required' : ` ${a}=\"${esc(this.str(a))}\"`))\n .join('');\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-fld\" data-usa-part><input class=\"usa-fld-input\" id=\"${id}\"${attrs} aria-describedby=\"${id}-msg\"${this.hasAttribute('type') ? '' : ' type=\"text\"'}><label class=\"usa-fld-label\" for=\"${id}\">${esc(this.str('label', 'Label'))}</label><span class=\"usa-fld-line\" aria-hidden=\"true\"></span><svg class=\"usa-fld-ok\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path pathLength=\"1\" d=\"M5 12.5l4.5 4.5L19 7.5\"/></svg>${strength ? '<div class=\"usa-fld-meter\" aria-hidden=\"true\"><i></i><i></i><i></i><i></i></div>' : ''}<p class=\"usa-fld-msg\" id=\"${id}-msg\" aria-live=\"polite\">${esc(this.str('hint'))}</p></div>`\n );\n const input = this.input as HTMLInputElement;\n input.value = keep;\n this.listen(input, 'input', () => {\n if (this.hasAttribute('data-invalid')) this.validate();\n this.sync();\n });\n this.listen(input, 'focus', () => this.setAttribute('data-focus', ''));\n this.listen(input, 'blur', () => {\n this.removeAttribute('data-focus');\n if (input.value || input.required) this.validate();\n });\n // form submit / reportValidity(): show our message instead of the browser bubble\n this.listen(input, 'invalid', (e: Event) => {\n e.preventDefault();\n if (!this._checking) this.validate();\n });\n this.sync();\n }\n private sync(): void {\n const input = this.input;\n if (!input) return;\n this.setFlag('data-filled', !!input.value);\n const meter = this.querySelector('.usa-fld-meter');\n if (meter) {\n const { score, label } = passwordStrength(input.value);\n meter.setAttribute('data-score', String(score));\n if (!this.hasAttribute('data-invalid')) {\n const msg = this.querySelector('.usa-fld-msg') as HTMLElement;\n msg.textContent = input.value ? `Strength: ${label}` : this.str('hint');\n }\n }\n }\n /** Runs native validation; animates and emits `usa:valid` / `usa:invalid`. */\n validate(): boolean {\n const input = this.input;\n if (!input) return false;\n this._checking = true;\n const ok = input.checkValidity();\n this._checking = false;\n const msg = this.querySelector('.usa-fld-msg') as HTMLElement;\n const was = this.hasAttribute('data-invalid');\n this.setFlag('data-invalid', !ok);\n this.setFlag('data-valid', ok && !!input.value);\n input.setAttribute('aria-invalid', String(!ok));\n if (!ok) {\n msg.textContent = this.str('error') || input.validationMessage || 'Please check this field';\n if (!was && !this.reduced) {\n this.motion(this.querySelector('.usa-fld') as Element, [{ transform: 'none' }, { transform: 'translateX(-8px)' }, { transform: 'translateX(7px)' }, { transform: 'translateX(-5px)' }, { transform: 'translateX(3px)' }, { transform: 'none' }], { duration: 420, easing: 'ease-out' });\n this.motion(msg, [{ opacity: 0, transform: 'translateY(-4px)' }, { opacity: 1, transform: 'none' }], { duration: 220, easing: 'ease-out' });\n }\n this.emit('invalid', { value: input.value, message: msg.textContent });\n } else {\n msg.textContent = this.str('hint');\n this.sync();\n if (input.value) this.emit('valid', { value: input.value });\n }\n return ok;\n }\n }\n return UsaField as unknown as CustomElementConstructor;\n },\n { id: 'field', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './otp.css?raw';\n\n/**\n * `<usa-otp>` (7.7) — a one-time-code input: `length` boxes (default 6; an initial `value` is typed in) that\n * auto-advance as you type, step back on Backspace, move with the arrow keys\n * and take a pasted code in one go (`autocomplete=\"one-time-code\"` on the\n * first box for SMS autofill). Each digit pops in; when all boxes are filled\n * `usa:complete` fires with the code. `error()` shakes the row red and clears\n * it, `success()` turns it green with a wave; `fillCode(code)`, `clear()`. `mode=\"alnum\"` allows\n * letters. A labelled `role=\"group\"`; reduced motion: no pop, shake or wave.\n */\nexport interface UsaOtpElement extends UsaElement {\n readonly value: string;\n fillCode(code: string): void;\n clear(): void;\n error(message?: string): void;\n success(): void;\n}\n\n/** Keep only the characters an OTP accepts (7.7). */\nexport function sanitizeCode(s: string, mode: 'numeric' | 'alnum' = 'numeric'): string {\n return (mode === 'alnum' ? s.replace(/[^0-9a-z]/gi, '').toUpperCase() : s.replace(/\\D/g, ''));\n}\n\nexport function defineOtp(tag = 'usa-otp'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaOtp extends Base {\n static get observedAttributes(): string[] {\n return ['length', 'mode', 'label'];\n }\n private boxes(): HTMLInputElement[] {\n return Array.from(this.querySelectorAll<HTMLInputElement>('.usa-otp-box'));\n }\n get value(): string {\n return this.boxes()\n .map((b) => b.value)\n .join('');\n }\n private get mode(): 'numeric' | 'alnum' {\n return this.str('mode') === 'alnum' ? 'alnum' : 'numeric';\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const n = Math.max(3, Math.min(10, Math.round(this.num('length', 6))));\n const label = this.str('label', 'Verification code');\n const im = this.mode === 'alnum' ? 'text' : 'numeric';\n let html = `<div class=\"usa-otp\" role=\"group\" aria-label=\"${label.replace(/\"/g, '&quot;')}\" data-usa-part>`;\n for (let i = 0; i < n; i++) html += `<input class=\"usa-otp-box\" maxlength=\"1\" inputmode=\"${im}\" aria-label=\"Digit ${i + 1} of ${n}\"${i === 0 ? ' autocomplete=\"one-time-code\"' : ' autocomplete=\"off\"'}>`;\n html += '</div>';\n this.insertAdjacentHTML('beforeend', html);\n const boxes = this.boxes();\n boxes.forEach((b, i) => {\n this.listen(b, 'input', () => {\n const v = sanitizeCode(b.value, this.mode);\n if (v.length > 1) return this.fill(v, i);\n b.value = v;\n if (v) {\n this.pop(b);\n boxes[i + 1]?.focus();\n }\n this.check();\n });\n this.listen(b, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Backspace' && !b.value && i > 0) {\n e.preventDefault();\n boxes[i - 1].value = '';\n boxes[i - 1].focus();\n this.check();\n } else if (e.key === 'ArrowLeft' && i > 0) boxes[i - 1].focus();\n else if (e.key === 'ArrowRight' && i < boxes.length - 1) boxes[i + 1].focus();\n });\n this.listen(b, 'paste', (e: ClipboardEvent) => {\n const t = e.clipboardData?.getData('text') || '';\n if (!t) return;\n e.preventDefault();\n this.fill(sanitizeCode(t, this.mode), i);\n });\n this.listen(b, 'focus', () => b.select?.());\n });\n const init = sanitizeCode(this.str('value'), this.mode);\n if (init) this.fill(init, 0, false);\n }\n /** Types `code` into the boxes (no focus move), e.g. from an SMS autofill or a demo. */\n fillCode(code: string): void {\n this.boxes().forEach((b) => (b.value = ''));\n this.fill(sanitizeCode(code, this.mode), 0, false);\n }\n private fill(code: string, from = 0, focus = true): void {\n const boxes = this.boxes();\n const chars = code.split('');\n let last = from;\n for (let i = from; i < boxes.length && chars.length; i++) {\n boxes[i].value = chars.shift() as string;\n this.pop(boxes[i], (i - from) * 40);\n last = i;\n }\n if (focus) boxes[Math.min(boxes.length - 1, last + 1)]?.focus();\n this.check();\n }\n private pop(b: HTMLElement, delay = 0): void {\n if (!this.reduced) this.motion(b, [{ transform: 'scale(.7)' }, { transform: 'scale(1.12)' }, { transform: 'none' }], { duration: 240, delay, easing: 'ease-out' });\n }\n private check(): void {\n this.removeAttribute('data-state');\n const boxes = this.boxes();\n boxes.forEach((b) => b.toggleAttribute('data-filled', !!b.value));\n if (boxes.every((b) => b.value)) this.emit('complete', { code: this.value });\n }\n clear(): void {\n const boxes = this.boxes();\n boxes.forEach((b) => {\n b.value = '';\n b.removeAttribute('data-filled');\n });\n }\n error(message = 'Wrong code'): void {\n this.setAttribute('data-state', 'error');\n const row = this.querySelector('.usa-otp');\n row?.setAttribute('aria-description', message);\n const done = () => {\n if (this.getAttribute('data-state') === 'error') {\n this.clear();\n this.setAttribute('data-state', 'error');\n }\n };\n const a = this.reduced || !row ? null : this.motion(row, [{ transform: 'none' }, { transform: 'translateX(-10px)' }, { transform: 'translateX(9px)' }, { transform: 'translateX(-6px)' }, { transform: 'translateX(4px)' }, { transform: 'none' }], { duration: 450, easing: 'ease-out' });\n if (a) a.finished.then(done, () => undefined);\n else done();\n }\n success(): void {\n this.setAttribute('data-state', 'success');\n if (this.reduced) return;\n this.boxes().forEach((b, i) => this.motion(b, [{ transform: 'none' }, { transform: 'translateY(-8px)' }, { transform: 'none' }], { duration: 360, delay: i * 55, easing: 'ease-out' }));\n }\n }\n return UsaOtp as unknown as CustomElementConstructor;\n },\n { id: 'otp', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport css from './upload-progress.css?raw';\n\n/**\n * `<usa-upload-progress>` (7.7) — a file row with an animated progress bar:\n * `name`, `size` (bytes → \"2.4 MB\"), `value` 0–100 (the bar eases to it and a\n * shine runs over it while uploading), `status` (`uploading` | `done` |\n * `error`; reaching 100 sets `done`). Done → the bar turns into a check that\n * draws itself (`usa:done`); error → the row shakes and shows `message`\n * (`usa:error`) with a Retry button (`usa:retry`). A `role=\"progressbar\"` with\n * value text; reduced motion: no shine, no easing, no shake.\n */\nexport interface UsaUploadProgressElement extends UsaElement {\n value: number;\n status: 'uploading' | 'done' | 'error';\n}\n\n/** 1536 → \"1.5 KB\", 2_400_000 → \"2.3 MB\" (7.7). */\nexport function formatBytes(n: number): string {\n if (!Number.isFinite(n) || n < 0) return '';\n const u = ['B', 'KB', 'MB', 'GB', 'TB'];\n let i = 0;\n while (n >= 1024 && i < u.length - 1) {\n n /= 1024;\n i++;\n }\n return `${i === 0 ? Math.round(n) : n < 10 ? n.toFixed(1) : Math.round(n)} ${u[i]}`;\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineUploadProgress(tag = 'usa-upload-progress'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaUploadProgress extends Base {\n static get observedAttributes(): string[] {\n return ['name', 'size', 'value', 'status', 'message'];\n }\n private _shown = 0;\n get value(): number {\n return clamp(this.num('value', 0), 0, 100);\n }\n set value(v: number) {\n this.setAttribute('value', String(clamp(Number(v) || 0, 0, 100)));\n }\n get status(): 'uploading' | 'done' | 'error' {\n const s = this.str('status');\n return s === 'error' ? 'error' : s === 'done' || this.value >= 100 ? 'done' : 'uploading';\n }\n set status(s: 'uploading' | 'done' | 'error') {\n this.setAttribute('status', s);\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const name = this.str('name', 'file');\n const size = formatBytes(this.num('size', NaN));\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-up\" data-usa-part><span class=\"usa-up-icon\" aria-hidden=\"true\">${esc((name.split('.').pop() || '').slice(0, 4).toUpperCase())}</span><div class=\"usa-up-main\"><div class=\"usa-up-top\"><span class=\"usa-up-name\">${esc(name)}</span><span class=\"usa-up-pct\"></span></div><div class=\"usa-up-track\" role=\"progressbar\" aria-label=\"Uploading ${esc(name)}\" aria-valuemin=\"0\" aria-valuemax=\"100\"><span class=\"usa-up-fill\"></span></div><div class=\"usa-up-sub\"><span class=\"usa-up-size\">${esc(size)}</span><span class=\"usa-up-msg\" aria-live=\"polite\"></span><button type=\"button\" class=\"usa-up-retry\">Retry</button></div></div><svg class=\"usa-up-ok\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path pathLength=\"1\" d=\"M7 12.5l3.2 3.2L17 9\"/></svg></div>`\n );\n this.listen(this.querySelector('.usa-up-retry') as Element, 'click', () => this.emit('retry', { name }));\n this._shown = 0;\n this.render(true);\n }\n changed(name: string): void {\n if (name === 'name' || name === 'size') return super.changed(name);\n this.render(false);\n }\n private render(first: boolean): void {\n const fill = this.querySelector('.usa-up-fill') as HTMLElement | null;\n if (!fill) return;\n const v = this.value;\n const st = this.status;\n const prevState = this.getAttribute('data-state');\n this.setAttribute('data-state', st);\n const track = this.querySelector('.usa-up-track') as HTMLElement;\n track.setAttribute('aria-valuenow', String(Math.round(v)));\n track.setAttribute('aria-valuetext', st === 'done' ? 'Complete' : st === 'error' ? 'Failed' : `${Math.round(v)}%`);\n (this.querySelector('.usa-up-pct') as HTMLElement).textContent = st === 'done' ? 'Done' : st === 'error' ? '' : `${Math.round(v)}%`;\n (this.querySelector('.usa-up-msg') as HTMLElement).textContent = st === 'error' ? this.str('message', 'Upload failed') : '';\n const from = this._shown;\n const to = st === 'done' ? 100 : v;\n fill.style.transform = `scaleX(${to / 100})`;\n if (!first && !this.reduced && from !== to) this.motion(fill, [{ transform: `scaleX(${from / 100})` }, { transform: `scaleX(${to / 100})` }], { duration: 380, easing: 'cubic-bezier(.2,.8,.2,1)' });\n this._shown = to;\n if (prevState === st) return;\n if (st === 'done' && !first) this.emit('done', { name: this.str('name') });\n if (st === 'error' && !first) {\n if (!this.reduced) this.motion(this.querySelector('.usa-up') as Element, [{ transform: 'none' }, { transform: 'translateX(-7px)' }, { transform: 'translateX(6px)' }, { transform: 'translateX(-3px)' }, { transform: 'none' }], { duration: 380, easing: 'ease-out' });\n this.emit('error', { name: this.str('name'), message: this.str('message', 'Upload failed') });\n }\n }\n }\n return UsaUploadProgress as unknown as CustomElementConstructor;\n },\n { id: 'upload-progress', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './chat-composer.css?raw';\n\n/**\n * `<usa-chat-composer>` (7.8) — an AI chat input: the textarea grows with its\n * text (up to `rows` lines, default 6), Enter sends (Shift+Enter = new line),\n * the send button pops when there is text and morphs into a Stop button while\n * `busy` — then a soft \"thinking\" glow runs round the composer. Sending emits\n * `usa:send` { text } (cancelable — call `preventDefault()` to keep the text)\n * and clears it; Stop emits `usa:stop`. `placeholder`, `label`, `send()`,\n * `clear()`, `value`. Reduced motion: no glow, no pop.\n */\nexport interface UsaChatComposerElement extends UsaElement {\n value: string;\n busy: boolean;\n send(): boolean;\n clear(): void;\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineChatComposer(tag = 'usa-chat-composer'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaChatComposer extends Base {\n static get observedAttributes(): string[] {\n return ['placeholder', 'label', 'rows', 'busy'];\n }\n private get area(): HTMLTextAreaElement | null {\n return this.querySelector('.usa-cc-input');\n }\n get value(): string {\n return this.area?.value ?? '';\n }\n set value(v: string) {\n const a = this.area;\n if (!a) return;\n a.value = v;\n this.sync();\n }\n get busy(): boolean {\n return this.flag('busy');\n }\n set busy(on: boolean) {\n this.setFlag('busy', on);\n }\n mount(): void {\n const keep = this.area?.value ?? this.str('value');\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const label = this.str('label', 'Message');\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-cc\" data-usa-part><span class=\"usa-cc-glow\" aria-hidden=\"true\"></span><textarea class=\"usa-cc-input\" rows=\"1\" aria-label=\"${esc(label)}\" placeholder=\"${esc(this.str('placeholder', 'Ask anything…'))}\"></textarea><button type=\"button\" class=\"usa-cc-send\" aria-label=\"Send\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path class=\"usa-cc-arrow\" d=\"M12 19V5M5.5 11.5L12 5l6.5 6.5\"/><rect class=\"usa-cc-stop\" x=\"7\" y=\"7\" width=\"10\" height=\"10\" rx=\"2\"/></svg></button></div>`\n );\n const a = this.area as HTMLTextAreaElement;\n a.value = keep;\n this.listen(a, 'input', () => this.sync());\n this.listen(a, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey && !e.isComposing) {\n e.preventDefault();\n if (!this.busy) this.send();\n }\n });\n this.listen(this.querySelector('.usa-cc-send') as Element, 'click', () => {\n if (this.busy) {\n this.emit('stop');\n this.busy = false;\n } else this.send();\n });\n this.sync(true);\n this.state();\n }\n changed(name: string): void {\n if (name === 'busy') return this.state();\n super.changed(name);\n }\n private state(): void {\n const b = this.querySelector('.usa-cc-send') as HTMLElement | null;\n if (!b) return;\n b.setAttribute('aria-label', this.busy ? 'Stop generating' : 'Send');\n this.setFlag('data-busy', this.busy);\n this.sync(true);\n }\n private sync(quiet = false): void {\n const a = this.area;\n if (!a) return;\n const max = Math.max(1, Math.round(this.num('rows', 6)));\n a.style.height = 'auto';\n const lh = parseFloat(getComputedStyle(a).lineHeight) || 20;\n const h = a.scrollHeight;\n if (h > 0) a.style.height = `${Math.min(h, lh * max + 16)}px`;\n const had = this.hasAttribute('data-ready');\n const ready = !!a.value.trim() || this.busy;\n this.setFlag('data-ready', ready);\n if (ready && !had && !quiet && !this.reduced) this.motion(this.querySelector('.usa-cc-send') as Element, [{ transform: 'scale(.6)' }, { transform: 'scale(1.15)' }, { transform: 'none' }], { duration: 260, easing: 'ease-out' });\n }\n /** Emits `usa:send` with the trimmed text and clears it (unless prevented). */\n send(): boolean {\n const text = this.value.trim();\n if (!text) return false;\n if (!this.emit('send', { text })) return false;\n this.clear();\n return true;\n }\n clear(): void {\n this.value = '';\n }\n }\n return UsaChatComposer as unknown as CustomElementConstructor;\n },\n { id: 'chat-composer', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './suggestion-chips.css?raw';\n\n/**\n * `<usa-suggestion-chips>` (7.8) — follow-up prompt chips for AI chats:\n * `items=\"Summarise|Translate|Explain like I'm 5\"` (or child `<button>`s /\n * text lines). The chips slide in one after another when they appear (and\n * again after `setItems()`); picking one pulses it, emits `usa:pick`\n * { text, index } and, with `dismiss`, the others fade away. A labelled list\n * of real buttons, arrow keys move between them; reduced motion: no slide or\n * pulse.\n */\nexport interface UsaSuggestionChipsElement extends UsaElement {\n items: string[];\n setItems(items: string[]): void;\n}\n\n/** \"a | b|c\" → [\"a\", \"b\", \"c\"] (7.8). */\nexport function parseChips(s: string): string[] {\n return s\n .split(/\\||\\n/)\n .map((t) => t.trim())\n .filter(Boolean);\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineSuggestionChips(tag = 'usa-suggestion-chips'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSuggestionChips extends Base {\n static get observedAttributes(): string[] {\n return ['items', 'label', 'dismiss'];\n }\n private _items: string[] | null = null;\n get items(): string[] {\n if (this._items) return this._items.slice();\n const attr = this.str('items');\n if (attr) return parseChips(attr);\n const kids = Array.from(this.children).filter((c) => !c.hasAttribute('data-usa-part'));\n return kids.length ? kids.map((c) => (c.textContent || '').trim()).filter(Boolean) : parseChips(this.getAttribute('data-text') || '');\n }\n set items(v: string[]) {\n this.setItems(v);\n }\n setItems(items: string[]): void {\n this._items = items.map(String).filter((t) => t.trim());\n this.mount();\n }\n mount(): void {\n const items = this.items;\n if (!this._items && !this.str('items')) {\n // keep authored content as the source of truth, hidden\n Array.from(this.children).forEach((c) => !c.hasAttribute('data-usa-part') && (c as HTMLElement).setAttribute('hidden', ''));\n }\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-sc\" role=\"list\" aria-label=\"${esc(this.str('label', 'Suggestions'))}\" data-usa-part>${items.map((t, i) => `<span role=\"listitem\"><button type=\"button\" class=\"usa-sc-chip\" data-i=\"${i}\">${esc(t)}</button></span>`).join('')}</div>`\n );\n const chips = Array.from(this.querySelectorAll<HTMLButtonElement>('.usa-sc-chip'));\n chips.forEach((c, i) => {\n this.listen(c, 'click', () => this.pick(i));\n this.listen(c, 'keydown', (e: KeyboardEvent) => {\n const d = e.key === 'ArrowRight' ? 1 : e.key === 'ArrowLeft' ? -1 : 0;\n if (!d) return;\n e.preventDefault();\n chips[(i + d + chips.length) % chips.length].focus();\n });\n });\n this.inView((v) => v && this.enter(), { threshold: 0.2 });\n }\n private _entered = false;\n private enter(): void {\n if (this._entered && !this._items) return;\n this._entered = true;\n if (this.reduced) return;\n this.querySelectorAll('.usa-sc-chip').forEach((c, i) => this.motion(c, [{ opacity: 0, transform: 'translateY(10px) scale(.92)' }, { opacity: 1, transform: 'none' }], { duration: 380, delay: i * 70, easing: 'cubic-bezier(.2,.8,.2,1)', fill: 'backwards' }));\n }\n private pick(i: number): void {\n const chips = Array.from(this.querySelectorAll<HTMLButtonElement>('.usa-sc-chip'));\n const c = chips[i];\n if (!c) return;\n chips.forEach((x) => x.toggleAttribute('data-picked', x === c));\n if (!this.reduced) this.motion(c, [{ transform: 'none' }, { transform: 'scale(1.1)' }, { transform: 'none' }], { duration: 280, easing: 'ease-out' });\n if (this.flag('dismiss'))\n chips.forEach((x) => {\n if (x === c) return;\n x.setAttribute('data-gone', '');\n x.disabled = true;\n });\n this.emit('pick', { text: c.textContent, index: i });\n }\n }\n return UsaSuggestionChips as unknown as CustomElementConstructor;\n },\n { id: 'suggestion-chips', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport css from './voice-button.css?raw';\n\n/**\n * `<usa-voice-button>` (7.8) — a push-to-talk mic button: click (or Space /\n * Enter) toggles `listening`; while listening a halo breathes round the\n * button and `bars` (default 5) wave beside it. Feed it the live input level\n * with `level` (0–1, e.g. from an `AnalyserNode` or a speech API) and the\n * bars and halo follow it; without levels they run an idle wave. `usa:start`\n * / `usa:stop`. A real `<button aria-pressed>`; `label`. Reduced motion: no\n * halo or wave — the pressed state shows by colour.\n */\nexport interface UsaVoiceButtonElement extends UsaElement {\n listening: boolean;\n level: number;\n toggle(force?: boolean): void;\n}\n\n/** Bar heights (0–1) for a level and a phase, centre bars tallest (7.8). */\nexport function waveBars(level: number, n = 5, phase = 0): number[] {\n const l = clamp(level, 0, 1);\n return Array.from({ length: n }, (_, i) => {\n const mid = 1 - Math.abs(i - (n - 1) / 2) / ((n - 1) / 2 || 1);\n const wob = 0.5 + 0.5 * Math.sin(phase + i * 1.3);\n return Math.round(clamp(0.15 + l * (0.45 + 0.4 * mid) * (0.6 + 0.4 * wob), 0.1, 1) * 100) / 100;\n });\n}\n\nexport function defineVoiceButton(tag = 'usa-voice-button'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaVoiceButton extends Base {\n static get observedAttributes(): string[] {\n return ['label', 'bars', 'listening'];\n }\n private _level = -1;\n get listening(): boolean {\n return this.flag('listening');\n }\n set listening(on: boolean) {\n this.setFlag('listening', on);\n }\n get level(): number {\n return Math.max(0, this._level);\n }\n set level(v: number) {\n this._level = clamp(Number(v) || 0, 0, 1);\n this.paint();\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const n = Math.max(3, Math.min(9, Math.round(this.num('bars', 5))));\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-vb\" data-usa-part><button type=\"button\" class=\"usa-vb-btn\" aria-pressed=\"false\" aria-label=\"${this.str('label', 'Voice input').replace(/\"/g, '&quot;')}\"><span class=\"usa-vb-halo\" aria-hidden=\"true\"></span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"9\" y=\"3\" width=\"6\" height=\"11\" rx=\"3\"/><path d=\"M5.5 11a6.5 6.5 0 0 0 13 0M12 17.5V21\"/></svg></button><span class=\"usa-vb-bars\" aria-hidden=\"true\">${'<i></i>'.repeat(n)}</span></div>`\n );\n this.listen(this.querySelector('.usa-vb-btn') as Element, 'click', () => this.toggle());\n this.sync(true);\n }\n changed(name: string): void {\n if (name === 'listening') return this.sync(false);\n super.changed(name);\n }\n toggle(force?: boolean): void {\n this.listening = force ?? !this.listening;\n }\n private sync(first: boolean): void {\n const btn = this.querySelector('.usa-vb-btn');\n if (!btn) return;\n btn.setAttribute('aria-pressed', String(this.listening));\n if (!first) this.emit(this.listening ? 'start' : 'stop');\n if (!this.listening) this._level = -1;\n this.paint();\n }\n private paint(): void {\n const bars = Array.from(this.querySelectorAll<HTMLElement>('.usa-vb-bars i'));\n const live = this.listening && this._level >= 0;\n this.setFlag('data-live', live);\n const hs = waveBars(live ? this._level : 0, bars.length, (typeof performance !== 'undefined' ? performance.now() : 0) / 120);\n bars.forEach((b, i) => (b.style.transform = live ? `scaleY(${hs[i]})` : ''));\n const halo = this.querySelector('.usa-vb-halo') as HTMLElement | null;\n if (halo) halo.style.transform = live ? `scale(${1 + this._level * 0.6})` : '';\n }\n }\n return UsaVoiceButton as unknown as CustomElementConstructor;\n },\n { id: 'voice-button', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './command-palette.css?raw';\n\n/**\n * `<usa-command-palette>` (7.9) — a ⌘K command palette on the native\n * `<dialog>` (top layer, Esc, focus returns to the opener): it scales in,\n * the results filter as you type (fuzzy, matched letters highlighted) and\n * stagger in, a highlight glides to the active row (↑ / ↓, Enter runs it).\n * Commands come from child `<option value=\"id\" data-group=\"Navigation\"\n * data-keys=\"mod+n\">Label</option>` elements or `setCommands([{ id, label,\n * group?, keys? }])`. `inline` renders it open in the page (no dialog,\n * e.g. for docs). `hotkey` (default `mod+k`; `none` to disable) opens it\n * from anywhere; `placeholder`, `label`. `show()`, `close()`, `toggle()`,\n * `opened`; `usa:run` { id, label }, `usa:open`, `usa:close`. A `combobox` +\n * `listbox`; reduced motion: no scale, stagger or glide.\n */\nexport interface PaletteCommand {\n id: string;\n label: string;\n group?: string;\n keys?: string;\n}\nexport interface UsaCommandPaletteElement extends UsaElement {\n readonly opened: boolean;\n commands: PaletteCommand[];\n setCommands(list: PaletteCommand[]): void;\n show(): void;\n close(): void;\n toggle(): void;\n}\n\n/**\n * Fuzzy match: every query letter in order. Returns a score (higher is\n * better; -1 = no match) and the matched indexes (7.9).\n */\nexport function fuzzyMatch(query: string, text: string): { score: number; hits: number[] } {\n const q = query.trim().toLowerCase();\n const t = text.toLowerCase();\n if (!q) return { score: 0, hits: [] };\n const hits: number[] = [];\n let score = 0;\n let from = 0;\n let prev = -2;\n for (const ch of q) {\n if (ch === ' ') continue;\n const i = t.indexOf(ch, from);\n if (i < 0) return { score: -1, hits: [] };\n hits.push(i);\n score += i === prev + 1 ? 3 : 1; // consecutive letters\n if (i === 0 || /[\\s\\-_/]/.test(t[i - 1])) score += 2; // word starts\n prev = i;\n from = i + 1;\n }\n return { score: score - t.length / 100, hits };\n}\n\n/** \"mod+shift+k\" → [\"⌘\", \"⇧\", \"K\"] on Apple platforms, [\"Ctrl\", \"Shift\", \"K\"] elsewhere (7.9). */\nexport function keyLabels(keys: string, apple = isApple()): string[] {\n const map: Record<string, [string, string]> = { mod: ['⌘', 'Ctrl'], cmd: ['⌘', '⌘'], meta: ['⌘', 'Win'], ctrl: ['⌃', 'Ctrl'], shift: ['⇧', 'Shift'], alt: ['⌥', 'Alt'], option: ['⌥', 'Alt'], enter: ['↵', 'Enter'], esc: ['Esc', 'Esc'], escape: ['Esc', 'Esc'], up: ['↑', '↑'], down: ['↓', '↓'], left: ['←', '←'], right: ['→', '→'], space: ['Space', 'Space'], tab: ['⇥', 'Tab'], backspace: ['⌫', 'Backspace'] };\n return keys\n .split('+')\n .map((k) => k.trim())\n .filter(Boolean)\n .map((k) => (map[k.toLowerCase()] ? map[k.toLowerCase()][apple ? 0 : 1] : k.length === 1 ? k.toUpperCase() : k[0].toUpperCase() + k.slice(1)));\n}\n\n/** Does a KeyboardEvent match \"mod+k\"-style keys? (7.9) */\nexport function matchesKeys(e: KeyboardEvent, keys: string, apple = isApple()): boolean {\n const parts = keys.toLowerCase().split('+').map((k) => k.trim()).filter(Boolean);\n const key = parts.filter((p) => !['mod', 'cmd', 'meta', 'ctrl', 'shift', 'alt', 'option'].includes(p))[0];\n if (!key) return false;\n const want = { meta: false, ctrl: false, shift: parts.includes('shift'), alt: parts.includes('alt') || parts.includes('option') };\n if (parts.includes('mod')) want[apple ? 'meta' : 'ctrl'] = true;\n if (parts.includes('cmd') || parts.includes('meta')) want.meta = true;\n if (parts.includes('ctrl')) want.ctrl = true;\n const names: Record<string, string> = { esc: 'escape', space: ' ', up: 'arrowup', down: 'arrowdown', left: 'arrowleft', right: 'arrowright' };\n const k = (e.key || '').toLowerCase();\n return k === (names[key] || key) && e.metaKey === want.meta && e.ctrlKey === want.ctrl && e.shiftKey === want.shift && e.altKey === want.alt;\n}\n\nexport function isApple(): boolean {\n return typeof navigator !== 'undefined' && /Mac|iPhone|iPad|iPod/.test((navigator as any).userAgentData?.platform || navigator.platform || navigator.userAgent || '');\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\nlet uid = 0;\n\nexport function defineCommandPalette(tag = 'usa-command-palette'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCommandPalette extends Base {\n static get observedAttributes(): string[] {\n return ['placeholder', 'label', 'hotkey', 'inline'];\n }\n private _cmds: PaletteCommand[] | null = null;\n private _id = `usa-cp-${++uid}`;\n private _active = 0;\n private _shown: PaletteCommand[] = [];\n private _opener: Element | null = null;\n get commands(): PaletteCommand[] {\n if (this._cmds) return this._cmds.slice();\n return Array.from(this.querySelectorAll(':scope > option')).map((o) => ({ id: (o as HTMLOptionElement).value || (o.textContent || '').trim(), label: (o.textContent || '').trim(), group: o.getAttribute('data-group') || undefined, keys: o.getAttribute('data-keys') || undefined }));\n }\n set commands(v: PaletteCommand[]) {\n this.setCommands(v);\n }\n setCommands(list: PaletteCommand[]): void {\n this._cmds = list.map((c) => ({ ...c, id: String(c.id), label: String(c.label) }));\n this.render();\n }\n private get dlg(): HTMLDialogElement | null {\n return this.querySelector('.usa-cp');\n }\n get opened(): boolean {\n return !!this.dlg?.hasAttribute('open');\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const id = this._id;\n this.insertAdjacentHTML(\n 'beforeend',\n `<dialog class=\"usa-cp\" data-usa-part aria-label=\"${esc(this.str('label', 'Command palette'))}\"><div class=\"usa-cp-box\"><input class=\"usa-cp-q\" role=\"combobox\" aria-expanded=\"true\" aria-controls=\"${id}-list\" aria-autocomplete=\"list\" autocomplete=\"off\" spellcheck=\"false\" placeholder=\"${esc(this.str('placeholder', 'Type a command or search…'))}\"><div class=\"usa-cp-list\" id=\"${id}-list\" role=\"listbox\"><span class=\"usa-cp-hl\" aria-hidden=\"true\"></span></div><p class=\"usa-cp-empty\" hidden>No results</p></div></dialog>`\n );\n const dlg = this.dlg as HTMLDialogElement;\n const q = this.querySelector('.usa-cp-q') as HTMLInputElement;\n this.listen(q, 'input', () => this.render(true));\n this.listen(q, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n this.move(e.key === 'ArrowDown' ? 1 : -1);\n } else if (e.key === 'Enter') {\n e.preventDefault();\n this.run(this._active);\n } else if (e.key === 'Escape' && typeof dlg.showModal !== 'function') this.close();\n });\n this.listen(dlg, 'click', (e: MouseEvent) => {\n if (e.target === dlg) this.close();\n });\n this.listen(dlg, 'cancel', (e: Event) => {\n e.preventDefault();\n this.close();\n });\n const hk = this.str('hotkey', 'mod+k');\n if (hk !== 'none')\n this.listen(document, 'keydown', (e: KeyboardEvent) => {\n if (matchesKeys(e, hk)) {\n e.preventDefault();\n this.toggle();\n }\n });\n this.render();\n if (this.flag('inline')) dlg.setAttribute('open', '');\n }\n private render(typed = false): void {\n const list = this.querySelector('.usa-cp-list');\n if (!list) return;\n const q = (this.querySelector('.usa-cp-q') as HTMLInputElement).value;\n const all = this.commands;\n const scored = all\n .map((c, i) => ({ c, i, m: fuzzyMatch(q, c.label) }))\n .filter((x) => x.m.score >= 0)\n .sort((a, b) => (q ? b.m.score - a.m.score : 0) || a.i - b.i);\n this._shown = scored.map((x) => x.c);\n this._active = 0;\n list.querySelectorAll('.usa-cp-item, .usa-cp-group').forEach((n) => n.remove());\n let html = '';\n let group: string | undefined = '\\u0000';\n scored.forEach(({ c, m }, i) => {\n if (!q && c.group !== group) {\n group = c.group;\n if (group) html += `<div class=\"usa-cp-group\" role=\"presentation\">${esc(group)}</div>`;\n }\n const label = Array.from(c.label)\n .map((ch, j) => (m.hits.includes(j) ? `<mark>${esc(ch)}</mark>` : esc(ch)))\n .join('');\n const keys = c.keys ? `<span class=\"usa-cp-keys\">${keyLabels(c.keys).map((k) => `<kbd>${esc(k)}</kbd>`).join('')}</span>` : '';\n html += `<div class=\"usa-cp-item\" role=\"option\" id=\"${this._id}-o${i}\" data-i=\"${i}\" aria-selected=\"false\"><span class=\"usa-cp-label\">${label}</span>${keys}</div>`;\n });\n list.insertAdjacentHTML('beforeend', html);\n list.querySelectorAll<HTMLElement>('.usa-cp-item').forEach((el) => {\n el.addEventListener('pointermove', () => this.select(Number(el.dataset.i)));\n el.addEventListener('click', () => this.run(Number(el.dataset.i)));\n });\n (this.querySelector('.usa-cp-empty') as HTMLElement).hidden = scored.length > 0;\n this.select(0, false);\n if (typed && !this.reduced) list.querySelectorAll('.usa-cp-item').forEach((el, i) => i < 8 && this.motion(el, [{ opacity: 0, transform: 'translateY(6px)' }, { opacity: 1, transform: 'none' }], { duration: 200, delay: i * 25, easing: 'ease-out', fill: 'backwards' }));\n }\n private select(i: number, glide = true): void {\n const items = Array.from(this.querySelectorAll<HTMLElement>('.usa-cp-item'));\n const q = this.querySelector('.usa-cp-q') as HTMLInputElement | null;\n const hl = this.querySelector('.usa-cp-hl') as HTMLElement | null;\n if (!items.length || !q || !hl) {\n q?.removeAttribute('aria-activedescendant');\n if (hl) hl.style.opacity = '0';\n return;\n }\n this._active = Math.max(0, Math.min(items.length - 1, i));\n items.forEach((el, j) => el.setAttribute('aria-selected', String(j === this._active)));\n const el = items[this._active];\n q.setAttribute('aria-activedescendant', el.id);\n const to = `translateY(${el.offsetTop}px)`;\n const from = hl.style.transform;\n hl.style.opacity = '1';\n hl.style.height = `${el.offsetHeight || 36}px`;\n hl.style.transform = to;\n if (glide && from && from !== to && !this.reduced) this.motion(hl, [{ transform: from }, { transform: to }], { duration: 160, easing: 'cubic-bezier(.2,.8,.2,1)' });\n (el as any).scrollIntoView?.({ block: 'nearest' });\n }\n private move(d: number): void {\n const n = this._shown.length;\n if (n) this.select((this._active + d + n) % n);\n }\n private run(i: number): void {\n const c = this._shown[i];\n if (!c) return;\n this.emit('run', { id: c.id, label: c.label });\n this.close();\n }\n show(): void {\n const dlg = this.dlg;\n if (dlg && this.flag('inline')) return (this.querySelector('.usa-cp-q') as HTMLInputElement).focus();\n if (!dlg || this.opened) return;\n this._opener = document.activeElement;\n const q = this.querySelector('.usa-cp-q') as HTMLInputElement;\n q.value = '';\n this.render();\n if (typeof dlg.showModal === 'function') {\n try {\n dlg.showModal();\n } catch {\n dlg.setAttribute('open', '');\n }\n } else dlg.setAttribute('open', '');\n this.select(0, false);\n q.focus();\n if (!this.reduced) this.motion(this.querySelector('.usa-cp-box') as Element, [{ opacity: 0, transform: 'translateY(-8px) scale(.96)' }, { opacity: 1, transform: 'none' }], { duration: 220, easing: 'cubic-bezier(.2,.8,.2,1)' });\n this.emit('open');\n }\n close(): void {\n const dlg = this.dlg;\n if (dlg && this.flag('inline')) {\n (this.querySelector('.usa-cp-q') as HTMLInputElement).value = '';\n return this.render();\n }\n if (!dlg || !this.opened) return;\n const done = () => {\n if (typeof dlg.close === 'function' && dlg.open) dlg.close();\n dlg.removeAttribute('open');\n (this._opener as HTMLElement | null)?.focus?.();\n this.emit('close');\n };\n const a = this.reduced ? null : this.motion(this.querySelector('.usa-cp-box') as Element, [{ opacity: 1, transform: 'none' }, { opacity: 0, transform: 'scale(.97)' }], { duration: 140, easing: 'ease-in' });\n if (a) a.finished.then(done, done);\n else done();\n }\n toggle(): void {\n if (this.opened) this.close();\n else this.show();\n }\n }\n return UsaCommandPalette as unknown as CustomElementConstructor;\n },\n { id: 'command-palette', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { keyLabels, matchesKeys } from './command-palette';\nimport css from './shortcut.css?raw';\n\n/**\n * `<usa-shortcut keys=\"mod+k\">` (7.9) — a keyboard-shortcut hint rendered\n * as keycaps (⌘ on Apple platforms, Ctrl elsewhere). When the user presses\n * the combination anywhere on the page the caps press down one after another\n * and `usa:trigger` fires (`listen=\"false\"` to only display it; `for=\"id\"`\n * clicks that element). Optional `label` text after the caps. The caps are\n * `<kbd>` with an accessible text like \"Control K\"; reduced motion: no\n * press animation.\n */\nexport interface UsaShortcutElement extends UsaElement {\n readonly labels: string[];\n press(): void;\n}\n\nconst SPOKEN: Record<string, string> = { '⌘': 'Command', '⇧': 'Shift', '⌥': 'Option', '⌃': 'Control', Ctrl: 'Control', '↵': 'Enter', '⇥': 'Tab', '⌫': 'Backspace' };\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineShortcut(tag = 'usa-shortcut'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaShortcut extends Base {\n static get observedAttributes(): string[] {\n return ['keys', 'label', 'listen', 'for'];\n }\n get labels(): string[] {\n return keyLabels(this.str('keys', 'mod+k'));\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const labels = this.labels;\n const spoken = labels.map((l) => SPOKEN[l] || l).join(' ');\n const text = this.str('label');\n this.insertAdjacentHTML(\n 'beforeend',\n `<span class=\"usa-sk\" data-usa-part><span class=\"usa-sk-caps\" role=\"img\" aria-label=\"${esc(spoken)}\">${labels.map((l) => `<kbd aria-hidden=\"true\">${esc(l)}</kbd>`).join('')}</span>${text ? `<span class=\"usa-sk-label\">${esc(text)}</span>` : ''}</span>`\n );\n if (this.str('listen') !== 'false')\n this.listen(document, 'keydown', (e: KeyboardEvent) => {\n if (!e.repeat && matchesKeys(e, this.str('keys', 'mod+k'))) {\n this.press();\n const id = this.str('for');\n const target = id ? document.getElementById(id) : null;\n if (target) {\n e.preventDefault();\n target.click();\n }\n }\n });\n }\n /** Animate the caps as if pressed and emit `usa:trigger`. */\n press(): void {\n const caps = Array.from(this.querySelectorAll('kbd'));\n this.setAttribute('data-pressed', '');\n const off = () => this.removeAttribute('data-pressed');\n if (!this.reduced) {\n const runs = caps.map((k, i) => this.motion(k, [{ transform: 'none' }, { transform: 'translateY(2px) scale(.94)', borderBottomWidth: '1px' }, { transform: 'none' }], { duration: 260, delay: i * 50, easing: 'ease-out' }));\n const last = runs[runs.length - 1];\n if (last) last.finished.then(off, off);\n else off();\n } else off();\n this.emit('trigger', { keys: this.str('keys', 'mod+k') });\n }\n }\n return UsaShortcut as unknown as CustomElementConstructor;\n },\n { id: 'shortcut', text: css }\n );\n}\n","/**\n * motionary/components/widgets — the 6.x animated UI widgets, in their own\n * entry so `motionary/components` and `components/lite` keep their size\n * budgets. Every widget is reduced-motion safe and keyboard accessible.\n *\n * ```ts\n * import { defineWidgets } from 'motionary/components/widgets';\n * defineWidgets(); // or defineCarousel(), defineTabBar(), …\n * ```\n * No build step: `<script src=\"https://unpkg.com/motionary@6/dist/widgets.umd.js\">`\n * (registers every widget and every 6.x effect pack; `window.UsaWidgets`).\n */\nimport { defineCarousel, CAROUSEL_EFFECTS, type UsaCarouselElement } from './carousel';\nimport { defineTabBar, TAB_INDICATORS, type UsaTabBarElement } from './tab-bar';\nimport { defineDisclosure, type UsaDisclosureElement } from './disclosure';\nimport { defineStories, type UsaStoriesElement } from './stories';\nimport { defineToastStack, stackToast, TOAST_POSITIONS, type UsaToastStackElement, type StackToastOptions } from './toast';\nimport { defineModal, defineSheet, MODAL_EFFECTS, SHEET_SIDES, type UsaModalElement, type UsaSheetElement } from './overlay';\nimport { defineMenu, MENU_EFFECTS, type UsaMenuElement } from './menu';\nimport { defineProgressRing, defineOdometer, PROGRESS_VARIANTS, type UsaProgressRingElement, type UsaOdometerElement } from './meters';\nimport { defineSkeletonReveal, SKELETON_VARIANTS, type UsaSkeletonRevealElement } from './skeleton-reveal';\nimport { defineStarRating, type UsaStarRatingElement } from './star-rating';\nimport { defineMilestones, type UsaMilestonesElement } from './milestones';\nimport { defineMasonryFlow, type UsaMasonryFlowElement } from './masonry-flow';\nimport { defineCompare, type UsaCompareElement } from './compare';\nimport { defineCubeGallery, type UsaCubeGalleryElement } from './cube-gallery';\nimport { defineDock, type UsaDockElement } from './dock';\nimport { defineNavMorph, NAV_INDICATORS, type UsaNavMorphElement } from './nav-morph';\nimport { defineMenuToggle, TOGGLE_VARIANTS, type UsaMenuToggleElement } from './menu-toggle';\nimport { defineTip, TIP_PLACEMENTS, type UsaTipElement } from './tip';\nimport { defineStepper, type UsaStepperElement } from './stepper';\nimport { definePagination, pageWindow, type UsaPaginationElement } from './pagination';\nimport { defineSegmented, SEGMENTED_VARIANTS, type UsaSegmentedElement } from './segmented';\nimport { defineSwitch, SWITCH_VARIANTS, type UsaSwitchElement } from './switch';\nimport { defineKanban, type UsaKanbanElement } from './kanban';\nimport { defineSwipeDeck, type UsaSwipeDeckElement } from './swipe-deck';\nimport { defineWeatherCard, WEATHER_CONDITIONS, type UsaWeatherCardElement } from './weather-card';\nimport { definePullCord, type UsaPullCordElement } from './pull-cord';\nimport { defineDatePicker, monthGrid, parseISODate, type UsaDatePickerElement } from './date-picker';\nimport { defineColorPicker, hsvToHex, hexToHsv, type UsaColorPickerElement } from './color-picker';\nimport { defineFileDrop, type UsaFileDropElement } from './file-drop';\nimport { defineKeyframeEditor, type UsaKeyframeEditorElement } from './keyframe-editor';\nimport { defineMusicPlayer, type UsaMusicPlayerElement } from './music-player';\nimport { defineVolumeKnob, type UsaVolumeKnobElement } from './volume-knob';\nimport { defineEqualizer, EQ_PRESETS, type UsaEqualizerElement } from './equalizer';\nimport { defineLyrics, parseLRC, type UsaLyricsElement } from './lyrics';\nimport { defineBarChart, type UsaBarChartElement } from './bar-chart';\nimport { defineGauge, type UsaGaugeElement } from './gauge';\nimport { defineSparkline, SPARK_VARIANTS, sparkPoints, type UsaSparklineElement } from './sparkline';\nimport { defineKpi, type UsaKpiElement } from './kpi';\nimport { defineAddToCart, type UsaAddToCartElement } from './add-to-cart';\nimport { defineCartDrawer, cartTotal, type UsaCartDrawerElement, type CartItem } from './cart-drawer';\nimport { defineProductGallery, wrapIndex, type UsaProductGalleryElement } from './product-gallery';\nimport { defineCountdown, splitTime, type UsaCountdownElement } from './countdown';\nimport { defineMessageList, type UsaMessageListElement, type ChatMessage } from './message-list';\nimport { defineReactions, parseReactions, type UsaReactionsElement } from './reactions';\nimport { defineNotificationBell, type UsaNotificationBellElement, type BellNotice } from './notification-bell';\nimport { definePresence, PRESENCE_STATES, initials, type UsaPresenceElement, type PresenceState } from './presence';\nimport { defineLeaderboard, rankRows, type UsaLeaderboardElement, type LeaderRow } from './leaderboard';\nimport { defineXpBar, levelFor, type UsaXpBarElement } from './xp-bar';\nimport { defineBadgeWall, badgeProgress, type UsaBadgeWallElement, type WallBadge } from './badge-wall';\nimport { definePrizeWheel, wheelAngle, type UsaPrizeWheelElement } from './prize-wheel';\nimport { defineGlobe, project, parseMarkers, type UsaGlobeElement, type GlobeMarker } from './globe';\nimport { defineLocationCard, haversine, formatDistance, type UsaLocationCardElement } from './location-card';\nimport { defineField, passwordStrength, type UsaFieldElement } from './field';\nimport { defineOtp, sanitizeCode, type UsaOtpElement } from './otp';\nimport { defineUploadProgress, formatBytes, type UsaUploadProgressElement } from './upload-progress';\nimport { defineChatComposer, type UsaChatComposerElement } from './chat-composer';\nimport { defineSuggestionChips, parseChips, type UsaSuggestionChipsElement } from './suggestion-chips';\nimport { defineVoiceButton, waveBars, type UsaVoiceButtonElement } from './voice-button';\nimport { defineCommandPalette, fuzzyMatch, keyLabels, matchesKeys, type UsaCommandPaletteElement, type PaletteCommand } from './command-palette';\nimport { defineShortcut, type UsaShortcutElement } from './shortcut';\n\nexport { defineCarousel, defineTabBar, defineDisclosure, defineStories, CAROUSEL_EFFECTS, TAB_INDICATORS };\nexport type { UsaCarouselElement, UsaTabBarElement, UsaDisclosureElement, UsaStoriesElement };\nexport { defineToastStack, stackToast, TOAST_POSITIONS, defineModal, defineSheet, MODAL_EFFECTS, SHEET_SIDES, defineMenu, MENU_EFFECTS };\nexport type { UsaToastStackElement, StackToastOptions, UsaModalElement, UsaSheetElement, UsaMenuElement };\n\nexport { defineProgressRing, defineOdometer, PROGRESS_VARIANTS, defineSkeletonReveal, SKELETON_VARIANTS, defineStarRating };\nexport type { UsaProgressRingElement, UsaOdometerElement, UsaSkeletonRevealElement, UsaStarRatingElement };\n\nexport { defineMilestones, defineMasonryFlow, defineCompare, defineCubeGallery };\nexport type { UsaMilestonesElement, UsaMasonryFlowElement, UsaCompareElement, UsaCubeGalleryElement };\n\nexport { defineDock, defineNavMorph, NAV_INDICATORS, defineMenuToggle, TOGGLE_VARIANTS, defineTip, TIP_PLACEMENTS };\nexport type { UsaDockElement, UsaNavMorphElement, UsaMenuToggleElement, UsaTipElement };\n\nexport { defineStepper, definePagination, pageWindow, defineSegmented, SEGMENTED_VARIANTS, defineSwitch, SWITCH_VARIANTS };\nexport type { UsaStepperElement, UsaPaginationElement, UsaSegmentedElement, UsaSwitchElement };\n\nexport { defineKanban, defineSwipeDeck, defineWeatherCard, WEATHER_CONDITIONS, definePullCord };\nexport type { UsaKanbanElement, UsaSwipeDeckElement, UsaWeatherCardElement, UsaPullCordElement };\n\nexport { defineDatePicker, monthGrid, parseISODate, defineColorPicker, hsvToHex, hexToHsv, defineFileDrop, defineKeyframeEditor };\nexport type { UsaDatePickerElement, UsaColorPickerElement, UsaFileDropElement, UsaKeyframeEditorElement };\n\nexport { defineMusicPlayer, defineVolumeKnob, defineEqualizer, EQ_PRESETS, defineLyrics, parseLRC };\nexport type { UsaMusicPlayerElement, UsaVolumeKnobElement, UsaEqualizerElement, UsaLyricsElement };\n\nexport { defineBarChart, defineGauge, defineSparkline, SPARK_VARIANTS, sparkPoints, defineKpi };\nexport type { UsaBarChartElement, UsaGaugeElement, UsaSparklineElement, UsaKpiElement };\n\nexport { defineAddToCart, defineCartDrawer, cartTotal, defineProductGallery, wrapIndex, defineCountdown, splitTime };\nexport type { UsaAddToCartElement, UsaCartDrawerElement, CartItem, UsaProductGalleryElement, UsaCountdownElement };\n\nexport { defineMessageList, defineReactions, parseReactions, defineNotificationBell, definePresence, PRESENCE_STATES, initials };\nexport type { UsaMessageListElement, ChatMessage, UsaReactionsElement, UsaNotificationBellElement, BellNotice, UsaPresenceElement, PresenceState };\n\nexport { defineLeaderboard, rankRows, defineXpBar, levelFor, defineBadgeWall, badgeProgress, definePrizeWheel, wheelAngle };\nexport type { UsaLeaderboardElement, LeaderRow, UsaXpBarElement, UsaBadgeWallElement, WallBadge, UsaPrizeWheelElement };\n\nexport { defineGlobe, project, parseMarkers, defineLocationCard, haversine, formatDistance };\nexport type { UsaGlobeElement, GlobeMarker, UsaLocationCardElement };\n\nexport { defineField, passwordStrength, defineOtp, sanitizeCode, defineUploadProgress, formatBytes };\nexport type { UsaFieldElement, UsaOtpElement, UsaUploadProgressElement };\n\nexport { defineChatComposer, defineSuggestionChips, parseChips, defineVoiceButton, waveBars };\nexport type { UsaChatComposerElement, UsaSuggestionChipsElement, UsaVoiceButtonElement };\n\nexport { defineCommandPalette, fuzzyMatch, keyLabels, matchesKeys, defineShortcut };\nexport type { UsaCommandPaletteElement, PaletteCommand, UsaShortcutElement };\n\n/** The widgets by release (tag → define function). */\nexport const WIDGETS: Record<string, Record<string, (tag?: string) => CustomElementConstructor | undefined>> = {\n '6.2': { 'usa-carousel': defineCarousel, 'usa-tab-bar': defineTabBar, 'usa-disclosure': defineDisclosure, 'usa-stories': defineStories },\n '6.3': { 'usa-toast-stack': defineToastStack, 'usa-modal': defineModal, 'usa-sheet': defineSheet, 'usa-menu': defineMenu },\n '6.4': { 'usa-progress-ring': defineProgressRing, 'usa-odometer': defineOdometer, 'usa-skeleton-reveal': defineSkeletonReveal, 'usa-star-rating': defineStarRating },\n '6.5': { 'usa-milestones': defineMilestones, 'usa-masonry-flow': defineMasonryFlow, 'usa-compare': defineCompare, 'usa-cube-gallery': defineCubeGallery },\n '6.6': { 'usa-dock': defineDock, 'usa-nav-morph': defineNavMorph, 'usa-menu-toggle': defineMenuToggle, 'usa-tip': defineTip },\n '6.7': { 'usa-stepper': defineStepper, 'usa-pagination': definePagination, 'usa-segmented': defineSegmented, 'usa-switch': defineSwitch },\n '6.8': { 'usa-kanban': defineKanban, 'usa-swipe-deck': defineSwipeDeck, 'usa-weather-card': defineWeatherCard, 'usa-pull-cord': definePullCord },\n '6.9': { 'usa-date-picker': defineDatePicker, 'usa-color-picker': defineColorPicker, 'usa-file-drop': defineFileDrop, 'usa-keyframe-editor': defineKeyframeEditor },\n '7.1': { 'usa-music-player': defineMusicPlayer, 'usa-volume-knob': defineVolumeKnob, 'usa-equalizer': defineEqualizer, 'usa-lyrics': defineLyrics },\n '7.2': { 'usa-bar-chart': defineBarChart, 'usa-gauge': defineGauge, 'usa-sparkline': defineSparkline, 'usa-kpi': defineKpi },\n '7.3': { 'usa-add-to-cart': defineAddToCart, 'usa-cart-drawer': defineCartDrawer, 'usa-product-gallery': defineProductGallery, 'usa-countdown': defineCountdown },\n '7.4': { 'usa-message-list': defineMessageList, 'usa-reactions': defineReactions, 'usa-notification-bell': defineNotificationBell, 'usa-presence': definePresence },\n '7.5': { 'usa-leaderboard': defineLeaderboard, 'usa-xp-bar': defineXpBar, 'usa-badge-wall': defineBadgeWall, 'usa-prize-wheel': definePrizeWheel },\n '7.6': { 'usa-globe': defineGlobe, 'usa-location-card': defineLocationCard },\n '7.7': { 'usa-field': defineField, 'usa-otp': defineOtp, 'usa-upload-progress': defineUploadProgress },\n '7.8': { 'usa-chat-composer': defineChatComposer, 'usa-suggestion-chips': defineSuggestionChips, 'usa-voice-button': defineVoiceButton },\n '7.9': { 'usa-command-palette': defineCommandPalette, 'usa-shortcut': defineShortcut },\n};\n\n/** Every widget tag, in release order. */\nexport const WIDGET_TAGS: string[] = Object.values(WIDGETS).flatMap((g) => Object.keys(g));\n\n/** Register every widget (or only those of one release, e.g. `'6.2'`) under its default tag. */\nexport function defineWidgets(release?: string): void {\n for (const [v, group] of Object.entries(WIDGETS)) if (!release || release === v) for (const [tag, fn] of Object.entries(group)) fn(tag);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-carousel': UsaCarouselElement;\n 'usa-tab-bar': UsaTabBarElement;\n 'usa-disclosure': UsaDisclosureElement;\n 'usa-stories': UsaStoriesElement;\n 'usa-toast-stack': UsaToastStackElement;\n 'usa-modal': UsaModalElement;\n 'usa-sheet': UsaSheetElement;\n 'usa-menu': UsaMenuElement;\n 'usa-progress-ring': UsaProgressRingElement;\n 'usa-odometer': UsaOdometerElement;\n 'usa-skeleton-reveal': UsaSkeletonRevealElement;\n 'usa-star-rating': UsaStarRatingElement;\n 'usa-milestones': UsaMilestonesElement;\n 'usa-masonry-flow': UsaMasonryFlowElement;\n 'usa-compare': UsaCompareElement;\n 'usa-cube-gallery': UsaCubeGalleryElement;\n 'usa-dock': UsaDockElement;\n 'usa-nav-morph': UsaNavMorphElement;\n 'usa-menu-toggle': UsaMenuToggleElement;\n 'usa-tip': UsaTipElement;\n 'usa-stepper': UsaStepperElement;\n 'usa-pagination': UsaPaginationElement;\n 'usa-segmented': UsaSegmentedElement;\n 'usa-switch': UsaSwitchElement;\n 'usa-kanban': UsaKanbanElement;\n 'usa-swipe-deck': UsaSwipeDeckElement;\n 'usa-weather-card': UsaWeatherCardElement;\n 'usa-pull-cord': UsaPullCordElement;\n 'usa-date-picker': UsaDatePickerElement;\n 'usa-color-picker': UsaColorPickerElement;\n 'usa-file-drop': UsaFileDropElement;\n 'usa-keyframe-editor': UsaKeyframeEditorElement;\n 'usa-music-player': UsaMusicPlayerElement;\n 'usa-volume-knob': UsaVolumeKnobElement;\n 'usa-equalizer': UsaEqualizerElement;\n 'usa-lyrics': UsaLyricsElement;\n 'usa-bar-chart': UsaBarChartElement;\n 'usa-gauge': UsaGaugeElement;\n 'usa-sparkline': UsaSparklineElement;\n 'usa-kpi': UsaKpiElement;\n 'usa-add-to-cart': UsaAddToCartElement;\n 'usa-cart-drawer': UsaCartDrawerElement;\n 'usa-product-gallery': UsaProductGalleryElement;\n 'usa-countdown': UsaCountdownElement;\n 'usa-message-list': UsaMessageListElement;\n 'usa-reactions': UsaReactionsElement;\n 'usa-notification-bell': UsaNotificationBellElement;\n 'usa-presence': UsaPresenceElement;\n 'usa-leaderboard': UsaLeaderboardElement;\n 'usa-xp-bar': UsaXpBarElement;\n 'usa-badge-wall': UsaBadgeWallElement;\n 'usa-prize-wheel': UsaPrizeWheelElement;\n 'usa-globe': UsaGlobeElement;\n 'usa-location-card': UsaLocationCardElement;\n 'usa-field': UsaFieldElement;\n 'usa-otp': UsaOtpElement;\n 'usa-upload-progress': UsaUploadProgressElement;\n 'usa-chat-composer': UsaChatComposerElement;\n 'usa-suggestion-chips': UsaSuggestionChipsElement;\n 'usa-voice-button': UsaVoiceButtonElement;\n 'usa-command-palette': UsaCommandPaletteElement;\n 'usa-shortcut': UsaShortcutElement;\n }\n}\n"],"names":["uid","css","esc"],"mappings":"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"}
1
+ {"version":3,"file":"widgets.js","sources":["../../src/components/widgets/shared.ts","../../src/components/widgets/carousel.ts","../../src/components/widgets/tab-bar.ts","../../src/components/widgets/disclosure.ts","../../src/components/widgets/stories.ts","../../src/components/widgets/overlay.ts","../../src/components/widgets/toast.ts","../../src/components/widgets/menu.ts","../../src/components/widgets/meters.ts","../../src/components/widgets/skeleton-reveal.ts","../../src/components/widgets/star-rating.ts","../../src/components/widgets/milestones.ts","../../src/components/widgets/masonry-flow.ts","../../src/components/widgets/compare.ts","../../src/components/widgets/cube-gallery.ts","../../src/components/widgets/dock.ts","../../src/components/widgets/nav-morph.ts","../../src/components/widgets/menu-toggle.ts","../../src/components/widgets/tip.ts","../../src/components/widgets/stepper.ts","../../src/components/widgets/pagination.ts","../../src/components/widgets/segmented.ts","../../src/components/widgets/switch.ts","../../src/components/widgets/kanban.ts","../../src/components/widgets/swipe-deck.ts","../../src/components/widgets/weather-card.ts","../../src/components/widgets/pull-cord.ts","../../src/components/widgets/date-picker.ts","../../src/components/widgets/color-picker.ts","../../src/components/widgets/file-drop.ts","../../src/components/widgets/keyframe-editor.ts","../../src/components/widgets/music-player.ts","../../src/components/widgets/volume-knob.ts","../../src/components/widgets/equalizer.ts","../../src/components/widgets/lyrics.ts","../../src/components/widgets/bar-chart.ts","../../src/components/widgets/gauge.ts","../../src/components/widgets/sparkline.ts","../../src/components/widgets/shared-figure.ts","../../src/components/widgets/kpi.ts","../../src/components/widgets/add-to-cart.ts","../../src/components/widgets/cart-drawer.ts","../../src/components/widgets/product-gallery.ts","../../src/components/widgets/countdown.ts","../../src/components/widgets/message-list.ts","../../src/components/widgets/reactions.ts","../../src/components/widgets/notification-bell.ts","../../src/components/widgets/presence.ts","../../src/components/widgets/leaderboard.ts","../../src/components/widgets/xp-bar.ts","../../src/components/widgets/badge-wall.ts","../../src/components/widgets/prize-wheel.ts","../../src/components/widgets/globe.ts","../../src/components/widgets/location-card.ts","../../src/components/widgets/field.ts","../../src/components/widgets/otp.ts","../../src/components/widgets/upload-progress.ts","../../src/components/widgets/chat-composer.ts","../../src/components/widgets/suggestion-chips.ts","../../src/components/widgets/voice-button.ts","../../src/components/widgets/command-palette.ts","../../src/components/widgets/shortcut.ts","../../src/components/widgets/clock-control.ts","../../src/components/widgets/hydrate.ts","../../src/components/widgets/red-envelope.ts","../../src/components/widgets/festival-banner.ts","../../src/components/widgets/index.ts"],"sourcesContent":["/** Helpers shared by the 6.x widgets (`motionary/components/widgets`). */\nexport const clampN = (v: number, a: number, b: number): number => Math.min(b, Math.max(a, v));\n\n/** Children of `el` that are elements and not created by the widget itself. */\nexport const ownChildren = (el: Element, skip = '[data-usa-part]'): HTMLElement[] =>\n Array.from(el.children).filter((c): c is HTMLElement => c instanceof HTMLElement && !c.matches(skip));\n\n/** Create a part element (marked so re-mounts can find / skip it). */\nexport function part<K extends keyof HTMLElementTagNameMap>(tag: K, cls: string, attrs: Record<string, string> = {}, html = ''): HTMLElementTagNameMap[K] {\n const n = document.createElement(tag);\n n.className = cls;\n n.setAttribute('data-usa-part', '');\n for (const [k, v] of Object.entries(attrs)) n.setAttribute(k, v);\n if (html) n.innerHTML = html;\n return n;\n}\n\n/** Remove the parts a previous mount created. */\nexport const dropParts = (el: Element): void => el.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n\nlet uid = 0;\n/** A document-unique id with a prefix. */\nexport const nextId = (p: string): string => `${p}-${++uid}`;\n\n/** Roving arrow-key focus over `items` (horizontal or vertical); returns the new index or -1. */\nexport function arrowIndex(e: KeyboardEvent, i: number, n: number, vertical = false): number {\n const prev = vertical ? 'ArrowUp' : 'ArrowLeft';\n const next = vertical ? 'ArrowDown' : 'ArrowRight';\n if (e.key === prev) return (i - 1 + n) % n;\n if (e.key === next) return (i + 1) % n;\n if (e.key === 'Home') return 0;\n if (e.key === 'End') return n - 1;\n return -1;\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, ownChildren, part, dropParts } from './shared';\nimport css from './carousel.css?raw';\n\n/**\n * `<usa-carousel>` (6.2) — swipeable carousel / slider. Each child is a slide.\n * Attributes: `effect` (`slide` · `fade` · `scale` · `cards` — 3D coverflow),\n * `autoplay` (ms; pauses on hover, focus, when off screen and under reduced\n * motion), `loop`, `index`, `label` (\"Carousel\"), `no-controls`, `no-dots`.\n * Drag / swipe with a pointer, arrow keys when focused. API: `next()`,\n * `prev()`, `goTo(i)`, `index`, `length`. Events: `usa:change` (`{ index, from }`).\n * Reduced motion: slides switch without movement.\n */\nexport interface UsaCarouselElement extends UsaElement {\n index: number;\n readonly length: number;\n next(): void;\n prev(): void;\n goTo(i: number): void;\n}\n\nexport const CAROUSEL_EFFECTS = ['slide', 'fade', 'scale', 'cards'] as const;\n\nexport function defineCarousel(tag = 'usa-carousel'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCarousel extends Base {\n static get observedAttributes(): string[] {\n return ['effect', 'autoplay', 'loop', 'no-controls', 'no-dots'];\n }\n private _i = 0;\n private _slides: HTMLElement[] = [];\n private _track: HTMLElement | null = null;\n private _timer = 0;\n private _hold = false;\n private _dots: HTMLButtonElement[] = [];\n\n get length(): number {\n return this._slides.length;\n }\n get index(): number {\n return this._i;\n }\n set index(v: number) {\n this.goTo(v);\n }\n get effect(): string {\n const e = this.str('effect', 'slide');\n return (CAROUSEL_EFFECTS as readonly string[]).includes(e) ? e : 'slide';\n }\n\n mount(): void {\n this.dataset.effect = this.effect; // (not the observed attribute: no re-mount loop)\n this.toggleAttribute('data-reduced', this.reduced);\n const old = this.querySelector<HTMLElement>(':scope > .usa-carousel-viewport');\n this._slides = old ? ownChildren(old.firstElementChild as HTMLElement) : ownChildren(this);\n dropParts(this);\n const vp = part('div', 'usa-carousel-viewport', { 'aria-live': this.num('autoplay', 0) ? 'off' : 'polite' });\n const track = part('div', 'usa-carousel-track');\n this._track = track;\n vp.append(track);\n const n = this._slides.length;\n this._slides.forEach((s, i) => {\n s.setAttribute('role', 'group');\n s.setAttribute('aria-roledescription', 'slide');\n s.setAttribute('aria-label', `${i + 1} of ${n}`);\n track.append(s);\n });\n this.prepend(vp);\n this.setAttribute('role', 'region');\n this.setAttribute('aria-roledescription', 'carousel');\n this.setAttribute('aria-label', this.str('label', 'Carousel'));\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (n > 1 && !this.flag('no-controls')) {\n const prev = part('button', 'usa-carousel-nav usa-carousel-prev', { type: 'button', 'aria-label': 'Previous slide' }, '‹');\n const next = part('button', 'usa-carousel-nav usa-carousel-next', { type: 'button', 'aria-label': 'Next slide' }, '›');\n this.listen(prev, 'click', () => this.prev());\n this.listen(next, 'click', () => this.next());\n this.append(prev, next);\n }\n this._dots = [];\n if (n > 1 && !this.flag('no-dots')) {\n const dots = part('div', 'usa-carousel-dots', { role: 'group', 'aria-label': 'Choose slide' });\n for (let i = 0; i < n; i++) {\n const d = part('button', 'usa-carousel-dot', { type: 'button', 'aria-label': `Slide ${i + 1}` });\n this.listen(d, 'click', () => this.goTo(i));\n this._dots.push(d);\n dots.append(d);\n }\n this.append(dots);\n }\n this._i = clampN(Math.round(this.num('index', 0)), 0, Math.max(0, n - 1));\n this.layout(0);\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight') (e.preventDefault(), this.next());\n else if (e.key === 'ArrowLeft') (e.preventDefault(), this.prev());\n });\n this.drag(vp);\n const ms = this.num('autoplay', 0);\n if (ms > 0 && n > 1 && !this.reduced) {\n let visible = true;\n this.inView((v) => (visible = v));\n const pause = (on: boolean) => () => (this._hold = on);\n this.listen(this, 'pointerenter', pause(true));\n this.listen(this, 'pointerleave', pause(false));\n this.listen(this, 'focusin', pause(true));\n this.listen(this, 'focusout', pause(false));\n this._timer = window.setInterval(() => {\n if (visible && !this._hold && !document.hidden) this.next();\n }, Math.max(1200, ms));\n this.onCleanup(() => clearInterval(this._timer));\n }\n }\n\n private drag(vp: HTMLElement): void {\n let x0 = 0;\n let dx = 0;\n let id = -1;\n this.listen(vp, 'pointerdown', (e: PointerEvent) => {\n if (this.length < 2 || (e.target as Element).closest('button,a,input')) return;\n id = e.pointerId;\n x0 = e.clientX;\n dx = 0;\n this.setAttribute('data-dragging', '');\n });\n this.listen(window, 'pointermove', (e: PointerEvent) => {\n if (e.pointerId !== id) return;\n dx = e.clientX - x0;\n this.layout(dx / Math.max(1, vp.clientWidth));\n });\n const end = (e: PointerEvent) => {\n if (e.pointerId !== id) return;\n id = -1;\n this.removeAttribute('data-dragging');\n const w = Math.max(1, vp.clientWidth);\n if (Math.abs(dx) > w * 0.18) dx < 0 ? this.next() : this.prev();\n else this.layout(0);\n };\n this.listen(window, 'pointerup', end);\n this.listen(window, 'pointercancel', end);\n }\n\n /** Position the slides (`drag` = fraction of a slide the pointer moved). */\n private layout(drag: number): void {\n const n = this.length;\n const i = this._i;\n const fx = this.effect;\n if (this._track) this._track.style.transform = fx === 'slide' ? `translateX(${(-i + drag) * 100}%)` : '';\n this._slides.forEach((s, k) => {\n let off = k - i + drag;\n if (this.flag('loop') && n > 2) {\n if (off > n / 2) off -= n;\n if (off < -n / 2) off += n;\n }\n const active = k === i;\n s.toggleAttribute('data-active', active);\n s.setAttribute('aria-hidden', String(!active));\n s.inert = !active;\n if (fx === 'slide') {\n s.style.transform = s.style.opacity = s.style.zIndex = s.style.filter = '';\n return;\n }\n const a = Math.abs(off);\n if (fx === 'fade') {\n s.style.opacity = String(clampN(1 - a, 0, 1));\n s.style.transform = '';\n } else if (fx === 'scale') {\n s.style.opacity = String(clampN(1 - a, 0, 1));\n s.style.transform = `scale(${1 + Math.min(1, a) * (off < 0 ? 0.12 : -0.12)})`;\n } else {\n s.style.opacity = a > 2.2 ? '0' : String(1 - Math.min(a, 2) * 0.28);\n s.style.transform = `translateX(${off * 58}%) translateZ(${-a * 140}px) rotateY(${clampN(-off * 38, -60, 60)}deg)`;\n s.style.filter = a > 0.5 ? `brightness(${1 - Math.min(a, 2) * 0.18})` : '';\n }\n s.style.zIndex = String(100 - Math.round(a * 10));\n });\n this._dots.forEach((d, k) => d.setAttribute('aria-current', String(k === i)));\n }\n\n goTo(to: number): void {\n const n = this.length;\n if (!n) return;\n const t = this.flag('loop') ? ((Math.round(to) % n) + n) % n : clampN(Math.round(to), 0, n - 1);\n const from = this._i;\n this._i = t;\n this.layout(0);\n if (t !== from) this.emit('change', { index: t, from });\n }\n next(): void {\n this.goTo(this._i + 1 >= this.length && !this.flag('loop') ? 0 : this._i + 1);\n }\n prev(): void {\n this.goTo(this._i - 1 < 0 && !this.flag('loop') ? this.length - 1 : this._i - 1);\n }\n }\n return UsaCarousel as unknown as CustomElementConstructor;\n },\n { id: 'carousel', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part, nextId, arrowIndex } from './shared';\nimport css from './tab-bar.css?raw';\n\n/**\n * `<usa-tab-bar>` (6.2) — tabs with an animated indicator that stretches\n * from the old tab to the new one (leading edge first, then the trailing edge\n * catches up). Children: `<button>` tabs, and optional panels marked\n * `data-panel` (in the same order). Attributes: `indicator` (`pill` ·\n * `underline` · `glow` · `gooey`), `selected` (index), `label`. Arrow keys,\n * Home/End. API: `select(i)`, `selected`. Events: `usa:change` (`{ index, from }`).\n * Panels slide in from the side of travel. Reduced motion: no stretch / slide.\n */\nexport interface UsaTabBarElement extends UsaElement {\n selected: number;\n select(i: number): void;\n}\n\nexport const TAB_INDICATORS = ['pill', 'underline', 'glow', 'gooey'] as const;\n\nexport function defineTabBar(tag = 'usa-tab-bar'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaTabBar extends Base {\n static get observedAttributes(): string[] {\n return ['indicator'];\n }\n private _tabs: HTMLElement[] = [];\n private _panels: HTMLElement[] = [];\n private _ink: HTMLElement | null = null;\n private _i = 0;\n\n get selected(): number {\n return this._i;\n }\n set selected(v: number) {\n this.select(v);\n }\n\n mount(): void {\n const ind = this.str('indicator', 'pill');\n this.dataset.indicator = (TAB_INDICATORS as readonly string[]).includes(ind) ? ind : 'pill';\n let list = this.querySelector<HTMLElement>(':scope > .usa-tab-bar-list');\n if (!list) {\n list = part('div', 'usa-tab-bar-list');\n this.prepend(list);\n }\n list.setAttribute('role', 'tablist');\n list.setAttribute('aria-label', this.str('label', 'Tabs'));\n const kids = ownChildren(this);\n this._panels = kids.filter((k) => k.hasAttribute('data-panel'));\n for (const k of kids) if (!k.hasAttribute('data-panel') && k.matches('button,[data-tab]')) list.append(k);\n this._tabs = Array.from(list.children).filter((c): c is HTMLElement => c instanceof HTMLElement && !c.classList.contains('usa-tab-bar-ink'));\n this._ink = list.querySelector('.usa-tab-bar-ink') || part('span', 'usa-tab-bar-ink', { 'aria-hidden': 'true' });\n list.prepend(this._ink);\n this._tabs.forEach((t, i) => {\n t.setAttribute('role', 'tab');\n if (t.localName === 'button' && !t.hasAttribute('type')) t.setAttribute('type', 'button');\n t.id ||= nextId('usa-tab');\n const p = this._panels[i];\n if (p) {\n p.id ||= nextId('usa-tabpanel');\n p.classList.add('usa-tab-bar-panel');\n p.setAttribute('role', 'tabpanel');\n p.setAttribute('aria-labelledby', t.id);\n p.tabIndex = 0;\n t.setAttribute('aria-controls', p.id);\n }\n this.listen(t, 'click', () => this.select(i));\n });\n this.listen(list, 'keydown', (e: KeyboardEvent) => {\n const n = arrowIndex(e, this._i, this._tabs.length);\n if (n < 0) return;\n e.preventDefault();\n this.select(n);\n this._tabs[n].focus();\n });\n this._i = Math.min(Math.max(0, Math.round(this.num('selected', 0))), Math.max(0, this._tabs.length - 1));\n this.sync(-1);\n if (typeof ResizeObserver === 'function') {\n const ro = new ResizeObserver(() => this.place());\n ro.observe(list);\n this.onCleanup(() => ro.disconnect());\n }\n }\n\n private rect(i: number): [number, number] {\n const t = this._tabs[i];\n return t ? [t.offsetLeft, t.offsetWidth] : [0, 0];\n }\n private place(): void {\n if (!this._ink) return;\n const [x, w] = this.rect(this._i);\n this._ink.style.transform = `translateX(${x}px)`;\n this._ink.style.width = `${w}px`;\n }\n\n private sync(from: number): void {\n this._tabs.forEach((t, k) => {\n t.setAttribute('aria-selected', String(k === this._i));\n t.tabIndex = k === this._i ? 0 : -1;\n });\n this._panels.forEach((p, k) => (p.hidden = k !== this._i));\n this.place();\n if (from < 0 || from === this._i || !this._ink || this.reduced) return;\n // stretchy travel: the leading edge arrives first, the trailing edge follows\n const [x0, w0] = this.rect(from);\n const [x1, w1] = this.rect(this._i);\n const right = x1 > x0;\n const mid = right ? { transform: `translateX(${x0}px)`, width: `${x1 + w1 - x0}px` } : { transform: `translateX(${x1}px)`, width: `${x0 + w0 - x1}px` };\n this.motion(this._ink, [{ transform: `translateX(${x0}px)`, width: `${w0}px` }, { ...mid, offset: 0.45 }, { transform: `translateX(${x1}px)`, width: `${w1}px` }], { duration: 480, easing: 'cubic-bezier(.22,1,.36,1)' });\n const p = this._panels[this._i];\n if (p) this.motion(p, [{ opacity: 0, transform: `translateX(${right ? 24 : -24}px)` }, { opacity: 1, transform: 'none' }], { duration: 320, easing: 'cubic-bezier(.22,1,.36,1)' });\n }\n\n select(i: number): void {\n const n = Math.min(Math.max(0, Math.round(i)), this._tabs.length - 1);\n if (n === this._i || n < 0) return;\n const from = this._i;\n this._i = n;\n this.sync(from);\n this.emit('change', { index: n, from });\n }\n }\n return UsaTabBar as unknown as CustomElementConstructor;\n },\n { id: 'tab-bar', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { springEasing } from '../physics/spring';\nimport css from './disclosure.css?raw';\n\n/**\n * `<usa-disclosure>` (6.2) — accordion 2.0 on native `<details>`: the\n * content springs open / closed (height + fade), the chevron flips with an\n * overshoot. Children: `<details><summary>…</summary>…</details>`.\n * Attributes: `multiple` (allow several open; default: one at a time),\n * `spring` (preset, default `gentle`), `variant=\"cards\"`. API: `openAll()`,\n * `closeAll()`, `toggle(i, force?)`. Events: `usa:toggle` (`{ index, open }`).\n * Native semantics (keyboard, find-in-page) kept. Reduced motion: instant.\n */\nexport interface UsaDisclosureElement extends UsaElement {\n toggle(i: number, force?: boolean): void;\n openAll(): void;\n closeAll(): void;\n}\n\nexport function defineDisclosure(tag = 'usa-disclosure'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaDisclosure extends Base {\n private _anims = new WeakMap<HTMLDetailsElement, Animation>();\n get items(): HTMLDetailsElement[] {\n return Array.from(this.children).filter((c): c is HTMLDetailsElement => c.localName === 'details');\n }\n mount(): void {\n this.listen(this, 'click', (e: MouseEvent) => {\n const s = (e.target as Element).closest('summary');\n const d = s?.parentElement as HTMLDetailsElement | null;\n if (!s || !d || d.parentElement !== this) return;\n e.preventDefault();\n this.set(d, !d.open);\n });\n }\n private set(d: HTMLDetailsElement, open: boolean): void {\n if (open && !this.flag('multiple')) for (const o of this.items) if (o !== d && o.open) this.set(o, false);\n if (d.open === open && !this._anims.get(d)) return;\n const summary = d.querySelector('summary');\n const closedH = summary ? summary.offsetHeight : 0;\n const startH = d.offsetHeight;\n this._anims.get(d)?.cancel();\n if (open) d.open = true;\n const endH = open ? d.scrollHeight : closedH;\n const sp = springEasing(this.str('spring', 'gentle'));\n const a = this.reduced ? null : this.motion(d, [{ height: `${startH}px` }, { height: `${endH}px` }], { duration: Math.min(sp.duration, 700), easing: sp.easing, fill: 'forwards' });\n const body = Array.from(d.children).filter((c) => c.localName !== 'summary');\n if (open && !this.reduced) body.forEach((b) => this.motion(b, [{ opacity: 0, transform: 'translateY(-6px)' }, { opacity: 1, transform: 'none' }], { duration: 300, delay: 60, easing: 'ease-out' }));\n const done = () => {\n this._anims.delete(d);\n if (!open) d.open = false;\n a?.cancel();\n };\n if (a) {\n this._anims.set(d, a);\n a.finished.then(() => this._anims.get(d) === a && done(), () => undefined);\n } else done();\n this.emit('toggle', { index: this.items.indexOf(d), open });\n }\n toggle(i: number, force?: boolean): void {\n const d = this.items[i];\n if (d) this.set(d, force ?? !d.open);\n }\n openAll(): void {\n this.items.forEach((d) => (d.open = true));\n }\n closeAll(): void {\n this.items.forEach((d) => this.set(d, false));\n }\n }\n return UsaDisclosure as unknown as CustomElementConstructor;\n },\n { id: 'disclosure', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part, dropParts } from './shared';\nimport css from './stories.css?raw';\n\n/**\n * `<usa-stories>` (6.2) — story viewer: segmented progress bars at the top,\n * auto-advance, tap the left / right third to go back / forward, press and\n * hold to pause, a pause button (WCAG 2.2.2). Each child is one story.\n * Attributes: `duration` (ms per story, 5000), `loop`, `paused`.\n * API: `next()`, `prev()`, `goTo(i)`, `pause()`, `play()`, `index`.\n * Events: `usa:change` (`{ index }`), `usa:end`. Reduced motion: no\n * auto-advance (paused until the user navigates), cross-fade only.\n */\nexport interface UsaStoriesElement extends UsaElement {\n readonly index: number;\n next(): void;\n prev(): void;\n goTo(i: number): void;\n pause(): void;\n play(): void;\n}\n\nexport function defineStories(tag = 'usa-stories'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaStories extends Base {\n static get observedAttributes(): string[] {\n return ['duration', 'loop'];\n }\n private _i = 0;\n private _items: HTMLElement[] = [];\n private _bars: HTMLElement[] = [];\n private _fill: Animation | null = null;\n private _btn: HTMLButtonElement | null = null;\n get index(): number {\n return this._i;\n }\n mount(): void {\n dropParts(this);\n this._items = ownChildren(this);\n const bars = part('div', 'usa-stories-bars', { 'aria-hidden': 'true' });\n this._bars = this._items.map(() => {\n const b = part('div', 'usa-stories-bar', {}, '<i></i>');\n bars.append(b);\n return b;\n });\n this._btn = part('button', 'usa-stories-toggle', { type: 'button' });\n this.listen(this._btn, 'click', (e: Event) => {\n e.stopPropagation();\n this.hasAttribute('paused') ? this.play() : this.pause();\n });\n this.append(bars, this._btn);\n this.setAttribute('role', 'region');\n this.setAttribute('aria-roledescription', 'stories');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', 'Stories');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (this.reduced) this.setAttribute('paused', '');\n let held = false;\n let downAt = 0;\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n if ((e.target as Element).closest('button,a')) return;\n downAt = performance.now();\n held = !this.hasAttribute('paused');\n if (held) this._fill?.pause();\n });\n this.listen(this, 'pointerup', (e: PointerEvent) => {\n if ((e.target as Element).closest('button,a') || !downAt) return;\n const long = performance.now() - downAt > 350;\n downAt = 0;\n if (held && !this.hasAttribute('paused')) this._fill?.play();\n if (long) return;\n const r = this.getBoundingClientRect();\n e.clientX - r.left < r.width / 3 ? this.prev() : this.next();\n });\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight') this.next();\n else if (e.key === 'ArrowLeft') this.prev();\n else if (e.key === ' ') (e.preventDefault(), this.hasAttribute('paused') ? this.play() : this.pause());\n });\n this.onCleanup(() => this._fill?.cancel());\n this.goTo(Math.min(this._i, Math.max(0, this._items.length - 1)), true);\n }\n private label(): void {\n if (this._btn) {\n const p = this.hasAttribute('paused');\n this._btn.textContent = p ? '▶' : '❚❚';\n this._btn.setAttribute('aria-label', p ? 'Play stories' : 'Pause stories');\n }\n }\n goTo(i: number, initial = false): void {\n const n = this._items.length;\n if (!n) return;\n if (i >= n && !this.flag('loop')) {\n this.emit('end');\n this.pause();\n return;\n }\n const t = ((i % n) + n) % n;\n const changed = t !== this._i || initial;\n this._i = t;\n this._items.forEach((s, k) => {\n s.toggleAttribute('data-active', k === t);\n s.setAttribute('aria-hidden', String(k !== t));\n });\n this._bars.forEach((b, k) => b.toggleAttribute('data-done', k < t));\n this._fill?.cancel();\n const fillEl = this._bars[t]?.firstElementChild as HTMLElement | undefined;\n this._fill = fillEl ? fillEl.animate?.([{ transform: 'scaleX(0)' }, { transform: 'scaleX(1)' }], { duration: Math.max(800, this.num('duration', 5000)), fill: 'forwards' }) ?? null : null;\n if (this._fill) {\n const a = this._fill;\n a.onfinish = () => this._fill === a && this.goTo(this._i + 1);\n if (this.hasAttribute('paused')) a.pause();\n }\n this.label();\n if (changed && !initial) this.emit('change', { index: t });\n }\n next(): void {\n this.goTo(this._i + 1);\n }\n prev(): void {\n this.goTo(Math.max(0, this._i - 1));\n }\n pause(): void {\n this.setAttribute('paused', '');\n this._fill?.pause();\n this.label();\n }\n play(): void {\n this.removeAttribute('paused');\n if (this._fill?.playState === 'finished') this.goTo(this._i + 1 >= this._items.length ? 0 : this._i + 1);\n else this._fill?.play();\n this.label();\n }\n }\n return UsaStories as unknown as CustomElementConstructor;\n },\n { id: 'stories', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part } from './shared';\nimport css from './overlay.css?raw';\n\n/**\n * `<usa-modal>` and `<usa-sheet>` (6.3) — modal overlays on the native\n * `<dialog>` (top layer, focus trap, Esc, inert page), with animated open\n * and close and a fading, blurred backdrop.\n *\n * - `<usa-modal effect=\"scale | slide-up | flip | origin\">` — `origin`\n * grows the dialog out of the button that opened it.\n * - `<usa-sheet side=\"right | left | bottom | top\">` — a side sheet; a\n * bottom sheet can be dragged down to dismiss (`<div data-handle>` or the\n * built-in grab handle).\n *\n * Attributes: `open` (initial), `label`, `persistent` (backdrop click / Esc\n * don't close). Any element with `data-usa-open=\"<id>\"` opens the overlay\n * with that id; `[data-usa-close]` inside closes it. API: `show(trigger?)`,\n * `close(value?)`, `toggle()`, `opened`. Events: `usa:open`, `usa:close`\n * (`{ value }`). Focus returns to the opener. Reduced motion: no movement,\n * a short fade.\n */\nexport interface UsaOverlayElement extends UsaElement {\n readonly opened: boolean;\n readonly returnValue: string;\n show(trigger?: Element | null): void;\n close(value?: string): Promise<void>;\n toggle(): void;\n}\nexport type UsaModalElement = UsaOverlayElement;\nexport type UsaSheetElement = UsaOverlayElement;\n\nexport const MODAL_EFFECTS = ['scale', 'slide-up', 'flip', 'origin'] as const;\nexport const SHEET_SIDES = ['right', 'left', 'bottom', 'top'] as const;\n\nconst EASE_OUT = 'cubic-bezier(.22,1,.36,1)';\n\n// one delegated listener for [data-usa-open] / [data-usa-toast] triggers anywhere on the page\nlet delegated = false;\nexport function delegateTriggers(): void {\n if (delegated || typeof document === 'undefined') return;\n delegated = true;\n document.addEventListener('click', (e) => {\n const t = (e.target as Element | null)?.closest?.('[data-usa-open]');\n if (!t) return;\n const target = document.getElementById(t.getAttribute('data-usa-open') || '') as (HTMLElement & Partial<UsaOverlayElement>) | null;\n if (target && typeof target.show === 'function') {\n e.preventDefault();\n if (target.opened) void target.close?.();\n else target.show(t);\n }\n });\n}\n\nfunction defineOverlay(tag: string, kind: 'modal' | 'sheet'): CustomElementConstructor | undefined {\n delegateTriggers();\n return defineElement(\n tag,\n (Base) => {\n class UsaOverlay extends Base {\n static get observedAttributes(): string[] {\n return kind === 'modal' ? ['effect'] : ['side'];\n }\n private _dlg: HTMLDialogElement | null = null;\n private _panel: HTMLElement | null = null;\n private _open = false;\n private _ret: Element | null = null;\n private _origin: DOMRect | null = null;\n private _value = '';\n private _closing: Promise<void> | null = null;\n\n get opened(): boolean {\n return this._open;\n }\n get returnValue(): string {\n return this._value;\n }\n\n mount(): void {\n let d = this.querySelector<HTMLDialogElement>(':scope > dialog.usa-ov');\n if (!d) {\n d = part('dialog', `usa-ov usa-${kind}-panel`);\n const body = part('div', 'usa-ov-body');\n body.append(...ownChildren(this));\n d.append(body);\n this.append(d);\n }\n this._dlg = d;\n this._panel = d.querySelector('.usa-ov-body');\n if (kind === 'modal') {\n const ef = this.str('effect', 'scale');\n this.dataset.effect = (MODAL_EFFECTS as readonly string[]).includes(ef) ? ef : 'scale';\n } else {\n const side = this.str('side', 'right');\n this.dataset.side = (SHEET_SIDES as readonly string[]).includes(side) ? side : 'right';\n if (this.dataset.side === 'bottom' && this._panel && !this._panel.querySelector('[data-handle]')) this._panel.prepend(part('div', 'usa-ov-grab', { 'data-handle': '', 'aria-hidden': 'true' }));\n this.drag();\n }\n if (!d.hasAttribute('aria-labelledby')) d.setAttribute('aria-label', this.str('label', kind === 'modal' ? 'Dialog' : 'Panel'));\n this.listen(d, 'cancel', (e: Event) => {\n e.preventDefault();\n if (!this.flag('persistent')) void this.close();\n });\n this.listen(d, 'click', (e: MouseEvent) => {\n const t = e.target as Element;\n const c = t.closest?.('[data-usa-close]');\n if (c) return void this.close(c.getAttribute('data-usa-close') || '');\n if (t === d && !this.flag('persistent')) void this.close(); // the ::backdrop\n });\n if (this.flag('open') && !this._open) this.show();\n }\n\n unmount(): void {\n if (this._open && this._dlg?.open) this._dlg.close?.();\n this._open = false;\n }\n\n private frames(opening: boolean): Keyframe[] {\n const fade: Keyframe[] = [{ opacity: 0 }, { opacity: 1 }];\n if (this.reduced) return opening ? fade : [...fade].reverse();\n let f: Keyframe[];\n if (kind === 'sheet') {\n const s = this.dataset.side;\n const off = s === 'left' ? 'translateX(-100%)' : s === 'bottom' ? 'translateY(100%)' : s === 'top' ? 'translateY(-100%)' : 'translateX(100%)';\n f = [{ transform: off }, { transform: 'none' }];\n } else {\n const e = this.dataset.effect;\n const o = this._origin;\n const r = this._dlg?.getBoundingClientRect();\n if (e === 'origin' && o && r && r.width) {\n const dx = o.left + o.width / 2 - (r.left + r.width / 2);\n const dy = o.top + o.height / 2 - (r.top + r.height / 2);\n f = [{ transform: `translate(${dx}px,${dy}px) scale(${Math.max(0.05, o.width / r.width).toFixed(3)},${Math.max(0.05, o.height / r.height).toFixed(3)})`, opacity: 0, borderRadius: '40px' }, { transform: 'none', opacity: 1 }];\n } else if (e === 'slide-up') f = [{ transform: 'translateY(48px)', opacity: 0 }, { transform: 'none', opacity: 1 }];\n else if (e === 'flip') f = [{ transform: 'perspective(900px) rotateX(-28deg) translateY(30px)', opacity: 0 }, { transform: 'none', opacity: 1 }];\n else f = [{ transform: 'scale(.88)', opacity: 0 }, { transform: 'scale(1.015)', opacity: 1, offset: 0.7 }, { transform: 'none', opacity: 1 }];\n }\n return opening ? f : [f[0], f[f.length - 1]].reverse();\n }\n\n private backdrop(opening: boolean): void {\n if (!this._dlg) return;\n const k: Keyframe[] = [{ opacity: 0 }, { opacity: 1 }];\n try {\n this._dlg.animate?.(opening ? k : k.reverse(), { duration: opening ? 280 : 200, pseudoElement: '::backdrop', fill: 'forwards' } as KeyframeAnimationOptions);\n } catch {\n /* no ::backdrop animation support */\n }\n }\n\n show(trigger?: Element | null): void {\n const d = this._dlg;\n if (!d || this._open) return;\n this._open = true;\n this._ret = trigger || (document.activeElement as Element | null);\n this._origin = trigger ? trigger.getBoundingClientRect() : null;\n if (typeof d.showModal === 'function') {\n try {\n d.showModal();\n } catch {\n d.setAttribute('open', '');\n }\n } else d.setAttribute('open', '');\n this.setAttribute('data-open', '');\n this.backdrop(true);\n this.motion(d, this.frames(true), { duration: this.reduced ? 150 : kind === 'sheet' ? 420 : 460, easing: EASE_OUT });\n const f = d.querySelector<HTMLElement>('[autofocus]') || d.querySelector<HTMLElement>('button,[href],input,select,textarea,[tabindex]:not([tabindex=\"-1\"])');\n f?.focus?.();\n this.emit('open', { trigger: trigger || null });\n }\n\n close(value = ''): Promise<void> {\n const d = this._dlg;\n if (!d || !this._open) return Promise.resolve();\n if (this._closing) return this._closing;\n this._value = value;\n this.backdrop(false);\n const a = this.motion(d, this.frames(false), { duration: this.reduced ? 120 : 260, easing: 'cubic-bezier(.4,0,1,1)', fill: 'forwards' });\n const done = () => {\n this._closing = null;\n this._open = false;\n this.removeAttribute('data-open');\n if (d.open && typeof d.close === 'function') d.close(value);\n else d.removeAttribute('open');\n a?.cancel?.();\n d.style.transform = '';\n (this._ret as HTMLElement | null)?.focus?.();\n this.emit('close', { value });\n };\n this._closing = a ? a.finished.then(done, done) : Promise.resolve().then(done);\n return this._closing;\n }\n\n toggle(): void {\n if (this._open) void this.close();\n else this.show();\n }\n\n // bottom sheet: drag down to dismiss, springs back otherwise\n private drag(): void {\n const p = this._panel;\n const d = this._dlg;\n if (!p || !d || this.dataset.side !== 'bottom') return;\n let y0 = -1;\n let dy = 0;\n let t0 = 0;\n this.listen(p, 'pointerdown', (e: PointerEvent) => {\n if (!(e.target as Element).closest('[data-handle]')) return;\n y0 = e.clientY;\n dy = 0;\n t0 = performance.now();\n (e.target as Element).setPointerCapture?.(e.pointerId);\n });\n this.listen(p, 'pointermove', (e: PointerEvent) => {\n if (y0 < 0) return;\n dy = Math.max(0, e.clientY - y0);\n d.style.transform = `translateY(${dy}px)`;\n });\n const up = () => {\n if (y0 < 0) return;\n y0 = -1;\n const v = dy / Math.max(1, performance.now() - t0);\n if (dy > d.offsetHeight * 0.3 || v > 0.6) void this.close();\n else {\n this.motion(d, [{ transform: `translateY(${dy}px)` }, { transform: 'translateY(-6px)', offset: 0.6 }, { transform: 'none' }], { duration: 380, easing: EASE_OUT });\n d.style.transform = '';\n }\n };\n this.listen(p, 'pointerup', up);\n this.listen(p, 'pointercancel', up);\n }\n }\n return UsaOverlay as unknown as CustomElementConstructor;\n },\n { id: 'overlay', text: css }\n );\n}\n\nexport const defineModal = (tag = 'usa-modal'): CustomElementConstructor | undefined => defineOverlay(tag, 'modal');\nexport const defineSheet = (tag = 'usa-sheet'): CustomElementConstructor | undefined => defineOverlay(tag, 'sheet');\n","import { defineElement, type UsaElement } from '../base';\nimport { part } from './shared';\nimport { delegateTriggers } from './overlay';\nimport css from './toast.css?raw';\n\n/**\n * `<usa-toast-stack>` (6.3) — notifications that pile up into a collapsed\n * stack (newest in front, older ones peeking behind), fan out on hover or\n * focus, auto-dismiss (paused while hovered), and can be swiped away.\n *\n * Attributes: `position` (`bottom-right` · `bottom-left` · `bottom-center` ·\n * `top-right` · `top-left` · `top-center`), `duration` (ms, `0` = sticky),\n * `max` (visible in the stack), `contained` (positioned inside its parent\n * instead of the viewport). API: `show(message | options)` → id,\n * `dismiss(id)`, `clear()`; module helper `stackToast()` uses the first stack on\n * the page (creating one). Any `[data-usa-toast=\"message\"]` element shows a\n * toast on click (`data-usa-toast-type`, `data-usa-target`). Events:\n * `usa:show`, `usa:dismiss` (`{ id, reason }`). Toasts live in a polite live\n * region. Reduced motion: no slide or swipe animation.\n */\nexport interface StackToastOptions {\n message?: string;\n title?: string;\n type?: 'info' | 'success' | 'warning' | 'error';\n /** ms; 0 = stays until dismissed. Defaults to the stack's `duration`. */\n duration?: number;\n /** An action button. */\n action?: { label: string; onClick?: () => void };\n}\nexport interface UsaToastStackElement extends UsaElement {\n show(input: string | StackToastOptions): string;\n dismiss(id: string, reason?: string): void;\n clear(): void;\n readonly count: number;\n}\n\nexport const TOAST_POSITIONS = ['bottom-right', 'bottom-left', 'bottom-center', 'top-right', 'top-left', 'top-center'] as const;\nconst ICONS: Record<string, string> = { info: 'ℹ', success: '✓', warning: '!', error: '✕' };\nlet tid = 0;\n\nexport function defineToastStack(tag = 'usa-toast-stack'): CustomElementConstructor | undefined {\n installToastTriggers();\n return defineElement(\n tag,\n (Base) => {\n class UsaToastStack extends Base {\n static get observedAttributes(): string[] {\n return ['position'];\n }\n private _list: HTMLOListElement | null = null;\n private _timers = new Map<string, { left: number; start: number; h: ReturnType<typeof setTimeout> | 0 }>();\n private _hover = false;\n\n get count(): number {\n return this._list ? this._list.querySelectorAll(':scope > .usa-tstack:not([data-leaving])').length : 0;\n }\n\n mount(): void {\n const pos = this.str('position', 'bottom-right');\n this.dataset.position = (TOAST_POSITIONS as readonly string[]).includes(pos) ? pos : 'bottom-right';\n this.setAttribute('role', 'region');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', 'Notifications');\n this._list = this.querySelector(':scope > .usa-tstack-list') || part('ol', 'usa-tstack-list', { 'aria-live': 'polite', 'aria-relevant': 'additions' });\n if (!this._list.isConnected) this.append(this._list);\n const expand = (on: boolean) => {\n this._hover = on;\n this.toggleAttribute('data-expanded', on);\n this.layout();\n for (const [id, t] of this._timers) on ? this.pause(id, t) : this.resume(id);\n };\n this.listen(this, 'pointerenter', () => expand(true));\n this.listen(this, 'pointerleave', () => expand(false));\n this.listen(this, 'focusin', () => expand(true));\n this.listen(this, 'focusout', (e: FocusEvent) => !this.contains(e.relatedTarget as Node) && expand(false));\n this.onCleanup(() => this._timers.forEach((t) => t.h && clearTimeout(t.h)));\n }\n\n private pause(_id: string, t: { left: number; start: number; h: ReturnType<typeof setTimeout> | 0 }): void {\n if (!t.h) return;\n clearTimeout(t.h);\n t.h = 0;\n t.left -= Date.now() - t.start;\n }\n private resume(id: string): void {\n const t = this._timers.get(id);\n if (!t || t.h) return;\n t.start = Date.now();\n t.h = setTimeout(() => this.dismiss(id, 'timeout'), Math.max(400, t.left));\n }\n\n show(input: string | StackToastOptions): string {\n const o: StackToastOptions = typeof input === 'string' ? { message: input } : input || {};\n const id = `usa-tstack-${++tid}`;\n const type = o.type && ICONS[o.type] ? o.type : 'info';\n const li = part('li', `usa-tstack usa-tstack-${type}`, { id, role: type === 'error' ? 'alert' : 'status' });\n li.append(part('span', 'usa-tstack-icon', { 'aria-hidden': 'true' }, ICONS[type]));\n const txt = part('div', 'usa-tstack-text');\n if (o.title) txt.append(Object.assign(document.createElement('strong'), { textContent: o.title }));\n if (o.message) txt.append(Object.assign(document.createElement('span'), { textContent: o.message }));\n li.append(txt);\n if (o.action) {\n const b = part('button', 'usa-tstack-action', { type: 'button' });\n b.textContent = o.action.label;\n b.addEventListener('click', () => {\n o.action?.onClick?.();\n this.dismiss(id, 'action');\n });\n li.append(b);\n }\n const x = part('button', 'usa-tstack-close', { type: 'button', 'aria-label': 'Dismiss' }, '×');\n x.addEventListener('click', () => this.dismiss(id, 'close'));\n li.append(x);\n this.swipe(li, id);\n this._list?.prepend(li);\n const top = this.dataset.position?.startsWith('top');\n this.motion(li, this.reduced ? [{ opacity: 0 }, { opacity: 1 }] : [{ opacity: 0, translate: `0 ${top ? -110 : 110}%`, scale: '0.9' }, { opacity: 1, translate: '0 0', scale: '1' }], { duration: this.reduced ? 150 : 420, easing: 'cubic-bezier(.22,1,.36,1)' });\n this.layout();\n const dur = o.duration ?? this.num('duration', 4000);\n if (dur > 0) {\n this._timers.set(id, { left: dur, start: Date.now(), h: 0 });\n if (!this._hover) this.resume(id);\n }\n this.emit('show', { id, ...o });\n return id;\n }\n\n dismiss(id: string, reason = 'api'): void {\n const li = this._list?.querySelector<HTMLElement>(`#${id}`);\n const t = this._timers.get(id);\n if (t?.h) clearTimeout(t.h);\n this._timers.delete(id);\n if (!li || li.hasAttribute('data-leaving')) return;\n li.setAttribute('data-leaving', '');\n const dx = Number(li.dataset.dx || 0);\n const a = this.motion(li, this.reduced ? [{ opacity: 1 }, { opacity: 0 }] : [{ opacity: 1, transform: `translateX(${dx}px)` }, { opacity: 0, transform: `translateX(${dx >= 0 ? 120 : -120}%)` }], { duration: this.reduced ? 120 : 260, easing: 'cubic-bezier(.4,0,1,1)', fill: 'forwards' });\n const rm = () => {\n li.remove();\n this.layout();\n };\n if (a) a.finished.then(rm, rm);\n else rm();\n this.emit('dismiss', { id, reason });\n }\n\n clear(): void {\n this._list?.querySelectorAll<HTMLElement>(':scope > .usa-tstack').forEach((li) => this.dismiss(li.id, 'clear'));\n }\n\n /** Collapsed: newest in front, older ones scaled down peeking behind. Expanded: a list. */\n private layout(): void {\n if (!this._list) return;\n const items = Array.from(this._list.querySelectorAll<HTMLElement>(':scope > .usa-tstack:not([data-leaving])'));\n const max = Math.max(1, this.num('max', 3));\n const dir = this.dataset.position?.startsWith('top') ? 1 : -1;\n let y = 0;\n items.forEach((li, k) => {\n const h = li.offsetHeight || 56;\n const tf = this._hover ? `translateY(${dir * y}px)` : `translateY(${dir * k * 10}px) scale(${(1 - k * 0.05).toFixed(3)})`;\n li.style.transform = tf;\n li.style.zIndex = String(100 - k);\n li.style.opacity = !this._hover && k >= max ? '0' : '';\n li.toggleAttribute('inert', !this._hover && k > 0);\n y += h + 10;\n });\n this._list.style.height = this._hover && items.length ? `${y}px` : '';\n }\n\n private swipe(li: HTMLElement, id: string): void {\n let x0 = NaN;\n li.addEventListener('pointerdown', (e) => {\n if ((e.target as Element).closest('button')) return;\n x0 = e.clientX;\n li.setPointerCapture?.(e.pointerId);\n });\n li.addEventListener('pointermove', (e) => {\n if (Number.isNaN(x0)) return;\n const dx = e.clientX - x0;\n li.dataset.dx = String(dx);\n li.style.translate = `${dx}px 0`;\n li.style.opacity = String(Math.max(0.2, 1 - Math.abs(dx) / 240));\n });\n const up = () => {\n if (Number.isNaN(x0)) return;\n x0 = NaN;\n const dx = Number(li.dataset.dx || 0);\n li.style.translate = '';\n li.style.opacity = '';\n if (Math.abs(dx) > 80) this.dismiss(id, 'swipe');\n else li.dataset.dx = '0';\n };\n li.addEventListener('pointerup', up);\n li.addEventListener('pointercancel', up);\n }\n }\n return UsaToastStack as unknown as CustomElementConstructor;\n },\n { id: 'toast', text: css }\n );\n}\n\n/** Show a toast on the first `<usa-toast-stack>` of the page (one is created when missing). */\nexport function stackToast(input: string | StackToastOptions, stack?: UsaToastStackElement | null): string {\n defineToastStack();\n let s = stack || document.querySelector<UsaToastStackElement>('usa-toast-stack');\n if (!s) {\n s = document.createElement('usa-toast-stack') as UsaToastStackElement;\n document.body.append(s);\n }\n return s.show(input);\n}\n\nlet trig = false;\nfunction installToastTriggers(): void {\n delegateTriggers();\n if (trig || typeof document === 'undefined') return;\n trig = true;\n document.addEventListener('click', (e) => {\n const t = (e.target as Element | null)?.closest?.('[data-usa-toast]');\n if (!t) return;\n const target = t.getAttribute('data-usa-target');\n const s = target ? (document.getElementById(target) as UsaToastStackElement | null) : null;\n stackToast({ message: t.getAttribute('data-usa-toast') || '', title: t.getAttribute('data-usa-toast-title') || undefined, type: (t.getAttribute('data-usa-toast-type') as StackToastOptions['type']) || 'info' }, s);\n });\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part, nextId } from './shared';\nimport css from './menu.css?raw';\n\n/**\n * `<usa-menu>` (6.3) — a dropdown menu that unfolds from its button: the\n * list scales out of the trigger corner and the items cascade in. The first\n * child is the trigger (or `[data-trigger]`); the other children (`<button>`,\n * `<a>`, `<hr>` separators) become menu items.\n *\n * Attributes: `placement` (`bottom-start` · `bottom-end` · `top-start` ·\n * `top-end`), `effect` (`scale` · `fold` · `slide`). Keyboard: Enter / Space /\n * ArrowDown open, arrows and Home / End move, Esc closes, Tab leaves; outside\n * clicks close. API: `open()`, `close()`, `toggle()`, `opened`. Events:\n * `usa:select` (`{ index, value, item }`), `usa:open`, `usa:close`. Reduced\n * motion: a short fade.\n */\nexport interface UsaMenuElement extends UsaElement {\n readonly opened: boolean;\n open(focus?: 'first' | 'last'): void;\n close(focusTrigger?: boolean): void;\n toggle(): void;\n}\n\nexport const MENU_EFFECTS = ['scale', 'fold', 'slide'] as const;\n\nexport function defineMenu(tag = 'usa-menu'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMenu extends Base {\n static get observedAttributes(): string[] {\n return ['placement', 'effect'];\n }\n private _btn: HTMLElement | null = null;\n private _list: HTMLElement | null = null;\n private _items: HTMLElement[] = [];\n private _open = false;\n\n get opened(): boolean {\n return this._open;\n }\n\n mount(): void {\n const kids = ownChildren(this);\n this._btn = kids.find((k) => k.hasAttribute('data-trigger')) || kids[0] || null;\n let list = this.querySelector<HTMLElement>(':scope > .usa-menu-list');\n if (!list) {\n list = part('div', 'usa-menu-list', { role: 'menu' });\n for (const k of kids) if (k !== this._btn) list.append(k);\n this.append(list);\n }\n this._list = list;\n list.id ||= nextId('usa-menu');\n list.hidden = !this._open;\n const pl = this.str('placement', 'bottom-start');\n this.dataset.placement = /^(bottom|top)-(start|end)$/.test(pl) ? pl : 'bottom-start';\n const ef = this.str('effect', 'scale');\n this.dataset.effect = (MENU_EFFECTS as readonly string[]).includes(ef) ? ef : 'scale';\n this._items = Array.from(list.children).filter((c): c is HTMLElement => c instanceof HTMLElement && !c.matches('hr,[role=\"separator\"]'));\n list.querySelectorAll('hr').forEach((h) => h.setAttribute('role', 'separator'));\n this._items.forEach((it, i) => {\n it.setAttribute('role', 'menuitem');\n it.tabIndex = -1;\n if (it.localName === 'button' && !it.hasAttribute('type')) it.setAttribute('type', 'button');\n this.listen(it, 'click', () => {\n this.emit('select', { index: i, value: it.dataset.value || (it.textContent || '').trim(), item: it });\n this.close(true);\n });\n });\n const b = this._btn;\n if (b) {\n b.setAttribute('aria-haspopup', 'menu');\n b.setAttribute('aria-expanded', String(this._open));\n b.setAttribute('aria-controls', list.id);\n if (b.localName === 'button' && !b.hasAttribute('type')) b.setAttribute('type', 'button');\n this.listen(b, 'click', () => this.toggle());\n this.listen(b, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n this.open(e.key === 'ArrowUp' ? 'last' : 'first');\n }\n });\n }\n this.listen(list, 'keydown', (e: KeyboardEvent) => {\n const n = this._items.length;\n const i = this._items.indexOf(document.activeElement as HTMLElement);\n let j = -1;\n if (e.key === 'ArrowDown') j = (i + 1) % n;\n else if (e.key === 'ArrowUp') j = (i - 1 + n) % n;\n else if (e.key === 'Home') j = 0;\n else if (e.key === 'End') j = n - 1;\n else if (e.key === 'Escape') {\n e.preventDefault();\n return this.close(true);\n } else if (e.key === 'Tab') return this.close(false);\n if (j >= 0) {\n e.preventDefault();\n this._items[j]?.focus();\n }\n });\n this.listen(document, 'pointerdown', (e: PointerEvent) => {\n if (this._open && !this.contains(e.target as Node)) this.close(false);\n });\n }\n\n open(focus: 'first' | 'last' = 'first'): void {\n const l = this._list;\n if (!l || this._open) return;\n this._open = true;\n l.hidden = false;\n this._btn?.setAttribute('aria-expanded', 'true');\n this.setAttribute('data-open', '');\n const ef = this.dataset.effect;\n if (this.reduced) this.motion(l, [{ opacity: 0 }, { opacity: 1 }], { duration: 120 });\n else {\n const f: Keyframe[] = ef === 'fold' ? [{ transform: 'perspective(600px) rotateX(-70deg)', opacity: 0 }, { transform: 'none', opacity: 1 }] : ef === 'slide' ? [{ transform: 'translateY(-10px)', opacity: 0, clipPath: 'inset(0 0 100% 0 round 12px)' }, { transform: 'none', opacity: 1, clipPath: 'inset(0 0 0 0 round 12px)' }] : [{ transform: 'scale(.6)', opacity: 0 }, { transform: 'scale(1.03)', opacity: 1, offset: 0.7 }, { transform: 'none', opacity: 1 }];\n this.motion(l, f, { duration: 300, easing: 'cubic-bezier(.22,1,.36,1)' });\n this._items.forEach((it, i) => this.motion(it, [{ opacity: 0, transform: 'translateY(-6px)' }, { opacity: 1, transform: 'none' }], { duration: 260, delay: 40 + i * 35, easing: 'cubic-bezier(.22,1,.36,1)', fill: 'backwards' }));\n }\n (focus === 'last' ? this._items[this._items.length - 1] : this._items[0])?.focus();\n this.emit('open');\n }\n\n close(focusTrigger = false): void {\n const l = this._list;\n if (!l || !this._open) return;\n this._open = false;\n this._btn?.setAttribute('aria-expanded', 'false');\n this.removeAttribute('data-open');\n const a = this.motion(l, [{ opacity: 1, transform: 'none' }, { opacity: 0, transform: this.reduced ? 'none' : 'scale(.96)' }], { duration: this.reduced ? 80 : 150, easing: 'ease-in' });\n const hide = () => {\n if (!this._open) l.hidden = true;\n };\n if (a) a.finished.then(hide, hide);\n else hide();\n if (focusTrigger) this._btn?.focus();\n this.emit('close');\n }\n\n toggle(): void {\n if (this._open) this.close(true);\n else this.open();\n }\n }\n return UsaMenu as unknown as CustomElementConstructor;\n },\n { id: 'menu', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, part } from './shared';\nimport css from './meters.css?raw';\n\n/**\n * 6.4 meters: `<usa-progress-ring>` and `<usa-odometer>`.\n *\n * `<usa-progress-ring value=\"64\" max=\"100\">` — a ring, `bar` or `semi`\n * (semicircle gauge) `variant`; the arc eases (with a little overshoot) to\n * each new value while the centre label counts; `gradient=\"#a,#b\"`;\n * no `value` = indeterminate (spinning arc). `role=\"progressbar\"`.\n * Event `usa:complete` when it reaches max.\n *\n * `<usa-odometer value=\"1234\">` — rolling digit wheels: every digit column\n * spins to its new digit (lower digits travel further), columns slide in /\n * out when the length changes; `locale` grouping via Intl.NumberFormat,\n * `decimals`, `prefix` / `suffix`, `duration`. The accessible name is the\n * formatted number.\n *\n * Reduced motion: values switch without animation.\n */\nexport interface UsaProgressRingElement extends UsaElement {\n value: number | null;\n max: number;\n}\nexport interface UsaOdometerElement extends UsaElement {\n value: number;\n readonly text: string;\n}\n\nexport const PROGRESS_VARIANTS = ['ring', 'bar', 'semi'] as const;\nconst NS = 'http://www.w3.org/2000/svg';\n\nexport function defineProgressRing(tag = 'usa-progress-ring'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaProgressRing extends Base {\n static get observedAttributes(): string[] {\n return ['variant', 'value', 'max', 'gradient'];\n }\n private _shown = 0;\n private _arc: SVGPathElement | SVGCircleElement | HTMLElement | null = null;\n private _label: HTMLElement | null = null;\n private _len = 1;\n private _raf = 0;\n\n get value(): number | null {\n return this.hasAttribute('value') ? this.num('value', 0) : null;\n }\n set value(v: number | null) {\n if (v === null) this.removeAttribute('value');\n else this.setAttribute('value', String(v));\n }\n get max(): number {\n return Math.max(1e-9, this.num('max', 100));\n }\n set max(v: number) {\n this.setAttribute('max', String(v));\n }\n\n changed(name: string): void {\n if (name === 'value' && this._arc) return this.update();\n super.changed(name);\n }\n\n mount(): void {\n const v = this.str('variant', 'ring');\n const variant = (PROGRESS_VARIANTS as readonly string[]).includes(v) ? v : 'ring';\n this.dataset.variant = variant;\n this.setAttribute('role', 'progressbar');\n this.setAttribute('aria-valuemin', '0');\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const stops = this.str('gradient', '').split(',').map((s) => s.trim()).filter(Boolean);\n const gid = `usa-pr-${Math.random().toString(36).slice(2, 8)}`;\n if (variant === 'bar') {\n const track = part('div', 'usa-pr-track');\n const fill = part('div', 'usa-pr-fill');\n if (stops.length) fill.style.background = `linear-gradient(90deg,${stops.join(',')})`;\n track.append(fill);\n this.append(track);\n this._arc = fill;\n } else {\n const svg = document.createElementNS(NS, 'svg');\n svg.setAttribute('data-usa-part', '');\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('class', 'usa-pr-svg');\n svg.setAttribute('width', '100%');\n svg.setAttribute('height', '100%');\n const semi = variant === 'semi';\n svg.setAttribute('viewBox', semi ? '0 0 100 56' : '0 0 100 100');\n const d = semi ? 'M 8 50 A 42 42 0 0 1 92 50' : 'M 50 8 A 42 42 0 1 1 49.99 8';\n const grad = stops.length ? `<defs><linearGradient id=\"${gid}\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">${stops.map((c, i) => `<stop offset=\"${stops.length > 1 ? i / (stops.length - 1) : 0}\" stop-color=\"${c}\"/>`).join('')}</linearGradient></defs>` : '';\n svg.innerHTML = `${grad}<path class=\"usa-pr-track\" d=\"${d}\"/><path class=\"usa-pr-arc\" d=\"${d}\"${stops.length ? ` stroke=\"url(#${gid})\"` : ''}/>`;\n this.append(svg);\n this._arc = svg.querySelector('.usa-pr-arc');\n this._len = semi ? Math.PI * 42 : Math.PI * 2 * 42;\n (this._arc as SVGPathElement).style.strokeDasharray = `${this._len}`;\n (this._arc as SVGPathElement).style.strokeDashoffset = `${this._len}`;\n }\n this._label = part('span', 'usa-pr-label', { 'aria-hidden': 'true' });\n if (this.flag('no-label')) this._label.hidden = true;\n this.append(this._label);\n this._shown = 0;\n this.onCleanup(() => {\n if (this._raf && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(this._raf);\n });\n this.update();\n }\n\n private paint(frac: number): void {\n const f = clampN(frac, 0, 1.08);\n if (this._arc instanceof HTMLElement) this._arc.style.transform = `scaleX(${Math.min(1, f)})`;\n else if (this._arc) (this._arc as SVGPathElement).style.strokeDashoffset = `${(this._len * (1 - Math.min(1, f))).toFixed(2)}`;\n }\n\n private update(): void {\n const v = this.value;\n const max = this.max;\n this.setAttribute('aria-valuemax', String(max));\n this.toggleAttribute('data-indeterminate', v === null);\n if (v === null) {\n this.removeAttribute('aria-valuenow');\n if (this._label) this._label.textContent = '';\n this.paint(0.28);\n return;\n }\n const target = clampN(v, 0, max) / max;\n this.setAttribute('aria-valuenow', String(clampN(v, 0, max)));\n const from = this._shown;\n this._shown = target;\n const label = (f: number) => {\n if (this._label) this._label.textContent = `${Math.round(f * 100)}%`;\n };\n if (this._raf && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(this._raf);\n if (this.reduced || typeof requestAnimationFrame !== 'function') {\n this.paint(target);\n label(target);\n } else {\n const t0 = performance.now();\n const dur = this.num('duration', 900);\n const step = (now: number) => {\n const k = Math.min(1, (now - t0) / dur);\n // ease-out-back: a little overshoot, then settle\n const c = 1.4;\n const e = 1 + (c + 1) * Math.pow(k - 1, 3) + c * Math.pow(k - 1, 2);\n const f = from + (target - from) * e;\n this.paint(f);\n label(from + (target - from) * Math.min(1, k * 1.15));\n this._raf = k < 1 ? requestAnimationFrame(step) : 0;\n if (k >= 1) this.paint(target);\n };\n this._raf = requestAnimationFrame(step);\n }\n if (target >= 1 && from < 1) this.emit('complete', { value: v });\n }\n }\n return UsaProgressRing as unknown as CustomElementConstructor;\n },\n { id: 'meters', text: css }\n );\n}\n\nexport function defineOdometer(tag = 'usa-odometer'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaOdometer extends Base {\n static get observedAttributes(): string[] {\n return ['value', 'locale', 'decimals', 'prefix', 'suffix'];\n }\n private _row: HTMLElement | null = null;\n private _text = '';\n\n get value(): number {\n return this.num('value', 0);\n }\n set value(v: number) {\n this.setAttribute('value', String(v));\n }\n get text(): string {\n return this._text;\n }\n\n changed(name: string): void {\n if (name === 'value' && this._row) return this.render(true);\n super.changed(name);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this._row = part('span', 'usa-odo-row', { 'aria-hidden': 'true' });\n this.append(this._row);\n this.setAttribute('role', 'img');\n this._text = '';\n this.render(false);\n }\n\n private format(): string {\n const d = Math.max(0, Math.min(6, Math.round(this.num('decimals', 0))));\n let s: string;\n try {\n s = new Intl.NumberFormat(this.str('locale', '') || undefined, { minimumFractionDigits: d, maximumFractionDigits: d }).format(this.value);\n } catch {\n s = this.value.toFixed(d);\n }\n return `${this.str('prefix', '')}${s}${this.str('suffix', '')}`;\n }\n\n private column(ch: string): HTMLElement {\n const isDigit = /\\d/.test(ch);\n const col = part('span', isDigit ? 'usa-odo-col' : 'usa-odo-sym');\n if (isDigit) {\n const strip = document.createElement('span');\n strip.className = 'usa-odo-strip';\n strip.textContent = '01234567890123456789'.split('').join('\\n');\n col.append(strip);\n col.dataset.d = ch;\n strip.style.transform = `translateY(${-Number(ch) * 5}%)`;\n } else col.textContent = ch;\n return col;\n }\n\n private render(animate: boolean): void {\n const row = this._row;\n if (!row) return;\n const next = this.format();\n this._text = next;\n this.setAttribute('aria-label', next);\n const anim = animate && !this.reduced;\n const dur = this.num('duration', 1100);\n const chars = next.split('');\n const old = Array.from(row.children) as HTMLElement[];\n const off = chars.length - old.length; // right-aligned: digits keep their place value\n const fresh = new Set<HTMLElement>();\n const cols = chars.map((ch, i) => {\n const o = old[i - off];\n const digit = /\\d/.test(ch);\n if (o && digit && o.dataset.d !== undefined) return o;\n if (o && !digit && o.dataset.d === undefined) {\n o.textContent = ch;\n return o;\n }\n const c = this.column(ch);\n fresh.add(c);\n return c;\n });\n row.replaceChildren(...cols);\n cols.forEach((c, i) => {\n if (fresh.has(c)) {\n if (anim) this.motion(c, [{ opacity: 0, transform: 'translateY(-60%)' }, { opacity: 1, transform: 'none' }], { duration: 420, easing: 'cubic-bezier(.22,1,.36,1)' });\n return;\n }\n if (c.dataset.d === undefined) return;\n const to = Number(chars[i]);\n const from = Number(c.dataset.d);\n c.dataset.d = String(to);\n const strip = c.firstElementChild as HTMLElement;\n strip.style.transform = `translateY(${-to * 5}%)`;\n if (!anim || from === to) return;\n const end = to >= from ? -to * 5 : -(to + 10) * 5; // always roll forward\n const place = cols.length - i;\n this.motion(strip, [{ transform: `translateY(${-from * 5}%)` }, { transform: `translateY(${end}%)` }], { duration: Math.max(400, dur - place * 60), easing: 'cubic-bezier(.2,.9,.25,1.04)' });\n });\n }\n }\n return UsaOdometer as unknown as CustomElementConstructor;\n },\n { id: 'meters', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { part } from './shared';\nimport css from './skeleton-reveal.css?raw';\n\n/**\n * `<usa-skeleton-reveal loading>` (6.4) — a skeleton generated from the\n * real content: while `loading`, every text line, image and marked block\n * (`[data-skeleton]`) of the children is measured and covered by a\n * placeholder with one synchronized shimmer (`variant=\"wave | pulse |\n * glow\"`). Remove `loading` (or call `reveal()`) and the placeholders\n * dissolve top-to-bottom while the content fades in from a blur.\n *\n * `aria-busy` follows `loading`. Event `usa:reveal`. Reduced motion: no\n * shimmer, a plain crossfade.\n */\nexport interface UsaSkeletonRevealElement extends UsaElement {\n loading: boolean;\n reveal(): Promise<void>;\n}\n\nexport const SKELETON_VARIANTS = ['wave', 'pulse', 'glow'] as const;\n\nexport function defineSkeletonReveal(tag = 'usa-skeleton-reveal'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSkeletonReveal extends Base {\n static get observedAttributes(): string[] {\n return ['loading', 'variant'];\n }\n private _layer: HTMLElement | null = null;\n\n get loading(): boolean {\n return this.flag('loading');\n }\n set loading(v: boolean) {\n this.setFlag('loading', v);\n }\n\n changed(name: string): void {\n if (name === 'loading') {\n if (this.loading) this.build();\n else void this.reveal();\n return;\n }\n super.changed(name);\n }\n\n mount(): void {\n const v = this.str('variant', 'wave');\n this.dataset.variant = (SKELETON_VARIANTS as readonly string[]).includes(v) ? v : 'wave';\n if (this.loading) this.build();\n if (typeof ResizeObserver === 'function') {\n const ro = new ResizeObserver(() => this.loading && this.build());\n ro.observe(this);\n this.onCleanup(() => ro.disconnect());\n }\n this.onCleanup(() => this._layer?.remove());\n }\n\n /** Measure the content and lay placeholders over it. */\n private build(): void {\n this.setAttribute('aria-busy', 'true');\n this.setAttribute('data-loading', '');\n this._layer?.remove();\n const layer = part('div', 'usa-sk-layer', { 'aria-hidden': 'true' });\n const host = this.getBoundingClientRect();\n const boxes: [number, number, number, number, boolean][] = [];\n const add = (r: DOMRect | { left: number; top: number; width: number; height: number }, round = false) => {\n if (r.width < 2 || r.height < 2) return;\n boxes.push([r.left - host.left, r.top - host.top, r.width, r.height, round]);\n };\n const marked = Array.from(this.querySelectorAll<HTMLElement>('[data-skeleton], img, svg, video, canvas, button, input'));\n for (const m of marked) if (!m.closest('.usa-sk-layer')) add(m.getBoundingClientRect(), m.dataset.skeleton === 'circle' || getComputedStyle(m).borderRadius === '50%');\n // text: one bar per rendered line (Range client rects), skipping marked elements\n const walker = document.createTreeWalker(this, NodeFilter.SHOW_TEXT);\n for (let n = walker.nextNode(); n; n = walker.nextNode()) {\n if (!n.textContent?.trim() || (n.parentElement && marked.some((m) => m.contains(n!.parentElement)))) continue;\n const range = document.createRange();\n range.selectNodeContents(n);\n const rects = typeof range.getClientRects === 'function' ? Array.from(range.getClientRects()) : [];\n for (const r of rects) add({ left: r.left, top: r.top + r.height * 0.18, width: r.width, height: r.height * 0.64 });\n }\n for (const [x, y, w, h, round] of boxes) {\n const b = document.createElement('span');\n b.className = 'usa-sk-box';\n b.style.cssText = `left:${x.toFixed(1)}px;top:${y.toFixed(1)}px;width:${w.toFixed(1)}px;height:${h.toFixed(1)}px;${round ? 'border-radius:50%' : ''}`;\n b.style.setProperty('--usa-sk-x', `${(-x).toFixed(1)}px`);\n layer.append(b);\n }\n this.append(layer);\n this._layer = layer;\n }\n\n reveal(): Promise<void> {\n const layer = this._layer;\n this.removeAttribute('aria-busy');\n if (this.hasAttribute('loading')) this.removeAttribute('loading');\n this._layer = null;\n if (!layer) {\n this.removeAttribute('data-loading');\n return Promise.resolve();\n }\n const boxes = Array.from(layer.children) as HTMLElement[];\n const kids = Array.from(this.children).filter((c) => c !== layer) as HTMLElement[];\n this.removeAttribute('data-loading');\n const done: Promise<unknown>[] = [];\n if (this.reduced) {\n const a = this.motion(layer, [{ opacity: 1 }, { opacity: 0 }], { duration: 200, fill: 'forwards' });\n if (a) done.push(a.finished);\n } else {\n const top = Math.min(...boxes.map((b) => parseFloat(b.style.top) || 0), 0);\n for (const b of boxes) {\n const a = this.motion(b, [{ opacity: 1, transform: 'none', filter: 'blur(0)' }, { opacity: 0, transform: 'scale(1.04)', filter: 'blur(6px)' }], { duration: 420, delay: Math.min(500, ((parseFloat(b.style.top) || 0) - top) * 1.2), easing: 'cubic-bezier(.4,0,.2,1)', fill: 'forwards' });\n if (a) done.push(a.finished);\n }\n kids.forEach((k, i) => this.motion(k, [{ opacity: 0, filter: 'blur(8px)', transform: 'translateY(6px)' }, { opacity: 1, filter: 'blur(0)', transform: 'none' }], { duration: 520, delay: 60 + i * 70, easing: 'cubic-bezier(.22,1,.36,1)', fill: 'backwards' }));\n }\n const end = () => {\n layer.remove();\n this.emit('reveal');\n };\n return Promise.all(done).then(end, end);\n }\n }\n return UsaSkeletonReveal as unknown as CustomElementConstructor;\n },\n { id: 'skeleton-reveal', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, part } from './shared';\nimport css from './star-rating.css?raw';\n\n/**\n * `<usa-star-rating value=\"3.5\">` (6.4) — rating stars 2.0: the fill\n * follows the pointer (hover preview, `step=\"0.5\"` half stars), a click\n * pops the chosen star and throws a small sparkle burst, the other stars\n * ripple in sequence. `max`, `step` (`1` · `0.5`), `readonly`, `label`,\n * `icon` (`star` · `heart`). Keyboard: it is a `role=\"slider\"` — arrows,\n * Home / End. Events `change`, `usa:change` (`{ value }`). Form-associated\n * (7.9): with `name` the value is submitted like `<usa-rating>`'s, which it\n * replaces in 8.0. Reduced motion: no pop,\n * burst or ripple.\n */\nexport interface UsaStarRatingElement extends UsaElement {\n value: number;\n}\n\nconst PATHS: Record<string, string> = {\n star: 'M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6L2.5 9.4l6.6-.8z',\n heart: 'M12 21s-7.5-4.6-9.6-9.2C.9 8.4 2.9 4.5 6.6 4.5c2.1 0 3.6 1.2 5.4 3.1 1.8-1.9 3.3-3.1 5.4-3.1 3.7 0 5.7 3.9 4.2 7.3C19.5 16.4 12 21 12 21z',\n};\n\n/** <usa-rating> icon characters accepted by `icon` (7.9). */\nconst ICON_ALIASES: Record<string, string> = { '★': 'star', '☆': 'star', '♥': 'heart', '❤': 'heart', '❤️': 'heart' };\n\nexport function defineStarRating(tag = 'usa-star-rating'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaStarRating extends Base {\n static formAssociated = true;\n static get observedAttributes(): string[] {\n return ['max', 'icon', 'readonly', 'step'];\n }\n private _internals: ElementInternals | null = null;\n constructor() {\n super();\n try {\n this._internals = (this as any).attachInternals?.() ?? null;\n } catch {\n this._internals = null;\n }\n }\n private _v = 0;\n private _stars: HTMLElement[] = [];\n\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this.set(v, false);\n }\n\n private get max(): number {\n return Math.max(1, Math.round(this.num('max', 5)));\n }\n private get step(): number {\n return this.num('step', 1) === 0.5 ? 0.5 : 1;\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const icon = PATHS[ICON_ALIASES[this.str('icon', 'star')] || this.str('icon', 'star')] || PATHS.star;\n this._stars = [];\n for (let i = 0; i < this.max; i++) {\n const s = part('span', 'usa-star', { 'aria-hidden': 'true' }, `<svg viewBox=\"0 0 24 24\" width=\"100%\" height=\"100%\"><path class=\"usa-star-bg\" d=\"${icon}\"/></svg><span class=\"usa-star-fg\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"${icon}\"/></svg></span>`);\n this._stars.push(s);\n this.append(s);\n }\n const ro = this.flag('readonly');\n this.setAttribute('role', ro ? 'img' : 'slider');\n if (!ro) {\n this.tabIndex = 0;\n this.setAttribute('aria-valuemin', '0');\n this.setAttribute('aria-valuemax', String(this.max));\n }\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Rating'));\n this._v = clampN(this.num('value', 0), 0, this.max);\n this.paint(this._v);\n this.sync();\n if (ro) return;\n const at = (e: PointerEvent) => {\n const r = this._stars[0].getBoundingClientRect();\n const last = this._stars[this._stars.length - 1].getBoundingClientRect();\n const w = last.right - r.left || 1;\n const raw = ((e.clientX - r.left) / w) * this.max;\n return clampN(Math.ceil(raw / this.step) * this.step, this.step, this.max);\n };\n this.listen(this, 'pointermove', (e: PointerEvent) => {\n this.setAttribute('data-preview', '');\n this.paint(at(e));\n });\n this.listen(this, 'pointerleave', () => {\n this.removeAttribute('data-preview');\n this.paint(this._v);\n });\n this.listen(this, 'click', (e: MouseEvent) => this.set(at(e as PointerEvent), true));\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n const k = e.key;\n let v = this._v;\n if (k === 'ArrowRight' || k === 'ArrowUp') v += this.step;\n else if (k === 'ArrowLeft' || k === 'ArrowDown') v -= this.step;\n else if (k === 'Home') v = 0;\n else if (k === 'End') v = this.max;\n else return;\n e.preventDefault();\n this.set(v, true);\n });\n }\n\n private sync(): void {\n this.setAttribute('aria-valuenow', String(this._v));\n this.setAttribute('aria-valuetext', `${this._v} of ${this.max}`);\n this._internals?.setFormValue?.(String(this._v));\n if (this.flag('readonly')) this.setAttribute('aria-label', `${this.str('label', 'Rating')}: ${this._v} of ${this.max}`);\n }\n\n private paint(v: number): void {\n this._stars.forEach((s, i) => s.style.setProperty('--usa-star-fill', `${(clampN(v - i, 0, 1) * 100).toFixed(0)}%`));\n }\n\n private set(v: number, user: boolean): void {\n const nv = clampN(Math.round(v / this.step) * this.step, 0, this.max);\n const changed = nv !== this._v;\n this._v = nv;\n this.paint(nv);\n this.sync();\n if (!user) return;\n const idx = Math.ceil(nv) - 1;\n if (!this.reduced && idx >= 0) {\n const star = this._stars[idx];\n this.motion(star, [{ transform: 'scale(1)' }, { transform: 'scale(1.45) rotate(-12deg)', offset: 0.35 }, { transform: 'scale(.92)', offset: 0.7 }, { transform: 'none' }], { duration: 520, easing: 'cubic-bezier(.3,1.4,.5,1)' });\n this._stars.slice(0, idx).forEach((s, i) => this.motion(s, [{ transform: 'none' }, { transform: 'translateY(-5px)' }, { transform: 'none' }], { duration: 320, delay: i * 45, easing: 'ease-out' }));\n for (let k = 0; k < 8; k++) {\n const sp = part('span', 'usa-star-spark', { 'aria-hidden': 'true' });\n star.append(sp);\n const a = (k / 8) * Math.PI * 2;\n const anim = this.motion(sp, [{ transform: 'translate(-50%,-50%) scale(1)', opacity: 1 }, { transform: `translate(calc(-50% + ${(Math.cos(a) * 22).toFixed(1)}px), calc(-50% + ${(Math.sin(a) * 22).toFixed(1)}px)) scale(.2)`, opacity: 0 }], { duration: 520, easing: 'cubic-bezier(.2,.8,.3,1)', fill: 'forwards' });\n const rm = () => sp.remove();\n if (anim) anim.finished.then(rm, rm);\n else rm();\n }\n }\n if (changed) {\n this.dispatchEvent(new Event('change', { bubbles: true }));\n this.emit('change', { value: nv });\n }\n }\n }\n return UsaStarRating as unknown as CustomElementConstructor;\n },\n { id: 'star-rating', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part } from './shared';\nimport css from './milestones.css?raw';\n\n/**\n * `<usa-milestones>` (6.5) — a scroll-drawn timeline: a progress line grows\n * down the rail as you scroll, and each milestone (a child element, with an\n * optional `data-date`) pops its dot and slides its card in when the line\n * reaches it. Cards alternate sides on wide screens (`layout=\"alternate\"`,\n * default) or sit on one side (`layout=\"left\"`); below 640 px they always\n * stack. Events `usa:reach` (`{ index }`). Reduced motion: everything is\n * shown, the line is full.\n */\nexport interface UsaMilestonesElement extends UsaElement {\n readonly reached: number;\n}\n\nexport function defineMilestones(tag = 'usa-milestones'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMilestones extends Base {\n static get observedAttributes(): string[] {\n return ['layout'];\n }\n private _items: HTMLElement[] = [];\n private _fill: HTMLElement | null = null;\n private _reached = -1;\n private _raf = 0;\n\n get reached(): number {\n return this._reached;\n }\n\n mount(): void {\n this.dataset.layout = this.str('layout', 'alternate') === 'left' ? 'left' : 'alternate';\n this.setAttribute('role', this.getAttribute('role') || 'list');\n this.querySelectorAll(':scope > .usa-ms-rail').forEach((n) => n.remove());\n const rail = part('div', 'usa-ms-rail', { 'aria-hidden': 'true' });\n this._fill = part('div', 'usa-ms-fill');\n rail.append(this._fill);\n this.prepend(rail);\n this._items = ownChildren(this, '[data-usa-part],.usa-ms-rail');\n this._items.forEach((it, i) => {\n it.classList.add('usa-ms-item');\n it.setAttribute('role', 'listitem');\n it.dataset.side = this.dataset.layout === 'left' || i % 2 === 0 ? 'right' : 'left';\n if (!it.querySelector(':scope > .usa-ms-dot')) it.prepend(part('span', 'usa-ms-dot', { 'aria-hidden': 'true' }));\n const date = it.dataset.date;\n if (date && !it.querySelector(':scope > .usa-ms-date')) it.querySelector(':scope > .usa-ms-dot')!.after(part('span', 'usa-ms-date', {}, ''));\n const d = it.querySelector<HTMLElement>(':scope > .usa-ms-date');\n if (d && date) d.textContent = date;\n });\n this._reached = -1;\n if (this.reduced) {\n this._fill.style.transform = 'scaleY(1)';\n this._items.forEach((it) => it.setAttribute('data-reached', ''));\n this._reached = this._items.length - 1;\n return;\n }\n const on = () => {\n if (!this._raf) this._raf = typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => this.update()) : (this.update(), 0);\n };\n this.listen(window, 'scroll', on, { passive: true });\n this.listen(window, 'resize', on);\n this.onCleanup(() => {\n if (this._raf && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(this._raf);\n });\n this.update();\n }\n\n /** Fill the rail up to the viewport's 60 % line and reveal the milestones it passed. */\n update(): void {\n this._raf = 0;\n const r = this.getBoundingClientRect();\n const vh = (typeof window !== 'undefined' && window.innerHeight) || 800;\n const line = vh * 0.6;\n const p = r.height ? Math.min(1, Math.max(0, (line - r.top) / r.height)) : 0;\n if (this._fill) this._fill.style.transform = `scaleY(${p.toFixed(4)})`;\n this._items.forEach((it, i) => {\n if (it.hasAttribute('data-reached')) return;\n const top = it.getBoundingClientRect().top;\n if (top < line || p >= 1) {\n it.setAttribute('data-reached', '');\n const card = Array.from(it.children).filter((c) => !c.matches('.usa-ms-dot,.usa-ms-date')) as HTMLElement[];\n const dot = it.querySelector(':scope > .usa-ms-dot');\n if (dot) this.motion(dot, [{ transform: 'scale(0)' }, { transform: 'scale(1.5)', offset: 0.6 }, { transform: 'scale(1)' }], { duration: 420, easing: 'cubic-bezier(.3,1.4,.5,1)' });\n const dx = it.dataset.side === 'left' ? -28 : 28;\n card.forEach((c, k) => this.motion(c, [{ opacity: 0, transform: `translateX(${dx}px)` }, { opacity: 1, transform: 'none' }], { duration: 520, delay: 80 + k * 60, easing: 'cubic-bezier(.22,1,.36,1)', fill: 'backwards' }));\n if (i > this._reached) this._reached = i;\n this.emit('reach', { index: i });\n }\n });\n }\n }\n return UsaMilestones as unknown as CustomElementConstructor;\n },\n { id: 'milestones', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './masonry-flow.css?raw';\n\n/**\n * `<usa-masonry-flow>` (6.5) — a masonry grid whose items glide to their\n * new places (FLIP) whenever the layout changes: resize, items added or\n * removed, `filter()`, `shuffle()`, `sort()`. Columns come from `min`\n * (minimum column width, px) and `gap`. Hidden items scale out, shown ones\n * scale in. Event `usa:layout` (`{ columns }`). Reduced motion: items jump.\n */\nexport interface UsaMasonryFlowElement extends UsaElement {\n readonly columns: number;\n layout(animate?: boolean): void;\n filter(fn: ((el: HTMLElement) => boolean) | string | null): void;\n shuffle(): void;\n sort(compare: (a: HTMLElement, b: HTMLElement) => number): void;\n}\n\nexport function defineMasonryFlow(tag = 'usa-masonry-flow'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMasonryFlow extends Base {\n static get observedAttributes(): string[] {\n return ['min', 'gap'];\n }\n private _cols = 1;\n private _pos = new Map<HTMLElement, [number, number]>();\n private _busy = false;\n\n get columns(): number {\n return this._cols;\n }\n\n private items(): HTMLElement[] {\n return ownChildren(this);\n }\n\n mount(): void {\n this.layout(false);\n if (typeof ResizeObserver === 'function') {\n let w = this.clientWidth;\n const ro = new ResizeObserver(() => {\n if (Math.abs(this.clientWidth - w) < 2) return;\n w = this.clientWidth;\n this.layout(true);\n });\n ro.observe(this);\n this.onCleanup(() => ro.disconnect());\n }\n if (typeof MutationObserver === 'function') {\n const mo = new MutationObserver(() => !this._busy && this.layout(true));\n mo.observe(this, { childList: true });\n this.onCleanup(() => mo.disconnect());\n }\n // images change heights when they load\n this.listen(this, 'load', () => this.layout(false), { capture: true } as AddEventListenerOptions);\n }\n\n layout(animate = true): void {\n const gap = Math.max(0, this.num('gap', 12));\n const min = Math.max(60, this.num('min', 160));\n const W = this.clientWidth || 1;\n const cols = Math.max(1, Math.floor((W + gap) / (min + gap)));\n const cw = (W - gap * (cols - 1)) / cols;\n const heights = new Array(cols).fill(0);\n const all = this.items();\n for (const it of all) {\n const hidden = it.hasAttribute('data-hidden');\n it.style.width = `${cw}px`;\n if (hidden) continue;\n const c = heights.indexOf(Math.min(...heights));\n const x = c * (cw + gap);\n const y = heights[c];\n heights[c] += (it.offsetHeight || 0) + gap;\n const old = this._pos.get(it);\n it.style.transform = `translate(${x.toFixed(1)}px,${y.toFixed(1)}px)`;\n if (animate && !this.reduced && old && (old[0] !== x || old[1] !== y)) {\n this.motion(it, [{ transform: `translate(${old[0].toFixed(1)}px,${old[1].toFixed(1)}px)` }, { transform: `translate(${x.toFixed(1)}px,${y.toFixed(1)}px)` }], { duration: 520, easing: 'cubic-bezier(.22,1,.36,1)' });\n } else if (animate && !this.reduced && !old) {\n this.motion(it, [{ opacity: 0, transform: `translate(${x.toFixed(1)}px,${(y + 20).toFixed(1)}px) scale(.9)` }, { opacity: 1, transform: `translate(${x.toFixed(1)}px,${y.toFixed(1)}px)` }], { duration: 420, easing: 'cubic-bezier(.22,1,.36,1)' });\n }\n this._pos.set(it, [x, y]);\n }\n for (const k of Array.from(this._pos.keys())) if (!all.includes(k) || k.hasAttribute('data-hidden')) this._pos.delete(k);\n this.style.height = `${Math.max(0, Math.max(...heights) - gap)}px`;\n const changed = cols !== this._cols;\n this._cols = cols;\n if (changed || animate) this.emit('layout', { columns: cols });\n }\n\n filter(fn: ((el: HTMLElement) => boolean) | string | null): void {\n const test = typeof fn === 'string' ? (el: HTMLElement) => el.matches(fn) : fn || (() => true);\n for (const it of this.items()) {\n const show = test(it);\n const was = !it.hasAttribute('data-hidden');\n if (show === was) continue;\n if (show) it.removeAttribute('data-hidden');\n else if (this.reduced) it.setAttribute('data-hidden', '');\n else {\n const tf = it.style.transform;\n const a = this.motion(it, [{ opacity: 1, transform: tf }, { opacity: 0, transform: `${tf} scale(.6)` }], { duration: 260, easing: 'ease-in' });\n it.setAttribute('data-hidden', '');\n if (a) {\n it.setAttribute('data-leaving', '');\n const rm = () => it.removeAttribute('data-leaving');\n a.finished.then(rm, rm);\n }\n }\n }\n this.layout(true);\n }\n\n private reorder(list: HTMLElement[]): void {\n this._busy = true;\n for (const it of list) this.append(it);\n this._busy = false;\n this.layout(true);\n }\n\n shuffle(): void {\n const list = this.items();\n for (let i = list.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [list[i], list[j]] = [list[j], list[i]];\n }\n this.reorder(list);\n }\n\n sort(compare: (a: HTMLElement, b: HTMLElement) => number): void {\n this.reorder(this.items().sort(compare));\n }\n }\n return UsaMasonryFlow as unknown as CustomElementConstructor;\n },\n { id: 'masonry-flow', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, ownChildren, part } from './shared';\nimport css from './compare.css?raw';\n\n/**\n * `<usa-compare>` (6.5) — before / after image compare slider. The first\n * child is \"before\", the second \"after\" (images, videos or any element).\n * Drag the handle (or anywhere with `hover`), click to jump, or use the\n * keyboard (it is a `role=\"slider\"`: arrows, Page Up / Down, Home / End).\n * `position` (0–100, default 50), `orientation=\"horizontal | vertical\"`,\n * `intro` plays a short sweep when it scrolls into view, `labels=\"Before,\n * After\"`. Event `usa:change` (`{ position }`). Reduced motion: no intro\n * sweep or eased jumps.\n */\nexport interface UsaCompareElement extends UsaElement {\n position: number;\n}\n\nexport function defineCompare(tag = 'usa-compare'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCompare extends Base {\n static get observedAttributes(): string[] {\n return ['orientation', 'labels'];\n }\n private _p = 50;\n private _after: HTMLElement | null = null;\n private _handle: HTMLElement | null = null;\n\n get position(): number {\n return this._p;\n }\n set position(v: number) {\n this.set(v, false);\n }\n\n private get vertical(): boolean {\n return this.str('orientation', 'horizontal') === 'vertical';\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const [before, after] = ownChildren(this);\n this.dataset.orientation = this.vertical ? 'vertical' : 'horizontal';\n before?.classList.add('usa-cmp-before');\n after?.classList.add('usa-cmp-after');\n this._after = after || null;\n const [lb, la] = this.str('labels', '').split(',').map((s) => s.trim());\n if (lb) this.append(Object.assign(part('span', 'usa-cmp-label usa-cmp-label-b', { 'aria-hidden': 'true' }), { textContent: lb }));\n if (la) this.append(Object.assign(part('span', 'usa-cmp-label usa-cmp-label-a', { 'aria-hidden': 'true' }), { textContent: la }));\n const h = part('span', 'usa-cmp-handle', { 'aria-hidden': 'true' }, '<span class=\"usa-cmp-knob\"><svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\"><path d=\"M9 6l-6 6 6 6M15 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></span>');\n this.append(h);\n this._handle = h;\n this.setAttribute('role', 'slider');\n this.tabIndex = 0;\n this.setAttribute('aria-valuemin', '0');\n this.setAttribute('aria-valuemax', '100');\n this.setAttribute('aria-orientation', this.vertical ? 'vertical' : 'horizontal');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Compare before and after'));\n this.set(this.num('position', 50), false);\n let drag = false;\n const at = (e: PointerEvent) => {\n const r = this.getBoundingClientRect();\n return this.vertical ? ((e.clientY - r.top) / (r.height || 1)) * 100 : ((e.clientX - r.left) / (r.width || 1)) * 100;\n };\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n drag = true;\n this.setPointerCapture?.(e.pointerId);\n this.set(at(e), true, !(e.target as Element).closest('.usa-cmp-handle'));\n });\n this.listen(this, 'pointermove', (e: PointerEvent) => {\n if (drag || this.flag('hover')) this.set(at(e), true);\n });\n const up = () => (drag = false);\n this.listen(this, 'pointerup', up);\n this.listen(this, 'pointercancel', up);\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n const map: Record<string, number> = { ArrowLeft: -2, ArrowDown: -2, ArrowRight: 2, ArrowUp: 2, PageDown: -10, PageUp: 10 };\n if (this.vertical) Object.assign(map, { ArrowDown: 2, ArrowUp: -2 });\n if (e.key === 'Home') this.set(0, true);\n else if (e.key === 'End') this.set(100, true);\n else if (e.key in map) this.set(this._p + map[e.key], true);\n else return;\n e.preventDefault();\n });\n if (this.flag('intro') && !this.reduced) {\n let played = false;\n this.inView((v) => {\n if (!v || played) return;\n played = true;\n const end = this._p;\n const t0 = performance.now();\n const step = (now: number) => {\n const k = Math.min(1, (now - t0) / 1400);\n this.paint(end + Math.sin(k * Math.PI * 2) * 22 * (1 - k));\n if (k < 1 && typeof requestAnimationFrame === 'function') requestAnimationFrame(step);\n else this.paint(end);\n };\n if (typeof requestAnimationFrame === 'function') requestAnimationFrame(step);\n }, { threshold: 0.5 });\n }\n }\n\n private paint(p: number): void {\n const v = clampN(p, 0, 100);\n if (this._after) this._after.style.clipPath = this.vertical ? `inset(${v}% 0 0 0)` : `inset(0 0 0 ${v}%)`;\n if (this._handle) this._handle.style[this.vertical ? 'top' : 'left'] = `${v}%`;\n this.style.setProperty('--usa-cmp', `${v}%`);\n }\n\n private set(p: number, user: boolean, ease = false): void {\n const v = Math.round(clampN(p, 0, 100) * 10) / 10;\n const from = this._p;\n this._p = v;\n this.setAttribute('aria-valuenow', String(Math.round(v)));\n this.setAttribute('aria-valuetext', `${Math.round(v)}%`);\n if (ease && !this.reduced && this._after && this._handle) {\n const prop = this.vertical ? 'top' : 'left';\n const clip = (x: number) => (this.vertical ? `inset(${x}% 0 0 0)` : `inset(0 0 0 ${x}%)`);\n this.motion(this._after, [{ clipPath: clip(from) }, { clipPath: clip(v) }], { duration: 320, easing: 'cubic-bezier(.22,1,.36,1)' });\n this.motion(this._handle, [{ [prop]: `${from}%` }, { [prop]: `${v}%` }], { duration: 320, easing: 'cubic-bezier(.22,1,.36,1)' });\n }\n this.paint(v);\n if (user && from !== v) this.emit('change', { position: v });\n }\n }\n return UsaCompare as unknown as CustomElementConstructor;\n },\n { id: 'compare', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part } from './shared';\nimport css from './cube-gallery.css?raw';\n\n/**\n * `<usa-cube-gallery>` (6.5) — a gallery on a turning 3D cube: the current\n * slide and the next one sit on adjacent faces and the cube rotates between\n * them. Swipe / drag, arrow keys, prev / next buttons, `autoplay` (ms;\n * pauses on hover, focus and off screen), `axis=\"y | x\"`. API `next()`,\n * `prev()`, `goTo(i)`, `index`; event `usa:change`. Reduced motion: slides\n * switch with a fade.\n */\nexport interface UsaCubeGalleryElement extends UsaElement {\n readonly index: number;\n next(): void;\n prev(): void;\n goTo(i: number): void;\n}\n\nexport function defineCubeGallery(tag = 'usa-cube-gallery'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCubeGallery extends Base {\n static get observedAttributes(): string[] {\n return ['axis', 'autoplay'];\n }\n private _slides: HTMLElement[] = [];\n private _i = 0;\n private _stage: HTMLElement | null = null;\n private _busy = false;\n private _timer: ReturnType<typeof setInterval> | 0 = 0;\n\n get index(): number {\n return this._i;\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this._slides = ownChildren(this);\n this.dataset.axis = this.str('axis', 'y') === 'x' ? 'x' : 'y';\n this.setAttribute('role', 'region');\n this.setAttribute('aria-roledescription', 'carousel');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Gallery'));\n this.tabIndex = 0;\n const stage = part('div', 'usa-cube-stage');\n this._slides.forEach((s, i) => {\n s.classList.add('usa-cube-face');\n s.setAttribute('role', 'group');\n s.setAttribute('aria-roledescription', 'slide');\n s.setAttribute('aria-label', `${i + 1} of ${this._slides.length}`);\n stage.append(s);\n });\n this.append(stage);\n this._stage = stage;\n const prev = part('button', 'usa-cube-btn usa-cube-prev', { type: 'button', 'aria-label': 'Previous slide' }, '‹');\n const next = part('button', 'usa-cube-btn usa-cube-next', { type: 'button', 'aria-label': 'Next slide' }, '›');\n this.append(prev, next);\n this.listen(prev, 'click', () => this.prev());\n this.listen(next, 'click', () => this.next());\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.target !== this) return;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') this.next();\n else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') this.prev();\n else return;\n e.preventDefault();\n });\n let x0 = NaN;\n this.listen(stage, 'pointerdown', (e: PointerEvent) => (x0 = this.dataset.axis === 'x' ? e.clientY : e.clientX));\n this.listen(stage, 'pointerup', (e: PointerEvent) => {\n if (Number.isNaN(x0)) return;\n const d = (this.dataset.axis === 'x' ? e.clientY : e.clientX) - x0;\n x0 = NaN;\n if (Math.abs(d) > 40) (d < 0 ? this.next() : this.prev());\n });\n this._i = Math.min(this._i, Math.max(0, this._slides.length - 1));\n this.show();\n const ms = this.num('autoplay', 0);\n if (ms > 0 && !this.reduced) {\n let hold = false;\n let vis = true;\n const pause = (v: boolean) => (hold = v);\n this.listen(this, 'pointerenter', () => pause(true));\n this.listen(this, 'pointerleave', () => pause(false));\n this.listen(this, 'focusin', () => pause(true));\n this.listen(this, 'focusout', () => pause(false));\n this.inView((v) => (vis = v));\n this._timer = setInterval(() => !hold && vis && this.next(), Math.max(1200, ms));\n this.onCleanup(() => this._timer && clearInterval(this._timer));\n }\n }\n\n private show(): void {\n this._slides.forEach((s, k) => {\n const on = k === this._i;\n s.toggleAttribute('data-active', on);\n s.inert = !on;\n s.style.transform = '';\n });\n }\n\n goTo(i: number): void {\n const n = this._slides.length;\n if (!n || this._busy) return;\n const to = ((i % n) + n) % n;\n if (to === this._i) return;\n const from = this._i;\n const dir = (to > from && !(from === 0 && to === n - 1)) || (from === n - 1 && to === 0) ? 1 : -1;\n const a = this._slides[from];\n const b = this._slides[to];\n this._i = to;\n this.emit('change', { index: to, from });\n if (this.reduced || !this._stage) {\n this.show();\n this.motion(b, [{ opacity: 0 }, { opacity: 1 }], { duration: 200 });\n return;\n }\n // b waits on the adjacent face; the stage turns by 90°\n const ax = this.dataset.axis === 'x' ? 'X' : 'Y';\n const half = `${(((ax === 'Y' ? this.offsetWidth : this.offsetHeight) || 280) / 2).toFixed(1)}px`;\n const faceB = ax === 'Y' ? `rotateY(${dir * 90}deg) translateZ(${half})` : `rotateX(${-dir * 90}deg) translateZ(${half})`;\n b.setAttribute('data-active', '');\n b.style.transform = faceB;\n a.style.transform = `translateZ(${half})`;\n this._busy = true;\n const turn = ax === 'Y' ? `rotateY(${-dir * 90}deg)` : `rotateX(${dir * 90}deg)`;\n const anim = this.motion(this._stage, [{ transform: `translateZ(-${half}) rotate${ax}(0deg)` }, { transform: `translateZ(-${half}) ${turn}` }], { duration: 780, easing: 'cubic-bezier(.65,.05,.3,1)' });\n const end = () => {\n this._busy = false;\n this.show();\n };\n if (anim) anim.finished.then(end, end);\n else end();\n }\n\n next(): void {\n this.goTo(this._i + 1);\n }\n prev(): void {\n this.goTo(this._i - 1);\n }\n }\n return UsaCubeGallery as unknown as CustomElementConstructor;\n },\n { id: 'cube-gallery', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './dock.css?raw';\n\n/**\n * `<usa-dock>` (6.6) — a macOS-style dock: items magnify with a smooth\n * cosine falloff as the pointer moves along it, neighbours make room, and a\n * click bounces the item (`bounce`). Children are the items (`<a>` /\n * `<button>`, each with an accessible name); `data-label` shows a tooltip\n * label above the hovered item. Attributes: `magnify` (max scale, 1.9),\n * `range` (px of influence, 140), `orientation=\"horizontal | vertical\"`.\n * Keyboard focus magnifies the focused item. Reduced motion: no\n * magnification or bounce (labels still show).\n */\nexport interface UsaDockElement extends UsaElement {\n readonly items: HTMLElement[];\n}\n\nexport function defineDock(tag = 'usa-dock'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaDock extends Base {\n static get observedAttributes(): string[] {\n return ['orientation', 'magnify', 'range'];\n }\n private _items: HTMLElement[] = [];\n private _raf = 0;\n\n get items(): HTMLElement[] {\n return this._items;\n }\n\n mount(): void {\n this.dataset.orientation = this.str('orientation', 'horizontal') === 'vertical' ? 'vertical' : 'horizontal';\n this.setAttribute('role', this.getAttribute('role') || 'toolbar');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Dock'));\n this._items = ownChildren(this);\n this._items.forEach((it) => {\n it.classList.add('usa-dock-item');\n if (it.dataset.label && !it.getAttribute('aria-label') && !it.textContent?.trim()) it.setAttribute('aria-label', it.dataset.label);\n this.listen(it, 'click', () => this.bounce(it));\n this.listen(it, 'focus', () => this.magnifyAt(this.center(it)));\n this.listen(it, 'blur', () => this.magnifyAt(null));\n });\n this.listen(this, 'pointermove', (e: PointerEvent) => {\n const v = this.dataset.orientation === 'vertical' ? e.clientY : e.clientX;\n if (!this._raf) this._raf = typeof requestAnimationFrame === 'function' ? requestAnimationFrame(() => ((this._raf = 0), this.magnifyAt(v))) : (this.magnifyAt(v), 0);\n });\n this.listen(this, 'pointerleave', () => this.magnifyAt(null));\n this.onCleanup(() => {\n if (this._raf && typeof cancelAnimationFrame === 'function') cancelAnimationFrame(this._raf);\n });\n }\n\n private center(it: HTMLElement): number {\n const r = it.getBoundingClientRect();\n return this.dataset.orientation === 'vertical' ? r.top + r.height / 2 : r.left + r.width / 2;\n }\n\n /** Scale every item by its distance to `pos` (client px), or reset with `null`. */\n magnifyAt(pos: number | null): void {\n const max = this.num('magnify', 1.9);\n const range = Math.max(20, this.num('range', 140));\n for (const it of this._items) {\n let s = 1;\n if (pos !== null && !this.reduced) {\n const d = Math.abs(this.center(it) - pos);\n if (d < range) s = 1 + (max - 1) * (0.5 + 0.5 * Math.cos((d / range) * Math.PI));\n }\n it.style.setProperty('--usa-dock-s', s.toFixed(3));\n it.toggleAttribute('data-near', s > 1.5 || (pos !== null && this.reduced && Math.abs(this.center(it) - pos) < 24));\n }\n }\n\n bounce(it: HTMLElement): void {\n if (this.reduced || !this.flag('bounce')) return;\n const v = this.dataset.orientation === 'vertical';\n this.motion(it, [{ translate: '0 0' }, { translate: v ? '18px 0' : '0 -22px', offset: 0.3 }, { translate: '0 0', offset: 0.55 }, { translate: v ? '8px 0' : '0 -9px', offset: 0.75 }, { translate: '0 0' }], { duration: 760, easing: 'ease-out' });\n }\n }\n return UsaDock as unknown as CustomElementConstructor;\n },\n { id: 'dock', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, part, arrowIndex } from './shared';\nimport css from './nav-morph.css?raw';\n\n/**\n * `<usa-nav-morph>` (6.6) — navigation links with an indicator that morphs\n * between them: it follows the hovered / focused link (stretching from the\n * old one, leading edge first) and settles back on the current page\n * (`aria-current=\"page\"`, `active` index, or a click). `indicator=\"underline |\n * pill | blob | dot\"`. Arrow keys move focus across links. Event\n * `usa:change` (`{ index }`). Reduced motion: the indicator jumps.\n */\nexport interface UsaNavMorphElement extends UsaElement {\n active: number;\n}\n\nexport const NAV_INDICATORS = ['underline', 'pill', 'blob', 'dot'] as const;\n\nexport function defineNavMorph(tag = 'usa-nav-morph'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaNavMorph extends Base {\n static get observedAttributes(): string[] {\n return ['indicator'];\n }\n private _links: HTMLElement[] = [];\n private _ink: HTMLElement | null = null;\n private _active = 0;\n private _at = -1;\n\n get active(): number {\n return this._active;\n }\n set active(i: number) {\n this.setActive(i, false);\n }\n\n mount(): void {\n const ind = this.str('indicator', 'underline');\n this.dataset.indicator = (NAV_INDICATORS as readonly string[]).includes(ind) ? ind : 'underline';\n if (this.localName !== 'nav' && !this.hasAttribute('role')) this.setAttribute('role', 'navigation');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Main'));\n this.querySelectorAll(':scope > .usa-nm-ink').forEach((n) => n.remove());\n this._links = ownChildren(this);\n this._ink = part('span', 'usa-nm-ink', { 'aria-hidden': 'true' });\n this.prepend(this._ink);\n const cur = this._links.findIndex((l) => l.getAttribute('aria-current') === 'page');\n this._active = cur >= 0 ? cur : Math.max(0, Math.min(this._links.length - 1, Math.round(this.num('active', 0))));\n this._at = -1;\n this._links.forEach((l, i) => {\n this.listen(l, 'pointerenter', () => this.moveTo(i));\n this.listen(l, 'focus', () => this.moveTo(i));\n this.listen(l, 'click', () => this.setActive(i, true));\n this.listen(l, 'keydown', (e: KeyboardEvent) => {\n const n = arrowIndex(e, i, this._links.length);\n if (n >= 0) {\n e.preventDefault();\n this._links[n].focus();\n }\n });\n });\n this.listen(this, 'pointerleave', () => this.moveTo(this._active));\n this.listen(this, 'focusout', (e: FocusEvent) => !this.contains(e.relatedTarget as Node) && this.moveTo(this._active));\n this.sync();\n this.moveTo(this._active);\n if (typeof ResizeObserver === 'function') {\n const ro = new ResizeObserver(() => this.place(this._at < 0 ? this._active : this._at));\n ro.observe(this);\n this.onCleanup(() => ro.disconnect());\n }\n }\n\n private rect(i: number): [number, number] {\n const l = this._links[i];\n return l ? [l.offsetLeft, l.offsetWidth] : [0, 0];\n }\n\n private place(i: number): void {\n if (!this._ink) return;\n const [x, w] = this.rect(i);\n this._ink.style.transform = `translateX(${x}px)`;\n this._ink.style.width = `${w}px`;\n }\n\n private moveTo(i: number): void {\n const from = this._at;\n this._at = i;\n this.place(i);\n if (from < 0 || from === i || this.reduced || !this._ink) return;\n const [x0, w0] = this.rect(from);\n const [x1, w1] = this.rect(i);\n const mid = x1 > x0 ? { transform: `translateX(${x0}px)`, width: `${x1 + w1 - x0}px` } : { transform: `translateX(${x1}px)`, width: `${x0 + w0 - x1}px` };\n const blob = this.dataset.indicator === 'blob';\n this.motion(this._ink, [\n { transform: `translateX(${x0}px)`, width: `${w0}px` },\n { ...mid, offset: 0.4, ...(blob ? { borderRadius: '40% 60% 55% 45% / 60% 40% 60% 40%' } : {}) },\n { transform: `translateX(${x1}px)`, width: `${w1}px` },\n ], { duration: 420, easing: 'cubic-bezier(.22,1,.36,1)' });\n }\n\n private sync(): void {\n this._links.forEach((l, k) => {\n if (k === this._active) l.setAttribute('aria-current', 'page');\n else if (l.getAttribute('aria-current') === 'page') l.removeAttribute('aria-current');\n });\n }\n\n private setActive(i: number, user: boolean): void {\n const n = Math.max(0, Math.min(this._links.length - 1, Math.round(i)));\n const changed = n !== this._active;\n this._active = n;\n this.sync();\n this.moveTo(n);\n if (changed && user) this.emit('change', { index: n });\n }\n }\n return UsaNavMorph as unknown as CustomElementConstructor;\n },\n { id: 'nav-morph', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './menu-toggle.css?raw';\n\n/**\n * `<usa-menu-toggle>` (6.6) — the hamburger button that morphs into its\n * \"open\" icon: `variant=\"cross\"` (✕, default), `arrow` (←), `minus` (—) or\n * `plus-x` (+ turning into ✕). It is a real `<button>`-like control\n * (`role=\"button\"`, Space / Enter, `aria-expanded`); `for=\"<id>\"` sets\n * `aria-controls` and toggles the `hidden` attribute (or `.open()` /\n * `.close()` / `.show()`) of that element. `pressed` reflects the state.\n * Event `usa:toggle` (`{ open }`). Reduced motion: the icon switches without\n * the morph.\n */\nexport interface UsaMenuToggleElement extends UsaElement {\n open: boolean;\n toggle(force?: boolean): void;\n}\n\nexport const TOGGLE_VARIANTS = ['cross', 'arrow', 'minus', 'plus-x'] as const;\n\nexport function defineMenuToggle(tag = 'usa-menu-toggle'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMenuToggle extends Base {\n static get observedAttributes(): string[] {\n return ['variant'];\n }\n private _open = false;\n\n get open(): boolean {\n return this._open;\n }\n set open(v: boolean) {\n this.toggle(v);\n }\n\n mount(): void {\n const v = this.str('variant', 'cross');\n this.dataset.variant = (TOGGLE_VARIANTS as readonly string[]).includes(v) ? v : 'cross';\n if (!this.querySelector(':scope > .usa-mt-box')) {\n const box = document.createElement('span');\n box.className = 'usa-mt-box';\n box.setAttribute('aria-hidden', 'true');\n box.setAttribute('data-usa-part', '');\n box.innerHTML = '<span class=\"usa-mt-bar\"></span><span class=\"usa-mt-bar\"></span><span class=\"usa-mt-bar\"></span>';\n this.prepend(box);\n }\n this.setAttribute('role', 'button');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (!this.hasAttribute('aria-label') && !this.textContent?.trim()) this.setAttribute('aria-label', this.str('label', 'Menu'));\n const id = this.str('for', '');\n if (id) this.setAttribute('aria-controls', id);\n this._open = this.flag('pressed');\n this.sync(false);\n this.listen(this, 'click', () => this.toggle());\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.toggle();\n }\n });\n }\n\n private sync(animate: boolean): void {\n this.setAttribute('aria-expanded', String(this._open));\n this.toggleAttribute('data-open', this._open);\n this.toggleAttribute('data-animate', animate && !this.reduced);\n const target = this.str('for', '') ? (document.getElementById(this.str('for', '')) as (HTMLElement & { open?: unknown; show?: () => void; close?: () => void }) | null) : null;\n if (!target || !animate) return;\n if (this._open && typeof target.show === 'function') target.show();\n else if (!this._open && typeof target.close === 'function') target.close();\n else target.hidden = !this._open;\n }\n\n toggle(force?: boolean): void {\n const next = typeof force === 'boolean' ? force : !this._open;\n if (next === this._open) return;\n this._open = next;\n this.toggleAttribute('pressed', next);\n this.sync(true);\n this.emit('toggle', { open: next });\n }\n }\n return UsaMenuToggle as unknown as CustomElementConstructor;\n },\n { id: 'menu-toggle', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { part, nextId } from './shared';\nimport css from './tip.css?raw';\n\n/**\n * `<usa-tip>` (6.6) — tooltip / popover 2.0. Wrap the trigger; the tip\n * content is the `text` attribute or a child with `[slot=\"tip\"]` / `[data-tip]`\n * (rich content). It springs out of the trigger with its arrow,\n * auto-flips to stay inside the viewport and shifts along the edge.\n * `placement=\"top | bottom | left | right\"`, `trigger=\"hover | click\"`\n * (`click` = popover: toggles, Esc / outside click close), `delay` (ms).\n * Hover tips also open on keyboard focus and close on Esc (WCAG 1.4.13).\n * Events `usa:open`, `usa:close`. Reduced motion: a short fade.\n */\nexport interface UsaTipElement extends UsaElement {\n readonly opened: boolean;\n show(): void;\n hide(): void;\n}\n\nexport const TIP_PLACEMENTS = ['top', 'bottom', 'left', 'right'] as const;\nconst FLIP: Record<string, string> = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' };\n\nexport function defineTip(tag = 'usa-tip'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaTip extends Base {\n static get observedAttributes(): string[] {\n return ['text', 'placement', 'trigger'];\n }\n private _bubble: HTMLElement | null = null;\n private _trigger: HTMLElement | null = null;\n private _open = false;\n private _t: ReturnType<typeof setTimeout> | 0 = 0;\n\n get opened(): boolean {\n return this._open;\n }\n\n mount(): void {\n this.querySelectorAll(':scope > .usa-tip-bubble[data-usa-part]').forEach((n) => n.remove());\n const rich = this.querySelector<HTMLElement>(':scope > [slot=\"tip\"], :scope > [data-tip]');\n this._trigger = Array.from(this.children).find((c) => c !== rich && !c.matches('.usa-tip-bubble')) as HTMLElement | null;\n const b = rich || part('span', 'usa-tip-bubble');\n b.classList.add('usa-tip-bubble');\n if (!rich) b.textContent = this.str('text', '');\n b.id ||= nextId('usa-tipb');\n b.hidden = true;\n if (!b.querySelector(':scope > .usa-tip-arrow')) b.append(part('span', 'usa-tip-arrow', { 'aria-hidden': 'true' }));\n if (!b.isConnected) this.append(b);\n this._bubble = b;\n const click = this.str('trigger', 'hover') === 'click';\n b.setAttribute('role', click ? 'dialog' : 'tooltip');\n const t = this._trigger;\n if (t) {\n if (click) {\n t.setAttribute('aria-expanded', 'false');\n t.setAttribute('aria-controls', b.id);\n t.setAttribute('aria-haspopup', 'dialog');\n this.listen(t, 'click', () => (this._open ? this.hide() : this.show()));\n this.listen(document, 'pointerdown', (e: PointerEvent) => this._open && !this.contains(e.target as Node) && this.hide());\n } else {\n t.setAttribute('aria-describedby', b.id);\n const delay = this.num('delay', 120);\n const later = (fn: () => void, ms: number) => {\n if (this._t) clearTimeout(this._t);\n this._t = setTimeout(fn, ms);\n };\n this.listen(this, 'pointerenter', () => later(() => this.show(), delay));\n this.listen(this, 'pointerleave', () => later(() => this.hide(), 80));\n this.listen(t, 'focusin', () => this.show());\n this.listen(t, 'focusout', () => this.hide());\n this.onCleanup(() => this._t && clearTimeout(this._t));\n }\n }\n this.listen(document, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Escape' && this._open) {\n this.hide();\n if (click) t?.focus();\n }\n });\n }\n\n private position(): string {\n const b = this._bubble!;\n const t = this._trigger || this;\n const want = (TIP_PLACEMENTS as readonly string[]).includes(this.str('placement', 'top')) ? this.str('placement', 'top') : 'top';\n const tr = t.getBoundingClientRect();\n const br = b.getBoundingClientRect();\n const vw = document.documentElement.clientWidth || window.innerWidth || 1024;\n const vh = window.innerHeight || 768;\n const gap = 10;\n const fits = (p: string) => (p === 'top' ? tr.top - br.height - gap >= 4 : p === 'bottom' ? tr.bottom + br.height + gap <= vh - 4 : p === 'left' ? tr.left - br.width - gap >= 4 : tr.right + br.width + gap <= vw - 4);\n const place = fits(want) || !fits(FLIP[want]) ? want : FLIP[want];\n const host = this.getBoundingClientRect();\n let x: number;\n let y: number;\n if (place === 'top' || place === 'bottom') {\n x = tr.left + tr.width / 2 - br.width / 2;\n y = place === 'top' ? tr.top - br.height - gap : tr.bottom + gap;\n } else {\n x = place === 'left' ? tr.left - br.width - gap : tr.right + gap;\n y = tr.top + tr.height / 2 - br.height / 2;\n }\n const cx = Math.min(Math.max(4, x), Math.max(4, vw - br.width - 4)); // shift inside the viewport\n b.style.left = `${(cx - host.left).toFixed(1)}px`;\n b.style.top = `${(y - host.top).toFixed(1)}px`;\n b.style.setProperty('--usa-tip-shift', `${(x - cx).toFixed(1)}px`);\n b.dataset.placement = place;\n return place;\n }\n\n show(): void {\n const b = this._bubble;\n if (!b || this._open) return;\n this._open = true;\n b.hidden = false;\n const place = this.position();\n this._trigger?.setAttribute('aria-expanded', this._trigger.hasAttribute('aria-expanded') ? 'true' : '');\n if (this._trigger?.getAttribute('aria-expanded') === '') this._trigger.removeAttribute('aria-expanded');\n const off = place === 'top' ? '0 6px' : place === 'bottom' ? '0 -6px' : place === 'left' ? '6px 0' : '-6px 0';\n this.motion(b, this.reduced ? [{ opacity: 0 }, { opacity: 1 }] : [{ opacity: 0, translate: off, scale: '0.6' }, { opacity: 1, translate: '0 0', scale: '1.04', offset: 0.65 }, { opacity: 1, translate: '0 0', scale: '1' }], { duration: this.reduced ? 120 : 340, easing: 'cubic-bezier(.3,1.3,.5,1)' });\n this.emit('open');\n }\n\n hide(): void {\n const b = this._bubble;\n if (!b || !this._open) return;\n this._open = false;\n if (this._trigger?.hasAttribute('aria-expanded')) this._trigger.setAttribute('aria-expanded', 'false');\n const a = this.motion(b, [{ opacity: 1 }, { opacity: 0, scale: this.reduced ? '1' : '0.9' }], { duration: 120, easing: 'ease-in' });\n const done = () => {\n if (!this._open) b.hidden = true;\n };\n if (a) a.finished.then(done, done);\n else done();\n this.emit('close');\n }\n }\n return UsaTip as unknown as CustomElementConstructor;\n },\n { id: 'tip', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, clampN } from './shared';\nimport css from './stepper.css?raw';\n\n/**\n * `<usa-stepper>` (6.7) — a step indicator / wizard. Each child is a step\n * (its text is the label). `value` is the current step (0-based); finished\n * steps pop a check mark, the connecting rail fills toward the current step\n * and the current step pulses once. `orientation=\"vertical\"` stacks the\n * steps. `next()` / `prev()` / `value`; event `usa:change` (`{ value }`).\n * The list is an ordered list with `aria-current=\"step\"`. Reduced motion: no\n * pop or pulse, the rail jumps.\n */\nexport interface UsaStepperElement extends UsaElement {\n value: number;\n readonly steps: HTMLElement[];\n next(): void;\n prev(): void;\n}\n\nexport function defineStepper(tag = 'usa-stepper'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaStepper extends Base {\n static get observedAttributes(): string[] {\n return ['orientation'];\n }\n private _steps: HTMLElement[] = [];\n private _v = 0;\n private _fill: HTMLElement | null = null;\n\n get steps(): HTMLElement[] {\n return this._steps;\n }\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this.go(v);\n }\n\n mount(): void {\n this.dataset.orientation = this.str('orientation', 'horizontal') === 'vertical' ? 'vertical' : 'horizontal';\n this.setAttribute('role', 'list');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Progress'));\n this._steps = ownChildren(this);\n if (!this.querySelector(':scope > .usa-st-rail')) {\n const rail = document.createElement('span');\n rail.className = 'usa-st-rail';\n rail.setAttribute('data-usa-part', '');\n rail.setAttribute('aria-hidden', 'true');\n rail.innerHTML = '<span class=\"usa-st-fill\"></span>';\n this.prepend(rail);\n }\n this._fill = this.querySelector('.usa-st-fill');\n this._steps.forEach((s, i) => {\n s.classList.add('usa-st-step');\n s.setAttribute('role', 'listitem');\n s.style.setProperty('--usa-st-i', String(i));\n if (!s.querySelector(':scope > .usa-st-dot')) {\n const d = document.createElement('span');\n d.className = 'usa-st-dot';\n d.setAttribute('aria-hidden', 'true');\n d.setAttribute('data-usa-part', '');\n d.innerHTML = `<span class=\"usa-st-num\">${i + 1}</span><svg class=\"usa-st-check\" viewBox=\"0 0 16 16\"><path d=\"M3 8.5l3.2 3L13 4.8\"/></svg>`;\n s.prepend(d);\n }\n if (s.hasAttribute('data-clickable') || this.flag('clickable')) this.listen(s, 'click', () => this.go(i));\n });\n this._v = clampN(this.num('value', 0) | 0, 0, Math.max(0, this._steps.length - 1));\n this.sync(-1);\n }\n\n private sync(prev: number): void {\n const n = this._steps.length;\n this._steps.forEach((s, i) => {\n s.toggleAttribute('data-done', i < this._v);\n s.toggleAttribute('data-current', i === this._v);\n if (i === this._v) s.setAttribute('aria-current', 'step');\n else s.removeAttribute('aria-current');\n });\n const pct = n > 1 ? (this._v / (n - 1)) * 100 : 0;\n this.style.setProperty('--usa-st-p', pct.toFixed(2) + '%');\n if (prev < 0 || this.reduced) return;\n const cur = this._steps[this._v]?.querySelector('.usa-st-dot');\n if (cur) this.motion(cur, [{ transform: 'scale(1)', boxShadow: '0 0 0 0 rgba(124,92,255,.55)' }, { transform: 'scale(1.18)', offset: 0.35 }, { transform: 'scale(1)', boxShadow: '0 0 0 12px rgba(124,92,255,0)' }], { duration: 620, easing: 'ease-out' });\n if (this._v > prev) {\n const done = this._steps[prev]?.querySelector('.usa-st-check');\n if (done) this.motion(done, [{ strokeDashoffset: 20, transform: 'scale(.4)' }, { strokeDashoffset: 0, transform: 'scale(1)' }], { duration: 420, easing: 'cubic-bezier(.3,1.4,.5,1)' });\n }\n }\n\n go(i: number): void {\n const v = clampN(Math.round(i), 0, Math.max(0, this._steps.length - 1));\n if (v === this._v) return;\n const prev = this._v;\n this._v = v;\n this.setAttribute('value', String(v));\n this.sync(prev);\n this.emit('change', { value: v });\n }\n next(): void {\n this.go(this._v + 1);\n }\n prev(): void {\n this.go(this._v - 1);\n }\n }\n return UsaStepper as unknown as CustomElementConstructor;\n },\n { id: 'stepper', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN, dropParts } from './shared';\nimport css from './pagination.css?raw';\n\n/**\n * `<usa-pagination>` (6.7) — page buttons with a sliding \"ink\" that springs\n * to the current page (squashing as it travels) and numbers that slide in\n * from the direction of travel when the window of pages shifts. Attributes\n * `total`, `page` (1-based), `siblings` (pages each side, 1). Prev / next\n * buttons, ellipses, `aria-current=\"page\"`; event `usa:change` (`{ page }`).\n * Reduced motion: the ink jumps and numbers do not slide.\n */\nexport interface UsaPaginationElement extends UsaElement {\n page: number;\n readonly total: number;\n}\n\n/** The visible page list: numbers and `'…'` gaps (1-based). */\nexport function pageWindow(page: number, total: number, siblings = 1): (number | '…')[] {\n const out: (number | '…')[] = [];\n const lo = Math.max(2, page - siblings);\n const hi = Math.min(total - 1, page + siblings);\n out.push(1);\n if (lo > 2) out.push('…');\n for (let p = lo; p <= hi; p++) out.push(p);\n if (hi < total - 1) out.push('…');\n if (total > 1) out.push(total);\n return out;\n}\n\nexport function definePagination(tag = 'usa-pagination'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaPagination extends Base {\n static get observedAttributes(): string[] {\n return ['total', 'siblings'];\n }\n private _page = 1;\n private _ink: HTMLElement | null = null;\n private _list: HTMLElement | null = null;\n\n get total(): number {\n return Math.max(1, this.num('total', 1) | 0);\n }\n get page(): number {\n return this._page;\n }\n set page(p: number) {\n this.go(p);\n }\n\n mount(): void {\n dropParts(this);\n this.setAttribute('role', 'navigation');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Pagination'));\n this._page = clampN(this.num('page', 1) | 0, 1, this.total);\n const prev = this.btn('‹', 'Previous page', 'usa-pg-prev');\n const next = this.btn('›', 'Next page', 'usa-pg-next');\n this._list = document.createElement('span');\n this._list.className = 'usa-pg-list';\n this._list.setAttribute('data-usa-part', '');\n this._ink = document.createElement('span');\n this._ink.className = 'usa-pg-ink';\n this._ink.setAttribute('aria-hidden', 'true');\n this._list.appendChild(this._ink);\n this.append(prev, this._list, next);\n this.listen(prev, 'click', () => this.go(this._page - 1));\n this.listen(next, 'click', () => this.go(this._page + 1));\n this.listen(this._list, 'click', (e: Event) => {\n const b = (e.target as HTMLElement).closest?.('[data-page]') as HTMLElement | null;\n if (b) this.go(Number(b.dataset.page));\n });\n this.render(0);\n }\n\n private btn(txt: string, label: string, cls: string): HTMLButtonElement {\n const b = document.createElement('button');\n b.type = 'button';\n b.className = 'usa-pg-btn ' + cls;\n b.textContent = txt;\n b.setAttribute('aria-label', label);\n b.setAttribute('data-usa-part', '');\n return b;\n }\n\n private render(dir: number): void {\n const list = this._list!;\n const old = new Map(Array.from(list.querySelectorAll<HTMLElement>('[data-page]')).map((b) => [b.dataset.page, b]));\n list.querySelectorAll('.usa-pg-btn,.usa-pg-gap').forEach((n) => n.remove());\n for (const p of pageWindow(this._page, this.total, Math.max(0, this.num('siblings', 1) | 0))) {\n if (p === '…') {\n const g = document.createElement('span');\n g.className = 'usa-pg-gap';\n g.textContent = '…';\n g.setAttribute('aria-hidden', 'true');\n list.appendChild(g);\n continue;\n }\n const b = this.btn(String(p), `Page ${p}`, 'usa-pg-num');\n b.dataset.page = String(p);\n if (p === this._page) b.setAttribute('aria-current', 'page');\n list.appendChild(b);\n if (dir && !old.has(String(p)) && !this.reduced) this.motion(b, [{ transform: `translateX(${dir * 14}px)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 280, easing: 'ease-out' });\n }\n (this.querySelector('.usa-pg-prev') as HTMLButtonElement).disabled = this._page <= 1;\n (this.querySelector('.usa-pg-next') as HTMLButtonElement).disabled = this._page >= this.total;\n this.placeInk(dir !== 0);\n }\n\n private placeInk(animate: boolean): void {\n const cur = this._list?.querySelector<HTMLElement>('[aria-current=\"page\"]');\n const ink = this._ink;\n if (!cur || !ink) return;\n const from = ink.style.transform;\n const to = `translateX(${cur.offsetLeft}px)`;\n ink.style.width = cur.offsetWidth + 'px';\n ink.style.transform = to;\n if (animate && from && from !== to && !this.reduced) this.motion(ink, [{ transform: from }, { transform: `${to} scaleX(1.35) scaleY(.8)`, offset: 0.55 }, { transform: to }], { duration: 420, easing: 'cubic-bezier(.3,1.3,.5,1)' });\n }\n\n go(p: number): void {\n const v = clampN(Math.round(p), 1, this.total);\n if (v === this._page) return;\n const dir = v > this._page ? 1 : -1;\n this._page = v;\n this.setAttribute('page', String(v));\n this.render(dir);\n this.emit('change', { page: v });\n }\n }\n return UsaPagination as unknown as CustomElementConstructor;\n },\n { id: 'pagination', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren, arrowIndex, clampN } from './shared';\nimport css from './segmented.css?raw';\n\n/**\n * `<usa-segmented>` (6.7) — a segmented control (iOS style): a thumb slides\n * under the chosen segment with a spring and stretches while it travels;\n * the chosen label scales up slightly. Children are the segments (buttons\n * or any element). It is a radio group (`role=\"radiogroup\"`, arrow keys,\n * Home / End, roving tabindex). `value` is the selected index; `usa:change`\n * (`{ value, label }`). `variant=\"ios | pill | outline\"`. Reduced motion:\n * the thumb jumps.\n */\nexport interface UsaSegmentedElement extends UsaElement {\n value: number;\n readonly segments: HTMLElement[];\n}\n\nexport const SEGMENTED_VARIANTS = ['ios', 'pill', 'outline'] as const;\n\nexport function defineSegmented(tag = 'usa-segmented'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSegmented extends Base {\n static get observedAttributes(): string[] {\n return ['variant'];\n }\n private _segs: HTMLElement[] = [];\n private _v = 0;\n private _thumb: HTMLElement | null = null;\n\n get segments(): HTMLElement[] {\n return this._segs;\n }\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this.select(v, false);\n }\n\n mount(): void {\n const v = this.str('variant', 'ios');\n this.dataset.variant = (SEGMENTED_VARIANTS as readonly string[]).includes(v) ? v : 'ios';\n this.setAttribute('role', 'radiogroup');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Options'));\n this._segs = ownChildren(this);\n if (!this.querySelector(':scope > .usa-seg-thumb')) {\n const t = document.createElement('span');\n t.className = 'usa-seg-thumb';\n t.setAttribute('aria-hidden', 'true');\n t.setAttribute('data-usa-part', '');\n this.prepend(t);\n }\n this._thumb = this.querySelector('.usa-seg-thumb');\n const pre = this._segs.findIndex((s) => s.hasAttribute('selected') || s.getAttribute('aria-checked') === 'true');\n this._v = clampN(pre >= 0 ? pre : this.num('value', 0) | 0, 0, Math.max(0, this._segs.length - 1));\n this._segs.forEach((s, i) => {\n s.classList.add('usa-seg-item');\n s.setAttribute('role', 'radio');\n this.listen(s, 'click', () => this.select(i, true));\n this.listen(s, 'keydown', (e: KeyboardEvent) => {\n const j = arrowIndex(e, i, this._segs.length);\n if (j < 0) return;\n e.preventDefault();\n this.select(j, true);\n this._segs[j].focus();\n });\n });\n this.sync(false);\n if (typeof ResizeObserver === 'function') {\n const ro = new ResizeObserver(() => this.place(false));\n ro.observe(this);\n this.onCleanup(() => ro.disconnect());\n }\n }\n\n private sync(animate: boolean): void {\n this._segs.forEach((s, i) => {\n s.setAttribute('aria-checked', String(i === this._v));\n s.tabIndex = i === this._v ? 0 : -1;\n s.toggleAttribute('data-selected', i === this._v);\n });\n this.place(animate);\n }\n\n private place(animate: boolean): void {\n const s = this._segs[this._v];\n const t = this._thumb;\n if (!s || !t) return;\n const from = { x: t.offsetLeft, w: t.offsetWidth };\n t.style.left = s.offsetLeft + 'px';\n t.style.width = s.offsetWidth + 'px';\n if (!animate || this.reduced || !from.w) return;\n const dx = from.x - s.offsetLeft;\n const sx = from.w / (s.offsetWidth || 1);\n this.motion(t, [{ transform: `translateX(${dx}px) scaleX(${sx})` }, { transform: `translateX(${dx * 0.35}px) scaleX(${Math.max(sx, 1) * 1.18}) scaleY(.88)`, offset: 0.45 }, { transform: 'none' }], { duration: 430, easing: 'cubic-bezier(.3,1.25,.5,1)' });\n }\n\n select(i: number, user: boolean): void {\n const v = clampN(i | 0, 0, Math.max(0, this._segs.length - 1));\n if (v === this._v) return;\n this._v = v;\n this.sync(true);\n if (user) this.emit('change', { value: v, label: this._segs[v]?.textContent?.trim() || '' });\n }\n }\n return UsaSegmented as unknown as CustomElementConstructor;\n },\n { id: 'segmented', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './switch.css?raw';\n\n/**\n * `<usa-switch>` (6.7) — toggle switch variants: `ios` (the thumb stretches\n * while pressed and slides), `daynight` (sun → moon with stars and\n * clouds), `bounce` (the thumb squashes and bounces at the end) and\n * `liquid` (a gooey fill pours behind the thumb). A real switch:\n * `role=\"switch\"`, `aria-checked`, Space / Enter, `disabled`; `checked`\n * property / attribute; inside a `<form>` with `name` it submits `value`\n * (\"on\") when checked. Event `usa:change` (`{ checked }`). Reduced motion:\n * no squash, bounce or pour — it just switches.\n */\nexport interface UsaSwitchElement extends UsaElement {\n checked: boolean;\n toggle(force?: boolean): void;\n}\n\nexport const SWITCH_VARIANTS = ['ios', 'daynight', 'bounce', 'liquid'] as const;\n\nexport function defineSwitch(tag = 'usa-switch'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSwitch extends Base {\n static get observedAttributes(): string[] {\n return ['variant'];\n }\n private _on = false;\n private _input: HTMLInputElement | null = null;\n\n get checked(): boolean {\n return this._on;\n }\n set checked(v: boolean) {\n this.toggle(!!v, false);\n }\n\n mount(): void {\n const v = this.str('variant', 'ios');\n this.dataset.variant = (SWITCH_VARIANTS as readonly string[]).includes(v) ? v : 'ios';\n if (!this.querySelector(':scope > .usa-sw-track')) {\n const t = document.createElement('span');\n t.className = 'usa-sw-track';\n t.setAttribute('aria-hidden', 'true');\n t.setAttribute('data-usa-part', '');\n t.innerHTML = '<span class=\"usa-sw-fill\"></span><span class=\"usa-sw-deco\"></span><span class=\"usa-sw-thumb\"></span>';\n this.prepend(t);\n }\n this.setAttribute('role', 'switch');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (!this.hasAttribute('aria-label') && !this.textContent?.trim()) this.setAttribute('aria-label', this.str('label', 'Toggle'));\n this._on = this.flag('checked');\n if (this.str('name', '') && !this._input) {\n this._input = document.createElement('input');\n this._input.type = 'hidden';\n this._input.setAttribute('data-usa-part', '');\n this.appendChild(this._input);\n }\n this.sync(false);\n const thumb = this.querySelector('.usa-sw-thumb') as HTMLElement;\n this.listen(this, 'pointerdown', () => !this.reduced && this.toggleAttribute('data-press', true));\n this.listen(this, 'pointerup', () => this.removeAttribute('data-press'));\n this.listen(this, 'pointerleave', () => this.removeAttribute('data-press'));\n this.listen(this, 'click', () => this.toggle(undefined, true));\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n this.toggle(undefined, true);\n }\n });\n void thumb;\n }\n\n private sync(animate: boolean): void {\n this.setAttribute('aria-checked', String(this._on));\n this.toggleAttribute('data-on', this._on);\n this.toggleAttribute('data-animate', animate && !this.reduced);\n if (this._input) {\n this._input.name = this.str('name', '');\n this._input.value = this.str('value', 'on');\n this._input.disabled = !this._on;\n }\n if (!animate || this.reduced) return;\n const thumb = this.querySelector('.usa-sw-thumb');\n if (thumb && this.dataset.variant === 'bounce') this.motion(thumb, [{ scale: '1 1' }, { scale: '1.35 .7', offset: 0.55 }, { scale: '.9 1.1', offset: 0.75 }, { scale: '1 1' }], { duration: 520, easing: 'ease-out' });\n const fill = this.querySelector('.usa-sw-fill');\n if (fill && this.dataset.variant === 'liquid') this.motion(fill, [{ borderRadius: '50% 50% 40% 60%' }, { borderRadius: '30% 70% 60% 40%', offset: 0.5 }, { borderRadius: '999px' }], { duration: 600, easing: 'ease-out' });\n }\n\n toggle(force?: boolean, user = false): void {\n if (this.flag('disabled') && user) return;\n const next = typeof force === 'boolean' ? force : !this._on;\n if (next === this._on) return;\n this._on = next;\n this.toggleAttribute('checked', next);\n this.sync(user);\n if (user) this.emit('change', { checked: next });\n }\n }\n return UsaSwitch as unknown as CustomElementConstructor;\n },\n { id: 'switch', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './kanban.css?raw';\n\n/**\n * `<usa-kanban>` (6.8) — a kanban board with drag-sort. Children are the\n * columns (any element; a `[data-title]` attribute or its first heading is\n * the title); the column's `[data-card]` children (or `<li>`s) are cards.\n * Drag a card (pointer or touch): it lifts and tilts toward the drag\n * direction, a placeholder opens where it will land, and the other cards\n * glide out of the way (FLIP). Keyboard: Space / Enter picks a card up,\n * arrows move it (← → between columns, ↑ ↓ within), Space drops, Esc cancels;\n * moves are announced politely. Event `usa:move` (`{ card, from, to, index }`).\n * Reduced motion: no tilt or glide.\n */\nexport interface UsaKanbanElement extends UsaElement {\n readonly columns: HTMLElement[];\n cardsOf(col: HTMLElement): HTMLElement[];\n move(card: HTMLElement, to: HTMLElement, index: number): void;\n}\n\nexport function defineKanban(tag = 'usa-kanban'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaKanban extends Base {\n private _cols: HTMLElement[] = [];\n private _live: HTMLElement | null = null;\n private _held: HTMLElement | null = null;\n\n get columns(): HTMLElement[] {\n return this._cols;\n }\n\n cardsOf(col: HTMLElement): HTMLElement[] {\n return Array.from(col.children).filter((c): c is HTMLElement => c instanceof HTMLElement && (c.hasAttribute('data-card') || c.localName === 'li'));\n }\n\n mount(): void {\n this._cols = ownChildren(this);\n this.setAttribute('role', 'group');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Board'));\n if (!this.querySelector(':scope > .usa-kb-live')) {\n const l = document.createElement('span');\n l.className = 'usa-kb-live';\n l.setAttribute('data-usa-part', '');\n l.setAttribute('aria-live', 'polite');\n this.appendChild(l);\n }\n this._live = this.querySelector('.usa-kb-live');\n this._cols.forEach((col) => {\n col.classList.add('usa-kb-col');\n col.setAttribute('role', 'list');\n const title = col.dataset.title || col.querySelector('h1,h2,h3,h4,h5,h6')?.textContent?.trim() || '';\n if (title) col.setAttribute('aria-label', title);\n this.cardsOf(col).forEach((c) => this.prepCard(c));\n });\n this.listen(this, 'pointerdown', (e: PointerEvent) => this.drag(e));\n this.listen(this, 'keydown', (e: KeyboardEvent) => this.key(e));\n }\n\n private prepCard(c: HTMLElement): void {\n c.classList.add('usa-kb-card');\n c.setAttribute('role', 'listitem');\n if (!c.hasAttribute('tabindex')) c.tabIndex = 0;\n c.setAttribute('aria-roledescription', 'draggable card');\n }\n\n private say(msg: string): void {\n if (this._live) this._live.textContent = msg;\n }\n\n private colName(col: HTMLElement): string {\n return col.getAttribute('aria-label') || `column ${this._cols.indexOf(col) + 1}`;\n }\n\n /** FLIP: run `change`, then glide every card from its old box. */\n private flip(change: () => void): void {\n const cards = this._cols.flatMap((c) => this.cardsOf(c));\n const before = new Map(cards.map((c) => [c, c.getBoundingClientRect()]));\n change();\n if (this.reduced) return;\n for (const c of cards) {\n const a = before.get(c)!;\n const b = c.getBoundingClientRect();\n const dx = a.left - b.left;\n const dy = a.top - b.top;\n if ((dx || dy) && c !== this._held) this.motion(c, [{ transform: `translate(${dx}px,${dy}px)` }, { transform: 'none' }], { duration: 260, easing: 'cubic-bezier(.2,.8,.2,1)' });\n }\n }\n\n move(card: HTMLElement, to: HTMLElement, index: number): void {\n const from = card.parentElement as HTMLElement;\n const list = this.cardsOf(to).filter((c) => c !== card);\n const i = Math.max(0, Math.min(list.length, index));\n this.flip(() => {\n const ref = list[i] || null;\n if (ref) to.insertBefore(card, ref);\n else to.appendChild(card);\n });\n this.emit('move', { card, from, to, index: i });\n }\n\n private drag(e: PointerEvent): void {\n const card = (e.target as HTMLElement).closest?.('.usa-kb-card') as HTMLElement | null;\n if (!card || !this.contains(card) || e.button > 0) return;\n const r = card.getBoundingClientRect();\n const ox = e.clientX - r.left;\n const oy = e.clientY - r.top;\n let started = false;\n let lastX = e.clientX;\n const ghost = card;\n const ph = document.createElement('div');\n ph.className = 'usa-kb-ph';\n ph.setAttribute('data-usa-part', '');\n const onMove = (ev: PointerEvent) => {\n if (!started) {\n if (Math.hypot(ev.clientX - e.clientX, ev.clientY - e.clientY) < 6) return;\n started = true;\n ph.style.height = r.height + 'px';\n card.parentElement!.insertBefore(ph, card);\n ghost.classList.add('usa-kb-lifted');\n ghost.style.width = r.width + 'px';\n ghost.style.position = 'fixed';\n ghost.style.zIndex = '1000';\n ghost.style.pointerEvents = 'none';\n }\n ev.preventDefault();\n const tilt = this.reduced ? 0 : Math.max(-8, Math.min(8, (ev.clientX - lastX) * 0.8));\n lastX = ev.clientX;\n ghost.style.left = ev.clientX - ox + 'px';\n ghost.style.top = ev.clientY - oy + 'px';\n ghost.style.transform = `rotate(${tilt}deg) scale(${this.reduced ? 1 : 1.04})`;\n const col = this._cols.find((c) => {\n const b = c.getBoundingClientRect();\n return ev.clientX >= b.left && ev.clientX <= b.right;\n });\n if (!col) return;\n const cards = this.cardsOf(col).filter((c) => c !== card);\n const at = cards.find((c) => {\n const b = c.getBoundingClientRect();\n return ev.clientY < b.top + b.height / 2;\n });\n if (ph.parentElement !== col || ph.nextElementSibling !== (at || null)) this.flip(() => (at ? col.insertBefore(ph, at) : col.appendChild(ph)));\n };\n const onUp = () => {\n window.removeEventListener('pointermove', onMove);\n window.removeEventListener('pointerup', onUp);\n window.removeEventListener('pointercancel', onUp);\n if (!started) return;\n const to = ph.parentElement as HTMLElement;\n const index = this.cardsOf(to).filter((c) => c !== card).indexOf(ph.nextElementSibling as HTMLElement);\n const from = card.parentElement as HTMLElement;\n const g = ghost.getBoundingClientRect();\n to.insertBefore(card, ph);\n ph.remove();\n ghost.classList.remove('usa-kb-lifted');\n ghost.style.cssText = '';\n const b = card.getBoundingClientRect();\n if (!this.reduced) this.motion(card, [{ transform: `translate(${g.left - b.left}px,${g.top - b.top}px) rotate(3deg)` }, { transform: 'none' }], { duration: 240, easing: 'cubic-bezier(.2,.9,.3,1.2)' });\n const list = this.cardsOf(to);\n this.emit('move', { card, from, to, index: index < 0 ? list.indexOf(card) : list.indexOf(card) });\n this.say(`Moved to ${this.colName(to)}, position ${list.indexOf(card) + 1}`);\n };\n window.addEventListener('pointermove', onMove, { passive: false });\n window.addEventListener('pointerup', onUp);\n window.addEventListener('pointercancel', onUp);\n }\n\n private key(e: KeyboardEvent): void {\n const card = (e.target as HTMLElement).closest?.('.usa-kb-card') as HTMLElement | null;\n if (!card) return;\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n if (this._held === card) {\n card.removeAttribute('aria-grabbed');\n card.classList.remove('usa-kb-held');\n this._held = null;\n this.say(`Dropped in ${this.colName(card.parentElement as HTMLElement)}`);\n } else {\n this._held = card;\n card.setAttribute('aria-grabbed', 'true');\n card.classList.add('usa-kb-held');\n this.say('Picked up. Use arrow keys to move, Space to drop.');\n }\n return;\n }\n if (e.key === 'Escape' && this._held) {\n this._held.classList.remove('usa-kb-held');\n this._held.removeAttribute('aria-grabbed');\n this._held = null;\n return;\n }\n if (this._held !== card) return;\n const col = card.parentElement as HTMLElement;\n const ci = this._cols.indexOf(col);\n const idx = this.cardsOf(col).indexOf(card);\n let to = col;\n let i = idx;\n if (e.key === 'ArrowLeft' && ci > 0) (to = this._cols[ci - 1]), (i = Math.min(idx, this.cardsOf(to).length));\n else if (e.key === 'ArrowRight' && ci < this._cols.length - 1) (to = this._cols[ci + 1]), (i = Math.min(idx, this.cardsOf(to).length));\n else if (e.key === 'ArrowUp') i = Math.max(0, idx - 1);\n else if (e.key === 'ArrowDown') i = idx + 1;\n else return;\n e.preventDefault();\n this.move(card, to, i);\n card.focus();\n this.say(`${this.colName(to)}, position ${this.cardsOf(to).indexOf(card) + 1}`);\n }\n }\n return UsaKanban as unknown as CustomElementConstructor;\n },\n { id: 'kanban', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './swipe-deck.css?raw';\n\n/**\n * `<usa-swipe-deck>` (6.8) — a stack of swipe cards (Tinder style). Drag the\n * top card: it follows the pointer and rotates, \"LIKE\" / \"NOPE\" stamps fade\n * in, and past `threshold` px (or a fast fling) it flies off; otherwise it\n * springs back. The next card scales up from behind. Buttons / keys:\n * `like()`, `nope()`, ← / →, and `undo()` brings the last card back.\n * Event `usa:swipe` (`{ card, dir: 'left' | 'right', index }`) and\n * `usa:empty`. Reduced motion: cards fade instead of flying.\n */\nexport interface UsaSwipeDeckElement extends UsaElement {\n readonly cards: HTMLElement[];\n readonly top: HTMLElement | null;\n like(): void;\n nope(): void;\n undo(): void;\n}\n\nexport function defineSwipeDeck(tag = 'usa-swipe-deck'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSwipeDeck extends Base {\n private _cards: HTMLElement[] = [];\n private _gone: HTMLElement[] = [];\n\n get cards(): HTMLElement[] {\n return this._cards.filter((c) => !this._gone.includes(c));\n }\n get top(): HTMLElement | null {\n return this.cards[0] || null;\n }\n\n mount(): void {\n this._cards = ownChildren(this);\n this._gone = [];\n this.setAttribute('role', 'region');\n this.setAttribute('aria-roledescription', 'card deck');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Cards'));\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n this._cards.forEach((c) => {\n c.classList.add('usa-sd-card');\n if (!c.querySelector(':scope > .usa-sd-stamp')) {\n c.insertAdjacentHTML('beforeend', '<span class=\"usa-sd-stamp usa-sd-like\" data-usa-part aria-hidden=\"true\">LIKE</span><span class=\"usa-sd-stamp usa-sd-nope\" data-usa-part aria-hidden=\"true\">NOPE</span>');\n }\n });\n this.layout();\n this.listen(this, 'pointerdown', (e: PointerEvent) => this.drag(e));\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight') this.like();\n else if (e.key === 'ArrowLeft') this.nope();\n else if (e.key === 'Backspace' || (e.key === 'z' && (e.ctrlKey || e.metaKey))) this.undo();\n else return;\n e.preventDefault();\n });\n }\n\n private layout(): void {\n this.cards.forEach((c, i) => {\n c.style.zIndex = String(100 - i);\n c.style.transform = i ? `translateY(${Math.min(i, 2) * 10}px) scale(${1 - Math.min(i, 2) * 0.05})` : '';\n c.style.opacity = i > 2 ? '0' : '1';\n c.toggleAttribute('data-top', i === 0);\n c.setAttribute('aria-hidden', String(i !== 0));\n });\n this._cards.filter((c) => this._gone.includes(c)).forEach((c) => (c.style.visibility = 'hidden'));\n }\n\n private stamp(c: HTMLElement, dx: number): void {\n const k = Math.min(1, Math.abs(dx) / Math.max(40, this.num('threshold', 110)));\n (c.querySelector('.usa-sd-like') as HTMLElement | null)?.style.setProperty('opacity', dx > 0 ? k.toFixed(2) : '0');\n (c.querySelector('.usa-sd-nope') as HTMLElement | null)?.style.setProperty('opacity', dx < 0 ? k.toFixed(2) : '0');\n }\n\n private fly(dir: 'left' | 'right', dx = 0, dy = 0): void {\n const c = this.top;\n if (!c) return;\n const index = this._cards.indexOf(c);\n this._gone.push(c);\n const sign = dir === 'right' ? 1 : -1;\n const w = this.getBoundingClientRect().width || 300;\n const done = () => {\n c.style.visibility = 'hidden';\n this.stamp(c, 0);\n };\n const a = this.reduced\n ? this.motion(c, [{ opacity: 1 }, { opacity: 0 }], { duration: 200, fill: 'forwards' })\n : this.motion(c, [{ transform: `translate(${dx}px,${dy}px) rotate(${dx * 0.06}deg)` }, { transform: `translate(${sign * w * 1.5}px,${dy + 60}px) rotate(${sign * 30}deg)`, opacity: 0.6 }], { duration: 420, easing: 'cubic-bezier(.3,.6,.4,1)', fill: 'forwards' });\n if (a) a.finished.then(done, done);\n else done();\n this.layout();\n const next = this.top;\n if (next && !this.reduced) this.motion(next, [{ transform: 'translateY(10px) scale(.95)' }, { transform: 'none' }], { duration: 300, easing: 'cubic-bezier(.3,1.3,.5,1)' });\n this.emit('swipe', { card: c, dir, index });\n if (!this.top) this.emit('empty', {});\n }\n\n like(): void {\n this.fly('right');\n }\n nope(): void {\n this.fly('left');\n }\n undo(): void {\n const c = this._gone.pop();\n if (!c) return;\n c.getAnimations?.().forEach((a) => a.cancel());\n c.style.visibility = '';\n this.layout();\n if (!this.reduced) this.motion(c, [{ transform: 'translate(-120%,40px) rotate(-25deg)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 380, easing: 'cubic-bezier(.2,.9,.3,1.1)' });\n }\n\n private drag(e: PointerEvent): void {\n const c = this.top;\n if (!c || !c.contains(e.target as Node) || e.button > 0) return;\n const x0 = e.clientX;\n const y0 = e.clientY;\n const t0 = performance.now();\n let dx = 0;\n let dy = 0;\n c.setPointerCapture?.(e.pointerId);\n c.classList.add('usa-sd-dragging');\n const move = (ev: PointerEvent) => {\n dx = ev.clientX - x0;\n dy = ev.clientY - y0;\n c.style.transform = `translate(${dx}px,${dy}px) rotate(${this.reduced ? 0 : dx * 0.06}deg)`;\n this.stamp(c, dx);\n };\n const up = () => {\n c.removeEventListener('pointermove', move);\n c.removeEventListener('pointerup', up);\n c.removeEventListener('pointercancel', up);\n c.classList.remove('usa-sd-dragging');\n const v = Math.abs(dx) / Math.max(1, performance.now() - t0);\n if (Math.abs(dx) > this.num('threshold', 110) || (v > 0.6 && Math.abs(dx) > 30)) this.fly(dx > 0 ? 'right' : 'left', dx, dy);\n else {\n const from = c.style.transform;\n c.style.transform = '';\n this.stamp(c, 0);\n if (!this.reduced && from) this.motion(c, [{ transform: from }, { transform: 'none' }], { duration: 420, easing: 'cubic-bezier(.3,1.5,.5,1)' });\n }\n };\n c.addEventListener('pointermove', move);\n c.addEventListener('pointerup', up);\n c.addEventListener('pointercancel', up);\n }\n }\n return UsaSwipeDeck as unknown as CustomElementConstructor;\n },\n { id: 'swipe-deck', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './weather-card.css?raw';\n\n/**\n * `<usa-weather-card>` (6.8) — an animated weather widget. `condition`\n * (`clear | cloudy | rain | snow | storm | fog | night`) picks an animated\n * icon and sky (sun rays turn, clouds drift, rain and snow fall, a gentle —\n * flash-safe — bolt, fog bands, twinkling stars); `temp` counts up to the\n * value, `unit` (°), `place` and `label` fill the text. Changing `condition`\n * cross-fades the scene. Reduced motion: static icon, no count-up. The scene\n * is decorative; the text is the accessible summary (`role=\"group\"` with an\n * `aria-label` like \"Rain, 12°, Lisbon\").\n */\nexport interface UsaWeatherCardElement extends UsaElement {\n condition: string;\n}\n\nexport const WEATHER_CONDITIONS = ['clear', 'cloudy', 'rain', 'snow', 'storm', 'fog', 'night'] as const;\nconst LABEL: Record<string, string> = { clear: 'Clear', cloudy: 'Cloudy', rain: 'Rain', snow: 'Snow', storm: 'Thunderstorm', fog: 'Fog', night: 'Clear night' };\n\nconst icon = (c: string): string => {\n const drops = (cls: string, n: number) => Array.from({ length: n }, (_, i) => `<i class=\"${cls}\" style=\"--i:${i}\"></i>`).join('');\n switch (c) {\n case 'clear':\n return '<span class=\"usa-wc-sun\"></span>';\n case 'night':\n return `<span class=\"usa-wc-moon\"></span>${drops('usa-wc-star', 5)}`;\n case 'cloudy':\n return '<span class=\"usa-wc-cloud usa-wc-c2\"></span><span class=\"usa-wc-cloud\"></span>';\n case 'rain':\n return `<span class=\"usa-wc-cloud\"></span>${drops('usa-wc-drop', 6)}`;\n case 'snow':\n return `<span class=\"usa-wc-cloud\"></span>${drops('usa-wc-flake', 6)}`;\n case 'storm':\n return `<span class=\"usa-wc-cloud usa-wc-dark\"></span><span class=\"usa-wc-bolt\"></span>${drops('usa-wc-drop', 4)}`;\n default:\n return `${drops('usa-wc-fogband', 3)}`;\n }\n};\n\nexport function defineWeatherCard(tag = 'usa-weather-card'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaWeatherCard extends Base {\n static get observedAttributes(): string[] {\n return ['condition', 'temp', 'place', 'unit', 'label'];\n }\n get condition(): string {\n return this.dataset.condition || 'clear';\n }\n set condition(v: string) {\n this.setAttribute('condition', v);\n }\n\n mount(): void {\n const c = this.str('condition', 'clear');\n const cond = (WEATHER_CONDITIONS as readonly string[]).includes(c) ? c : 'clear';\n const changed = this.dataset.condition && this.dataset.condition !== cond;\n this.dataset.condition = cond;\n const temp = this.num('temp', NaN);\n const unit = this.str('unit', '°');\n const label = this.str('label', LABEL[cond]);\n const place = this.str('place', '');\n this.setAttribute('role', 'group');\n this.setAttribute('aria-label', [label, Number.isFinite(temp) ? `${Math.round(temp)}${unit}` : '', place].filter(Boolean).join(', '));\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const scene = document.createElement('div');\n scene.className = 'usa-wc-scene';\n scene.setAttribute('aria-hidden', 'true');\n scene.setAttribute('data-usa-part', '');\n scene.innerHTML = `<span class=\"usa-wc-icon\">${icon(cond)}</span>`;\n const text = document.createElement('div');\n text.className = 'usa-wc-text';\n text.setAttribute('data-usa-part', '');\n text.setAttribute('aria-hidden', 'true');\n text.innerHTML = `<b class=\"usa-wc-temp\">${Number.isFinite(temp) ? Math.round(temp) + unit : ''}</b><span class=\"usa-wc-label\"></span><span class=\"usa-wc-place\"></span>`;\n (text.querySelector('.usa-wc-label') as HTMLElement).textContent = label;\n (text.querySelector('.usa-wc-place') as HTMLElement).textContent = place;\n this.prepend(scene, text);\n if (this.reduced) return;\n if (changed) this.motion(scene, [{ opacity: 0, transform: 'scale(.9)' }, { opacity: 1, transform: 'none' }], { duration: 420, easing: 'ease-out' });\n if (Number.isFinite(temp) && typeof requestAnimationFrame === 'function') {\n const el = text.querySelector('.usa-wc-temp') as HTMLElement;\n const t0 = performance.now();\n const from = Math.round(temp) - Math.min(12, Math.abs(Math.round(temp)) + 6);\n let raf = 0;\n const f = (now: number) => {\n const k = Math.min(1, (now - t0) / 900);\n el.textContent = Math.round(from + (Math.round(temp) - from) * (1 - Math.pow(1 - k, 3))) + unit;\n if (k < 1) raf = requestAnimationFrame(f);\n };\n raf = requestAnimationFrame(f);\n this.onCleanup(() => cancelAnimationFrame(raf));\n }\n }\n }\n return UsaWeatherCard as unknown as CustomElementConstructor;\n },\n { id: 'weather-card', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './pull-cord.css?raw';\n\n/**\n * `<usa-pull-cord>` (6.8) — a lamp pull-cord switch. Drag the handle down\n * (or click / Space / Enter): the cord stretches, and when released past\n * `threshold` px it toggles `on` with a click-bounce; the cord swings back on\n * a damped spring (simulated, drawn as an SVG curve). The lamp shade above\n * glows when on (CSS custom property `--usa-pc-glow`). A real switch:\n * `role=\"switch\"`, `aria-checked`; event `usa:change` (`{ on }`). Reduced\n * motion: no swing — it just toggles.\n */\nexport interface UsaPullCordElement extends UsaElement {\n on: boolean;\n toggle(force?: boolean): void;\n}\n\nexport function definePullCord(tag = 'usa-pull-cord'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaPullCord extends Base {\n private _on = false;\n private _raf = 0;\n private _x = 0;\n private _y = 0;\n private _vx = 0;\n private _vy = 0;\n\n get on(): boolean {\n return this._on;\n }\n set on(v: boolean) {\n this.toggle(!!v, false);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<span class=\"usa-pc-lamp\" data-usa-part aria-hidden=\"true\"></span><svg class=\"usa-pc-svg\" data-usa-part aria-hidden=\"true\" viewBox=\"-40 0 80 150\"><path class=\"usa-pc-cord\" d=\"M0 0 L0 90\"/><circle class=\"usa-pc-knob\" cx=\"0\" cy=\"96\" r=\"7\"/></svg>');\n this.setAttribute('role', 'switch');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Light'));\n this._on = this.flag('on');\n this.sync();\n this.draw();\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n this.pull();\n }\n });\n this.listen(this, 'pointerdown', (e: PointerEvent) => this.drag(e));\n this.onCleanup(() => this._raf && cancelAnimationFrame(this._raf));\n }\n\n private sync(): void {\n this.setAttribute('aria-checked', String(this._on));\n this.toggleAttribute('data-on', this._on);\n }\n\n private draw(): void {\n const cord = this.querySelector('.usa-pc-cord');\n const knob = this.querySelector('.usa-pc-knob');\n const ex = this._x;\n const ey = 90 + this._y;\n cord?.setAttribute('d', `M0 0 Q${(ex * 0.5).toFixed(1)} ${(ey * 0.55).toFixed(1)} ${ex.toFixed(1)} ${ey.toFixed(1)}`);\n knob?.setAttribute('cx', ex.toFixed(1));\n knob?.setAttribute('cy', (ey + 6).toFixed(1));\n }\n\n /** Damped spring back to rest. */\n private release(): void {\n if (this.reduced || typeof requestAnimationFrame !== 'function') {\n this._x = this._y = 0;\n this.draw();\n return;\n }\n let last = 0;\n const f = (now: number) => {\n const dt = last ? Math.min(0.033, (now - last) / 1000) : 1 / 60;\n last = now;\n this._vx += (-120 * this._x - 3 * this._vx) * dt;\n this._vy += (-260 * this._y - 9 * this._vy) * dt;\n this._x += this._vx * dt;\n this._y += this._vy * dt;\n this.draw();\n if (Math.abs(this._x) + Math.abs(this._y) + Math.abs(this._vx) + Math.abs(this._vy) > 0.05) this._raf = requestAnimationFrame(f);\n else ((this._raf = 0), (this._x = this._y = this._vx = this._vy = 0), this.draw());\n };\n if (!this._raf) this._raf = requestAnimationFrame(f);\n }\n\n /** Pull once (keyboard / click): tug the cord and toggle. */\n pull(): void {\n this._y = 26;\n this._vx = (Math.random() - 0.5) * 60;\n this.draw();\n this.toggle(undefined, true);\n this.release();\n }\n\n private drag(e: PointerEvent): void {\n if (e.button > 0) return;\n const y0 = e.clientY;\n const x0 = e.clientX;\n let moved = false;\n if (this._raf) (cancelAnimationFrame(this._raf), (this._raf = 0));\n const move = (ev: PointerEvent) => {\n moved = moved || Math.abs(ev.clientY - y0) > 4;\n this._y = Math.max(0, Math.min(50, ev.clientY - y0));\n this._x = Math.max(-30, Math.min(30, (ev.clientX - x0) * 0.6));\n this.draw();\n };\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n window.removeEventListener('pointercancel', up);\n if (!moved) return this.pull();\n if (this._y >= this.num('threshold', 24)) this.toggle(undefined, true);\n this._vy = -this._y * 2;\n this.release();\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n window.addEventListener('pointercancel', up);\n }\n\n toggle(force?: boolean, user = false): void {\n const next = typeof force === 'boolean' ? force : !this._on;\n if (next === this._on) return;\n this._on = next;\n this.toggleAttribute('on', next);\n this.sync();\n const lamp = this.querySelector('.usa-pc-lamp');\n if (user && lamp && !this.reduced) this.motion(lamp, [{ transform: 'translateY(0)' }, { transform: 'translateY(3px)', offset: 0.3 }, { transform: 'translateY(0)' }], { duration: 300, easing: 'ease-out' });\n if (user) this.emit('change', { on: next });\n }\n }\n return UsaPullCord as unknown as CustomElementConstructor;\n },\n { id: 'pull-cord', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './date-picker.css?raw';\n\n/**\n * `<usa-date-picker>` (6.9) — an inline calendar. Changing month slides the\n * grid in from the direction of travel, the selected day pops inside a\n * spring circle and today has a ring. A real date grid: `role=\"grid\"`,\n * arrows (day / week), PageUp / PageDown (month), Home / End (week start /\n * end), Enter / Space selects; `min` / `max` (ISO `YYYY-MM-DD`) disable days\n * outside the range. `value` (ISO), `first-day` (0 = Sunday, 1 = Monday,\n * default 1), `locale`. Event `usa:change` (`{ value, date }`). Reduced\n * motion: no slide or pop.\n */\nexport interface UsaDatePickerElement extends UsaElement {\n value: string;\n month: string;\n showMonth(delta: number): void;\n}\n\nconst iso = (d: Date): string => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;\n/** Parse `YYYY-MM-DD` as a local date (or null). */\nexport function parseISODate(s: string | null | undefined): Date | null {\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(s || '');\n if (!m) return null;\n const d = new Date(+m[1], +m[2] - 1, +m[3]);\n return d.getMonth() === +m[2] - 1 ? d : null;\n}\n/** The 6×7 day grid of a month (first row starts on `firstDay`). */\nexport function monthGrid(year: number, month: number, firstDay = 1): Date[] {\n const first = new Date(year, month, 1);\n const off = (first.getDay() - firstDay + 7) % 7;\n return Array.from({ length: 42 }, (_, i) => new Date(year, month, 1 - off + i));\n}\n\nexport function defineDatePicker(tag = 'usa-date-picker'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaDatePicker extends Base {\n static get observedAttributes(): string[] {\n return ['min', 'max', 'first-day', 'locale'];\n }\n private _value: Date | null = null;\n private _view = new Date();\n private _focus = new Date();\n\n get value(): string {\n return this._value ? iso(this._value) : '';\n }\n set value(v: string) {\n const d = parseISODate(v);\n this._value = d;\n if (d) (this._view = new Date(d.getFullYear(), d.getMonth(), 1)), (this._focus = d);\n if (this.isConnected) this.render(0);\n }\n get month(): string {\n return iso(this._view).slice(0, 7);\n }\n\n mount(): void {\n const v = parseISODate(this.getAttribute('value'));\n if (v) (this._value = v), (this._focus = v);\n else this._focus = this._value || new Date();\n this._view = new Date(this._focus.getFullYear(), this._focus.getMonth(), 1);\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<div class=\"usa-dp-head\" data-usa-part><button type=\"button\" class=\"usa-dp-nav\" data-d=\"-1\" aria-label=\"Previous month\">‹</button><span class=\"usa-dp-title\" aria-live=\"polite\"></span><button type=\"button\" class=\"usa-dp-nav\" data-d=\"1\" aria-label=\"Next month\">›</button></div><div class=\"usa-dp-viewport\" data-usa-part><div class=\"usa-dp-grid\" role=\"grid\"></div></div>');\n this.listen(this, 'click', (e: Event) => {\n const t = e.target as HTMLElement;\n const nav = t.closest?.('.usa-dp-nav') as HTMLElement | null;\n if (nav) return this.showMonth(Number(nav.dataset.d));\n const day = t.closest?.('[data-date]') as HTMLElement | null;\n if (day && !day.hasAttribute('aria-disabled')) this.pick(parseISODate(day.dataset.date!)!);\n });\n this.listen(this, 'keydown', (e: KeyboardEvent) => this.key(e));\n this.render(0);\n }\n\n private inRange(d: Date): boolean {\n const lo = parseISODate(this.getAttribute('min'));\n const hi = parseISODate(this.getAttribute('max'));\n return (!lo || d >= lo) && (!hi || d <= hi);\n }\n\n private render(dir: number, focus = false): void {\n const grid = this.querySelector('.usa-dp-grid') as HTMLElement | null;\n if (!grid) return;\n const loc = this.str('locale', '') || undefined;\n const fd = this.num('first-day', 1);\n const title = this.querySelector('.usa-dp-title') as HTMLElement;\n title.textContent = this._view.toLocaleDateString(loc, { month: 'long', year: 'numeric' });\n const days = monthGrid(this._view.getFullYear(), this._view.getMonth(), fd);\n const names = days.slice(0, 7).map((d) => d.toLocaleDateString(loc, { weekday: 'narrow' }));\n const today = iso(new Date());\n const sel = this.value;\n const foc = iso(this._focus);\n let html = `<div role=\"row\" class=\"usa-dp-row usa-dp-dow\">${names.map((n) => `<span role=\"columnheader\">${n}</span>`).join('')}</div>`;\n for (let r = 0; r < 6; r++) {\n html += '<div role=\"row\" class=\"usa-dp-row\">';\n for (const d of days.slice(r * 7, r * 7 + 7)) {\n const k = iso(d);\n const out = d.getMonth() !== this._view.getMonth();\n const dis = !this.inRange(d);\n html += `<span role=\"gridcell\" class=\"usa-dp-day\" data-date=\"${k}\"${out ? ' data-out' : ''}${k === today ? ' data-today' : ''} aria-selected=\"${k === sel}\"${dis ? ' aria-disabled=\"true\"' : ''} tabindex=\"${k === foc ? 0 : -1}\" aria-label=\"${d.toLocaleDateString(loc, { day: 'numeric', month: 'long', year: 'numeric' })}\">${d.getDate()}</span>`;\n }\n html += '</div>';\n }\n grid.innerHTML = html;\n if (focus) (grid.querySelector(`[data-date=\"${foc}\"]`) as HTMLElement | null)?.focus();\n if (dir && !this.reduced) this.motion(grid, [{ transform: `translateX(${dir * 30}%)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 320, easing: 'cubic-bezier(.2,.8,.2,1)' });\n }\n\n showMonth(delta: number): void {\n this._view = new Date(this._view.getFullYear(), this._view.getMonth() + delta, 1);\n this._focus = new Date(this._view);\n this.render(Math.sign(delta));\n }\n\n private pick(d: Date): void {\n if (!this.inRange(d)) return;\n this._value = d;\n this._focus = d;\n const dir = d.getMonth() !== this._view.getMonth() || d.getFullYear() !== this._view.getFullYear() ? (d > this._view ? 1 : -1) : 0;\n if (dir) this._view = new Date(d.getFullYear(), d.getMonth(), 1);\n this.setAttribute('value', iso(d));\n this.render(dir, true);\n const cell = this.querySelector(`[data-date=\"${iso(d)}\"]`);\n if (cell && !this.reduced) this.motion(cell, [{ transform: 'scale(.6)' }, { transform: 'scale(1.15)', offset: 0.6 }, { transform: 'scale(1)' }], { duration: 380, easing: 'ease-out' });\n this.emit('change', { value: iso(d), date: d });\n }\n\n private key(e: KeyboardEvent): void {\n if (!(e.target as HTMLElement).closest?.('[data-date]')) return;\n const f = new Date(this._focus);\n const step: Record<string, () => void> = {\n ArrowLeft: () => f.setDate(f.getDate() - 1),\n ArrowRight: () => f.setDate(f.getDate() + 1),\n ArrowUp: () => f.setDate(f.getDate() - 7),\n ArrowDown: () => f.setDate(f.getDate() + 7),\n PageUp: () => f.setMonth(f.getMonth() - 1),\n PageDown: () => f.setMonth(f.getMonth() + 1),\n Home: () => f.setDate(f.getDate() - ((f.getDay() - this.num('first-day', 1) + 7) % 7)),\n End: () => f.setDate(f.getDate() + 6 - ((f.getDay() - this.num('first-day', 1) + 7) % 7)),\n };\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n return this.pick(this._focus);\n }\n if (!step[e.key]) return;\n e.preventDefault();\n step[e.key]();\n const dir = f.getMonth() !== this._view.getMonth() ? (f > this._view ? 1 : -1) : 0;\n this._focus = f;\n if (dir) this._view = new Date(f.getFullYear(), f.getMonth(), 1);\n this.render(dir, true);\n }\n }\n return UsaDatePicker as unknown as CustomElementConstructor;\n },\n { id: 'date-picker', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './color-picker.css?raw';\n\n/**\n * `<usa-color-picker>` (6.9) — a colour picker: a saturation / brightness\n * square and a hue strip (both `role=\"slider\"`, arrow keys, Shift = ×10),\n * spring-follow thumbs, a preview chip that morphs to the new colour, and\n * optional `swatches` (comma-separated hex) that pop on pick. `value` is\n * `#rrggbb`. Events `usa:input` while dragging and `usa:change` on release\n * (`{ value }`). Reduced motion: thumbs jump, no pop.\n */\nexport interface UsaColorPickerElement extends UsaElement {\n value: string;\n}\n\n/** HSV (h 0–360, s / v 0–1) → `#rrggbb`. */\nexport function hsvToHex(h: number, s: number, v: number): string {\n const f = (n: number) => {\n const k = (n + h / 60) % 6;\n return Math.round((v - v * s * Math.max(0, Math.min(k, 4 - k, 1))) * 255);\n };\n return '#' + [f(5), f(3), f(1)].map((x) => x.toString(16).padStart(2, '0')).join('');\n}\n/** `#rrggbb` → HSV (or null). */\nexport function hexToHsv(hex: string): [number, number, number] | null {\n const m = /^#?([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/i.exec(hex.trim());\n if (!m) return null;\n const [r, g, b] = [m[1], m[2], m[3]].map((x) => parseInt(x, 16) / 255);\n const mx = Math.max(r, g, b);\n const d = mx - Math.min(r, g, b);\n let h = 0;\n if (d) h = mx === r ? ((g - b) / d) % 6 : mx === g ? (b - r) / d + 2 : (r - g) / d + 4;\n return [(h * 60 + 360) % 360, mx ? d / mx : 0, mx];\n}\n\nexport function defineColorPicker(tag = 'usa-color-picker'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaColorPicker extends Base {\n static get observedAttributes(): string[] {\n return ['swatches'];\n }\n private _h = 260;\n private _s = 0.64;\n private _v = 1;\n\n get value(): string {\n return hsvToHex(this._h, this._s, this._v);\n }\n set value(v: string) {\n const hsv = hexToHsv(v);\n if (!hsv) return;\n [this._h, this._s, this._v] = hsv;\n this.paint(true);\n }\n\n mount(): void {\n const hsv = hexToHsv(this.str('value', '#7c5cff'));\n if (hsv) [this._h, this._s, this._v] = hsv;\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const sw = this.str('swatches', '').split(',').map((s) => s.trim()).filter((s) => hexToHsv(s));\n this.insertAdjacentHTML('afterbegin', `<div class=\"usa-cp-sv\" data-usa-part role=\"slider\" tabindex=\"0\" aria-label=\"Saturation and brightness\"><span class=\"usa-cp-thumb\"></span></div><div class=\"usa-cp-row\" data-usa-part><span class=\"usa-cp-chip\" aria-hidden=\"true\"></span><div class=\"usa-cp-hue\" role=\"slider\" tabindex=\"0\" aria-label=\"Hue\" aria-valuemin=\"0\" aria-valuemax=\"360\"><span class=\"usa-cp-thumb\"></span></div></div>${sw.length ? `<div class=\"usa-cp-swatches\" data-usa-part>${sw.map((c) => `<button type=\"button\" class=\"usa-cp-sw\" style=\"background:${c}\" data-c=\"${c}\" aria-label=\"${c}\"></button>`).join('')}</div>` : ''}`);\n const sv = this.querySelector('.usa-cp-sv') as HTMLElement;\n const hue = this.querySelector('.usa-cp-hue') as HTMLElement;\n this.drag(sv, (x, y) => ((this._s = x), (this._v = 1 - y)));\n this.drag(hue, (x) => (this._h = x * 360));\n this.listen(sv, 'keydown', (e: KeyboardEvent) => this.keys(e, (d, ax) => (ax ? (this._v = clampN(this._v - d, 0, 1)) : (this._s = clampN(this._s + d, 0, 1)))));\n this.listen(hue, 'keydown', (e: KeyboardEvent) => this.keys(e, (d) => (this._h = (this._h + d * 360 + 360) % 360)));\n this.listen(this, 'click', (e: Event) => {\n const b = (e.target as HTMLElement).closest?.('.usa-cp-sw') as HTMLElement | null;\n if (!b) return;\n this.value = b.dataset.c!;\n if (!this.reduced) this.motion(b, [{ transform: 'scale(1)' }, { transform: 'scale(1.35)', offset: 0.4 }, { transform: 'scale(1)' }], { duration: 360, easing: 'cubic-bezier(.3,1.5,.5,1)' });\n this.emit('change', { value: this.value });\n });\n this.paint(false);\n }\n\n private keys(e: KeyboardEvent, fn: (d: number, vertical: boolean) => void): void {\n const k = e.shiftKey ? 0.1 : 0.01;\n const map: Record<string, [number, boolean]> = { ArrowLeft: [-k, false], ArrowRight: [k, false], ArrowUp: [-k, true], ArrowDown: [k, true] };\n const m = map[e.key];\n if (!m) return;\n e.preventDefault();\n fn(m[0], m[1]);\n this.paint(false);\n this.emit('change', { value: this.value });\n }\n\n private drag(area: HTMLElement, fn: (x: number, y: number) => void): void {\n const at = (e: PointerEvent) => {\n const r = area.getBoundingClientRect();\n fn(clampN((e.clientX - r.left) / (r.width || 1), 0, 1), clampN((e.clientY - r.top) / (r.height || 1), 0, 1));\n this.paint(false);\n this.emit('input', { value: this.value });\n };\n this.listen(area, 'pointerdown', (e: PointerEvent) => {\n area.setPointerCapture?.(e.pointerId);\n area.toggleAttribute('data-drag', true);\n at(e);\n const move = (ev: PointerEvent) => at(ev);\n const up = () => {\n area.removeAttribute('data-drag');\n area.removeEventListener('pointermove', move);\n area.removeEventListener('pointerup', up);\n this.emit('change', { value: this.value });\n };\n area.addEventListener('pointermove', move);\n area.addEventListener('pointerup', up);\n });\n }\n\n private paint(morph: boolean): void {\n const c = this.value;\n this.style.setProperty('--usa-cp-h', String(Math.round(this._h)));\n this.style.setProperty('--usa-cp-color', c);\n this.style.setProperty('--usa-cp-x', (this._s * 100).toFixed(2) + '%');\n this.style.setProperty('--usa-cp-y', ((1 - this._v) * 100).toFixed(2) + '%');\n this.style.setProperty('--usa-cp-hx', ((this._h / 360) * 100).toFixed(2) + '%');\n const sv = this.querySelector('.usa-cp-sv');\n sv?.setAttribute('aria-valuetext', `saturation ${Math.round(this._s * 100)}%, brightness ${Math.round(this._v * 100)}%`);\n const hue = this.querySelector('.usa-cp-hue');\n hue?.setAttribute('aria-valuenow', String(Math.round(this._h)));\n this.setAttribute('value', c);\n const chip = this.querySelector('.usa-cp-chip');\n if (morph && chip && !this.reduced) this.motion(chip, [{ borderRadius: '50%', transform: 'scale(.7) rotate(-20deg)' }, { borderRadius: '30%', transform: 'scale(1.1)', offset: 0.6 }, { borderRadius: '50%', transform: 'none' }], { duration: 420, easing: 'ease-out' });\n }\n }\n return UsaColorPicker as unknown as CustomElementConstructor;\n },\n { id: 'color-picker', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './file-drop.css?raw';\n\n/**\n * `<usa-file-drop>` (6.9) — a file drop zone. Dragging files over it lights\n * the zone with marching-ants borders and lifts the icon; dropping (or\n * choosing via the built-in file input — click / Enter / Space) flies each\n * file into a list with a progress bar. Progress is yours to report with\n * `setProgress(index, 0–1)`, or `simulate` fakes it for demos; a finished\n * file draws a check. Attributes `accept`, `multiple`, `label`. Event\n * `usa:files` (`{ files }`). Reduced motion: no ants, lift or fly-in.\n */\nexport interface UsaFileDropElement extends UsaElement {\n readonly files: File[];\n setProgress(index: number, value: number): void;\n addFiles(files: ArrayLike<File>): void;\n clear(): void;\n}\n\nconst size = (n: number): string => (n < 1024 ? `${n} B` : n < 1048576 ? `${(n / 1024).toFixed(1)} KB` : `${(n / 1048576).toFixed(1)} MB`);\n\nexport function defineFileDrop(tag = 'usa-file-drop'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaFileDrop extends Base {\n private _files: File[] = [];\n private _depth = 0;\n\n get files(): File[] {\n return this._files.slice();\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const label = this.str('label', 'Drop files here or browse');\n this.insertAdjacentHTML('afterbegin', `<div class=\"usa-fd-zone\" data-usa-part role=\"button\" tabindex=\"0\"><svg class=\"usa-fd-ants\" aria-hidden=\"true\"><rect x=\"1\" y=\"1\" width=\"calc(100% - 2px)\" height=\"calc(100% - 2px)\" rx=\"14\"/></svg><span class=\"usa-fd-icon\" aria-hidden=\"true\">⇪</span><span class=\"usa-fd-label\"></span><input type=\"file\" hidden></div><ul class=\"usa-fd-list\" data-usa-part aria-live=\"polite\"></ul>`);\n const zone = this.querySelector('.usa-fd-zone') as HTMLElement;\n (zone.querySelector('.usa-fd-label') as HTMLElement).textContent = label;\n zone.setAttribute('aria-label', label);\n const input = zone.querySelector('input') as HTMLInputElement;\n if (this.str('accept', '')) input.accept = this.str('accept', '');\n input.multiple = this.flag('multiple');\n this.listen(zone, 'click', (e: Event) => e.target !== input && input.click());\n this.listen(zone, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n input.click();\n }\n });\n this.listen(input, 'change', () => input.files && this.addFiles(input.files));\n this.listen(zone, 'dragenter', (e: DragEvent) => {\n e.preventDefault();\n this._depth++;\n this.toggleAttribute('data-over', true);\n });\n this.listen(zone, 'dragover', (e: DragEvent) => e.preventDefault());\n this.listen(zone, 'dragleave', () => {\n this._depth = Math.max(0, this._depth - 1);\n if (!this._depth) this.removeAttribute('data-over');\n });\n this.listen(zone, 'drop', (e: DragEvent) => {\n e.preventDefault();\n this._depth = 0;\n this.removeAttribute('data-over');\n if (e.dataTransfer?.files?.length) this.addFiles(e.dataTransfer.files);\n });\n }\n\n addFiles(list: ArrayLike<File>): void {\n const ul = this.querySelector('.usa-fd-list') as HTMLElement;\n const files = Array.from(list).slice(0, this.flag('multiple') ? undefined : 1);\n if (!this.flag('multiple')) this.clear();\n const start = this._files.length;\n files.forEach((f, i) => {\n this._files.push(f);\n const li = document.createElement('li');\n li.className = 'usa-fd-item';\n li.innerHTML = '<span class=\"usa-fd-name\"></span><span class=\"usa-fd-size\"></span><span class=\"usa-fd-bar\"><span class=\"usa-fd-fill\"></span></span><svg class=\"usa-fd-check\" viewBox=\"0 0 16 16\" aria-hidden=\"true\"><path d=\"M3 8.5l3.2 3L13 4.8\"/></svg>';\n (li.querySelector('.usa-fd-name') as HTMLElement).textContent = f.name;\n (li.querySelector('.usa-fd-size') as HTMLElement).textContent = size(f.size);\n li.setAttribute('aria-label', `${f.name}, ${size(f.size)}`);\n ul.appendChild(li);\n if (!this.reduced) this.motion(li, [{ transform: 'translateY(-28px) scale(.85)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 380, delay: i * 70, easing: 'cubic-bezier(.2,.9,.3,1.2)', fill: 'backwards' });\n });\n this.emit('files', { files });\n if (this.flag('simulate')) files.forEach((_, i) => this.simulate(start + i));\n }\n\n private simulate(i: number): void {\n let p = 0;\n const tick = () => {\n if (!this.isConnected) return;\n p = Math.min(1, p + 0.12 + Math.random() * 0.15);\n this.setProgress(i, p);\n if (p < 1) setTimeout(tick, 160);\n };\n setTimeout(tick, 200);\n }\n\n setProgress(index: number, value: number): void {\n const li = this.querySelectorAll('.usa-fd-item')[index] as HTMLElement | undefined;\n if (!li) return;\n const v = Math.max(0, Math.min(1, value));\n li.style.setProperty('--usa-fd-p', String(v));\n li.toggleAttribute('data-done', v >= 1);\n li.setAttribute('aria-label', `${this._files[index]?.name || ''}, ${Math.round(v * 100)}%`);\n }\n\n clear(): void {\n this._files = [];\n (this.querySelector('.usa-fd-list') as HTMLElement | null)?.replaceChildren();\n }\n }\n return UsaFileDrop as unknown as CustomElementConstructor;\n },\n { id: 'file-drop', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { createPlayer, ANIMATION_FORMAT, type AnimationJSON, type Player } from '../effects/player';\nimport css from './keyframe-editor.css?raw';\n\n/**\n * `<usa-keyframe-editor>` (6.9) — animation editor 2.0: a compact timeline\n * for `<usa-player>` JSON. Each track is a row with a draggable bar (drag to\n * move, drag the right edge to resize; ← / → move by 50 ms, Shift + ← / →\n * resize); a playhead scrubs the preview, ▶ plays it. The preview target is\n * the element with id `for` (its children are the tracks' targets). Set\n * `animation` (object or JSON string, or a `<script type=\"application/json\">`\n * child); read `animation` / `toJSON()` for the edited JSON (format\n * `use-scroll-animate/animation` v1 — playable by `<usa-player>`). Event\n * `usa:change` (`{ animation }`). Reduced motion: the preview jumps to the\n * end state.\n */\nexport interface UsaKeyframeEditorElement extends UsaElement {\n animation: AnimationJSON;\n toJSON(): AnimationJSON;\n play(): void;\n seek(ms: number): void;\n}\n\nconst DEFAULT: AnimationJSON = {\n format: ANIMATION_FORMAT,\n version: 1,\n name: 'Untitled',\n tracks: [\n { target: ':scope > :nth-child(1)', start: 0, duration: 600, preset: 'fade-up', label: 'Title' },\n { target: ':scope > :nth-child(2)', start: 300, duration: 600, preset: 'scale', label: 'Card' },\n { target: ':scope > :nth-child(3)', start: 700, duration: 500, preset: 'fade-up', label: 'Button' },\n ],\n};\n\nexport function defineKeyframeEditor(tag = 'usa-keyframe-editor'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaKeyframeEditor extends Base {\n private _anim: AnimationJSON = JSON.parse(JSON.stringify(DEFAULT));\n private _player: Player | null = null;\n\n get animation(): AnimationJSON {\n return this.toJSON();\n }\n set animation(v: AnimationJSON | string) {\n try {\n const a = typeof v === 'string' ? JSON.parse(v) : v;\n if (a && Array.isArray(a.tracks)) this._anim = { format: ANIMATION_FORMAT, version: 1, ...JSON.parse(JSON.stringify(a)) };\n } catch {\n return;\n }\n if (this.isConnected) this.render();\n }\n\n toJSON(): AnimationJSON {\n return JSON.parse(JSON.stringify({ ...this._anim, duration: this.total() }));\n }\n\n private total(): number {\n return Math.max(500, ...this._anim.tracks.map((t) => (t.start || 0) + (t.duration || 0)));\n }\n\n mount(): void {\n const src = this.querySelector(':scope > script[type=\"application/json\"]');\n if (src?.textContent) this.animation = src.textContent;\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<div class=\"usa-ke-bar\" data-usa-part><button type=\"button\" class=\"usa-ke-play\" aria-label=\"Play\">▶</button><input class=\"usa-ke-scrub\" type=\"range\" min=\"0\" max=\"1000\" value=\"1000\" aria-label=\"Playhead\"><output class=\"usa-ke-time\">0 ms</output></div><div class=\"usa-ke-tracks\" data-usa-part role=\"list\"></div>');\n this.listen(this.querySelector('.usa-ke-play')!, 'click', () => this.play());\n this.listen(this.querySelector('.usa-ke-scrub')!, 'input', (e: Event) => this.seek((Number((e.target as HTMLInputElement).value) / 1000) * this.total()));\n this.render();\n }\n\n private target(): HTMLElement | null {\n const id = this.str('for', '');\n return id ? document.getElementById(id) : null;\n }\n\n private rebuild(): void {\n this._player?.destroy?.();\n this._player = null;\n const t = this.target();\n if (t) this._player = createPlayer(t, this.toJSON(), { autoplay: false });\n }\n\n private render(): void {\n const box = this.querySelector('.usa-ke-tracks') as HTMLElement | null;\n if (!box) return;\n const total = this.total();\n box.innerHTML = '';\n this._anim.tracks.forEach((t, i) => {\n const row = document.createElement('div');\n row.className = 'usa-ke-row';\n row.setAttribute('role', 'listitem');\n row.innerHTML = `<span class=\"usa-ke-label\"></span><span class=\"usa-ke-lane\"><span class=\"usa-ke-clip\" tabindex=\"0\" role=\"slider\" aria-valuemin=\"0\" aria-valuemax=\"${total}\"><span class=\"usa-ke-grip\" aria-hidden=\"true\"></span></span></span>`;\n (row.querySelector('.usa-ke-label') as HTMLElement).textContent = t.label || t.preset || t.effect || `Track ${i + 1}`;\n const clip = row.querySelector('.usa-ke-clip') as HTMLElement;\n clip.style.left = `${((t.start || 0) / total) * 100}%`;\n clip.style.width = `${Math.max(2, ((t.duration || 300) / total) * 100)}%`;\n clip.setAttribute('aria-valuenow', String(t.start || 0));\n clip.setAttribute('aria-label', `${(row.querySelector('.usa-ke-label') as HTMLElement).textContent}: start ${t.start || 0} ms, ${t.duration || 0} ms`);\n clip.dataset.i = String(i);\n this.wire(clip, i);\n box.appendChild(row);\n });\n this.rebuild();\n }\n\n private update(i: number, start: number, duration: number): void {\n const t = this._anim.tracks[i];\n t.start = Math.max(0, Math.round(start / 10) * 10);\n t.duration = Math.max(50, Math.round(duration / 10) * 10);\n this.render();\n (this.querySelector(`.usa-ke-clip[data-i=\"${i}\"]`) as HTMLElement | null)?.focus();\n this.emit('change', { animation: this.toJSON() });\n }\n\n private wire(clip: HTMLElement, i: number): void {\n clip.addEventListener('keydown', (e: KeyboardEvent) => {\n const t = this._anim.tracks[i];\n const d = e.key === 'ArrowRight' ? 50 : e.key === 'ArrowLeft' ? -50 : 0;\n if (!d) return;\n e.preventDefault();\n if (e.shiftKey) this.update(i, t.start || 0, (t.duration || 300) + d);\n else this.update(i, (t.start || 0) + d, t.duration || 300);\n });\n clip.addEventListener('pointerdown', (e: PointerEvent) => {\n const lane = clip.parentElement as HTMLElement;\n const w = lane.getBoundingClientRect().width || 1;\n const total = this.total();\n const t = this._anim.tracks[i];\n const s0 = t.start || 0;\n const d0 = t.duration || 300;\n const resize = (e.target as HTMLElement).classList.contains('usa-ke-grip');\n const x0 = e.clientX;\n clip.setPointerCapture?.(e.pointerId);\n clip.toggleAttribute('data-drag', true);\n const move = (ev: PointerEvent) => {\n const dms = ((ev.clientX - x0) / w) * total;\n if (resize) clip.style.width = `${(Math.max(50, d0 + dms) / total) * 100}%`;\n else clip.style.left = `${(Math.max(0, s0 + dms) / total) * 100}%`;\n };\n const up = (ev: PointerEvent) => {\n clip.removeEventListener('pointermove', move);\n clip.removeEventListener('pointerup', up);\n clip.removeAttribute('data-drag');\n const dms = ((ev.clientX - x0) / w) * total;\n if (Math.abs(ev.clientX - x0) < 2) return;\n if (resize) this.update(i, s0, d0 + dms);\n else this.update(i, s0 + dms, d0);\n };\n clip.addEventListener('pointermove', move);\n clip.addEventListener('pointerup', up);\n });\n }\n\n seek(ms: number): void {\n const total = this.total();\n const v = Math.max(0, Math.min(total, ms));\n this._player?.seek?.(v);\n const out = this.querySelector('.usa-ke-time');\n if (out) out.textContent = `${Math.round(v)} ms`;\n this.style.setProperty('--usa-ke-head', `${(v / total) * 100}%`);\n }\n\n play(): void {\n if (!this._player) this.rebuild();\n if (this.reduced) return this.seek(this.total());\n this._player?.seek?.(0);\n this._player?.play?.();\n const t0 = performance.now();\n const total = this.total();\n const scrub = this.querySelector('.usa-ke-scrub') as HTMLInputElement | null;\n const f = () => {\n const ms = Math.min(total, performance.now() - t0);\n if (scrub) scrub.value = String(Math.round((ms / total) * 1000));\n this.style.setProperty('--usa-ke-head', `${(ms / total) * 100}%`);\n const out = this.querySelector('.usa-ke-time');\n if (out) out.textContent = `${Math.round(ms)} ms`;\n if (ms < total && this.isConnected) requestAnimationFrame(f);\n };\n if (typeof requestAnimationFrame === 'function') requestAnimationFrame(f);\n }\n }\n return UsaKeyframeEditor as unknown as CustomElementConstructor;\n },\n { id: 'keyframe-editor', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './music-player.css?raw';\n\n/**\n * `<usa-music-player>` (7.1) — a music player card: the cover turns like a\n * record while playing, the play button morphs ▶ ↔ ❚❚, mini equalizer bars\n * dance, and the progress bar is a scrubbable slider (arrows ±5 s). Plays a\n * child `<audio>` (or `src`), or simulates a track of `duration` seconds for\n * demos. Attributes `title`, `artist`, `cover` (image URL), `src`,\n * `duration`. Methods `play()`, `pause()`, `toggle()`, `seek(s)`; events\n * `usa:play`, `usa:pause`, `usa:seek`, `usa:prev`, `usa:next`. Reduced\n * motion: no spin or dancing bars.\n */\nexport interface UsaMusicPlayerElement extends UsaElement {\n readonly playing: boolean;\n currentTime: number;\n readonly duration: number;\n play(): void;\n pause(): void;\n toggle(): void;\n seek(s: number): void;\n}\n\nconst fmt = (s: number): string => `${Math.floor(s / 60)}:${String(Math.floor(s % 60)).padStart(2, '0')}`;\n\nexport function defineMusicPlayer(tag = 'usa-music-player'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMusicPlayer extends Base {\n static get observedAttributes(): string[] {\n return ['title', 'artist', 'cover', 'src'];\n }\n private _audio: HTMLAudioElement | null = null;\n private _playing = false;\n private _t = 0;\n private _raf = 0;\n private _last = 0;\n\n get playing(): boolean {\n return this._playing;\n }\n get duration(): number {\n const d = this._audio?.duration;\n return d && Number.isFinite(d) ? d : Math.max(1, this.num('duration', 180));\n }\n get currentTime(): number {\n return this._audio ? this._audio.currentTime : this._t;\n }\n set currentTime(v: number) {\n this.seek(v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this._audio = this.querySelector(':scope > audio');\n if (!this._audio && this.str('src', '')) {\n this._audio = document.createElement('audio');\n this._audio.src = this.str('src', '');\n this._audio.preload = 'metadata';\n this._audio.setAttribute('data-usa-part', '');\n this.appendChild(this._audio);\n }\n this.setAttribute('role', 'group');\n this.setAttribute('aria-roledescription', 'music player');\n const title = this.str('title', 'Untitled');\n const artist = this.str('artist', '');\n this.setAttribute('aria-label', artist ? `${title} — ${artist}` : title);\n const cover = this.str('cover', '');\n this.insertAdjacentHTML('afterbegin', `<div class=\"usa-mp-cover\" data-usa-part aria-hidden=\"true\"><span class=\"usa-mp-disc\"${cover ? ` style=\"background-image:url('${cover.replace(/'/g, '%27')}')\"` : ''}></span></div><div class=\"usa-mp-body\" data-usa-part><div class=\"usa-mp-meta\"><b class=\"usa-mp-title\"></b><span class=\"usa-mp-artist\"></span></div><div class=\"usa-mp-bars\" aria-hidden=\"true\"><i></i><i></i><i></i><i></i></div><div class=\"usa-mp-track\" role=\"slider\" tabindex=\"0\" aria-label=\"Seek\" aria-valuemin=\"0\"><span class=\"usa-mp-fill\"></span><span class=\"usa-mp-knob\"></span></div><div class=\"usa-mp-times\"><span class=\"usa-mp-cur\">0:00</span><span class=\"usa-mp-dur\"></span></div><div class=\"usa-mp-ctrls\"><button type=\"button\" class=\"usa-mp-btn\" data-act=\"prev\" aria-label=\"Previous\">⏮</button><button type=\"button\" class=\"usa-mp-play\" data-act=\"play\" aria-label=\"Play\"><span class=\"usa-mp-icon\"></span></button><button type=\"button\" class=\"usa-mp-btn\" data-act=\"next\" aria-label=\"Next\">⏭</button></div></div>`);\n (this.querySelector('.usa-mp-title') as HTMLElement).textContent = title;\n (this.querySelector('.usa-mp-artist') as HTMLElement).textContent = artist;\n this.listen(this, 'click', (e: Event) => {\n const act = (e.target as HTMLElement).closest?.('[data-act]') as HTMLElement | null;\n if (!act) return;\n if (act.dataset.act === 'play') this.toggle();\n else this.emit(act.dataset.act!, {});\n });\n const track = this.querySelector('.usa-mp-track') as HTMLElement;\n this.listen(track, 'pointerdown', (e: PointerEvent) => {\n const at = (ev: PointerEvent) => {\n const r = track.getBoundingClientRect();\n this.seek(clampN((ev.clientX - r.left) / (r.width || 1), 0, 1) * this.duration);\n };\n at(e);\n track.setPointerCapture?.(e.pointerId);\n const up = () => (track.removeEventListener('pointermove', at), track.removeEventListener('pointerup', up));\n track.addEventListener('pointermove', at);\n track.addEventListener('pointerup', up);\n });\n this.listen(track, 'keydown', (e: KeyboardEvent) => {\n const d = e.key === 'ArrowRight' ? 5 : e.key === 'ArrowLeft' ? -5 : 0;\n if (!d) return;\n e.preventDefault();\n this.seek(this.currentTime + d);\n });\n if (this._audio) {\n this.listen(this._audio, 'timeupdate', () => this.sync());\n this.listen(this._audio, 'loadedmetadata', () => this.sync());\n this.listen(this._audio, 'ended', () => this.pause());\n }\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n this.sync();\n }\n\n private sync(): void {\n const d = this.duration;\n const t = this.currentTime;\n this.style.setProperty('--usa-mp-p', String(clampN(t / d, 0, 1)));\n const cur = this.querySelector('.usa-mp-cur');\n if (cur) cur.textContent = fmt(t);\n const dur = this.querySelector('.usa-mp-dur');\n if (dur) dur.textContent = fmt(d);\n const tr = this.querySelector('.usa-mp-track');\n tr?.setAttribute('aria-valuemax', String(Math.round(d)));\n tr?.setAttribute('aria-valuenow', String(Math.round(t)));\n tr?.setAttribute('aria-valuetext', `${fmt(t)} of ${fmt(d)}`);\n this.toggleAttribute('data-playing', this._playing);\n this.toggleAttribute('data-animate', this._playing && !this.reduced);\n const b = this.querySelector('.usa-mp-play');\n b?.setAttribute('aria-label', this._playing ? 'Pause' : 'Play');\n b?.setAttribute('aria-pressed', String(this._playing));\n }\n\n private tick = (now: number): void => {\n if (!this._playing) return;\n if (!this._audio) {\n this._t += this._last ? (now - this._last) / 1000 : 0;\n this._last = now;\n if (this._t >= this.duration) {\n this._t = this.duration;\n this.sync();\n return this.pause();\n }\n this.sync();\n }\n this._raf = requestAnimationFrame(this.tick);\n };\n\n play(): void {\n if (this._playing) return;\n this._playing = true;\n if (this._audio) void this._audio.play()?.catch?.(() => undefined);\n this._last = 0;\n if (typeof requestAnimationFrame === 'function') this._raf = requestAnimationFrame(this.tick);\n this.sync();\n const icon = this.querySelector('.usa-mp-play');\n if (icon && !this.reduced) this.motion(icon, [{ transform: 'scale(.85)' }, { transform: 'scale(1.08)', offset: 0.6 }, { transform: 'scale(1)' }], { duration: 300, easing: 'ease-out' });\n this.emit('play', {});\n }\n pause(): void {\n if (!this._playing) return;\n this._playing = false;\n this._audio?.pause();\n cancelAnimationFrame(this._raf);\n this.sync();\n this.emit('pause', {});\n }\n toggle(): void {\n if (this._playing) this.pause();\n else this.play();\n }\n seek(s: number): void {\n const t = clampN(s, 0, this.duration);\n if (this._audio) this._audio.currentTime = t;\n else this._t = t;\n this.sync();\n this.emit('seek', { time: t });\n }\n }\n return UsaMusicPlayer as unknown as CustomElementConstructor;\n },\n { id: 'music-player', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './volume-knob.css?raw';\n\n/**\n * `<usa-volume-knob>` (7.1) — a rotary knob: drag up / down (or around),\n * scroll, or use the keyboard (arrows ±1, PageUp / PageDown ±10, Home / End)\n * to turn it; the value arc fills, a ring of LED ticks lights up and the\n * pointer springs to the new angle. `role=\"slider\"`; attributes `value`,\n * `min` (0), `max` (100), `label`, `size`. Events `usa:input` while turning,\n * `usa:change` when done (`{ value }`). Reduced motion: no spring.\n */\nexport interface UsaVolumeKnobElement extends UsaElement {\n value: number;\n}\n\nconst ARC = 270;\n\nexport function defineVolumeKnob(tag = 'usa-volume-knob'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaVolumeKnob extends Base {\n static get observedAttributes(): string[] {\n return ['min', 'max'];\n }\n private _v = 50;\n\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this.set(v, false);\n }\n\n mount(): void {\n this._v = clampN(this.num('value', 50), this.num('min', 0), this.num('max', 100));\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const ticks = Array.from({ length: 21 }, (_, i) => `<i style=\"--a:${-ARC / 2 + (i / 20) * ARC}deg\"></i>`).join('');\n this.insertAdjacentHTML('afterbegin', `<span class=\"usa-vk-ticks\" data-usa-part aria-hidden=\"true\">${ticks}</span><svg class=\"usa-vk-arc\" data-usa-part aria-hidden=\"true\" viewBox=\"0 0 100 100\"><path class=\"usa-vk-bg\" d=\"${this.arc(1)}\"/><path class=\"usa-vk-val\" d=\"${this.arc(1)}\"/></svg><span class=\"usa-vk-cap\" data-usa-part aria-hidden=\"true\"><span class=\"usa-vk-dot\"></span></span>`);\n this.setAttribute('role', 'slider');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Volume'));\n this.setAttribute('aria-valuemin', String(this.num('min', 0)));\n this.setAttribute('aria-valuemax', String(this.num('max', 100)));\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n const span = this.num('max', 100) - this.num('min', 0);\n const d: Record<string, number> = { ArrowUp: 1, ArrowRight: 1, ArrowDown: -1, ArrowLeft: -1, PageUp: span / 10, PageDown: -span / 10, Home: -Infinity, End: Infinity };\n if (!(e.key in d)) return;\n e.preventDefault();\n this.set(this._v + d[e.key], true, true);\n });\n this.listen(this, 'wheel', (e: WheelEvent) => {\n e.preventDefault();\n this.set(this._v - Math.sign(e.deltaY) * 2, true, true);\n }, { passive: false });\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n const y0 = e.clientY;\n const v0 = this._v;\n const span = this.num('max', 100) - this.num('min', 0);\n this.setPointerCapture?.(e.pointerId);\n this.toggleAttribute('data-drag', true);\n const move = (ev: PointerEvent) => this.set(v0 + ((y0 - ev.clientY) / 150) * span, true);\n const up = () => {\n this.removeAttribute('data-drag');\n this.removeEventListener('pointermove', move);\n this.removeEventListener('pointerup', up);\n this.emit('change', { value: this._v });\n };\n this.addEventListener('pointermove', move);\n this.addEventListener('pointerup', up);\n });\n this.paint();\n }\n\n /** SVG arc path for fraction `k` (0–1) of the 270° sweep. */\n private arc(k: number): string {\n const a0 = ((-ARC / 2 - 90) * Math.PI) / 180;\n const a1 = a0 + ((ARC * Math.max(0.0001, k)) * Math.PI) / 180;\n const p = (a: number) => `${(50 + 42 * Math.cos(a)).toFixed(2)} ${(50 + 42 * Math.sin(a)).toFixed(2)}`;\n return `M${p(a0)} A42 42 0 ${ARC * k > 180 ? 1 : 0} 1 ${p(a1)}`;\n }\n\n private paint(): void {\n const lo = this.num('min', 0);\n const hi = this.num('max', 100);\n const k = (this._v - lo) / (hi - lo || 1);\n this.style.setProperty('--usa-vk-angle', `${-ARC / 2 + k * ARC}deg`);\n this.querySelector('.usa-vk-val')?.setAttribute('d', this.arc(k));\n this.querySelectorAll('.usa-vk-ticks i').forEach((t, i) => t.toggleAttribute('data-on', i / 20 <= k + 1e-6 && k > 0));\n this.setAttribute('aria-valuenow', String(Math.round(this._v)));\n this.setAttribute('value', String(Math.round(this._v)));\n }\n\n set(v: number, user: boolean, commit = false): void {\n const n = clampN(Math.round(v), this.num('min', 0), this.num('max', 100));\n if (n === this._v) return;\n this._v = n;\n this.paint();\n if (user) this.emit('input', { value: n });\n if (commit) this.emit('change', { value: n });\n }\n }\n return UsaVolumeKnob as unknown as CustomElementConstructor;\n },\n { id: 'volume-knob', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './equalizer.css?raw';\n\n/**\n * `<usa-equalizer>` (7.1) — a graphic equalizer: one vertical slider per\n * band (`bands`, comma-separated labels — default 60 Hz … 16 kHz), each with\n * a springy cap; a smooth response curve is drawn through them. Presets\n * (`preset=\"flat | bass | vocal | rock | electronic\"` or `applyPreset()`)\n * glide every band to its gain. Gains are −12…+12 dB; `values` (array),\n * keyboard per band (↑ / ↓ ±1, PageUp / PageDown ±3). Event `usa:change`\n * (`{ values }`). Reduced motion: bands jump.\n */\nexport interface UsaEqualizerElement extends UsaElement {\n values: number[];\n applyPreset(name: string): void;\n}\n\nexport const EQ_PRESETS: Record<string, number[]> = {\n flat: [0, 0, 0, 0, 0, 0, 0],\n bass: [8, 6, 3, 0, -1, -1, 0],\n vocal: [-3, -1, 2, 5, 4, 1, -1],\n rock: [5, 3, -1, -2, 1, 4, 6],\n electronic: [6, 4, 0, -2, 2, 5, 7],\n};\n\nexport function defineEqualizer(tag = 'usa-equalizer'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaEqualizer extends Base {\n static get observedAttributes(): string[] {\n return ['bands'];\n }\n private _v: number[] = [];\n\n get values(): number[] {\n return this._v.slice();\n }\n set values(v: number[]) {\n v.forEach((x, i) => (this._v[i] = clampN(Math.round(x), -12, 12)));\n this.paint(true);\n }\n\n mount(): void {\n const labels = this.str('bands', '60,150,400,1k,2.4k,6k,16k').split(',').map((s) => s.trim()).filter(Boolean);\n const pre = EQ_PRESETS[this.str('preset', 'flat')] || EQ_PRESETS.flat;\n this._v = labels.map((_, i) => pre[Math.round((i / Math.max(1, labels.length - 1)) * (pre.length - 1))] || 0);\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.setAttribute('role', 'group');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Equalizer'));\n const bands = labels.map((l, i) => `<div class=\"usa-eq-band\"><div class=\"usa-eq-slot\" role=\"slider\" tabindex=\"0\" aria-orientation=\"vertical\" aria-valuemin=\"-12\" aria-valuemax=\"12\" aria-label=\"${l} Hz\" data-i=\"${i}\"><span class=\"usa-eq-fill\"></span><span class=\"usa-eq-cap\"></span></div><span class=\"usa-eq-label\">${l}</span></div>`).join('');\n this.insertAdjacentHTML('afterbegin', `<svg class=\"usa-eq-curve\" data-usa-part aria-hidden=\"true\" preserveAspectRatio=\"none\" viewBox=\"0 0 100 100\"><path/></svg><div class=\"usa-eq-bands\" data-usa-part>${bands}</div>`);\n this.querySelectorAll<HTMLElement>('.usa-eq-slot').forEach((slot) => {\n const i = Number(slot.dataset.i);\n this.listen(slot, 'keydown', (e: KeyboardEvent) => {\n const d: Record<string, number> = { ArrowUp: 1, ArrowRight: 1, ArrowDown: -1, ArrowLeft: -1, PageUp: 3, PageDown: -3 };\n if (!(e.key in d)) return;\n e.preventDefault();\n this.setBand(i, this._v[i] + d[e.key]);\n });\n this.listen(slot, 'pointerdown', (e: PointerEvent) => {\n slot.setPointerCapture?.(e.pointerId);\n slot.toggleAttribute('data-drag', true);\n const at = (ev: PointerEvent) => {\n const r = slot.getBoundingClientRect();\n this.setBand(i, 12 - clampN((ev.clientY - r.top) / (r.height || 1), 0, 1) * 24);\n };\n at(e);\n const up = () => (slot.removeAttribute('data-drag'), slot.removeEventListener('pointermove', at), slot.removeEventListener('pointerup', up));\n slot.addEventListener('pointermove', at);\n slot.addEventListener('pointerup', up);\n });\n });\n this.paint(false);\n }\n\n private setBand(i: number, v: number): void {\n const n = clampN(Math.round(v), -12, 12);\n if (n === this._v[i]) return;\n this._v[i] = n;\n this.paint(false);\n this.emit('change', { values: this.values });\n }\n\n applyPreset(name: string): void {\n const p = EQ_PRESETS[name];\n if (!p) return;\n const n = this._v.length;\n this._v = this._v.map((_, i) => p[Math.round((i / Math.max(1, n - 1)) * (p.length - 1))] || 0);\n this.paint(true);\n this.emit('change', { values: this.values });\n }\n\n private paint(glide: boolean): void {\n this.toggleAttribute('data-glide', glide && !this.reduced);\n const slots = this.querySelectorAll<HTMLElement>('.usa-eq-slot');\n slots.forEach((s, i) => {\n const v = this._v[i] ?? 0;\n s.style.setProperty('--usa-eq-k', ((v + 12) / 24).toFixed(4));\n s.setAttribute('aria-valuenow', String(v));\n s.setAttribute('aria-valuetext', `${v > 0 ? '+' : ''}${v} dB`);\n });\n const n = this._v.length;\n const pts = this._v.map((v, i) => [((i + 0.5) / n) * 100, 50 - (v / 12) * 40]);\n let d = `M0 ${pts[0]?.[1] ?? 50}`;\n pts.forEach(([x, y], i) => {\n const [px, py] = i ? pts[i - 1] : [0, pts[0][1]];\n d += ` C${((px + x) / 2).toFixed(2)} ${py.toFixed(2)} ${((px + x) / 2).toFixed(2)} ${y.toFixed(2)} ${x.toFixed(2)} ${y.toFixed(2)}`;\n });\n d += ` L100 ${pts[n - 1]?.[1] ?? 50}`;\n this.querySelector('.usa-eq-curve path')?.setAttribute('d', d);\n }\n }\n return UsaEqualizer as unknown as CustomElementConstructor;\n },\n { id: 'equalizer', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { ownChildren } from './shared';\nimport css from './lyrics.css?raw';\n\n/**\n * `<usa-lyrics>` (7.1) — synced karaoke lyrics. Lines come from `[data-t]`\n * children (start time in seconds) or LRC text (`[mm:ss.xx] line`) in a\n * `<script type=\"text/plain\">` child. Set `time` (s) — or `for` the id of an\n * `<audio>` / `<video>` / `<usa-music-player>` to follow — and the active\n * line glows and scrolls to the centre while a highlight sweeps across it\n * word by word; past lines dim. Click a line to emit `usa:seek` (`{ time }`).\n * Reduced motion: no sweep or smooth scroll — the active line just switches.\n */\nexport interface UsaLyricsElement extends UsaElement {\n time: number;\n readonly lines: { t: number; text: string }[];\n}\n\n/** Parse LRC text into sorted `{ t, text }` lines. */\nexport function parseLRC(src: string): { t: number; text: string }[] {\n const out: { t: number; text: string }[] = [];\n for (const raw of src.split(/\\r?\\n/)) {\n const stamps = [...raw.matchAll(/\\[(\\d+):(\\d+(?:\\.\\d+)?)\\]/g)];\n const text = raw.replace(/\\[[^\\]]*\\]/g, '').trim();\n for (const m of stamps) out.push({ t: Number(m[1]) * 60 + Number(m[2]), text });\n }\n return out.sort((a, b) => a.t - b.t);\n}\n\nexport function defineLyrics(tag = 'usa-lyrics'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaLyrics extends Base {\n private _lines: { t: number; text: string }[] = [];\n private _time = 0;\n private _active = -1;\n private _raf = 0;\n\n get lines(): { t: number; text: string }[] {\n return this._lines.slice();\n }\n get time(): number {\n return this._time;\n }\n set time(v: number) {\n this._time = Math.max(0, Number(v) || 0);\n this.update();\n }\n\n mount(): void {\n const lrc = this.querySelector(':scope > script[type=\"text/plain\"]');\n if (lrc?.textContent) this._lines = parseLRC(lrc.textContent);\n else this._lines = ownChildren(this).filter((c) => c.hasAttribute('data-t')).map((c) => ({ t: Number(c.dataset.t) || 0, text: c.textContent?.trim() || '' }));\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n ownChildren(this).forEach((c) => c.localName !== 'script' && (c.hidden = true));\n const list = document.createElement('ol');\n list.className = 'usa-ly-list';\n list.setAttribute('data-usa-part', '');\n this._lines.forEach((l, i) => {\n const li = document.createElement('li');\n li.className = 'usa-ly-line';\n li.dataset.i = String(i);\n li.textContent = l.text || '♪';\n list.appendChild(li);\n });\n this.appendChild(list);\n this.setAttribute('role', 'region');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Lyrics'));\n this.listen(list, 'click', (e: Event) => {\n const li = (e.target as HTMLElement).closest?.('.usa-ly-line') as HTMLElement | null;\n if (li) this.emit('seek', { time: this._lines[Number(li.dataset.i)].t });\n });\n this._active = -1;\n const src = this.str('for', '') ? document.getElementById(this.str('for', '')) : null;\n if (src && typeof requestAnimationFrame === 'function') {\n const f = () => {\n const t = (src as unknown as { currentTime?: number }).currentTime;\n if (typeof t === 'number' && Math.abs(t - this._time) > 0.01) this.time = t;\n this._raf = requestAnimationFrame(f);\n };\n this._raf = requestAnimationFrame(f);\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n }\n this.update();\n }\n\n /** Index of the line playing at `t`. */\n lineAt(t: number): number {\n let i = -1;\n for (let k = 0; k < this._lines.length && this._lines[k].t <= t; k++) i = k;\n return i;\n }\n\n private update(): void {\n const i = this.lineAt(this._time);\n const items = this.querySelectorAll<HTMLElement>('.usa-ly-line');\n const cur = this._lines[i];\n const next = this._lines[i + 1];\n const k = cur ? Math.min(1, (this._time - cur.t) / Math.max(0.3, (next ? next.t : cur.t + 4) - cur.t)) : 0;\n if (items[i]) items[i].style.setProperty('--usa-ly-k', this.reduced ? '1' : k.toFixed(3));\n if (i === this._active) return;\n this._active = i;\n items.forEach((li, j) => {\n li.toggleAttribute('data-active', j === i);\n li.toggleAttribute('data-past', j < i);\n if (j === i) li.setAttribute('aria-current', 'true');\n else li.removeAttribute('aria-current');\n });\n const list = this.querySelector('.usa-ly-list') as HTMLElement | null;\n const li = items[i];\n if (list && li) {\n const top = li.offsetTop - list.clientHeight / 2 + li.offsetHeight / 2;\n if (typeof list.scrollTo === 'function') list.scrollTo({ top, behavior: this.reduced ? 'auto' : 'smooth' });\n else list.scrollTop = top;\n }\n }\n }\n return UsaLyrics as unknown as CustomElementConstructor;\n },\n { id: 'lyrics', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './bar-chart.css?raw';\n\n/**\n * `<usa-bar-chart>` (7.2) — an animated bar chart from data: bars grow in a\n * stagger on first view, value labels count with them, and new data glides\n * every bar to its new height (bars that appear grow, bars that leave\n * shrink). Data from `data` (`[{ label, value }]`), a `values` +\n * `labels` attribute pair, or `<data value=\"…\">label</data>` children.\n * `max`, `unit`, `horizontal`. Accessible as a list of \"label: value\"\n * items. Reduced motion: no growth or glide.\n */\nexport interface UsaBarChartElement extends UsaElement {\n data: { label: string; value: number }[];\n}\n\nexport function defineBarChart(tag = 'usa-bar-chart'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaBarChart extends Base {\n static get observedAttributes(): string[] {\n return ['horizontal', 'unit', 'max'];\n }\n private _data: { label: string; value: number }[] = [];\n private _seen = false;\n\n get data(): { label: string; value: number }[] {\n return this._data.map((d) => ({ ...d }));\n }\n set data(v: { label: string; value: number }[]) {\n this._data = (v || []).map((d) => ({ label: String(d.label), value: Number(d.value) || 0 }));\n if (this.isConnected) this.render(true);\n }\n\n mount(): void {\n if (!this._data.length) {\n const kids = Array.from(this.querySelectorAll(':scope > data'));\n if (kids.length) this._data = kids.map((k) => ({ label: k.textContent?.trim() || '', value: Number(k.getAttribute('value')) || 0 }));\n else {\n const vals = this.str('values', '').split(',').map(Number);\n const labels = this.str('labels', '').split(',');\n this._data = vals.filter(Number.isFinite).map((v, i) => ({ label: (labels[i] || String(i + 1)).trim(), value: v }));\n }\n }\n this.querySelectorAll(':scope > data').forEach((d) => ((d as HTMLElement).hidden = true));\n this.dataset.dir = this.flag('horizontal') ? 'h' : 'v';\n this.render(false);\n this.inView((vis) => {\n if (!vis || this._seen) return;\n this._seen = true;\n if (this.reduced) return;\n this.querySelectorAll<HTMLElement>('.usa-bc-bar').forEach((b, i) => this.motion(b, [{ transform: this.dataset.dir === 'h' ? 'scaleX(0)' : 'scaleY(0)' }, { transform: 'none' }], { duration: 700, delay: i * 70, easing: 'cubic-bezier(.2,.8,.3,1.1)', fill: 'backwards' }));\n });\n }\n\n private render(glide: boolean): void {\n let list = this.querySelector(':scope > .usa-bc-list') as HTMLElement | null;\n if (!list) {\n list = document.createElement('ul');\n list.className = 'usa-bc-list';\n list.setAttribute('data-usa-part', '');\n this.appendChild(list);\n }\n const max = this.num('max', 0) || Math.max(1, ...this._data.map((d) => d.value));\n const unit = this.str('unit', '');\n const old = new Map(Array.from(list.children).map((li) => [(li as HTMLElement).dataset.label, li as HTMLElement]));\n const next: HTMLElement[] = [];\n for (const d of this._data) {\n let li = old.get(d.label);\n const isNew = !li;\n if (!li) {\n li = document.createElement('li');\n li.className = 'usa-bc-item';\n li.dataset.label = d.label;\n li.innerHTML = '<span class=\"usa-bc-track\"><span class=\"usa-bc-bar\"></span></span><span class=\"usa-bc-val\"></span><span class=\"usa-bc-label\"></span>';\n (li.querySelector('.usa-bc-label') as HTMLElement).textContent = d.label;\n }\n old.delete(d.label);\n const k = Math.max(0, Math.min(1, d.value / max));\n li.style.setProperty('--usa-bc-k', k.toFixed(4));\n (li.querySelector('.usa-bc-val') as HTMLElement).textContent = `${d.value.toLocaleString()}${unit}`;\n li.setAttribute('aria-label', `${d.label}: ${d.value.toLocaleString()}${unit}`);\n li.toggleAttribute('data-glide', glide && !this.reduced);\n if (isNew && glide && !this.reduced) this.motion(li.querySelector('.usa-bc-bar')!, [{ transform: this.dataset.dir === 'h' ? 'scaleX(0)' : 'scaleY(0)' }, { transform: 'none' }], { duration: 500, easing: 'ease-out' });\n next.push(li);\n }\n old.forEach((li) => {\n if (this.reduced || !glide) return li.remove();\n const a = this.motion(li, [{ opacity: 1, transform: 'none' }, { opacity: 0, transform: 'scale(.6)' }], { duration: 300, fill: 'forwards' });\n if (a) a.finished.then(() => li.remove(), () => li.remove());\n else li.remove();\n });\n next.forEach((li) => list!.appendChild(li));\n this.setAttribute('role', 'figure');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Bar chart'));\n list.setAttribute('role', 'list');\n next.forEach((li) => li.setAttribute('role', 'listitem'));\n }\n }\n return UsaBarChart as unknown as CustomElementConstructor;\n },\n { id: 'bar-chart', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { clampN } from './shared';\nimport css from './gauge.css?raw';\n\n/**\n * `<usa-gauge>` (7.2) — a semicircular gauge: the needle swings to `value`\n * on a damped spring (overshoot, settle), the arc fills with a colour that\n * follows `zones` (\"60:#22c55e,85:#f59e0b,100:#ef4444\" — upper bound:color)\n * and the number counts. `min` / `max` / `unit` / `label`; `role=\"meter\"`.\n * Reduced motion: no swing or count.\n */\nexport interface UsaGaugeElement extends UsaElement {\n value: number;\n}\n\nexport function defineGauge(tag = 'usa-gauge'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaGauge extends Base {\n static get observedAttributes(): string[] {\n return ['min', 'max', 'zones', 'unit', 'label'];\n }\n private _v = 0;\n private _shown = 0;\n private _vel = 0;\n private _raf = 0;\n\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this._v = clampN(Number(v) || 0, this.num('min', 0), this.num('max', 100));\n this.setAttribute('aria-valuenow', String(this._v));\n this.animateTo();\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<svg class=\"usa-gg-svg\" data-usa-part aria-hidden=\"true\" viewBox=\"0 0 200 120\"><path class=\"usa-gg-track\" d=\"M20 100 A80 80 0 0 1 180 100\"/><path class=\"usa-gg-arc\" d=\"M20 100 A80 80 0 0 1 180 100\" pathLength=\"100\"/><g class=\"usa-gg-needle\"><path d=\"M100 100 L96 100 L100 30 L104 100 Z\"/><circle cx=\"100\" cy=\"100\" r=\"7\"/></g></svg><div class=\"usa-gg-read\" data-usa-part aria-hidden=\"true\"><b class=\"usa-gg-num\">0</b><span class=\"usa-gg-label\"></span></div>');\n (this.querySelector('.usa-gg-label') as HTMLElement).textContent = this.str('label', '');\n this.setAttribute('role', 'meter');\n this.setAttribute('aria-valuemin', String(this.num('min', 0)));\n this.setAttribute('aria-valuemax', String(this.num('max', 100)));\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', this.str('label', 'Gauge'));\n this._v = clampN(this.num('value', 0), this.num('min', 0), this.num('max', 100));\n this.setAttribute('aria-valuenow', String(this._v));\n this._shown = this.reduced ? this._v : this.num('min', 0);\n this.paint();\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n this.inView((v) => v && this.animateTo());\n }\n\n /** Colour of the zone containing `v`. */\n zoneColor(v: number): string {\n const zones = this.str('zones', '').split(',').map((z) => z.split(':')).filter((z) => z.length === 2).map(([b, c]) => [Number(b), c.trim()] as [number, string]).sort((a, b) => a[0] - b[0]);\n for (const [b, c] of zones) if (v <= b) return c;\n return zones.length ? zones[zones.length - 1][1] : '';\n }\n\n private paint(): void {\n const lo = this.num('min', 0);\n const hi = this.num('max', 100);\n const k = clampN((this._shown - lo) / (hi - lo || 1), -0.05, 1.05);\n this.style.setProperty('--usa-gg-k', k.toFixed(4));\n this.style.setProperty('--usa-gg-angle', `${-90 + k * 180}deg`);\n const z = this.zoneColor(this._shown);\n if (z) this.style.setProperty('--usa-gg-c', z);\n const num = this.querySelector('.usa-gg-num');\n if (num) num.textContent = `${Math.round(clampN(this._shown, lo, hi))}${this.str('unit', '')}`;\n this.setAttribute('aria-valuetext', `${Math.round(this._v)}${this.str('unit', '')}`);\n }\n\n private animateTo(): void {\n if (this.reduced || typeof requestAnimationFrame !== 'function') {\n this._shown = this._v;\n return this.paint();\n }\n if (this._raf) return;\n let last = 0;\n const f = (now: number) => {\n const dt = last ? Math.min(0.033, (now - last) / 1000) : 1 / 60;\n last = now;\n const span = this.num('max', 100) - this.num('min', 0) || 1;\n this._vel += (120 * (this._v - this._shown) - 11 * this._vel) * dt;\n this._shown += this._vel * dt;\n this.paint();\n if (Math.abs(this._v - this._shown) / span > 0.0005 || Math.abs(this._vel) / span > 0.002) this._raf = requestAnimationFrame(f);\n else ((this._raf = 0), (this._shown = this._v), (this._vel = 0), this.paint());\n };\n this._raf = requestAnimationFrame(f);\n }\n }\n return UsaGauge as unknown as CustomElementConstructor;\n },\n { id: 'gauge', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './sparkline.css?raw';\n\n/**\n * `<usa-sparkline>` (7.2) — a tiny inline trend line. `values`\n * (\"3,5,4,8,6,9\") or the `data` property; it draws itself on first view, a\n * soft area fades in under it, the last point pulses, and setting new data\n * morphs the line (point-by-point tween). `variant=\"line | area | bars\"`,\n * `color`. Hover / touch shows a dot + value tooltip. Decorative by default\n * with a text summary as `aria-label` (\"Trend: 3 to 9, up 200%\").\n * Reduced motion: no draw, morph or pulse.\n */\nexport interface UsaSparklineElement extends UsaElement {\n data: number[];\n}\n\nexport const SPARK_VARIANTS = ['line', 'area', 'bars'] as const;\n\n/** Map values to SVG points in a w×h box (with padding). */\nexport function sparkPoints(vals: number[], w = 100, h = 30, pad = 3): [number, number][] {\n if (!vals.length) return [];\n const lo = Math.min(...vals);\n const hi = Math.max(...vals);\n const span = hi - lo || 1;\n return vals.map((v, i) => [vals.length === 1 ? w / 2 : pad + (i / (vals.length - 1)) * (w - pad * 2), h - pad - ((v - lo) / span) * (h - pad * 2)]);\n}\n\nexport function defineSparkline(tag = 'usa-sparkline'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSparkline extends Base {\n static get observedAttributes(): string[] {\n return ['variant', 'color'];\n }\n private _data: number[] = [];\n private _drawn = false;\n private _raf = 0;\n\n get data(): number[] {\n return this._data.slice();\n }\n set data(v: number[]) {\n const from = sparkPoints(this._data);\n this._data = (v || []).map(Number).filter(Number.isFinite);\n if (this.isConnected) this.render(from);\n }\n\n mount(): void {\n if (!this._data.length) this._data = this.str('values', '').split(',').map(Number).filter(Number.isFinite);\n const v = this.str('variant', 'line');\n this.dataset.variant = (SPARK_VARIANTS as readonly string[]).includes(v) ? v : 'line';\n if (this.str('color', '')) this.style.setProperty('--usa-sl-c', this.str('color', ''));\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<svg class=\"usa-sl-svg\" data-usa-part viewBox=\"0 0 100 30\" preserveAspectRatio=\"none\" aria-hidden=\"true\"><path class=\"usa-sl-area\"/><g class=\"usa-sl-bars\"></g><path class=\"usa-sl-line\" pathLength=\"1\"/><circle class=\"usa-sl-end\" r=\"2.2\"/><circle class=\"usa-sl-hover\" r=\"2.4\"/></svg><span class=\"usa-sl-tip\" data-usa-part aria-hidden=\"true\"></span>');\n this.setAttribute('role', 'img');\n this.listen(this, 'pointermove', (e: PointerEvent) => this.hover(e));\n this.listen(this, 'pointerleave', () => this.removeAttribute('data-hover'));\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n this.render(null);\n this.inView((vis) => {\n if (!vis || this._drawn) return;\n this._drawn = true;\n const line = this.querySelector('.usa-sl-line');\n if (line && !this.reduced) this.motion(line, [{ strokeDashoffset: 1 }, { strokeDashoffset: 0 }], { duration: 900, easing: 'cubic-bezier(.6,.05,.3,1)' });\n });\n }\n\n private summary(): string {\n const d = this._data;\n if (!d.length) return 'No data';\n const a = d[0];\n const b = d[d.length - 1];\n const pct = a ? Math.round(((b - a) / Math.abs(a)) * 100) : 0;\n return `Trend: ${a} to ${b}${a ? `, ${pct >= 0 ? 'up' : 'down'} ${Math.abs(pct)}%` : ''}`;\n }\n\n private paths(pts: [number, number][]): { line: string; area: string } {\n if (!pts.length) return { line: '', area: '' };\n const line = pts.map(([x, y], i) => `${i ? 'L' : 'M'}${x.toFixed(2)} ${y.toFixed(2)}`).join('');\n return { line, area: `${line}L${pts[pts.length - 1][0].toFixed(2)} 30L${pts[0][0].toFixed(2)} 30Z` };\n }\n\n private render(from: [number, number][] | null): void {\n this.setAttribute('aria-label', this.str('label', '') || this.summary());\n const to = sparkPoints(this._data);\n const apply = (pts: [number, number][]) => {\n const { line, area } = this.paths(pts);\n this.querySelector('.usa-sl-line')?.setAttribute('d', line);\n this.querySelector('.usa-sl-area')?.setAttribute('d', area);\n const end = pts[pts.length - 1];\n const c = this.querySelector('.usa-sl-end');\n if (end && c) (c.setAttribute('cx', end[0].toFixed(2)), c.setAttribute('cy', end[1].toFixed(2)));\n };\n const bars = this.querySelector('.usa-sl-bars');\n if (bars) {\n const lo = Math.min(0, ...this._data);\n const hi = Math.max(...this._data, 1);\n const w = 100 / Math.max(1, this._data.length);\n bars.innerHTML = this._data.map((v, i) => `<rect x=\"${(i * w + w * 0.15).toFixed(2)}\" width=\"${(w * 0.7).toFixed(2)}\" y=\"${(30 - ((v - lo) / (hi - lo || 1)) * 28).toFixed(2)}\" height=\"${(((v - lo) / (hi - lo || 1)) * 28).toFixed(2)}\" rx=\"1\"/>`).join('');\n }\n if (!from || from.length !== to.length || this.reduced || typeof requestAnimationFrame !== 'function') return apply(to);\n cancelAnimationFrame(this._raf);\n const t0 = performance.now();\n const f = (now: number) => {\n const k = Math.min(1, (now - t0) / 500);\n const e = 1 - Math.pow(1 - k, 3);\n apply(to.map(([x, y], i) => [from[i][0] + (x - from[i][0]) * e, from[i][1] + (y - from[i][1]) * e]));\n if (k < 1) this._raf = requestAnimationFrame(f);\n };\n this._raf = requestAnimationFrame(f);\n }\n\n private hover(e: PointerEvent): void {\n if (!this._data.length) return;\n const r = this.getBoundingClientRect();\n const pts = sparkPoints(this._data);\n const x = ((e.clientX - r.left) / (r.width || 1)) * 100;\n let i = 0;\n pts.forEach(([px], j) => Math.abs(px - x) < Math.abs(pts[i][0] - x) && (i = j));\n const c = this.querySelector('.usa-sl-hover');\n c?.setAttribute('cx', pts[i][0].toFixed(2));\n c?.setAttribute('cy', pts[i][1].toFixed(2));\n const tip = this.querySelector('.usa-sl-tip') as HTMLElement | null;\n if (tip) {\n tip.textContent = String(this._data[i]);\n tip.style.left = `${pts[i][0]}%`;\n }\n this.toggleAttribute('data-hover', true);\n }\n }\n return UsaSparkline as unknown as CustomElementConstructor;\n },\n { id: 'sparkline', text: css }\n );\n}\n","/** Parse a figure like \"$12.4k\" / \"−3.5%\" / \"1,204\" → number + prefix / suffix / decimals (7.2). */\nexport function parseFigureText(s: string): { n: number; pre: string; post: string; dec: number } | null {\n const m = /^(\\D*?)([-−]?[\\d,]*\\.?\\d+)(.*)$/.exec(String(s).trim());\n if (!m) return null;\n const raw = m[2].replace(/,/g, '').replace('−', '-');\n const n = Number(raw);\n return Number.isFinite(n) ? { n, pre: m[1], post: m[3], dec: (raw.split('.')[1] || '').length } : null;\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { parseFigureText } from './shared-figure';\nimport css from './kpi.css?raw';\n\n/**\n * `<usa-kpi>` (7.2) — a KPI card: the value counts up on first view (keeps\n * prefix / suffix / decimals: \"$12.4k\", \"98.2%\"), the delta chip slides in\n * with an arrow that points and colours by sign (`delta=\"+12.5%\"`, or\n * `invert` when down is good), and an optional `trend` (\"4,6,5,9\") draws a\n * sparkline. `label`, `value`, `delta`, `caption`. Setting `value` later\n * rolls from the old number to the new one and flashes the card.\n * Reduced motion: no count, slide or flash.\n */\nexport interface UsaKpiElement extends UsaElement {\n value: string;\n}\n\nexport function defineKpi(tag = 'usa-kpi'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaKpi extends Base {\n static get observedAttributes(): string[] {\n return ['label', 'delta', 'caption', 'trend', 'invert'];\n }\n private _shown = 0;\n private _raf = 0;\n private _seen = false;\n\n get value(): string {\n return this.str('value', '0');\n }\n set value(v: string) {\n const prev = this._shown;\n this.setAttribute('value', String(v));\n this.roll(prev, true);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const delta = this.str('delta', '');\n const neg = /^\\s*[-−]/.test(delta);\n const good = this.flag('invert') ? neg : !neg;\n this.insertAdjacentHTML('afterbegin', `<span class=\"usa-kpi-label\" data-usa-part></span><b class=\"usa-kpi-value\" data-usa-part></b>${delta ? `<span class=\"usa-kpi-delta\" data-usa-part data-good=\"${good}\"><i aria-hidden=\"true\">${neg ? '▼' : '▲'}</i><span></span></span>` : ''}${this.str('trend', '') ? `<usa-sparkline class=\"usa-kpi-trend\" data-usa-part variant=\"area\" values=\"${this.str('trend', '')}\" aria-hidden=\"true\"></usa-sparkline>` : ''}<span class=\"usa-kpi-caption\" data-usa-part></span>`);\n (this.querySelector('.usa-kpi-label') as HTMLElement).textContent = this.str('label', '');\n (this.querySelector('.usa-kpi-caption') as HTMLElement).textContent = this.str('caption', '');\n const ds = this.querySelector('.usa-kpi-delta span');\n if (ds) ds.textContent = delta;\n this.setAttribute('role', 'group');\n this.setAttribute('aria-label', [this.str('label', ''), this.value, delta && `(${delta})`, this.str('caption', '')].filter(Boolean).join(' '));\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n const f = parseFigureText(this.value);\n this._shown = this.reduced || !f ? (f?.n ?? 0) : 0;\n this.write(this._shown);\n this.inView((vis) => {\n if (!vis || this._seen) return;\n this._seen = true;\n this.roll(0, false);\n const d = this.querySelector('.usa-kpi-delta');\n if (d && !this.reduced) this.motion(d, [{ transform: 'translateY(8px)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 420, delay: 500, easing: 'cubic-bezier(.2,.9,.3,1.2)', fill: 'backwards' });\n });\n }\n\n private write(n: number): void {\n const f = parseFigureText(this.value);\n const el = this.querySelector('.usa-kpi-value');\n if (!el) return;\n el.textContent = f ? f.pre + n.toLocaleString(this.str('locale', '') || undefined, { minimumFractionDigits: f.dec, maximumFractionDigits: f.dec }) + f.post : this.value;\n }\n\n private roll(from: number, flash: boolean): void {\n const f = parseFigureText(this.value);\n if (!f) return this.write(0);\n const to = f.n;\n if (this.reduced || typeof requestAnimationFrame !== 'function') {\n this._shown = to;\n return this.write(to);\n }\n cancelAnimationFrame(this._raf);\n const t0 = performance.now();\n const step = (now: number) => {\n const k = Math.min(1, (now - t0) / 1100);\n this._shown = from + (to - from) * (1 - Math.pow(1 - k, 3));\n this.write(this._shown);\n if (k < 1) this._raf = requestAnimationFrame(step);\n };\n this._raf = requestAnimationFrame(step);\n if (flash) this.motion(this, [{ boxShadow: '0 0 0 0 rgba(124,92,255,.5)' }, { boxShadow: '0 0 0 10px rgba(124,92,255,0)' }], { duration: 700, easing: 'ease-out' });\n }\n }\n return UsaKpi as unknown as CustomElementConstructor;\n },\n { id: 'kpi', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { getEffect, playEffect } from '../fx';\nimport { registerShopPack } from '../fx2/shop';\nimport css from './add-to-cart.css?raw';\n\n/**\n * `<usa-add-to-cart>` (7.3) — a buy button: on click a ghost of the product\n * (`from` selector, default the closest `[data-product]` image) flies into\n * the cart (`cart` selector, default `[data-cart]`, or a `<usa-cart-drawer>`\n * whose `add()` is called with `item` JSON), then the button morphs into a\n * ✓ \"Added\" state for `hold` ms. `usa:add` (`{ item }`). A real `<button>`\n * inside; `aria-live` announces \"Added to cart\". Reduced motion: no flight\n * or morph — the cart just bumps.\n */\nexport interface UsaAddToCartElement extends UsaElement {\n add(): void;\n}\n\nexport function defineAddToCart(tag = 'usa-add-to-cart'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaAddToCart extends Base {\n private _t: ReturnType<typeof setTimeout> | 0 = 0;\n\n mount(): void {\n registerShopPack();\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const label = this.textContent?.trim() || this.str('label', 'Add to cart');\n this.textContent = '';\n this.insertAdjacentHTML('afterbegin', '<button type=\"button\" class=\"usa-atc-btn\" data-usa-part><span class=\"usa-atc-label\"></span><span class=\"usa-atc-done\" aria-hidden=\"true\">✓ <span></span></span></button><span class=\"usa-atc-live\" data-usa-part aria-live=\"polite\"></span>');\n (this.querySelector('.usa-atc-label') as HTMLElement).textContent = label;\n (this.querySelector('.usa-atc-done span') as HTMLElement).textContent = this.str('added', 'Added');\n this.listen(this.querySelector('.usa-atc-btn')!, 'click', () => this.add());\n this.onCleanup(() => this._t && clearTimeout(this._t));\n }\n\n add(): void {\n let item: unknown = {};\n try {\n item = JSON.parse(this.str('item', '{}'));\n } catch {\n item = { name: this.str('item', '') };\n }\n const cartSel = this.str('cart', '[data-cart]');\n const cart = document.querySelector(cartSel) as (HTMLElement & { add?: (i: unknown) => void }) | null;\n const from = (this.str('from', '') && document.querySelector(this.str('from', ''))) || this.closest('[data-product]')?.querySelector('img') || this;\n if (getEffect('fly-to-cart')) void playEffect(from as HTMLElement, 'fly-to-cart', { to: cart?.matches('usa-cart-drawer') ? `${cartSel} .usa-cd2-toggle` : cartSel });\n cart?.add?.(item);\n this.setAttribute('data-added', '');\n (this.querySelector('.usa-atc-live') as HTMLElement).textContent = `${this.str('added', 'Added')} to cart`;\n if (!this.reduced) this.motion(this.querySelector('.usa-atc-btn')!, [{ transform: 'scale(1)' }, { transform: 'scale(.92)', offset: 0.3 }, { transform: 'scale(1)' }], { duration: 380, easing: 'ease-out' });\n if (this._t) clearTimeout(this._t);\n this._t = setTimeout(() => this.removeAttribute('data-added'), this.num('hold', 1600));\n this.emit('add', { item });\n }\n }\n return UsaAddToCart as unknown as CustomElementConstructor;\n },\n { id: 'add-to-cart', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './cart-drawer.css?raw';\n\nexport interface CartItem {\n id?: string;\n name: string;\n price: number;\n qty?: number;\n img?: string;\n}\n\n/**\n * `<usa-cart-drawer>` (7.3) — a cart button with a count badge plus a drawer\n * that slides in from the side. `add(item)` slides the line in (or bumps its\n * quantity), the badge bumps and the total rolls; lines remove with a collapse.\n * `open` / `close()` / `toggle()`; Esc and the backdrop close it; focus moves\n * into the panel and back. `currency` (default \"$\"), `label`. Events\n * `usa:change` (`{ items, total }`), `usa:open`, `usa:close`. The panel is a\n * labelled `dialog`; the badge count is announced. Reduced motion: no slide,\n * bump or roll.\n */\nexport interface UsaCartDrawerElement extends UsaElement {\n items: CartItem[];\n readonly total: number;\n readonly count: number;\n open: boolean;\n add(item: CartItem): void;\n removeItem(id: string): void;\n toggle(force?: boolean): void;\n}\n\n/** Cart total (7.3). */\nexport const cartTotal = (items: CartItem[]): number => Math.round(items.reduce((a, i) => a + (Number(i.price) || 0) * (i.qty || 1), 0) * 100) / 100;\n\nexport function defineCartDrawer(tag = 'usa-cart-drawer'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCartDrawer extends Base {\n private _items: CartItem[] = [];\n private _open = false;\n private _ret: HTMLElement | null = null;\n\n get items(): CartItem[] {\n return this._items.map((i) => ({ ...i }));\n }\n set items(v: CartItem[]) {\n this._items = (v || []).map((i) => ({ ...i, id: i.id || i.name, qty: i.qty || 1 }));\n if (this.isConnected) this.render(null);\n }\n get total(): number {\n return cartTotal(this._items);\n }\n get count(): number {\n return this._items.reduce((a, i) => a + (i.qty || 1), 0);\n }\n get open(): boolean {\n return this._open;\n }\n set open(v: boolean) {\n this.toggle(!!v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const label = this.str('label', 'Cart');\n this.insertAdjacentHTML('afterbegin', `<button type=\"button\" class=\"usa-cd2-toggle\" data-usa-part aria-haspopup=\"dialog\" aria-expanded=\"false\"><span aria-hidden=\"true\">🛒</span><b class=\"usa-cd2-badge\" aria-live=\"polite\"></b></button><div class=\"usa-cd2-backdrop\" data-usa-part hidden></div><div class=\"usa-cd2-panel\" data-usa-part role=\"dialog\" aria-modal=\"true\" hidden tabindex=\"-1\"><header><strong></strong><button type=\"button\" class=\"usa-cd2-close\" aria-label=\"Close\">×</button></header><ul class=\"usa-cd2-list\"></ul><p class=\"usa-cd2-empty\">Your cart is empty</p><footer><span>Total</span><b class=\"usa-cd2-total\"></b></footer></div>`);\n (this.querySelector('.usa-cd2-panel strong') as HTMLElement).textContent = label;\n this.querySelector('.usa-cd2-panel')!.setAttribute('aria-label', label);\n this.listen(this.querySelector('.usa-cd2-toggle')!, 'click', () => this.toggle());\n this.listen(this.querySelector('.usa-cd2-close')!, 'click', () => this.toggle(false));\n this.listen(this.querySelector('.usa-cd2-backdrop')!, 'click', () => this.toggle(false));\n this.listen(this, 'keydown', (e: KeyboardEvent) => e.key === 'Escape' && this._open && this.toggle(false));\n this.listen(this.querySelector('.usa-cd2-list')!, 'click', (e: Event) => {\n const b = (e.target as HTMLElement).closest('[data-rm]') as HTMLElement | null;\n if (b) this.removeItem(b.dataset.rm!);\n });\n if (!this._items.length) {\n try {\n const init = JSON.parse(this.str('items', '[]'));\n if (Array.isArray(init)) this._items = init.map((i: CartItem) => ({ ...i, id: i.id || i.name, qty: i.qty || 1 }));\n } catch {\n /* ignore bad JSON */\n }\n }\n this.render(null);\n }\n\n toggle(force?: boolean): void {\n const on = force ?? !this._open;\n if (on === this._open) return;\n this._open = on;\n const panel = this.querySelector('.usa-cd2-panel') as HTMLElement;\n const bd = this.querySelector('.usa-cd2-backdrop') as HTMLElement;\n this.querySelector('.usa-cd2-toggle')!.setAttribute('aria-expanded', String(on));\n this.toggleAttribute('data-open', on);\n if (on) {\n this._ret = (document.activeElement as HTMLElement) || null;\n panel.hidden = bd.hidden = false;\n if (!this.reduced) {\n this.motion(panel, [{ transform: 'translateX(105%)' }, { transform: 'none' }], { duration: 380, easing: 'cubic-bezier(.2,.9,.3,1)' });\n this.motion(bd, [{ opacity: 0 }, { opacity: 1 }], { duration: 300 });\n }\n panel.focus();\n this.emit('open', {});\n } else {\n const done = () => {\n if (!this._open) panel.hidden = bd.hidden = true;\n };\n const a = this.reduced ? null : this.motion(panel, [{ transform: 'none' }, { transform: 'translateX(105%)' }], { duration: 260, easing: 'ease-in' });\n if (a) a.finished.then(done, done);\n else done();\n this._ret?.focus?.();\n this.emit('close', {});\n }\n }\n\n add(item: CartItem): void {\n const id = item.id || item.name;\n const hit = this._items.find((i) => i.id === id);\n if (hit) hit.qty = (hit.qty || 1) + (item.qty || 1);\n else this._items.push({ ...item, id, qty: item.qty || 1 });\n this.render(id);\n }\n\n removeItem(id: string): void {\n const li = Array.from(this.querySelectorAll<HTMLElement>('.usa-cd2-item')).find((n) => n.dataset.id === id) || null;\n this._items = this._items.filter((i) => i.id !== id);\n const a = li && !this.reduced ? this.motion(li, [{ opacity: 1, maxHeight: `${li.offsetHeight}px` }, { opacity: 0, maxHeight: '0px', paddingTop: '0', paddingBottom: '0' }], { duration: 260, fill: 'forwards' }) : null;\n if (a) a.finished.then(() => this.render(null), () => this.render(null));\n else this.render(null);\n }\n\n private render(changed: string | null): void {\n const cur = this.str('currency', '$');\n const list = this.querySelector('.usa-cd2-list') as HTMLElement;\n const old = new Map(Array.from(list.children).map((li) => [(li as HTMLElement).dataset.id, li as HTMLElement]));\n for (const it of this._items) {\n let li = old.get(it.id!);\n old.delete(it.id!);\n const isNew = !li;\n if (!li) {\n li = document.createElement('li');\n li.className = 'usa-cd2-item';\n li.dataset.id = it.id!;\n li.innerHTML = `${it.img ? '<img alt=\"\">' : '<i aria-hidden=\"true\"></i>'}<span class=\"usa-cd2-name\"></span><span class=\"usa-cd2-qty\"></span><span class=\"usa-cd2-price\"></span><button type=\"button\" class=\"usa-cd2-rm\">×</button>`;\n if (it.img) li.querySelector('img')!.setAttribute('src', it.img);\n }\n (li.querySelector('.usa-cd2-name') as HTMLElement).textContent = it.name;\n (li.querySelector('.usa-cd2-qty') as HTMLElement).textContent = `×${it.qty || 1}`;\n (li.querySelector('.usa-cd2-price') as HTMLElement).textContent = `${cur}${((it.price || 0) * (it.qty || 1)).toFixed(2)}`;\n const rm = li.querySelector('.usa-cd2-rm') as HTMLElement;\n rm.dataset.rm = it.id!;\n rm.setAttribute('aria-label', `Remove ${it.name}`);\n list.appendChild(li);\n if (changed === it.id && !this.reduced) this.motion(li, isNew ? [{ transform: 'translateX(40px)', opacity: 0 }, { transform: 'none', opacity: 1 }] : [{ background: 'rgba(124,92,255,.18)' }, { background: 'transparent' }], { duration: 420, easing: 'cubic-bezier(.2,.9,.3,1.2)' });\n }\n old.forEach((li) => li.remove());\n const n = this.count;\n const badge = this.querySelector('.usa-cd2-badge') as HTMLElement;\n badge.textContent = n ? String(n) : '';\n this.querySelector('.usa-cd2-toggle')!.setAttribute('aria-label', `${this.str('label', 'Cart')}, ${n} item${n === 1 ? '' : 's'}`);\n if (changed && !this.reduced) this.motion(badge, [{ transform: 'scale(1)' }, { transform: 'scale(1.5)', offset: 0.4 }, { transform: 'scale(1)' }], { duration: 420, easing: 'ease-out' });\n (this.querySelector('.usa-cd2-empty') as HTMLElement).hidden = !!this._items.length;\n const tot = this.querySelector('.usa-cd2-total') as HTMLElement;\n const to = this.total;\n const from = Number(tot.dataset.v || 0);\n tot.dataset.v = String(to);\n if (this.reduced || from === to || typeof requestAnimationFrame !== 'function') tot.textContent = `${cur}${to.toFixed(2)}`;\n else {\n const t0 = performance.now();\n const f = (now: number) => {\n const k = Math.min(1, (now - t0) / 500);\n tot.textContent = `${cur}${(from + (to - from) * (1 - Math.pow(1 - k, 3))).toFixed(2)}`;\n if (k < 1) requestAnimationFrame(f);\n };\n requestAnimationFrame(f);\n }\n this.emit('change', { items: this.items, total: to });\n }\n }\n return UsaCartDrawer as unknown as CustomElementConstructor;\n },\n { id: 'cart-drawer', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './product-gallery.css?raw';\n\n/**\n * `<usa-product-gallery>` (7.3) — a product image gallery from its `<img>`\n * children: a large stage plus a thumbnail strip. Picking a thumbnail (click,\n * ←/→, swipe on touch) cross-slides the stage in the direction of travel; the\n * active thumbnail's ring glides to it. Hovering the stage zooms the photo\n * under the pointer (`zoom`, default 2; `nozoom` turns it off). `index`\n * property / attribute; `usa:change` (`{ index }`). The stage is a labelled\n * `group` whose label says \"Image 2 of 4: alt\". Reduced motion: images swap\n * instantly and the hover zoom is off.\n */\nexport interface UsaProductGalleryElement extends UsaElement {\n index: number;\n readonly count: number;\n go(i: number): void;\n next(): void;\n prev(): void;\n}\n\n/** Wrap an index into 0..n-1 (7.3). */\nexport const wrapIndex = (i: number, n: number): number => (n ? ((i % n) + n) % n : 0);\n\nexport function defineProductGallery(tag = 'usa-product-gallery'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaProductGallery extends Base {\n static get observedAttributes(): string[] {\n return ['index'];\n }\n private _i = 0;\n private _imgs: HTMLImageElement[] = [];\n\n get count(): number {\n return this._imgs.length;\n }\n get index(): number {\n return this._i;\n }\n set index(v: number) {\n this.go(v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this._imgs = Array.from(this.querySelectorAll<HTMLImageElement>(':scope > img'));\n this._imgs.forEach((im) => (im.hidden = true));\n this.insertAdjacentHTML('beforeend', '<div class=\"usa-pg2-stage\" data-usa-part role=\"group\" tabindex=\"0\"><img class=\"usa-pg2-main\" alt=\"\"></div><div class=\"usa-pg2-thumbs\" data-usa-part role=\"tablist\" aria-label=\"Product images\"></div>');\n const thumbs = this.querySelector('.usa-pg2-thumbs') as HTMLElement;\n this._imgs.forEach((im, i) => {\n const b = document.createElement('button');\n b.type = 'button';\n b.className = 'usa-pg2-thumb';\n b.setAttribute('role', 'tab');\n b.setAttribute('aria-label', im.alt || `Image ${i + 1}`);\n b.innerHTML = `<img alt=\"\" src=\"${im.getAttribute('src') || ''}\">`;\n this.listen(b, 'click', () => this.go(i));\n thumbs.appendChild(b);\n });\n thumbs.insertAdjacentHTML('beforeend', '<i class=\"usa-pg2-ring\" aria-hidden=\"true\"></i>');\n const stage = this.querySelector('.usa-pg2-stage') as HTMLElement;\n const main = this.querySelector('.usa-pg2-main') as HTMLImageElement;\n this.listen(stage, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight') (this.next(), e.preventDefault());\n if (e.key === 'ArrowLeft') (this.prev(), e.preventDefault());\n });\n this.listen(thumbs, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n e.key === 'ArrowRight' ? this.next() : this.prev();\n (thumbs.children[this._i] as HTMLElement)?.focus();\n e.preventDefault();\n }\n });\n let sx = 0;\n this.listen(stage, 'pointerdown', (e: PointerEvent) => (sx = e.clientX));\n this.listen(stage, 'pointerup', (e: PointerEvent) => {\n const dx = e.clientX - sx;\n if (e.pointerType !== 'mouse' && Math.abs(dx) > 40) dx < 0 ? this.next() : this.prev();\n });\n this.listen(stage, 'pointermove', (e: PointerEvent) => {\n if (e.pointerType !== 'mouse' || this.reduced || this.flag('nozoom')) return;\n const r = stage.getBoundingClientRect();\n main.style.transformOrigin = `${(((e.clientX - r.left) / r.width) * 100).toFixed(1)}% ${(((e.clientY - r.top) / r.height) * 100).toFixed(1)}%`;\n main.style.transform = `scale(${this.num('zoom', 2)})`;\n });\n this.listen(stage, 'pointerleave', () => (main.style.transform = ''));\n this._i = wrapIndex(this.num('index', 0), this.count);\n this.paint(0);\n }\n\n changed(): void {\n if (this.isConnected && this._imgs.length) this.go(this.num('index', 0));\n }\n\n go(i: number): void {\n const n = wrapIndex(Math.round(i), this.count);\n if (n === this._i) return;\n const dir = n > this._i ? 1 : -1;\n this._i = n;\n this.paint(dir);\n this.emit('change', { index: n });\n }\n next(): void {\n this.go(wrapIndex(this._i + 1, this.count));\n }\n prev(): void {\n this.go(wrapIndex(this._i - 1, this.count));\n }\n\n private paint(dir: number): void {\n const im = this._imgs[this._i];\n const main = this.querySelector('.usa-pg2-main') as HTMLImageElement | null;\n if (!im || !main) return;\n main.src = im.getAttribute('src') || '';\n main.alt = im.alt;\n this.querySelector('.usa-pg2-stage')!.setAttribute('aria-label', `Image ${this._i + 1} of ${this.count}${im.alt ? `: ${im.alt}` : ''}`);\n const thumbs = Array.from(this.querySelectorAll<HTMLElement>('.usa-pg2-thumb'));\n thumbs.forEach((t, k) => (t.setAttribute('aria-selected', String(k === this._i)), (t.tabIndex = k === this._i ? 0 : -1)));\n const t = thumbs[this._i];\n const ring = this.querySelector('.usa-pg2-ring') as HTMLElement;\n if (t && ring) {\n ring.style.transform = `translateX(${t.offsetLeft}px)`;\n ring.style.width = `${t.offsetWidth || 56}px`;\n }\n if (dir && !this.reduced) this.motion(main, [{ transform: `translateX(${dir * 18}%)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 380, easing: 'cubic-bezier(.2,.8,.2,1)' });\n }\n }\n return UsaProductGallery as unknown as CustomElementConstructor;\n },\n { id: 'product-gallery', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './countdown.css?raw';\n\n/**\n * `<usa-countdown>` (7.3) — a flip-card countdown to `to` (ISO date / time)\n * or for `seconds`: days · hours · minutes · seconds, each digit flips like a\n * split-flap card when it changes. `units` (\"d,h,m,s\"), `labels`. Fires\n * `usa:tick` (`{ left }`) and `usa:done`; adds `data-done`. A `timer` with an\n * `aria-label` that updates once a minute (not every second). Reduced motion:\n * digits change without the flip.\n */\nexport interface UsaCountdownElement extends UsaElement {\n /** Seconds left. */\n readonly left: number;\n start(): void;\n stop(): void;\n}\n\n/** Split seconds into d/h/m/s (7.3). */\nexport function splitTime(sec: number): { d: number; h: number; m: number; s: number } {\n const t = Math.max(0, Math.floor(sec));\n return { d: Math.floor(t / 86400), h: Math.floor((t % 86400) / 3600), m: Math.floor((t % 3600) / 60), s: t % 60 };\n}\n\nconst NAMES: Record<string, string> = { d: 'days', h: 'hours', m: 'minutes', s: 'seconds' };\n\nexport function defineCountdown(tag = 'usa-countdown'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCountdown extends Base {\n static get observedAttributes(): string[] {\n return ['to', 'seconds'];\n }\n private _end = 0;\n private _timer: ReturnType<typeof setInterval> | 0 = 0;\n private _lastMin = -1;\n\n get left(): number {\n return Math.max(0, Math.round((this._end - Date.now()) / 1000));\n }\n\n mount(): void {\n const units = this.str('units', 'd,h,m,s').split(',').map((u) => u.trim()).filter((u) => u in NAMES);\n const labels = this.str('labels', '').split(',');\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', `<span class=\"usa-cd-row\" data-usa-part aria-hidden=\"true\">${units.map((u, i) => `<span class=\"usa-cd-unit\" data-u=\"${u}\"><span class=\"usa-cd-digits\"></span><small>${labels[i]?.trim() || NAMES[u]}</small></span>`).join('')}</span>`);\n this.setAttribute('role', 'timer');\n this.reset();\n this.onCleanup(() => this.stop());\n this.start();\n }\n\n changed(): void {\n if (this.isConnected) (this.reset(), this.start());\n }\n\n private reset(): void {\n const to = this.str('to', '');\n const t = to ? Date.parse(to) : NaN;\n this._end = Number.isFinite(t) ? t : Date.now() + this.num('seconds', 60) * 1000;\n this._lastMin = -1;\n this.removeAttribute('data-done');\n this.paint(false);\n }\n\n start(): void {\n this.stop();\n this._timer = setInterval(() => this.paint(true), 1000);\n }\n stop(): void {\n if (this._timer) clearInterval(this._timer);\n this._timer = 0;\n }\n\n private paint(flip: boolean): void {\n const left = this.left;\n const t = splitTime(left);\n this.querySelectorAll<HTMLElement>('.usa-cd-unit').forEach((u) => {\n const key = u.dataset.u as 'd' | 'h' | 'm' | 's';\n const val = String(key === 'h' && !this.querySelector('[data-u=\"d\"]') ? t.h + t.d * 24 : t[key]).padStart(2, '0');\n const box = u.querySelector('.usa-cd-digits') as HTMLElement;\n while (box.children.length < val.length) box.insertAdjacentHTML('afterbegin', '<b class=\"usa-cd-d\">0</b>');\n while (box.children.length > val.length) box.firstElementChild!.remove();\n Array.from(box.children).forEach((d, i) => {\n if (d.textContent === val[i]) return;\n d.textContent = val[i];\n if (flip && !this.reduced) this.motion(d, [{ transform: 'rotateX(-90deg)', filter: 'brightness(.7)' }, { transform: 'none', filter: 'none' }], { duration: 360, easing: 'cubic-bezier(.3,1.4,.6,1)' });\n });\n });\n const min = Math.floor(left / 60);\n if (min !== this._lastMin) {\n this._lastMin = min;\n this.setAttribute('aria-label', `${this.str('label', 'Time left')}: ${t.d ? `${t.d} days ` : ''}${t.h} hours ${t.m} minutes`);\n }\n if (flip) this.emit('tick', { left });\n if (left <= 0 && !this.hasAttribute('data-done')) {\n this.setAttribute('data-done', '');\n this.stop();\n this.emit('done', {});\n }\n }\n }\n return UsaCountdown as unknown as CustomElementConstructor;\n },\n { id: 'countdown', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './message-list.css?raw';\n\nexport interface ChatMessage {\n text: string;\n from?: string;\n me?: boolean;\n time?: string;\n}\n\n/**\n * `<usa-message-list>` (7.4) — a chat thread. Messages come from `<p>`\n * children (`data-me`, `data-from`, `data-time`) or `push(msg)`: each new\n * bubble pops in from its side, consecutive bubbles from the same sender are\n * grouped, and the list sticks to the bottom (smooth scroll) unless the\n * reader scrolled up — then a “↓ New messages” pill appears. `typing(name)`\n * shows an animated “… is typing” bubble until the next message (or\n * `typing(false)`). A `log` with `aria-live=\"polite\"`. Reduced motion: no pop\n * or smooth scroll, the typing dots are static.\n */\nexport interface UsaMessageListElement extends UsaElement {\n readonly messages: ChatMessage[];\n push(msg: ChatMessage): void;\n typing(who: string | false): void;\n}\n\nexport function defineMessageList(tag = 'usa-message-list'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaMessageList extends Base {\n private _msgs: ChatMessage[] = [];\n get messages(): ChatMessage[] {\n return this._msgs.map((m) => ({ ...m }));\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const seed = Array.from(this.querySelectorAll<HTMLElement>(':scope > p'));\n this._msgs = [];\n this.insertAdjacentHTML('beforeend', '<ol class=\"usa-ml-list\" data-usa-part role=\"log\" aria-live=\"polite\"></ol><button type=\"button\" class=\"usa-ml-new\" data-usa-part hidden>↓ New messages</button>');\n (this.querySelector('.usa-ml-list') as HTMLElement).setAttribute('aria-label', this.str('label', 'Messages'));\n seed.forEach((p) => {\n p.hidden = true;\n this.add({ text: p.textContent || '', me: p.hasAttribute('data-me'), from: p.dataset.from, time: p.dataset.time }, false);\n });\n const list = this.querySelector('.usa-ml-list') as HTMLElement;\n const pill = this.querySelector('.usa-ml-new') as HTMLElement;\n this.listen(list, 'scroll', () => this.atBottom() && (pill.hidden = true));\n this.listen(pill, 'click', () => this.toBottom(true));\n this.toBottom(false);\n }\n\n private atBottom(): boolean {\n const l = this.querySelector('.usa-ml-list') as HTMLElement;\n return l.scrollHeight - l.scrollTop - l.clientHeight < 24;\n }\n private toBottom(smooth: boolean): void {\n const l = this.querySelector('.usa-ml-list') as HTMLElement;\n if (typeof l.scrollTo === 'function') l.scrollTo({ top: l.scrollHeight, behavior: smooth && !this.reduced ? 'smooth' : 'auto' });\n else l.scrollTop = l.scrollHeight;\n (this.querySelector('.usa-ml-new') as HTMLElement).hidden = true;\n }\n\n private add(m: ChatMessage, animate: boolean): void {\n const list = this.querySelector('.usa-ml-list') as HTMLElement;\n const stick = this.atBottom();\n this.typing(false);\n const prev = this._msgs[this._msgs.length - 1];\n this._msgs.push({ ...m });\n const li = document.createElement('li');\n li.className = 'usa-ml-msg';\n li.dataset.side = m.me ? 'right' : 'left';\n if (prev && !!prev.me === !!m.me && prev.from === m.from) li.dataset.grouped = '';\n li.innerHTML = '<span class=\"usa-ml-from\"></span><span class=\"usa-ml-bubble\"></span><time class=\"usa-ml-time\"></time>';\n (li.querySelector('.usa-ml-from') as HTMLElement).textContent = m.me ? '' : m.from || '';\n (li.querySelector('.usa-ml-bubble') as HTMLElement).textContent = m.text;\n (li.querySelector('.usa-ml-time') as HTMLElement).textContent = m.time || '';\n list.appendChild(li);\n if (animate && !this.reduced) {\n li.style.transformOrigin = m.me ? '100% 100%' : '0 100%';\n this.motion(li, [{ transform: `translateX(${m.me ? 20 : -20}px) scale(.7)`, opacity: 0 }, { transform: 'scale(1.03)', opacity: 1, offset: 0.65 }, { transform: 'none', opacity: 1 }], { duration: 380, easing: 'cubic-bezier(.2,.9,.3,1)' });\n }\n if (stick || m.me) this.toBottom(animate);\n else (this.querySelector('.usa-ml-new') as HTMLElement).hidden = false;\n }\n\n push(msg: ChatMessage): void {\n this.add(msg, true);\n this.emit('message', { message: { ...msg } });\n }\n\n typing(who: string | false): void {\n const list = this.querySelector('.usa-ml-list') as HTMLElement | null;\n if (!list) return;\n list.querySelector('.usa-ml-typing')?.remove();\n if (who === false || who === '') return;\n const li = document.createElement('li');\n li.className = 'usa-ml-msg usa-ml-typing';\n li.dataset.side = 'left';\n li.innerHTML = '<span class=\"usa-ml-bubble\"><i></i><i></i><i></i></span>';\n li.setAttribute('aria-label', `${who} is typing`);\n list.appendChild(li);\n if (this.atBottom() || list.children.length < 3) this.toBottom(false);\n }\n }\n return UsaMessageList as unknown as CustomElementConstructor;\n },\n { id: 'message-list', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './reactions.css?raw';\n\n/**\n * `<usa-reactions>` (7.4) — an emoji reaction bar (Slack / iMessage style).\n * `emojis` (\"👍,❤️,😂,🎉\") with optional `counts` (\"3,1,0,0\"). Clicking a pill\n * toggles your reaction: the count rolls up / down, the emoji pops and a few\n * copies float up. A + button opens a small picker that springs open. Each\n * pill is a `button` with `aria-pressed` and a label (\"❤️ 2 reactions\").\n * `usa:react` (`{ emoji, on, count }`). Reduced motion: no pop, roll or float.\n */\nexport interface UsaReactionsElement extends UsaElement {\n /** emoji → count */\n readonly counts: Record<string, number>;\n /** Your active reactions. */\n readonly mine: string[];\n toggle(emoji: string, on?: boolean): void;\n}\n\n/** Parse \"👍,❤️\" + \"3,1\" into ordered [emoji, count] pairs (7.4). */\nexport function parseReactions(emojis: string, counts = ''): [string, number][] {\n const c = counts.split(',').map((n) => Math.max(0, parseInt(n, 10) || 0));\n return emojis.split(',').map((e) => e.trim()).filter(Boolean).map((e, i) => [e, c[i] || 0]);\n}\n\nexport function defineReactions(tag = 'usa-reactions'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaReactions extends Base {\n private _c = new Map<string, number>();\n private _mine = new Set<string>();\n get counts(): Record<string, number> {\n return Object.fromEntries(this._c);\n }\n get mine(): string[] {\n return Array.from(this._mine);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.setAttribute('role', 'group');\n if (!this.hasAttribute('aria-label')) this.setAttribute('aria-label', 'Reactions');\n this._c = new Map(parseReactions(this.str('emojis', '👍,❤️,😂,🎉'), this.str('counts', '')));\n this.insertAdjacentHTML('beforeend', '<span class=\"usa-rx-row\" data-usa-part></span><button type=\"button\" class=\"usa-rx-add\" data-usa-part aria-label=\"Add reaction\" aria-expanded=\"false\">+</button><span class=\"usa-rx-picker\" data-usa-part hidden></span>');\n const picker = this.querySelector('.usa-rx-picker') as HTMLElement;\n for (const e of this.str('picker', '👍,❤️,😂,🎉,😮,😢,🔥,👀').split(',').map((s) => s.trim()).filter(Boolean)) {\n const b = document.createElement('button');\n b.type = 'button';\n b.textContent = e;\n b.setAttribute('aria-label', `React ${e}`);\n this.listen(b, 'click', () => (this.toggle(e, true), this.pick(false)));\n picker.appendChild(b);\n }\n this.listen(this.querySelector('.usa-rx-add')!, 'click', () => this.pick(picker.hidden === true));\n this.listen(this, 'keydown', (e: KeyboardEvent) => e.key === 'Escape' && this.pick(false));\n this.render(null);\n }\n\n private pick(open: boolean): void {\n const p = this.querySelector('.usa-rx-picker') as HTMLElement;\n p.hidden = !open;\n this.querySelector('.usa-rx-add')!.setAttribute('aria-expanded', String(open));\n if (open && !this.reduced) this.motion(p, [{ transform: 'scale(.4) translateY(8px)', opacity: 0 }, { transform: 'scale(1.05)', opacity: 1, offset: 0.7 }, { transform: 'none', opacity: 1 }], { duration: 300, easing: 'ease-out' });\n }\n\n toggle(emoji: string, on?: boolean): void {\n const has = this._mine.has(emoji);\n const want = on ?? !has;\n if (want === has) return;\n const n = Math.max(0, (this._c.get(emoji) || 0) + (want ? 1 : -1));\n this._c.set(emoji, n);\n want ? this._mine.add(emoji) : this._mine.delete(emoji);\n this.render(emoji, want);\n this.emit('react', { emoji, on: want, count: n });\n }\n\n private render(changed: string | null, up = true): void {\n const row = this.querySelector('.usa-rx-row') as HTMLElement;\n for (const [e, n] of this._c) {\n let b = Array.from(row.children).find((x) => (x as HTMLElement).dataset.e === e) as HTMLElement | undefined;\n if (!b) {\n b = document.createElement('button');\n b.setAttribute('type', 'button');\n b.className = 'usa-rx-pill';\n b.dataset.e = e;\n b.innerHTML = '<span class=\"usa-rx-emo\" aria-hidden=\"true\"></span><span class=\"usa-rx-n\" aria-hidden=\"true\"></span>';\n (b.querySelector('.usa-rx-emo') as HTMLElement).textContent = e;\n this.listen(b, 'click', () => this.toggle(e));\n row.appendChild(b);\n }\n b.hidden = n === 0 && !this._mine.has(e);\n b.setAttribute('aria-pressed', String(this._mine.has(e)));\n b.setAttribute('aria-label', `${e} ${n} reaction${n === 1 ? '' : 's'}`);\n const num = b.querySelector('.usa-rx-n') as HTMLElement;\n num.textContent = String(n);\n if (changed === e && !this.reduced) {\n this.motion(b.querySelector('.usa-rx-emo')!, [{ transform: 'scale(1)' }, { transform: 'scale(1.6) rotate(-12deg)', offset: 0.35 }, { transform: 'scale(1)' }], { duration: 420, easing: 'ease-out' });\n this.motion(num, [{ transform: `translateY(${up ? 10 : -10}px)`, opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 260, easing: 'ease-out' });\n if (up) this.float(b, e);\n }\n }\n }\n\n private float(b: HTMLElement, e: string): void {\n for (let i = 0; i < 3; i++) {\n const s = document.createElement('span');\n s.className = 'usa-rx-float';\n s.setAttribute('aria-hidden', 'true');\n s.textContent = e;\n b.appendChild(s);\n const a = this.motion(s, [{ transform: 'translate(-50%,0) scale(.5)', opacity: 1 }, { transform: `translate(${-50 + (i - 1) * 60}%,-42px) scale(1)`, opacity: 0 }], { duration: 700, delay: i * 70, easing: 'ease-out' });\n if (a) a.finished.then(() => s.remove(), () => s.remove());\n else s.remove();\n }\n }\n }\n return UsaReactions as unknown as CustomElementConstructor;\n },\n { id: 'reactions', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './notification-bell.css?raw';\n\nexport interface BellNotice {\n id?: string;\n text: string;\n time?: string;\n read?: boolean;\n}\n\n/**\n * `<usa-notification-bell>` (7.4) — a bell button with an unread badge and a\n * dropdown list. `notify(n)` rings the bell (a pendulum swing), bumps the\n * badge and slides the notice in at the top of the list; opening the list and\n * “Mark all read” clears the badge (it shrinks away). Notices from `<li>`\n * children too. Esc / outside click close it. The bell is a `button` with\n * `aria-expanded` and a label including the unread count; the list is a\n * labelled region. `usa:notify`, `usa:read`. Reduced motion: no swing, bump\n * or slide.\n */\nexport interface UsaNotificationBellElement extends UsaElement {\n readonly unread: number;\n readonly notices: BellNotice[];\n open: boolean;\n notify(n: BellNotice | string): void;\n markAllRead(): void;\n ring(): void;\n}\n\nexport function defineNotificationBell(tag = 'usa-notification-bell'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaNotificationBell extends Base {\n private _n: BellNotice[] = [];\n private _open = false;\n get unread(): number {\n return this._n.filter((n) => !n.read).length;\n }\n get notices(): BellNotice[] {\n return this._n.map((n) => ({ ...n }));\n }\n get open(): boolean {\n return this._open;\n }\n set open(v: boolean) {\n this.toggle(!!v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const seed = Array.from(this.querySelectorAll<HTMLElement>(':scope > li'));\n this._n = seed.map((li, i) => ({ id: `n${i}`, text: li.textContent || '', time: li.dataset.time, read: li.hasAttribute('data-read') }));\n seed.forEach((li) => li.remove());\n this.insertAdjacentHTML('beforeend', '<button type=\"button\" class=\"usa-nb-btn\" data-usa-part aria-expanded=\"false\"><svg class=\"usa-nb-bell\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 3a6 6 0 0 0-6 6v4l-2 3h16l-2-3V9a6 6 0 0 0-6-6zm-2 15a2 2 0 0 0 4 0\"/></svg><b class=\"usa-nb-badge\"></b></button><div class=\"usa-nb-panel\" data-usa-part role=\"region\" hidden><header><strong>Notifications</strong><button type=\"button\" class=\"usa-nb-read\">Mark all read</button></header><ul class=\"usa-nb-list\"></ul><p class=\"usa-nb-empty\">You’re all caught up</p></div>');\n this.querySelector('.usa-nb-panel')!.setAttribute('aria-label', this.str('label', 'Notifications'));\n this.listen(this.querySelector('.usa-nb-btn')!, 'click', () => this.toggle());\n this.listen(this.querySelector('.usa-nb-read')!, 'click', () => this.markAllRead());\n this.listen(this, 'keydown', (e: KeyboardEvent) => e.key === 'Escape' && this._open && (this.toggle(false), (this.querySelector('.usa-nb-btn') as HTMLElement).focus()));\n this.listen(document, 'pointerdown', (e: Event) => this._open && !this.contains(e.target as Node) && this.toggle(false));\n this.render(null);\n }\n\n toggle(force?: boolean): void {\n const on = force ?? !this._open;\n this._open = on;\n const p = this.querySelector('.usa-nb-panel') as HTMLElement | null;\n if (!p) return;\n p.hidden = !on;\n this.querySelector('.usa-nb-btn')!.setAttribute('aria-expanded', String(on));\n if (on && !this.reduced) this.motion(p, [{ transform: 'translateY(-8px) scale(.96)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 220, easing: 'ease-out' });\n }\n\n ring(): void {\n if (this.reduced) return;\n this.motion(this.querySelector('.usa-nb-bell')!, [0, 18, -16, 12, -8, 4, 0].map((d) => ({ transform: `rotate(${d}deg)` })), { duration: 800, easing: 'ease-out' });\n }\n\n notify(n: BellNotice | string): void {\n const item: BellNotice = typeof n === 'string' ? { text: n } : { ...n };\n item.id = item.id || `n${Date.now().toString(36)}${this._n.length}`;\n item.read = !!item.read;\n this._n.unshift(item);\n this.ring();\n this.render(item.id);\n this.emit('notify', { notice: { ...item } });\n }\n\n markAllRead(): void {\n if (!this.unread) return;\n this._n.forEach((n) => (n.read = true));\n this.render(null);\n this.emit('read', {});\n }\n\n private render(added: string | null): void {\n const list = this.querySelector('.usa-nb-list') as HTMLElement;\n list.textContent = '';\n for (const n of this._n) {\n const li = document.createElement('li');\n li.className = 'usa-nb-item';\n if (!n.read) li.dataset.unread = '';\n li.innerHTML = '<span class=\"usa-nb-text\"></span><time></time>';\n (li.querySelector('.usa-nb-text') as HTMLElement).textContent = n.text;\n (li.querySelector('time') as HTMLElement).textContent = n.time || '';\n list.appendChild(li);\n if (n.id === added && !this.reduced) this.motion(li, [{ transform: 'translateY(-100%)', opacity: 0 }, { transform: 'none', opacity: 1 }], { duration: 320, easing: 'cubic-bezier(.2,.9,.3,1)' });\n }\n (this.querySelector('.usa-nb-empty') as HTMLElement).hidden = this._n.length > 0;\n const u = this.unread;\n const badge = this.querySelector('.usa-nb-badge') as HTMLElement;\n const had = badge.textContent !== '';\n badge.textContent = u ? (u > 99 ? '99+' : String(u)) : '';\n this.querySelector('.usa-nb-btn')!.setAttribute('aria-label', `${this.str('label', 'Notifications')}${u ? `, ${u} unread` : ''}`);\n if (!this.reduced && added) this.motion(badge, [{ transform: 'scale(.3)' }, { transform: 'scale(1.35)', offset: 0.5 }, { transform: 'scale(1)' }], { duration: 380, easing: 'ease-out' });\n else if (!this.reduced && had && !u) this.motion(badge, [{ transform: 'scale(1)', opacity: 1 }, { transform: 'scale(0)', opacity: 0 }], { duration: 200 });\n }\n }\n return UsaNotificationBell as unknown as CustomElementConstructor;\n },\n { id: 'notification-bell', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './presence.css?raw';\n\n/** Presence states (7.4). */\nexport const PRESENCE_STATES = ['online', 'away', 'busy', 'offline'] as const;\nexport type PresenceState = (typeof PRESENCE_STATES)[number];\n\n/**\n * `<usa-presence>` (7.4) — an avatar with a live status dot: `status`\n * online | away | busy | offline. Going online sends a ripple from the dot;\n * every change cross-fades the dot colour; `speaking` adds a pulsing ring\n * (voice chat), `story` an animated gradient ring (unseen story). Initials from\n * `name` when there is no `src`. Labelled `img` (\"Ada Lovelace, online\").\n * Reduced motion: no ripple, pulse or ring spin.\n */\nexport interface UsaPresenceElement extends UsaElement {\n status: PresenceState;\n}\n\n/** Initials for a display name (7.4). */\nexport const initials = (name: string): string =>\n name\n .trim()\n .split(/\\s+/)\n .filter(Boolean)\n .slice(0, 2)\n .map((w) => Array.from(w)[0]!.toUpperCase())\n .join('');\n\nexport function definePresence(tag = 'usa-presence'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaPresence extends Base {\n static get observedAttributes(): string[] {\n return ['status', 'speaking', 'name', 'src'];\n }\n private _prev = '';\n get status(): PresenceState {\n const s = this.str('status', 'offline') as PresenceState;\n return PRESENCE_STATES.includes(s) ? s : 'offline';\n }\n set status(v: PresenceState) {\n this.setAttribute('status', v);\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML('afterbegin', '<span class=\"usa-pr2-face\" data-usa-part></span><i class=\"usa-pr2-dot\" data-usa-part aria-hidden=\"true\"></i>');\n this.setAttribute('role', 'img');\n this._prev = '';\n this.paint();\n }\n\n changed(): void {\n if (this.isConnected && this.querySelector('.usa-pr2-face')) this.paint();\n }\n\n private paint(): void {\n const face = this.querySelector('.usa-pr2-face') as HTMLElement;\n const name = this.str('name', '');\n const src = this.str('src', '');\n if (src) face.innerHTML = `<img alt=\"\" src=\"${src.replace(/\"/g, '&quot;')}\">`;\n else face.textContent = initials(name) || '?';\n const s = this.status;\n this.dataset.state = s;\n this.setAttribute('aria-label', `${name || 'User'}, ${s}${this.flag('speaking') ? ', speaking' : ''}`);\n const dot = this.querySelector('.usa-pr2-dot') as HTMLElement;\n if (this._prev && this._prev !== s && !this.reduced) {\n this.motion(dot, [{ transform: 'scale(.4)' }, { transform: 'scale(1.3)', offset: 0.6 }, { transform: 'scale(1)' }], { duration: 360, easing: 'ease-out' });\n if (s === 'online') {\n const r = document.createElement('i');\n r.className = 'usa-pr2-ripple';\n r.setAttribute('aria-hidden', 'true');\n this.appendChild(r);\n const a = this.motion(r, [{ transform: 'scale(1)', opacity: 0.7 }, { transform: 'scale(3.2)', opacity: 0 }], { duration: 700, easing: 'ease-out' });\n if (a) a.finished.then(() => r.remove(), () => r.remove());\n else r.remove();\n }\n }\n this._prev = s;\n }\n }\n return UsaPresence as unknown as CustomElementConstructor;\n },\n { id: 'presence', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './leaderboard.css?raw';\n\nexport interface LeaderRow {\n name: string;\n score: number;\n avatar?: string;\n}\n\n/**\n * `<usa-leaderboard>` (7.5) — a ranked list from `<li data-score>` children or\n * the `rows` property. When scores change, rows glide to their new rank\n * (FLIP), climbers flash green with ▲n, fallers red with ▼n, and scores roll.\n * Top three get 🥇🥈🥉. `limit`, `me` (name to highlight). An ordered list\n * whose items read \"1. Ada, 980 points\"; rank changes are announced politely.\n * `usa:rank` (`{ name, from, to }`). Reduced motion: rows jump, no flash or roll.\n */\nexport interface UsaLeaderboardElement extends UsaElement {\n rows: LeaderRow[];\n setScore(name: string, score: number): void;\n}\n\n/** Sort rows by score desc, then name (7.5). */\nexport const rankRows = (rows: LeaderRow[]): LeaderRow[] => [...rows].sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));\n\nconst MEDAL = ['🥇', '🥈', '🥉'];\n\nexport function defineLeaderboard(tag = 'usa-leaderboard'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaLeaderboard extends Base {\n private _rows: LeaderRow[] = [];\n get rows(): LeaderRow[] {\n return rankRows(this._rows).map((r) => ({ ...r }));\n }\n set rows(v: LeaderRow[]) {\n this._rows = (v || []).map((r) => ({ ...r, score: Number(r.score) || 0 }));\n if (this.isConnected) this.render();\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const seed = Array.from(this.querySelectorAll<HTMLElement>(':scope > li'));\n if (seed.length) this._rows = seed.map((li) => ({ name: (li.textContent || '').trim(), score: Number(li.dataset.score) || 0, avatar: li.dataset.avatar }));\n seed.forEach((li) => li.remove());\n this.insertAdjacentHTML('beforeend', '<ol class=\"usa-lb-list\" data-usa-part></ol><span class=\"usa-lb-live\" data-usa-part aria-live=\"polite\"></span>');\n this.querySelector('.usa-lb-list')!.setAttribute('aria-label', this.str('label', 'Leaderboard'));\n this.render();\n }\n\n setScore(name: string, score: number): void {\n const r = this._rows.find((x) => x.name === name);\n if (r) r.score = score;\n else this._rows.push({ name, score });\n this.render();\n }\n\n private render(): void {\n const list = this.querySelector('.usa-lb-list') as HTMLElement | null;\n if (!list) return;\n const ranked = rankRows(this._rows).slice(0, this.num('limit', 10));\n const old = new Map<string, { li: HTMLElement; top: number; rank: number; score: number }>();\n Array.from(list.children).forEach((li) => {\n const h = li as HTMLElement;\n old.set(h.dataset.name!, { li: h, top: h.getBoundingClientRect().top, rank: Number(h.dataset.rank), score: Number(h.dataset.score) });\n });\n const me = this.str('me', '');\n const moves: string[] = [];\n ranked.forEach((r, i) => {\n const prev = old.get(r.name);\n old.delete(r.name);\n const li = prev?.li || document.createElement('li');\n if (!prev) {\n li.className = 'usa-lb-row';\n li.innerHTML = '<b class=\"usa-lb-rank\" aria-hidden=\"true\"></b><span class=\"usa-lb-av\" aria-hidden=\"true\"></span><span class=\"usa-lb-name\"></span><i class=\"usa-lb-delta\" aria-hidden=\"true\"></i><span class=\"usa-lb-score\"></span>';\n }\n li.dataset.name = r.name;\n li.dataset.rank = String(i + 1);\n li.dataset.score = String(r.score);\n li.toggleAttribute('data-me', r.name === me);\n (li.querySelector('.usa-lb-rank') as HTMLElement).textContent = MEDAL[i] || String(i + 1);\n const av = li.querySelector('.usa-lb-av') as HTMLElement;\n av.textContent = r.avatar ? '' : Array.from(r.name)[0] || '?';\n av.style.backgroundImage = r.avatar ? `url(\"${r.avatar}\")` : '';\n (li.querySelector('.usa-lb-name') as HTMLElement).textContent = r.name;\n li.setAttribute('aria-label', `${i + 1}. ${r.name}, ${r.score} points`);\n const sc = li.querySelector('.usa-lb-score') as HTMLElement;\n const delta = li.querySelector('.usa-lb-delta') as HTMLElement;\n list.appendChild(li);\n if (prev && prev.rank !== i + 1) {\n const d = prev.rank - (i + 1);\n delta.textContent = d > 0 ? `▲${d}` : `▼${-d}`;\n li.dataset.move = d > 0 ? 'up' : 'down';\n moves.push(`${r.name} ${d > 0 ? 'up' : 'down'} to ${i + 1}`);\n this.emit('rank', { name: r.name, from: prev.rank, to: i + 1 });\n } else if (prev) {\n delete li.dataset.move;\n delta.textContent = '';\n }\n if (!this.reduced && prev) {\n const dy = prev.top - li.getBoundingClientRect().top;\n if (dy) this.motion(li, [{ transform: `translateY(${dy}px)` }, { transform: 'none' }], { duration: 520, easing: 'cubic-bezier(.2,.9,.3,1)' });\n if (li.dataset.move) this.motion(li, [{ backgroundColor: li.dataset.move === 'up' ? 'rgba(34,197,94,.25)' : 'rgba(239,68,68,.2)' }, { backgroundColor: 'transparent' }], { duration: 1200, composite: 'add' } as KeyframeAnimationOptions);\n }\n this.roll(sc, prev ? prev.score : r.score, r.score);\n });\n old.forEach(({ li }) => li.remove());\n if (moves.length) (this.querySelector('.usa-lb-live') as HTMLElement).textContent = moves.join('; ');\n }\n\n private roll(el: HTMLElement, from: number, to: number): void {\n if (this.reduced || from === to || typeof requestAnimationFrame !== 'function') return void (el.textContent = to.toLocaleString());\n const t0 = performance.now();\n const f = (now: number) => {\n const k = Math.min(1, (now - t0) / 600);\n el.textContent = Math.round(from + (to - from) * (1 - Math.pow(1 - k, 3))).toLocaleString();\n if (k < 1) requestAnimationFrame(f);\n };\n requestAnimationFrame(f);\n }\n }\n return UsaLeaderboard as unknown as CustomElementConstructor;\n },\n { id: 'leaderboard', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './xp-bar.css?raw';\n\n/**\n * `<usa-xp-bar>` (7.5) — an experience bar: `level`, `xp`, `per` (XP per\n * level, default 100). `add(n)` fills the bar smoothly; when it overflows the\n * bar fills to the end, the level badge pops (“Level up!”) and the bar restarts\n * with the remainder — several levels in a row if needed. A `progressbar`\n * labelled \"Level 3, 40 of 100 XP\"; level-ups are announced politely.\n * `usa:xp` (`{ level, xp, gained }`), `usa:levelup` (`{ level }`).\n * Reduced motion: the bar and level change at once, no pop.\n */\nexport interface UsaXpBarElement extends UsaElement {\n level: number;\n xp: number;\n add(n: number): void;\n}\n\n/** Apply `gain` XP to (level, xp) with `per` XP per level (7.5). */\nexport function levelFor(level: number, xp: number, gain: number, per = 100): { level: number; xp: number; ups: number } {\n const p = Math.max(1, per);\n let total = Math.max(0, xp + gain);\n let ups = 0;\n while (total >= p) {\n total -= p;\n ups++;\n }\n return { level: level + ups, xp: total, ups };\n}\n\nexport function defineXpBar(tag = 'usa-xp-bar'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaXpBar extends Base {\n static get observedAttributes(): string[] {\n return ['level', 'xp', 'per'];\n }\n private _busy = false;\n get level(): number {\n return Math.max(1, Math.floor(this.num('level', 1)));\n }\n set level(v: number) {\n this.setAttribute('level', String(v));\n }\n get xp(): number {\n return Math.max(0, this.num('xp', 0));\n }\n set xp(v: number) {\n this.setAttribute('xp', String(v));\n }\n private get per(): number {\n return Math.max(1, this.num('per', 100));\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML(\n 'beforeend',\n '<b class=\"usa-xp-lvl\" data-usa-part aria-hidden=\"true\"></b><span class=\"usa-xp-track\" data-usa-part><i class=\"usa-xp-fill\"></i></span><span class=\"usa-xp-num\" data-usa-part aria-hidden=\"true\"></span><span class=\"usa-xp-live\" data-usa-part aria-live=\"polite\"></span>'\n );\n this.setAttribute('role', 'progressbar');\n this.setAttribute('aria-valuemin', '0');\n this.paint(false);\n }\n\n changed(): void {\n if (!this._busy && this.querySelector('.usa-xp-fill')) this.paint(false);\n }\n\n private paint(animate: boolean, from?: number): void {\n const per = this.per;\n const xp = Math.min(this.xp, per);\n (this.querySelector('.usa-xp-lvl') as HTMLElement).textContent = String(this.level);\n (this.querySelector('.usa-xp-num') as HTMLElement).textContent = `${Math.round(xp)} / ${per} XP`;\n this.setAttribute('aria-valuemax', String(per));\n this.setAttribute('aria-valuenow', String(Math.round(xp)));\n this.setAttribute('aria-label', `Level ${this.level}, ${Math.round(xp)} of ${per} XP`);\n const fill = this.querySelector('.usa-xp-fill') as HTMLElement;\n const to = `scaleX(${(xp / per).toFixed(4)})`;\n if (animate && !this.reduced && from !== undefined) this.motion(fill, [{ transform: `scaleX(${from.toFixed(4)})` }, { transform: to }], { duration: 500, easing: 'cubic-bezier(.2,.8,.3,1)' });\n fill.style.transform = to;\n }\n\n add(n: number): void {\n const per = this.per;\n const start = this.level;\n const r = levelFor(start, Math.min(this.xp, per), Number(n) || 0, per);\n const fill = this.querySelector('.usa-xp-fill') as HTMLElement | null;\n const fromK = Math.min(this.xp, per) / per;\n this._busy = true;\n this.level = r.level;\n this.xp = r.xp;\n this._busy = false;\n if (!fill) return;\n if (r.ups && !this.reduced) {\n this.motion(fill, [{ transform: `scaleX(${fromK.toFixed(4)})` }, { transform: 'scaleX(1)' }], { duration: 380, easing: 'ease-in' });\n const lvl = this.querySelector('.usa-xp-lvl') as HTMLElement;\n this.motion(lvl, [{ transform: 'scale(1)' }, { transform: 'scale(1.6) rotate(-8deg)', offset: 0.5 }, { transform: 'scale(1)' }], { duration: 600, delay: 340, easing: 'ease-out' });\n this.dataset.levelup = '';\n setTimeout(() => {\n delete this.dataset.levelup;\n }, 1200);\n setTimeout(() => this.isConnected && this.paint(true, 0), 380);\n this.paint(false);\n fill.style.transform = 'scaleX(1)';\n } else this.paint(true, fromK);\n if (r.ups) {\n (this.querySelector('.usa-xp-live') as HTMLElement).textContent = `Level up! Level ${r.level}`;\n this.emit('levelup', { level: r.level });\n }\n this.emit('xp', { level: r.level, xp: r.xp, gained: n });\n }\n }\n return UsaXpBar as unknown as CustomElementConstructor;\n },\n { id: 'xp-bar', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './badge-wall.css?raw';\n\nexport interface WallBadge {\n name: string;\n icon: string;\n locked: boolean;\n}\n\n/**\n * `<usa-badge-wall>` (7.5) — an achievement grid from `<li data-icon\n * data-locked>` children: locked badges are grey with a 🔒; `unlock(name)`\n * flips the badge over to its colour side with a shine, and the\n * “3 / 8 unlocked” counter rolls. Each badge is a labelled list item\n * (\"First win, unlocked\"); unlocks are announced politely. `badges`,\n * `usa:unlock` (`{ name }`). Reduced motion: the badge just changes, no flip.\n */\nexport interface UsaBadgeWallElement extends UsaElement {\n readonly badges: WallBadge[];\n unlock(name: string): boolean;\n}\n\n/** Unlocked / total counts for a badge list (7.5). */\nexport const badgeProgress = (b: WallBadge[]): { unlocked: number; total: number } => ({ unlocked: b.filter((x) => !x.locked).length, total: b.length });\n\nexport function defineBadgeWall(tag = 'usa-badge-wall'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaBadgeWall extends Base {\n private _b: WallBadge[] = [];\n get badges(): WallBadge[] {\n return this._b.map((b) => ({ ...b }));\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const seed = Array.from(this.querySelectorAll<HTMLElement>(':scope > li'));\n if (seed.length) this._b = seed.map((li) => ({ name: (li.textContent || '').trim(), icon: li.dataset.icon || '🏅', locked: li.hasAttribute('data-locked') }));\n seed.forEach((li) => li.remove());\n this.insertAdjacentHTML('beforeend', '<p class=\"usa-bw-count\" data-usa-part></p><ul class=\"usa-bw-grid\" data-usa-part></ul><span class=\"usa-bw-live\" data-usa-part aria-live=\"polite\"></span>');\n const grid = this.querySelector('.usa-bw-grid') as HTMLElement;\n grid.setAttribute('aria-label', this.str('label', 'Achievements'));\n for (const b of this._b) {\n const li = document.createElement('li');\n li.className = 'usa-bw-badge';\n li.innerHTML = '<span class=\"usa-bw-icon\" aria-hidden=\"true\"></span><span class=\"usa-bw-name\"></span>';\n (li.querySelector('.usa-bw-icon') as HTMLElement).textContent = b.icon;\n (li.querySelector('.usa-bw-name') as HTMLElement).textContent = b.name;\n li.dataset.name = b.name;\n grid.appendChild(li);\n this.paintBadge(li, b);\n }\n this.count();\n }\n\n private paintBadge(li: HTMLElement, b: WallBadge): void {\n li.toggleAttribute('data-locked', b.locked);\n li.setAttribute('aria-label', `${b.name}, ${b.locked ? 'locked' : 'unlocked'}`);\n }\n\n private count(): void {\n const p = badgeProgress(this._b);\n (this.querySelector('.usa-bw-count') as HTMLElement).textContent = `${p.unlocked} / ${p.total} unlocked`;\n }\n\n unlock(name: string): boolean {\n const b = this._b.find((x) => x.name === name && x.locked);\n if (!b) return false;\n b.locked = false;\n const li = Array.from(this.querySelectorAll<HTMLElement>('.usa-bw-badge')).find((x) => x.dataset.name === name);\n if (li) {\n if (!this.reduced) {\n this.motion(li, [{ transform: 'perspective(400px) rotateY(0)' }, { transform: 'perspective(400px) rotateY(90deg)', offset: 0.45 }, { transform: 'perspective(400px) rotateY(0) scale(1.12)', offset: 0.8 }, { transform: 'none' }], { duration: 700, easing: 'ease-out' });\n setTimeout(() => this.paintBadge(li, b), 300);\n li.dataset.shine = '';\n setTimeout(() => delete li.dataset.shine, 1100);\n } else this.paintBadge(li, b);\n li.setAttribute('aria-label', `${b.name}, unlocked`);\n }\n this.count();\n (this.querySelector('.usa-bw-live') as HTMLElement).textContent = `Unlocked: ${name}`;\n this.emit('unlock', { name });\n return true;\n }\n }\n return UsaBadgeWall as unknown as CustomElementConstructor;\n },\n { id: 'badge-wall', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './prize-wheel.css?raw';\n\n/**\n * `<usa-prize-wheel>` (7.5) — a lottery wheel from `segments`\n * (\"10%,Free ship,Try again,…\"): the Spin button whirls the wheel and it eases\n * out on the result (random, or `spin(index)`), the pointer ticks and the\n * winning segment glows. `duration`, `turns`; `result`, `spinning`;\n * `usa:result` (`{ index, label }`). The button is disabled while spinning and\n * the result is announced politely. Reduced motion: the wheel jumps to the\n * result.\n */\nexport interface UsaPrizeWheelElement extends UsaElement {\n readonly segments: string[];\n readonly result: number;\n readonly spinning: boolean;\n spin(index?: number): Promise<number>;\n}\n\n/** Final wheel rotation (deg) that puts segment `index` of `count` under the top pointer after `turns` full turns (7.5). */\nexport function wheelAngle(index: number, count: number, turns = 5): number {\n const seg = 360 / Math.max(1, count);\n return turns * 360 + (360 - (index * seg + seg / 2));\n}\n\nconst COLORS = ['#7c5cff', '#22d3ee', '#f59e0b', '#ef4444', '#22c55e', '#ec4899', '#3b82f6', '#a3e635'];\n\nexport function definePrizeWheel(tag = 'usa-prize-wheel'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaPrizeWheel extends Base {\n private _r = -1;\n private _spin = false;\n private _rot = 0;\n get segments(): string[] {\n return this.str('segments', '10% off,Free ship,Try again,🎁 Gift,5% off,Jackpot').split(',').map((s) => s.trim()).filter(Boolean);\n }\n get result(): number {\n return this._r;\n }\n get spinning(): boolean {\n return this._spin;\n }\n\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const s = this.segments;\n const seg = 360 / s.length;\n const grad = s.map((_, i) => `${COLORS[i % COLORS.length]} ${(i * seg).toFixed(2)}deg ${((i + 1) * seg).toFixed(2)}deg`).join(',');\n this.insertAdjacentHTML(\n 'beforeend',\n '<span class=\"usa-pw-box\" data-usa-part><i class=\"usa-pw-pointer\" aria-hidden=\"true\"></i><span class=\"usa-pw-wheel\" aria-hidden=\"true\"></span><button type=\"button\" class=\"usa-pw-btn\"></button></span><span class=\"usa-pw-live\" data-usa-part aria-live=\"polite\"></span>'\n );\n const wheel = this.querySelector('.usa-pw-wheel') as HTMLElement;\n wheel.style.background = `conic-gradient(${grad})`;\n s.forEach((label, i) => {\n const l = document.createElement('span');\n l.className = 'usa-pw-label';\n l.textContent = label;\n l.style.transform = `rotate(${(i * seg + seg / 2).toFixed(2)}deg)`;\n wheel.appendChild(l);\n });\n this._rot = 0;\n const btn = this.querySelector('.usa-pw-btn') as HTMLButtonElement;\n btn.textContent = this.str('label', 'Spin');\n btn.setAttribute('aria-label', `${this.str('label', 'Spin')} the prize wheel`);\n this.listen(btn, 'click', () => void this.spin());\n }\n\n async spin(index?: number): Promise<number> {\n if (this._spin) return this._r;\n const s = this.segments;\n const i = index !== undefined && index >= 0 && index < s.length ? Math.floor(index) : Math.floor(Math.random() * s.length);\n const wheel = this.querySelector('.usa-pw-wheel') as HTMLElement | null;\n const btn = this.querySelector('.usa-pw-btn') as HTMLButtonElement | null;\n if (!wheel || !btn) return -1;\n this._spin = true;\n btn.disabled = true;\n this.removeAttribute('data-done');\n const base = this._rot - (this._rot % 360);\n const to = base + wheelAngle(i, s.length, this.reduced ? 0 : this.num('turns', 5));\n const from = this._rot;\n this._rot = to;\n const a = this.reduced ? null : this.motion(wheel, [{ transform: `rotate(${from}deg)` }, { transform: `rotate(${to}deg)` }], { duration: this.num('duration', 4000), easing: 'cubic-bezier(.12,.6,.1,1)' });\n wheel.style.transform = `rotate(${to}deg)`;\n if (a) {\n const ptr = this.querySelector('.usa-pw-pointer') as HTMLElement;\n this.motion(ptr, [{ transform: 'rotate(0)' }, { transform: 'rotate(-18deg)' }, { transform: 'rotate(0)' }], { duration: 160, iterations: 18, easing: 'ease-out' });\n await a.finished.catch(() => undefined);\n }\n this._spin = false;\n btn.disabled = false;\n this._r = i;\n this.setAttribute('data-done', '');\n (this.querySelector('.usa-pw-live') as HTMLElement).textContent = `Result: ${s[i]}`;\n this.emit('result', { index: i, label: s[i] });\n return i;\n }\n }\n return UsaPrizeWheel as unknown as CustomElementConstructor;\n },\n { id: 'prize-wheel', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './globe.css?raw';\n\n/**\n * `<usa-globe>` (7.6) — a spinning SVG globe (orthographic projection, no\n * WebGL, no map tiles): graticule, an optional `markers` list\n * (\"Shanghai:31.2,121.5; London:51.5,-0.1\") with pulsing dots, `speed`\n * (degrees per second, default 12; 0 = still), `tilt` (default 18°) and `lon`\n * (start longitude). Spins only while on screen; drag to turn it. `flyTo(name)`\n * rotates a marker to the front (`usa:focus`). The globe is `role=\"img\"`\n * labelled with the marker names; reduced motion: no spin, flyTo jumps.\n */\nexport interface GlobeMarker {\n name: string;\n lat: number;\n lon: number;\n}\nexport interface UsaGlobeElement extends UsaElement {\n readonly markers: GlobeMarker[];\n lon: number;\n flyTo(name: string): Promise<void>;\n}\n\nconst RAD = Math.PI / 180;\n\n/** Orthographic projection on a unit sphere seen from longitude `lon0`, tilted by `tilt` degrees (7.6). */\nexport function project(lat: number, lon: number, lon0 = 0, tilt = 0): { x: number; y: number; visible: boolean } {\n const p = lat * RAD;\n const l = (lon - lon0) * RAD;\n const t = tilt * RAD;\n const x = Math.cos(p) * Math.sin(l);\n const y0 = Math.sin(p);\n const z0 = Math.cos(p) * Math.cos(l);\n const y = y0 * Math.cos(t) - z0 * Math.sin(t);\n const z = y0 * Math.sin(t) + z0 * Math.cos(t);\n return { x: Math.round(x * 1e4) / 1e4, y: Math.round(-y * 1e4) / 1e4, visible: z >= 0 };\n}\n\n/** Parse \"Name:lat,lon; Name2:lat,lon\" (7.6). */\nexport function parseMarkers(s: string): GlobeMarker[] {\n return String(s || '')\n .split(';')\n .map((part) => {\n const m = /^\\s*([^:]+):\\s*(-?[\\d.]+)\\s*,\\s*(-?[\\d.]+)\\s*$/.exec(part);\n return m ? { name: m[1].trim(), lat: Math.max(-90, Math.min(90, +m[2])), lon: +m[3] } : null;\n })\n .filter((m): m is GlobeMarker => !!m);\n}\n\nconst R = 90;\nconst C = 100;\nconst line = (pts: { x: number; y: number; visible: boolean }[]): string => {\n let d = '';\n let pen = false;\n for (const p of pts) {\n if (!p.visible) {\n pen = false;\n continue;\n }\n d += `${pen ? 'L' : 'M'}${(C + p.x * R).toFixed(1)} ${(C + p.y * R).toFixed(1)}`;\n pen = true;\n }\n return d;\n};\n\nexport function defineGlobe(tag = 'usa-globe'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaGlobe extends Base {\n static get observedAttributes(): string[] {\n return ['markers', 'speed', 'tilt'];\n }\n private _lon = 0;\n private _raf = 0;\n private _visible = false;\n private _drag: { x: number; lon: number } | null = null;\n get markers(): GlobeMarker[] {\n return parseMarkers(this.str('markers'));\n }\n get lon(): number {\n return this._lon;\n }\n set lon(v: number) {\n this._lon = ((Number(v) % 360) + 360) % 360;\n this.draw();\n }\n mount(): void {\n this._lon = this.num('lon', this._lon);\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const ms = this.markers;\n this.insertAdjacentHTML(\n 'beforeend',\n `<svg class=\"usa-gl-svg\" data-usa-part viewBox=\"0 0 200 200\" aria-hidden=\"true\"><defs><radialGradient id=\"usa-gl-shade\" cx=\"35%\" cy=\"30%\" r=\"75%\"><stop offset=\"0\" stop-color=\"#fff\" stop-opacity=\".35\"/><stop offset=\"1\" stop-color=\"#000\" stop-opacity=\".25\"/></radialGradient></defs><circle class=\"usa-gl-sea\" cx=\"100\" cy=\"100\" r=\"${R}\"/><path class=\"usa-gl-grid\"/><g class=\"usa-gl-marks\">${ms.map((m) => `<g class=\"usa-gl-mark\" data-name=\"${m.name.replace(/\"/g, '&quot;')}\"><circle class=\"usa-gl-ring\" r=\"4\"/><circle class=\"usa-gl-dot\" r=\"3.2\"/></g>`).join('')}</g><circle cx=\"100\" cy=\"100\" r=\"${R}\" fill=\"url(#usa-gl-shade)\" pointer-events=\"none\"/></svg>`\n );\n this.setAttribute('role', 'img');\n this.setAttribute('aria-label', ms.length ? `Globe: ${ms.map((m) => m.name).join(', ')}` : 'Globe');\n this.draw();\n this.inView((v) => {\n this._visible = v;\n if (v) this.spin();\n else cancelAnimationFrame(this._raf);\n });\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n this._drag = { x: e.clientX, lon: this._lon };\n this.setPointerCapture?.(e.pointerId);\n });\n this.listen(this, 'pointermove', (e: PointerEvent) => {\n if (this._drag) this.lon = this._drag.lon - (e.clientX - this._drag.x) * 0.6;\n });\n const up = () => (this._drag = null);\n this.listen(this, 'pointerup', up);\n this.listen(this, 'pointercancel', up);\n this.onCleanup(() => cancelAnimationFrame(this._raf));\n }\n private spin(): void {\n cancelAnimationFrame(this._raf);\n const speed = this.num('speed', 12);\n if (this.reduced || !speed) return;\n let last = 0;\n const step = (t: number) => {\n if (!this._visible || !this.isConnected) return;\n const dt = last ? Math.min(64, t - last) : 0;\n last = t;\n if (!this._drag) this.lon = this._lon + (speed * dt) / 1000;\n this._raf = requestAnimationFrame(step);\n };\n this._raf = requestAnimationFrame(step);\n }\n draw(): void {\n const grid = this.querySelector('.usa-gl-grid');\n if (!grid) return;\n const tilt = this.num('tilt', 18);\n let d = '';\n for (let lon = 0; lon < 360; lon += 30) d += line(Array.from({ length: 37 }, (_, i) => project(-90 + i * 5, lon, this._lon, tilt)));\n for (let lat = -60; lat <= 60; lat += 30) d += line(Array.from({ length: 73 }, (_, i) => project(lat, i * 5, this._lon, tilt)));\n grid.setAttribute('d', d);\n const ms = this.markers;\n this.querySelectorAll<SVGGElement>('.usa-gl-mark').forEach((g, i) => {\n const m = ms[i];\n if (!m) return;\n const p = project(m.lat, m.lon, this._lon, tilt);\n g.setAttribute('transform', `translate(${(C + p.x * R).toFixed(1)} ${(C + p.y * R).toFixed(1)})`);\n g.toggleAttribute('data-hidden', !p.visible);\n });\n }\n async flyTo(name: string): Promise<void> {\n const m = this.markers.find((x) => x.name === name);\n if (!m) return;\n const from = this._lon;\n const delta = (((m.lon - from) % 360) + 540) % 360 - 180;\n if (this.reduced) this.lon = from + delta;\n else\n await new Promise<void>((done) => {\n const t0 = performance.now();\n const dur = 900;\n const tick = (t: number) => {\n const k = Math.min(1, (t - t0) / dur);\n const e = 1 - Math.pow(1 - k, 3);\n this.lon = from + delta * e;\n if (k < 1 && this.isConnected) requestAnimationFrame(tick);\n else done();\n };\n requestAnimationFrame(tick);\n });\n this.querySelectorAll('.usa-gl-mark').forEach((g) => g.toggleAttribute('data-active', g.getAttribute('data-name') === name));\n this.emit('focus', { name, lat: m.lat, lon: m.lon });\n }\n }\n return UsaGlobe as unknown as CustomElementConstructor;\n },\n { id: 'globe', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './location-card.css?raw';\n\n/**\n * `<usa-location-card>` (7.6) — a place card with a stylised mini map (SVG\n * streets, no tiles, no network): `name`, `address`, `lat`/`lon`, an optional\n * origin `from-lat`/`from-lon` (the distance is computed with the haversine\n * formula, or set it with `distance`), `href` for a “Directions” link and\n * `unit` (`km` | `mi`). When it scrolls into view the pin drops in with a\n * bounce and a ring pulses under it; with an origin, the route from it draws\n * itself. `usa:arrive` fires when the pin lands. An `<article>` with a heading;\n * reduced motion: pin and route are shown at once.\n */\nexport interface UsaLocationCardElement extends UsaElement {\n readonly km: number | null;\n replay(): void;\n}\n\n/** Great-circle distance in km between two lat/lon points (7.6). */\nexport function haversine(lat1: number, lon1: number, lat2: number, lon2: number): number {\n const r = Math.PI / 180;\n const a = Math.sin(((lat2 - lat1) * r) / 2) ** 2 + Math.cos(lat1 * r) * Math.cos(lat2 * r) * Math.sin(((lon2 - lon1) * r) / 2) ** 2;\n return 2 * 6371 * Math.asin(Math.min(1, Math.sqrt(a)));\n}\n\n/** \"850 m\", \"4.2 km\", \"12 km\" — or miles with `unit = 'mi'` (7.6). */\nexport function formatDistance(km: number, unit: 'km' | 'mi' = 'km'): string {\n if (unit === 'mi') {\n const mi = km * 0.621371;\n return mi < 0.1 ? `${Math.round(mi * 5280)} ft` : `${mi < 10 ? mi.toFixed(1) : Math.round(mi)} mi`;\n }\n return km < 1 ? `${Math.round(km * 1000)} m` : `${km < 10 ? km.toFixed(1) : Math.round(km)} km`;\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineLocationCard(tag = 'usa-location-card'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaLocationCard extends Base {\n static get observedAttributes(): string[] {\n return ['name', 'address', 'lat', 'lon', 'from-lat', 'from-lon', 'distance', 'href', 'unit'];\n }\n private _played = false;\n get km(): number | null {\n const lat = this.num('lat', NaN);\n const lon = this.num('lon', NaN);\n const fl = this.num('from-lat', NaN);\n const fo = this.num('from-lon', NaN);\n return [lat, lon, fl, fo].every(Number.isFinite) ? haversine(fl, fo, lat, lon) : null;\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const name = this.str('name', 'Location');\n const km = this.km;\n const dist = this.str('distance') || (km === null ? '' : formatDistance(km, this.str('unit') === 'mi' ? 'mi' : 'km'));\n const href = this.str('href');\n const origin = km !== null;\n this.insertAdjacentHTML(\n 'beforeend',\n `<article class=\"usa-lc\" data-usa-part aria-label=\"${esc(name)}\"><div class=\"usa-lc-map\" aria-hidden=\"true\"><svg viewBox=\"0 0 240 120\" preserveAspectRatio=\"xMidYMid slice\"><path class=\"usa-lc-street\" d=\"M0 30H240M0 78H240M40 0V120M120 0V120M196 0V120M0 112L240 8\"/>${origin ? '<path class=\"usa-lc-route\" pathLength=\"100\" d=\"M28 100C60 100 64 78 96 78S120 40 160 40 168 58 168 58\"/><circle class=\"usa-lc-from\" cx=\"28\" cy=\"100\" r=\"4\"/>' : ''}</svg><span class=\"usa-lc-ring\"></span><span class=\"usa-lc-pin\"></span></div><div class=\"usa-lc-body\"><h3 class=\"usa-lc-name\">${esc(name)}</h3>${this.str('address') ? `<p class=\"usa-lc-addr\">${esc(this.str('address'))}</p>` : ''}<p class=\"usa-lc-meta\">${dist ? `<span class=\"usa-lc-dist\">${esc(dist)}</span>` : ''}${href ? `<a class=\"usa-lc-go\" href=\"${esc(href)}\" target=\"_blank\" rel=\"noopener\">Directions</a>` : ''}</p></div></article>`\n );\n if (origin) this.setAttribute('data-route', '');\n else this.removeAttribute('data-route');\n this._played = false;\n this.inView((v) => v && !this._played && this.replay(), { threshold: 0.4 });\n }\n replay(): void {\n this._played = true;\n const pin = this.querySelector('.usa-lc-pin') as HTMLElement | null;\n const ring = this.querySelector('.usa-lc-ring') as HTMLElement | null;\n const route = this.querySelector('.usa-lc-route') as SVGPathElement | null;\n if (!pin) return;\n if (this.reduced) {\n this.emit('arrive', { name: this.str('name') });\n return;\n }\n if (route) this.motion(route, [{ strokeDashoffset: '100' }, { strokeDashoffset: '0' }], { duration: 900, easing: 'ease-in-out' });\n const delay = route ? 700 : 0;\n const a = this.motion(pin, [{ transform: 'translate(-50%,-100%) translateY(-60px)', opacity: 0 }, { transform: 'translate(-50%,-100%)', opacity: 1, offset: 0.55 }, { transform: 'translate(-50%,-100%) translateY(-10px) scaleY(1.04)', offset: 0.75 }, { transform: 'translate(-50%,-100%)' }], { duration: 650, delay, easing: 'ease-out', fill: 'backwards' });\n if (ring) this.motion(ring, [{ transform: 'translate(-50%,-50%) scale(.2)', opacity: 0.9 }, { transform: 'translate(-50%,-50%) scale(2.4)', opacity: 0 }], { duration: 900, delay: delay + 450, easing: 'ease-out', iterations: 2 });\n const done = () => this.isConnected && this.emit('arrive', { name: this.str('name') });\n if (a) a.finished.then(done, () => undefined);\n else done();\n }\n }\n return UsaLocationCard as unknown as CustomElementConstructor;\n },\n { id: 'location-card', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './field.css?raw';\n\n/**\n * `<usa-field>` (7.7) — an animated text input: the `label` floats up when\n * the field is focused or filled, the underline grows from the caret, and the\n * field validates on blur (native constraint validation: `type`, `required`,\n * `pattern`, `minlength`, `maxlength`). Invalid → the field shakes and the\n * message slides in (`usa:invalid`); valid → a check draws itself\n * (`usa:valid`). With `strength` (on `type=\"password\"`) a 4-step strength\n * meter fills as you type (`passwordStrength()`). The `<input>` lives in the\n * light DOM, so a surrounding `<form>` submits it by its `name`. Reduced\n * motion: no shake, no slide — states switch at once.\n */\nexport interface UsaFieldElement extends UsaElement {\n value: string;\n readonly input: HTMLInputElement | null;\n validate(): boolean;\n}\n\n/** 0–4 password strength score with a label (7.7). */\nexport function passwordStrength(pw: string): { score: 0 | 1 | 2 | 3 | 4; label: string } {\n let s = 0;\n if (pw.length >= 8) s++;\n if (pw.length >= 12) s++;\n if (/[a-z]/.test(pw) && /[A-Z]/.test(pw)) s++;\n if (/\\d/.test(pw)) s++;\n if (/[^A-Za-z0-9]/.test(pw)) s++;\n if (!pw) s = 0;\n else if (pw.length < 6) s = Math.min(s, 1);\n const score = Math.min(4, s) as 0 | 1 | 2 | 3 | 4;\n return { score, label: ['Too short', 'Weak', 'Fair', 'Good', 'Strong'][score] };\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\nlet uid = 0;\nconst PASS = ['type', 'name', 'required', 'pattern', 'minlength', 'maxlength', 'autocomplete', 'inputmode', 'placeholder'];\n\nexport function defineField(tag = 'usa-field'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaField extends Base {\n static get observedAttributes(): string[] {\n return ['label', 'hint', 'error', 'strength', ...PASS];\n }\n private _id = `usa-fld-${++uid}`;\n private _checking = false;\n get input(): HTMLInputElement | null {\n return this.querySelector('.usa-fld-input');\n }\n get value(): string {\n return this.input?.value ?? this.str('value');\n }\n set value(v: string) {\n if (this.input) {\n this.input.value = v;\n this.sync();\n } else this.setAttribute('value', v);\n }\n mount(): void {\n const keep = this.input?.value ?? this.str('value');\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const id = this._id;\n const strength = this.flag('strength');\n const attrs = PASS.filter((a) => this.hasAttribute(a))\n .map((a) => (a === 'required' ? ' required' : ` ${a}=\"${esc(this.str(a))}\"`))\n .join('');\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-fld\" data-usa-part><input class=\"usa-fld-input\" id=\"${id}\"${attrs} aria-describedby=\"${id}-msg\"${this.hasAttribute('type') ? '' : ' type=\"text\"'}><label class=\"usa-fld-label\" for=\"${id}\">${esc(this.str('label', 'Label'))}</label><span class=\"usa-fld-line\" aria-hidden=\"true\"></span><svg class=\"usa-fld-ok\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path pathLength=\"1\" d=\"M5 12.5l4.5 4.5L19 7.5\"/></svg>${strength ? '<div class=\"usa-fld-meter\" aria-hidden=\"true\"><i></i><i></i><i></i><i></i></div>' : ''}<p class=\"usa-fld-msg\" id=\"${id}-msg\" aria-live=\"polite\">${esc(this.str('hint'))}</p></div>`\n );\n const input = this.input as HTMLInputElement;\n input.value = keep;\n this.listen(input, 'input', () => {\n if (this.hasAttribute('data-invalid')) this.validate();\n this.sync();\n });\n this.listen(input, 'focus', () => this.setAttribute('data-focus', ''));\n this.listen(input, 'blur', () => {\n this.removeAttribute('data-focus');\n if (input.value || input.required) this.validate();\n });\n // form submit / reportValidity(): show our message instead of the browser bubble\n this.listen(input, 'invalid', (e: Event) => {\n e.preventDefault();\n if (!this._checking) this.validate();\n });\n this.sync();\n }\n private sync(): void {\n const input = this.input;\n if (!input) return;\n this.setFlag('data-filled', !!input.value);\n const meter = this.querySelector('.usa-fld-meter');\n if (meter) {\n const { score, label } = passwordStrength(input.value);\n meter.setAttribute('data-score', String(score));\n if (!this.hasAttribute('data-invalid')) {\n const msg = this.querySelector('.usa-fld-msg') as HTMLElement;\n msg.textContent = input.value ? `Strength: ${label}` : this.str('hint');\n }\n }\n }\n /** Runs native validation; animates and emits `usa:valid` / `usa:invalid`. */\n validate(): boolean {\n const input = this.input;\n if (!input) return false;\n this._checking = true;\n const ok = input.checkValidity();\n this._checking = false;\n const msg = this.querySelector('.usa-fld-msg') as HTMLElement;\n const was = this.hasAttribute('data-invalid');\n this.setFlag('data-invalid', !ok);\n this.setFlag('data-valid', ok && !!input.value);\n input.setAttribute('aria-invalid', String(!ok));\n if (!ok) {\n msg.textContent = this.str('error') || input.validationMessage || 'Please check this field';\n if (!was && !this.reduced) {\n this.motion(this.querySelector('.usa-fld') as Element, [{ transform: 'none' }, { transform: 'translateX(-8px)' }, { transform: 'translateX(7px)' }, { transform: 'translateX(-5px)' }, { transform: 'translateX(3px)' }, { transform: 'none' }], { duration: 420, easing: 'ease-out' });\n this.motion(msg, [{ opacity: 0, transform: 'translateY(-4px)' }, { opacity: 1, transform: 'none' }], { duration: 220, easing: 'ease-out' });\n }\n this.emit('invalid', { value: input.value, message: msg.textContent });\n } else {\n msg.textContent = this.str('hint');\n this.sync();\n if (input.value) this.emit('valid', { value: input.value });\n }\n return ok;\n }\n }\n return UsaField as unknown as CustomElementConstructor;\n },\n { id: 'field', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './otp.css?raw';\n\n/**\n * `<usa-otp>` (7.7) — a one-time-code input: `length` boxes (default 6; an initial `value` is typed in) that\n * auto-advance as you type, step back on Backspace, move with the arrow keys\n * and take a pasted code in one go (`autocomplete=\"one-time-code\"` on the\n * first box for SMS autofill). Each digit pops in; when all boxes are filled\n * `usa:complete` fires with the code. `error()` shakes the row red and clears\n * it, `success()` turns it green with a wave; `fillCode(code)`, `clear()`. `mode=\"alnum\"` allows\n * letters. A labelled `role=\"group\"`; reduced motion: no pop, shake or wave.\n */\nexport interface UsaOtpElement extends UsaElement {\n readonly value: string;\n fillCode(code: string): void;\n clear(): void;\n error(message?: string): void;\n success(): void;\n}\n\n/** Keep only the characters an OTP accepts (7.7). */\nexport function sanitizeCode(s: string, mode: 'numeric' | 'alnum' = 'numeric'): string {\n return (mode === 'alnum' ? s.replace(/[^0-9a-z]/gi, '').toUpperCase() : s.replace(/\\D/g, ''));\n}\n\nexport function defineOtp(tag = 'usa-otp'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaOtp extends Base {\n static get observedAttributes(): string[] {\n return ['length', 'mode', 'label'];\n }\n private boxes(): HTMLInputElement[] {\n return Array.from(this.querySelectorAll<HTMLInputElement>('.usa-otp-box'));\n }\n get value(): string {\n return this.boxes()\n .map((b) => b.value)\n .join('');\n }\n private get mode(): 'numeric' | 'alnum' {\n return this.str('mode') === 'alnum' ? 'alnum' : 'numeric';\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const n = Math.max(3, Math.min(10, Math.round(this.num('length', 6))));\n const label = this.str('label', 'Verification code');\n const im = this.mode === 'alnum' ? 'text' : 'numeric';\n let html = `<div class=\"usa-otp\" role=\"group\" aria-label=\"${label.replace(/\"/g, '&quot;')}\" data-usa-part>`;\n for (let i = 0; i < n; i++) html += `<input class=\"usa-otp-box\" maxlength=\"1\" inputmode=\"${im}\" aria-label=\"Digit ${i + 1} of ${n}\"${i === 0 ? ' autocomplete=\"one-time-code\"' : ' autocomplete=\"off\"'}>`;\n html += '</div>';\n this.insertAdjacentHTML('beforeend', html);\n const boxes = this.boxes();\n boxes.forEach((b, i) => {\n this.listen(b, 'input', () => {\n const v = sanitizeCode(b.value, this.mode);\n if (v.length > 1) return this.fill(v, i);\n b.value = v;\n if (v) {\n this.pop(b);\n boxes[i + 1]?.focus();\n }\n this.check();\n });\n this.listen(b, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Backspace' && !b.value && i > 0) {\n e.preventDefault();\n boxes[i - 1].value = '';\n boxes[i - 1].focus();\n this.check();\n } else if (e.key === 'ArrowLeft' && i > 0) boxes[i - 1].focus();\n else if (e.key === 'ArrowRight' && i < boxes.length - 1) boxes[i + 1].focus();\n });\n this.listen(b, 'paste', (e: ClipboardEvent) => {\n const t = e.clipboardData?.getData('text') || '';\n if (!t) return;\n e.preventDefault();\n this.fill(sanitizeCode(t, this.mode), i);\n });\n this.listen(b, 'focus', () => b.select?.());\n });\n const init = sanitizeCode(this.str('value'), this.mode);\n if (init) this.fill(init, 0, false);\n }\n /** Types `code` into the boxes (no focus move), e.g. from an SMS autofill or a demo. */\n fillCode(code: string): void {\n this.boxes().forEach((b) => (b.value = ''));\n this.fill(sanitizeCode(code, this.mode), 0, false);\n }\n private fill(code: string, from = 0, focus = true): void {\n const boxes = this.boxes();\n const chars = code.split('');\n let last = from;\n for (let i = from; i < boxes.length && chars.length; i++) {\n boxes[i].value = chars.shift() as string;\n this.pop(boxes[i], (i - from) * 40);\n last = i;\n }\n if (focus) boxes[Math.min(boxes.length - 1, last + 1)]?.focus();\n this.check();\n }\n private pop(b: HTMLElement, delay = 0): void {\n if (!this.reduced) this.motion(b, [{ transform: 'scale(.7)' }, { transform: 'scale(1.12)' }, { transform: 'none' }], { duration: 240, delay, easing: 'ease-out' });\n }\n private check(): void {\n this.removeAttribute('data-state');\n const boxes = this.boxes();\n boxes.forEach((b) => b.toggleAttribute('data-filled', !!b.value));\n if (boxes.every((b) => b.value)) this.emit('complete', { code: this.value });\n }\n clear(): void {\n const boxes = this.boxes();\n boxes.forEach((b) => {\n b.value = '';\n b.removeAttribute('data-filled');\n });\n }\n error(message = 'Wrong code'): void {\n this.setAttribute('data-state', 'error');\n const row = this.querySelector('.usa-otp');\n row?.setAttribute('aria-description', message);\n const done = () => {\n if (this.getAttribute('data-state') === 'error') {\n this.clear();\n this.setAttribute('data-state', 'error');\n }\n };\n const a = this.reduced || !row ? null : this.motion(row, [{ transform: 'none' }, { transform: 'translateX(-10px)' }, { transform: 'translateX(9px)' }, { transform: 'translateX(-6px)' }, { transform: 'translateX(4px)' }, { transform: 'none' }], { duration: 450, easing: 'ease-out' });\n if (a) a.finished.then(done, () => undefined);\n else done();\n }\n success(): void {\n this.setAttribute('data-state', 'success');\n if (this.reduced) return;\n this.boxes().forEach((b, i) => this.motion(b, [{ transform: 'none' }, { transform: 'translateY(-8px)' }, { transform: 'none' }], { duration: 360, delay: i * 55, easing: 'ease-out' }));\n }\n }\n return UsaOtp as unknown as CustomElementConstructor;\n },\n { id: 'otp', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport css from './upload-progress.css?raw';\n\n/**\n * `<usa-upload-progress>` (7.7) — a file row with an animated progress bar:\n * `name`, `size` (bytes → \"2.4 MB\"), `value` 0–100 (the bar eases to it and a\n * shine runs over it while uploading), `status` (`uploading` | `done` |\n * `error`; reaching 100 sets `done`). Done → the bar turns into a check that\n * draws itself (`usa:done`); error → the row shakes and shows `message`\n * (`usa:error`) with a Retry button (`usa:retry`). A `role=\"progressbar\"` with\n * value text; reduced motion: no shine, no easing, no shake.\n */\nexport interface UsaUploadProgressElement extends UsaElement {\n value: number;\n status: 'uploading' | 'done' | 'error';\n}\n\n/** 1536 → \"1.5 KB\", 2_400_000 → \"2.3 MB\" (7.7). */\nexport function formatBytes(n: number): string {\n if (!Number.isFinite(n) || n < 0) return '';\n const u = ['B', 'KB', 'MB', 'GB', 'TB'];\n let i = 0;\n while (n >= 1024 && i < u.length - 1) {\n n /= 1024;\n i++;\n }\n return `${i === 0 ? Math.round(n) : n < 10 ? n.toFixed(1) : Math.round(n)} ${u[i]}`;\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineUploadProgress(tag = 'usa-upload-progress'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaUploadProgress extends Base {\n static get observedAttributes(): string[] {\n return ['name', 'size', 'value', 'status', 'message'];\n }\n private _shown = 0;\n get value(): number {\n return clamp(this.num('value', 0), 0, 100);\n }\n set value(v: number) {\n this.setAttribute('value', String(clamp(Number(v) || 0, 0, 100)));\n }\n get status(): 'uploading' | 'done' | 'error' {\n const s = this.str('status');\n return s === 'error' ? 'error' : s === 'done' || this.value >= 100 ? 'done' : 'uploading';\n }\n set status(s: 'uploading' | 'done' | 'error') {\n this.setAttribute('status', s);\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const name = this.str('name', 'file');\n const size = formatBytes(this.num('size', NaN));\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-up\" data-usa-part><span class=\"usa-up-icon\" aria-hidden=\"true\">${esc((name.split('.').pop() || '').slice(0, 4).toUpperCase())}</span><div class=\"usa-up-main\"><div class=\"usa-up-top\"><span class=\"usa-up-name\">${esc(name)}</span><span class=\"usa-up-pct\"></span></div><div class=\"usa-up-track\" role=\"progressbar\" aria-label=\"Uploading ${esc(name)}\" aria-valuemin=\"0\" aria-valuemax=\"100\"><span class=\"usa-up-fill\"></span></div><div class=\"usa-up-sub\"><span class=\"usa-up-size\">${esc(size)}</span><span class=\"usa-up-msg\" aria-live=\"polite\"></span><button type=\"button\" class=\"usa-up-retry\">Retry</button></div></div><svg class=\"usa-up-ok\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path pathLength=\"1\" d=\"M7 12.5l3.2 3.2L17 9\"/></svg></div>`\n );\n this.listen(this.querySelector('.usa-up-retry') as Element, 'click', () => this.emit('retry', { name }));\n this._shown = 0;\n this.render(true);\n }\n changed(name: string): void {\n if (name === 'name' || name === 'size') return super.changed(name);\n this.render(false);\n }\n private render(first: boolean): void {\n const fill = this.querySelector('.usa-up-fill') as HTMLElement | null;\n if (!fill) return;\n const v = this.value;\n const st = this.status;\n const prevState = this.getAttribute('data-state');\n this.setAttribute('data-state', st);\n const track = this.querySelector('.usa-up-track') as HTMLElement;\n track.setAttribute('aria-valuenow', String(Math.round(v)));\n track.setAttribute('aria-valuetext', st === 'done' ? 'Complete' : st === 'error' ? 'Failed' : `${Math.round(v)}%`);\n (this.querySelector('.usa-up-pct') as HTMLElement).textContent = st === 'done' ? 'Done' : st === 'error' ? '' : `${Math.round(v)}%`;\n (this.querySelector('.usa-up-msg') as HTMLElement).textContent = st === 'error' ? this.str('message', 'Upload failed') : '';\n const from = this._shown;\n const to = st === 'done' ? 100 : v;\n fill.style.transform = `scaleX(${to / 100})`;\n if (!first && !this.reduced && from !== to) this.motion(fill, [{ transform: `scaleX(${from / 100})` }, { transform: `scaleX(${to / 100})` }], { duration: 380, easing: 'cubic-bezier(.2,.8,.2,1)' });\n this._shown = to;\n if (prevState === st) return;\n if (st === 'done' && !first) this.emit('done', { name: this.str('name') });\n if (st === 'error' && !first) {\n if (!this.reduced) this.motion(this.querySelector('.usa-up') as Element, [{ transform: 'none' }, { transform: 'translateX(-7px)' }, { transform: 'translateX(6px)' }, { transform: 'translateX(-3px)' }, { transform: 'none' }], { duration: 380, easing: 'ease-out' });\n this.emit('error', { name: this.str('name'), message: this.str('message', 'Upload failed') });\n }\n }\n }\n return UsaUploadProgress as unknown as CustomElementConstructor;\n },\n { id: 'upload-progress', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './chat-composer.css?raw';\n\n/**\n * `<usa-chat-composer>` (7.8) — an AI chat input: the textarea grows with its\n * text (up to `rows` lines, default 6), Enter sends (Shift+Enter = new line),\n * the send button pops when there is text and morphs into a Stop button while\n * `busy` — then a soft \"thinking\" glow runs round the composer. Sending emits\n * `usa:send` { text } (cancelable — call `preventDefault()` to keep the text)\n * and clears it; Stop emits `usa:stop`. `placeholder`, `label`, `send()`,\n * `clear()`, `value`. Reduced motion: no glow, no pop.\n */\nexport interface UsaChatComposerElement extends UsaElement {\n value: string;\n busy: boolean;\n send(): boolean;\n clear(): void;\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineChatComposer(tag = 'usa-chat-composer'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaChatComposer extends Base {\n static get observedAttributes(): string[] {\n return ['placeholder', 'label', 'rows', 'busy'];\n }\n private get area(): HTMLTextAreaElement | null {\n return this.querySelector('.usa-cc-input');\n }\n get value(): string {\n return this.area?.value ?? '';\n }\n set value(v: string) {\n const a = this.area;\n if (!a) return;\n a.value = v;\n this.sync();\n }\n get busy(): boolean {\n return this.flag('busy');\n }\n set busy(on: boolean) {\n this.setFlag('busy', on);\n }\n mount(): void {\n const keep = this.area?.value ?? this.str('value');\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const label = this.str('label', 'Message');\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-cc\" data-usa-part><span class=\"usa-cc-glow\" aria-hidden=\"true\"></span><textarea class=\"usa-cc-input\" rows=\"1\" aria-label=\"${esc(label)}\" placeholder=\"${esc(this.str('placeholder', 'Ask anything…'))}\"></textarea><button type=\"button\" class=\"usa-cc-send\" aria-label=\"Send\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path class=\"usa-cc-arrow\" d=\"M12 19V5M5.5 11.5L12 5l6.5 6.5\"/><rect class=\"usa-cc-stop\" x=\"7\" y=\"7\" width=\"10\" height=\"10\" rx=\"2\"/></svg></button></div>`\n );\n const a = this.area as HTMLTextAreaElement;\n a.value = keep;\n this.listen(a, 'input', () => this.sync());\n this.listen(a, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey && !e.isComposing) {\n e.preventDefault();\n if (!this.busy) this.send();\n }\n });\n this.listen(this.querySelector('.usa-cc-send') as Element, 'click', () => {\n if (this.busy) {\n this.emit('stop');\n this.busy = false;\n } else this.send();\n });\n this.sync(true);\n this.state();\n }\n changed(name: string): void {\n if (name === 'busy') return this.state();\n super.changed(name);\n }\n private state(): void {\n const b = this.querySelector('.usa-cc-send') as HTMLElement | null;\n if (!b) return;\n b.setAttribute('aria-label', this.busy ? 'Stop generating' : 'Send');\n this.setFlag('data-busy', this.busy);\n this.sync(true);\n }\n private sync(quiet = false): void {\n const a = this.area;\n if (!a) return;\n const max = Math.max(1, Math.round(this.num('rows', 6)));\n a.style.height = 'auto';\n const lh = parseFloat(getComputedStyle(a).lineHeight) || 20;\n const h = a.scrollHeight;\n if (h > 0) a.style.height = `${Math.min(h, lh * max + 16)}px`;\n const had = this.hasAttribute('data-ready');\n const ready = !!a.value.trim() || this.busy;\n this.setFlag('data-ready', ready);\n if (ready && !had && !quiet && !this.reduced) this.motion(this.querySelector('.usa-cc-send') as Element, [{ transform: 'scale(.6)' }, { transform: 'scale(1.15)' }, { transform: 'none' }], { duration: 260, easing: 'ease-out' });\n }\n /** Emits `usa:send` with the trimmed text and clears it (unless prevented). */\n send(): boolean {\n const text = this.value.trim();\n if (!text) return false;\n if (!this.emit('send', { text })) return false;\n this.clear();\n return true;\n }\n clear(): void {\n this.value = '';\n }\n }\n return UsaChatComposer as unknown as CustomElementConstructor;\n },\n { id: 'chat-composer', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './suggestion-chips.css?raw';\n\n/**\n * `<usa-suggestion-chips>` (7.8) — follow-up prompt chips for AI chats:\n * `items=\"Summarise|Translate|Explain like I'm 5\"` (or child `<button>`s /\n * text lines). The chips slide in one after another when they appear (and\n * again after `setItems()`); picking one pulses it, emits `usa:pick`\n * { text, index } and, with `dismiss`, the others fade away. A labelled list\n * of real buttons, arrow keys move between them; reduced motion: no slide or\n * pulse.\n */\nexport interface UsaSuggestionChipsElement extends UsaElement {\n items: string[];\n setItems(items: string[]): void;\n}\n\n/** \"a | b|c\" → [\"a\", \"b\", \"c\"] (7.8). */\nexport function parseChips(s: string): string[] {\n return s\n .split(/\\||\\n/)\n .map((t) => t.trim())\n .filter(Boolean);\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineSuggestionChips(tag = 'usa-suggestion-chips'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaSuggestionChips extends Base {\n static get observedAttributes(): string[] {\n return ['items', 'label', 'dismiss'];\n }\n private _items: string[] | null = null;\n get items(): string[] {\n if (this._items) return this._items.slice();\n const attr = this.str('items');\n if (attr) return parseChips(attr);\n const kids = Array.from(this.children).filter((c) => !c.hasAttribute('data-usa-part'));\n return kids.length ? kids.map((c) => (c.textContent || '').trim()).filter(Boolean) : parseChips(this.getAttribute('data-text') || '');\n }\n set items(v: string[]) {\n this.setItems(v);\n }\n setItems(items: string[]): void {\n this._items = items.map(String).filter((t) => t.trim());\n this.mount();\n }\n mount(): void {\n const items = this.items;\n if (!this._items && !this.str('items')) {\n // keep authored content as the source of truth, hidden\n Array.from(this.children).forEach((c) => !c.hasAttribute('data-usa-part') && (c as HTMLElement).setAttribute('hidden', ''));\n }\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-sc\" role=\"list\" aria-label=\"${esc(this.str('label', 'Suggestions'))}\" data-usa-part>${items.map((t, i) => `<span role=\"listitem\"><button type=\"button\" class=\"usa-sc-chip\" data-i=\"${i}\">${esc(t)}</button></span>`).join('')}</div>`\n );\n const chips = Array.from(this.querySelectorAll<HTMLButtonElement>('.usa-sc-chip'));\n chips.forEach((c, i) => {\n this.listen(c, 'click', () => this.pick(i));\n this.listen(c, 'keydown', (e: KeyboardEvent) => {\n const d = e.key === 'ArrowRight' ? 1 : e.key === 'ArrowLeft' ? -1 : 0;\n if (!d) return;\n e.preventDefault();\n chips[(i + d + chips.length) % chips.length].focus();\n });\n });\n this.inView((v) => v && this.enter(), { threshold: 0.2 });\n }\n private _entered = false;\n private enter(): void {\n if (this._entered && !this._items) return;\n this._entered = true;\n if (this.reduced) return;\n this.querySelectorAll('.usa-sc-chip').forEach((c, i) => this.motion(c, [{ opacity: 0, transform: 'translateY(10px) scale(.92)' }, { opacity: 1, transform: 'none' }], { duration: 380, delay: i * 70, easing: 'cubic-bezier(.2,.8,.2,1)', fill: 'backwards' }));\n }\n private pick(i: number): void {\n const chips = Array.from(this.querySelectorAll<HTMLButtonElement>('.usa-sc-chip'));\n const c = chips[i];\n if (!c) return;\n chips.forEach((x) => x.toggleAttribute('data-picked', x === c));\n if (!this.reduced) this.motion(c, [{ transform: 'none' }, { transform: 'scale(1.1)' }, { transform: 'none' }], { duration: 280, easing: 'ease-out' });\n if (this.flag('dismiss'))\n chips.forEach((x) => {\n if (x === c) return;\n x.setAttribute('data-gone', '');\n x.disabled = true;\n });\n this.emit('pick', { text: c.textContent, index: i });\n }\n }\n return UsaSuggestionChips as unknown as CustomElementConstructor;\n },\n { id: 'suggestion-chips', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport css from './voice-button.css?raw';\n\n/**\n * `<usa-voice-button>` (7.8) — a push-to-talk mic button: click (or Space /\n * Enter) toggles `listening`; while listening a halo breathes round the\n * button and `bars` (default 5) wave beside it. Feed it the live input level\n * with `level` (0–1, e.g. from an `AnalyserNode` or a speech API) and the\n * bars and halo follow it; without levels they run an idle wave. `usa:start`\n * / `usa:stop`. A real `<button aria-pressed>`; `label`. Reduced motion: no\n * halo or wave — the pressed state shows by colour.\n */\nexport interface UsaVoiceButtonElement extends UsaElement {\n listening: boolean;\n level: number;\n toggle(force?: boolean): void;\n}\n\n/** Bar heights (0–1) for a level and a phase, centre bars tallest (7.8). */\nexport function waveBars(level: number, n = 5, phase = 0): number[] {\n const l = clamp(level, 0, 1);\n return Array.from({ length: n }, (_, i) => {\n const mid = 1 - Math.abs(i - (n - 1) / 2) / ((n - 1) / 2 || 1);\n const wob = 0.5 + 0.5 * Math.sin(phase + i * 1.3);\n return Math.round(clamp(0.15 + l * (0.45 + 0.4 * mid) * (0.6 + 0.4 * wob), 0.1, 1) * 100) / 100;\n });\n}\n\nexport function defineVoiceButton(tag = 'usa-voice-button'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaVoiceButton extends Base {\n static get observedAttributes(): string[] {\n return ['label', 'bars', 'listening'];\n }\n private _level = -1;\n get listening(): boolean {\n return this.flag('listening');\n }\n set listening(on: boolean) {\n this.setFlag('listening', on);\n }\n get level(): number {\n return Math.max(0, this._level);\n }\n set level(v: number) {\n this._level = clamp(Number(v) || 0, 0, 1);\n this.paint();\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const n = Math.max(3, Math.min(9, Math.round(this.num('bars', 5))));\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-vb\" data-usa-part><button type=\"button\" class=\"usa-vb-btn\" aria-pressed=\"false\" aria-label=\"${this.str('label', 'Voice input').replace(/\"/g, '&quot;')}\"><span class=\"usa-vb-halo\" aria-hidden=\"true\"></span><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"9\" y=\"3\" width=\"6\" height=\"11\" rx=\"3\"/><path d=\"M5.5 11a6.5 6.5 0 0 0 13 0M12 17.5V21\"/></svg></button><span class=\"usa-vb-bars\" aria-hidden=\"true\">${'<i></i>'.repeat(n)}</span></div>`\n );\n this.listen(this.querySelector('.usa-vb-btn') as Element, 'click', () => this.toggle());\n this.sync(true);\n }\n changed(name: string): void {\n if (name === 'listening') return this.sync(false);\n super.changed(name);\n }\n toggle(force?: boolean): void {\n this.listening = force ?? !this.listening;\n }\n private sync(first: boolean): void {\n const btn = this.querySelector('.usa-vb-btn');\n if (!btn) return;\n btn.setAttribute('aria-pressed', String(this.listening));\n if (!first) this.emit(this.listening ? 'start' : 'stop');\n if (!this.listening) this._level = -1;\n this.paint();\n }\n private paint(): void {\n const bars = Array.from(this.querySelectorAll<HTMLElement>('.usa-vb-bars i'));\n const live = this.listening && this._level >= 0;\n this.setFlag('data-live', live);\n const hs = waveBars(live ? this._level : 0, bars.length, (typeof performance !== 'undefined' ? performance.now() : 0) / 120);\n bars.forEach((b, i) => (b.style.transform = live ? `scaleY(${hs[i]})` : ''));\n const halo = this.querySelector('.usa-vb-halo') as HTMLElement | null;\n if (halo) halo.style.transform = live ? `scale(${1 + this._level * 0.6})` : '';\n }\n }\n return UsaVoiceButton as unknown as CustomElementConstructor;\n },\n { id: 'voice-button', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './command-palette.css?raw';\n\n/**\n * `<usa-command-palette>` (7.9) — a ⌘K command palette on the native\n * `<dialog>` (top layer, Esc, focus returns to the opener): it scales in,\n * the results filter as you type (fuzzy, matched letters highlighted) and\n * stagger in, a highlight glides to the active row (↑ / ↓, Enter runs it).\n * Commands come from child `<option value=\"id\" data-group=\"Navigation\"\n * data-keys=\"mod+n\">Label</option>` elements or `setCommands([{ id, label,\n * group?, keys? }])`. `inline` renders it open in the page (no dialog,\n * e.g. for docs). `hotkey` (default `mod+k`; `none` to disable) opens it\n * from anywhere; `placeholder`, `label`. `show()`, `close()`, `toggle()`,\n * `opened`; `usa:run` { id, label }, `usa:open`, `usa:close`. A `combobox` +\n * `listbox`; reduced motion: no scale, stagger or glide.\n */\nexport interface PaletteCommand {\n id: string;\n label: string;\n group?: string;\n keys?: string;\n}\nexport interface UsaCommandPaletteElement extends UsaElement {\n readonly opened: boolean;\n commands: PaletteCommand[];\n setCommands(list: PaletteCommand[]): void;\n show(): void;\n close(): void;\n toggle(): void;\n}\n\n/**\n * Fuzzy match: every query letter in order. Returns a score (higher is\n * better; -1 = no match) and the matched indexes (7.9).\n */\nexport function fuzzyMatch(query: string, text: string): { score: number; hits: number[] } {\n const q = query.trim().toLowerCase();\n const t = text.toLowerCase();\n if (!q) return { score: 0, hits: [] };\n const hits: number[] = [];\n let score = 0;\n let from = 0;\n let prev = -2;\n for (const ch of q) {\n if (ch === ' ') continue;\n const i = t.indexOf(ch, from);\n if (i < 0) return { score: -1, hits: [] };\n hits.push(i);\n score += i === prev + 1 ? 3 : 1; // consecutive letters\n if (i === 0 || /[\\s\\-_/]/.test(t[i - 1])) score += 2; // word starts\n prev = i;\n from = i + 1;\n }\n return { score: score - t.length / 100, hits };\n}\n\n/** \"mod+shift+k\" → [\"⌘\", \"⇧\", \"K\"] on Apple platforms, [\"Ctrl\", \"Shift\", \"K\"] elsewhere (7.9). */\nexport function keyLabels(keys: string, apple = isApple()): string[] {\n const map: Record<string, [string, string]> = { mod: ['⌘', 'Ctrl'], cmd: ['⌘', '⌘'], meta: ['⌘', 'Win'], ctrl: ['⌃', 'Ctrl'], shift: ['⇧', 'Shift'], alt: ['⌥', 'Alt'], option: ['⌥', 'Alt'], enter: ['↵', 'Enter'], esc: ['Esc', 'Esc'], escape: ['Esc', 'Esc'], up: ['↑', '↑'], down: ['↓', '↓'], left: ['←', '←'], right: ['→', '→'], space: ['Space', 'Space'], tab: ['⇥', 'Tab'], backspace: ['⌫', 'Backspace'] };\n return keys\n .split('+')\n .map((k) => k.trim())\n .filter(Boolean)\n .map((k) => (map[k.toLowerCase()] ? map[k.toLowerCase()][apple ? 0 : 1] : k.length === 1 ? k.toUpperCase() : k[0].toUpperCase() + k.slice(1)));\n}\n\n/** Does a KeyboardEvent match \"mod+k\"-style keys? (7.9) */\nexport function matchesKeys(e: KeyboardEvent, keys: string, apple = isApple()): boolean {\n const parts = keys.toLowerCase().split('+').map((k) => k.trim()).filter(Boolean);\n const key = parts.filter((p) => !['mod', 'cmd', 'meta', 'ctrl', 'shift', 'alt', 'option'].includes(p))[0];\n if (!key) return false;\n const want = { meta: false, ctrl: false, shift: parts.includes('shift'), alt: parts.includes('alt') || parts.includes('option') };\n if (parts.includes('mod')) want[apple ? 'meta' : 'ctrl'] = true;\n if (parts.includes('cmd') || parts.includes('meta')) want.meta = true;\n if (parts.includes('ctrl')) want.ctrl = true;\n const names: Record<string, string> = { esc: 'escape', space: ' ', up: 'arrowup', down: 'arrowdown', left: 'arrowleft', right: 'arrowright' };\n const k = (e.key || '').toLowerCase();\n return k === (names[key] || key) && e.metaKey === want.meta && e.ctrlKey === want.ctrl && e.shiftKey === want.shift && e.altKey === want.alt;\n}\n\nexport function isApple(): boolean {\n return typeof navigator !== 'undefined' && /Mac|iPhone|iPad|iPod/.test((navigator as any).userAgentData?.platform || navigator.platform || navigator.userAgent || '');\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\nlet uid = 0;\n\nexport function defineCommandPalette(tag = 'usa-command-palette'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaCommandPalette extends Base {\n static get observedAttributes(): string[] {\n return ['placeholder', 'label', 'hotkey', 'inline'];\n }\n private _cmds: PaletteCommand[] | null = null;\n private _id = `usa-cp-${++uid}`;\n private _active = 0;\n private _shown: PaletteCommand[] = [];\n private _opener: Element | null = null;\n get commands(): PaletteCommand[] {\n if (this._cmds) return this._cmds.slice();\n return Array.from(this.querySelectorAll(':scope > option')).map((o) => ({ id: (o as HTMLOptionElement).value || (o.textContent || '').trim(), label: (o.textContent || '').trim(), group: o.getAttribute('data-group') || undefined, keys: o.getAttribute('data-keys') || undefined }));\n }\n set commands(v: PaletteCommand[]) {\n this.setCommands(v);\n }\n setCommands(list: PaletteCommand[]): void {\n this._cmds = list.map((c) => ({ ...c, id: String(c.id), label: String(c.label) }));\n this.render();\n }\n private get dlg(): HTMLDialogElement | null {\n return this.querySelector('.usa-cp');\n }\n get opened(): boolean {\n return !!this.dlg?.hasAttribute('open');\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const id = this._id;\n this.insertAdjacentHTML(\n 'beforeend',\n `<dialog class=\"usa-cp\" data-usa-part aria-label=\"${esc(this.str('label', 'Command palette'))}\"><div class=\"usa-cp-box\"><input class=\"usa-cp-q\" role=\"combobox\" aria-expanded=\"true\" aria-controls=\"${id}-list\" aria-autocomplete=\"list\" autocomplete=\"off\" spellcheck=\"false\" placeholder=\"${esc(this.str('placeholder', 'Type a command or search…'))}\"><div class=\"usa-cp-list\" id=\"${id}-list\" role=\"listbox\"><span class=\"usa-cp-hl\" aria-hidden=\"true\"></span></div><p class=\"usa-cp-empty\" hidden>No results</p></div></dialog>`\n );\n const dlg = this.dlg as HTMLDialogElement;\n const q = this.querySelector('.usa-cp-q') as HTMLInputElement;\n this.listen(q, 'input', () => this.render(true));\n this.listen(q, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n this.move(e.key === 'ArrowDown' ? 1 : -1);\n } else if (e.key === 'Enter') {\n e.preventDefault();\n this.run(this._active);\n } else if (e.key === 'Escape' && typeof dlg.showModal !== 'function') this.close();\n });\n this.listen(dlg, 'click', (e: MouseEvent) => {\n if (e.target === dlg) this.close();\n });\n this.listen(dlg, 'cancel', (e: Event) => {\n e.preventDefault();\n this.close();\n });\n const hk = this.str('hotkey', 'mod+k');\n if (hk !== 'none')\n this.listen(document, 'keydown', (e: KeyboardEvent) => {\n if (matchesKeys(e, hk)) {\n e.preventDefault();\n this.toggle();\n }\n });\n this.render();\n if (this.flag('inline')) dlg.setAttribute('open', '');\n }\n private render(typed = false): void {\n const list = this.querySelector('.usa-cp-list');\n if (!list) return;\n const q = (this.querySelector('.usa-cp-q') as HTMLInputElement).value;\n const all = this.commands;\n const scored = all\n .map((c, i) => ({ c, i, m: fuzzyMatch(q, c.label) }))\n .filter((x) => x.m.score >= 0)\n .sort((a, b) => (q ? b.m.score - a.m.score : 0) || a.i - b.i);\n this._shown = scored.map((x) => x.c);\n this._active = 0;\n list.querySelectorAll('.usa-cp-item, .usa-cp-group').forEach((n) => n.remove());\n let html = '';\n let group: string | undefined = '\\u0000';\n scored.forEach(({ c, m }, i) => {\n if (!q && c.group !== group) {\n group = c.group;\n if (group) html += `<div class=\"usa-cp-group\" role=\"presentation\">${esc(group)}</div>`;\n }\n const label = Array.from(c.label)\n .map((ch, j) => (m.hits.includes(j) ? `<mark>${esc(ch)}</mark>` : esc(ch)))\n .join('');\n const keys = c.keys ? `<span class=\"usa-cp-keys\">${keyLabels(c.keys).map((k) => `<kbd>${esc(k)}</kbd>`).join('')}</span>` : '';\n html += `<div class=\"usa-cp-item\" role=\"option\" id=\"${this._id}-o${i}\" data-i=\"${i}\" aria-selected=\"false\"><span class=\"usa-cp-label\">${label}</span>${keys}</div>`;\n });\n list.insertAdjacentHTML('beforeend', html);\n list.querySelectorAll<HTMLElement>('.usa-cp-item').forEach((el) => {\n el.addEventListener('pointermove', () => this.select(Number(el.dataset.i)));\n el.addEventListener('click', () => this.run(Number(el.dataset.i)));\n });\n (this.querySelector('.usa-cp-empty') as HTMLElement).hidden = scored.length > 0;\n this.select(0, false);\n if (typed && !this.reduced) list.querySelectorAll('.usa-cp-item').forEach((el, i) => i < 8 && this.motion(el, [{ opacity: 0, transform: 'translateY(6px)' }, { opacity: 1, transform: 'none' }], { duration: 200, delay: i * 25, easing: 'ease-out', fill: 'backwards' }));\n }\n private select(i: number, glide = true): void {\n const items = Array.from(this.querySelectorAll<HTMLElement>('.usa-cp-item'));\n const q = this.querySelector('.usa-cp-q') as HTMLInputElement | null;\n const hl = this.querySelector('.usa-cp-hl') as HTMLElement | null;\n if (!items.length || !q || !hl) {\n q?.removeAttribute('aria-activedescendant');\n if (hl) hl.style.opacity = '0';\n return;\n }\n this._active = Math.max(0, Math.min(items.length - 1, i));\n items.forEach((el, j) => el.setAttribute('aria-selected', String(j === this._active)));\n const el = items[this._active];\n q.setAttribute('aria-activedescendant', el.id);\n const to = `translateY(${el.offsetTop}px)`;\n const from = hl.style.transform;\n hl.style.opacity = '1';\n hl.style.height = `${el.offsetHeight || 36}px`;\n hl.style.transform = to;\n if (glide && from && from !== to && !this.reduced) this.motion(hl, [{ transform: from }, { transform: to }], { duration: 160, easing: 'cubic-bezier(.2,.8,.2,1)' });\n (el as any).scrollIntoView?.({ block: 'nearest' });\n }\n private move(d: number): void {\n const n = this._shown.length;\n if (n) this.select((this._active + d + n) % n);\n }\n private run(i: number): void {\n const c = this._shown[i];\n if (!c) return;\n this.emit('run', { id: c.id, label: c.label });\n this.close();\n }\n show(): void {\n const dlg = this.dlg;\n if (dlg && this.flag('inline')) return (this.querySelector('.usa-cp-q') as HTMLInputElement).focus();\n if (!dlg || this.opened) return;\n this._opener = document.activeElement;\n const q = this.querySelector('.usa-cp-q') as HTMLInputElement;\n q.value = '';\n this.render();\n if (typeof dlg.showModal === 'function') {\n try {\n dlg.showModal();\n } catch {\n dlg.setAttribute('open', '');\n }\n } else dlg.setAttribute('open', '');\n this.select(0, false);\n q.focus();\n if (!this.reduced) this.motion(this.querySelector('.usa-cp-box') as Element, [{ opacity: 0, transform: 'translateY(-8px) scale(.96)' }, { opacity: 1, transform: 'none' }], { duration: 220, easing: 'cubic-bezier(.2,.8,.2,1)' });\n this.emit('open');\n }\n close(): void {\n const dlg = this.dlg;\n if (dlg && this.flag('inline')) {\n (this.querySelector('.usa-cp-q') as HTMLInputElement).value = '';\n return this.render();\n }\n if (!dlg || !this.opened) return;\n const done = () => {\n if (typeof dlg.close === 'function' && dlg.open) dlg.close();\n dlg.removeAttribute('open');\n (this._opener as HTMLElement | null)?.focus?.();\n this.emit('close');\n };\n const a = this.reduced ? null : this.motion(this.querySelector('.usa-cp-box') as Element, [{ opacity: 1, transform: 'none' }, { opacity: 0, transform: 'scale(.97)' }], { duration: 140, easing: 'ease-in' });\n if (a) a.finished.then(done, done);\n else done();\n }\n toggle(): void {\n if (this.opened) this.close();\n else this.show();\n }\n }\n return UsaCommandPalette as unknown as CustomElementConstructor;\n },\n { id: 'command-palette', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { keyLabels, matchesKeys } from './command-palette';\nimport css from './shortcut.css?raw';\n\n/**\n * `<usa-shortcut keys=\"mod+k\">` (7.9) — a keyboard-shortcut hint rendered\n * as keycaps (⌘ on Apple platforms, Ctrl elsewhere). When the user presses\n * the combination anywhere on the page the caps press down one after another\n * and `usa:trigger` fires (`listen=\"false\"` to only display it; `for=\"id\"`\n * clicks that element). Optional `label` text after the caps. The caps are\n * `<kbd>` with an accessible text like \"Control K\"; reduced motion: no\n * press animation.\n */\nexport interface UsaShortcutElement extends UsaElement {\n readonly labels: string[];\n press(): void;\n}\n\nconst SPOKEN: Record<string, string> = { '⌘': 'Command', '⇧': 'Shift', '⌥': 'Option', '⌃': 'Control', Ctrl: 'Control', '↵': 'Enter', '⇥': 'Tab', '⌫': 'Backspace' };\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineShortcut(tag = 'usa-shortcut'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaShortcut extends Base {\n static get observedAttributes(): string[] {\n return ['keys', 'label', 'listen', 'for'];\n }\n get labels(): string[] {\n return keyLabels(this.str('keys', 'mod+k'));\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const labels = this.labels;\n const spoken = labels.map((l) => SPOKEN[l] || l).join(' ');\n const text = this.str('label');\n this.insertAdjacentHTML(\n 'beforeend',\n `<span class=\"usa-sk\" data-usa-part><span class=\"usa-sk-caps\" role=\"img\" aria-label=\"${esc(spoken)}\">${labels.map((l) => `<kbd aria-hidden=\"true\">${esc(l)}</kbd>`).join('')}</span>${text ? `<span class=\"usa-sk-label\">${esc(text)}</span>` : ''}</span>`\n );\n if (this.str('listen') !== 'false')\n this.listen(document, 'keydown', (e: KeyboardEvent) => {\n if (!e.repeat && matchesKeys(e, this.str('keys', 'mod+k'))) {\n this.press();\n const id = this.str('for');\n const target = id ? document.getElementById(id) : null;\n if (target) {\n e.preventDefault();\n target.click();\n }\n }\n });\n }\n /** Animate the caps as if pressed and emit `usa:trigger`. */\n press(): void {\n const caps = Array.from(this.querySelectorAll('kbd'));\n this.setAttribute('data-pressed', '');\n const off = () => this.removeAttribute('data-pressed');\n if (!this.reduced) {\n const runs = caps.map((k, i) => this.motion(k, [{ transform: 'none' }, { transform: 'translateY(2px) scale(.94)', borderBottomWidth: '1px' }, { transform: 'none' }], { duration: 260, delay: i * 50, easing: 'ease-out' }));\n const last = runs[runs.length - 1];\n if (last) last.finished.then(off, off);\n else off();\n } else off();\n this.emit('trigger', { keys: this.str('keys', 'mod+k') });\n }\n }\n return UsaShortcut as unknown as CustomElementConstructor;\n },\n { id: 'shortcut', text: css }\n );\n}\n","import { defineElement, getClock, setClock, onClockChange, type UsaElement } from '../base';\nimport css from './clock-control.css?raw';\n\n/**\n * `<usa-clock-control>` (8.0) — a small control bar for the unified motion\n * clock: play / pause every Motionary animation on the page and switch the\n * speed (`speeds=\"0.25,0.5,1,2\"`). It reflects changes made elsewhere\n * (`motionClock.rate = …`). Handy for demos, debugging and as a user-facing\n * \"pause animations\" control. A labelled `group` with a toggle button\n * (`aria-pressed`) and a radio group of speeds; `usa:change` { rate, paused }.\n */\nexport interface UsaClockControlElement extends UsaElement {\n readonly rate: number;\n readonly paused: boolean;\n}\n\nexport function defineClockControl(tag = 'usa-clock-control'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaClockControl extends Base {\n static get observedAttributes(): string[] {\n return ['speeds', 'label'];\n }\n get rate(): number {\n return getClock().rate;\n }\n get paused(): boolean {\n return getClock().paused;\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const speeds = this.str('speeds', '0.25,0.5,1,2')\n .split(',')\n .map(Number)\n .filter((n) => Number.isFinite(n) && n > 0)\n .slice(0, 6);\n const label = this.str('label', 'Motion clock').replace(/\"/g, '&quot;');\n this.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"usa-clk\" role=\"group\" aria-label=\"${label}\" data-usa-part><button type=\"button\" class=\"usa-clk-play\" aria-pressed=\"false\" aria-label=\"Pause animations\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect class=\"usa-clk-bar\" x=\"6\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\"/><rect class=\"usa-clk-bar\" x=\"14\" y=\"5\" width=\"4\" height=\"14\" rx=\"1\"/><path class=\"usa-clk-tri\" d=\"M7 5l12 7-12 7z\"/></svg></button><div class=\"usa-clk-speeds\" role=\"radiogroup\" aria-label=\"Speed\"><span class=\"usa-clk-ink\" aria-hidden=\"true\"></span>${speeds.map((s) => `<button type=\"button\" role=\"radio\" class=\"usa-clk-speed\" data-rate=\"${s}\" aria-checked=\"false\">${s}×</button>`).join('')}</div></div>`\n );\n this.listen(this.querySelector('.usa-clk-play') as Element, 'click', () => {\n setClock({ paused: !getClock().paused });\n });\n this.querySelectorAll<HTMLElement>('.usa-clk-speed').forEach((b) => this.listen(b, 'click', () => setClock({ rate: Number(b.dataset.rate) })));\n this.onCleanup(onClockChange(() => this.sync(true)));\n this.sync(false);\n }\n private sync(user: boolean): void {\n const { rate, paused } = getClock();\n const play = this.querySelector('.usa-clk-play');\n if (!play) return;\n play.setAttribute('aria-pressed', String(paused));\n play.setAttribute('aria-label', paused ? 'Resume animations' : 'Pause animations');\n this.setFlag('data-paused', paused);\n let on: HTMLElement | null = null;\n this.querySelectorAll<HTMLElement>('.usa-clk-speed').forEach((b) => {\n const hit = Math.abs(Number(b.dataset.rate) - rate) < 1e-6;\n b.setAttribute('aria-checked', String(hit));\n if (hit) on = b;\n });\n const ink = this.querySelector('.usa-clk-ink') as HTMLElement;\n const target = on as HTMLElement | null;\n if (target) {\n ink.style.opacity = '1';\n ink.style.width = `${target.offsetWidth}px`;\n ink.style.transform = `translateX(${target.offsetLeft}px)`;\n } else ink.style.opacity = '0';\n if (user) this.emit('change', { rate, paused });\n }\n }\n return UsaClockControl as unknown as CustomElementConstructor;\n },\n { id: 'clock-control', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { createTimeline, HYDRATE_PRESETS, type MotionTimeline } from '../engine';\nimport css from './hydrate.css?raw';\n\n/**\n * `<usa-hydrate effect=\"fade-up\" stagger=\"60\">` (8.0) — SSR hydration\n * animation for its children: server-rendered content stays hidden only\n * while JS is on and the element has not upgraded yet (with `ssrHead()` in\n * the document head; a 3 s CSS fallback reveals it anyway), then the\n * children animate in one after another on the unified clock and the\n * element gets `data-usa-hydrated` (`usa:hydrated`). `effect`: fade ·\n * fade-up · fade-down · scale · blur · slide-left; `duration`; `replay()`;\n * `timeline`. Reduced motion: shown at once.\n */\nexport interface UsaHydrateElement extends UsaElement {\n readonly timeline: MotionTimeline | null;\n replay(): void;\n}\n\nexport function defineHydrate(tag = 'usa-hydrate'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaHydrate extends Base {\n static get observedAttributes(): string[] {\n return ['effect', 'stagger', 'duration'];\n }\n private _tl: MotionTimeline | null = null;\n get timeline(): MotionTimeline | null {\n return this._tl;\n }\n mount(): void {\n this.replay();\n }\n unmount(): void {\n this._tl?.cancel();\n this._tl = null;\n }\n replay(): void {\n this._tl?.cancel();\n const kids = Array.from(this.children) as HTMLElement[];\n const frames = HYDRATE_PRESETS[this.str('effect', 'fade-up')] || HYDRATE_PRESETS['fade-up'];\n const tl = createTimeline({ duration: this.num('duration', 600), easing: 'cubic-bezier(.2,.8,.2,1)' });\n const stagger = this.num('stagger', 60);\n kids.forEach((k, i) => tl.add(k, frames, {}, i * stagger));\n this._tl = tl;\n tl.play();\n this.setAttribute('data-usa-hydrated', '');\n tl.finished.then(() => this.isConnected && this._tl === tl && this.emit('hydrated', { count: kids.length }));\n }\n }\n return UsaHydrate as unknown as CustomElementConstructor;\n },\n { id: 'hydrate', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './red-envelope.css?raw';\n\n/**\n * `<usa-red-envelope amount=\"88.88\" from=\"Grandma\">` (8.1) — a Lunar New\n * Year red envelope (红包): tap / Enter / Space and the flap swings open, the\n * card slides out with the `amount` (counting up, `currency`, default ¥)\n * and gold coins pop out. `message` (default 恭喜发财), `from`, `opened`\n * (initial state); `open()`, `close()`; `usa:open` { amount }. A real\n * `<button aria-expanded>`; reduced motion: opens without the swing, slide,\n * count or coins.\n */\nexport interface UsaRedEnvelopeElement extends UsaElement {\n readonly opened: boolean;\n open(): void;\n close(): void;\n}\n\nconst esc = (s: string) => s.replace(/[&<>\"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' })[c] as string);\n\nexport function defineRedEnvelope(tag = 'usa-red-envelope'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaRedEnvelope extends Base {\n static get observedAttributes(): string[] {\n return ['amount', 'currency', 'message', 'from'];\n }\n get opened(): boolean {\n return this.hasAttribute('data-open');\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n const msg = this.str('message', '恭喜发财');\n this.insertAdjacentHTML(\n 'beforeend',\n `<button type=\"button\" class=\"usa-re\" aria-expanded=\"false\" aria-label=\"${esc(`Open red envelope${this.str('from') ? ` from ${this.str('from')}` : ''}`)}\" data-usa-part><span class=\"usa-re-card\" aria-hidden=\"true\"><span class=\"usa-re-amt\"></span><span class=\"usa-re-from\">${esc(this.str('from'))}</span></span><span class=\"usa-re-body\"><span class=\"usa-re-msg\">${esc(msg)}</span></span><span class=\"usa-re-flap\"><span class=\"usa-re-seal\">福</span></span><span class=\"usa-re-coins\" aria-hidden=\"true\"></span><span class=\"usa-re-live\" aria-live=\"polite\"></span></button>`\n );\n this.listen(this.querySelector('.usa-re') as Element, 'click', () => (this.opened ? this.close() : this.open()));\n if (this.flag('opened')) this.open(true);\n }\n open(quiet = false): void {\n if (this.opened) return;\n this.setAttribute('data-open', '');\n const btn = this.querySelector('.usa-re') as HTMLElement;\n btn.setAttribute('aria-expanded', 'true');\n const amount = this.num('amount', 8.88);\n const cur = this.str('currency', '¥');\n const amt = this.querySelector('.usa-re-amt') as HTMLElement;\n const fmt = (v: number) => `${cur}${v.toFixed(Number.isInteger(amount) ? 0 : 2)}`;\n amt.textContent = fmt(amount);\n (this.querySelector('.usa-re-live') as HTMLElement).textContent = `${fmt(amount)}${this.str('from') ? ` from ${this.str('from')}` : ''}`;\n if (!quiet && !this.reduced) {\n this.motion(this.querySelector('.usa-re-flap') as Element, [{ transform: 'rotateX(0)' }, { transform: 'rotateX(180deg)' }], { duration: 450, easing: 'ease-in-out' });\n this.motion(this.querySelector('.usa-re-card') as Element, [{ transform: 'translateY(0)' }, { transform: 'translateY(-46%)' }], { duration: 520, delay: 300, easing: 'cubic-bezier(.3,1.4,.5,1)', fill: 'backwards' });\n const t0 = performance.now();\n const step = () => {\n const k = Math.min(1, (performance.now() - t0 - 350) / 700);\n amt.textContent = fmt(amount * Math.max(0, 1 - Math.pow(1 - Math.max(0, k), 3)));\n if (k < 1 && this.isConnected) requestAnimationFrame(step);\n };\n requestAnimationFrame(step);\n const coins = this.querySelector('.usa-re-coins') as HTMLElement;\n for (let i = 0; i < 7; i++) {\n const c = document.createElement('i');\n coins.appendChild(c);\n const x = (i - 3) * 22;\n const a = this.motion(c, [{ transform: 'translate(-50%,0) scale(.3)', opacity: 0 }, { transform: `translate(calc(-50% + ${x}px), -${70 + (i % 3) * 18}px) scale(1) rotateY(360deg)`, opacity: 1, offset: 0.5 }, { transform: `translate(calc(-50% + ${x * 1.3}px), 10px) scale(.8) rotateY(720deg)`, opacity: 0 }], { duration: 1100, delay: 450 + i * 40, easing: 'ease-out', fill: 'backwards' });\n const rm = () => c.remove();\n if (a) a.finished.then(rm, rm);\n else rm();\n }\n }\n this.emit('open', { amount });\n }\n close(): void {\n this.removeAttribute('data-open');\n this.querySelector('.usa-re')?.setAttribute('aria-expanded', 'false');\n }\n }\n return UsaRedEnvelope as unknown as CustomElementConstructor;\n },\n { id: 'red-envelope', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport css from './festival-banner.css?raw';\n\n/**\n * `<usa-festival-banner theme=\"lunar\">` (8.1) — a festive announcement\n * banner with an ambient scene behind its text: `lunar` (swaying lanterns,\n * drifting gold sparkles), `xmas` (falling snow, twinkling lights),\n * `halloween` (bats, a glowing moon), `fireworks` (bursting rockets). Its\n * own content is the message; `dismissible` adds a close button\n * (`usa:dismiss`). The decorations are `aria-hidden`, the banner is a\n * labelled `region`; the scene only animates while on screen and is static\n * under reduced motion.\n */\nexport interface UsaFestivalBannerElement extends UsaElement {\n theme: string;\n dismiss(): void;\n}\n\nexport const FESTIVAL_THEMES = ['lunar', 'xmas', 'halloween', 'fireworks'] as const;\n\nconst SCENES: Record<string, (i: number) => string> = {\n lunar: (i) => (i < 4 ? `<i class=\"usa-fb-lantern\" style=\"--x:${8 + i * 26}%;--d:${i * -0.6}s\"></i>` : `<i class=\"usa-fb-spark\" style=\"--x:${(i * 37) % 100}%;--d:${(i * -0.7) % 4}s\"></i>`),\n xmas: (i) => (i < 7 ? `<i class=\"usa-fb-light\" style=\"--x:${6 + i * 14.5}%;--d:${i * -0.3}s\"></i>` : `<i class=\"usa-fb-snow\" style=\"--x:${(i * 29) % 100}%;--d:${(i * -0.9) % 6}s\"></i>`),\n halloween: (i) => (i === 0 ? '<i class=\"usa-fb-moon\"></i>' : i < 5 ? `<i class=\"usa-fb-bat\" style=\"--y:${10 + i * 12}%;--d:${i * -1.4}s\">🦇</i>` : ''),\n fireworks: (i) => (i < 4 ? `<i class=\"usa-fb-rocket\" style=\"--x:${12 + i * 25}%;--d:${i * -0.7}s;--c:${['#f43f5e', '#facc15', '#22d3ee', '#a855f7'][i]}\"></i>` : ''),\n};\n\nexport function defineFestivalBanner(tag = 'usa-festival-banner'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaFestivalBanner extends Base {\n static get observedAttributes(): string[] {\n return ['theme', 'label', 'dismissible'];\n }\n get theme(): string {\n const t = this.str('theme', 'lunar');\n return (FESTIVAL_THEMES as readonly string[]).includes(t) ? t : 'lunar';\n }\n set theme(t: string) {\n this.setAttribute('theme', t);\n }\n mount(): void {\n this.querySelectorAll(':scope > [data-usa-part]').forEach((n) => n.remove());\n this.setAttribute('role', 'region');\n this.setAttribute('aria-label', this.str('label', 'Announcement'));\n this.setAttribute('data-theme', this.theme);\n const scene = Array.from({ length: 16 }, (_, i) => SCENES[this.theme](i)).join('');\n this.insertAdjacentHTML('afterbegin', `<span class=\"usa-fb-scene\" aria-hidden=\"true\" data-usa-part>${scene}</span>`);\n if (this.flag('dismissible')) {\n this.insertAdjacentHTML('beforeend', '<button type=\"button\" class=\"usa-fb-x\" aria-label=\"Dismiss\" data-usa-part>×</button>');\n this.listen(this.querySelector('.usa-fb-x') as Element, 'click', () => this.dismiss());\n }\n this.inView((v) => this.setFlag('data-live', v && !this.reduced));\n }\n dismiss(): void {\n const done = () => {\n this.hidden = true;\n this.emit('dismiss');\n };\n const a = this.reduced ? null : this.motion(this, [{ opacity: 1, transform: 'none' }, { opacity: 0, transform: 'translateY(-8px)' }], { duration: 220, easing: 'ease-in' });\n if (a) a.finished.then(done, done);\n else done();\n }\n }\n return UsaFestivalBanner as unknown as CustomElementConstructor;\n },\n { id: 'festival-banner', text: css }\n );\n}\n","/**\n * motionary/components/widgets — the 6.x animated UI widgets, in their own\n * entry so `motionary/components` and `components/lite` keep their size\n * budgets. Every widget is reduced-motion safe and keyboard accessible.\n *\n * ```ts\n * import { defineWidgets } from 'motionary/components/widgets';\n * defineWidgets(); // or defineCarousel(), defineTabBar(), …\n * ```\n * No build step: `<script src=\"https://unpkg.com/motionary@6/dist/widgets.umd.js\">`\n * (registers every widget and every 6.x effect pack; `window.UsaWidgets`).\n */\nimport { defineCarousel, CAROUSEL_EFFECTS, type UsaCarouselElement } from './carousel';\nimport { defineTabBar, TAB_INDICATORS, type UsaTabBarElement } from './tab-bar';\nimport { defineDisclosure, type UsaDisclosureElement } from './disclosure';\nimport { defineStories, type UsaStoriesElement } from './stories';\nimport { defineToastStack, stackToast, TOAST_POSITIONS, type UsaToastStackElement, type StackToastOptions } from './toast';\nimport { defineModal, defineSheet, MODAL_EFFECTS, SHEET_SIDES, type UsaModalElement, type UsaSheetElement } from './overlay';\nimport { defineMenu, MENU_EFFECTS, type UsaMenuElement } from './menu';\nimport { defineProgressRing, defineOdometer, PROGRESS_VARIANTS, type UsaProgressRingElement, type UsaOdometerElement } from './meters';\nimport { defineSkeletonReveal, SKELETON_VARIANTS, type UsaSkeletonRevealElement } from './skeleton-reveal';\nimport { defineStarRating, type UsaStarRatingElement } from './star-rating';\nimport { defineMilestones, type UsaMilestonesElement } from './milestones';\nimport { defineMasonryFlow, type UsaMasonryFlowElement } from './masonry-flow';\nimport { defineCompare, type UsaCompareElement } from './compare';\nimport { defineCubeGallery, type UsaCubeGalleryElement } from './cube-gallery';\nimport { defineDock, type UsaDockElement } from './dock';\nimport { defineNavMorph, NAV_INDICATORS, type UsaNavMorphElement } from './nav-morph';\nimport { defineMenuToggle, TOGGLE_VARIANTS, type UsaMenuToggleElement } from './menu-toggle';\nimport { defineTip, TIP_PLACEMENTS, type UsaTipElement } from './tip';\nimport { defineStepper, type UsaStepperElement } from './stepper';\nimport { definePagination, pageWindow, type UsaPaginationElement } from './pagination';\nimport { defineSegmented, SEGMENTED_VARIANTS, type UsaSegmentedElement } from './segmented';\nimport { defineSwitch, SWITCH_VARIANTS, type UsaSwitchElement } from './switch';\nimport { defineKanban, type UsaKanbanElement } from './kanban';\nimport { defineSwipeDeck, type UsaSwipeDeckElement } from './swipe-deck';\nimport { defineWeatherCard, WEATHER_CONDITIONS, type UsaWeatherCardElement } from './weather-card';\nimport { definePullCord, type UsaPullCordElement } from './pull-cord';\nimport { defineDatePicker, monthGrid, parseISODate, type UsaDatePickerElement } from './date-picker';\nimport { defineColorPicker, hsvToHex, hexToHsv, type UsaColorPickerElement } from './color-picker';\nimport { defineFileDrop, type UsaFileDropElement } from './file-drop';\nimport { defineKeyframeEditor, type UsaKeyframeEditorElement } from './keyframe-editor';\nimport { defineMusicPlayer, type UsaMusicPlayerElement } from './music-player';\nimport { defineVolumeKnob, type UsaVolumeKnobElement } from './volume-knob';\nimport { defineEqualizer, EQ_PRESETS, type UsaEqualizerElement } from './equalizer';\nimport { defineLyrics, parseLRC, type UsaLyricsElement } from './lyrics';\nimport { defineBarChart, type UsaBarChartElement } from './bar-chart';\nimport { defineGauge, type UsaGaugeElement } from './gauge';\nimport { defineSparkline, SPARK_VARIANTS, sparkPoints, type UsaSparklineElement } from './sparkline';\nimport { defineKpi, type UsaKpiElement } from './kpi';\nimport { defineAddToCart, type UsaAddToCartElement } from './add-to-cart';\nimport { defineCartDrawer, cartTotal, type UsaCartDrawerElement, type CartItem } from './cart-drawer';\nimport { defineProductGallery, wrapIndex, type UsaProductGalleryElement } from './product-gallery';\nimport { defineCountdown, splitTime, type UsaCountdownElement } from './countdown';\nimport { defineMessageList, type UsaMessageListElement, type ChatMessage } from './message-list';\nimport { defineReactions, parseReactions, type UsaReactionsElement } from './reactions';\nimport { defineNotificationBell, type UsaNotificationBellElement, type BellNotice } from './notification-bell';\nimport { definePresence, PRESENCE_STATES, initials, type UsaPresenceElement, type PresenceState } from './presence';\nimport { defineLeaderboard, rankRows, type UsaLeaderboardElement, type LeaderRow } from './leaderboard';\nimport { defineXpBar, levelFor, type UsaXpBarElement } from './xp-bar';\nimport { defineBadgeWall, badgeProgress, type UsaBadgeWallElement, type WallBadge } from './badge-wall';\nimport { definePrizeWheel, wheelAngle, type UsaPrizeWheelElement } from './prize-wheel';\nimport { defineGlobe, project, parseMarkers, type UsaGlobeElement, type GlobeMarker } from './globe';\nimport { defineLocationCard, haversine, formatDistance, type UsaLocationCardElement } from './location-card';\nimport { defineField, passwordStrength, type UsaFieldElement } from './field';\nimport { defineOtp, sanitizeCode, type UsaOtpElement } from './otp';\nimport { defineUploadProgress, formatBytes, type UsaUploadProgressElement } from './upload-progress';\nimport { defineChatComposer, type UsaChatComposerElement } from './chat-composer';\nimport { defineSuggestionChips, parseChips, type UsaSuggestionChipsElement } from './suggestion-chips';\nimport { defineVoiceButton, waveBars, type UsaVoiceButtonElement } from './voice-button';\nimport { defineCommandPalette, fuzzyMatch, keyLabels, matchesKeys, type UsaCommandPaletteElement, type PaletteCommand } from './command-palette';\nimport { defineShortcut, type UsaShortcutElement } from './shortcut';\nimport { defineClockControl, type UsaClockControlElement } from './clock-control';\nimport { defineHydrate, type UsaHydrateElement } from './hydrate';\nimport { defineRedEnvelope, type UsaRedEnvelopeElement } from './red-envelope';\nimport { defineFestivalBanner, FESTIVAL_THEMES, type UsaFestivalBannerElement } from './festival-banner';\n\nexport { defineCarousel, defineTabBar, defineDisclosure, defineStories, CAROUSEL_EFFECTS, TAB_INDICATORS };\nexport type { UsaCarouselElement, UsaTabBarElement, UsaDisclosureElement, UsaStoriesElement };\nexport { defineToastStack, stackToast, TOAST_POSITIONS, defineModal, defineSheet, MODAL_EFFECTS, SHEET_SIDES, defineMenu, MENU_EFFECTS };\nexport type { UsaToastStackElement, StackToastOptions, UsaModalElement, UsaSheetElement, UsaMenuElement };\n\nexport { defineProgressRing, defineOdometer, PROGRESS_VARIANTS, defineSkeletonReveal, SKELETON_VARIANTS, defineStarRating };\nexport type { UsaProgressRingElement, UsaOdometerElement, UsaSkeletonRevealElement, UsaStarRatingElement };\n\nexport { defineMilestones, defineMasonryFlow, defineCompare, defineCubeGallery };\nexport type { UsaMilestonesElement, UsaMasonryFlowElement, UsaCompareElement, UsaCubeGalleryElement };\n\nexport { defineDock, defineNavMorph, NAV_INDICATORS, defineMenuToggle, TOGGLE_VARIANTS, defineTip, TIP_PLACEMENTS };\nexport type { UsaDockElement, UsaNavMorphElement, UsaMenuToggleElement, UsaTipElement };\n\nexport { defineStepper, definePagination, pageWindow, defineSegmented, SEGMENTED_VARIANTS, defineSwitch, SWITCH_VARIANTS };\nexport type { UsaStepperElement, UsaPaginationElement, UsaSegmentedElement, UsaSwitchElement };\n\nexport { defineKanban, defineSwipeDeck, defineWeatherCard, WEATHER_CONDITIONS, definePullCord };\nexport type { UsaKanbanElement, UsaSwipeDeckElement, UsaWeatherCardElement, UsaPullCordElement };\n\nexport { defineDatePicker, monthGrid, parseISODate, defineColorPicker, hsvToHex, hexToHsv, defineFileDrop, defineKeyframeEditor };\nexport type { UsaDatePickerElement, UsaColorPickerElement, UsaFileDropElement, UsaKeyframeEditorElement };\n\nexport { defineMusicPlayer, defineVolumeKnob, defineEqualizer, EQ_PRESETS, defineLyrics, parseLRC };\nexport type { UsaMusicPlayerElement, UsaVolumeKnobElement, UsaEqualizerElement, UsaLyricsElement };\n\nexport { defineBarChart, defineGauge, defineSparkline, SPARK_VARIANTS, sparkPoints, defineKpi };\nexport type { UsaBarChartElement, UsaGaugeElement, UsaSparklineElement, UsaKpiElement };\n\nexport { defineAddToCart, defineCartDrawer, cartTotal, defineProductGallery, wrapIndex, defineCountdown, splitTime };\nexport type { UsaAddToCartElement, UsaCartDrawerElement, CartItem, UsaProductGalleryElement, UsaCountdownElement };\n\nexport { defineMessageList, defineReactions, parseReactions, defineNotificationBell, definePresence, PRESENCE_STATES, initials };\nexport type { UsaMessageListElement, ChatMessage, UsaReactionsElement, UsaNotificationBellElement, BellNotice, UsaPresenceElement, PresenceState };\n\nexport { defineLeaderboard, rankRows, defineXpBar, levelFor, defineBadgeWall, badgeProgress, definePrizeWheel, wheelAngle };\nexport type { UsaLeaderboardElement, LeaderRow, UsaXpBarElement, UsaBadgeWallElement, WallBadge, UsaPrizeWheelElement };\n\nexport { defineGlobe, project, parseMarkers, defineLocationCard, haversine, formatDistance };\nexport type { UsaGlobeElement, GlobeMarker, UsaLocationCardElement };\n\nexport { defineField, passwordStrength, defineOtp, sanitizeCode, defineUploadProgress, formatBytes };\nexport type { UsaFieldElement, UsaOtpElement, UsaUploadProgressElement };\n\nexport { defineChatComposer, defineSuggestionChips, parseChips, defineVoiceButton, waveBars };\nexport type { UsaChatComposerElement, UsaSuggestionChipsElement, UsaVoiceButtonElement };\n\nexport { defineCommandPalette, fuzzyMatch, keyLabels, matchesKeys, defineShortcut };\nexport type { UsaCommandPaletteElement, PaletteCommand, UsaShortcutElement };\n\nexport { defineClockControl, defineHydrate };\nexport type { UsaClockControlElement, UsaHydrateElement };\n\nexport { defineRedEnvelope, defineFestivalBanner, FESTIVAL_THEMES };\nexport type { UsaRedEnvelopeElement, UsaFestivalBannerElement };\n\n/** The widgets by release (tag → define function). */\nexport const WIDGETS: Record<string, Record<string, (tag?: string) => CustomElementConstructor | undefined>> = {\n '6.2': { 'usa-carousel': defineCarousel, 'usa-tab-bar': defineTabBar, 'usa-disclosure': defineDisclosure, 'usa-stories': defineStories },\n '6.3': { 'usa-toast-stack': defineToastStack, 'usa-modal': defineModal, 'usa-sheet': defineSheet, 'usa-menu': defineMenu },\n '6.4': { 'usa-progress-ring': defineProgressRing, 'usa-odometer': defineOdometer, 'usa-skeleton-reveal': defineSkeletonReveal, 'usa-star-rating': defineStarRating },\n '6.5': { 'usa-milestones': defineMilestones, 'usa-masonry-flow': defineMasonryFlow, 'usa-compare': defineCompare, 'usa-cube-gallery': defineCubeGallery },\n '6.6': { 'usa-dock': defineDock, 'usa-nav-morph': defineNavMorph, 'usa-menu-toggle': defineMenuToggle, 'usa-tip': defineTip },\n '6.7': { 'usa-stepper': defineStepper, 'usa-pagination': definePagination, 'usa-segmented': defineSegmented, 'usa-switch': defineSwitch },\n '6.8': { 'usa-kanban': defineKanban, 'usa-swipe-deck': defineSwipeDeck, 'usa-weather-card': defineWeatherCard, 'usa-pull-cord': definePullCord },\n '6.9': { 'usa-date-picker': defineDatePicker, 'usa-color-picker': defineColorPicker, 'usa-file-drop': defineFileDrop, 'usa-keyframe-editor': defineKeyframeEditor },\n '7.1': { 'usa-music-player': defineMusicPlayer, 'usa-volume-knob': defineVolumeKnob, 'usa-equalizer': defineEqualizer, 'usa-lyrics': defineLyrics },\n '7.2': { 'usa-bar-chart': defineBarChart, 'usa-gauge': defineGauge, 'usa-sparkline': defineSparkline, 'usa-kpi': defineKpi },\n '7.3': { 'usa-add-to-cart': defineAddToCart, 'usa-cart-drawer': defineCartDrawer, 'usa-product-gallery': defineProductGallery, 'usa-countdown': defineCountdown },\n '7.4': { 'usa-message-list': defineMessageList, 'usa-reactions': defineReactions, 'usa-notification-bell': defineNotificationBell, 'usa-presence': definePresence },\n '7.5': { 'usa-leaderboard': defineLeaderboard, 'usa-xp-bar': defineXpBar, 'usa-badge-wall': defineBadgeWall, 'usa-prize-wheel': definePrizeWheel },\n '7.6': { 'usa-globe': defineGlobe, 'usa-location-card': defineLocationCard },\n '7.7': { 'usa-field': defineField, 'usa-otp': defineOtp, 'usa-upload-progress': defineUploadProgress },\n '7.8': { 'usa-chat-composer': defineChatComposer, 'usa-suggestion-chips': defineSuggestionChips, 'usa-voice-button': defineVoiceButton },\n '7.9': { 'usa-command-palette': defineCommandPalette, 'usa-shortcut': defineShortcut },\n '8.0': { 'usa-clock-control': defineClockControl, 'usa-hydrate': defineHydrate },\n '8.1': { 'usa-red-envelope': defineRedEnvelope, 'usa-festival-banner': defineFestivalBanner },\n};\n\n/** Every widget tag, in release order. */\nexport const WIDGET_TAGS: string[] = Object.values(WIDGETS).flatMap((g) => Object.keys(g));\n\n/** Register every widget (or only those of one release, e.g. `'6.2'`) under its default tag. */\nexport function defineWidgets(release?: string): void {\n for (const [v, group] of Object.entries(WIDGETS)) if (!release || release === v) for (const [tag, fn] of Object.entries(group)) fn(tag);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-carousel': UsaCarouselElement;\n 'usa-tab-bar': UsaTabBarElement;\n 'usa-disclosure': UsaDisclosureElement;\n 'usa-stories': UsaStoriesElement;\n 'usa-toast-stack': UsaToastStackElement;\n 'usa-modal': UsaModalElement;\n 'usa-sheet': UsaSheetElement;\n 'usa-menu': UsaMenuElement;\n 'usa-progress-ring': UsaProgressRingElement;\n 'usa-odometer': UsaOdometerElement;\n 'usa-skeleton-reveal': UsaSkeletonRevealElement;\n 'usa-star-rating': UsaStarRatingElement;\n 'usa-milestones': UsaMilestonesElement;\n 'usa-masonry-flow': UsaMasonryFlowElement;\n 'usa-compare': UsaCompareElement;\n 'usa-cube-gallery': UsaCubeGalleryElement;\n 'usa-dock': UsaDockElement;\n 'usa-nav-morph': UsaNavMorphElement;\n 'usa-menu-toggle': UsaMenuToggleElement;\n 'usa-tip': UsaTipElement;\n 'usa-stepper': UsaStepperElement;\n 'usa-pagination': UsaPaginationElement;\n 'usa-segmented': UsaSegmentedElement;\n 'usa-switch': UsaSwitchElement;\n 'usa-kanban': UsaKanbanElement;\n 'usa-swipe-deck': UsaSwipeDeckElement;\n 'usa-weather-card': UsaWeatherCardElement;\n 'usa-pull-cord': UsaPullCordElement;\n 'usa-date-picker': UsaDatePickerElement;\n 'usa-color-picker': UsaColorPickerElement;\n 'usa-file-drop': UsaFileDropElement;\n 'usa-keyframe-editor': UsaKeyframeEditorElement;\n 'usa-music-player': UsaMusicPlayerElement;\n 'usa-volume-knob': UsaVolumeKnobElement;\n 'usa-equalizer': UsaEqualizerElement;\n 'usa-lyrics': UsaLyricsElement;\n 'usa-bar-chart': UsaBarChartElement;\n 'usa-gauge': UsaGaugeElement;\n 'usa-sparkline': UsaSparklineElement;\n 'usa-kpi': UsaKpiElement;\n 'usa-add-to-cart': UsaAddToCartElement;\n 'usa-cart-drawer': UsaCartDrawerElement;\n 'usa-product-gallery': UsaProductGalleryElement;\n 'usa-countdown': UsaCountdownElement;\n 'usa-message-list': UsaMessageListElement;\n 'usa-reactions': UsaReactionsElement;\n 'usa-notification-bell': UsaNotificationBellElement;\n 'usa-presence': UsaPresenceElement;\n 'usa-leaderboard': UsaLeaderboardElement;\n 'usa-xp-bar': UsaXpBarElement;\n 'usa-badge-wall': UsaBadgeWallElement;\n 'usa-prize-wheel': UsaPrizeWheelElement;\n 'usa-globe': UsaGlobeElement;\n 'usa-location-card': UsaLocationCardElement;\n 'usa-field': UsaFieldElement;\n 'usa-otp': UsaOtpElement;\n 'usa-upload-progress': UsaUploadProgressElement;\n 'usa-chat-composer': UsaChatComposerElement;\n 'usa-suggestion-chips': UsaSuggestionChipsElement;\n 'usa-voice-button': UsaVoiceButtonElement;\n 'usa-command-palette': UsaCommandPaletteElement;\n 'usa-shortcut': UsaShortcutElement;\n 'usa-clock-control': UsaClockControlElement;\n 'usa-hydrate': UsaHydrateElement;\n 'usa-red-envelope': UsaRedEnvelopeElement;\n 'usa-festival-banner': UsaFestivalBannerElement;\n }\n}\n"],"names":["uid","css","esc"],"mappings":"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"}