Skip to main content

Table

Data table for displaying structured data with sorting and loading support.

Import​

import { Table } from '@kikumi3n/ui';

Usage​

<Table
columns={[
{ key: 'name', header: 'Name' },
{ key: 'email', header: 'Email' },
{ key: 'role', header: 'Role' },
]}
data={[
{ name: 'Jane Doe', email: 'jane@example.com', role: 'Admin' },
{ name: 'John Smith', email: 'john@example.com', role: 'User' },
]}
/>

Sortable​

<Table
columns={[
{ key: 'name', header: 'Name', sortable: true },
{ key: 'date', header: 'Date', sortable: true },
]}
data={data}
sortable
onSort={(key, direction) => console.log(key, direction)}
/>

Loading & Empty​

<Table columns={columns} data={[]} loading />
<Table columns={columns} data={[]} emptyState={<EmptyState title="No data" />} />

API​

PropTypeDefaultDescription
columnsColumn<T>[]requiredColumn definitions
dataT[]requiredRow data
sortablebooleanfalseEnable sorting
loadingbooleanfalseShow loading state
emptyStateReactNode—Custom empty state
onSort(key: string, direction: 'asc' | 'desc') => void—Sort handler

Column​

PropTypeDescription
keystringData field key
headerstringColumn header text
sortablebooleanEnable sorting for this column
render(value, row) => ReactNodeCustom cell renderer
widthstringColumn width