feat(table-layout): TableLayout — markup-driven table primitives#195
Draft
abutusov-wallarm wants to merge 24 commits into
Draft
feat(table-layout): TableLayout — markup-driven table primitives#195abutusov-wallarm wants to merge 24 commits into
abutusov-wallarm wants to merge 24 commits into
Conversation
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… test Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bring the TableLayout design spec, the source Table feature inventory, and the Layer 1 (foundation) and Layer 2 (column engine) implementation plans into the design-system docs. The two Russian-authored documents are translated to English; cross-references are rewritten to the new paths. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add TableLayout stories — the basic markup-only path plus engine-driven alignment, pinning, resizing, and visibility — and the Playwright e2e suite covering them: four Visual screenshot tests and two interaction tests (resize drag, visibility toggle). Screenshot baselines are generated in the playwright:noble container via `pnpm e2e:docker:update`, matching the CI e2e container exactly. Run the screenshots through Docker, never the local host, so they stay identical between local and CI. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a short note to the component JSDoc and the Storybook description: Table is the primary table component and the default choice; TableLayout is the markup-driven alternative, to be adopted only when explicitly wanted or when Table cannot express the needed layout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
TableLayoutis the same table asTable, just assembled a different way — youhand-write the row and cell markup instead of driving it from a column config.
Tableremains the primary table component — use it by default. TreatTableLayoutas an alternative, more technical option: adopt it only when youexplicitly want markup-driven composition, or when
Table's data-driven APIgenuinely cannot express the layout you need. (This note is mainly a signal for
automated tooling/agents not to reach for
TableLayoutunprompted — default toTable.)Scope
<table>primitives —TableLayout,TableLayoutHead/Body/Row,TableLayoutHeaderCell/Cell,TableLayoutColumnGroup/Column— with acolumnIdregistry that binds cellsto their column for presentation inheritance.
useTableLayoutColumnscontroller hook foralignment, pinning, resizing, and column visibility. Metrics-ready per the DS
metrics contract (
ANALYTICS_GAPS.md).alignment, pinning, resizing, and visibility examples.
drag, visibility toggle). Baselines are generated in the
playwright:noblecontainer so they match the CI e2e environment exactly. Run via
pnpm e2e:docker— never the local host — to keep screenshots consistent.Tablefeature inventory, and both layerplans under
docs/superpowers/.TableLayoutis intentionally not exported from the package root barrel —local import only.
Verification
pnpm typecheckclean,biome checkclean, 24/24 unit tests pass.pnpm e2e:docker— 6/6 pass against the committed baselines.🤖 Generated with Claude Code