An honest accounting of what is not yet built, audited against the shipped
demo catalog. Most of what used to live here has shipped; the remaining gaps
are small and clearly marked. Each entry has a rough effort estimate (S / M / L).
Shipped items are struck through with the demo or API that covers them, so you
can see both the trajectory and the (short) list of real gaps.
shipped as cell merging - rowspan in MergeSpec; demo 170-cell-merging
✓
Full-width / detail row API
shipped - isDetailRow; demo 106-detail-rows
✓
Variable row height with <SvGrid>
shipped - rowHeight accepts (rowIndex) => px
✓
Auto row height (measure content)
shipped - autoRowHeight wraps cell text and measures each row, virtualization included
✓
api.getDisplayedRows()
shipped
✓
Client-side tree data (hierarchical rows)
shipped - treeData nests by parent id, flattenTreeData converts nested children; treegrid role + arrow-key expand; demo 426-tree-data
✓
Built-in row dragging
shipped - rowDragManaged reorders in-grid and moves rows grid-to-grid via a shared rowDragGroup; onRowDragEnd on the receiver; demos 105-row-reorder (custom) + 180-row-dragging (managed)
shipped - moveCells, on by default with cell selection; demo 429-move-cells
✓
Render inside a shadow root
shipped - <sv-grid-shadow> in @svgrid/grid-wc. Open roots only; closed is unsupported, because a null shadowRoot leaves you unable to style, query or test your own grid
✓
Eight draggable resize handles on a selection
declined - shift-click, shift-arrow, pointer drag and Ctrl+drag already resize a range four ways. Eight more hit targets per range in the hottest render path buys an interaction users already have.
-
Export / Print
Gap
Status
Effort
Excel / xlsx, PDF, styled-HTML export, Print
shipped in @svgrid/enterprise (CSV / TSV / JSON export is free in @svgrid/grid) - demos 21, 56-59, 93, 101, 119, 126, 127
✓
Filtering
Gap
Status
Effort
between operator in the column menu
shipped - demo 64-filter-between-operator
✓
Set filter (tree-list, async, Excel-mode)
shipped - demo 111-set-filter-advanced
✓
Locale-aware text filtering
shipped - demo 110-locale-aware-filter
✓
clearAllFilters() / getFilters()
shipped
✓
Floating filters (per-operator)
shipped - filter row honours every operator per column with typed inputs + inline between; demo 179
✓
Multi-condition filter within one column (AND / OR)
shipped - two conditions per column via the funnel or api.setFilter; demo 178
shipped - editorOptions may return a Promise (per column or per row), with a loading state, caching and api.refreshEditorOptions(); demo 428-async-editor-options
✓
The real remaining gaps (short list)
The previous round shipped declarative col/row spanning, cell flash,
valueParser, programmatic start/stop editing, full-row editing, multi-condition
filters, per-operator floating filters, and managed grid-to-grid row dragging -
all with demos and docs. What is left is a short list of AG-Grid-Enterprise
parity items, mostly UX affordances on top of engines that already exist:
Audited against the code and the 171-demo catalog (four-way inventory, June 2026).
This list is deliberately short - most AG-Grid-Enterprise parity items already
ship (row-group panel 89, status bar 144, tool panel 146, pivot + designer,
server-side row model 148, export with images/styles 56/58, charts,
sparklines, collaboration). The genuine remaining gaps:
Gap
What exists today
Effort
Multiple range selection (Ctrl-drag additional cell ranges)
shipped - a column filter takes a second condition joined by AND / OR, in the menu and via api.setFilter
✓
Custom filter / floating-filter component slot
first-class pluggable filter. Needs a MODEL seam as well as a render one: menu filters compile through compileExcelFilter from the closed FilterOperator union, so there is nowhere for a consumer predicate to enter today
L
Custom tool panels
panel is fixed Columns + Filters (toolPanelDefaultTab is a "columns" | "filters" union, with no registry)
M
UI-string localisation
shipped - the localization prop takes { locale, text }, where text is a partial GridMessages; every menu/panel/chrome string is overridable. Note there is no localeText prop, and no translation catalogues ship in the box - you supply the strings. See i18n and RTL
✓
Row-grouping display modes + group-level footers
shipped - groupDisplayMode: 'groupRows' | 'singleColumn' | 'multipleColumns' plus groupFooters and grandTotalRow; demo 427-group-footers
✓
In-grid pivot mode (toggle on the main grid)
shipped - enablePivot() registers the engine and the main grid pivots in place
shipped - crossFilter config plus applyChartCrossFilter / clearChartCrossFilter, wired from chart selection in SvGridChartPanel, with a Clear filter button; the panel toolbar has chart-type switching, export, AI, add-chart, tabs, maximize, dock and pop out. The picker now reaches all 15 types (it offered 4), gated on whether the current columns can feed each one, and --sg-chart-* tokens let a theme recolour the series
✓
Server-side pivot / viewport row model
SSRM ships sort/filter/group/infinite
L
What's already there
The stable, built-in feature surface is large. Highlights: sorting (single +
multi), per-column filtering (menu + row + global) with a between range
operator and set/tree/async filters, pagination, grouping + aggregation, tree
data, master/detail + full-width detail rows, row + column virtualization
(100k+ and a 1M-row demo), cell-range selection + copy/paste + Excel-style fill
handle + drag-the-border move/copy, inline editing with 14 editor types plus a custom cellEditor slot,
undo/redo, staged editing, find-in-grid, notes + cell comments, tooltips,
conditional formatting, sparklines, cell merging, column pinning/reorder/resize,
row pinning, a formula engine (+ HyperFormula adapter), server-side row model,
Excel/PDF/CSV/HTML export + print (Enterprise), pivot + charts + AI (Enterprise),
WAI-ARIA + keyboard nav, RTL, i18n, theming via --sg-* tokens, SSR, and a
CSP-clean runtime.
How to contribute
Pick a gap from The real remaining gaps above.
Open an issue describing the API you'd want - names, types, the minimal change.
If you can write the patch, do so, and keep tests with the change.