d15a13e485
- Delete all ops page components (ReviewQueue, AIMonitoring, Governance, SourceMonitoring, ActivityTimeline, SignalPipeline) - Remove OPERATIONS workspace from AppShell config, nav order, path detection - Remove all /ops/* routes from App.tsx - Remove WorkspaceType.OPERATIONS from allowedWorkspaces in authService, sessionStore, permissions - Keep MarketIntelligence page (already moved to /supply/market-intelligence) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { Chip } from '@mui/material'
|
|
import { ShieldCheck } from 'lucide-react'
|
|
import type { ConfidenceLevel } from '../../domain/enums'
|
|
import { DS_COLORS, scoreToConfidenceLevel } from '../../lib/ds'
|
|
import { CONFIDENCE_LABELS } from '../../lib/constants'
|
|
|
|
interface ConfidenceBadgeProps {
|
|
level?: ConfidenceLevel
|
|
score?: number
|
|
size?: 'small' | 'medium'
|
|
}
|
|
|
|
export function ConfidenceBadge({ level, score, size = 'small' }: ConfidenceBadgeProps) {
|
|
const resolved: ConfidenceLevel =
|
|
level ?? (score !== undefined ? scoreToConfidenceLevel(score) : 'MEDIUM')
|
|
const { bg, fg } = DS_COLORS.confidence[resolved]
|
|
const scoreLabel = score !== undefined ? ` (${Math.round(score * 100)}%)` : ''
|
|
const label = `${CONFIDENCE_LABELS[resolved] ?? resolved}${scoreLabel}`
|
|
return (
|
|
<Chip
|
|
size={size}
|
|
label={label}
|
|
icon={<ShieldCheck size={11} color={fg} />}
|
|
aria-label={`Konfidenz: ${label}`}
|
|
sx={{
|
|
bgcolor: bg,
|
|
color: fg,
|
|
border: 'none',
|
|
fontWeight: 600,
|
|
fontSize: '0.7rem',
|
|
'& .MuiChip-icon': { ml: 0.5 },
|
|
}}
|
|
/>
|
|
)
|
|
}
|