useXDSTableSortable@xds/core · Table
Preview coming soon

Usage

Table displays structured data in rows and columns with consistent dimensionality. It supports rich cell content, sorting, selection, pagination, and column management through a composable plugin system. Use Table for data sets with uniform structure; for simpler or inconsistent data, consider a list or card layout instead.

Best practices

GuidancePractices
DoUse density and divider variants to match the information density and scanning needs of your data.
DoCompose rich cell content with XDS components like XDSBadge, XDSStatusDot, and XDSAvatar via renderCell.
Don'tUse a table for data without consistent columns — use a list or card layout for heterogeneous content.
Don'tEnable every plugin at once — add only the features your use case requires to keep the interface focused.

Anatomy

ElementDescription
Column HeaderrequiredDisplays titles, sorting controls, and bulk selection.
Body RowsrequiredRows with consistent data structure.
FooterDisplays summary or totals.
Top BarContains title, toolbar, and filters.
Bottom BarContains pagination controls.
Support PanelsDisplays row details in a side panel.

Import

ts
import {useXDSTableSortable} from '@xds/core/Table'

Props

PropTypeDescription
sortrequired
XDSTableSortState<TSortKey>Current sort state. Ordered array of {sortKey, direction} entries. First entry is the primary sort.
onSortChangerequired
(sort: XDSTableSortState<TSortKey>) => voidCalled when the user clicks a header cell to change sort.
allowUnsortedState
boolean (default: false)Allow cycling back to unsorted. When true: asc, desc, unsorted. When false: asc, desc, asc.
isMultiSortEnabled
boolean (default: false)Enable multi-sort via Shift+click. Regular click still replaces the entire sort state.