import { useState } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; import { ShieldCheck, ShieldAlert, AlertTriangle, ChevronDown, Info, Zap, BarChart2 } from 'lucide-react'; import styles from './VerdictCard.module.css'; const VERDICT_CONFIG = { authentic: { label: 'Authentic', sublabel: 'Human-generated content', Icon: ShieldCheck, colorClass: 'authentic', gradient: 'linear-gradient(135deg, #00c67a 0%, #00a064 100%)', ringColor: 'var(--authentic-glow)', }, ai_generated: { label: 'AI-Generated', sublabel: 'Synthetic content detected', Icon: ShieldAlert, colorClass: 'aiGenerated', gradient: 'linear-gradient(135deg, #ff4757 0%, #d63031 100%)', ringColor: 'var(--ai-generated-glow)', }, suspect: { label: 'Suspect', sublabel: 'Inconclusive — manual review advised', Icon: AlertTriangle, colorClass: 'suspect', gradient: 'linear-gradient(135deg, #f59e0b 0%, #d97706 100%)', ringColor: 'var(--suspect-glow)', }, }; function ScoreArc({ score, verdict }) { const radius = 54; const cx = 70; const cy = 70; const circumference = 2 * Math.PI * radius; const dashOffset = circumference - (score / 100) * circumference; const color = verdict === 'authentic' ? 'var(--authentic)' : verdict === 'ai_generated' ? 'var(--ai-generated)' : 'var(--suspect)'; return ( {score.toFixed(1)} % confidence ); } export default function VerdictCard({ result }) { const config = VERDICT_CONFIG[result.verdict]; const { Icon } = config; const [showBreakdown, setShowBreakdown] = useState(false); return ( {/* Verdict header */} {config.label} {config.sublabel} {/* Score arc */} AI Involvement Score {/* Model breakdown */} setShowBreakdown(!showBreakdown)} aria-expanded={showBreakdown} > Model Breakdown {showBreakdown && ( {result.modelBreakdown.map((m, i) => ( {m.model} {m.score.toFixed(1)}% ))} )} {/* Quick stats */} Processing time {result.processingTime} Analysis ID {result.analysisId} {/* Artifacts summary */} Detected Artifacts {result.artifacts.map((artifact) => ( {artifact.type} {artifact.severity} ))} ); }
{config.label}
{config.sublabel}
AI Involvement Score
Detected Artifacts