diff --git a/apps/ui/src/components/AnalysisResults.tsx b/apps/ui/src/components/AnalysisResults.tsx index 56c9a528..a5a3d33d 100644 --- a/apps/ui/src/components/AnalysisResults.tsx +++ b/apps/ui/src/components/AnalysisResults.tsx @@ -38,6 +38,7 @@ import { StatusBadge, TokenBadgeList, } from './MeasurementPrimitives'; +import { Button, DeviceRack, MetricTile, SectionHeader } from './ui'; import { PhaseSourceBadge } from './PhaseSourceBadge'; import { StickyNav, type StickyNavSection } from './StickyNav'; import { CitationBlock, CitationHeadline } from './CitationBlock'; @@ -840,176 +841,175 @@ export function AnalysisResults({ data-testid="analysis-results-root" className="space-y-12" > -
-
-

- - {formatDisplayText('Analysis Results', 'title')} -

- {headerSubtitle && ( -

- {headerSubtitle} -

- )} -
-
- - + + + } + /> + {headerSubtitle && ( +

- - Download report - -

+ {headerSubtitle} +

+ )}
-
- {/* TEMPO */} - - - TEMPO - - } - value={finalBpm} - unit="BPM" - headerRight={} - footer={ -
- {/* Audit Finding #4: `SCORE 0.86` badge retired in favor of the - canonical band pill — same vocabulary as Key, Character, and - every other confidence surface. */} - - {phase1.bpmSource && ( - - {phase1.bpmSource.replace(/_/g, ' ')} - - )} -
- } - /> - - {/* KEY SIG */} - - - KEY SIG - - } - value={{finalKey}} - headerRight={ -
- - {lowConfidenceIndicator(keyIsApproximate)} -
- } - footer={ -
- - {/* Audit Finding #4: `CONF 62%` text replaced with the canonical - band pill so every confidence reads in the same vocabulary. */} - -
- } - /> - - {/* METER */} - - - METER - - } - value={phase1.timeSignature} - footer={} - /> - - {/* CHARACTER — genre primary, characteristic pills secondary */} - {phase1.genreDetail ? ( - - - CHARACTER - - } - value={{phase1.genreDetail.genre}} + +
+ {/* TEMPO */} + } + label="TEMPO" + value={finalBpm} + unit="BPM" headerRight={} footer={
- + {/* Audit Finding #4: `SCORE 0.86` badge retired in favor of the + canonical band pill — same vocabulary as Key, Character, and + every other confidence surface. */} + + {phase1.bpmSource && ( + + {phase1.bpmSource.replace(/_/g, ' ')} + + )} +
+ } + /> + + {/* KEY SIG */} + } + label="KEY SIG" + value={{finalKey}} + headerRight={ +
+ + {lowConfidenceIndicator(keyIsApproximate)} +
+ } + footer={ +
- {/* Audit Finding #4: `CONF X%` replaced with the canonical - band pill — same vocabulary across every confidence. */} - + {/* Audit Finding #4: `CONF 62%` text replaced with the canonical + band pill so every confidence reads in the same vocabulary. */} +
} /> - ) : ( - - - CHARACTER - - } - value={SCANNING...} - footer={ - characteristicPills.length > 0 ? ( -
- {characteristicPills.map((item, idx) => ( - - {shortenCharacteristicName(item.name)} - - ))} -
- ) : undefined - } + + {/* METER */} + } + label="METER" + value={phase1.timeSignature} + footer={} /> - )} -
+ + {/* CHARACTER — genre primary, characteristic pills secondary */} + {phase1.genreDetail ? ( + } + label="CHARACTER" + value={{phase1.genreDetail.genre}} + headerRight={} + footer={ +
+ + + {/* Audit Finding #4: `CONF X%` replaced with the canonical + band pill — same vocabulary across every confidence. */} + +
+ } + /> + ) : ( + } + label="CHARACTER" + value={ + + SCANNING... + + } + footer={ + characteristicPills.length > 0 ? ( +
+ {characteristicPills.map((item, idx) => ( + + {shortenCharacteristicName(item.name)} + + ))} +
+ ) : undefined + } + /> + )} +
+ {/* Audit Finding #1: MeasurementDashboard was here at the top of the results scroll, ahead of Style / Sonic Elements / Mix Chain / Patches.