Component

Table

Full-featured data table with sorting, filtering, pagination, and selection.

tsx
import { Table, SimpleTable } from 'wss3-forge'

Usage

Use for displaying tabular data

Enable searchable for data filtering

Add pagination for large datasets

Use render prop for custom cell content

SimpleTable for basic static tables


Team Members

NameEmailRoleActions
John Doejohn@example.comAdmin
Jane Smithjane@example.comUser
Bob Wilsonbob@example.comEditor
Alice Brownalice@example.comUser

Examples

Basic Table

NameEmailRole
John Doejohn@example.comAdmin
Jane Smithjane@example.comUser
Bob Wilsonbob@example.comEditor
tsx
1<Table
2 data={[
3 { id: 1, name: 'John Doe', email: 'john@example.com', role: 'Admin' },
4 { id: 2, name: 'Jane Smith', email: 'jane@example.com', role: 'User' },
5 { id: 3, name: 'Bob Wilson', email: 'bob@example.com', role: 'Editor' }
6 ]}
7 columns={[
8 { key: 'name', header: 'Name' },
9 { key: 'email', header: 'Email' },
10 { key: 'role', header: 'Role' }
11 ]}
12 pagination={false}
13 searchable={false}
14/>

With Title & Subtitle

Team Members

Manage your team access and roles

NameEmailRole
John Doejohn@example.comAdmin
Jane Smithjane@example.comUser
Bob Wilsonbob@example.comEditor
tsx
1<Table
2 title="Team Members"
3 subtitle="Manage your team access and roles"
4 data={users}
5 columns={[
6 { key: 'name', header: 'Name' },
7 { key: 'email', header: 'Email' },
8 { key: 'role', header: 'Role' }
9 ]}
10 searchable
11 pagination={false}
12/>

With Global Actions

Users

NameEmail
John Doejohn@example.com
Jane Smithjane@example.com
Bob Wilsonbob@example.com
tsx
1<Table
2 title="Users"
3 data={users}
4 columns={[
5 { key: 'name', header: 'Name' },
6 { key: 'email', header: 'Email' }
7 ]}
8 globalActions={
9 <>
10 <Button variant="ghost" size="sm" icon={<Filter20Regular />}>Filter</Button>
11 <Button variant="primary" size="sm" icon={<Add20Regular />}>Add User</Button>
12 </>
13 }
14 searchable
15 pagination={false}
16/>

With Custom Cell Render

NameStatus
John DoeActive
Jane SmithInactive
Bob WilsonActive
tsx
1<Table
2 data={users}
3 columns={[
4 { key: 'name', header: 'Name' },
5 { key: 'status', header: 'Status', render: (row) => (
6 <Badge variant={row.status === 'Active' ? 'success' : 'default'}>
7 {row.status}
8 </Badge>
9 )}
10 ]}
11/>

Striped & Compact

NameEmail
Alicealice@example.com
Bobbob@example.com
Charliecharlie@example.com
Dianadiana@example.com
tsx
1<Table
2 data={users}
3 columns={columns}
4 striped
5 compact
6/>

With Search

NameEmailRole
John Doejohn@example.comAdmin
Jane Smithjane@example.comUser
Bob Wilsonbob@example.comEditor
Alice Brownalice@example.comUser
Charlie Davischarlie@example.comViewer
tsx
1<Table
2 data={users}
3 columns={[
4 { key: 'name', header: 'Name' },
5 { key: 'email', header: 'Email' },
6 { key: 'role', header: 'Role' }
7 ]}
8 searchable
9 pagination={false}
10/>

With Pagination

NameEmail
John Doejohn@example.com
Jane Smithjane@example.com
Bob Wilsonbob@example.com
1-3 sur 7
tsx
1<Table
2 data={users}
3 columns={columns}
4 pagination
5 pageSize={3}
6 searchable={false}
7/>

Full Featured

NameEmailRole
John Doejohn@example.comAdmin
Jane Smithjane@example.comUser
Bob Wilsonbob@example.comEditor
Alice Brownalice@example.comUser
Charlie Davischarlie@example.comViewer
1-5 sur 8
tsx
1<Table
2 data={users}
3 columns={columns}
4 searchable
5 pagination
6 pageSize={5}
7 sortable
8/>

With Actions

NameEmailRoleActions
John Doejohn@example.comAdmin
Jane Smithjane@example.comUser
Bob Wilsonbob@example.comEditor
tsx
1<Table
2 data={users}
3 columns={[
4 { key: 'name', header: 'Name' },
5 { key: 'email', header: 'Email' },
6 { key: 'role', header: 'Role', render: (row) => (
7 <Badge variant={row.role === 'Admin' ? 'primary' : 'default'}>{row.role}</Badge>
8 )},
9 { key: 'actions', header: 'Actions', render: () => (
10 <HStack gap="xs">
11 <IconButton icon={<Edit20Regular />} size="sm" variant="ghost" />
12 <IconButton icon={<Delete20Regular />} size="sm" variant="danger" />
13 </HStack>
14 )}
15 ]}
16/>

No Padding

NameEmailRole
John Doejohn@example.comAdmin
Jane Smithjane@example.comUser
Bob Wilsonbob@example.comEditor
tsx
1<Table
2 data={users}
3 columns={[
4 { key: 'name', header: 'Name' },
5 { key: 'email', header: 'Email' },
6 { key: 'role', header: 'Role' }
7 ]}
8 noPadding
9 pagination={false}
10 searchable={false}
11/>

Previous

Descriptions

Next

Timeline

Last updated: December 2025

Cookies

We use cookies to improve your experience and save your preferences.