Components › Forms & input › Select › Picker menu

Picker menu

canon

Anchored menu of items with optional check marks and icons.

Slots added 27 Sep 2026 (acrm !3909, wave D): separator rows `{ key, sep: true }` with role=separator (edge/double separators dropped, same rule as Menu button), per-item `ariaLabel` for rows whose visible text is shorter than the full sentence, and a clear row (`clearLabel`/`clearIcon`/`onClear`) — role=menuitem, no check, NOT danger (clearing a value is reversible; red is only for deleting data). No group headings. Registry repaired 17 Oct 2026 (review F6): added exported PickerMenuPanel to react[].

Used in 51 files · 36 areas · 64× — components/AppShell, components/FilterBar, components/ai-employees, components/assistant, components/calendar, components/callwrapup …

Default

components--picker-menu--defaultOpen standalone ↗Code

Variants

plain rows
icon rows (.ic slot, 18px)
stage dot in the icon slot (dot prop)
one line — a long name ends with an ellipsis, full text in title (no grey trailing tag)
grouped rows (sep item — no group heading, DS: menu has no eyebrow)
components--picker-menu--variantsOpen standalone ↗Code

States

trigger rest
trigger disabled (menu does not open)
open — selected row carries the accent check (static replica)
row hover (--hover-surface) / danger row (static replica)
clear row (onClear — no radio check, NOT danger: undo is reversible)
Picking closes the menu and calls onPick only when the key changes. Esc, scrim click, scroll of an ancestor and resize close it. The trigger render-prop receives `open` for its own styling; the menu itself carries no heading (DS rule: no eyebrow in menus).
components--picker-menu--statesOpen standalone ↗Code

With icon & kbd

icon per row (Tabler name)
stage dot instead of icon — live trigger
components--picker-menu--with-icon-kbdOpen standalone ↗Code

Composition

section title as a switcher — SectionTopBarTitle is the trigger
kebab menu — actions with a separator and a danger row (static replica)
components--picker-menu--compositionOpen standalone ↗Code