UIInternal UI

Blocks

GroupSlab

@randall-enterprises/ui/components/data-view/group-slab

One grouping surface for every DataView layout: the kit glass slab tinted by the group's tone, with the group label and its rollup in the header. The list's sections, the gallery's sections, the table's groups and the board's columns are all this. `stickyLabel` pins the label strip to the left edge while the slab scrolls sideways — for the table, whose slab is wider than its scrollport.

Props (14)

label *ReactNode
iconstring | nullA record icon token — a Phosphor name, an `icon:` token, or a brand.
tone *SelectToneTints the glass. `"neutral"` is the plain, untinted wash.
summaryReactNodeThe group's rollup — lands in the slab's top-right corner.
actionsReactNodeControls after the summary. The collapse caret adds itself here.
collapsedboolean
onToggle() => voidOmit for a slab that cannot collapse — no caret is drawn.
dropRef(node: HTMLElement | null) => voiddnd-kit's droppable node ref for this group.
isOverbooleanTrue while a dragged row hovers this group.
dragGroupSectionDragHandle`useGroupSectionDrag`'s handle — the label strip becomes the grab area.
stickyLabelbooleanPins the label strip to the left edge of the slab while the slab scrolls
summaryPlacement"end" | "label"Where the summary sits: the header's far end, or inside the (sticky) label.
children *ReactNode
contentClassNamestring
Dispatched12
Blocked3

stickyLabel — scroll the slab below sideways and the label stays put.

This quarter48