'use client' import { Language } from '@/lib/types' import { t } from '@/lib/i18n' import GradientText from '../ui/GradientText' import FadeInView from '../ui/FadeInView' import GlassCard from '../ui/GlassCard' import KPICard from '../ui/KPICard' import { Shield, Lock, Brain, Globe, Package, Landmark, Heart, ShoppingCart, Activity, Cpu, Bot, Radio, Monitor, Building2, Cog } from 'lucide-react' interface RegulatoryLandscapeSlideProps { lang: Language } // Regulation categories with their color const CATEGORIES = [ { id: 'privacy', color: '#6366f1', icon: Shield }, { id: 'cyber', color: '#ef4444', icon: Lock }, { id: 'ai', color: '#a855f7', icon: Brain }, { id: 'markets', color: '#22c55e', icon: Globe }, { id: 'product', color: '#f97316', icon: Package }, { id: 'finance', color: '#10b981', icon: Landmark }, { id: 'health', color: '#ec4899', icon: Heart }, { id: 'consumer', color: '#f59e0b', icon: ShoppingCart }, ] // Industry → which categories apply (synced with INDUSTRY_REGULATION_MAP in breakpilot-lehrer) const INDUSTRY_MATRIX: { id: string; icon: typeof Shield; categories: string[]; regCount: number }[] = [ { id: 'allIndustries', icon: Building2, categories: ['privacy'], regCount: 6 }, { id: 'maschinenbau', icon: Cog, categories: ['privacy', 'cyber', 'ai', 'product', 'consumer'], regCount: 15 }, { id: 'health', icon: Heart, categories: ['privacy', 'cyber', 'ai', 'product', 'health'], regCount: 12 }, { id: 'finance', icon: Landmark, categories: ['privacy', 'cyber', 'ai', 'markets', 'finance'], regCount: 15 }, { id: 'ecommerce', icon: ShoppingCart, categories: ['privacy', 'markets', 'product', 'finance', 'consumer'], regCount: 25 }, { id: 'tech', icon: Cpu, categories: ['privacy', 'cyber', 'ai', 'markets'], regCount: 14 }, { id: 'iot', icon: Activity, categories: ['privacy', 'cyber', 'ai', 'product', 'consumer'], regCount: 13 }, { id: 'ai', icon: Bot, categories: ['privacy', 'cyber', 'ai', 'product', 'markets'], regCount: 9 }, { id: 'kritis', icon: Lock, categories: ['privacy', 'cyber', 'ai', 'finance', 'markets'], regCount: 9 }, { id: 'media', icon: Monitor, categories: ['privacy', 'markets', 'ai'], regCount: 9 }, { id: 'public', icon: Radio, categories: ['privacy', 'cyber', 'ai', 'markets', 'health'], regCount: 10 }, ] export default function RegulatoryLandscapeSlide({ lang }: RegulatoryLandscapeSlideProps) { const i = t(lang) const rl = i.regulatoryLandscape const categoryLabels: Record = { privacy: rl.categoryPrivacy, cyber: rl.categoryCyber, ai: rl.categoryAI, markets: rl.categoryMarkets, product: rl.categoryProduct, finance: rl.categoryFinance, health: rl.categoryHealth, consumer: rl.categoryConsumer, } const industryLabels: Record = { allIndustries: rl.allIndustries, maschinenbau: rl.maschinenbau, health: rl.health, finance: rl.finance, ecommerce: rl.ecommerce, tech: rl.tech, iot: rl.iot, ai: rl.ai, kritis: rl.kritis, media: rl.media, public: rl.public, } return (

{rl.title}

{rl.subtitle}

{/* KPI Row */}
{/* Matrix */} {/* Category Legend */}
{CATEGORIES.map((cat) => (
{categoryLabels[cat.id]}
))}
{/* Matrix Grid */}
{/* Header row */}
{lang === 'de' ? 'Branche' : 'Industry'}
{CATEGORIES.map((cat) => { const CatIcon = cat.icon return (
) })}
#
{/* Industry rows */} {INDUSTRY_MATRIX.map((industry, idx) => { const Icon = industry.icon return (
{industryLabels[industry.id]}
{CATEGORIES.map((cat) => { const applies = industry.categories.includes(cat.id) return (
{applies ? (
) : (
)}
) })}
{industry.regCount}
) })}
) }