Concrete
data
Component

Data table

Dense typed table with sortable columns, selection, search, filters, pagination, and rich cells.

Data table is the canonical product grid for Concrete. Use createDataTableColumns<Row>() to keep columns aligned to row data.

Evaluation runs

Typed cells stay compact while still supporting signals and microvisuals.

Policy evalBlockedDexter
-4.4%7dSparkline211
Router contractShippingArihan
+18.6%7dSparkline184
Tool routerFeaturedTom
+9.2%7dSparkline138
Memory recallReviewJordan
+0.8%7dSparkline92
Page 1 / 10 selected
Playground

Props in the URL.

Controls update query params directly. Complex slots use curated fixtures so component states stay deterministic, linkable, and screenshot-ready.

Loading playground.
States

Rendered matrix.

Every state maps to the same component render route through the `state` query param.

Evaluation runs

Typed cells stay compact while still supporting signals and microvisuals.

Policy evalBlockedDexter
-4.4%7dSparkline211
Router contractShippingArihan
+18.6%7dSparkline184
Tool routerFeaturedTom
+9.2%7dSparkline138
Memory recallReviewJordan
+0.8%7dSparkline92
Page 1 / 10 selected
Default

Dense table with status, delta, sparkline, and meter cells.

/render state

Evaluation runs

Typed cells stay compact while still supporting signals and microvisuals.

Router contractShippingArihan
+18.6%7dSparkline184
Memory recallReviewJordan
+0.8%7dSparkline92
Tool routerFeaturedTom
+9.2%7dSparkline138
Policy evalBlockedDexter
-4.4%7dSparkline211
Page 1 / 12 selected
Selected

Selectable rows with toolbar actions.

/render state

Evaluation runs

Typed cells stay compact while still supporting signals and microvisuals.

Router contractShippingArihan
+18.6%7dSparkline184
Page 1 / 10 selected
Filtered

Search and filter controls with pagination.

/render state

Evaluation runs

Typed cells stay compact while still supporting signals and microvisuals.

No rows
Page 1 / 10 selected
Empty

No-row state inside the same table shell.

/render state
Props

Public contract.

NameTypeDefaultDescription
columns *readonly DataTableColumn<Row>[]-Typed column definitions. Use createDataTableColumns<Row>() for best DX.
rows *readonly Row[]-Typed row data with primitive or rich cell values.
titlestring-Optional table title.
captionstring-Muted supporting copy.
selectablebooleanfalseAdds a checkbox selection column.
selectedRowIdsreadonly string[][]Controlled selected row ids.
sortDataTableSort-Controlled sort state.
filtersreadonly DataTableFilter[][]Compact toolbar filter controls.
searchValuestring''Controlled search query.
searchPlaceholderstringSearch rowsSearch input placeholder.
paginationDataTablePagination-Optional page status and controls.
toolbarActionsreadonly DataTableToolbarAction[]-Right-side table toolbar actions.
getRowId(row: Row, rowIndex: number) => string-Custom stable row id resolver.
onSortChange(sort: DataTableSort | null) => void-Receives local sort changes.
onFilterChange(filterId: string, value: string) => void-Receives filter selection changes.
onPageChange(page: number, pageSize: number) => void-Receives pagination clicks.
onRowSelectionChange(selectedRowIds: readonly string[]) => void-Receives row selection changes.
onToolbarAction(actionId: string, selectedRowIds: readonly string[]) => void-Receives table toolbar action clicks.