Repository navigation
feat(design): DS-X-09 table v2 - #1692
Merged
Merged
Conversation
Prop types only, no behaviour yet, so the failing tests compile. Test-First: src/design/data/table.sort.test.tsx::cycles aria-sort from none to ascending to descending by keyboard Test-First: src/design/data/table.sort.test.tsx::sorts one column at a time and compares numbers numerically Test-First: src/design/data/table.sort.test.tsx::renders the empty slot text through HonestState and the loading slot instead of the table Test-First: src/design/data/table.sort.test.tsx::keeps the header sticky inside the scroll region Test-First: src/design/data/table.selection.test.tsx::selection announces count Test-First: src/design/data/table.selection.test.tsx::marks selected rows with aria-selected Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sortable headers (aria-sort cycle none, ascending, descending by click, Enter and Space), optional row selection with the design Checkbox and a polite count, sticky header, empty text and loading through HonestState. No-Test: plan text only (docs/PLAN.md row); the behaviour is covered by the red tests of the previous commit. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Cuarroc
marked this pull request as ready for review
October 17, 2026 04:58
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Owner
Author
|
Root auto-queue: head 586879a unchanged since review-ok, all checks green. @Mergifyio queue |
30 of 46 tasks
Owner
Author
|
@Mergifyio queue |
Contributor
☑️ This pull request is already queued |
Contributor
Merge Queue Status
This pull request spent 13 minutes 46 seconds in the queue, including 13 minutes 18 seconds running CI. Required conditions to merge
|
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.
Die Tabelle im Designsystem kann jetzt nach Spalten sortiert werden (Klick, Enter oder Leertaste), optional Zeilen auswählen und sagt die Anzahl der Auswahl an. Die Kopfzeile bleibt beim Scrollen stehen, und für „leer“ und „lädt“ zeigt die Tabelle den ehrlichen Platzhalter. Bestehende Tabellen bleiben unverändert, noch keine Ansicht nutzt die neuen Funktionen.
Report
Plan-ID: DS-X-09
Was geändert (Tier B, 208 Zeilen inkl. Tests, Teil Stufe-B-Rahmen: kein Seam)
src/design/data/Table.tsx:Column.sortValuemacht den Kopf zu einem Button mitaria-sort(none → ascending → descending → none, eine Spalte zugleich; Enter/Space werden am Button behandelt, damit nur einmal geschaltet wird).selection={{selected, onChange, rowLabel?}}fügt Checkbox-Spalte (Kopf-Feld „teils“),aria-selectedje Zeile und einerole="status"/aria-live="polite"-Zeile mit der Anzahl hinzu.loadingersetzt die Tabelle durchHonestState; einempty-Text (String) wird alsHonestStategezeichnet, ein Knoten bleibt wie bisher.data.css: stickyth(deckender Untergrund--g-groundunter dem durchscheinenden Inhaltston), Sortier-Pfeile als Form (nicht nur Farbe), Auswahlspalte, Zeilenton.src/i18n/de.ts(table.*),src/design/registry.ts(Eintrag Table),docs/PLAN.md(eine Zeile DS-X-09).cycles aria-sort none, ascending, descending by keyboardhat Kommas; der Hookcommit-msglehnt Kommas inTest-First:-Zeilen ab. Umbenannt incycles aria-sort from none to ascending to descending by keyboard..g-tw { max-height: 100% }); ohne Begrenzung scrollt die Seite wie bisher.Rot → grün: Commit e919b84 (nur Prop-Typen, Tests kompilieren) war rot: 6 Tests rot,
no checkboxes … without a selection propwar an der Merge-Base schon grün und trägt keinen Trailer. Am Kopf grün.Belege
npx vitest run src/design src/i18nExit 0 (45 Dateien, 234 Tests)npm run typecheckExit 0node scripts/contrast-check.mjsExit 0node scripts/plan-check.mjs --offlineExit 0bash scripts/ci/red-first.shExit 0bash scripts/ci/gates.sh lane prepushExit 0 (HEAD 586879a, 310 s)/home/pa/pa-orch/reports/ds-x-09-light.pngundds-x-09-dark.png, angesehen.shot.mjskann nicht klicken/scrollen; es wurde ein eigenes Playwright-Skript mit Vite-API genutzt (nicht eingecheckt).NICHT ABGEDECKT
#[cfg(windows)]-Tests und die Windows-Arme von clippy (Windows-Bahn läuft in der Merge-Queue); Rust wurde nicht angefasst.preventDefaultauf keydown und Space-keyup vermieden, aber nicht im Browser gemessen..g-glass/.g-chromenur per CSS-Test, nicht per Foto.Review: ausstehend (Stufe B, Root beauftragt)
🤖 Generated with Claude Code on the ProjectA server worker
Root review disposition and acceptance (head 586879a)
Tier B (TS/CSS in
src/design/data/, no seam). Author family: Anthropic (Claude Sonnet 5.5, server job log). Reviewer: Coherenorth-mini-code:freevia kilo (scripts/review/run-local.sh 1692 --via kilo), reviewed head 586879a. Verdict REJECT, based on findings F1–F4. Root checked each one against the head files and none holds (table below). One non-author-family reviewer is the AGENTS.md rule 5 minimum for tier B. Root is Anthropic and does not count as independent.sort === null.Table.tsx:53cycles ascending → descending →null, and:55sorts only whensortis set;aria-sort="none"comes from:65. The keyboard cycle test is green.Table.tsx:59copies into a newSetbefore changing it; typecheck exit 0HonestStatehas only the kinds empty, offline and locked (HonestState.tsx:30). The loading text sits inrole="status", and a real loading look is DS-X-29 (Spinner/Skeleton/Progress).fill/comparehelpersRoot screenshot check:
ds-x-09-{light,dark}.png(server reports folder) were looked at. "Läufe" is sorted descending with a shape arrow, two rows are selected, the header checkbox shows "mixed", the header stays put after scrolling, and "2 ausgewählt" is announced. Observation: in light mode selected rows have no row tint, only the checkbox. That is acceptable because the state is shown by shape. Evidence from the job: red-first exit 0;vitest run src/design src/i18n(234 tests), typecheck, contrast-check, plan-check offline andbash scripts/ci/gates.sh lane prepush(HEAD 586879a) all exit 0.Accepted by Root on 2026-10-17 for head 586879a.
review-okis bound to this head.