use-scroll-animate 2.5.0 → 2.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.
- package/CHANGELOG.md +20 -0
- package/README.md +1 -0
- package/README_ja.md +1 -0
- package/README_zh.md +1 -0
- package/dist/chunks/{base-CuvCgqLy.js → base-08OYzphB.js} +2 -2
- package/dist/chunks/{base-CuvCgqLy.js.map → base-08OYzphB.js.map} +1 -1
- package/dist/chunks/{base-CJ7XfidP.cjs → base-5DFCAnvH.cjs} +3 -1
- package/dist/chunks/{base-CJ7XfidP.cjs.map → base-5DFCAnvH.cjs.map} +1 -1
- package/dist/chunks/{spring-CGO9Jd9b.cjs → spring-Bi4qY0pL.cjs} +2 -2
- package/dist/chunks/{spring-CGO9Jd9b.cjs.map → spring-Bi4qY0pL.cjs.map} +1 -1
- package/dist/chunks/{spring-BKUU7-Xm.js → spring-CpeFkxNd.js} +2 -2
- package/dist/chunks/{spring-BKUU7-Xm.js.map → spring-CpeFkxNd.js.map} +1 -1
- package/dist/components/background.cjs +1 -1
- package/dist/components/background.js +2 -2
- package/dist/components/cards.cjs +2 -2
- package/dist/components/cards.js +3 -3
- package/dist/components/click.cjs +2 -2
- package/dist/components/click.js +3 -3
- package/dist/components/feedback.cjs +2 -2
- package/dist/components/feedback.css +1 -1
- package/dist/components/feedback.js +3 -3
- package/dist/components/interaction.cjs +2 -2
- package/dist/components/interaction.css +1 -1
- package/dist/components/interaction.js +3 -3
- package/dist/components/physics.cjs +2 -2
- package/dist/components/physics.js +4 -4
- package/dist/components/reveal.cjs +1 -1
- package/dist/components/reveal.js +2 -2
- package/dist/components/text.cjs +1 -1
- package/dist/components/text.js +2 -2
- package/dist/components/transitions.cjs +1 -1
- package/dist/components/transitions.js +2 -2
- package/dist/components/ui.cjs +1082 -0
- package/dist/components/ui.cjs.map +1 -0
- package/dist/components/ui.css +14 -0
- package/dist/components/ui.d.cts +251 -0
- package/dist/components/ui.d.ts +251 -0
- package/dist/components/ui.js +1064 -0
- package/dist/components/ui.js.map +1 -0
- package/dist/components.cjs +25 -4
- package/dist/components.cjs.map +1 -1
- package/dist/components.css +14 -2
- package/dist/components.d.cts +215 -2
- package/dist/components.d.ts +215 -2
- package/dist/components.js +10 -3
- package/dist/components.js.map +1 -1
- package/dist/components.umd.js +2 -2
- package/dist/components.umd.js.map +1 -1
- package/docs/components.md +20 -0
- package/package.json +13 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sources":["../../src/components/ui/variants.ts","../../src/components/ui/position.ts","../../src/components/ui/tabs.ts","../../src/components/ui/sheet.ts","../../src/components/ui/pull-refresh.ts","../../src/components/ui/fab.ts","../../src/components/ui/navbar.ts","../../src/components/ui/slider.ts","../../src/components/ui/rating.ts","../../src/components/ui/tooltip.ts","../../src/components/ui/popover.ts","../../src/components/ui/badge.ts","../../src/components/ui/avatar-stack.ts","../../src/components/ui/index.ts"],"sourcesContent":["import { adoptStyles } from '../base';\nimport css from './variants.css?raw';\n\n/**\n * Style variants (v2.6): `variant=\"minimal | neon | glass | brutalist |\n * fluent | material\"` on any `<usa-*>` element — or on any ancestor as\n * `data-usa-variant`, or page-wide with `setVariant()` — sets the shared\n * design tokens every component reads:\n *\n * `--usa-accent`, `--usa-accent-text`, `--usa-surface`, `--usa-text`,\n * `--usa-radius`, `--usa-border`, `--usa-shadow`, `--usa-blur`, `--usa-font`.\n *\n * (`<usa-spinner>`, `<usa-check>` and `<usa-dialog>` already use `variant`\n * for their kind; the token names never clash with those values except\n * `fluent`, which means the same thing there.)\n */\nexport const VARIANTS = ['minimal', 'neon', 'glass', 'brutalist', 'fluent', 'material'] as const;\nexport type Variant = (typeof VARIANTS)[number];\n\n/** Inject the variant token sheet (done automatically by every `ui` component). */\nexport function adoptVariants(): void {\n adoptStyles('variants', css);\n}\n\n/** Apply a variant to the whole page (or `root`); `null` removes it. */\nexport function setVariant(variant: Variant | null, root: Element | null = typeof document !== 'undefined' ? document.documentElement : null): void {\n if (!root) return;\n adoptVariants();\n if (variant) root.setAttribute('data-usa-variant', variant);\n else root.removeAttribute('data-usa-variant');\n}\n","export type Placement = 'top' | 'bottom' | 'left' | 'right';\n\n/** Position a fixed `floating` element next to `anchor`, flipping when it would leave the viewport. */\nexport function place(floating: HTMLElement, anchor: Element, placement: Placement = 'top', gap = 8): Placement {\n const a = anchor.getBoundingClientRect();\n const f = floating.getBoundingClientRect();\n const W = window.innerWidth || 1024;\n const H = window.innerHeight || 768;\n const fits: Record<Placement, boolean> = {\n top: a.top - f.height - gap >= 0,\n bottom: a.bottom + f.height + gap <= H,\n left: a.left - f.width - gap >= 0,\n right: a.right + f.width + gap <= W,\n };\n const opposite: Record<Placement, Placement> = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' };\n const p = fits[placement] || !fits[opposite[placement]] ? placement : opposite[placement];\n let x = 0;\n let y = 0;\n if (p === 'top' || p === 'bottom') {\n x = Math.min(Math.max(4, a.left + a.width / 2 - f.width / 2), W - f.width - 4);\n y = p === 'top' ? a.top - f.height - gap : a.bottom + gap;\n } else {\n y = Math.min(Math.max(4, a.top + a.height / 2 - f.height / 2), H - f.height - 4);\n x = p === 'left' ? a.left - f.width - gap : a.right + gap;\n }\n floating.style.left = `${Math.round(x)}px`;\n floating.style.top = `${Math.round(y)}px`;\n floating.setAttribute('data-placement', p);\n return p;\n}\n\nlet uid = 0;\nexport const nextId = (prefix: string): string => `${prefix}-${++uid}`;\n","import { defineElement, type UsaElement } from '../base';\nimport { springEasing } from '../physics/spring';\nimport { adoptVariants } from './variants';\nimport { nextId } from './position';\nimport css from './tabs.css?raw';\n\n/**\n * `<usa-tabs>` — accessible tabs with a sliding (spring) indicator.\n * Tabs: `[data-tab]` children (buttons); panels: `[data-panel]` children, in\n * the same order. Arrow keys / Home / End move between tabs (roving tabindex).\n *\n * Attributes: `selected` (index, 0), `indicator` (`line` default, `pill`),\n * `variant`. Events: `usa:change` (`{ index }`). Panels fade/slide in;\n * reduced motion: the indicator jumps and panels switch instantly.\n */\nexport interface UsaTabsElement extends UsaElement {\n selected: number;\n select(i: number, focus?: boolean): void;\n}\n\nexport function defineTabs(tag = 'usa-tabs'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) =>\n class UsaTabs extends Base {\n static get observedAttributes(): string[] {\n return ['indicator'];\n }\n\n private _i = 0;\n private _bar: HTMLElement | null = null;\n\n get selected(): number {\n return this._i;\n }\n set selected(v: number) {\n this.select(v);\n }\n\n private tabs(): HTMLElement[] {\n return Array.from(this.querySelectorAll<HTMLElement>('[data-tab]')).filter((t) => t.closest(this.localName) === this);\n }\n private panels(): HTMLElement[] {\n return Array.from(this.querySelectorAll<HTMLElement>('[data-panel]')).filter((t) => t.closest(this.localName) === this);\n }\n\n mount(): void {\n const tabs = this.tabs();\n const panels = this.panels();\n const list = tabs[0]?.parentElement;\n if (!list) return;\n list.setAttribute('role', 'tablist');\n list.classList.add('usa-tabs-list');\n if (!list.querySelector(':scope > .usa-tabs-indicator')) {\n this._bar = document.createElement('span');\n this._bar.className = 'usa-tabs-indicator';\n this._bar.setAttribute('aria-hidden', 'true');\n list.append(this._bar);\n } else this._bar = list.querySelector(':scope > .usa-tabs-indicator');\n tabs.forEach((t, i) => {\n t.id ||= nextId('usa-tab');\n t.setAttribute('role', 'tab');\n const p = panels[i];\n if (p) {\n p.id ||= nextId('usa-panel');\n p.setAttribute('role', 'tabpanel');\n p.setAttribute('aria-labelledby', t.id);\n t.setAttribute('aria-controls', p.id);\n if (!p.hasAttribute('tabindex')) p.tabIndex = 0;\n }\n this.listen(t, 'click', () => this.select(i));\n });\n this.listen(list, 'keydown', (e: KeyboardEvent) => {\n const n = tabs.length;\n const map: Record<string, number> = { ArrowRight: this._i + 1, ArrowDown: this._i + 1, ArrowLeft: this._i - 1, ArrowUp: this._i - 1, Home: 0, End: n - 1 };\n if (!(e.key in map)) return;\n e.preventDefault();\n this.select((map[e.key] + n) % n, true);\n });\n const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(() => this.moveBar(false)) : null;\n ro?.observe(list);\n this.onCleanup(() => ro?.disconnect());\n this.select(Math.max(0, Math.min(tabs.length - 1, this.num('selected', 0))), false, true);\n }\n\n private moveBar(animate: boolean): void {\n const t = this.tabs()[this._i];\n const bar = this._bar;\n if (!t || !bar) return;\n const from = bar.style.transform;\n const fromW = bar.style.width;\n bar.style.width = `${t.offsetWidth}px`;\n bar.style.transform = `translateX(${t.offsetLeft}px)`;\n if (animate && from && !this.reduced) this.motion(bar, [{ transform: from, width: fromW }, { transform: bar.style.transform, width: bar.style.width }], springEasing('stiff'));\n }\n\n select(i: number, focus = false, initial = false): void {\n const tabs = this.tabs();\n const panels = this.panels();\n if (!tabs[i]) return;\n const prev = this._i;\n this._i = i;\n this.setAttribute('selected', String(i));\n tabs.forEach((t, j) => {\n t.setAttribute('aria-selected', String(j === i));\n t.tabIndex = j === i ? 0 : -1;\n });\n panels.forEach((p, j) => (p.hidden = j !== i));\n if (focus) tabs[i].focus();\n this.moveBar(!initial);\n if (initial || prev === i) return;\n const p = panels[i];\n if (p && !this.reduced) this.motion(p, [{ opacity: 0, transform: `translateX(${i > prev ? 16 : -16}px)` }, { opacity: 1, transform: 'none' }], { duration: 280, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' });\n this.emit('change', { index: i });\n }\n },\n { id: 'tabs', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport { createSpring, projectInertia, snapTo, rubberBand, type SpringValue } from '../physics/spring';\nimport { adoptVariants } from './variants';\nimport css from './sheet.css?raw';\n\n/** Shared machinery of `<usa-drawer>` and `<usa-bottom-sheet>`: backdrop, focus, Esc, drag-to-dismiss. */\nfunction makePanel(Base: any, kind: 'drawer' | 'sheet') {\n return class UsaPanel extends Base {\n static get observedAttributes(): string[] {\n return ['open', 'side'];\n }\n\n _pos!: SpringValue;\n _backdrop: HTMLElement | null = null;\n _return: Element | null = null;\n _drag: { id: number; start: number; origin: number; t: number; last: number; lt: number } | null = null;\n\n get open(): boolean {\n return this.flag('open');\n }\n set open(v: boolean) {\n this.setFlag('open', v);\n }\n\n /** Main axis size of the panel (px). */\n size(): number {\n const r = this.getBoundingClientRect();\n return (kind === 'sheet' || this.vertical() ? r.height : r.width) || (kind === 'sheet' ? window.innerHeight * 0.9 : 320);\n }\n vertical(): boolean {\n return kind === 'sheet' || this.str('side') === 'top' || this.str('side') === 'bottom';\n }\n /** +1 when hiding moves the panel in the positive axis direction. */\n dir(): number {\n const side = kind === 'sheet' ? 'bottom' : this.str('side', 'left');\n return side === 'left' || side === 'top' ? -1 : 1;\n }\n /** Offsets (px from fully open) the panel may rest at; the largest closes it. */\n stops(): number[] {\n return [0];\n }\n render(v: number): void {\n const axis = this.vertical() ? 'Y' : 'X';\n this.style.transform = `translate${axis}(${(v * this.dir()).toFixed(1)}px)`;\n if (this._backdrop) this._backdrop.style.opacity = String(clamp(1 - v / (this.size() || 1), 0, 1));\n }\n\n mount(): void {\n this.setAttribute('role', 'dialog');\n if (this.str('label')) this.setAttribute('aria-label', this.str('label'));\n if (!this.hasAttribute('tabindex')) this.tabIndex = -1;\n this.classList.add('usa-surface');\n this._pos = createSpring({ value: this.size() * 2, spring: 'stiff', onUpdate: (v) => this.render(v), onRest: (v) => v >= this.size() - 1 && !this.open && this.afterClose() });\n if (this.open) this.show(false);\n else {\n this.hidden = true;\n this._pos.jump(this.size() * 1.2);\n }\n this.listen(document, 'keydown', (e: KeyboardEvent) => e.key === 'Escape' && this.open && this.close());\n this.listen(this, 'click', (e: MouseEvent) => (e.target as Element).closest?.('[data-close]') && this.close());\n this.listen(this, 'pointerdown', (e: PointerEvent) => this.dragStart(e));\n this.listen(this, 'pointermove', (e: PointerEvent) => this.dragMove(e));\n this.listen(this, 'pointerup', (e: PointerEvent) => this.dragEnd(e));\n this.listen(this, 'pointercancel', (e: PointerEvent) => this.dragEnd(e));\n }\n\n unmount(): void {\n this._pos?.stop();\n this._backdrop?.remove();\n this._backdrop = null;\n }\n\n changed(name: string): void {\n if (name !== 'open') return super.changed(name);\n if (this.open && this.hidden) this.show(true);\n else if (!this.open && !this.hidden) this.hide();\n }\n\n show(animate = true): void {\n this._return = document.activeElement;\n this.hidden = false;\n this.setAttribute('aria-modal', 'true');\n if (!this._backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = 'usa-panel-backdrop';\n this._backdrop.addEventListener('click', () => this.close());\n this.before(this._backdrop);\n }\n const target = this.stops()[this.initialStop()];\n if (!animate) this._pos.jump(target);\n else {\n this._pos.jump(this.size());\n this._pos.set(target);\n }\n this.setFlag('open', true);\n this.focus({ preventScroll: true });\n this.emit('open');\n }\n\n initialStop(): number {\n return 0;\n }\n\n hide(): void {\n this._pos.set(this.size() * 1.05);\n this.emit('close');\n }\n\n afterClose(): void {\n this.hidden = true;\n this._backdrop?.remove();\n this._backdrop = null;\n if (this._return instanceof HTMLElement) this._return.focus({ preventScroll: true });\n }\n\n close(): void {\n this.setFlag('open', false);\n }\n\n dragStart(e: PointerEvent): void {\n const handle = kind === 'sheet' ? (e.target as Element).closest?.('[data-handle], .usa-sheet-handle') || (this.scrollTop <= 0 ? this : null) : this;\n if (!handle || (e.target as Element).closest?.('input, textarea, select, button, a, [data-no-drag]')) return;\n const p = this.vertical() ? e.clientY : e.clientX;\n this._pos.stop();\n this._drag = { id: e.pointerId, start: p, origin: this._pos.value, t: e.timeStamp, last: p, lt: e.timeStamp };\n }\n dragMove(e: PointerEvent): void {\n const d = this._drag;\n if (!d || e.pointerId !== d.id) return;\n const p = this.vertical() ? e.clientY : e.clientX;\n let v = d.origin + (p - d.start) * this.dir();\n if (v < 0) v = rubberBand(v, 200);\n d.lt = d.t;\n d.t = e.timeStamp;\n d.last = p;\n this._pos.jump(v);\n }\n dragEnd(e: PointerEvent): void {\n const d = this._drag;\n if (!d || e.pointerId !== d.id) return;\n this._drag = null;\n const moved = this._pos.value - d.origin;\n const dt = Math.max(16, d.t - d.lt) / 1000;\n const vel = Math.abs(moved) > 4 ? (moved / Math.max(dt, (e.timeStamp - (d.lt || 0)) / 1000 || 0.1)) * 0.2 : 0;\n const projected = projectInertia(this._pos.value, clamp(vel, -3000, 3000));\n const stops = [...this.stops(), this.size()];\n const to = snapTo(projected, stops);\n if (to >= this.size() - 1) this.close();\n else this._pos.set(to);\n this.emit('snap', { offset: to });\n }\n };\n}\n\n/**\n * `<usa-drawer>` — a side panel that slides in with a spring and can be\n * dragged / swiped closed. Modal: backdrop, Esc, focus returns on close.\n * Attributes: `open`, `side` (`left` default, `right`, `top`, `bottom`),\n * `label`, `variant`. Events: `usa:open`, `usa:close`. `[data-close]` closes.\n * Reduced motion: opens and closes instantly.\n */\nexport interface UsaDrawerElement extends UsaElement {\n open: boolean;\n show(): void;\n close(): void;\n}\n\n/**\n * `<usa-bottom-sheet>` — a draggable bottom sheet with snap points\n * (`snap=\"0.3,0.6,0.92\"`, fractions of the viewport height; default\n * `0.5,0.92`; `start` = index of the snap it opens at, default 0), inertia and drag-down-to-dismiss. `[data-handle]` (or the\n * built-in grabber) drags it. Attributes: `open`, `snap`, `start` (initial\n * snap index), `label`, `variant`. Events: `usa:open`, `usa:close`, `usa:snap`.\n */\nexport interface UsaBottomSheetElement extends UsaDrawerElement {}\n\nexport function defineDrawer(tag = 'usa-drawer'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(tag, (Base) => makePanel(Base, 'drawer') as unknown as CustomElementConstructor, { id: 'sheet', text: css });\n}\n\nexport function defineBottomSheet(tag = 'usa-bottom-sheet'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) => {\n const Panel = makePanel(Base, 'sheet');\n return class UsaBottomSheet extends Panel {\n static get observedAttributes(): string[] {\n return ['open', 'snap'];\n }\n mount(): void {\n if (!this.querySelector(':scope > .usa-sheet-handle')) {\n const h = document.createElement('div');\n h.className = 'usa-sheet-handle';\n h.setAttribute('aria-hidden', 'true');\n this.prepend(h);\n }\n super.mount();\n }\n size(): number {\n return (window.innerHeight || 800) * Math.max(...this.fractions());\n }\n fractions(): number[] {\n const f = this.str('snap', '0.5,0.92').split(',').map(Number).filter((n: number) => n > 0 && n <= 1);\n return f.length ? f : [0.5, 0.92];\n }\n stops(): number[] {\n const full = this.size();\n const H = window.innerHeight || 800;\n return this.fractions().map((f: number) => Math.max(0, full - f * H)).sort((a: number, b: number) => a - b);\n }\n initialStop(): number {\n const f = this.fractions();\n const pick = f[clamp(this.num('start', 0), 0, f.length - 1)];\n const target = Math.max(0, this.size() - pick * (window.innerHeight || 800));\n const s = this.stops();\n return Math.max(0, s.indexOf(target));\n }\n render(v: number): void {\n this.style.height = `${this.size()}px`;\n super.render(v);\n }\n } as unknown as CustomElementConstructor;\n },\n { id: 'sheet', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { createSpring, rubberBand, type SpringValue } from '../physics/spring';\nimport { adoptVariants } from './variants';\nimport css from './pull-refresh.css?raw';\n\n/**\n * `<usa-pull-refresh>` — pull-to-refresh for a scroll container (itself):\n * pull down at the top (touch / pointer) and a spinner stretches in; past\n * `threshold` (px, 70) releasing fires `usa:refresh` — call\n * `event.detail.done()` (or return a promise to `onrefresh`) to finish.\n * Also exposes `refresh()` for a keyboard / button path.\n * Attributes: `threshold`, `disabled`, `label` (status text, \"Refreshing\").\n * Reduced motion: no stretch; the spinner simply appears while refreshing.\n */\nexport interface UsaPullRefreshElement extends UsaElement {\n readonly refreshing: boolean;\n refresh(): Promise<void>;\n}\n\nexport function definePullRefresh(tag = 'usa-pull-refresh'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) =>\n class UsaPullRefresh extends Base {\n private _y!: SpringValue;\n private _busy = false;\n private _ind: HTMLElement | null = null;\n private _live: HTMLElement | null = null;\n\n get refreshing(): boolean {\n return this._busy;\n }\n\n private draw(v: number): void {\n const th = this.num('threshold', 70);\n this.style.setProperty('--usa-pull', `${v.toFixed(1)}px`);\n this.style.setProperty('--usa-pull-p', Math.min(1, v / th).toFixed(3));\n this.toggleAttribute('data-armed', v >= th && !this._busy);\n }\n\n mount(): void {\n if (!this.querySelector(':scope > .usa-pull-indicator')) {\n this._ind = document.createElement('div');\n this._ind.className = 'usa-pull-indicator';\n this._ind.setAttribute('aria-hidden', 'true');\n this._ind.innerHTML = '<svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\" pathLength=\"100\"/></svg>';\n this.prepend(this._ind);\n this._live = document.createElement('span');\n this._live.className = 'usa-sr';\n this._live.setAttribute('role', 'status');\n this.append(this._live);\n }\n this._y = createSpring({ spring: 'stiff', onUpdate: (v) => this.draw(v) });\n let start: number | null = null;\n let id = -1;\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n if (this.flag('disabled') || this._busy || this.scrollTop > 0) return;\n start = e.clientY;\n id = e.pointerId;\n });\n this.listen(this, 'pointermove', (e: PointerEvent) => {\n if (start === null || e.pointerId !== id) return;\n const d = e.clientY - start;\n if (d <= 0) return;\n this._y.jump(this.reduced ? 0 : rubberBand(d, 220));\n if (this.reduced && d > this.num('threshold', 70)) this.setAttribute('data-armed', '');\n });\n const end = (e: PointerEvent) => {\n if (start === null || e.pointerId !== id) return;\n const d = e.clientY - start;\n start = null;\n const armed = this.hasAttribute('data-armed') || (!this.reduced && this._y.value >= this.num('threshold', 70)) || (this.reduced && d > this.num('threshold', 70));\n if (armed) this.refresh();\n else this._y.set(0);\n };\n this.listen(this, 'pointerup', end);\n this.listen(this, 'pointercancel', end);\n }\n\n unmount(): void {\n this._y?.stop();\n }\n\n refresh(): Promise<void> {\n if (this._busy) return Promise.resolve();\n this._busy = true;\n this.removeAttribute('data-armed');\n this.setAttribute('data-refreshing', '');\n this.setAttribute('aria-busy', 'true');\n if (this._live) this._live.textContent = this.str('label', 'Refreshing');\n this._y.set(this.reduced ? 0 : this.num('threshold', 70) * 0.8);\n return new Promise((resolve) => {\n let finished = false;\n const done = () => {\n if (finished) return;\n finished = true;\n this._busy = false;\n this.removeAttribute('data-refreshing');\n this.removeAttribute('aria-busy');\n if (this._live) this._live.textContent = '';\n this._y.set(0);\n resolve();\n };\n const ev = new CustomEvent('usa:refresh', { detail: { done }, bubbles: true, cancelable: true });\n this.dispatchEvent(ev);\n const fn = (this as any).onrefresh;\n if (typeof fn === 'function') Promise.resolve(fn(ev)).then(done, done);\n });\n }\n },\n { id: 'pull-refresh', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { springEasing } from '../physics/spring';\nimport { adoptVariants } from './variants';\nimport css from './fab.css?raw';\n\n/**\n * `<usa-fab>` — floating action button with a speed dial. The first element\n * child is the main button; the others are actions that fan out with a\n * staggered spring when it opens (`direction=\"up\"` default, `down`, `left`,\n * `right`, `radial`). Esc / outside click closes; `aria-expanded` on the\n * main button; actions are hidden from AT while closed.\n * Attributes: `open`, `direction`, `position` (`bottom-right` default, `bottom-left`,\n * `inline`), `gap` (px, 56), `variant`. Events: `usa:toggle` (`{ open }`).\n * Reduced motion: actions appear without travel.\n */\nexport interface UsaFabElement extends UsaElement {\n open: boolean;\n toggle(force?: boolean): void;\n}\n\nexport function defineFab(tag = 'usa-fab'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) =>\n class UsaFab extends Base {\n static get observedAttributes(): string[] {\n return ['direction', 'gap'];\n }\n get open(): boolean {\n return this.flag('open');\n }\n set open(v: boolean) {\n this.toggle(v);\n }\n\n private parts(): [HTMLElement | null, HTMLElement[]] {\n const kids = Array.from(this.children) as HTMLElement[];\n return [kids[0] || null, kids.slice(1)];\n }\n\n private offset(i: number, n: number): [number, number] {\n const g = this.num('gap', 56) * (i + 1);\n switch (this.str('direction', 'up')) {\n case 'down':\n return [0, g];\n case 'left':\n return [-g, 0];\n case 'right':\n return [g, 0];\n case 'radial': {\n const a = Math.PI + (n > 1 ? (i / (n - 1)) * (Math.PI / 2) : Math.PI / 4);\n const r = this.num('gap', 56) * 1.6;\n return [Math.cos(a) * r, Math.sin(a) * r];\n }\n default:\n return [0, -g];\n }\n }\n\n mount(): void {\n const [main, actions] = this.parts();\n if (!main) return;\n main.classList.add('usa-fab-main');\n main.setAttribute('aria-haspopup', 'true');\n actions.forEach((a) => a.classList.add('usa-fab-action'));\n this.apply(false);\n this.listen(main, 'click', () => this.toggle());\n this.listen(document, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Escape' && this.open) {\n this.toggle(false);\n main.focus();\n }\n });\n this.listen(document, 'pointerdown', (e: PointerEvent) => this.open && !this.contains(e.target as Node) && this.toggle(false));\n this.listen(this, 'click', (e: MouseEvent) => {\n const a = (e.target as Element).closest?.('.usa-fab-action');\n if (a && this.contains(a)) this.toggle(false);\n });\n }\n\n private apply(animate: boolean): void {\n const [main, actions] = this.parts();\n if (!main) return;\n const open = this.open;\n main.setAttribute('aria-expanded', String(open));\n actions.forEach((a, i) => {\n const [x, y] = this.offset(i, actions.length);\n a.toggleAttribute('inert', !open);\n a.setAttribute('aria-hidden', String(!open));\n const to = open ? `translate(${x.toFixed(1)}px, ${y.toFixed(1)}px) scale(1)` : 'translate(0, 0) scale(0.4)';\n const from = a.style.transform || 'translate(0, 0) scale(0.4)';\n a.style.transform = this.reduced ? (open ? `translate(${x.toFixed(1)}px, ${y.toFixed(1)}px)` : 'translate(0, 0)') : to;\n a.style.opacity = open ? '1' : '0';\n if (animate && !this.reduced) {\n const t = springEasing(open ? 'wobbly' : 'stiff');\n this.motion(a, [{ transform: from, opacity: open ? 0 : 1 }, { transform: to, opacity: open ? 1 : 0 }], { ...t, delay: (open ? i : actions.length - 1 - i) * 35 });\n }\n });\n }\n\n toggle(force?: boolean): void {\n const next = force === undefined ? !this.open : force;\n if (next === this.open) return;\n this.setFlag('open', next);\n this.apply(true);\n this.emit('toggle', { open: next });\n }\n },\n { id: 'fab', text: css }\n );\n}\n","import { defineElement, raf, caf, type UsaElement } from '../base';\nimport { adoptVariants } from './variants';\nimport css from './navbar.css?raw';\n\n/**\n * `<usa-navbar>` — an app bar that hides while you scroll down and returns\n * as soon as you scroll up (or reach the top); `shrink` makes it compact\n * once scrolled. Focus inside always reveals it.\n * Attributes: `threshold` (px of scroll before hiding, 64), `shrink`,\n * `target` (selector of a scroll container instead of the page), `variant`.\n * State attributes: `data-hidden`, `data-scrolled`. Events: `usa:hide`, `usa:show`.\n * Reduced motion: hides/shows without sliding (instant).\n */\nexport interface UsaNavbarElement extends UsaElement {\n readonly hiddenByScroll: boolean;\n show(): void;\n}\n\nexport function defineNavbar(tag = 'usa-navbar'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) =>\n class UsaNavbar extends Base {\n private _frame = 0;\n private _last = 0;\n\n get hiddenByScroll(): boolean {\n return this.hasAttribute('data-hidden');\n }\n\n mount(): void {\n const sel = this.str('target');\n const scroller: HTMLElement | Window = (sel && (document.querySelector(sel) as HTMLElement)) || window;\n const pos = () => (scroller === window ? window.scrollY || document.documentElement.scrollTop : (scroller as HTMLElement).scrollTop);\n this._last = pos();\n const update = () => {\n this._frame = 0;\n const y = pos();\n const dy = y - this._last;\n this._last = y;\n this.toggleAttribute('data-scrolled', y > 4);\n if (y <= this.num('threshold', 64) || dy < -2) this.show();\n else if (dy > 2 && !this.contains(document.activeElement)) this.hide();\n };\n const on = () => {\n if (!this._frame) this._frame = raf(update);\n };\n this.listen(scroller, 'scroll', on, { passive: true });\n this.listen(this, 'focusin', () => this.show());\n update();\n }\n\n unmount(): void {\n caf(this._frame);\n this._frame = 0;\n }\n\n private hide(): void {\n if (this.hiddenByScroll) return;\n this.setAttribute('data-hidden', '');\n this.emit('hide');\n }\n\n show(): void {\n if (!this.hiddenByScroll) return;\n this.removeAttribute('data-hidden');\n this.emit('show');\n }\n },\n { id: 'navbar', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport { createSpring, type SpringValue } from '../physics/spring';\nimport { adoptVariants } from './variants';\nimport css from './slider.css?raw';\n\n/**\n * `<usa-slider>` — a form-associated range slider (`role=\"slider\"`). The\n * thumb follows with a spring, grows while dragged and shows a value bubble.\n * Keyboard: arrows (step), PageUp/PageDown (10 steps), Home/End.\n * Attributes: `value`, `min` (0), `max` (100), `step` (1), `name`, `label`,\n * `bubble` (show the value while dragging), `disabled`, `variant`.\n * Events: `input` + `usa:input` while moving, `change` + `usa:change` on release.\n * Reduced motion: the thumb jumps (no spring).\n */\nexport interface UsaSliderElement extends UsaElement {\n value: number;\n}\n\nexport function defineSlider(tag = 'usa-slider'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) => {\n class UsaSlider extends Base {\n static formAssociated = true;\n static get observedAttributes(): string[] {\n return ['min', 'max', 'disabled', 'label'];\n }\n private _internals: ElementInternals | null = null;\n private _v = 0;\n private _pos!: SpringValue;\n private _id = -1;\n\n constructor() {\n super();\n try {\n this._internals = (this as any).attachInternals?.() ?? null;\n } catch {\n this._internals = null;\n }\n }\n\n private range(): [number, number, number] {\n const min = this.num('min', 0);\n const max = Math.max(min + 1e-9, this.num('max', 100));\n return [min, max, Math.max(1e-9, this.num('step', 1))];\n }\n get value(): number {\n return this._v;\n }\n set value(v: number) {\n this.setValue(v, false);\n }\n\n private fraction(v = this._v): number {\n const [min, max] = this.range();\n return (v - min) / (max - min);\n }\n\n private setValue(v: number, user: boolean, animate = true): void {\n const [min, max, step] = this.range();\n const q = clamp(Math.round((v - min) / step) * step + min, min, max);\n const val = Number(q.toFixed(10));\n const changed = val !== this._v;\n this._v = val;\n this.setAttribute('aria-valuenow', String(val));\n this.setAttribute('aria-valuetext', String(val));\n this._internals?.setFormValue?.(String(val));\n const bubble = this.querySelector('.usa-slider-bubble');\n if (bubble) bubble.textContent = String(val);\n if (animate) this._pos?.set(this.fraction());\n else this._pos?.jump(this.fraction());\n if (changed && user) {\n this.dispatchEvent(new Event('input', { bubbles: true }));\n this.emit('input', { value: val });\n }\n }\n\n mount(): void {\n if (!this.querySelector(':scope > .usa-slider-track')) {\n this.innerHTML = '<span class=\"usa-slider-track\"><span class=\"usa-slider-fill\"></span></span><span class=\"usa-slider-thumb\"><span class=\"usa-slider-bubble\"></span></span>';\n }\n this.setAttribute('role', 'slider');\n if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n const [min, max] = this.range();\n this.setAttribute('aria-valuemin', String(min));\n this.setAttribute('aria-valuemax', String(max));\n if (this.str('label')) this.setAttribute('aria-label', this.str('label'));\n this.toggleAttribute('aria-disabled', this.flag('disabled'));\n this._pos = createSpring({ spring: 'stiff', onUpdate: (f) => this.style.setProperty('--usa-slider', clamp(f, 0, 1).toFixed(4)) });\n this.setValue(this.num('value', min), false, false);\n const fromPointer = (e: PointerEvent) => {\n const r = this.getBoundingClientRect();\n return min + clamp((e.clientX - r.left) / (r.width || 1), 0, 1) * (max - min);\n };\n this.listen(this, 'pointerdown', (e: PointerEvent) => {\n if (this.flag('disabled')) return;\n this._id = e.pointerId;\n try {\n this.setPointerCapture?.(e.pointerId);\n } catch {\n /* synthetic */\n }\n this.setAttribute('data-dragging', '');\n this.setValue(fromPointer(e), true);\n });\n this.listen(this, 'pointermove', (e: PointerEvent) => e.pointerId === this._id && this.setValue(fromPointer(e), true));\n const end = (e: PointerEvent) => {\n if (e.pointerId !== this._id) return;\n this._id = -1;\n this.removeAttribute('data-dragging');\n this.commit();\n };\n this.listen(this, 'pointerup', end);\n this.listen(this, 'pointercancel', end);\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n if (this.flag('disabled')) return;\n const [mn, mx, st] = this.range();\n const map: Record<string, number> = { ArrowRight: this._v + st, ArrowUp: this._v + st, ArrowLeft: this._v - st, ArrowDown: this._v - st, PageUp: this._v + st * 10, PageDown: this._v - st * 10, Home: mn, End: mx };\n if (!(e.key in map)) return;\n e.preventDefault();\n this.setValue(map[e.key], true);\n this.commit();\n });\n }\n\n unmount(): void {\n this._pos?.stop();\n }\n\n private commit(): void {\n this.dispatchEvent(new Event('change', { bubbles: true }));\n this.emit('change', { value: this._v });\n }\n }\n return UsaSlider as unknown as CustomElementConstructor;\n },\n { id: 'slider', text: css }\n );\n}\n","import { defineElement, clamp, type UsaElement } from '../base';\nimport { springEasing } from '../physics/spring';\nimport { adoptVariants } from './variants';\nimport css from './rating.css?raw';\n\n/**\n * `<usa-rating>` — star rating with hover preview and a springy pop when a\n * value is chosen. `role=\"slider\"` (arrow keys, Home/End, number keys).\n * Attributes: `value` (0), `max` (5), `icon` (★), `readonly`, `label`\n * (\"Rating\"), `name` (form value), `variant`. Events: `change`, `usa:change` (`{ value }`).\n * Reduced motion: no pop.\n */\nexport interface UsaRatingElement extends UsaElement {\n value: number;\n}\n\nexport function defineRating(tag = 'usa-rating'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) => {\n class UsaRating extends Base {\n static formAssociated = true;\n static get observedAttributes(): string[] {\n return ['max', 'icon', 'readonly'];\n }\n private _internals: ElementInternals | null = null;\n constructor() {\n super();\n try {\n this._internals = (this as any).attachInternals?.() ?? null;\n } catch {\n this._internals = null;\n }\n }\n get value(): number {\n return clamp(this.num('value', 0), 0, this.num('max', 5));\n }\n set value(v: number) {\n this.setAttribute('value', String(clamp(Math.round(v), 0, this.num('max', 5))));\n this.sync();\n }\n\n mount(): void {\n const max = this.num('max', 5);\n this.innerHTML = Array.from({ length: max }, (_, i) => `<span class=\"usa-rating-star\" data-i=\"${i + 1}\" aria-hidden=\"true\">${this.str('icon', '★')}</span>`).join('');\n this.setAttribute('role', 'slider');\n this.setAttribute('aria-valuemin', '0');\n this.setAttribute('aria-valuemax', String(max));\n this.setAttribute('aria-label', this.str('label', 'Rating'));\n if (this.flag('readonly')) this.setAttribute('aria-readonly', 'true');\n else if (!this.hasAttribute('tabindex')) this.tabIndex = 0;\n this.sync();\n if (this.flag('readonly')) return;\n this.listen(this, 'pointerover', (e: PointerEvent) => {\n const s = (e.target as Element).closest?.('[data-i]') as HTMLElement | null;\n if (s) this.preview(Number(s.dataset.i));\n });\n this.listen(this, 'pointerleave', () => this.preview(0));\n this.listen(this, 'click', (e: MouseEvent) => {\n const s = (e.target as Element).closest?.('[data-i]') as HTMLElement | null;\n if (s) this.choose(Number(s.dataset.i) === this.value ? 0 : Number(s.dataset.i));\n });\n this.listen(this, 'keydown', (e: KeyboardEvent) => {\n const v = this.value;\n const map: Record<string, number> = { ArrowRight: v + 1, ArrowUp: v + 1, ArrowLeft: v - 1, ArrowDown: v - 1, Home: 0, End: max };\n const n = /^[0-9]$/.test(e.key) ? Number(e.key) : map[e.key];\n if (n === undefined) return;\n e.preventDefault();\n this.choose(clamp(n, 0, max));\n });\n }\n\n private preview(n: number): void {\n this.querySelectorAll<HTMLElement>('[data-i]').forEach((s) => s.toggleAttribute('data-preview', n > 0 && Number(s.dataset.i) <= n));\n this.toggleAttribute('data-previewing', n > 0);\n }\n\n private sync(): void {\n const v = this.value;\n this.setAttribute('aria-valuenow', String(v));\n this.setAttribute('aria-valuetext', `${v} of ${this.num('max', 5)}`);\n this._internals?.setFormValue?.(String(v));\n this.querySelectorAll<HTMLElement>('[data-i]').forEach((s) => s.toggleAttribute('data-on', Number(s.dataset.i) <= v));\n }\n\n private choose(n: number): void {\n if (n === this.value) return;\n this.value = n;\n const star = this.querySelector(`[data-i=\"${n}\"]`);\n if (star && !this.reduced) this.motion(star, [{ transform: 'scale(0.5) rotate(-20deg)' }, { transform: 'scale(1) rotate(0)' }], springEasing('bouncy'));\n this.dispatchEvent(new Event('change', { bubbles: true }));\n this.emit('change', { value: n });\n }\n }\n return UsaRating as unknown as CustomElementConstructor;\n },\n { id: 'rating', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { springEasing } from '../physics/spring';\nimport { adoptVariants } from './variants';\nimport { place, nextId, type Placement } from './position';\nimport css from './tooltip.css?raw';\n\n/**\n * `<usa-tooltip text=\"…\">` — a tooltip for the element it wraps, shown on\n * hover (after `delay` ms, 300) and on keyboard focus, hidden on Esc / blur.\n * It springs in from its placement side and flips to stay on screen; the\n * trigger gets `aria-describedby`.\n * Attributes: `text`, `placement` (`top` default, `bottom`, `left`, `right`),\n * `delay`, `variant`. Reduced motion: fades only.\n */\nexport interface UsaTooltipElement extends UsaElement {\n show(): void;\n hide(): void;\n}\n\nexport function defineTooltip(tag = 'usa-tooltip'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) =>\n class UsaTooltip extends Base {\n static get observedAttributes(): string[] {\n return ['text'];\n }\n private _tip: HTMLElement | null = null;\n private _t: ReturnType<typeof setTimeout> | undefined;\n\n mount(): void {\n const trigger = (this.firstElementChild as HTMLElement) || this;\n const tip = document.createElement('span');\n tip.className = 'usa-tooltip-bubble usa-surface';\n tip.setAttribute('role', 'tooltip');\n tip.id = nextId('usa-tip');\n tip.textContent = this.str('text');\n tip.hidden = true;\n this.append(tip);\n this._tip = tip;\n trigger.setAttribute('aria-describedby', tip.id);\n const later = () => {\n clearTimeout(this._t);\n this._t = setTimeout(() => this.show(), this.num('delay', 300));\n };\n this.listen(this, 'pointerenter', later);\n this.listen(this, 'pointerleave', () => this.hide());\n this.listen(this, 'focusin', () => this.show());\n this.listen(this, 'focusout', () => this.hide());\n this.listen(document, 'keydown', (e: KeyboardEvent) => e.key === 'Escape' && this.hide());\n this.onCleanup(() => {\n clearTimeout(this._t);\n tip.remove();\n trigger.removeAttribute('aria-describedby');\n });\n }\n\n show(): void {\n const tip = this._tip;\n if (!tip || !tip.hidden || !this.str('text')) return;\n clearTimeout(this._t);\n tip.hidden = false;\n const p = place(tip, (this.firstElementChild as HTMLElement) || this, this.str('placement', 'top') as Placement);\n const d = { top: [0, 6], bottom: [0, -6], left: [6, 0], right: [-6, 0] }[p];\n this.motion(tip, this.reduced ? [{ opacity: 0 }, { opacity: 1 }] : [{ opacity: 0, transform: `translate(${d[0]}px, ${d[1]}px) scale(0.85)` }, { opacity: 1, transform: 'none' }], this.reduced ? { duration: 120 } : springEasing('stiff'));\n }\n\n hide(): void {\n clearTimeout(this._t);\n if (this._tip) this._tip.hidden = true;\n }\n },\n { id: 'tooltip', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { springEasing } from '../physics/spring';\nimport { adoptVariants } from './variants';\nimport { place, nextId, type Placement } from './position';\nimport css from './popover.css?raw';\n\n/**\n * `<usa-popover>` — a click-to-open popover: the first element child is the\n * trigger, `[data-popover]` is the content. Springs open from the trigger,\n * flips to stay on screen; Esc or an outside click closes and focus returns\n * to the trigger. `aria-expanded` / `aria-controls` on the trigger.\n * Attributes: `open`, `placement` (`bottom` default), `variant`. Events:\n * `usa:open`, `usa:close`. Reduced motion: fades only.\n */\nexport interface UsaPopoverElement extends UsaElement {\n open: boolean;\n toggle(force?: boolean): void;\n}\n\nexport function definePopover(tag = 'usa-popover'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) =>\n class UsaPopover extends Base {\n get open(): boolean {\n return this.flag('open');\n }\n set open(v: boolean) {\n this.toggle(v);\n }\n private parts(): [HTMLElement | null, HTMLElement | null] {\n return [this.firstElementChild as HTMLElement | null, this.querySelector<HTMLElement>(':scope > [data-popover]')];\n }\n\n mount(): void {\n const [trigger, panel] = this.parts();\n if (!trigger || !panel || trigger === panel) return;\n panel.id ||= nextId('usa-pop');\n panel.classList.add('usa-surface', 'usa-popover-panel');\n if (!panel.hasAttribute('role')) panel.setAttribute('role', 'dialog');\n panel.tabIndex = -1;\n trigger.setAttribute('aria-controls', panel.id);\n trigger.setAttribute('aria-haspopup', 'dialog');\n this.render(false);\n this.listen(trigger, 'click', () => this.toggle());\n this.listen(document, 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'Escape' && this.open) {\n this.toggle(false);\n trigger.focus();\n }\n });\n this.listen(document, 'pointerdown', (e: PointerEvent) => this.open && !this.contains(e.target as Node) && this.toggle(false));\n this.listen(window, 'resize', () => this.open && place(panel, trigger, this.str('placement', 'bottom') as Placement));\n }\n\n private render(animate: boolean): void {\n const [trigger, panel] = this.parts();\n if (!trigger || !panel) return;\n trigger.setAttribute('aria-expanded', String(this.open));\n panel.hidden = !this.open;\n if (!this.open) return;\n const p = place(panel, trigger, this.str('placement', 'bottom') as Placement);\n if (!animate) return;\n const origin = { top: '50% 100%', bottom: '50% 0', left: '100% 50%', right: '0 50%' }[p];\n panel.style.transformOrigin = origin;\n this.motion(panel, this.reduced ? [{ opacity: 0 }, { opacity: 1 }] : [{ opacity: 0, transform: 'scale(0.9)' }, { opacity: 1, transform: 'none' }], this.reduced ? { duration: 120 } : springEasing('wobbly'));\n panel.focus({ preventScroll: true });\n }\n\n toggle(force?: boolean): void {\n const next = force === undefined ? !this.open : force;\n if (next === this.open) return;\n this.setFlag('open', next);\n this.render(true);\n this.emit(next ? 'open' : 'close');\n }\n },\n { id: 'popover', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { springEasing } from '../physics/spring';\nimport { adoptVariants } from './variants';\nimport css from './badge.css?raw';\n\n/**\n * `<usa-badge>` — a count / dot badge on whatever it wraps; bumps with a\n * spring whenever the value changes and pulses with `pulse`.\n * Attributes: `value` (number or text; 0 / empty hides it unless\n * `show-zero`), `max` (99 → \"99+\"), `dot`, `pulse`, `label` (accessible\n * text, default \"{n} new\"), `variant`. Reduced motion: no bump or pulse.\n */\nexport interface UsaBadgeElement extends UsaElement {\n value: string;\n}\n\nexport function defineBadge(tag = 'usa-badge'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) =>\n class UsaBadge extends Base {\n static get observedAttributes(): string[] {\n return ['value', 'max', 'dot', 'label'];\n }\n private _el: HTMLElement | null = null;\n get value(): string {\n return this.str('value');\n }\n set value(v: string) {\n this.setAttribute('value', String(v));\n }\n\n mount(): void {\n if (!this._el || !this._el.isConnected) {\n this._el = document.createElement('span');\n this._el.className = 'usa-badge-count';\n this.append(this._el);\n }\n this.sync(false);\n }\n\n changed(name: string): void {\n this.sync(name === 'value');\n }\n\n private sync(bump: boolean): void {\n const el = this._el;\n if (!el) return;\n const raw = this.value;\n const n = Number(raw);\n const max = this.num('max', 99);\n const text = this.flag('dot') ? '' : raw !== '' && Number.isFinite(n) && n > max ? `${max}+` : raw;\n const empty = !this.flag('dot') && (raw === '' || (raw === '0' && !this.flag('show-zero')));\n el.textContent = text;\n el.hidden = empty;\n this.toggleAttribute('data-dot', this.flag('dot'));\n const label = this.str('label', raw ? `${raw} new` : 'New');\n el.setAttribute('aria-label', label.replace('{n}', raw));\n el.setAttribute('role', 'status');\n if (bump && !empty && !this.reduced) this.motion(el, [{ transform: 'scale(0.4)' }, { transform: 'scale(1)' }], springEasing('bouncy'));\n }\n },\n { id: 'badge', text: css }\n );\n}\n","import { defineElement, type UsaElement } from '../base';\nimport { adoptVariants } from './variants';\nimport css from './avatar-stack.css?raw';\n\n/**\n * `<usa-avatar-stack>` — overlapping avatars (its children: `<img>` or any\n * element) that spread apart with a spring on hover / focus; extra ones\n * collapse into a \"+N\" chip.\n * Attributes: `max` (visible avatars, 5), `size` (px, 36), `overlap` (0–1,\n * 0.35), `label` (group name), `variant`. Reduced motion: no spreading.\n */\nexport interface UsaAvatarStackElement extends UsaElement {}\n\nexport function defineAvatarStack(tag = 'usa-avatar-stack'): CustomElementConstructor | undefined {\n adoptVariants();\n return defineElement(\n tag,\n (Base) =>\n class UsaAvatarStack extends Base {\n static get observedAttributes(): string[] {\n return ['max', 'size', 'overlap'];\n }\n mount(): void {\n this.querySelector(':scope > .usa-avatar-more')?.remove();\n const kids = Array.from(this.children) as HTMLElement[];\n const max = Math.max(1, this.num('max', 5));\n this.style.setProperty('--usa-avatar-size', `${this.num('size', 36)}px`);\n this.style.setProperty('--usa-avatar-overlap', String(this.num('overlap', 0.35)));\n this.setAttribute('role', 'group');\n this.setAttribute('aria-label', this.str('label', `${kids.length} people`));\n kids.forEach((k, i) => {\n k.classList.add('usa-avatar');\n k.hidden = i >= max;\n k.style.setProperty('--i', String(i));\n k.style.zIndex = String(kids.length - i);\n });\n if (kids.length > max) {\n const more = document.createElement('span');\n more.className = 'usa-avatar usa-avatar-more';\n more.textContent = `+${kids.length - max}`;\n more.style.setProperty('--i', String(max));\n more.setAttribute('aria-label', `and ${kids.length - max} more`);\n this.append(more);\n }\n }\n },\n { id: 'avatar-stack', text: css }\n );\n}\n","/**\n * use-scroll-animate/components/ui — animated UI components + style variants (v2.6).\n * `<usa-tabs>`, `<usa-drawer>`, `<usa-bottom-sheet>`, `<usa-pull-refresh>`,\n * `<usa-fab>`, `<usa-navbar>`, `<usa-slider>`, `<usa-rating>`,\n * `<usa-tooltip>`, `<usa-popover>`, `<usa-badge>`, `<usa-avatar-stack>`,\n * and `variant=\"minimal | neon | glass | brutalist | fluent | material\"`\n * design tokens (`setVariant()`, `VARIANTS`).\n */\nimport { defineTabs, type UsaTabsElement } from './tabs';\nimport { defineDrawer, defineBottomSheet, type UsaDrawerElement, type UsaBottomSheetElement } from './sheet';\nimport { definePullRefresh, type UsaPullRefreshElement } from './pull-refresh';\nimport { defineFab, type UsaFabElement } from './fab';\nimport { defineNavbar, type UsaNavbarElement } from './navbar';\nimport { defineSlider, type UsaSliderElement } from './slider';\nimport { defineRating, type UsaRatingElement } from './rating';\nimport { defineTooltip, type UsaTooltipElement } from './tooltip';\nimport { definePopover, type UsaPopoverElement } from './popover';\nimport { defineBadge, type UsaBadgeElement } from './badge';\nimport { defineAvatarStack, type UsaAvatarStackElement } from './avatar-stack';\n\nexport { defineTabs, defineDrawer, defineBottomSheet, definePullRefresh, defineFab, defineNavbar, defineSlider, defineRating, defineTooltip, definePopover, defineBadge, defineAvatarStack };\nexport { VARIANTS, setVariant, adoptVariants } from './variants';\nexport type { Variant } from './variants';\nexport type { Placement } from './position';\nexport type {\n UsaTabsElement,\n UsaDrawerElement,\n UsaBottomSheetElement,\n UsaPullRefreshElement,\n UsaFabElement,\n UsaNavbarElement,\n UsaSliderElement,\n UsaRatingElement,\n UsaTooltipElement,\n UsaPopoverElement,\n UsaBadgeElement,\n UsaAvatarStackElement,\n};\nexport { configureComponents, prefersReducedMotion } from '../base';\nexport type { ComponentsConfig, UsaElement } from '../base';\n\n/** Register every component of this category under its default tag. */\nexport function defineUiComponents(): void {\n defineTabs();\n defineDrawer();\n defineBottomSheet();\n definePullRefresh();\n defineFab();\n defineNavbar();\n defineSlider();\n defineRating();\n defineTooltip();\n definePopover();\n defineBadge();\n defineAvatarStack();\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'usa-tabs': UsaTabsElement;\n 'usa-drawer': UsaDrawerElement;\n 'usa-bottom-sheet': UsaBottomSheetElement;\n 'usa-pull-refresh': UsaPullRefreshElement;\n 'usa-fab': UsaFabElement;\n 'usa-navbar': UsaNavbarElement;\n 'usa-slider': UsaSliderElement;\n 'usa-rating': UsaRatingElement;\n 'usa-tooltip': UsaTooltipElement;\n 'usa-popover': UsaPopoverElement;\n 'usa-badge': UsaBadgeElement;\n 'usa-avatar-stack': UsaAvatarStackElement;\n }\n}\n"],"names":["css"],"mappings":"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"}
|
package/dist/components.cjs
CHANGED
|
@@ -9,8 +9,9 @@ var components_transitions = require('./components/transitions.cjs');
|
|
|
9
9
|
var components_physics = require('./components/physics.cjs');
|
|
10
10
|
var components_cards = require('./components/cards.cjs');
|
|
11
11
|
var components_click = require('./components/click.cjs');
|
|
12
|
-
var
|
|
13
|
-
var base = require('./chunks/base-
|
|
12
|
+
var components_ui = require('./components/ui.cjs');
|
|
13
|
+
var base = require('./chunks/base-5DFCAnvH.cjs');
|
|
14
|
+
var spring = require('./chunks/spring-Bi4qY0pL.cjs');
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* use-scroll-animate/components
|
|
@@ -43,6 +44,7 @@ const COMPONENT_CATEGORIES = {
|
|
|
43
44
|
physics: ['usa-spring', 'usa-draggable', 'usa-overscroll'],
|
|
44
45
|
cards: ['usa-card', 'usa-card-stack', 'usa-sticky-stack', 'usa-carousel-3d'],
|
|
45
46
|
click: ['usa-click', 'usa-button', 'usa-icon-morph', 'usa-like', 'usa-hold', 'usa-double-tap', 'usa-checkbox'],
|
|
47
|
+
ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-rating', 'usa-tooltip', 'usa-popover', 'usa-badge', 'usa-avatar-stack'],
|
|
46
48
|
};
|
|
47
49
|
const BY_CATEGORY = {
|
|
48
50
|
reveal: components_reveal.defineRevealComponents,
|
|
@@ -54,12 +56,15 @@ const BY_CATEGORY = {
|
|
|
54
56
|
physics: components_physics.definePhysicsComponents,
|
|
55
57
|
cards: components_cards.defineCardComponents,
|
|
56
58
|
click: components_click.defineClickComponents,
|
|
59
|
+
ui: components_ui.defineUiComponents,
|
|
57
60
|
};
|
|
58
61
|
/**
|
|
59
62
|
* Register every `<usa-*>` component (or only the given categories).
|
|
60
63
|
* Safe to call more than once and on the server (no-op without DOM).
|
|
61
64
|
*/
|
|
62
65
|
function defineComponents(categories) {
|
|
66
|
+
if (base.canDefine())
|
|
67
|
+
components_ui.adoptVariants();
|
|
63
68
|
(categories || Object.keys(BY_CATEGORY)).forEach((c) => BY_CATEGORY[c]?.());
|
|
64
69
|
}
|
|
65
70
|
|
|
@@ -137,6 +142,24 @@ exports.defineLike = components_click.defineLike;
|
|
|
137
142
|
exports.haptic = components_click.haptic;
|
|
138
143
|
exports.morphPath = components_click.morphPath;
|
|
139
144
|
exports.shake = components_click.shake;
|
|
145
|
+
exports.VARIANTS = components_ui.VARIANTS;
|
|
146
|
+
exports.adoptVariants = components_ui.adoptVariants;
|
|
147
|
+
exports.defineAvatarStack = components_ui.defineAvatarStack;
|
|
148
|
+
exports.defineBadge = components_ui.defineBadge;
|
|
149
|
+
exports.defineBottomSheet = components_ui.defineBottomSheet;
|
|
150
|
+
exports.defineDrawer = components_ui.defineDrawer;
|
|
151
|
+
exports.defineFab = components_ui.defineFab;
|
|
152
|
+
exports.defineNavbar = components_ui.defineNavbar;
|
|
153
|
+
exports.definePopover = components_ui.definePopover;
|
|
154
|
+
exports.definePullRefresh = components_ui.definePullRefresh;
|
|
155
|
+
exports.defineRating = components_ui.defineRating;
|
|
156
|
+
exports.defineSlider = components_ui.defineSlider;
|
|
157
|
+
exports.defineTabs = components_ui.defineTabs;
|
|
158
|
+
exports.defineTooltip = components_ui.defineTooltip;
|
|
159
|
+
exports.defineUiComponents = components_ui.defineUiComponents;
|
|
160
|
+
exports.setVariant = components_ui.setVariant;
|
|
161
|
+
exports.configureComponents = base.configureComponents;
|
|
162
|
+
exports.prefersReducedMotion = base.prefersReducedMotion;
|
|
140
163
|
exports.SPRING_PRESETS = spring.SPRING_PRESETS;
|
|
141
164
|
exports.createSpring = spring.createSpring;
|
|
142
165
|
exports.linearEasing = spring.linearEasing;
|
|
@@ -149,8 +172,6 @@ exports.springEasing = spring.springEasing;
|
|
|
149
172
|
exports.springSamples = spring.springSamples;
|
|
150
173
|
exports.stepSpring = spring.stepSpring;
|
|
151
174
|
exports.supportsLinearEasing = spring.supportsLinearEasing;
|
|
152
|
-
exports.configureComponents = base.configureComponents;
|
|
153
|
-
exports.prefersReducedMotion = base.prefersReducedMotion;
|
|
154
175
|
exports.COMPONENT_CATEGORIES = COMPONENT_CATEGORIES;
|
|
155
176
|
exports.defineComponents = defineComponents;
|
|
156
177
|
//# sourceMappingURL=components.cjs.map
|
package/dist/components.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.cjs","sources":["../src/components/index.ts"],"sourcesContent":["/**\n * use-scroll-animate/components\n *\n * Framework-agnostic, dependency-free animated UI components built on\n * Custom Elements + CSS + the Web Animations API. They run in any browser\n * and in Windows desktop apps that render with a web view: Electron, Tauri\n * (WebView2), WinUI 3 / WPF / WinForms with WebView2, and installed PWAs.\n *\n * ```js\n * import { defineComponents } from 'use-scroll-animate/components';\n * defineComponents(); // registers every <usa-*> element\n * // or only what you use (tree-shakable):\n * import { defineTypewriter } from 'use-scroll-animate/components/text';\n * ```\n *\n * Importing has no side effects and is SSR-safe; nothing is registered\n * until a `define*()` function runs in a browser.\n *\n * @license MIT\n */\nimport { defineRevealComponents } from './reveal/index';\nimport { defineTextComponents } from './text/index';\nimport { defineInteractionComponents } from './interaction/index';\nimport { defineFeedbackComponents } from './feedback/index';\nimport { defineBackgroundComponents } from './background/index';\nimport { defineTransitionComponents } from './transitions/index';\nimport { definePhysicsComponents } from './physics/index';\nimport { defineCardComponents } from './cards/index';\nimport { defineClickComponents } from './click/index';\n\nexport * from './reveal/index';\nexport * from './text/index';\nexport * from './interaction/index';\nexport * from './feedback/index';\nexport * from './background/index';\nexport * from './transitions/index';\nexport * from './physics/index';\nexport * from './cards/index';\nexport * from './click/index';\n\n/** The component categories and their default tags. */\nexport const COMPONENT_CATEGORIES = {\n reveal: ['usa-reveal', 'usa-stagger', 'usa-scroll-progress', 'usa-scrolly'],\n text: ['usa-typewriter', 'usa-split-text', 'usa-scramble', 'usa-counter', 'usa-shimmer-text', 'usa-text-rotate'],\n interaction: ['usa-ripple', 'usa-magnetic', 'usa-tilt', 'usa-spotlight', 'usa-press', 'usa-toggle'],\n feedback: ['usa-spinner', 'usa-skeleton', 'usa-progress', 'usa-toaster', 'usa-check'],\n background: ['usa-aurora', 'usa-particles', 'usa-grain', 'usa-marquee', 'usa-acrylic'],\n transitions: ['usa-dialog', 'usa-accordion', 'usa-flip-list', 'usa-view-switch'],\n physics: ['usa-spring', 'usa-draggable', 'usa-overscroll'],\n cards: ['usa-card', 'usa-card-stack', 'usa-sticky-stack', 'usa-carousel-3d'],\n click: ['usa-click', 'usa-button', 'usa-icon-morph', 'usa-like', 'usa-hold', 'usa-double-tap', 'usa-checkbox'],\n} as const;\n\nexport type ComponentCategory = keyof typeof COMPONENT_CATEGORIES;\n\nconst BY_CATEGORY: Record<ComponentCategory, () => void> = {\n reveal: defineRevealComponents,\n text: defineTextComponents,\n interaction: defineInteractionComponents,\n feedback: defineFeedbackComponents,\n background: defineBackgroundComponents,\n transitions: defineTransitionComponents,\n physics: definePhysicsComponents,\n cards: defineCardComponents,\n click: defineClickComponents,\n};\n\n/**\n * Register every `<usa-*>` component (or only the given categories).\n * Safe to call more than once and on the server (no-op without DOM).\n */\nexport function defineComponents(categories?: ComponentCategory[]): void {\n (categories || (Object.keys(BY_CATEGORY) as ComponentCategory[])).forEach((c) => BY_CATEGORY[c]?.());\n}\n"],"names":["defineRevealComponents","defineTextComponents","defineInteractionComponents","defineFeedbackComponents","defineBackgroundComponents","defineTransitionComponents","definePhysicsComponents","defineCardComponents","defineClickComponents"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.cjs","sources":["../src/components/index.ts"],"sourcesContent":["/**\n * use-scroll-animate/components\n *\n * Framework-agnostic, dependency-free animated UI components built on\n * Custom Elements + CSS + the Web Animations API. They run in any browser\n * and in Windows desktop apps that render with a web view: Electron, Tauri\n * (WebView2), WinUI 3 / WPF / WinForms with WebView2, and installed PWAs.\n *\n * ```js\n * import { defineComponents } from 'use-scroll-animate/components';\n * defineComponents(); // registers every <usa-*> element\n * // or only what you use (tree-shakable):\n * import { defineTypewriter } from 'use-scroll-animate/components/text';\n * ```\n *\n * Importing has no side effects and is SSR-safe; nothing is registered\n * until a `define*()` function runs in a browser.\n *\n * @license MIT\n */\nimport { defineRevealComponents } from './reveal/index';\nimport { defineTextComponents } from './text/index';\nimport { defineInteractionComponents } from './interaction/index';\nimport { defineFeedbackComponents } from './feedback/index';\nimport { defineBackgroundComponents } from './background/index';\nimport { defineTransitionComponents } from './transitions/index';\nimport { definePhysicsComponents } from './physics/index';\nimport { defineCardComponents } from './cards/index';\nimport { defineClickComponents } from './click/index';\nimport { defineUiComponents } from './ui/index';\nimport { adoptVariants } from './ui/variants';\nimport { canDefine } from './base';\n\nexport * from './reveal/index';\nexport * from './text/index';\nexport * from './interaction/index';\nexport * from './feedback/index';\nexport * from './background/index';\nexport * from './transitions/index';\nexport * from './physics/index';\nexport * from './cards/index';\nexport * from './click/index';\nexport * from './ui/index';\n\n/** The component categories and their default tags. */\nexport const COMPONENT_CATEGORIES = {\n reveal: ['usa-reveal', 'usa-stagger', 'usa-scroll-progress', 'usa-scrolly'],\n text: ['usa-typewriter', 'usa-split-text', 'usa-scramble', 'usa-counter', 'usa-shimmer-text', 'usa-text-rotate'],\n interaction: ['usa-ripple', 'usa-magnetic', 'usa-tilt', 'usa-spotlight', 'usa-press', 'usa-toggle'],\n feedback: ['usa-spinner', 'usa-skeleton', 'usa-progress', 'usa-toaster', 'usa-check'],\n background: ['usa-aurora', 'usa-particles', 'usa-grain', 'usa-marquee', 'usa-acrylic'],\n transitions: ['usa-dialog', 'usa-accordion', 'usa-flip-list', 'usa-view-switch'],\n physics: ['usa-spring', 'usa-draggable', 'usa-overscroll'],\n cards: ['usa-card', 'usa-card-stack', 'usa-sticky-stack', 'usa-carousel-3d'],\n click: ['usa-click', 'usa-button', 'usa-icon-morph', 'usa-like', 'usa-hold', 'usa-double-tap', 'usa-checkbox'],\n ui: ['usa-tabs', 'usa-drawer', 'usa-bottom-sheet', 'usa-pull-refresh', 'usa-fab', 'usa-navbar', 'usa-slider', 'usa-rating', 'usa-tooltip', 'usa-popover', 'usa-badge', 'usa-avatar-stack'],\n} as const;\n\nexport type ComponentCategory = keyof typeof COMPONENT_CATEGORIES;\n\nconst BY_CATEGORY: Record<ComponentCategory, () => void> = {\n reveal: defineRevealComponents,\n text: defineTextComponents,\n interaction: defineInteractionComponents,\n feedback: defineFeedbackComponents,\n background: defineBackgroundComponents,\n transitions: defineTransitionComponents,\n physics: definePhysicsComponents,\n cards: defineCardComponents,\n click: defineClickComponents,\n ui: defineUiComponents,\n};\n\n/**\n * Register every `<usa-*>` component (or only the given categories).\n * Safe to call more than once and on the server (no-op without DOM).\n */\nexport function defineComponents(categories?: ComponentCategory[]): void {\n if (canDefine()) adoptVariants();\n (categories || (Object.keys(BY_CATEGORY) as ComponentCategory[])).forEach((c) => BY_CATEGORY[c]?.());\n}\n"],"names":["defineRevealComponents","defineTextComponents","defineInteractionComponents","defineFeedbackComponents","defineBackgroundComponents","defineTransitionComponents","definePhysicsComponents","defineCardComponents","defineClickComponents","defineUiComponents","canDefine","adoptVariants"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;AAmBG;AAyBH;AACO,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,CAAC;AAC3E,IAAA,IAAI,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAChH,IAAA,WAAW,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC;IACnG,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC;IACrF,UAAU,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC;IACtF,WAAW,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,CAAC;AAChF,IAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC;IAC1D,KAAK,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAC5E,IAAA,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC;IAC9G,EAAE,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,CAAC;;AAK5L,MAAM,WAAW,GAA0C;AACzD,IAAA,MAAM,EAAEA,wCAAsB;AAC9B,IAAA,IAAI,EAAEC,oCAAoB;AAC1B,IAAA,WAAW,EAAEC,kDAA2B;AACxC,IAAA,QAAQ,EAAEC,4CAAwB;AAClC,IAAA,UAAU,EAAEC,gDAA0B;AACtC,IAAA,WAAW,EAAEC,iDAA0B;AACvC,IAAA,OAAO,EAAEC,0CAAuB;AAChC,IAAA,KAAK,EAAEC,qCAAoB;AAC3B,IAAA,KAAK,EAAEC,sCAAqB;AAC5B,IAAA,EAAE,EAAEC,gCAAkB;CACvB;AAED;;;AAGG;AACG,SAAU,gBAAgB,CAAC,UAAgC,EAAA;AAC/D,IAAA,IAAIC,cAAS,EAAE;AAAE,QAAAC,2BAAa,EAAE;IAChC,CAAC,UAAU,IAAK,MAAM,CAAC,IAAI,CAAC,WAAW,CAAyB,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/components.css
CHANGED
|
@@ -13,9 +13,9 @@ usa-press{display:inline-block;touch-action:manipulation;-webkit-tap-highlight-c
|
|
|
13
13
|
usa-ripple{position:relative;display:inline-block;overflow:hidden;isolation:isolate;border-radius:inherit;-webkit-tap-highlight-color:transparent}usa-ripple[block]{display:block}usa-ripple .usa-ripple-wave{position:absolute;border-radius:50%;pointer-events:none;transform:scale(0);z-index:-1;will-change:transform,opacity}
|
|
14
14
|
usa-spotlight{display:block;--usa-spot-size:160px;--usa-spot-color:rgb(255 255 255 / 0.55);--usa-spot-border:1px}usa-spotlight .usa-spotlight-item{position:relative;isolation:isolate}usa-spotlight .usa-spotlight-item::before,usa-spotlight .usa-spotlight-item::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity 0.25s ease}usa-spotlight .usa-spotlight-item::before{padding:var(--usa-spot-border);background:radial-gradient(var(--usa-spot-size) circle at var(--usa-spot-x,-999px) var(--usa-spot-y,-999px),var(--usa-spot-color),transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}usa-spotlight .usa-spotlight-item::after{z-index:-1;background:radial-gradient(calc(var(--usa-spot-size) * 0.9) circle at var(--usa-spot-x,-999px) var(--usa-spot-y,-999px),color-mix(in srgb,var(--usa-spot-color) 30%,transparent),transparent 70%)}usa-spotlight[data-lit] .usa-spotlight-item::before{opacity:1}usa-spotlight[data-lit] .usa-spotlight-item:hover::after{opacity:1}usa-spotlight[no-fill] .usa-spotlight-item::after{display:none}
|
|
15
15
|
usa-tilt{display:block;position:relative;transform-style:preserve-3d;transition:transform 0.5s cubic-bezier(0.22,1,0.36,1);will-change:transform}usa-tilt[data-active]{transition-duration:0.12s}usa-tilt .usa-tilt-glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity 0.3s ease;background:radial-gradient(circle at var(--usa-glare-x,50%) var(--usa-glare-y,50%),rgb(255 255 255 / 0.35),transparent 55%);mix-blend-mode:soft-light}usa-tilt[data-active] .usa-tilt-glare{opacity:1}
|
|
16
|
-
usa-toggle{--usa-toggle-w:40px;--usa-toggle-h:20px;--usa-toggle-on
|
|
16
|
+
usa-toggle{--usa-toggle-w:40px;--usa-toggle-h:20px;--usa-toggle-on:var(--usa-accent,#7c5cff);--usa-toggle-off:transparent;--usa-toggle-line:currentColor;display:inline-flex;align-items:center;gap:0.6em;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle}usa-toggle[disabled]{cursor:not-allowed;opacity:0.45}usa-toggle .usa-toggle-track{position:relative;flex:none;width:var(--usa-toggle-w);height:var(--usa-toggle-h);border-radius:999px;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--usa-toggle-line) 60%,transparent);background:var(--usa-toggle-off);transition:background-color 0.2s ease,border-color 0.2s ease}usa-toggle .usa-toggle-knob{position:absolute;top:50%;left:3px;width:calc(var(--usa-toggle-h) - 8px);height:calc(var(--usa-toggle-h) - 8px);margin-top:calc((var(--usa-toggle-h) - 8px) / -2);border-radius:999px;background:color-mix(in srgb,var(--usa-toggle-line) 75%,transparent);transform-origin:left center;transition:transform 0.28s cubic-bezier(0.34,1.4,0.64,1),background-color 0.2s ease}usa-toggle:hover .usa-toggle-knob{transform:scale(1.15)}usa-toggle[data-pressed] .usa-toggle-knob{transform:scaleX(1.45)}usa-toggle[checked] .usa-toggle-track{background:var(--usa-toggle-on);border-color:var(--usa-toggle-on)}usa-toggle[checked] .usa-toggle-knob{background:#fff;transform:translateX(calc(var(--usa-toggle-w) - var(--usa-toggle-h)));transform-origin:right center}usa-toggle[checked]:hover .usa-toggle-knob{transform:translateX(calc(var(--usa-toggle-w) - var(--usa-toggle-h))) scale(1.15)}usa-toggle[checked][data-pressed] .usa-toggle-knob{transform:translateX(calc(var(--usa-toggle-w) - var(--usa-toggle-h) - 4px)) scaleX(1.45)}usa-toggle:focus-visible{outline:none}usa-toggle:focus-visible .usa-toggle-track{outline:2px solid var(--usa-toggle-on);outline-offset:2px}
|
|
17
17
|
usa-check{--usa-check-size:56px;--usa-check-color:#0f9d58;display:inline-block;width:var(--usa-check-size);height:var(--usa-check-size);vertical-align:middle}usa-check[data-variant="error"]{--usa-check-color:#d13438}usa-check[data-variant="warning"]{--usa-check-color:#c19c00}usa-check svg{width:100%;height:100%;overflow:visible}usa-check circle,usa-check path{fill:none;stroke:var(--usa-check-color);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1}usa-check[data-state="idle"] circle,usa-check[data-state="idle"] path{stroke-dashoffset:1}usa-check[data-state="done"] circle,usa-check[data-state="done"] path{stroke-dashoffset:0}
|
|
18
|
-
usa-progress{--usa-progress-color
|
|
18
|
+
usa-progress{--usa-progress-color:var(--usa-accent,#7c5cff);--usa-progress-track:color-mix(in srgb,currentColor 14%,transparent);position:relative;display:block;height:var(--usa-progress-height,4px);border-radius:999px;overflow:hidden;background:var(--usa-progress-track);contain:paint}usa-progress .usa-progress-bar{position:absolute;inset:0;border-radius:inherit;background:var(--usa-progress-color);transform:scaleX(0);transform-origin:0 50%;transition:transform 0.45s cubic-bezier(0.22,1,0.36,1)}usa-progress .usa-progress-bar2{display:none}usa-progress[data-indeterminate] .usa-progress-bar{right:auto;width:40%;transform:translateX(-100%);transition:none;animation:usa-indet 2s cubic-bezier(0.4,0,0.6,1) infinite}usa-progress[data-indeterminate] .usa-progress-bar2{display:block;width:60%;animation:usa-indet2 2s cubic-bezier(0.4,0,0.6,1) 1s infinite}usa-progress[state="paused"]{--usa-progress-color:#c19c00}usa-progress[state="error"]{--usa-progress-color:#d13438}usa-progress[state="paused"] .usa-progress-bar,usa-progress[state="error"] .usa-progress-bar{animation-play-state:paused}@keyframes usa-indet{from{transform:translateX(-100%)}to{transform:translateX(250%)}}@keyframes usa-indet2{from{transform:translateX(-100%)}to{transform:translateX(167%)}}@media (prefers-reduced-motion:reduce){usa-progress .usa-progress-bar{transition:none}usa-progress[data-indeterminate] .usa-progress-bar{width:100%;transform:none;animation:usa-calm-bar 2.4s ease-in-out infinite}usa-progress[data-indeterminate] .usa-progress-bar2{display:none}}@keyframes usa-calm-bar{0%,100%{opacity:1}50%{opacity:0.4}}
|
|
19
19
|
usa-skeleton{display:block;--usa-skeleton-base:color-mix(in srgb,currentColor 10%,transparent);--usa-skeleton-shine:color-mix(in srgb,currentColor 9%,transparent);--usa-skeleton-radius:8px}usa-skeleton[loading]>:not(.usa-skeleton-ph){display:none !important}usa-skeleton .usa-skeleton-ph{display:flex;gap:14px;align-items:flex-start}usa-skeleton .usa-bone-lines{flex:1;display:grid;gap:10px;min-width:0}usa-skeleton .usa-bone{position:relative;display:block;overflow:hidden;height:0.9em;border-radius:var(--usa-skeleton-radius);background:var(--usa-skeleton-base)}usa-skeleton .usa-bone-last{width:62%}usa-skeleton .usa-bone-block{height:120px}usa-skeleton .usa-bone-circle{border-radius:50%;flex:none}usa-skeleton .usa-bone-avatar{width:44px;height:44px}usa-skeleton .usa-bone::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--usa-skeleton-shine),transparent);animation:usa-skeleton 1.5s ease-in-out infinite}@keyframes usa-skeleton{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){usa-skeleton .usa-bone::after{animation:none}}
|
|
20
20
|
usa-spinner{--usa-spinner-size:32px;--usa-spinner-color:currentColor;position:relative;display:inline-block;vertical-align:middle;flex:none;width:var(--usa-spinner-size);height:var(--usa-spinner-size);color:var(--usa-spinner-color)}usa-spinner i{position:absolute;display:block}usa-spinner[paused] *,usa-spinner[paused] *::after{animation-play-state:paused !important}usa-spinner svg{width:100%;height:100%;animation:usa-spin 2s linear infinite;overflow:visible}usa-spinner svg circle{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-dasharray:0.5 100;stroke-dashoffset:0;animation:usa-ring-arc 1.6s ease-in-out infinite}@keyframes usa-spin{to{transform:rotate(360deg)}}@keyframes usa-ring-arc{0%{stroke-dasharray:0.5 100;stroke-dashoffset:0}50%{stroke-dasharray:62 100;stroke-dashoffset:-20}100%{stroke-dasharray:0.5 100;stroke-dashoffset:-99}}usa-spinner[data-variant="windows"] i{inset:0;opacity:0;animation:usa-orbit 5.5s infinite}usa-spinner[data-variant="windows"] i::after{content:"";position:absolute;left:50%;top:0;width:12%;height:12%;margin-left:-6%;border-radius:50%;background:currentColor}usa-spinner[data-variant="windows"] i:nth-child(2){animation-delay:240ms;--n:1}usa-spinner[data-variant="windows"] i:nth-child(3){animation-delay:480ms;--n:2}usa-spinner[data-variant="windows"] i:nth-child(4){animation-delay:720ms;--n:3}usa-spinner[data-variant="windows"] i:nth-child(5){animation-delay:960ms;--n:4}@keyframes usa-orbit{0%{transform:rotate(225deg);opacity:1;animation-timing-function:ease-out}7%{transform:rotate(345deg);animation-timing-function:linear}30%{transform:rotate(455deg);animation-timing-function:ease-in-out}39%{transform:rotate(690deg);animation-timing-function:linear}70%{transform:rotate(815deg);opacity:1;animation-timing-function:ease-out}75%{transform:rotate(945deg);animation-timing-function:ease-out}76%,100%{transform:rotate(945deg);opacity:0}}usa-spinner[data-variant="ring"] i{inset:0;border-radius:50%;border:calc(var(--usa-spinner-size) / 9) solid color-mix(in srgb,currentColor 20%,transparent);border-top-color:currentColor;animation:usa-spin 0.8s linear infinite}usa-spinner[data-variant="dots"]{display:inline-flex;align-items:center;justify-content:space-between;height:calc(var(--usa-spinner-size) / 2.5)}usa-spinner[data-variant="dots"] i{position:static;width:22%;aspect-ratio:1;border-radius:50%;background:currentColor;animation:usa-dot 1.2s ease-in-out infinite}usa-spinner[data-variant="dots"] i:nth-child(2){animation-delay:0.15s}usa-spinner[data-variant="dots"] i:nth-child(3){animation-delay:0.3s}@keyframes usa-dot{0%,60%,100%{transform:translateY(0);opacity:0.35}30%{transform:translateY(-70%);opacity:1}}usa-spinner[data-variant="pulse"] i{inset:0;border-radius:50%;background:currentColor;opacity:0;animation:usa-pulse 1.6s cubic-bezier(0.22,1,0.36,1) infinite}usa-spinner[data-variant="pulse"] i:nth-child(2){animation-delay:0.8s}@keyframes usa-pulse{from{transform:scale(0.1);opacity:0.8}to{transform:scale(1);opacity:0}}usa-spinner[data-variant="bars"]{display:inline-flex;align-items:center;justify-content:space-between}usa-spinner[data-variant="bars"] i{position:static;width:16%;height:100%;border-radius:2px;background:currentColor;transform:scaleY(0.35);animation:usa-bar 1s ease-in-out infinite}usa-spinner[data-variant="bars"] i:nth-child(2){animation-delay:0.12s}usa-spinner[data-variant="bars"] i:nth-child(3){animation-delay:0.24s}usa-spinner[data-variant="bars"] i:nth-child(4){animation-delay:0.36s}@keyframes usa-bar{0%,100%{transform:scaleY(0.35)}40%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){usa-spinner svg,usa-spinner i,usa-spinner i::after{animation:usa-calm 2.4s ease-in-out infinite !important}usa-spinner[data-variant="windows"] i{transform:rotate(calc(var(--n,0) * 72deg))}usa-spinner svg circle{animation:none;stroke-dasharray:30 100}}@keyframes usa-calm{0%,100%{opacity:1}50%{opacity:0.4}}
|
|
21
21
|
usa-toaster{position:fixed;z-index:2147483000;right:16px;bottom:16px;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 32px));pointer-events:none}usa-toaster[position^="top"]{bottom:auto;top:16px}usa-toaster[position$="left"]{right:auto;left:16px}usa-toaster[position$="center"]{right:auto;left:50%;translate:-50% 0}usa-toaster .usa-toast{--usa-toast-accent:#0078d4;pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:12px 12px 12px 14px;border-radius:10px;background:var(--usa-toast-bg,color-mix(in srgb,Canvas 92%,transparent));color:var(--usa-toast-fg,CanvasText);border:1px solid color-mix(in srgb,CanvasText 12%,transparent);border-left:3px solid var(--usa-toast-accent);box-shadow:0 8px 28px -8px rgb(0 0 0 / 0.35);font:inherit;font-size:14px;line-height:1.4;-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4)}usa-toaster .usa-toast[data-type="success"]{--usa-toast-accent:#0f9d58}usa-toaster .usa-toast[data-type="warning"]{--usa-toast-accent:#c19c00}usa-toaster .usa-toast[data-type="error"]{--usa-toast-accent:#d13438}usa-toaster .usa-toast-icon{flex:none;width:20px;height:20px;fill:none;stroke:var(--usa-toast-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}usa-toaster .usa-toast-msg{flex:1;min-width:0;padding-top:1px;overflow-wrap:anywhere}usa-toaster .usa-toast-action,usa-toaster .usa-toast-close{flex:none;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;border-radius:6px;padding:2px 6px}usa-toaster .usa-toast-action{color:var(--usa-toast-accent);font-weight:600}usa-toaster .usa-toast-close{opacity:0.6;line-height:0;padding:3px}usa-toaster .usa-toast-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}usa-toaster .usa-toast-action:hover,usa-toaster .usa-toast-close:hover{background:color-mix(in srgb,currentColor 10%,transparent);opacity:1}
|
|
@@ -42,3 +42,15 @@ usa-double-tap{position:relative;display:block;touch-action:manipulation;-webkit
|
|
|
42
42
|
usa-hold{--usa-hold-color:#e5484d;position:relative;display:inline-flex;align-items:center;gap:0.5em;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}usa-hold .usa-hold-ring{width:1.6em;height:1.6em;transform:rotate(-90deg);flex:none}usa-hold .usa-hold-ring circle{fill:none;stroke-width:3.5;stroke-linecap:round}usa-hold .usa-hold-ring circle:first-child{stroke:color-mix(in srgb,currentColor 18%,transparent)}usa-hold .usa-hold-ring circle:last-child{stroke:var(--usa-hold-color);stroke-dasharray:100;stroke-dashoffset:100}usa-hold[data-holding]{transform:scale(calc(1 - var(--usa-hold,0) * 0.05))}usa-hold[data-done] .usa-hold-ring{animation:usa-hold-pop 0.4s cubic-bezier(0.34,1.56,0.64,1)}@keyframes usa-hold-pop{50%{transform:rotate(-90deg) scale(1.3)}}usa-hold[disabled]{opacity:0.5;cursor:not-allowed}usa-hold:focus-visible{outline:2px solid var(--usa-hold-color);outline-offset:3px;border-radius:10px}@media (prefers-reduced-motion:reduce){usa-hold[data-holding]{transform:none}usa-hold[data-done] .usa-hold-ring{animation:none}}
|
|
43
43
|
usa-icon-morph{display:inline-grid;place-items:center;line-height:0;color:inherit;-webkit-tap-highlight-color:transparent;vertical-align:middle}usa-icon-morph svg{fill:currentColor;overflow:visible}usa-icon-morph[toggle]{cursor:pointer;border-radius:8px}usa-icon-morph[toggle]:focus-visible{outline:2px solid var(--usa-accent,#7c5cff);outline-offset:3px}
|
|
44
44
|
usa-like{--usa-like-color:#f43f5e;display:inline-flex;align-items:center;gap:0.35em;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle}usa-like .usa-like-heart{fill:transparent;stroke:currentColor;stroke-width:1.8;transition:fill 0.2s ease,stroke 0.2s ease;overflow:visible}usa-like[liked] .usa-like-heart{fill:var(--usa-like-color);stroke:var(--usa-like-color)}usa-like .usa-like-count{font-variant-numeric:tabular-nums}usa-like[disabled]{opacity:0.5;cursor:not-allowed}usa-like:focus-visible{outline:2px solid var(--usa-like-color);outline-offset:3px;border-radius:8px}
|
|
45
|
+
usa-avatar-stack{--usa-avatar-size:36px;--usa-avatar-overlap:0.35;display:inline-flex;align-items:center;padding-inline-start:calc(var(--usa-avatar-size) * var(--usa-avatar-overlap))}usa-avatar-stack .usa-avatar{width:var(--usa-avatar-size);height:var(--usa-avatar-size);border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 2px var(--usa-avatar-ring,Canvas);margin-inline-start:calc(var(--usa-avatar-size) * var(--usa-avatar-overlap) * -1);transition:margin 0.45s cubic-bezier(0.34,1.56,0.64,1),transform 0.3s cubic-bezier(0.34,1.56,0.64,1);display:grid;place-items:center;font:700 12px/1 system-ui,sans-serif;background:color-mix(in srgb,currentColor 14%,transparent)}usa-avatar-stack .usa-avatar[hidden]{display:none}usa-avatar-stack:hover .usa-avatar,usa-avatar-stack:focus-within .usa-avatar{margin-inline-start:4px}usa-avatar-stack .usa-avatar:hover{transform:translateY(-4px) scale(1.08)}@media (prefers-reduced-motion:reduce){usa-avatar-stack .usa-avatar{transition:none}usa-avatar-stack:hover .usa-avatar,usa-avatar-stack:focus-within .usa-avatar{margin-inline-start:calc(var(--usa-avatar-size) * var(--usa-avatar-overlap) * -1)}usa-avatar-stack .usa-avatar:hover{transform:none}}
|
|
46
|
+
usa-badge{position:relative;display:inline-block}usa-badge .usa-badge-count{position:absolute;top:0;right:0;transform-origin:50% 50%;translate:45% -45%;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:9px;display:grid;place-items:center;font:700 11px/1 system-ui,sans-serif;color:var(--usa-accent-text,#fff);background:var(--usa-badge-color,#e5484d);box-shadow:0 0 0 2px var(--usa-badge-ring,Canvas);pointer-events:none}usa-badge[data-dot] .usa-badge-count{min-width:10px;width:10px;height:10px;padding:0}usa-badge .usa-badge-count[hidden]{display:none}usa-badge[pulse] .usa-badge-count::after{content:"";position:absolute;inset:0;border-radius:inherit;background:inherit;animation:usa-badge-pulse 1.6s ease-out infinite;z-index:-1}@keyframes usa-badge-pulse{from{transform:scale(1);opacity:0.6}to{transform:scale(2.4);opacity:0}}@media (prefers-reduced-motion:reduce){usa-badge[pulse] .usa-badge-count::after{animation:none}}
|
|
47
|
+
usa-fab{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:900;display:grid;place-items:center}usa-fab[position="bottom-left"]{right:auto;left:max(20px,env(safe-area-inset-left))}usa-fab[position="inline"]{position:relative;right:auto;bottom:auto;display:inline-grid}usa-fab>*{grid-area:1 / 1}usa-fab .usa-fab-main{position:relative;z-index:1;width:56px;height:56px;border-radius:min(var(--usa-radius,14px) * 1.2,28px);border:0;display:grid;place-items:center;font-size:24px;cursor:pointer;background:var(--usa-accent,#7c5cff);color:var(--usa-accent-text,#fff);box-shadow:var(--usa-shadow);transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1)}usa-fab[open] .usa-fab-main{transform:rotate(45deg)}usa-fab .usa-fab-action{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;opacity:0;transform:scale(0.4);will-change:transform,opacity}usa-fab .usa-fab-main:focus-visible,usa-fab .usa-fab-action:focus-visible{outline:2px solid var(--usa-accent,#7c5cff);outline-offset:3px}@media (prefers-reduced-motion:reduce){usa-fab .usa-fab-main{transition:none}}
|
|
48
|
+
usa-navbar{position:sticky;top:0;z-index:800;display:block;transition:transform 0.35s cubic-bezier(0.22,1,0.36,1),padding 0.25s ease,box-shadow 0.25s ease;will-change:transform}usa-navbar[data-hidden]{transform:translateY(-100%)}usa-navbar[data-scrolled]{box-shadow:var(--usa-shadow,0 6px 20px -10px rgb(0 0 0 / 0.4))}usa-navbar[shrink][data-scrolled]{padding-block:4px}@media (prefers-reduced-motion:reduce){usa-navbar{transition:none}}
|
|
49
|
+
usa-popover{display:inline-block}usa-popover .usa-popover-panel{position:fixed;z-index:1500;min-width:180px;max-width:min(92vw,360px);padding:12px 14px;outline:none}usa-popover .usa-popover-panel[hidden]{display:none}
|
|
50
|
+
usa-pull-refresh{position:relative;display:block;overflow:auto;overscroll-behavior-y:contain;touch-action:pan-x pan-down}usa-pull-refresh>:not(.usa-pull-indicator):not(.usa-sr){transform:translateY(var(--usa-pull,0px))}usa-pull-refresh .usa-pull-indicator{position:absolute;left:50%;top:0;width:34px;height:34px;margin-left:-17px;z-index:2;display:grid;place-items:center;border-radius:50%;background:var(--usa-surface,#1b1e27);box-shadow:var(--usa-shadow);color:var(--usa-accent,#7c5cff);transform:translateY(calc(var(--usa-pull,0px) - 40px)) rotate(calc(var(--usa-pull-p,0) * 270deg));opacity:var(--usa-pull-p,0);pointer-events:none}usa-pull-refresh .usa-pull-indicator svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}usa-pull-refresh .usa-pull-indicator circle{stroke-dasharray:calc(var(--usa-pull-p,0) * 75) 100}usa-pull-refresh[data-armed] .usa-pull-indicator{background:var(--usa-accent,#7c5cff);color:var(--usa-accent-text,#fff)}usa-pull-refresh[data-refreshing] .usa-pull-indicator{opacity:1;animation:usa-pull-spin 0.8s linear infinite}usa-pull-refresh[data-refreshing] .usa-pull-indicator circle{stroke-dasharray:60 100}@keyframes usa-pull-spin{from{transform:translateY(calc(var(--usa-pull,0px) - 40px)) rotate(0)}to{transform:translateY(calc(var(--usa-pull,0px) - 40px)) rotate(360deg)}}@media (prefers-reduced-motion:reduce){usa-pull-refresh[data-refreshing] .usa-pull-indicator{animation-duration:2.4s;transform:translateY(8px)}}
|
|
51
|
+
usa-rating{--usa-rating-on:#f5b301;display:inline-flex;gap:2px;font-size:1.5em;line-height:1;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}usa-rating[readonly]{cursor:default}usa-rating .usa-rating-star{display:inline-block;color:color-mix(in srgb,currentColor 22%,transparent);transition:color 0.15s ease,transform 0.2s ease}usa-rating .usa-rating-star[data-on]{color:var(--usa-rating-on)}usa-rating[data-previewing] .usa-rating-star{color:color-mix(in srgb,currentColor 22%,transparent)}usa-rating[data-previewing] .usa-rating-star[data-preview]{color:var(--usa-rating-on);transform:scale(1.12)}usa-rating:focus-visible{outline:2px solid var(--usa-accent,#7c5cff);outline-offset:3px;border-radius:6px}@media (prefers-reduced-motion:reduce){usa-rating .usa-rating-star{transition:none;transform:none !important}}
|
|
52
|
+
usa-drawer,usa-bottom-sheet{position:fixed;z-index:1001;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;will-change:transform;outline:none}usa-drawer{top:0;bottom:0;left:0;width:min(86vw,360px);border-radius:0 var(--usa-radius,14px) var(--usa-radius,14px) 0;padding:20px}usa-drawer[side="right"]{left:auto;right:0;border-radius:var(--usa-radius,14px) 0 0 var(--usa-radius,14px)}usa-drawer[side="top"],usa-drawer[side="bottom"]{left:0;right:0;width:auto;bottom:auto;max-height:80vh;border-radius:0 0 var(--usa-radius,14px) var(--usa-radius,14px);touch-action:pan-x}usa-drawer[side="bottom"]{top:auto;bottom:0;border-radius:var(--usa-radius,14px) var(--usa-radius,14px) 0 0}usa-bottom-sheet{left:0;right:0;bottom:0;margin:0 auto;max-width:640px;border-radius:22px 22px 0 0;padding:8px 20px 24px;touch-action:none}usa-bottom-sheet .usa-sheet-handle{width:40px;height:5px;border-radius:3px;margin:4px auto 14px;background:color-mix(in srgb,currentColor 35%,transparent);cursor:grab}usa-drawer[hidden],usa-bottom-sheet[hidden]{display:none}.usa-panel-backdrop{position:fixed;inset:0;z-index:1000;background:rgb(0 0 0 / 0.45)}
|
|
53
|
+
usa-slider{--usa-slider:0;position:relative;display:block;height:28px;min-width:120px;touch-action:none;cursor:pointer;-webkit-tap-highlight-color:transparent}usa-slider .usa-slider-track{position:absolute;left:0;right:0;top:50%;height:6px;margin-top:-3px;border-radius:3px;background:color-mix(in srgb,currentColor 16%,transparent);overflow:hidden}usa-slider .usa-slider-fill{position:absolute;inset:0;background:var(--usa-accent,#7c5cff);transform-origin:0 50%;transform:scaleX(var(--usa-slider))}usa-slider .usa-slider-thumb{position:absolute;top:50%;left:calc(var(--usa-slider) * 100%);width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgb(0 0 0 / 0.35),0 0 0 4px color-mix(in srgb,var(--usa-accent,#7c5cff) 0%,transparent);transition:transform 0.25s cubic-bezier(0.34,1.56,0.64,1),box-shadow 0.2s ease}usa-slider:hover .usa-slider-thumb,usa-slider:focus-visible .usa-slider-thumb{box-shadow:0 1px 4px rgb(0 0 0 / 0.35),0 0 0 6px color-mix(in srgb,var(--usa-accent,#7c5cff) 25%,transparent)}usa-slider[data-dragging] .usa-slider-thumb{transform:scale(1.25)}usa-slider .usa-slider-bubble{position:absolute;bottom:150%;left:50%;transform:translateX(-50%) scale(0.6);opacity:0;padding:2px 8px;border-radius:8px;font:600 12px/1.6 system-ui,sans-serif;color:var(--usa-accent-text,#fff);background:var(--usa-accent,#7c5cff);white-space:nowrap;pointer-events:none;transition:opacity 0.15s ease,transform 0.25s cubic-bezier(0.34,1.56,0.64,1)}usa-slider[bubble][data-dragging] .usa-slider-bubble,usa-slider[bubble]:focus-visible .usa-slider-bubble{opacity:1;transform:translateX(-50%) scale(1)}usa-slider:focus-visible{outline:none}usa-slider[disabled]{opacity:0.45;cursor:not-allowed}@media (prefers-reduced-motion:reduce){usa-slider .usa-slider-thumb,usa-slider .usa-slider-bubble{transition:none}}
|
|
54
|
+
usa-tabs{display:block;font-family:var(--usa-font)}usa-tabs .usa-tabs-list{position:relative;display:flex;gap:4px;border-bottom:1px solid color-mix(in srgb,currentColor 14%,transparent)}usa-tabs [role="tab"]{position:relative;z-index:1;padding:10px 14px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;opacity:0.7;transition:opacity 0.2s ease,color 0.2s ease;border-radius:calc(var(--usa-radius,14px) / 2)}usa-tabs [role="tab"][aria-selected="true"]{opacity:1;color:var(--usa-accent,#7c5cff)}usa-tabs [role="tab"]:focus-visible{outline:2px solid var(--usa-accent,#7c5cff);outline-offset:-2px}usa-tabs .usa-tabs-indicator{position:absolute;left:0;bottom:-1px;height:3px;width:0;border-radius:3px;background:var(--usa-accent,#7c5cff);pointer-events:none}usa-tabs[indicator="pill"] .usa-tabs-list{border-bottom:0;padding:4px;border-radius:999px;background:color-mix(in srgb,currentColor 8%,transparent)}usa-tabs[indicator="pill"] .usa-tabs-indicator{top:4px;bottom:4px;height:auto;border-radius:999px;opacity:0.18}usa-tabs [role="tabpanel"]{padding:14px 2px}usa-tabs [role="tabpanel"]:focus-visible{outline:2px solid var(--usa-accent,#7c5cff);outline-offset:2px;border-radius:6px}
|
|
55
|
+
usa-tooltip{display:inline-block}usa-tooltip .usa-tooltip-bubble{position:fixed;z-index:2000;max-width:260px;padding:6px 10px;font-size:0.85rem;line-height:1.4;pointer-events:none;--usa-radius:8px;white-space:normal}usa-tooltip .usa-tooltip-bubble[hidden]{display:none}
|
|
56
|
+
:root{--usa-accent:#7c5cff;--usa-accent-text:#fff;--usa-surface:#1b1e27;--usa-text:inherit;--usa-radius:14px;--usa-border:1px solid rgb(127 127 127 / 0.25);--usa-shadow:0 10px 30px -12px rgb(0 0 0 / 0.45);--usa-blur:0px;--usa-font:inherit}:where([variant="minimal"],[data-usa-variant="minimal"]){--usa-accent:currentColor;--usa-accent-text:Canvas;--usa-surface:transparent;--usa-radius:6px;--usa-border:1px solid color-mix(in srgb,currentColor 22%,transparent);--usa-shadow:none;--usa-blur:0px}:where([variant="neon"],[data-usa-variant="neon"]){--usa-accent:#00f0ff;--usa-accent-text:#04121a;--usa-surface:#0a0b14;--usa-text:#e6fbff;--usa-radius:10px;--usa-border:1px solid #00f0ff;--usa-shadow:0 0 6px #00f0ff,0 0 22px rgb(0 240 255 / 0.45);--usa-blur:0px}:where([variant="glass"],[data-usa-variant="glass"]){--usa-accent:#a78bfa;--usa-accent-text:#fff;--usa-surface:rgb(255 255 255 / 0.12);--usa-radius:18px;--usa-border:1px solid rgb(255 255 255 / 0.28);--usa-shadow:0 12px 40px -12px rgb(0 0 0 / 0.35);--usa-blur:16px}:where([variant="brutalist"],[data-usa-variant="brutalist"]){--usa-accent:#ff3d00;--usa-accent-text:#000;--usa-surface:#fff;--usa-text:#000;--usa-radius:0px;--usa-border:3px solid #000;--usa-shadow:5px 5px 0 #000;--usa-blur:0px;--usa-font:ui-monospace,"SFMono-Regular",Menlo,monospace}:where([variant="fluent"],[data-usa-variant="fluent"]){--usa-accent:#0067c0;--usa-accent-text:#fff;--usa-surface:rgb(249 249 249 / 0.82);--usa-text:#1a1a1a;--usa-radius:8px;--usa-border:1px solid rgb(0 0 0 / 0.08);--usa-shadow:0 2px 4px rgb(0 0 0 / 0.14),0 0 2px rgb(0 0 0 / 0.12);--usa-blur:30px;--usa-font:"Segoe UI Variable","Segoe UI",system-ui,sans-serif}:where([variant="material"],[data-usa-variant="material"]){--usa-accent:#6750a4;--usa-accent-text:#fff;--usa-surface:#fffbfe;--usa-text:#1c1b1f;--usa-radius:20px;--usa-border:0 solid transparent;--usa-shadow:0 1px 3px rgb(0 0 0 / 0.3),0 4px 8px 3px rgb(0 0 0 / 0.15);--usa-blur:0px;--usa-font:Roboto,system-ui,sans-serif}@media (prefers-color-scheme:dark){:where([variant="fluent"],[data-usa-variant="fluent"]){--usa-accent:#4cc2ff;--usa-accent-text:#000;--usa-surface:rgb(44 44 44 / 0.8);--usa-text:#fff;--usa-border:1px solid rgb(255 255 255 / 0.08)}:where([variant="material"],[data-usa-variant="material"]){--usa-accent:#d0bcff;--usa-accent-text:#381e72;--usa-surface:#1c1b1f;--usa-text:#e6e1e5}}.usa-surface{background:var(--usa-surface);color:var(--usa-text);border:var(--usa-border);border-radius:var(--usa-radius);box-shadow:var(--usa-shadow);font-family:var(--usa-font);-webkit-backdrop-filter:blur(var(--usa-blur));backdrop-filter:blur(var(--usa-blur))}@media (prefers-reduced-transparency:reduce){.usa-surface{-webkit-backdrop-filter:none;backdrop-filter:none}}
|