@utiltools/datagrid

DataGrid Demo

A lightweight, TypeScript-first headless grid with built-in UI. Sorting, filtering, pagination, row selection — out of the box.200 rows, client-side processing.

$npm install@utiltools/datagrid

Basic table

Sorting on all columns, column-level filtering on Name, Department, Location. Global search across all columns.

#NameDepartmentRoleLocationSalaryStatusJoined
1Alice ZhaoEngineeringSenior EngineerNew York60000Active2018-01-01
2Bob MartinezDesignDesignerLondon68000Active2018-02-01
3Carol WhiteMarketingGrowth LeadBerlin76000Active2018-03-01
4David KimSalesAccount ExecutiveSingapore84000Inactive2018-04-01
5Eva BrownHRRecruiterRemote92000On Leave2018-05-01
6Frank LeeFinanceCFONew York100000Active2018-06-01
7Grace WilsonEngineeringStaff EngineerLondon108000Active2018-07-01
8Henry TaylorDesignDesignerBerlin116000Active2018-08-01
9Isla AndersonMarketingGrowth LeadSingapore124000Inactive2018-09-01
10Jack ThomasSalesAccount ExecutiveRemote132000On Leave2018-10-01
Showing 1–10 of 200 rows

Quick API reference

PropTypeDefaultDescription
dataTRow[]Array of row objects.
columnsColumnDef<TRow>[]Column definitions (key, label, sortable, filterable, render…).
rowKeykeyof TRowindexField used as unique row identifier.
pageSizenumber10Initial rows per page.
pageSizeOptionsnumber[][10, 25, 50, 100]Page size dropdown options.
selectablebooleanfalseEnable row selection checkboxes.
stripedbooleanfalseAlternate row background.
searchablebooleantrueShow global search input.
loadingbooleanfalseShow skeleton loading state.
emptyMessagestring"No data to display."Shown when data is empty.
onSelectionChange(keys: Set<string>) => voidFired when selected rows change.