Features
- Typed records
- Typed columns and codecs, stable row keys, and immutable published snapshots. The host’s original records are copied.
- Local queries
- Compiled filters and stable multi-column sorting, with cached query results and bounded provider windows.
- Selection and editing
- Selection follows record keys through sort and filter changes. Native editors validate changes, check row versions, and keep undo and redo history. Cell rectangles support copy and atomic paste within the loaded window.
- Virtual rows
- Custom fixed-height row virtualization, flexible column widths, sticky cells, and four row densities.
- Framework neutral
- A headless controller and a browser DOM renderer. No third-party grid, table, or virtualizer runtime is used.
- Orders example
- Search, status filters, column visibility, selection, and CSV export. Try 100, 10,000, or 100,000 seeded fictional orders.
Use
Define your columns and local provider, then mount the grid in a bounded host element. These APIs currently live in private workspace packages.
import { createGrid } from '@tablin/grid';
import '@tablin/themes/tablin.css';
const grid = createGrid(host, {
id: 'Orders',
datasetId,
columns,
provider,
});
await grid.ready();
See the complete example for the schema, provider, host sizing, and cleanup.
Keyboard
Use arrow keys to move between cells, Enter or F2 to edit, and Escape to cancel. Hold Shift with arrows to select cells, then use Ctrl or Cmd with C or V to copy and paste. Space toggles a row’s selection. Undo and redo use Ctrl or Cmd with Z.
Sortable column headers are native buttons. Shift-click adds a column to the current sort.
Status
This is a local-data foundation. Tablin is a commercial library and is not yet available for purchase.
Compatible local queries can run in module workers. Edits outside the active filter and sort retain the accepted query order.
Rows have fixed heights, and columns are not virtualized. Remote providers, framework adapters, and the full accessibility conformance matrix remain outstanding.
Read the implementation status or inspect the engine benchmark baseline.
