Skip to content

feat(virtual-table): headless-core + compound-skin VirtualTable (F3-A2 design-study)#4742

Closed
gethinwebster wants to merge 1 commit into
mainfrom
virtualtable-F3-A2
Closed

feat(virtual-table): headless-core + compound-skin VirtualTable (F3-A2 design-study)#4742
gethinwebster wants to merge 1 commit into
mainfrom
virtualtable-F3-A2

Conversation

@gethinwebster

Copy link
Copy Markdown
Member

Summary

Additive, virtualization-first VirtualTable component (coexists with Table; not a rewrite). This PR is the F3-A2 cell of a VirtualTable design study: a headless useVirtualGrid core (windowing, opt-in per-row + expanded-row measurement, coherent full-dataset grid a11y, roving active-descendant focus, arbitrary non-tabular row expansion, live-append) with a thin compound Cloudscape skin (Root/Header/HeaderCell/Body/Row/Cell/ExpandedContent) that spreads the core's roles/ARIA rather than authoring its own.

What it does

  • First-class row virtualization for large / streaming datasets (single owned scroll container; fixed rows pay no ResizeObserver cost; only auto rows + expanded regions are measured; anchor-based offset correction).
  • Custom (arbitrary, non-tabular) row expansion as a first-class <VirtualTable.ExpandedContent> child — valid grid-child a11y (real role=row → full-width role=gridcell → labeled role=region, aria-expanded/aria-controls, Tab-in/Escape-out), measured variable expanded-row heights under windowing.
  • Full-dataset aria-rowcount/aria-rowindex + materialised disclosure column + aria-colcount/aria-colindex coherence under windowing.
  • Implements the CloudWatch Logs Insights standard + patterns views and the raw/file surface (see pages/virtual-table/).

Testing

  • npm run build green.
  • npm run lint (eslint + stylelint + prettier) green (0 errors).
  • Unit + a11y suites green: 4 suites / 60 tests (axe across views, keyboard, Escape-out, sort trigger, full-dataset ARIA, live-append debounce, focus-under-recycling).

Human-gated (out of scope for this draft)

  • Official Cloudscape API review + design/release sign-off.
  • One eslint warning: internal aria-live node prefers the internal LiveRegion component (follow-up).
  • Full-run coverage thresholds confirmed at CI.
  • This is one framing/approach cell of a design study; the final API is subject to team review.

Adds an additive, virtualization-first VirtualTable as a headless useVirtualGrid core (windowing, opt-in per-row + expanded-row measurement, coherent full-dataset grid a11y, roving active-descendant focus, arbitrary non-tabular row expansion, live-append) with a thin compound Cloudscape skin (Root/Header/HeaderCell/Body/Row/Cell/ExpandedContent) that spreads the core's roles/ARIA. Implements the CloudWatch Logs Insights standard + patterns views and the raw/file surface. One of several design-study framing/approach cells; final API subject to team review.
@gethinwebster

Copy link
Copy Markdown
Member Author

Superseded by #4753 (dev-v3-gethinw-virtualtable-* branch): same Headless (F3-A2) design cell, reworked with Table-matched default styling + the P6 fix pass (bounded-viewport windowing, row-height clamp, disclosure glyph, focus-gated active outline). Closing this earlier design-study PR in favour of #4753.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant