@@ -20,6 +20,13 @@ export interface DepthDistribution {
2020 d0 : number ;
2121}
2222
23+ /** D6 (parity-vs-reference) rollup counts. */
24+ export interface D6Stats {
25+ green : number ;
26+ gray : number ;
27+ red : number ;
28+ }
29+
2330export interface AdaptiveStatsBarProps {
2431 overlays : Set < Overlay > ;
2532 catalog : CatalogData ;
@@ -31,6 +38,8 @@ export interface AdaptiveStatsBarProps {
3138 docsStats ?: { ok : number ; missing : number ; notFound : number ; error : number } ;
3239 /** Depth distribution across wired cells (computed externally) */
3340 depthDistribution ?: DepthDistribution ;
41+ /** D6 parity-vs-reference counts (computed externally) */
42+ d6Stats ?: D6Stats ;
3443}
3544
3645/* ------------------------------------------------------------------ */
@@ -243,6 +252,37 @@ function ParitySection({ stats }: { stats: Record<ParityTier, number> }) {
243252 ) ;
244253}
245254
255+ function D6Section ( { stats } : { stats : D6Stats } ) {
256+ return (
257+ < div className = "flex items-center gap-3" >
258+ < span className = "flex items-center gap-1" >
259+ < Dot color = "var(--ok)" />
260+ < MiniStat
261+ value = { stats . green }
262+ label = "green"
263+ colorClass = "text-[var(--ok)]"
264+ />
265+ </ span >
266+ < span className = "flex items-center gap-1" >
267+ < Dot color = "var(--text-muted)" />
268+ < MiniStat
269+ value = { stats . gray }
270+ label = "gray"
271+ colorClass = "text-[var(--text-muted)]"
272+ />
273+ </ span >
274+ < span className = "flex items-center gap-1" >
275+ < Dot color = "var(--danger)" />
276+ < MiniStat
277+ value = { stats . red }
278+ label = "red"
279+ colorClass = "text-[var(--danger)]"
280+ />
281+ </ span >
282+ </ div >
283+ ) ;
284+ }
285+
246286function DocsSection ( {
247287 stats,
248288} : {
@@ -281,6 +321,7 @@ export function AdaptiveStatsBar({
281321 parityStats,
282322 docsStats,
283323 depthDistribution,
324+ d6Stats,
284325} : AdaptiveStatsBarProps ) {
285326 const sections : React . ReactNode [ ] = [ ] ;
286327
@@ -311,6 +352,10 @@ export function AdaptiveStatsBar({
311352 sections . push ( < DocsSection key = "docs" stats = { docsStats } /> ) ;
312353 }
313354
355+ if ( overlays . has ( "d6" ) && d6Stats ) {
356+ sections . push ( < D6Section key = "d6" stats = { d6Stats } /> ) ;
357+ }
358+
314359 return (
315360 < div
316361 data-testid = "adaptive-stats-bar"
0 commit comments