'use client' import React from 'react' import type { Risk, RiskLikelihood, RiskImpact } from '@breakpilot/compliance-sdk-types' export interface RiskMatrixProps { risks: Risk[] onRiskClick?: (risk: Risk) => void className?: string style?: React.CSSProperties } export function RiskMatrix({ risks, onRiskClick, className, style }: RiskMatrixProps) { const getColor = (likelihood: number, impact: number): string => { const score = likelihood * impact if (score >= 20) return '#dc2626' // Critical - Red if (score >= 12) return '#f97316' // High - Orange if (score >= 6) return '#f59e0b' // Medium - Yellow return '#16a34a' // Low - Green } const getCellRisks = (likelihood: RiskLikelihood, impact: RiskImpact): Risk[] => { return risks.filter(r => r.likelihood === likelihood && r.impact === impact) } const containerStyle: React.CSSProperties = { fontFamily: 'system-ui, -apple-system, sans-serif', ...style, } const gridStyle: React.CSSProperties = { display: 'grid', gridTemplateColumns: '60px repeat(5, 1fr)', gridTemplateRows: '30px repeat(5, 60px)', gap: '2px', backgroundColor: '#e5e5e5', padding: '2px', borderRadius: '8px', } const cellStyle: React.CSSProperties = { display: 'flex', alignItems: 'center', justifyContent: 'center', backgroundColor: '#fff', position: 'relative', } const headerStyle: React.CSSProperties = { ...cellStyle, fontWeight: 600, fontSize: '12px', color: '#666', } const likelihoodLabels = ['Sehr niedrig', 'Niedrig', 'Mittel', 'Hoch', 'Sehr hoch'] const impactLabels = ['1', '2', '3', '4', '5'] return (