import { cn } from "@/lib/utils" type Grade = "A" | "B" | "C" | "D" | "F" const gradeConfig: Record = { A: { color: "var(--success)", pct: 0.95 }, B: { color: "var(--primary)", pct: 0.82 }, C: { color: "var(--pending)", pct: 0.68 }, D: { color: "#F59E0B", pct: 0.50 }, F: { color: "var(--error)", pct: 0.30 }, } interface GradeRingProps { grade: Grade size?: number className?: string } export function GradeRing({ grade, size = 80, className }: GradeRingProps) { const { color, pct } = gradeConfig[grade] ?? gradeConfig.C const r = (size - 10) / 2 const cx = size / 2 const circumference = 2 * Math.PI * r const offset = circumference * (1 - pct) return (
{/* Track */} {/* Fill arc */} {/* Grade letter centered */}
{grade}
) }