use-scroll-animate 6.5.0 → 6.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.cjs","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/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. Event `usa:change` (`{ value }`). 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\nexport function defineStarRating(tag = 'usa-star-rating'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaStarRating extends Base {\n static get observedAttributes(): string[] {\n return ['max', 'icon', 'readonly', 'step'];\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[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 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) this.emit('change', { value: nv });\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","/**\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';\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\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};\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 }\n}\n"],"names":["defineElement","css","springEasing"],"mappings":"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"}
1
+ {"version":3,"file":"widgets.cjs","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/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. Event `usa:change` (`{ value }`). 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\nexport function defineStarRating(tag = 'usa-star-rating'): CustomElementConstructor | undefined {\n return defineElement(\n tag,\n (Base) => {\n class UsaStarRating extends Base {\n static get observedAttributes(): string[] {\n return ['max', 'icon', 'readonly', 'step'];\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[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 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) this.emit('change', { value: nv });\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","/**\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';\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\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};\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 }\n}\n"],"names":["defineElement","css","springEasing"],"mappings":"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"}