// Display labels for the master-control mapping dimensions (use case + // verification method). Keys mirror the backend use_case_registry; an unknown // key humanizes gracefully so a newly-seeded use case still renders. export const USE_CASE_LABELS: Record = { impressum: 'Impressum', telekommunikation: 'Telekommunikation (TKG)', dse: 'Datenschutzerklärung', agb: 'AGB', cookie_banner: 'Cookie-Banner', widerruf: 'Widerruf', dsr: 'Betroffenenrechte (DSR)', loeschkonzept: 'Löschkonzept', avv: 'Auftragsverarbeitung (AVV)', dsfa: 'DSFA', code_security: 'Code Security', network_security: 'Network Security', cra: 'Cyber Resilience Act', isms: 'ISMS', tisax: 'TISAX', kritis: 'KRITIS', dora: 'DORA', ai_act: 'AI Act', mica: 'MiCA', mdr: 'Medizinprodukte (MDR)', maschinen: 'Maschinenverordnung', batterie: 'Batterieverordnung', ehds: 'EHDS', produktsicherheit: 'Produktsicherheit', dsa: 'Digital Services Act', dma: 'Digital Markets Act', data_governance: 'Data Governance Act', zahlungsdienste: 'Zahlungsdienste (PSD2)', geldwaesche: 'Geldwäsche (GwG)', lieferkette: 'Lieferkettengesetz', whistleblowing: 'Whistleblowing', barrierefreiheit: 'Barrierefreiheit (BFSG)', verbraucherschutz: 'Verbraucherschutz', urheberrecht: 'Urheberrecht', wettbewerbsrecht: 'Wettbewerbsrecht', gleichbehandlung: 'Gleichbehandlung (AGG)', steuerrecht: 'Steuerrecht', handelsrecht: 'Handelsrecht', } export const MC_VERIFICATION_LABELS: Record = { document: 'Dokument', source_code: 'Source Code', network: 'Netzwerk/Infra', it_process: 'IT-Prozess', hybrid: 'Hybrid', manual: 'Manuell', } function humanize(key: string): string { return key.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase()) } export function useCaseLabel(key: string): string { return USE_CASE_LABELS[key] || humanize(key) } export function mcVerificationLabel(key: string): string { return MC_VERIFICATION_LABELS[key] || humanize(key) }