import * as React from 'react'; import { PixelTable, type PixelTableSortState } from './PixelTable'; 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' }, ]; const baseColumns = [ { key: 'name', header: 'Name' }, { key: 'role', header: 'Role' }, { key: 'status', header: 'Status' }, ]; export function Default() { return columns={baseColumns} data={rows} />; } export function Striped() { return columns={baseColumns} data={rows} striped />; } export function PixelSurface() { return columns={baseColumns} data={rows} surface="pixel" />; } export function LinearSurface() { return columns={baseColumns} data={rows} surface="linear" />; } export function Sortable() { const [sort, setSort] = React.useState({ key: 'name', dir: 'asc' }); const sortable = [ { key: 'name', header: 'Name', sortable: true }, { key: 'role', header: 'Role', sortable: true }, { key: 'status', header: 'Status' }, ]; return ( columns={sortable} data={rows} sort={sort} onSortChange={setSort} /> ); } export function SingleSelection() { const [selected, setSelected] = React.useState(['1']); return ( columns={baseColumns} data={rows} selection="single" selectedIds={selected} onSelectionChange={setSelected} /> ); } export function MultiSelection() { const [selected, setSelected] = React.useState([]); return ( columns={baseColumns} data={rows} selection="multi" selectedIds={selected} onSelectionChange={setSelected} /> ); } export function CompactDensity() { return columns={baseColumns} data={rows} density="compact" />; } export function ComfortableDensity() { return columns={baseColumns} data={rows} density="comfortable" />; } export function Loading() { return columns={baseColumns} data={[]} loading />; } export function Empty() { return ( columns={baseColumns} data={[]} emptyState={No records found.} /> ); } export function StickyHeader() { return columns={baseColumns} data={rows} stickyHeader />; } export function CustomRender() { const columns = [ { key: 'name', header: 'Name' }, { key: 'status', header: 'Status', render: (row: Row) => ( {row.status} ), }, ]; return columns={columns} data={rows} />; } export function ClickableRows() { const [last, setLast] = React.useState(''); return (
columns={baseColumns} data={rows} onRowClick={(row) => setLast(row.name)} />

Last clicked: {last || 'none'}

); }