import * as React from 'react'; import { PixelDataTable, createColumnHelper, type ColumnDef, } from './PixelDataTable'; type Row = { id: string; name: string; role: string; status: string; }; const rows: Row[] = [ { id: '1', name: 'Alice', role: 'Engineer', status: 'active' }, { id: '2', name: 'Bob', role: 'Designer', status: 'idle' }, { id: '3', name: 'Carol', role: 'PM', status: 'active' }, { id: '4', name: 'Dan', role: 'Engineer', status: 'active' }, { id: '5', name: 'Eve', role: 'Designer', status: 'idle' }, ]; const ch = createColumnHelper(); const columns: ColumnDef[] = [ ch.accessor('name', { header: 'Name' }) as ColumnDef, ch.accessor('role', { header: 'Role' }) as ColumnDef, ch.accessor('status', { header: 'Status' }) as ColumnDef, ]; export function Default() { return data={rows} columns={columns} />; } export function PixelSurface() { return data={rows} columns={columns} surface="pixel" />; } export function LinearSurface() { return data={rows} columns={columns} surface="linear" />; } export function Sortable() { const [sorting, setSorting] = React.useState<{ id: string; desc: boolean }[]>([ { id: 'name', desc: false }, ]); return ( data={rows} columns={columns} sorting={sorting} onSortingChange={setSorting} /> ); } export function RowSelection() { const [selection, setSelection] = React.useState>({}); return ( data={rows} columns={columns} rowSelection={selection} onRowSelectionChange={setSelection} /> ); } export function Pagination() { const [pagination, setPagination] = React.useState({ pageIndex: 0, pageSize: 2 }); return ( data={rows} columns={columns} pagination={pagination} onPaginationChange={setPagination} /> ); } export function CompactDensity() { return data={rows} columns={columns} density="compact" />; } export function ComfortableDensity() { return data={rows} columns={columns} density="comfortable" />; } export function Loading() { return data={[]} columns={columns} loading />; } export function Empty() { return ( data={[]} columns={columns} emptyState={No records found.} /> ); } export function StickyHeader() { return data={rows} columns={columns} stickyHeader />; } export function ClickableRows() { const [last, setLast] = React.useState(''); return (
data={rows} columns={columns} onRowClick={(row) => setLast(row.name)} />

Last clicked: {last || 'none'}

); }