import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Separator } from "@/components/ui/separator"; import { CalendarDays, ChevronLeft, ChevronRight, Diamond } from "lucide-react"; import Sidebar from "@/components/Sidebar"; import Header from "@/components/Header"; const months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"]; const timelineProjects = [ { name: "Website Redesign", startMonth: 0, duration: 3, color: "bg-violet-500", lightColor: "bg-violet-100", phase: "Complete", milestones: [{ month: 2, label: "v1.0 Launch" }], }, { name: "Mobile App", startMonth: 1, duration: 5, color: "bg-indigo-500", lightColor: "bg-indigo-100", phase: "In Progress", milestones: [{ month: 3, label: "Beta Release" }, { month: 5, label: "GA Launch" }], }, { name: "Security Audit", startMonth: 3, duration: 3, color: "bg-amber-500", lightColor: "bg-amber-100", phase: "In Progress", milestones: [{ month: 5, label: "Audit Complete" }], }, { name: "Design System", startMonth: 4, duration: 4, color: "bg-emerald-500", lightColor: "bg-emerald-100", phase: "Planning", milestones: [{ month: 6, label: "Alpha Build" }], }, ]; const phaseColors: Record = { "Planning": "bg-blue-100 text-blue-700", "In Progress": "bg-violet-100 text-violet-700", "Review": "bg-amber-100 text-amber-700", "Complete": "bg-emerald-100 text-emerald-700", }; export default function TimelinePage() { const totalMonths = months.length; return (
{/* ── Header ── */}

Timeline

Project roadmap and milestone overview

2026
{/* ── Legend ── */}
{Object.entries(phaseColors).map(([phase, color]) => (
{phase}
))}
Milestone
{/* ── Gantt Chart ── */}
{/* Month Headers */}
Project
{months.map((month, i) => (
{month} 2026
))}
{/* Project Rows */} {timelineProjects.map((project, idx) => (

{project.name}

{project.phase}
{/* Background grid */} {months.map((_, i) => (
))} {/* Bar */}
{project.name}
{/* Milestones */} {project.milestones.map((ms, mi) => (
{ms.label}
))}
))}
{/* ── Upcoming Milestones ── */} Upcoming Milestones Key dates and deliverables across all projects {timelineProjects.flatMap(p => p.milestones.map(ms => ({ project: p.name, ...ms, color: p.color }))).sort((a, b) => a.month - b.month).map((ms, i) => (

{ms.label}

{ms.project}

{months[ms.month]} 2026
))}
); }