Documentation
Data Table
Advanced table with sorting, filtering, and pagination using TanStack Table.
Installation
pnpm add @rouf-dev/pantheon-ui @tanstack/react-tableUsage
Basic Table
import { DataTable, DataTableColumnHeader } from "@rouf-dev/pantheon-ui";
import type { DataTableColumn } from "@rouf-dev/pantheon-ui";
type User = {
name: string;
email: string;
status: string;
};
const columns: DataTableColumn<User>[] = [
{
accessorKey: "name",
header: ({ column }) => (
<DataTableColumnHeader column={column} title="Name" />
),
},
{ accessorKey: "email", header: "Email" },
{ accessorKey: "status", header: "Status" },
];
const data: User[] = [
{ name: "John Doe", email: "john@example.com", status: "Active" },
{ name: "Jane Smith", email: "jane@example.com", status: "Pending" },
];
<DataTable columns={columns} data={data} />With Advanced Features
<DataTable
columns={columns}
data={data}
searchable
searchPlaceholder="Search users..."
paginated
pageSize={10}
pageSizeOptions={[10, 20, 50]}
selectable
onSelectionChange={(selection) => console.log(selection)}
exportable
exportFilename="users"
densityControl
stickyHeader
/>Features
- Global search with
searchable - Pagination with customizable page sizes
- Row selection with bulk actions via
selectable - Expandable rows with
expandableandrenderExpandedRow - Density control (compact/comfortable/spacious)
- Sticky columns and headers
- CSV export with
exportable - Column visibility toggle
- Sortable columns with
DataTableColumnHeader