import React from 'react'; import { motion } from 'framer-motion'; import { Play, GitCompare, Bookmark, Copy, Trash2 } from 'lucide-react'; import { useUserStore } from '@/store/userStore'; interface ScenarioCardProps { id: string; name: string; title: string; goal: string; tags?: string[]; badge?: string | null; badgeColor?: string; metrics?: { revenue_change?: number; profit_change?: number; risk?: string; }; confidence?: number; estimatedRoi?: string; runtimeMs?: number; onRun?: (id: string) => void; onCompare?: (id: string) => void; onSave?: (id: string) => void; onClone?: (id: string) => void; onDelete?: (id: string) => void; } const ScenarioCard: React.FC = ({ id, name, title, goal, tags = [], badge, badgeColor = 'emerald', metrics = {}, confidence, estimatedRoi, runtimeMs, onRun, onCompare, onSave, onClone, onDelete, }) => { const { isDark } = useUserStore(); const riskColors: Record = { Low: 'text-emerald-500 bg-emerald-500/10', Medium: 'text-amber-500 bg-amber-500/10', High: 'text-red-500 bg-red-500/10', }; return ( {/* Header */}

{name}

{title}

{badge && ( {badge} )}
{/* Tags */}
{tags.map((tag, i) => ( {tag} ))}
{/* Description */}

{goal}

{/* Metrics */}
{metrics.revenue_change !== undefined && (

Revenue

= 0 ? 'text-emerald-500' : 'text-red-500'}`}> ↑ {Math.abs(metrics.revenue_change)}%

)} {metrics.profit_change !== undefined && (

Profit

= 0 ? 'text-emerald-500' : 'text-red-500'}`}> ↑ {Math.abs(metrics.profit_change)}%

)} {metrics.risk && (

Risk

{metrics.risk}
)}
{/* Actions */}
); }; export default ScenarioCard;