fix(pitch-deck): KPICard NaN for string values, remove cap-table + Land&Expand
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m19s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 30s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 33s
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m19s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 30s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 33s
- KPICard: accept string values (e.g. "380+") without NaN - Remove cap-table slide from order + sidebar - Remove Land & Expand arrow from Pricing slide Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,6 @@ import { t } from '@/lib/i18n'
|
|||||||
import GradientText from '../ui/GradientText'
|
import GradientText from '../ui/GradientText'
|
||||||
import FadeInView from '../ui/FadeInView'
|
import FadeInView from '../ui/FadeInView'
|
||||||
import GlassCard from '../ui/GlassCard'
|
import GlassCard from '../ui/GlassCard'
|
||||||
import { ArrowRight } from 'lucide-react'
|
|
||||||
|
|
||||||
interface BusinessModelSlideProps {
|
interface BusinessModelSlideProps {
|
||||||
lang: Language
|
lang: Language
|
||||||
@@ -92,15 +91,6 @@ export default function BusinessModelSlide({ lang }: BusinessModelSlideProps) {
|
|||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Expansion arrow */}
|
|
||||||
<FadeInView delay={0.4} className="flex items-center justify-center gap-3 mt-4">
|
|
||||||
<span className="text-xs text-white/30">Starter</span>
|
|
||||||
<ArrowRight className="w-3.5 h-3.5 text-indigo-400/40" />
|
|
||||||
<span className="text-xs text-white/30">Professional</span>
|
|
||||||
<ArrowRight className="w-3.5 h-3.5 text-indigo-400/40" />
|
|
||||||
<span className="text-xs text-white/30">Enterprise</span>
|
|
||||||
<span className="text-sm text-white/20 ml-3">{de ? 'Land & Expand' : 'Land & Expand'}</span>
|
|
||||||
</FadeInView>
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import AnimatedCounter from './AnimatedCounter'
|
|||||||
|
|
||||||
interface KPICardProps {
|
interface KPICardProps {
|
||||||
label: string
|
label: string
|
||||||
value: number
|
value: number | string
|
||||||
prefix?: string
|
prefix?: string
|
||||||
suffix?: string
|
suffix?: string
|
||||||
decimals?: number
|
decimals?: number
|
||||||
@@ -43,7 +43,7 @@ export default function KPICard({
|
|||||||
<p className="text-[10px] uppercase tracking-wider text-white/40 mb-1 text-center">{label}</p>
|
<p className="text-[10px] uppercase tracking-wider text-white/40 mb-1 text-center">{label}</p>
|
||||||
<div className="flex items-end justify-center gap-2">
|
<div className="flex items-end justify-center gap-2">
|
||||||
<p className="text-2xl font-bold text-white leading-none">
|
<p className="text-2xl font-bold text-white leading-none">
|
||||||
<AnimatedCounter target={value} prefix={prefix} suffix={suffix} duration={1200} decimals={decimals} />
|
{typeof value === 'string' ? `${prefix}${value}${suffix}` : <AnimatedCounter target={value} prefix={prefix} suffix={suffix} duration={1200} decimals={decimals} />}
|
||||||
</p>
|
</p>
|
||||||
{trend !== 'neutral' && (
|
{trend !== 'neutral' && (
|
||||||
<span className={`flex items-center gap-0.5 text-xs pb-0.5 ${trend === 'up' ? 'text-emerald-400' : 'text-red-400'}`}>
|
<span className={`flex items-center gap-0.5 text-xs pb-0.5 ${trend === 'up' ? 'text-emerald-400' : 'text-red-400'}`}>
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ const translations = {
|
|||||||
'Wettbewerb',
|
'Wettbewerb',
|
||||||
'Team',
|
'Team',
|
||||||
'The Ask',
|
'The Ask',
|
||||||
'Investition & Cap Table',
|
|
||||||
'Kundenersparnis',
|
'Kundenersparnis',
|
||||||
'KI Q&A',
|
'KI Q&A',
|
||||||
'Anhang: Strategie',
|
'Anhang: Strategie',
|
||||||
@@ -319,7 +318,6 @@ const translations = {
|
|||||||
'Competition',
|
'Competition',
|
||||||
'Team',
|
'Team',
|
||||||
'The Ask',
|
'The Ask',
|
||||||
'Investment & Cap Table',
|
|
||||||
'Customer Savings',
|
'Customer Savings',
|
||||||
'AI Q&A',
|
'AI Q&A',
|
||||||
'Appendix: Strategy',
|
'Appendix: Strategy',
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ export const SLIDE_ORDER: SlideId[] = [
|
|||||||
'competition',
|
'competition',
|
||||||
'team',
|
'team',
|
||||||
'the-ask',
|
'the-ask',
|
||||||
'cap-table',
|
|
||||||
'customer-savings',
|
'customer-savings',
|
||||||
'ai-qa',
|
'ai-qa',
|
||||||
'annex-strategy',
|
'annex-strategy',
|
||||||
|
|||||||
Reference in New Issue
Block a user