import {
ChevronDown,
ChevronUp,
ExternalLink,
Zap,
Layers,
FileText,
Lightbulb,
BookOpen,
} from "lucide-react"
import VerdictBadge from "./VerdictBadge"
function StanceDot({ stance }) {
const cls =
stance === "SUPPORTS"
? "stance-dot--supports"
: stance === "CONTRADICTS"
? "stance-dot--contradicts"
: "stance-dot--neutral"
return
}
export default function ResultsPanel({ result, expandedPapers, onTogglePaper }) {
if (!result) return null
return (
{Math.round(result.confidence * 100)}%
Confidence
{result.evidence_strength || "—"}
Evidence
{result.cached && (
Served from cache
)}
{result.decomposition?.is_complex && (
Complex claim — {result.decomposition.sub_claims.length} sub-claims analyzed
{result.decomposition.sub_claims.map((sc, i) => (
- {sc}
))}
)}
{result.plain_english && (
In plain English
{result.plain_english}
)}
{result.takeaway && (
Takeaway. {result.takeaway}
)}
Technical explanation
{result.explanation}
{result.citations?.length > 0 && (
Citations
{result.citations.map((c, i) => (
{c.pmid && /^\d+$/.test(c.pmid) ? (
{c.title}
) : (
{c.title}
)}
))}
)}
{result.judge && result.judge.overall_quality && result.judge.overall_quality !== "UNKNOWN" && (
Evidence quality
{result.judge.overall_quality}
{result.judge.quality_explanation}
{result.judge.papers.map((jp, i) => {
const paper = result.papers?.[i]
return (
{expandedPapers[i] && paper && (
Study type
{jp.study_type}
Quality
{jp.quality_score}/5
Similarity
{paper.similarity}
{jp.one_line_summary}
{paper.journal}
View on PubMed
)}
)
})}
)}
)
}