Command palette: a filterable role="listbox" of role="option" commands with arrow/Home/End/PageUp/PageDown navigation that skips disabled options, type-to-filter (matching text + data-hl-keywords), automatic empty-state and group hiding, Escape to clear the query (or close the hosting <dialog> once it's empty), and Enter to run the active command (emits a cancelable hl:command CustomEvent). Options are read live, so commands rendered later are filterable too. The filter query is observable through onValueChange/hl:change and controllable through the returned API. When the palette lives inside a <dialog>, the dialog's open state is exposed as open/setOpen and onOpenChange/hl:open-change, a command closes it by default, and an optional hotkey opens it with Cmd/Ctrl+key. Without JavaScript the full list simply renders; the root is marked data-hl-ready once filtering is live. Markup can set data-hl-hotkey, data-hl-close-on-command, data-hl-default-value, and data-hl-default-open on the root.

Properties

Properties