DRYL COMPONENTS
Color mode: System — switch to light
3.16.0
Actions

DrylCommandPalette

AI-aware

A full-screen command launcher overlay that unifies navigation, actions and AI intents in a single keyboard-first entry point. Press Ctrl K anywhere in the app, or use the buttons below to open each variant.

Basic — static items

Pass a CommandItem[] to Items; the palette filters client-side. Three item types: Navigate, Action, AiIntent.

Category grouping

Set CommandItem.Category to cluster items under named headers, alpha-sorted before uncategorised items. Tab jumps to the next group.

Async SearchProvider

Provide a Func<string, Task<CommandItem[]>> for server-driven search. A non-empty query waits for Debounce (250 ms by default); the first load shows a skeleton, later ones quiet the previous rows.

Host search — fallback and recent items

The palette as one field for a whole app: the provider returns the host's records in its own group order (GroupOrder.AsProvided), each row keyed by Id with a trailing Meta fact. A Fallback hands any query to an assistant — last while rows match, first when none does. OnItemRun lets the host remember what ran and return it for the empty query.

AI intent — result panel

AiIntent items keep the palette open after selection so the AI result panel can stream its response. The finished draft rests as a proposal until you accept or dismiss it.

Declarative commands + arguments

Declare DrylCommands (with typed DrylCommandArguments) once; they self-register and run through a single OnRun(CommandContext). Commands with arguments open an inline fill view; Destructive commands gate on a confirm dialog.

AI resolver — natural language

Supply an ICommandResolver to resolve a natural-language query into one confirmable command suggestion (human-in-the-loop). Production apps use DrylAiCommandResolver from DRYL.Components.Agents over a real agent.

An unhandled error has occurred. Reload x

Reconnecting to the server…

Attempt /

Next try in s