'use client'; import { CalendarClock, ChevronRight, Sparkles, TrendingDown, TrendingUp, TriangleAlert } from 'lucide-react'; import type { XiaobaoRiskLevel, XiaobaoVersionRisk } from '@/lib/xiaobao-risk'; import { formatDateTime } from '@/lib/format'; import { formatRemainingWork } from '@/lib/xiaobao-warning-view'; const RISK_LEVEL_LABEL: Record = { on_track: '按期', attention: '关注', at_risk: '有风险', likely_delayed: '大概率延期', blocked: '阻塞', }; const RISK_LEVEL_STYLE: Record = { on_track: 'bg-emerald-50 text-emerald-700 border-emerald-200', attention: 'bg-amber-50 text-amber-700 border-amber-200', at_risk: 'bg-orange-50 text-orange-700 border-orange-200', likely_delayed: 'bg-red-50 text-red-700 border-red-200', blocked: 'bg-zinc-900 text-white border-zinc-900', }; export function XiaobaoWarningCard({ risk, onClick }: { risk: XiaobaoVersionRisk; onClick: () => void }) { const firstReason = risk.reasons[0]; const TrendIcon = risk.trend.direction === 'down' ? TrendingDown : risk.trend.direction === 'up' ? TrendingUp : TriangleAlert; return ( ); } function Metric({ label, value, tone }: { label: string; value: string; tone: 'ok' | 'warn' | 'danger' }) { const toneClass = tone === 'danger' ? 'text-red-600' : tone === 'warn' ? 'text-amber-600' : 'text-emerald-600'; return (

{label}

{value}

); }