@utiltools/datagrid

DataGrid Demo

A lightweight, TypeScript-first React data grid. Sorting, filtering, pagination, row selection — out of the box.Click the 🔽 funnel icon to filter: text search, number range (min/max), or date range (from/to).Includes large-dataset and editing workflow demos.

$npm install@utiltools/datagrid
Framework switcher

Basic table

Sorting on all columns. Text filters on Name, Department, Location. Number range filter on Salary (try min/max). Date range filter on Joined (try from/to). 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
…

Feature checklist

Sorting
Filtering
Selection
Pagination
Loading state
Custom renderers
Large dataset demo
Editing workflow
Grouping
Excel/PDF export
Enterprise tools

What would you like to see next?

Tell us which demo capability should be prioritized next.

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>) => void—Fired when selected rows change.