fix: resolve all MUI v9 TypeScript build errors
- Move system props (fontWeight, lineHeight, display, alignItems, etc.) into sx - Fix Lucide icon color prop (no sx support) - Merge duplicate sx attributes - Remove unused variables (location, _needId, v) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -124,7 +124,7 @@ export default function AIMonitoring() {
|
||||
>
|
||||
<Box sx={{ flex: 1 }}>
|
||||
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5 }}>
|
||||
<Typography variant="h5" fontWeight={700} color="text.primary">
|
||||
<Typography variant="h5" sx={{ fontWeight: 700 }} color="text.primary">
|
||||
AI Monitoring
|
||||
</Typography>
|
||||
<Chip
|
||||
@@ -154,10 +154,10 @@ export default function AIMonitoring() {
|
||||
<Box className="grid grid-cols-4 gap-4" sx={{ mb: 3 }}>
|
||||
{HEALTH_METRICS.map(m => (
|
||||
<Card key={m.label} sx={{ p: 2.5 }}>
|
||||
<Typography variant="overline" color="text.secondary" lineHeight={1.4} display="block">
|
||||
<Typography variant="overline" color="text.secondary" sx={{ lineHeight: 1.4, display: 'block' }}>
|
||||
{m.label}
|
||||
</Typography>
|
||||
<Typography variant="h3" fontWeight={800} sx={{ color: m.color }}>
|
||||
<Typography variant="h3" sx={{ fontWeight: 800, color: m.color }}>
|
||||
{m.value}
|
||||
</Typography>
|
||||
<Typography variant="caption" color="text.secondary">
|
||||
@@ -170,7 +170,7 @@ export default function AIMonitoring() {
|
||||
<Box className="grid grid-cols-2 gap-4" sx={{ mb: 3 }}>
|
||||
{/* Confidence Distribution */}
|
||||
<Card sx={{ p: 2.5 }}>
|
||||
<Typography variant="subtitle1" fontWeight={600} mb={2}>
|
||||
<Typography variant="subtitle1" sx={{ fontWeight: 600, mb: 2 }}>
|
||||
Konfidenzverteilung
|
||||
</Typography>
|
||||
|
||||
@@ -182,7 +182,7 @@ export default function AIMonitoring() {
|
||||
<Stack spacing={2}>
|
||||
<Box>
|
||||
<Box sx={{ display: 'flex', justifyContent: 'space-between', mb: 0.5 }}>
|
||||
<Typography variant="body2" fontWeight={500}>Hoch (>85%)</Typography>
|
||||
<Typography variant="body2" sx={{ fontWeight: 500 }}>Hoch (>85%)</Typography>
|
||||
<Typography variant="body2" color="text.secondary">{highConf} Objekte</Typography>
|
||||
</Box>
|
||||
<LinearProgress
|
||||
@@ -194,7 +194,7 @@ export default function AIMonitoring() {
|
||||
</Box>
|
||||
<Box>
|
||||
<Box sx={{ display: 'flex', justifyContent: 'space-between', mb: 0.5 }}>
|
||||
<Typography variant="body2" fontWeight={500}>Mittel (65–85%)</Typography>
|
||||
<Typography variant="body2" sx={{ fontWeight: 500 }}>Mittel (65–85%)</Typography>
|
||||
<Typography variant="body2" color="text.secondary">{midConf} Objekte</Typography>
|
||||
</Box>
|
||||
<LinearProgress
|
||||
@@ -206,7 +206,7 @@ export default function AIMonitoring() {
|
||||
</Box>
|
||||
<Box>
|
||||
<Box sx={{ display: 'flex', justifyContent: 'space-between', mb: 0.5 }}>
|
||||
<Typography variant="body2" fontWeight={500}>Niedrig (<65%)</Typography>
|
||||
<Typography variant="body2" sx={{ fontWeight: 500 }}>Niedrig (<65%)</Typography>
|
||||
<Typography variant="body2" color="text.secondary">{lowConf} Objekte</Typography>
|
||||
</Box>
|
||||
<LinearProgress
|
||||
@@ -222,7 +222,7 @@ export default function AIMonitoring() {
|
||||
|
||||
{/* Anomaly Alerts */}
|
||||
<Card sx={{ p: 2.5 }}>
|
||||
<Typography variant="subtitle1" fontWeight={600} mb={2}>
|
||||
<Typography variant="subtitle1" sx={{ fontWeight: 600, mb: 2 }}>
|
||||
Anomalien
|
||||
</Typography>
|
||||
<Stack spacing={1.5}>
|
||||
@@ -239,7 +239,7 @@ export default function AIMonitoring() {
|
||||
{/* Recent AI Decisions */}
|
||||
<Card>
|
||||
<Box sx={{ px: 2.5, py: 2, borderBottom: '1px solid #f1f5f9' }}>
|
||||
<Typography variant="subtitle1" fontWeight={600}>
|
||||
<Typography variant="subtitle1" sx={{ fontWeight: 600 }}>
|
||||
Letzte KI-Entscheidungen
|
||||
</Typography>
|
||||
</Box>
|
||||
@@ -260,7 +260,7 @@ export default function AIMonitoring() {
|
||||
<Typography variant="caption" color="text.secondary">{d.timestamp}</Typography>
|
||||
</TableCell>
|
||||
<TableCell>
|
||||
<Typography variant="body2" fontWeight={500}>{d.type}</Typography>
|
||||
<Typography variant="body2" sx={{ fontWeight: 500 }}>{d.type}</Typography>
|
||||
</TableCell>
|
||||
<TableCell>{getConfidenceBadge(d.confidence)}</TableCell>
|
||||
<TableCell>
|
||||
|
||||
@@ -141,7 +141,7 @@ export default function Governance() {
|
||||
}}
|
||||
>
|
||||
<Box>
|
||||
<Typography variant="h5" fontWeight={700} color="text.primary">
|
||||
<Typography variant="h5" sx={{ fontWeight: 700 }} color="text.primary">
|
||||
Governance & Aktivitätslog
|
||||
</Typography>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
@@ -157,28 +157,28 @@ export default function Governance() {
|
||||
{/* Stats row */}
|
||||
<Box className="grid grid-cols-3 gap-4" sx={{ mb: 3 }}>
|
||||
<Card sx={{ p: 2.5 }}>
|
||||
<Typography variant="overline" color="text.secondary" lineHeight={1.4} display="block">
|
||||
<Typography variant="overline" color="text.secondary" sx={{ lineHeight: 1.4, display: 'block' }}>
|
||||
Ereignisse gesamt
|
||||
</Typography>
|
||||
<Typography variant="h3" fontWeight={700}>
|
||||
<Typography variant="h3" sx={{ fontWeight: 700 }}>
|
||||
{events.length}
|
||||
</Typography>
|
||||
<Typography variant="caption" color="text.secondary">Alle Aktivitäten</Typography>
|
||||
</Card>
|
||||
<Card sx={{ p: 2.5 }}>
|
||||
<Typography variant="overline" color="text.secondary" lineHeight={1.4} display="block">
|
||||
<Typography variant="overline" color="text.secondary" sx={{ lineHeight: 1.4, display: 'block' }}>
|
||||
Ereignisse heute
|
||||
</Typography>
|
||||
<Typography variant="h3" fontWeight={700}>
|
||||
<Typography variant="h3" sx={{ fontWeight: 700 }}>
|
||||
{todayCount}
|
||||
</Typography>
|
||||
<Typography variant="caption" color="text.secondary">Heutige Aktivitäten</Typography>
|
||||
</Card>
|
||||
<Card sx={{ p: 2.5 }}>
|
||||
<Typography variant="overline" color="text.secondary" lineHeight={1.4} display="block">
|
||||
<Typography variant="overline" color="text.secondary" sx={{ lineHeight: 1.4, display: 'block' }}>
|
||||
Aktive Benutzer
|
||||
</Typography>
|
||||
<Typography variant="h3" fontWeight={700}>
|
||||
<Typography variant="h3" sx={{ fontWeight: 700 }}>
|
||||
{uniqueUsers}
|
||||
</Typography>
|
||||
<Typography variant="caption" color="text.secondary">Unterschiedliche Nutzer</Typography>
|
||||
@@ -186,7 +186,7 @@ export default function Governance() {
|
||||
</Box>
|
||||
|
||||
{/* Filter chips */}
|
||||
<Stack direction="row" spacing={0.5} flexWrap="wrap" gap={0.5} sx={{ mb: 2 }}>
|
||||
<Stack direction="row" spacing={0.5} sx={{ flexWrap: 'wrap', gap: 0.5, mb: 2 }}>
|
||||
<Chip
|
||||
label="Alle"
|
||||
size="small"
|
||||
@@ -218,7 +218,7 @@ export default function Governance() {
|
||||
|
||||
{/* Activity Timeline */}
|
||||
<Card sx={{ p: 2.5 }}>
|
||||
<Typography variant="subtitle1" fontWeight={600} mb={2}>
|
||||
<Typography variant="subtitle1" sx={{ fontWeight: 600, mb: 2 }}>
|
||||
Aktivitätslog
|
||||
</Typography>
|
||||
|
||||
@@ -278,7 +278,7 @@ export default function Governance() {
|
||||
{getEventDescription(event)}
|
||||
</Typography>
|
||||
{event.notes && (
|
||||
<Typography variant="caption" color="text.secondary" display="block" mt={0.25}>
|
||||
<Typography variant="caption" color="text.secondary" sx={{ display: 'block', mt: 0.25 }}>
|
||||
{event.notes}
|
||||
</Typography>
|
||||
)}
|
||||
|
||||
@@ -141,7 +141,7 @@ export default function ReviewQueue() {
|
||||
<Box sx={{ bgcolor: 'white', borderBottom: '1px solid #e2e8f0', px: 3, py: 2, display: 'flex', alignItems: 'center', gap: 2 }}>
|
||||
<Box>
|
||||
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1.5 }}>
|
||||
<Typography variant="h5" fontWeight={700} color="text.primary">
|
||||
<Typography variant="h5" sx={{ fontWeight: 700 }} color="text.primary">
|
||||
Review Queue
|
||||
</Typography>
|
||||
{totalPending > 0 && (
|
||||
@@ -162,10 +162,10 @@ export default function ReviewQueue() {
|
||||
{/* Stats row */}
|
||||
<Box className="grid grid-cols-2 gap-4" sx={{ mb: 3 }}>
|
||||
<Card sx={{ p: 2.5 }}>
|
||||
<Typography variant="overline" color="text.secondary" lineHeight={1.4} display="block">
|
||||
<Typography variant="overline" color="text.secondary" sx={{ lineHeight: 1.4, display: 'block' }}>
|
||||
Offene Reviews
|
||||
</Typography>
|
||||
<Typography variant="h3" fontWeight={700} sx={{ color: totalPending > 0 ? 'warning.main' : 'text.primary' }}>
|
||||
<Typography variant="h3" sx={{ fontWeight: 700, color: totalPending > 0 ? 'warning.main' : 'text.primary' }}>
|
||||
{totalPending}
|
||||
</Typography>
|
||||
<Typography variant="caption" color="text.secondary">
|
||||
@@ -173,10 +173,10 @@ export default function ReviewQueue() {
|
||||
</Typography>
|
||||
</Card>
|
||||
<Card sx={{ p: 2.5 }}>
|
||||
<Typography variant="overline" color="text.secondary" lineHeight={1.4} display="block">
|
||||
<Typography variant="overline" color="text.secondary" sx={{ lineHeight: 1.4, display: 'block' }}>
|
||||
Signale zur Prüfung
|
||||
</Typography>
|
||||
<Typography variant="h3" fontWeight={700} sx={{ color: signalItems.length > 0 ? 'warning.main' : 'text.primary' }}>
|
||||
<Typography variant="h3" sx={{ fontWeight: 700, color: signalItems.length > 0 ? 'warning.main' : 'text.primary' }}>
|
||||
{signalItems.length}
|
||||
</Typography>
|
||||
<Typography variant="caption" color="text.secondary">
|
||||
@@ -190,7 +190,7 @@ export default function ReviewQueue() {
|
||||
{/* Left: Item List */}
|
||||
<Card sx={{ p: 0, overflow: 'hidden' }}>
|
||||
<Box sx={{ px: 2, py: 1.5, borderBottom: '1px solid #f1f5f9' }}>
|
||||
<Typography variant="subtitle2" fontWeight={600}>
|
||||
<Typography variant="subtitle2" sx={{ fontWeight: 600 }}>
|
||||
Ausstehende Elemente
|
||||
</Typography>
|
||||
</Box>
|
||||
@@ -240,10 +240,10 @@ export default function ReviewQueue() {
|
||||
}
|
||||
</Box>
|
||||
<Box sx={{ flex: 1, minWidth: 0 }}>
|
||||
<Typography variant="body2" fontWeight={500} noWrap>
|
||||
<Typography variant="body2" sx={{ fontWeight: 500 }} noWrap>
|
||||
{item.title}
|
||||
</Typography>
|
||||
<Stack direction="row" spacing={0.5} mt={0.5} flexWrap="wrap">
|
||||
<Stack direction="row" spacing={0.5} sx={{ mt: 0.5, flexWrap: 'wrap' }}>
|
||||
<Chip
|
||||
label={getPriorityLabel(item.confidence)}
|
||||
size="small"
|
||||
@@ -284,7 +284,7 @@ export default function ReviewQueue() {
|
||||
fontWeight: 600,
|
||||
}}
|
||||
/>
|
||||
<Typography variant="subtitle2" fontWeight={600}>
|
||||
<Typography variant="subtitle2" sx={{ fontWeight: 600 }}>
|
||||
{selectedItem.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
@@ -295,23 +295,22 @@ export default function ReviewQueue() {
|
||||
<Stack spacing={1} sx={{ mb: 2 }}>
|
||||
<Box sx={{ display: 'flex', gap: 3 }}>
|
||||
<Box>
|
||||
<Typography variant="caption" color="text.secondary" display="block">Konfidenz</Typography>
|
||||
<Typography variant="body2" fontWeight={600}>
|
||||
<Typography variant="caption" color="text.secondary" sx={{ display: 'block' }}>Konfidenz</Typography>
|
||||
<Typography variant="body2" sx={{ fontWeight: 600 }}>
|
||||
{Math.round(selectedItem.confidence * 100)}%
|
||||
</Typography>
|
||||
</Box>
|
||||
{selectedItem.probability != null && (
|
||||
<Box>
|
||||
<Typography variant="caption" color="text.secondary" display="block">Wahrscheinlichkeit</Typography>
|
||||
<Typography variant="body2" fontWeight={600}>
|
||||
<Typography variant="caption" color="text.secondary" sx={{ display: 'block' }}>Wahrscheinlichkeit</Typography>
|
||||
<Typography variant="body2" sx={{ fontWeight: 600 }}>
|
||||
{Math.round(selectedItem.probability * 100)}%
|
||||
</Typography>
|
||||
</Box>
|
||||
)}
|
||||
<Box>
|
||||
<Typography variant="caption" color="text.secondary" display="block">Risiko</Typography>
|
||||
<Chip
|
||||
label={getRiskLabel(selectedItem.risk)}
|
||||
<Typography variant="caption" color="text.secondary" sx={{ display: 'block' }}>Risiko</Typography>
|
||||
<Chip label={getRiskLabel(selectedItem.risk)}
|
||||
size="small"
|
||||
color={getRiskColor(selectedItem.risk)}
|
||||
variant="outlined"
|
||||
@@ -329,7 +328,7 @@ export default function ReviewQueue() {
|
||||
<Divider sx={{ mb: 2 }} />
|
||||
|
||||
{/* Notes */}
|
||||
<Typography variant="caption" fontWeight={600} color="text.secondary" display="block" mb={1}>
|
||||
<Typography variant="caption" sx={{ fontWeight: 600, display: 'block', mb: 1 }} color="text.secondary">
|
||||
Notizen
|
||||
</Typography>
|
||||
<TextField
|
||||
|
||||
Reference in New Issue
Block a user