Preview

Name
Email
Role
Department
Projects
Last Login
John Doejohn@example.comAdminEngineering122 hours ago
Jane Smithjane@example.comUserMarketing81 day ago
Bob Johnsonbob@example.comModeratorSupport1530 minutes ago
Alice Brownalice@example.comUserSales5Never

Installation

<> import.ts
import { DataTable } from "@/components/ui/data-table"

Code

<> component.tsx
import { DataTable } from "@/components/ui/data-table"

<DataTable />

API Reference

DataTable

A flexible, sortable, selectable data table.

<> import.ts
import { DataTable, DataTablePresets } from "@/components/ui/data-table"

Props

PropTypeDefaultDescription
data
T[]Row data array
columns
Array<{ key: keyof T; label: string; sortable?: boolean; width?: string; render?: (value: any, row: T, index: number) => React.ReactNode }>Column definitions
className
string""Additional CSS classes
size
"sm" | "md" | "lg""md"Cell sizing
selectable
booleantrueEnable row selection
onSelectionChange
(selectedRows: T[]) => voidSelection callback
onRowClick
(row: T, index: number) => voidRow click callback
emptyMessage
string"No data available"Shown when no rows

Examples

Example 1
<> example.tsx
// Basic
<DataTable data={rows} columns={[{ key: 'name', label: 'Name' }]} />

Presets

small

Small, selectable

medium

Medium, selectable

large

Large, selectable