v1.0.0
12 Sep 2026First release.
Added
createCommandPalette()on a native<dialog>: the browser's focus trap, Escape handling, top layer and inert background.- Deterministic ranking — match quality, then recency, then registration order — so equal matches keep their place and clearing the query restores the original list exactly.
- A list that never jumps: no scrolling on open, a new query starts at the top, and the keyboard scrolls by the smallest amount that reveals a row. Rows are windowed, so a thousand commands cost what twenty do.
- Folded matching with highlighting: accents, Arabic and Urdu spellings and non-ASCII digits, over
title,subtitle,section,keywordsand a separatesearchText. - Nested pages from
childrenor from aperformthat returns commands, with breadcrumbs, Backspace to step back and Escape that leaves the page before it leaves the palette. - Async
search()sources merged into the list — debounced, aborted and cached — that keep the active command where it was when results arrive. - Recents, kept in
localStorage, shown under their own heading while browsing and used to break ties while searching. - A shortcut registry:
shortcut: 'mod+shift+n'or'g then p', bound globally, drawn as<kbd>in the platform's own symbols, never firing while you type in a field — and?opens the cheat sheet. - Theming: CSS variables for everything,
classNameson every part,icons,strings,theme: 'auto'that follows the page, and a@layer devixstylesheet. - React (
useCommandPalette,useCommands), Vue, Svelte and<dx-command-palette>entries, plus a DOM-free@devix-labs/command-palette/corefor your own UI.