# Gummy Data Table

> A generic typed table with filtering, sorting, paging, and selection.

- Status: stable
- Licence: MIT
- Catalogue group: Data and utilities

## Installation

```sh
npx shadcn@latest add https://gummyui.dev/r/gummy-data-table.json
```

The shadcn-compatible registry copies editable React, TypeScript, and CSS
into the consuming application; it is not a black-box component runtime.

## Semantics

Native table relationships, aria-sort, named checkboxes, and live result count.

## Keyboard behavior

Tab reaches filter, sortable headers, selection, and page controls.

## Dependencies

No component-specific dependency is declared in the catalogue.
The registry resolves shared Gummy style payloads automatically.

## Anatomy and API

Exported React parts:

- `GummyDataTable`

### `GummyDataTableProps`

Composes `Omit< React.HTMLAttributes<HTMLDivElement>, "children" | "onSelect" > & { rows: readonly Row[]; columns: readonly GummyDataTableColumn<Row>[]; getRowId: (row: Row) => string; caption: string; filterLabel?: string; filterPlaceholder?: string; pageSize?: number; initialSort?: GummyDataTableSort; selectable?: boolean; selectedRowIds?: readonly string[]; defaultSelectedRowIds?: readonly string[]; onSelectedRowIdsChange?: (rowIds: string[]) => void; getRowLabel?: (row: Row) => string; emptyMessage?: string; }`.

## Themes, RTL, and reduced motion

- Light and dark modes use the shared semantic and fruit tokens. Set
  `data-theme="dark"` on the root to activate the included dark environment.
- Use the nearest genuine `dir` boundary. Layout uses logical properties;
  any directional key behavior is part of the keyboard contract above.
- Gummy motion styles honor `prefers-reduced-motion: reduce`; preserve visible
  focus, selection, loading, and validation information when motion is reduced.

## Public source and registry

- [Source viewer](https://gummyui.dev/components/data-table#source-title)
- Public source path: `app/components/ui/GummyDataTable.tsx`
- [Registry payload](https://gummyui.dev/r/gummy-data-table.json)
- [HTML documentation](https://gummyui.dev/components/data-table)

## Licence and source boundary

Gummy UI's public component source and documentation are MIT licensed.
This Markdown namespace exposes only public catalogue facts, public source
locations, and public registry URLs. Separate paid assets are not included
and cannot be inferred from these documents.

Canonical Markdown: https://gummyui.dev/docs/markdown/components/data-table.md
