React Advanced Table

Everything the basic Data Table doesn't do: click-to-sort columns (asc → desc → off), global search, row selection with an indeterminate header checkbox, optional sticky header, one-click CSV export of the filtered+sorted result, and built-in Pagination. Composes the house Empty State when a search matches nothing. Fully generic over your row type.

Part catalog
AXM-330-48C00AXM-330QFN-48Commercial4000EOL
AXM-110-256I01AXM-110FCBGA-256Industrial537419ACTIVE
RFX-91-81A02RFX-91WLCSP-81Automotive674838ACTIVE
PMU-12C-676C03PMU-12CFCBGA-676Commercial8111,257ACTIVE
AXM-330-48I04AXM-330QFN-48Industrial9481,676ACTIVE
AXM-110-256A05AXM-110FCBGA-256Automotive1,0852,095NRND
RFX-91-81C06RFX-91WLCSP-81Commercial1,2222,514ACTIVE
PMU-12C-676I07PMU-12CFCBGA-676Industrial4592,933ACTIVE
AXM-330-48A08AXM-330QFN-48Automotive5963,352ACTIVE
AXM-110-256C09AXM-110FCBGA-256Commercial7333,771ACTIVE

Sort any column, search bga, select rows, export CSV.

Installation

Depends on pagination and empty-state (installed automatically by the CLI when referenced, or copy them too).

npx shadcn@latest add advanced-table.json

Usage

Loading...

Props

PropTypeDefaultDescription
dataT[]Row objects
columnsAdvColumn<T>[]{ key, header, cell, sortValue?, align?, mono?, width?, exportValue? }
rowKey(row: T) => stringStable key; also the selection id
searchText(row: T) => stringEnables the global search box
selectablebooleanfalseCheckbox column + header select-all
onSelectionChange(keys: string[]) => voidSelected row keys
pageSizenumber10Initial rows per page
exportFileNameEnables the CSV button
Body height; makes the header sticky