From dc27fc55005fa6225136ee6e62aa7799eca5b894 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Wed, 15 Apr 2026 19:21:07 +0200 Subject: [PATCH] feat(pitch-deck): regulatory landscape based on real rag-documents.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete rewrite of Slide 7: - 10 real VDMA/VDA/BDI industry sectors (was 11 mixed categories) - 7 key EU regulations as columns (DSGVO, AI Act, NIS2, CRA, Maschinenverordnung, Data Act, Batterieverordnung) - Actual document counts per industry (244 horizontal + sector-specific) - Last column: total applicable documents (not regulation count) - KPIs: 320 docs, 244 horizontal, 65 sector-specific, 10 sectors - Footer explains horizontal vs sector-specific logic - Subtitle: 320 Dokumente im RAG — 10 Industriesektoren Co-Authored-By: Claude Opus 4.6 (1M context) --- .../slides/RegulatoryLandscapeSlide.tsx | 252 ++++++++++-------- pitch-deck/lib/i18n.ts | 4 +- 2 files changed, 146 insertions(+), 110 deletions(-) diff --git a/pitch-deck/components/slides/RegulatoryLandscapeSlide.tsx b/pitch-deck/components/slides/RegulatoryLandscapeSlide.tsx index 185851a..e0fb4ac 100644 --- a/pitch-deck/components/slides/RegulatoryLandscapeSlide.tsx +++ b/pitch-deck/components/slides/RegulatoryLandscapeSlide.tsx @@ -6,74 +6,105 @@ 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 }, +// Key EU regulations as columns — the ones investors care about +const KEY_REGULATIONS = [ + { id: 'GDPR', label: 'DSGVO', color: '#6366f1' }, + { id: 'AI_ACT', label: 'AI Act', color: '#a855f7' }, + { id: 'NIS2', label: 'NIS2', color: '#ef4444' }, + { id: 'CRA', label: 'CRA', color: '#f97316' }, + { id: 'MACHINERY_REG', label: 'Masch.-VO', color: '#22c55e' }, + { id: 'DATA_ACT', label: 'Data Act', color: '#06b6d4' }, + { id: 'BATTERIE_VO', label: 'Batt.-VO', color: '#f59e0b' }, ] -// 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 }, +// 10 real VDMA/VDA/BDI industry sectors with regulation applicability +// Based on rag-documents.json: 244 horizontal + 65 sector-specific = 320 total +const INDUSTRIES: { id: string; de: string; en: string; regs: string[]; totalDocs: number }[] = [ + { + id: 'automotive', + de: 'Automobilindustrie', + en: 'Automotive', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT', 'BATTERIE_VO'], + totalDocs: 263, + }, + { + id: 'maschinenbau', + de: 'Maschinen- & Anlagenbau', + en: 'Machinery & Plant Eng.', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT'], + totalDocs: 266, + }, + { + id: 'elektrotechnik', + de: 'Elektro- & Digitalindustrie', + en: 'Electrical & Digital', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT', 'BATTERIE_VO'], + totalDocs: 281, + }, + { + id: 'chemie', + de: 'Chemie- & Prozessindustrie', + en: 'Chemicals & Process', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT'], + totalDocs: 250, + }, + { + id: 'metall', + de: 'Metallindustrie', + en: 'Metal Industry', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT'], + totalDocs: 246, + }, + { + id: 'energie', + de: 'Energie & Versorgung', + en: 'Energy & Utilities', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT', 'BATTERIE_VO'], + totalDocs: 256, + }, + { + id: 'transport', + de: 'Transport & Logistik', + en: 'Transport & Logistics', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT'], + totalDocs: 256, + }, + { + id: 'handel', + de: 'Handel', + en: 'Retail & Commerce', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT'], + totalDocs: 271, + }, + { + id: 'konsumgueter', + de: 'Konsumgüter & Lebensmittel', + en: 'Consumer Goods & Food', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'DATA_ACT', 'BATTERIE_VO'], + totalDocs: 265, + }, + { + id: 'bau', + de: 'Bauwirtschaft', + en: 'Construction', + regs: ['GDPR', 'AI_ACT', 'NIS2', 'CRA', 'MACHINERY_REG', 'DATA_ACT'], + totalDocs: 245, + }, ] 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, - } + const de = lang === 'de' return (
- +

{rl.title}

@@ -81,42 +112,42 @@ export default function RegulatoryLandscapeSlide({ lang }: RegulatoryLandscapeSl
{/* KPI Row */} -
- - - +
+ + + +
{/* Matrix */} - {/* Matrix Grid */} -
- {/* Staggered header rows — odd columns on top row, even on bottom */} -
+
+ {/* Header rows — staggered for space */} +
- {lang === 'de' ? 'Branche' : 'Industry'} + {de ? 'Branche' : 'Industry'}
- {CATEGORIES.map((cat, idx) => ( -
+ {KEY_REGULATIONS.map((reg, idx) => ( +
{idx % 2 === 0 ? ( - - {categoryLabels[cat.id]} + + {reg.label} ) : null}
))}
- {lang === 'de' ? 'Regulatorien' : 'Regulations'} + {de ? 'Dokumente' : 'Documents'}
-
+
- {CATEGORIES.map((cat, idx) => ( -
+ {KEY_REGULATIONS.map((reg, idx) => ( +
{idx % 2 === 1 ? ( - - {categoryLabels[cat.id]} + + {reg.label} ) : null}
@@ -125,43 +156,48 @@ export default function RegulatoryLandscapeSlide({ lang }: RegulatoryLandscapeSl
{/* 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} -
+ {INDUSTRIES.map((industry) => ( +
+
+ + {de ? industry.de : industry.en} +
- ) - })} + {KEY_REGULATIONS.map((reg) => { + const applies = industry.regs.includes(reg.id) + return ( +
+ {applies ? ( +
+
+
+ ) : ( +
+ )} +
+ ) + })} +
+ {industry.totalDocs} +
+
+ ))} + + {/* Footer note */} +
+

+ {de + ? '244 Dokumente gelten horizontal für alle Branchen (DSGVO, BDSG, AI Act, NIS2, CRA, BetrVG, HGB, ...). Sektorspezifische Regulierungen kommen hinzu.' + : '244 documents apply horizontally to all industries (GDPR, BDSG, AI Act, NIS2, CRA, ...). Sector-specific regulations are added on top.'} +

+
diff --git a/pitch-deck/lib/i18n.ts b/pitch-deck/lib/i18n.ts index 4798137..d9162b1 100644 --- a/pitch-deck/lib/i18n.ts +++ b/pitch-deck/lib/i18n.ts @@ -114,7 +114,7 @@ const translations = { }, regulatoryLandscape: { title: 'Regulatorische Landschaft', - subtitle: '110 Gesetze & Regularien, 10 Branchen — eine Plattform', + subtitle: '320 Dokumente im RAG — 10 Industriesektoren — eine Plattform', documents: 'Originaldokumente', controls: 'Extrahierte Controls', regulations: 'Regularien', @@ -411,7 +411,7 @@ const translations = { }, regulatoryLandscape: { title: 'Regulatory Landscape', - subtitle: '110 laws & regulations, 10 industries — one platform', + subtitle: '320 documents in RAG — 10 industry sectors — one platform', documents: 'Original Documents', controls: 'Extracted Controls', regulations: 'Regulations',