Skip to content

feat(virtual-table): Declarative VirtualTable — Table-matched default styling (dev-v3)#4747

Draft
gethinwebster wants to merge 3 commits into
mainfrom
dev-v3-gethinw-virtualtable-declarative
Draft

feat(virtual-table): Declarative VirtualTable — Table-matched default styling (dev-v3)#4747
gethinwebster wants to merge 3 commits into
mainfrom
dev-v3-gethinw-virtualtable-declarative

Conversation

@gethinwebster

Copy link
Copy Markdown
Member

Draft PR for the Declarative (F1-A1) VirtualTable thread, reworked on the dev-v3-gethinw-virtualtable-declarative branch (the dev-v3-* prefix mirrors into Brazil AwsUi-v3).

What changed vs the P4 thread

  • Rebranched from the P4 head (21ee74d) so all thread work (config-driven core, CloudWatch standard/patterns/raw dev pages, test-utils, unit + a11y tests, USAGE.md) is carried forward verbatim.
  • Default styling now matches the existing Cloudscape Table by reusing Table's own design tokens: header thead surface + divider, header-cell color/font/line-height/padding, per-row divider, selected-row surface (byte-identical to Table), sticky-header surface, default single-line truncate (= Table wrapLines=false) with an opt-in .cell-wrap hook (= Table wrapLines), and an expanded-region detail-panel treatment. No bespoke/invented values.
  • Native scrollbar only — no ::-webkit-scrollbar, no overlay/synthetic scrollbar; the virtualization viewport scrolls natively.

Verification (green)

  • npm run build — exit 0 (only pre-existing webpack asset-size warnings)
  • npm run lint (eslint + stylelint + prettier) — 0 errors
  • unit + a11y tests — 4 suites / 43 tests passed

Supersedes

This dev-v3 branch supersedes draft PR #4738 (head virtualtable-F1-A1) for the Declarative thread. A PR's head branch cannot be repointed, so this is a fresh draft; #4738 can be closed as superseded.

Human-gated (out of scope)

Official Cloudscape API review + design/release sign-off; the aria-live node -> internal LiveRegion documenter follow-up.

Add a new additive component that coexists with Table, aimed at large and
streaming datasets:

- First-class row virtualization with a single owned scroll container,
  opt-in per-row measurement, and incremental scroll-offset correction.
- Arbitrary non-tabular row expansion (render slot) with measured variable
  expanded-row heights and a valid grid-child disclosure a11y model.
- Full-dataset ARIA grid contract (aria-rowcount/rowindex, aria-colcount/
  colindex incl. a materialised disclosure column) under windowing.
- Config-driven props API mirroring Table where it transfers.
- CloudWatch Logs Insights demo pages (standard, patterns, raw/file views),
  unit + a11y tests, usage docs, and a test-utils wrapper.
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