File size: 1,469 Bytes
bca888a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
"use client"

import { UsersRound } from "lucide-react"

import { useAudienceMode } from "@/components/audience-mode-provider"
import { Badge } from "@/components/ui/badge"
import type { CrossPartyDivergence } from "@/lib/backend-artifacts"
import { cn } from "@/lib/utils"
import { formatSignalNumber } from "./signal-utils"
import { SignalTooltip } from "./signal-tooltip"

export function CrossPartyDivergenceBadge({
  divergence,
  className,
}: {
  divergence?: CrossPartyDivergence | null
  className?: string
}) {
  const { mode } = useAudienceMode()
  const isResearchView = mode === "research"

  if (!divergence?.has_cross_party_divergence) {
    return null
  }

  const magnitude = formatSignalNumber(divergence.divergence_magnitude)
  const orgCount = divergence.organization_count
  const tooltip = isResearchView
    ? `Reports diverge by ${magnitude} across ${orgCount} organization${orgCount === 1 ? "" : "s"}.`
    : "Different organizations reported different scores for this same model on this same benchmark."

  return (
    <SignalTooltip content={tooltip}>
      <Badge
        variant="outline"
        className={cn(
          "border-violet-300 bg-violet-50 text-violet-900 dark:border-violet-900/60 dark:bg-violet-950/40 dark:text-violet-100",
          className
        )}
      >
        <UsersRound className="h-3 w-3" />
        {isResearchView ? "Cross-party divergence" : "Sources disagree"}
      </Badge>
    </SignalTooltip>
  )
}