Component

Data Table

A sortable, filterable data table with column definitions and empty state. Uses the headless @refraction-ui/data-table core.

Examples

Click column headers to sort. Use the filter row to search.

NameRoleStatus
Alice JohnsonEngineerActive
Bob SmithDesignerActive
Carol WhitePMInactive
Dave BrownEngineerActive

Installation

$pnpm add @refraction-ui/react-data-table

Usage

tsx
import { DataTable } from '@refraction-ui/react-data-table'

export function MyComponent() {
  return (
    <DataTable
      columns={[
        { id: 'name', header: 'Name', accessor: (r) => r.name, sortable: true },
        { id: 'email', header: 'Email', accessor: (r) => r.email },
      ]}
      data={users}
    />
  )
}

Props

PropTypeDefaultDescription
columnsColumnDef<T>[]--Column definitions with id, header, accessor, sortable, filterable.
dataT[]--Array of data rows.
sortBystring--Controlled sort column.
sortDir'asc' | 'desc''asc'Sort direction.
onSort(columnId: string, direction: SortDirection) => void--Callback on sort change.
filtersRecord<string, string>--Controlled filter values.
emptyMessagestring'No data available'Message when table is empty.
classNamestring--Additional CSS classes.