feat(tables): add tree support - #1338
Conversation
🦋 Changeset detectedLatest commit: 8b84560 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📦 NPM canary releaseDeployed canary version 0.0.0-canary-7475904. |
🧪 Storybook is successfully deployed!
|
🏋️ Size limit report
Compared against main at 11e8319 — run 32383738012, 2026-08-20T15:02:21Z.To see which modules changed, download the size-limit-statoscope-report artifact from this run and open report.html. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a8e5a2b. Configure here.

Summary
Verification
Note
Medium Risk
Touches the shared table renderer, selection, keyboard focus, and virtualization. Behavior is opt-in via
getRowChildren, but bugs here can affect accessibility and selection in both tables.Overview
Adds opt-in nested rows to
ItemTableandDataTableviagetRowChildren, with controlled/uncontrolled expansion (expandedKeys/defaultExpandedKeys/onExpand) and a disclosure column (treeColumnKey).A shared immutable tree model recursively sorts siblings, paginates roots (keeping subtrees together), and flattens only expanded rows for render and virtualization. ItemTable client search keeps ancestor paths and temporarily opens matching branches. Multiple selection cascades by default (
treeSelectionBehavior); DataTable cell ranges and row numbers follow visible descendants. Flat reorder is ignored in tree mode;dropOnRowrejects self/descendant cycles.The native table becomes
role="treegrid"with React Aria keyboard/typeahead, virtualized focus handoff, andTreeContent/TreeToggle/TreeValuestyling. Bundle budget rises 505→510 kB; Button tree-shaking is unchanged.Reviewed by Cursor Bugbot for commit 8b84560. Bugbot is set up for automated code reviews on this repo. Configure here.