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
emptyStateReactNodeCustom empty state
onSort(key: string, direction: 'asc' | 'desc') => voidSort handler

Column

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