Some checks failed
ci/woodpecker/push/integration Pipeline failed
ci/woodpecker/push/main Pipeline failed
CI/CD Pipeline / Go Tests (push) Has been cancelled
CI/CD Pipeline / Python Tests (push) Has been cancelled
CI/CD Pipeline / Website Tests (push) Has been cancelled
CI/CD Pipeline / Linting (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Docker Build & Push (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
Security Scanning / Dependency Vulnerability Scan (push) Has been cancelled
Security Scanning / Go Security Scan (push) Has been cancelled
Security Scanning / Python Security Scan (push) Has been cancelled
Security Scanning / Node.js Security Scan (push) Has been cancelled
Security Scanning / Docker Image Security (push) Has been cancelled
Security Scanning / Security Summary (push) Has been cancelled
Tests / All Checks Passed (push) Has been cancelled
Tests / Go Tests (push) Has been cancelled
Tests / Python Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / CI Summary (push) Has been cancelled
Security Scanning / Secret Scanning (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / Go Lint (push) Has been cancelled
Tests / Python Lint (push) Has been cancelled
Tests / Security Scan (push) Has been cancelled
Restructure financial plan from single 200k SAFE to realistic staged funding (25k Stammkapital, 25k Angel, 200k Wandeldarlehen, 1M Series A = 1.25M total). Add 60-month compute engine with CAPEX/OPEX accounting, cash constraints, hardware financing (30% upfront / 70% leasing), and revenue-based hiring caps. Rebuild TheAskSlide with 4-event funding timeline, update i18n (DE/EN), chat agent core messages, and add 15 new annex/technology slides with supporting UI components (KPICard, RunwayGauge, WaterfallChart, etc.). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
'use client'
|
|
|
|
import { FMScenario } from '@/lib/types'
|
|
import { motion } from 'framer-motion'
|
|
|
|
interface ScenarioSwitcherProps {
|
|
scenarios: FMScenario[]
|
|
activeId: string | null
|
|
compareMode: boolean
|
|
onSelect: (id: string) => void
|
|
onToggleCompare: () => void
|
|
lang: 'de' | 'en'
|
|
}
|
|
|
|
export default function ScenarioSwitcher({
|
|
scenarios,
|
|
activeId,
|
|
compareMode,
|
|
onSelect,
|
|
onToggleCompare,
|
|
lang,
|
|
}: ScenarioSwitcherProps) {
|
|
return (
|
|
<div className="space-y-2">
|
|
<div className="flex items-center justify-between">
|
|
<p className="text-[10px] text-white/40 uppercase tracking-wider">
|
|
{lang === 'de' ? 'Szenarien' : 'Scenarios'}
|
|
</p>
|
|
<button
|
|
onClick={onToggleCompare}
|
|
className={`text-[10px] px-2 py-1 rounded-lg transition-colors
|
|
${compareMode
|
|
? 'bg-indigo-500/30 text-indigo-300 border border-indigo-500/40'
|
|
: 'bg-white/[0.06] text-white/40 border border-white/10 hover:text-white/60'
|
|
}`}
|
|
>
|
|
{lang === 'de' ? 'Vergleichen' : 'Compare'}
|
|
</button>
|
|
</div>
|
|
|
|
<div className="flex gap-2">
|
|
{scenarios.map((s) => (
|
|
<motion.button
|
|
key={s.id}
|
|
whileTap={{ scale: 0.95 }}
|
|
onClick={() => onSelect(s.id)}
|
|
className={`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs transition-all
|
|
${activeId === s.id
|
|
? 'bg-white/[0.12] border border-white/20 text-white'
|
|
: 'bg-white/[0.04] border border-white/10 text-white/50 hover:text-white/70'
|
|
}`}
|
|
>
|
|
<span
|
|
className="w-2 h-2 rounded-full"
|
|
style={{ backgroundColor: s.color }}
|
|
/>
|
|
{s.name}
|
|
</motion.button>
|
|
))}
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|