overlaystexulinot agent-emittableapp
CommandPalette
command-palette
Dialog-hosted command palette with search and recent items.
Live examples
Open palette
Open palette
Loading demo…
Props
| Name | Kind | Required | Default | Description |
|---|---|---|---|---|
open | boolean | no | false | — |
onOpenChange | event | no | — | — |
search | unknown | no | — | Sync or async search function |
onSelect | event | no | — | — |
recentItems | array | no | — | — |
debounceMs | number | no | — | — |
placeholder | string | no | — | — |
shortcut | boolean | no | true | — |
recentLabel | string | no | — | — |
title | string | no | — | — |
description | string | no | — | — |
emptyLabel | string | no | — | — |
recentEmptyLabel | string | no | — | — |
loadingLabel | string | no | — | — |
errorLabel | string | no | — | — |
size | enum (sm, md, lg) | no | "md" | — |
variant | enum (outline, soft) | no | "default" | — |
class | string | no | — | — |
Keyboard
| Key | Action |
|---|---|
— | See accessibility notes for keyboard behavior. |
Accessibility
- Dialog title/description; listbox keyboard for results.
Evidence for command-palette
Latest committed gates for command-palette (as of 2026-10-23). Static snapshot — not live CI.
Behavior
checkedscenario command
Rows in tests/behavior/scenarios/command.spec.ts, held to the WAI-ARIA APG pattern, run on Chromium, WebKit and the Pixel 7.
Size (gzip)
@texuli/primitives/command · budget 20.0 KiB
Budget from texuli.budgets.json; re-measure with `pnpm size --filter <entry>`.
Axe
documented
tests/e2e/site-component-pages.spec.tsdocs/quality (a11y-*)
Site component pages axe gate; package-level a11y docs under docs/quality when present.
Browsers
chromiumwebkitmobile
Playwright projects: Desktop Chrome, Desktop Safari, Pixel 7. Firefox is a known gap on this host.
When to use
Use when
- App-wide jump-to and actions (⌘K)
Don’t use when
Prefer another component
- Simple select lists (use select or combobox)