'use client' import { useCallback } from 'react' import { Language, PitchData } from '@/lib/types' import { t, formatEur } from '@/lib/i18n' import GradientText from '../ui/GradientText' import FadeInView from '../ui/FadeInView' import GlassCard from '../ui/GlassCard' import { Download, Shield, Server, Brain, TrendingUp, Users, FileText, Target } from 'lucide-react' interface ExecutiveSummarySlideProps { lang: Language data: PitchData } export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySlideProps) { const i = t(lang) const es = i.executiveSummary const funding = data.funding const amount = funding?.amount_eur || 0 const amountLabel = amount >= 1_000_000 ? `${(amount / 1_000_000).toFixed(1)} Mio. EUR` : `${(amount / 1_000).toFixed(0)}k EUR` const market = data.market || [] const tam = market.find(m => m.market_segment === 'TAM') const sam = market.find(m => m.market_segment === 'SAM') const som = market.find(m => m.market_segment === 'SOM') const handleDownloadPdf = useCallback(() => { const printWindow = window.open('', '_blank') if (!printWindow) return const tamVal = tam ? formatEur(tam.value_eur, lang) : '—' const samVal = sam ? formatEur(sam.value_eur, lang) : '—' const somVal = som ? formatEur(som.value_eur, lang) : '—' const teamHtml = data.team?.map(m => `
${m.name} — ${lang === 'de' ? m.role_de : m.role_en}
` ).join('') || '' const useOfFundsHtml = funding?.use_of_funds?.map(f => `
${lang === 'de' ? f.label_de : f.label_en} ${f.percentage}%
` ).join('') || '' printWindow.document.write(` BreakPilot ComplAI — Executive Summary

BreakPilot ComplAI

${lang === 'de' ? 'Compliance & Code-Security f\u00fcr den Maschinenbau' : 'Compliance & Code Security for Machine Manufacturers'}
Pre-Seed ${funding?.target_date ? 'Q' + Math.ceil((new Date(funding.target_date).getMonth() + 1) / 3) + ' ' + new Date(funding.target_date).getFullYear() : 'Q4 2026'}
${es.usp}: ${es.uspText}
${es.problem}
${es.problemText}
${es.solution}
${es.solutionText}
${es.keyMetrics}
170+
${es.documents}
40.000+
${es.controls}
84
${es.regulations}
10
${es.industries}
761K
${es.linesOfCode}
${amountLabel}
${es.theAsk}
${es.market}
TAM${tamVal}
SAM${samVal}
SOM${somVal}
${es.roi || es.businessModel}
${es.roiText || es.businessModelText}
Team
${teamHtml}
${es.theAsk} — ${amountLabel}
${es.round}: ${funding?.round_name || 'Pre-Seed'}
Instrument: ${funding?.instrument || 'SAFE'}
${useOfFundsHtml}
`) printWindow.document.close() setTimeout(() => printWindow.print(), 300) }, [lang, data, es, funding, tam, sam, som, amountLabel]) return (

{es.title}

{es.subtitle}

{/* USP Banner */}
{es.usp}

{es.uspText}

{/* Problem + Solution — 2 columns */}

{es.problem}

{es.problemText}

{es.solution}

{es.solutionText}

{/* KPI Row */}
{[ { value: '170+', label: es.documents, icon: FileText, color: '#6366f1' }, { value: '40.000+', label: es.controls, icon: Shield, color: '#a78bfa' }, { value: '84', label: es.regulations, icon: Brain, color: '#60a5fa' }, { value: '10', label: es.industries, icon: Server, color: '#34d399' }, { value: '761K', label: es.linesOfCode, icon: Target, color: '#fbbf24' }, { value: amountLabel, label: es.theAsk, icon: TrendingUp, color: '#f472b6' }, ].map((kpi, idx) => (

{kpi.value}

{kpi.label}

))}
{/* Market + Business Model + Team + The Ask — compact 2x2 */}

{es.market}

{[ { label: 'TAM', data: tam }, { label: 'SAM', data: sam }, { label: 'SOM', data: som }, ].map(({ label, data: m }) => (
{label} {m ? formatEur(m.value_eur, lang) : '—'}
))}

{es.roi || es.businessModel}

{es.roiText || es.businessModelText}

Team

{data.team?.slice(0, 4).map((m, idx) => (
{m.name} {lang === 'de' ? m.role_de : m.role_en}
))}

{es.theAsk} — {amountLabel}

{es.round} {funding?.round_name || 'Pre-Seed'}
Instrument {funding?.instrument || 'SAFE'}
{funding?.use_of_funds?.slice(0, 3).map((f, idx) => (
{lang === 'de' ? f.label_de : f.label_en} {f.percentage}%
))}
{/* PDF Download Button */}
) }