List
44px rows on the panel, no lines, metadata on the right, group headers, keyboard first.
<div className="w-full">
<List
aria-label="Keys"
groups={groups}
selectable
selectionActions={
<>
<SelectionAction icon={icons.copy}>Copy ids</SelectionAction>
<SelectionAction icon={icons.hide}>Disable</SelectionAction>
<SelectionAction icon={icons.delete} danger>
Delete
</SelectionAction>
</>
}
/>
</div>import { List, ListRow, GroupHeader } from "@logicplanes/kaeso-ui";Props
aria-labelstringThe list's accessible name.
data-force-rowstringForce a state on the first row for state matrices: hover, focus, selected.
density"default" | "compact" = defaultHow much room each row gets.
emptyReactNodeShown when there are no rows and the list isn't loading: usually an
Empty(size="md"in a settings column, where it sits inside the list's card;size="compact"on an edge-to-edge page).groupsListGroup[]…rows under group headers.
idWidth48 | 64 | 80 | 96 | 120A fixed width for the id column when ids differ in length, so titles align. By default the id takes its own width.
itemsListItemData[]Rows without groups, or…
loadingbooleanLoading rows shaped like items, while the rows aren't known yet.
onOpen((item: ListItemData) => void)Called when a row is opened with a click or Enter. Enter with ⌘ or Ctrl is left to the surrounding form.
onSelectedChange((selected: Set<string>) => void)Called with the selected rows; rows then get checkboxes.
selectablebooleanSelection: checkboxes appear on hover, and on every row once something is selected.
selectedSet<string>The ids of the selected rows.
selectionActionsReactNodeActions in the floating selection bar.
selectionBarboolean = trueThe floating selection bar; off where the host shows the count itself, as in a dialog.
virtualizeAbovenumber = 100Virtualize above this many rows (100).