import { motion } from 'framer-motion'; import { Minus, TrendingDown, TrendingUp } from 'lucide-react'; import type { DomainData } from '../types'; interface EcosystemPulseProps { domains: DomainData[]; compositeScore: number; compositeStatus: string; } function scoreToTrend(score: number): 'up' | 'down' | 'neutral' { if (score >= 80) return 'up'; if (score <= 65) return 'down'; return 'neutral'; } function scoreToColor(score: number): string { if (score >= 80) return 'var(--color-low)'; if (score >= 70) return 'var(--color-high)'; return 'var(--color-critical)'; } const GAUGE_CX = 70; const GAUGE_CY = 72; const GAUGE_R = 58; const GAUGE_PATH = `M ${GAUGE_CX - GAUGE_R} ${GAUGE_CY} A ${GAUGE_R} ${GAUGE_R} 0 0 1 ${GAUGE_CX + GAUGE_R} ${GAUGE_CY}`; function CompositeGauge({ score, status }: { score: number; status: string }) { const color = scoreToColor(score); return (
{score}
{status}

Composite Health

); } export function EcosystemPulse({ domains, compositeScore, compositeStatus }: EcosystemPulseProps) { return (
{domains.map((d, i) => (
{d.name}
{d.score} {scoreToTrend(d.score) === 'up' ? ( ) : scoreToTrend(d.score) === 'down' ? ( ) : ( )}
{d.status}
))}
); }