API and Development
DataTable from @prepared911/ui/data-table is the interactive table. Columns are DataTableColumn<T>[]. Each row needs a stable id.
| Prop | Meaning |
|---|---|
columns | accessorKey or accessorFn plus id. cell renders something other than text. |
data | The current rows. |
copy | Optional. Omitted strings use localized defaults for en, he, es, fr and de. Override emptyMessage, loadingLabel, noResultsMessage, pagination, selection labels, and the rest as needed. |
aria-label, aria-labelledby | Optional. Omitting both applies a safe default name and logs a one-time development warning. |
enableSorting on a column makes the header a button. manualSorting keeps the server's order.globalFilter narrows by column text. manualFiltering means the server already filtered.actionMenu ends every row with one "more" button. A row does not list actions inline.multiSelect enables checkboxes and selection state. Pass bulkActions for the floating selection toolbar; omit it when bulk UI lives outside the table.detail opens the record in a drawer. onRowClick and selectedRowId are for a drawer you render yourself, with horizontalScrollSpacing or scrollRoomElement.virtualizeRows windows a very long page. Most tables should page instead.copy.pagination shows the footer. manualPagination uses pages or rowCount.Filters from @prepared911/ui/blocks/filters. The table does not import it.