Documentation

Data Table

Advanced table with sorting, filtering, and pagination using TanStack Table.

Installation

pnpm add @rouf-dev/pantheon-ui @tanstack/react-table

Usage

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 expandable and renderExpandedRow
  • Density control (compact/comfortable/spacious)
  • Sticky columns and headers
  • CSV export with exportable
  • Column visibility toggle
  • Sortable columns with DataTableColumnHeader