UI overhaul Phase 2c: migrate MeasurementDashboard badges to ui/ - #169
Merged
Conversation
Third slice of retiring MeasurementPrimitives.tsx — the dashboard now imports nothing from it. - StatusBadge (17 compact chips): introduce a tiny local adapter over ui/Pill that maps the legacy off-palette tones (muted/info/violet) onto the token palette in one place, so the call sites and chordToneForLabel stay untouched ahead of the Phase 5 split. Minor-chord violet collapses to neutral. Not a competing primitive — local sugar over Pill. - OutlinePillButton (sample-generate control) -> ui/Button variant=secondary (it already rendered muted/inactive, so secondary matches). - DeltaBadge, TokenBadgeList -> ui/DeltaBadge, ui/TokenBadgeList; the genre secondary tone remaps muted -> neutral. - Add the missing ui/DeltaBadge and ui/TokenBadgeList Storybook stories, restoring the "every ui/ primitive ships a story" convention (Chromatic picks them up). Only the four DAW-lane primitives remain in MeasurementPrimitives.tsx; Phase 2d moves them into ui/ and deletes the file. Verified: lint:style, tsc --noEmit, 830 unit tests, and the production build all green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016to3B8Hf9eAGxAbzpQNvku
This was referenced Jun 19, 2026
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.
Phase 2c of the UI overhaul — retire
MeasurementPrimitives.tsx(slice 3 of 4)Follows #168 (Phase 2b). Migrates
MeasurementDashboard.tsxoff theMeasurementPrimitivesbadge exports — after this, only the four DAW-lane primitives remain in that file.Change
StatusBadge(17 compact chips): rather than 17 JSX rewrites in this 2,848-line file (slated for the Phase 5 split), a small local adapter overui/Pillcentralizes the off-palette tone remap (muted/info/violet→neutral). Call sites andchordToneForLabelstay untouched. Minor-chordvioletcollapses toneutral(single-accent ethos; a dedicated chord-quality color can be a later refinement). It's local sugar overPill, not a competing primitive.OutlinePillButton(sample-generate control) →ui/Buttonvariant="secondary". The old control already rendered muted when inactive, sosecondarymatches its appearance.DeltaBadge,TokenBadgeList→ui/DeltaBadge,ui/TokenBadgeList; genre secondary tone remapsmuted→neutral.ui/DeltaBadgeandui/TokenBadgeListStorybook stories, restoring the repo's "everyui/primitive ships a story" convention (Chromatic now covers them).Remaining
Only
LaneContainer/LaneRow/TimeRuler/StatsBarare left inMeasurementPrimitives.tsx. Phase 2d moves them intoui/with tokenized colors and deletes the file.Verification
npm run lint:style✓npm run lint(tsc --noEmit) ✓npm run test:unit✓ (830)npm run build✓Invariants
Presentation-layer only; no measurement/citation/data-contract surface touched;
data-text-rolehooks preserved.🤖 Generated with Claude Code
Generated by Claude Code