'use client' import React, { useState, useEffect } from 'react' import { useSDK } from '@/lib/sdk' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' // ============================================================================= // TYPES // ============================================================================= interface AISystem { id: string name: string description: string classification: 'prohibited' | 'high-risk' | 'limited-risk' | 'minimal-risk' | 'unclassified' purpose: string sector: string status: 'draft' | 'classified' | 'compliant' | 'non-compliant' obligations: string[] assessmentDate: Date | null assessmentResult: Record | null } // ============================================================================= // LOADING SKELETON // ============================================================================= function LoadingSkeleton() { return (
{[1, 2, 3, 4].map(i => (
))}
) } // ============================================================================= // COMPONENTS // ============================================================================= function RiskPyramid({ systems }: { systems: AISystem[] }) { const counts = { prohibited: systems.filter(s => s.classification === 'prohibited').length, 'high-risk': systems.filter(s => s.classification === 'high-risk').length, 'limited-risk': systems.filter(s => s.classification === 'limited-risk').length, 'minimal-risk': systems.filter(s => s.classification === 'minimal-risk').length, } return (

AI Act Risikopyramide

Verboten ({counts.prohibited})
Hochrisiko ({counts['high-risk']})
Begrenztes Risiko ({counts['limited-risk']})
Minimales Risiko ({counts['minimal-risk']})
{systems.filter(s => s.classification === 'unclassified').length} System(e) noch nicht klassifiziert
) } function AddSystemForm({ onSubmit, onCancel, initialData, }: { onSubmit: (system: Omit) => void onCancel: () => void initialData?: AISystem | null }) { const [formData, setFormData] = useState({ name: initialData?.name || '', description: initialData?.description || '', purpose: initialData?.purpose || '', sector: initialData?.sector || '', classification: (initialData?.classification || 'unclassified') as AISystem['classification'], status: (initialData?.status || 'draft') as AISystem['status'], obligations: initialData?.obligations || [] as string[], }) return (

{initialData ? 'KI-System bearbeiten' : 'Neues KI-System registrieren'}

setFormData({ ...formData, name: e.target.value })} placeholder="z.B. Dokumenten-Scanner" className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent" />