'use client' import { DashboardData } from '../_hooks/useComplianceHub' const DOMAIN_LABELS: Record = { gov: 'Governance', priv: 'Datenschutz', iam: 'Identity & Access', crypto: 'Kryptografie', sdlc: 'Secure Dev', ops: 'Operations', ai: 'KI-spezifisch', cra: 'Supply Chain', aud: 'Audit', } export function StatsRow({ dashboard, scoreColor, scoreBgColor, score, }: { dashboard: DashboardData | null scoreColor: string scoreBgColor: string score: number }) { return (

Compliance Score

{score.toFixed(0)}%

{dashboard?.controls_by_status?.pass || 0} von {dashboard?.total_controls || 0} Controls bestanden

Verordnungen

{dashboard?.total_regulations || 0}

{dashboard?.total_requirements || 0} Anforderungen

Controls

{dashboard?.total_controls || 0}

{dashboard?.controls_by_status?.pass || 0} bestanden

Nachweise

{dashboard?.total_evidence || 0}

{dashboard?.evidence_by_status?.valid || 0} aktiv

Risiken

{dashboard?.total_risks || 0}

{(dashboard?.risks_by_level?.high || 0) + (dashboard?.risks_by_level?.critical || 0)} kritisch

) } export function DomainChart({ dashboard }: { dashboard: DashboardData | null }) { return (

Controls nach Domain

{Object.entries(dashboard?.controls_by_domain || {}).map(([domain, stats]) => { const total = stats.total || 0 const pass = stats.pass || 0 const partial = stats.partial || 0 const passPercent = total > 0 ? ((pass + partial * 0.5) / total) * 100 : 0 return (
{DOMAIN_LABELS[domain] || domain.toUpperCase()} {pass}/{total} ({passPercent.toFixed(0)}%)
) })}
) }