Table
A native-table data engine for sorting, filtering, selection, editing, grouping, column layout, remote requests and versioned enterprise state.
GET STARTED
Import
Import NeuralTable and only the template directives used by the standalone consumer.
Basic table
A Table needs only a typed row collection and column model. It renders a native table, keeps the source array immutable and requires no module or wrapper markup.
| NN-1001 | Signal Desk | Office | $899 |
| NN-1002 | Hydration Lamp | Lighting | $129 |
| NN-1003 | Standalone Chair | Office | $549 |
| NN-1004 | Neural Speaker | Audio | $249 |
Typed column model
Column definitions carry field access, alignment and formatting without hiding the row type from TypeScript.
Formatting and pipes
Cell templates accept Angular's built-in and standalone custom pipes. Formatting stays in the presentation layer, while Table continues to sort and filter the original price, date and inventory values.
| Signal Desk | $899.00 | 24 units | Aug 4, 2026 | Available now |
| Hydration Lamp | $129.00 | 7 units | Jul 21, 2026 | Limited availability |
| Standalone Chair | $549.00 | 0 units | Jun 12, 2026 | Unavailable |
| Neural Speaker | $249.00 | 18 units | May 30, 2026 | Available now |
Type note: Angular cannot infer a property type from the runtime column id on a projected template. $any(row) is therefore limited to the binding boundary; the Table value and column definitions remain typed as Product.
Interactive inventory
The same client-side rows are globally filtered, filtered per column, sorted and expanded without mutating the input array.
| Row expansion | Status | |||||
|---|---|---|---|---|---|---|
| NN-1001 | Signal Desk | Office | $899 | 24 | In stock | |
| NN-1002 | Hydration Lamp | Lighting | $129 | 7 | Low stock | |
| NN-1003 | Standalone Chair | Office | $549 | 0 | Out of stock | |
| NN-1004 | Neural Speaker | Audio | $249 | 18 | In stock | |
| NN-1005 | Token Shelf | Storage | $319 | 4 | Low stock | |
| NN-1006 | Headless Clock | Accessories | $89 | 31 | In stock |
Density and visual variants
Density controls spacing independently from striped rows, hover feedback and gridlines. Every combination still resolves through Table tokens.
Compact · striped · gridlines
| NN-1001 | Signal Desk | Office | $899 |
| NN-1002 | Hydration Lamp | Lighting | $129 |
| NN-1003 | Standalone Chair | Office | $549 |
Spacious · quiet rows
| NN-1001 | Signal Desk | Office | $899 |
| NN-1002 | Hydration Lamp | Lighting | $129 |
| NN-1003 | Standalone Chair | Office | $549 |
Paginator integration
Table owns client slicing while NeuralPaginator owns navigation, its localized report and the NeuralSelect page-size control. Both components bind the same Signal models.
| NN-1001 | Signal Desk | Office | $899 |
| NN-1002 | Hydration Lamp | Lighting | $129 |
| NN-1003 | Standalone Chair | Office | $549 |
Advanced selection
Checkbox and radio controls, row clicks, Shift ranges, Ctrl/Meta toggles, disabled-row callbacks and page/filtered/all scopes share one key-safe model.
No table interaction yet.
| NN-1001 | Signal Desk | Office | $899 | |
| NN-1002 | Hydration Lamp | Lighting | $129 | |
| NN-1003 | Standalone Chair | Office | $549 | |
| NN-1004 | Neural Speaker | Audio | $249 | |
| NN-1005 | Token Shelf | Storage | $319 | |
| NN-1006 | Headless Clock | Accessories | $89 |
Single radio selection
No active product| NN-1001 | Signal Desk | Office | $899 | |
| NN-1002 | Hydration Lamp | Lighting | $129 | |
| NN-1003 | Standalone Chair | Office | $549 | |
| NN-1004 | Neural Speaker | Audio | $249 |
Expandable rows
Stable row keys control disclosure state. The typed expansion template receives the full row without replacing native table semantics or keyboard behavior.
| Row expansion | ||||
|---|---|---|---|---|
| NN-1001 | Signal Desk | Office | $899 | |
| NN-1002 | Hydration Lamp | Lighting | $129 | |
| NN-1003 | Standalone Chair | Office | $549 | |
| NN-1004 | Neural Speaker | Audio | $249 |
Cell and row editing
Editable columns open typed drafts. Enter saves, Escape cancels and Tab validates before moving. Row mode shares one draft and supports asynchronous validation.
| NN-1001 | Signal Desk | Office | $899 |
| NN-1002 | Hydration Lamp | Lighting | $129 |
| NN-1003 | Standalone Chair | Office | $549 |
| NN-1004 | Neural Speaker | Audio | $249 |
Click or press Enter on a product name. Enter saves; Escape cancels.
Row editing with Neural controls
No edit interaction yet.| Featured | Actions | ||||
|---|---|---|---|---|---|
| NN-1001 | Signal Desk | Office | $899 | Yes | |
| NN-1002 | Hydration Lamp | Lighting | $129 | No | |
| NN-1003 | Standalone Chair | Office | $549 | Yes | |
| NN-1004 | Neural Speaker | Audio | $249 | No | |
| NN-1005 | Token Shelf | Storage | $319 | Yes | |
| NN-1006 | Headless Clock | Accessories | $89 | No |
Scroll and column layout
Sticky edges, constrained scrolling, fit/expand resizing, visibility and pointer/keyboard reordering remain controlled models.
| NN-1001 | Signal Desk | Office | $899 | 24 | In stock |
| NN-1002 | Hydration Lamp | Lighting | $129 | 7 | Low stock |
| NN-1003 | Standalone Chair | Office | $549 | 0 | Out of stock |
| NN-1004 | Neural Speaker | Audio | $249 | 18 | In stock |
| NN-1005 | Token Shelf | Storage | $319 | 4 | Low stock |
| NN-1006 | Headless Clock | Accessories | $89 | 31 | In stock |
Grouped headers and summaries
Nested definitions resolve native colspan and rowspan from visible leaf columns. Header/footer templates can replace any resolved group.
| Product information | Operations | ||||
|---|---|---|---|---|---|
| Status | |||||
| NN-1001 | Signal Desk | Office | $899 | 24 | In stock |
| NN-1002 | Hydration Lamp | Lighting | $129 | 7 | Low stock |
| NN-1003 | Standalone Chair | Office | $549 | 0 | Out of stock |
| NN-1004 | Neural Speaker | Audio | $249 | 18 | In stock |
Footer summaries
Typed footer templates receive the processed rows, so totals, averages, minimums and maximums stay aligned with the active filter and can remain frozen with the table footer.
| Status | |||||
|---|---|---|---|---|---|
| NN-1001 | Signal Desk | Office | $899 | 24 | In stock |
| NN-1002 | Hydration Lamp | Lighting | $129 | 7 | Low stock |
| NN-1003 | Standalone Chair | Office | $549 | 0 | Out of stock |
| NN-1004 | Neural Speaker | Audio | $249 | 18 | In stock |
| NN-1005 | Token Shelf | Storage | $319 | 4 | Low stock |
| NN-1006 | Headless Clock | Accessories | $89 | 31 | In stock |
| $2,234 | 84 units |
Row grouping and aggregation
Subheader and rowspan modes accept nested paths or callbacks. Typed group contexts expose rows plus sum, average, minimum and maximum helpers.
| NN-1001 | Signal Desk | Office | $899 |
| NN-1003 | Standalone Chair | Office | $549 |
| 2 product(s) | |||
| NN-1002 | Hydration Lamp | Lighting | $129 |
| 1 product(s) | |||
| NN-1004 | Neural Speaker | Audio | $249 |
| 1 product(s) | |||
| NN-1005 | Token Shelf | Storage | $319 |
| 1 product(s) | |||
| NN-1006 | Headless Clock | Accessories | $89 |
| 1 product(s) | |||
Rowspan mode
| NN-1001 | Signal Desk | Office | $899 |
| NN-1003 | Standalone Chair | $549 | |
| NN-1002 | Hydration Lamp | Lighting | $129 |
| NN-1004 | Neural Speaker | Audio | $249 |
| NN-1005 | Token Shelf | Storage | $319 |
| NN-1006 | Headless Clock | Accessories | $89 |
Remote data and enterprise state
Remote mode never transforms supplied rows. Every request carries a monotonic requestId; state can be serialized to URL parameters or persisted through local, session or custom adapters.
| NN-1001 | Signal Desk | Office | $899 |
| NN-1002 | Hydration Lamp | Lighting | $129 |
| NN-1003 | Standalone Chair | Office | $549 |
No remote request yet.
Loading, empty and error
Message or skeleton loading, empty results and errors preserve table geometry and each accepts a typed replacement template.
| No products match the current filters. | |||
| Inventory service is temporarily unavailable. | |||
| Loading data | |||
Unstyled and typed slots
Native table markup, state hooks and interaction remain while Tailwind owns every visible layer.
| NN-1001 | Signal Desk | Office | $899 |
| NN-1002 | Hydration Lamp | Lighting | $129 |
| NN-1003 | Standalone Chair | Office | $549 |
Beta boundaries
Table owns data presentation and interaction, not API transport or virtualization. Bind VirtualScroller for very large flat collections and keep remote fetching in application state.
ACCESSIBILITY
Native table behavior
NeuralTable retains table, caption, thead, tbody, tfoot and scoped header semantics instead of replacing them with a synthetic grid role.
Native semantics
Use caption or ariaLabel/ariaLabelledby for a name and ariaDescribedby for surrounding guidance. Grouped headers resolve valid colspan, rowspan and scope relationships.
Sorting and filtering
Sortable headers use real buttons and aria-sort. Filter controls receive column-specific labels and remain reachable in predictable document order.
Selection keyboard model
Selectable rows use roving tabindex. Arrow Up/Down and Home/End move focus; Space or Enter selects. Disabled rows are skipped by navigation and Shift ranges.
Editing keyboard model
Enter starts or saves, Escape cancels, and Tab commits before advancing to the next editable cell. Async validation retains focus and exposes its error.
Loading and live state
aria-busy communicates loading. Error and empty content remain inside correctly spanned table rows; resize and reorder announcements use localized labels.
SSR, hydration and cleanup
Storage is browser-guarded. Pending filter timers, pointer listeners, edit validation and persistence operations are cancelled or invalidated during destruction.
PUBLIC CONTRACT
Table API
The Beta contract includes the complete Alpha feature surface and its typed helper APIs.
Inputs and models
| Name | Type | Default | Purpose |
|---|---|---|---|
| value | readonly T[] | [] | Rows supplied to the table. |
| columns | readonly NeuralTableColumn<T>[] | required | Typed leaf-column definitions. |
| rowKey | keyof T | path | callback | null | null | Stable identity for selection, expansion and remote state. |
| dataMode | 'client' | 'remote' | 'client' | Controls whether data operations are local or emitted. |
| stateKey / stateStorage / stateAdapter | persistence inputs | null / local / null | Selects built-in or custom state persistence. |
| groupRowsBy | keyof T | path | callback | null | null | Groups rows by a nested value or accessor. |
| rowGroupMode | 'subheader' | 'rowspan' | 'subheader' | Chooses grouped-row presentation. |
| expandableRowGroups | boolean | false | Enables group disclosure controls. |
| expandedRowGroupKeys | model<readonly RowKey[]> | [] | Controlled expanded group keys. |
| sortMode | 'single' | 'multiple' | 'single' | Sort contract for sortable columns. |
| selectionMode | 'none' | 'single' | 'multiple' | 'none' | Enables row selection. |
| selectionControl | 'auto' | 'checkbox' | 'radio' | 'auto' | Visible selection control. |
| selectAllMode | 'page' | 'filtered' | 'all' | 'page' | Scope of select-all. |
| selectOnRowClick | boolean | true | Allows the row surface to select. |
| selectableRow | (row, index) => boolean | () => true | Disables individual rows from selection. |
| selectAllKeys | readonly RowKey[] | [] | Complete remote key scope for filtered/all selection. |
| sort / filters / globalFilter | models | [] / [] / null | Controlled data-operation state. |
| selection / selectionKeys | models | [] | Controlled row and key selection. |
| expandedRowKeys | model<readonly RowKey[]> | [] | Controlled row expansion. |
| columnWidths / hiddenColumnIds / columnOrder | models | {} / [] / [] | Controlled column layout. |
| headerGroups / footerGroups | readonly NeuralTableHeaderGroup[] | [] | Nested grouped header and footer definitions. |
| pageIndex / pageSize | number models | 0 / 10 | Controlled paging state. |
| paginate / totalItems | boolean / number | null | false / null | Client slicing and remote result count. |
| editMode / editValidator | cell | row | null / callback | null | Editing mode and sync/async validation. |
| loading / loadingMode / loadingRows | state inputs | false / 'message' / 5 | Loading message or skeleton rows. |
| error | string | null | null | Error state message. |
| disabled | boolean | false | Disables interactive table behavior. |
| striped / hoverable / gridlines | boolean | false / true / false | Visual row and grid variants. |
| stickyHeader / stickyFooter | boolean | false | Pins table edge sections in a scroll surface. |
| scrollHeight | string | '' | Constrains the scroll viewport block size. |
| resizableColumns / reorderableColumns | boolean | false | Enables pointer and keyboard column layout. |
| columnResizeMode | 'fit' | 'expand' | 'fit' | Determines adjacent-width behavior. |
| minColumnWidth / columnResizeStep | number | 64 / 8 | Resize constraints in CSS pixels. |
| filterDelay | number | 250 | Text/number filter debounce in milliseconds. |
| density | 'compact' | 'comfortable' | 'spacious' | 'comfortable' | Semantic row-density preset. |
| caption | string | '' | Native table caption. |
| ariaLabel / ariaLabelledby / ariaDescribedby | string | '' | Accessible table naming and description. |
| labels | Partial<NeuralTableLabels> | {} | Component-level localized copy override. |
| unstyled / tableClass / classes | headless inputs | false / empty / {} | Visual ownership and additive classes. |
Outputs
sortEvent / filterEventsort and filter eventsDetailed user data-operation events.
selectionEventNeuralTableSelectionChange<T>Selection rows, keys, reason and native event.
rowSelect / rowUnselectNeuralTableRowEvent<T>Semantic row selection lifecycle.
rowClick / rowDoubleClickNeuralTableRowEvent<T>Native row activation details.
expansionChange / rowGroupExpansionChangeexpansion eventsRow and group disclosure changes.
columnResize / columnVisibilityChange / columnReordercolumn eventsControlled layout changes.
stateChange / stateRestorestate eventsSerializable state requests and restoration.
cellEditStart / Complete / CancelNeuralTableEditEvent<T>Cell editing lifecycle.
rowEditStart / Save / CancelNeuralTableRowEditEvent<T>Row editing lifecycle.
Typed templates
neuralTableCell="id"Typed body cell context.
neuralTableEditor="id"Draft editor with setValue, save and cancel.
neuralTableHeader="id"Leaf-column header.
neuralTableHeaderGroup="id"Resolved grouped header.
neuralTableFilter="id"Column filter control and apply/clear callbacks.
neuralTableFooter="id"Leaf-column footer.
neuralTableFooterGroup="id"Resolved grouped footer.
neuralTableExpansionExpanded row content.
neuralTableGroupHeaderRow-group header and aggregate helper.
neuralTableGroupFooterRow-group footer and aggregate helper.
neuralTableLoadingCustom loading state.
neuralTableEmptyCustom empty state.
neuralTableErrorCustom error state.
Public methods
clearFilters(includeGlobal?)Clears filter state.
setFilters(filters, global?)Replaces controlled filters.
setPage(index, size?)Updates controlled paging.
startCellEdit / startRowEditBegins a typed draft.
saveEdit / cancelEditCommits validation or restores source data.
setColumnVisibility / toggleColumnVisibility / showAllColumnsControls visible columns.
captureState / serializeState / restoreStateCreates and restores versioned JSON-safe state.
clearStoredState()Removes the configured persistence snapshot.
isLatestRequest(id)Rejects stale remote responses.
Column contract
Typed class slots
Public types
Pure utilities
Legacy alias
TableComponent remains available for compatibility. New human and AI-generated code should import NeuralTable.
DESIGN TOKENS
Table tokens
Every production visual remains a CSS variable, while structural markup and interaction stay stable.
Surfaces and content
--neural-table-colorComponent foreground color.
--neural-table-muted-colorMuted foreground color.
--neural-table-backgroundComponent background surface.
--neural-table-header-backgroundHeader background surface.
--neural-table-header-colorHeader foreground color.
--neural-table-filter-backgroundFilter background surface.
--neural-table-filter-control-backgroundFilter control background surface.
--neural-table-group-header-backgroundGroup header background surface.
--neural-table-group-header-colorGroup header foreground color.
--neural-table-footer-backgroundFooter background surface.
--neural-table-footer-colorFooter foreground color.
--neural-table-footer-group-backgroundFooter group background surface.
--neural-table-footer-group-colorFooter group foreground color.
--neural-table-cell-backgroundCell background surface.
--neural-table-stripe-backgroundStripe background surface.
--neural-table-sticky-stripe-backgroundSticky stripe background surface.
--neural-table-hover-backgroundHover background surface.
--neural-table-selected-backgroundSelected background surface.
--neural-table-sticky-backgroundSticky background surface.
--neural-table-expansion-content-backgroundExpansion content background surface.
--neural-table-expansion-backgroundExpansion background surface.
Interaction and state
--neural-table-filter-control-borderFilter control border shorthand.
--neural-table-filter-control-border-hoverHovered filter control border shorthand.
--neural-table-resize-handle-colorResize handle foreground color.
--neural-table-resize-handle-active-colorResize handle active foreground color.
--neural-table-reorder-handle-colorReorder handle foreground color.
--neural-table-reorder-handle-active-colorReorder handle active foreground color.
--neural-table-drop-indicator-colorDrop indicator foreground color.
--neural-table-expansion-background-hoverHovered expansion background surface.
--neural-table-borderComponent border shorthand.
--neural-table-row-borderRow border shorthand.
--neural-table-expansion-borderExpansion border shorthand.
--neural-table-expansion-border-hoverHovered expansion border shorthand.
--neural-table-focus-colorFocus foreground color.
--neural-table-row-focus-colorRow focus foreground color.
--neural-table-disabled-row-opacityDisabled row opacity.
--neural-table-accentComponent accent color.
--neural-table-selected-indicatorColor of the inset indicator on the first cell of a selected Table row.
--neural-table-sorted-colorSorted foreground color.
--neural-table-sort-hover-colorSort hover foreground color.
--neural-table-sort-icon-colorSort icon foreground color.
--neural-table-control-backgroundControl background surface.
--neural-table-control-borderControl border shorthand.
--neural-table-scrollbar-colorScrollbar foreground color.
Layout, shadow and editing
--neural-table-shadowComponent box shadow.
--neural-table-sticky-start-shadowSticky start box shadow.
--neural-table-sticky-end-shadowSticky end box shadow.
--neural-table-expansion-shadowExpansion box shadow.
--neural-table-radiusComponent corner radius.
--neural-table-font-sizeComponent font size.
--neural-table-row-heightRow block size.
--neural-table-cell-paddingCell internal spacing.
--neural-table-editable-hover-backgroundEditable hover background surface.
--neural-table-editing-backgroundEditing background surface.
--neural-table-editing-row-backgroundEditing row background surface.
--neural-table-editing-border-colorEditing border color.
--neural-table-edit-error-colorEdit error severity foreground color.
--neural-table-filter-cell-paddingFilter cell internal spacing.
--neural-table-filter-control-radiusFilter control corner radius.
--neural-table-caption-paddingCaption internal spacing.
--neural-table-state-paddingState internal spacing.
--neural-table-expansion-paddingExpansion internal spacing.
--neural-table-transition-durationTransition animation duration.