fix(Table): separate semantic row status from custom markers - #5832
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR Analysis Report📚 Storybook PreviewView Storybook for this PR 🧪 Sandbox PreviewView Sandbox for this PR Modified ComponentsTable (@astryxdesign/core) · View in Storybook
Bundle Size Summary
Accessibility AuditStatus: No accessibility violations detected. Visual RegressionStatus: No visual change across 14 compared shot(s). Generated by PR Enrichment workflow | Storybook | Sandbox | View full report |
7cafe66 to
e5321a9
Compare
e5321a9 to
774396c
Compare
774396c to
a8c4381
Compare
02442d5 to
d399964
Compare
d399964 to
855a696
Compare
cixzhang
left a comment
There was a problem hiding this comment.
Semantic verdict: request changes
Thanks — the semantic/custom split works. Existing builders using {color: 'warning', icon: 'clock'} get a different glyph color: 0.5.2 renders rgb(116, 91, 0), while this head renders rgb(110, 53, 0). Raw CSS icon colors also switch from primary to the raw value. That conflicts with the PR and changeset claim that stable custom markers keep their 0.5.2 behavior. Please reconcile the compatibility claim with the rendered behavior: preserve the released mapping where the current contract allows, and explicitly document and test every intentional visual change. The branch also needs a merge with main.
[Reviewed by Robohands]
855a696 to
16016c9
Compare
cixzhang
left a comment
There was a problem hiding this comment.
Semantic verdict: approve
Thanks — this restores the stable custom-marker contract while adding the approved semantic branch. I verified the exact head across theme mapping, custom dots/icons, invalid untyped precedence, plugin composition, render budgets, normal pixels, and forced colors; 47 focused tests passed, and all completed CI signals are green.
[Reviewed by Robohands]
User impact
People scanning dense tables get a consistent non-color glyph for semantic success, warning, and error. Existing custom-marker callers keep the same source shape: no
iconrenders the 8px dot, and an expliciticonrenders the caller-selected glyph.Current contract
Implements the current
module:Table/useTableRowStatuscontract, landed by #5830.Semantic before → after
Before: current canaries overload
color:success,warning, anderrorselect both tone and an implicit glyph, while other values select paint only.After:
getStatusaccepts the contract's exclusive semantic{status, label}and custom{color, icon?, label}branches. Semantic status resolves glyph and tone through the active theme. Customcoloralways selects paint; representation changes only when the caller suppliesicon.The stable
TableRowStatuscustom-marker interface remains unchanged and declaration-mergeable. The newTableSemanticRowStatusinterface is additive, and the exclusive union exists only at theUseTableRowStatusConfig.getStatuscallback boundary.Compatibility and scope
colortostatus.statuswins overcolor/icon, with one development warning per loaded module and the same production rendering without a warning.variant/presentation, reflected state, Table row-status target, or theme selector was added.ChatToolCallsis intentionally unchanged; it needs a separate component contract.Test evidence
check:repo, full build, and public repository guard.pr-a11y.