Data Grid

@allem-ui/data-grid

Advanced data table with sorting, filtering, row selection, and pagination. Built on TanStack Table.

Installation

npm install @allem-ui/data-grid

Basic Usage

Alice Johnsonalice@example.comAdmin
Bob Smithbob@example.comEditor
Carol Daviscarol@example.comViewer
Dan Wilsondan@example.comEditor

With Sorting & Filtering

Alice Johnsonalice@example.comAdmin
Bob Smithbob@example.comEditor
Carol Daviscarol@example.comViewer
Dan Wilsondan@example.comEditor

Features

  • Column sorting (click headers)
  • Global search filtering
  • Row selection with checkboxes
  • Pagination with page size control
  • Loading and empty states
  • Custom cell renderers

Props

PropTypeDefaultDescription
data*T[]Array of data to display
columns*ColumnDef<T>[]Column definitions (from TanStack Table)
enableSortingbooleanfalseEnable column sorting
enableFilteringbooleanfalseEnable global search filter
enableRowSelectionbooleanfalseEnable row selection checkboxes
enablePaginationbooleanfalseEnable pagination
pageSizenumber10Rows per page
loadingbooleanfalseShow loading overlay
emptyMessagestringMessage when no data
onRowClick(row: T) => voidRow click handler

DataGridToolbar Props

PropTypeDefaultDescription
globalFilter*stringCurrent search value
onGlobalFilterChange*(value: string) => voidSearch change handler
selectedCountnumberNumber of selected rows
totalCountnumberTotal rows
classNamestringAdditional CSS classes
childrenReactNodeExtra toolbar content

DataGridPagination Props

PropTypeDefaultDescription
pageIndex*numberCurrent page index
pageCount*numberTotal pages
pageSize*numberRows per page
onPageChange*(page: number) => voidPage change handler
onPageSizeChange(size: number) => voidPage size change handler
totalRows*numberTotal row count
classNamestringAdditional CSS classes

DataGridColumnHeader Props

PropTypeDefaultDescription
sorted*false | "asc" | "desc"Current sort state
onSort*() => voidSort toggle handler
children*ReactNodeHeader label
classNamestringAdditional CSS classes