diff --git a/pitch-deck/app/pitch-print/[versionId]/_components/PrintAnnexSlides.tsx b/pitch-deck/app/pitch-print/[versionId]/_components/PrintAnnexSlides.tsx index 3b73ed1..19e5e1d 100644 --- a/pitch-deck/app/pitch-print/[versionId]/_components/PrintAnnexSlides.tsx +++ b/pitch-deck/app/pitch-print/[versionId]/_components/PrintAnnexSlides.tsx @@ -4,6 +4,108 @@ import { ArchitectureDiagram, PipelineFlow } from './PrintDiagrams' interface SlideBase { lang: Language; pageNum: number; totalPages: number; versionName: string } +/* ===== ANHANG DIVIDER ===== */ + +/** + * Chapter-break slide that sits between the main pitch and the appendix. + * Bypasses the standard Page chrome to render as a hero divider, but keeps + * a footer row consistent with all other slides. + */ +export function PrintAnnexDividerPage({ lang, pageNum, totalPages, versionName }: SlideBase) { + const de = lang === 'de' + const MONO = "'JetBrains Mono', ui-monospace, monospace" + + const sections: [string, string, string][] = de ? [ + ['17', 'Go-to-Market Strategie', 'Pilot · Skalierung · Expansion'], + ['18', 'Finanzplan', 'P&L 2026–2030 · KPI-Dashboard'], + ['19', 'Treibervariablen', 'Annahmen + Sensitivitätsszenarien'], + ['20', 'Regulatorische Details', 'DSGVO · AI Act · NIS-2 · CRA · MaschVO'], + ['21', 'Systemarchitektur', '3 Tiers · LiteLLM Gateway · lokale Inferenz'], + ['22', 'Engineering Deep Dive', '500K+ LoC · 45 Container · 100 % Self-Hosted'], + ['23', 'KI-Pipeline', 'RAG · Multi-Agent · Document Intelligence · QA'], + ['24', 'Risiken & Mitigation', '10 Risiken in 5 Kategorien'], + ['25', 'Glossar', '30 Begriffe · Compliance · Engineering · Recht'], + ] : [ + ['17', 'Go-to-Market Strategy', 'Pilot · Scale · Expansion'], + ['18', 'Financial Plan', 'P&L 2026–2030 · KPI dashboard'], + ['19', 'Driver Variables', 'Assumptions + sensitivity scenarios'], + ['20', 'Regulatory Details', 'GDPR · AI Act · NIS-2 · CRA · Machinery Reg.'], + ['21', 'System Architecture', '3 tiers · LiteLLM gateway · local inference'], + ['22', 'Engineering Deep Dive', '500K+ LoC · 45 containers · 100 % self-hosted'], + ['23', 'AI Pipeline', 'RAG · multi-agent · document intelligence · QA'], + ['24', 'Risks & Mitigation', '10 risks across 5 categories'], + ['25', 'Glossary', '30 terms · compliance · engineering · law'], + ] + + return ( +
+
+ + {/* Top meta row */} +
+ {de ? 'Teil II · Anhang' : 'Part II · Appendix'} + BreakPilot · ComplAI +
+ + {/* Hero */} +
+
+ {de ? '16 · Kapitelwechsel' : '16 · Chapter break'} +
+

+ {de ? 'Anhang' : 'Appendix'}. +

+
+

+ {de + ? 'Detailangaben & Belege. Was wir in der Pitch gesagt haben, mit Quellen, Zahlen und Architektur belegt.' + : 'Detail & evidence. Everything we claimed in the pitch, backed by sources, numbers and architecture.'} +

+ + {/* What's coming */} +
+
+ {de ? 'Auf den folgenden Seiten' : 'On the following pages'} +
+
+ {sections.map(([n, t, sub]) => ( +
+ {n} +
+
{t}
+
{sub}
+
+
+ ))} +
+
+
+ + {/* Footer (matches Page primitive) */} +
+ BreakPilot · ComplAI + {versionName} + {String(pageNum).padStart(2, '0')} / {String(totalPages).padStart(2, '0')} +
+
+
+ ) +} + /* ===== STRATEGY / GO-TO-MARKET ===== */ export function PrintStrategyPage({ lang, pageNum, totalPages, versionName }: SlideBase) { diff --git a/pitch-deck/app/pitch-print/[versionId]/_components/PrintDeck.tsx b/pitch-deck/app/pitch-print/[versionId]/_components/PrintDeck.tsx index 8a15d6f..34b68ff 100644 --- a/pitch-deck/app/pitch-print/[versionId]/_components/PrintDeck.tsx +++ b/pitch-deck/app/pitch-print/[versionId]/_components/PrintDeck.tsx @@ -18,6 +18,7 @@ import { PrintCompetitionPage1, PrintCompetitionPage2, } from './PrintCompetitionSlides' import { + PrintAnnexDividerPage, PrintStrategyPage, PrintRegulatoryPage, PrintArchitecturePage, PrintEngineeringPage, PrintAIPipelinePage, PrintRisksPage, PrintGlossaryPage, } from './PrintAnnexSlides' @@ -46,13 +47,13 @@ export default function PrintDeck({ pitchData, versionName, fmResults, fmAssumpt const hasFinancialDetail = financial && annualRows.length > 0 const de = lang === 'de' - // Base standard PDF: 29 physical pages. + // Base standard PDF: 30 physical pages. // 2 (exec) + 1 (cover) + 1 (problem) + 1 (solution) + 2 (usp) + 1 (regL) + // 1 (product) + 1 (how) + 1 (market) + 1 (bm) + 1 (milestones) + 2 (competition) + - // 1 (team) + 1 (ask) + 1 (savings) + 1 (strategy) + 2 (finanzplan) + - // 1 (assumptions) + 1 (regulatory) + 1 (architecture) + 1 (engineering) + - // 1 (aipipeline) + 1 (risks) + 1 (glossary) + 1 (disclaimer) = 29 - const BASE_PAGES = 29 + // 1 (team) + 1 (ask) + 1 (savings) + 1 (anhang-divider) + 1 (strategy) + + // 2 (finanzplan) + 1 (assumptions) + 1 (regulatory) + 1 (architecture) + + // 1 (engineering) + 1 (aipipeline) + 1 (risks) + 1 (glossary) + 1 (disclaimer) = 30 + const BASE_PAGES = 30 const totalPages = BASE_PAGES + (hasFinancialDetail ? 1 : 0) + (hasCapTable ? 1 : 0) useEffect(() => { @@ -144,7 +145,10 @@ export default function PrintDeck({ pitchData, versionName, fmResults, fmAssumpt {/* 15. customer-savings */} - {/* 16. annex-strategy */} + {/* 16. ANHANG divider — chapter break before the appendix block */} + + + {/* 17. annex-strategy */} {/* 17. annex-finanzplan (2 pages) */}