You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(data-table): refresh grid-mode coverage in comparison + demo
Grid interaction mode shipped, so the comparison page no longer lists it
under "What Rozie defers": drop the inert-in-v1 bullet, add a win bullet for
interactionMode="grid", add an APG grid-keyboard-nav feature-matrix row, and
correct the surface counts to 15 props / 9 events / 15-verb handle. Fix the
demo page's "eight change events" -> nine.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013wvxhsB5hcDKD8UadLLSyw
@@ -56,16 +57,16 @@ Cell legend: **✅** = documented out-of-the-box · **❌** = not supported / no
56
57
-**Nine independent two-way state slices, controlled *or* uncontrolled.** Sorting, global filter, column filters, pagination, row selection, column visibility / sizing / order / pinning — each is an optional `r-model` you bind only if you want to own it, and each change event fires regardless of binding so you can observe transitions either way.
57
58
-**A declarative `<Column>` API with per-column templates** (the PrimeVue-shaped surface) *and* a `:columns` config-array escape hatch, resolved by an id-keyed last-write-wins union — plus per-column `#cell` / `#header` reactive templates (a render-prop on React, the one documented divergence).
58
59
-**Zero-config styling that re-skins to any design system.** Every rendered value is a `--rozie-data-table-*` CSS custom property with a built-in fallback, plus ready-made token bridges for shadcn/ui, Material 3, and Bootstrap 5 — no required CSS import.
60
+
-**Opt-in WAI-ARIA grid mode, identical on all six targets.** Set `interactionMode="grid"` for the full [APG grid pattern](https://www.w3.org/WAI/ARIA/apg/patterns/grid/) — `role="grid"`, a roving single tab-stop, and 2-D arrow-key cell navigation that survives a re-sort / filter / page change / column hide-reorder-pin (the active cell is tracked as a `{ rowIndex, colIndex }` pair over the visible model, never a stored DOM node). It is drivable and observable via the `focusCell` / `getActiveCell` / `clearActiveCell` handle verbs and the `activecell-change` event, and the behavioral contract is locked by a cross-framework VR matrix. The default `interactionMode="table"` stays a plain accessible table, byte-for-byte unchanged.
59
61
60
62
## What Rozie defers {#what-rozie-defers}
61
63
62
64
This page concedes where the incumbents are genuinely ahead — that's what keeps the comparison credible, and it doubles as Rozie's own roadmap.
63
65
64
66
-**AG Grid's enterprise depth.**[AG Grid](https://www.ag-grid.com/) ships row grouping, tree data, pivoting, range selection, master/detail, integrated charting, and a deep server-side row model. `@rozie-ui/data-table` covers the common surface (sort / filter / paginate / select / column management) and a `manual` server-side hook, not the enterprise feature set.
65
67
-**Row/cell virtualization.** Large datasets render every row today — there is no built-in windowing. Virtualization is a planned phase (the published support boundary is a row-count ceiling until it lands); for now, paginate or pre-window large data yourself.
66
-
-**Full APG grid keyboard navigation.** The `interactionMode="grid"` seam is reserved but inert in v1 — arrow-key cell navigation per the [WAI-ARIA grid pattern](https://www.w3.org/WAI/ARIA/apg/patterns/grid/) is a future additive layer. The default table-oriented focus surface (Tab between native controls) is fully accessible today.
67
68
-**TanStack's expansion / grouping / faceting helpers.** The shared `table-core` exposes more row-model features (expanding, grouping, faceted filters) than `@rozie-ui/data-table` surfaces in its current prop set. They are reachable via the imperative handle / future additive props.
68
-
-**`@rozie-ui/data-table` is `0.1.0`.** The surface (16 props / 9 two-way slices / 8 events / 12-verb handle / declarative `<Column>` + per-column templates / 2 selection slots) is stable and gate-verified across all six targets, but it is younger and less battle-tested than the established libraries.
69
+
-**`@rozie-ui/data-table` is `0.1.0`.** The surface (15 props / 9 two-way slices / 9 events / 15-verb handle / declarative `<Column>` + per-column templates / 2 selection slots) is stable and gate-verified across all six targets, but it is younger and less battle-tested than the established libraries.
Copy file name to clipboardExpand all lines: docs/components/data-table-demo.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,7 +90,7 @@ You author the component **once** as a `.rozie` file (the parent `DataTable.rozi
90
90
91
91
:::
92
92
93
-
Each is a real, idiomatic component for its framework — React `forwardRef` + hooks, Vue `<script setup>` + `defineModel`, Svelte 5 runes, an Angular standalone component, a Solid component, and a Lit custom element. Same props, same nine two-way slices, same eight change events, same `<Column>` API, same scoped slots, same imperative handle — all from the one source above, built on `@tanstack/table-core` with no per-framework adapter behind it.
93
+
Each is a real, idiomatic component for its framework — React `forwardRef` + hooks, Vue `<script setup>` + `defineModel`, Svelte 5 runes, an Angular standalone component, a Solid component, and a Lit custom element. Same props, same nine two-way slices, same nine change events, same `<Column>` API, same scoped slots, same imperative handle — all from the one source above, built on `@tanstack/table-core` with no per-framework adapter behind it.
0 commit comments