import type { ProposalContent } from "@/lib/proposal/schema"; type Props = { timeline: ProposalContent["timeline"] }; const COLOR_MAP = { cyan: { bg: "bg-cyan-400", text: "text-cyan-900" }, purple: { bg: "bg-violet-400", text: "text-violet-900" }, green: { bg: "bg-emerald-400",text: "text-emerald-900" }, }; export function TimelineSection({ timeline }: Props) { const weeks = Array.from({ length: timeline.totalWeeks }, (_, i) => i + 1); return (

Timeline

{timeline.totalWeeks} settimane di progressione.

{/* Header settimane */}
{weeks.map((w) => (
W{w}
))}
{/* Righe fase */} {timeline.phases.map((phase, i) => { const colors = COLOR_MAP[phase.color]; return (
{i === 0 ? "OPZIONE A" : i === 1 ? "OPZIONE B" : "OPZIONE C"}
{phase.endWeek - phase.startWeek + 1} settimane
{weeks.map((w) => { const active = w >= phase.startWeek && w <= phase.endWeek; const isFirst = w === phase.startWeek; const isLast = w === phase.endWeek; return (
{isFirst && ( {phase.label} )}
); })}
); })}
{/* Legenda */}
{timeline.phases.map((phase, i) => { const colors = COLOR_MAP[phase.color]; return (
{phase.label}
); })}

› {timeline.disclaimer}

); }