Composable, open-code data tables and an editable data grid built on TanStack Table: faceted and advanced filters, sorting, row and column drag-and-drop, virtualization, column resizing, and server-side pagination, installed a la carte.
Opt-in useGridChanges hook that observes the uncontrolled grid engine and turns edits into a create/update/delete change-set — for staging saves, autosave, and full CRUD with per-row reconcile. Plain React, no dependency. Requires data-table-grid.
Composable editable spreadsheet grid: a headless engine (focus, selection, edit lifecycle, undo/redo, clipboard — all rowId-addressed so sort/filter work while editing) + a skin composed with DataTableRoot and the virtualized body. Keyboard cell nav, drag range-select with edge auto-scroll, quote-aware TSV copy/cut/paste with one-to-many tiling, fill handle, drag-move, dynamic columns, row drag-to-reorder, selection status bar, cross-highlight, and text/number/checkbox/date/select/combobox cells. Virtualized to 100k+ rows.
Full DataTable owner (DataTableRoot, DataTable chrome, feature detection) on top of data-table-core, plus the Table UI primitive via data-table-ui. Prefer this for typical installs; à-la-carte controls depend on data-table-core instead and will not overwrite a customized components/ui/table.tsx.
Sidebar panel component for displaying row details or additional content alongside the table.
Button to clear all active table filters at once.
Opt-in even-split fill for resizable columns. Drop <DataTableColumnAutoFit/> next to <DataTableColumnResize/> and the resizable columns grow by an equal share of the leftover space on load (the alternative to the default single-flex-column fill). Self-contained — the body ships no auto-fit code unless you install this.
Column header date filter with calendar picker in a dropdown.
Drag-and-drop column reordering with composable primitives. Includes DnD provider, draggable header, drag-along cell, and column DnD header/body. Does not ship row DnD.
Column header faceted filter with multi-select options in a dropdown.
Column header option to group rows by column values with TanStack aggregation support.
Column header option to hide/show individual columns.
Column header option to pin columns to left or right.
Opt-in column resizing with drag handles and double-click autosize (measures natural text width). Keyboard-operable handle. Drop <DataTableColumnResize/> into the table to enable — works with DataTableHeader/Body and the virtualized variants.
Opt-in localStorage persistence for column widths. Call useColumnSizingPersistence(storageKey) and wire the returned columnSizing + onColumnSizingChange into <DataTableRoot> so resized widths survive reloads. Writes immediately, SSR-safe, and sanitizes corrupt storage.
Column header slider filter for numeric range filtering in a dropdown.
Column header sort options with ascending/descending/clear controls.
Shared floor for Niko Table: context, non-virtualized structure, types, config, and the lib/hooks bodies and controls need. Does not include DataTableRoot or components/ui/table.tsx — install @niko-table/data-table for the full owner (pulls table.tsx), @niko-table/data-table-ui for the table primitive alone, or bring your own compatible table.tsx with a TableComponent export.
Date picker filter supporting single date and date range selection.
Export table data to CSV with configurable options.
Faceted filter for single/multiple selection with option counts and search.
Command palette-style filter interface for adding and managing column filters.
Inline filter toolbar that displays active filters as editable chips.
Full-featured pagination controls with page size selector, page navigation, and row count display.
Drag-and-drop row reordering with composable primitives. Includes DnD provider, draggable row, drag handle, and row DnD table body. Does not ship column DnD.
Global search input with debouncing for filtering table data.
Bulk actions bar that appears when rows are selected.
Slider-based filter for numeric range filtering.
Sort management menu with multi-column sorting and drag-and-drop reordering.
Shadcn table primitive extended with TableComponent and a keyboard-focusable scroll container (tabIndex={0}, WCAG 2.1.1). Optional when you already ship a compatible components/ui/table.tsx — install explicitly or via @niko-table/data-table. À-la-carte controls that only pull data-table-core do not install this file, so customized tables are not overwritten.
Column visibility toggle menu with drag-to-reorder support. Use instead of data-table-view-menu when you need users to reorder columns from the menu.
Column visibility toggle menu for showing/hiding table columns.
Virtualized column drag-and-drop header/body (`DataTableVirtualizedDndHeader`, `DataTableVirtualizedDndColumnBody`). Requires data-table-virtualized + data-table-column-dnd. Does not ship row DnD.
Virtualized row drag-and-drop body (`DataTableVirtualizedDndBody`). Requires data-table-virtualized + data-table-row-dnd. Does not ship column DnD.
Virtualized table structure for rendering large datasets efficiently using TanStack Virtual.