Components › Forms & input › Select › Check menu

Check menu

canon

The one menu for toggling a set of options (columns, tiles, categories): checkbox on the right, optional search, hidden items below a line, reorder by drag or Alt+↑/↓; bottom sheet with Hotovo on a phone.

AD 30 Sep 2026: canon again. The one menu for toggling a set of OPTIONS (column visibility, tile layout, category filter) with optional search, hidden-below-divider and reorder; RecordSelect multi stays the picker of RECORDS. Select has no multiple mode, so the old replacedBy was void. approvedAt after the stories show search, hidden items, keyboard reorder (Alt+↑↓) and the phone sheet. Registry repaired 17 Oct 2026 (review F1): apps/web/src/ds/check-menu.css no longer exists; reorder styling is in ds/reorder.css (step F4). Registry repaired 17 Oct 2026 (review F2): removed classes with no CSS definition and no TSX use on main: .cm-reorder, .cm-dragging, .cm-drop-line, .cm-sheet. Registry repaired 17 Oct 2026 (review F4/F11): attached css reorder.css.

Used in 4 files · 4 areas · 4× — components/activity, components/mail, components/record, components/segment

Default

components--check-menu--defaultOpen standalone ↗Code

Variants

plain — a short fixed set, no search
searchPlaceholder + group — search, visible (table order), line, hidden
onReorder — rows are draggable and move with Alt+↑/↓
components--check-menu--variantsOpen standalone ↗Code

States

checked / unchecked — checkbox right, menu stays open on toggle
search 'mest' — diacritics-insensitive, both groups filtered, reorder off
search with no match — empty state
drag (.cm-reorder) — dragged row dimmed, insertion line
trigger — rest / open
Rows are `menuitemcheckbox`; Enter/Space toggle, ↑/↓ move focus, Esc closes. With `onReorder` the focused row moves one place with Alt+↑/↓: focus stays on the moved row and a live region announces the new position („Objem: pozice 2 z 4“). A mouse click right after a drag is swallowed; a keyboard click is not. Reorder is off while a query is typed. Drag values 1:1 with board.css (opacity 0.45, 3px line).
components--check-menu--statesOpen standalone ↗Code

Composition

Přehled
⚙ layout menu of a record section — visibility + order of tiles (LayoutMenu)
category filter of the activity timeline (CategoryFilterChip)
phone (< 720px) — bottom sheet 'Sloupce': grab, title, search, rows, Hotovo; no drag
components--check-menu--compositionOpen standalone ↗Code