Skip to content

feat(virtual-table): compound-components VirtualTable (design-study cell F1-A2)#4739

Draft
gethinwebster wants to merge 1 commit into
mainfrom
virtualtable-F1-A2
Draft

feat(virtual-table): compound-components VirtualTable (design-study cell F1-A2)#4739
gethinwebster wants to merge 1 commit into
mainfrom
virtualtable-F1-A2

Conversation

@gethinwebster

Copy link
Copy Markdown
Member

Summary

Adds VirtualTable (design-study cell F1-A2): a new, additive, virtualization-first compound-components table that coexists with Table (not a rewrite). Composition is VirtualTable.Root / Header / HeaderCell / Body / Row / Cell / ExpandedContent, where the Body row-template (item, api) => Row is invoked only for windowed rows.

Highlights:

  • First-class row virtualization (single owned scroll container, opt-in measure-on-first-entry + incremental offset correction; fixed rows pay no observer cost).
  • Arbitrary non-tabular row expansion (R-EXPAND): VirtualTable.ExpandedContent renders content with a different structure from the columns, with measured variable expanded-row heights and a valid grid-child disclosure a11y model.
  • Full-dataset ARIA under windowing (aria-rowcount/rowindex/colcount/colindex), materialised disclosure column, single tab stop + aria-activedescendant, row-granular keyboard.
  • CloudWatch Logs Insights demo across standard + patterns + raw views (live tail, per-column sort, diff/compare, shared histogram scale), density preserved (23 / 300 / 150 / 20px).

Testing

  • npm run build green; npm run lint green (0 errors); unit + a11y suites green (56/56 across 4 suites: use-virtual-model, use-expansion, virtual-table, virtual-table-a11y). Used npm install (not npm ci).

Known limitations / follow-ups

  • The API documenter (build-tools/tasks/docs.js) supports only a single-function default export per index.tsx; a compound-namespace component cannot be introspected. VirtualTable is temporarily excluded from the documenter glob (clearly commented) and its API is described in src/virtual-table/USAGE.md — documenter support for compound components is a follow-up.
  • One eslint advisory (prefer-live-region) on the raw aria-live node — a follow-up to adopt the internal LiveRegion component.

Human-gated (NOT in scope)

Official Cloudscape API review and design/release sign-off. This is one framing/approach cell (F1-A2) of a broader design study; the final API is subject to team review.

…dy cell F1-A2)

Additive, virtualization-first compound table (VirtualTable.Root/Header/
HeaderCell/Body/Row/Cell/ExpandedContent) with arbitrary non-tabular row
expansion (R-EXPAND), measured variable row + expanded-row heights, live tail,
per-column sort, and a CloudWatch Logs Insights demo (standard + patterns +
raw views). Unit + a11y tests and usage docs included.

Build/lint/tests green. Draft design-study PR; official Cloudscape API review +
design/release sign-off remain human-gated.
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