Rebar UI

1.0

opinion

DataGrid

Sortable, selectable, editable rows.

Project gridSort, select, tabular numbers
Projects
Status
Harbour rebrandMaya ChenOn track84%£48,200
Tideline mobileJonas WeberReview61%£72,900
Crew interviewsPriya NairLate33%£9,400
Rota exportLeo SantosDone100%£6,150
Depot signageMaya ChenReview48%£21,800
Cell editing
Budget
Loading
Empty
Nothing matches “Quay”. Clear the filter to see all 5.
Error

In context

Projects pageFilter, columns, add; selection and pages

Projects

5
Status
Harbour rebrandMaya ChenOn track84%£48,200
Tideline mobileJonas WeberReview61%£72,900
Crew interviewsPriya NairLate33%£9,400
Rota exportLeo SantosDone100%£6,150

Props

PropTypeRequiredDefault
editableboolean | undefinedNofalse
onCellChange((rowKey: string | number, columnKey: string, newValue: string) => void) | undefinedNo—
groupBystring | undefinedNo—
columnsTableColumn<T>[]Yes—
dataT[]Yes—
rowKeystring | ((row: T) => string)Yes—
sortTableSort | null | undefinedNo—
onSortChange((sort: TableSort | null) => void) | undefinedNo—
selectedRowKeysstring[] | undefinedNo—
onSelectedRowKeysChange((keys: string[]) => void) | undefinedNo—
pageSizenumber | undefinedNo—
pagenumber | undefinedNo—
onPageChange((page: number) => void) | undefinedNo—
loadingboolean | undefinedNofalse
loadingDelayMsnumber | undefinedNo—
loadingMinDurationMsnumber | undefinedNo—
emptyMessageReactNodeNo—
maxHeightnumber | undefinedNo—
captionReactNodeNo—
aria-labelstring | undefinedNo—
classNamestring | undefinedNo—
bionicboolean | undefinedNo—
bionicOptionsBionicOptions | undefinedNo—

Accessibility

A real <table> with a visible caption, <th> headers and sort buttons that announce their direction; selection is a column of real checkboxes with a header checkbox (indeterminate when only some rows are selected). Editable cells are Editable buttons: Enter to edit, Enter or blur to commit, Escape to cancel.

data-rebar-* attributes

data-rebar-component="data-grid" on the root; every Table, Editable and Accordion attribute underneath is the real thing, not duplicated.

Migrating to Ant Design

AntD's Table supports inline editing via a custom render per column and row grouping via a nested dataSource; a migration folds editable and groupBy into that pattern rather than a 1:1 prop mapping.