"use client"; import { ChevronLeft, ChevronRight, Plus, Search, Calendar as CalendarIcon, Clock, Filter, MoreHorizontal, Brain } from "lucide-react"; // Mock Data const categories = [ { name: "Deep Work", color: "bg-[#6C5BB0]" }, { name: "Meetings", color: "bg-orange-500" }, { name: "Project Deadlines", color: "bg-blue-500" }, { name: "Health & Habits", color: "bg-emerald-500" }, ]; const mockEvents = [ { day: 2, title: "Q3 Planning", type: "Meetings", time: "10:00 AM", colorClass: "bg-orange-500/10 text-orange-400 border-orange-500/20" }, { day: 5, title: "Deep Work Session", type: "Deep Work", time: "09:00 AM", colorClass: "bg-[#6C5BB0]/10 text-[#a798e8] border-[#6C5BB0]/20" }, { day: 5, title: "UI Review", type: "Project Deadlines", time: "02:00 PM", colorClass: "bg-blue-500/10 text-blue-400 border-blue-500/20" }, { day: 12, title: "Frontend Deploy", type: "Project Deadlines", time: "11:00 AM", colorClass: "bg-blue-500/10 text-blue-400 border-blue-500/20" }, { day: 15, title: "1:1 with Alex", type: "Meetings", time: "01:30 PM", colorClass: "bg-orange-500/10 text-orange-400 border-orange-500/20" }, { day: 15, title: "Gym", type: "Health & Habits", time: "06:00 PM", colorClass: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20" }, { day: 18, title: "Focus Block", type: "Deep Work", time: "08:00 AM", colorClass: "bg-[#6C5BB0]/10 text-[#a798e8] border-[#6C5BB0]/20" }, { day: 22, title: "Reading", type: "Health & Habits", time: "09:00 PM", colorClass: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20" }, { day: 25, title: "Client Demo", type: "Project Deadlines", time: "03:00 PM", colorClass: "bg-blue-500/10 text-blue-400 border-blue-500/20" }, { day: 28, title: "Retrospective", type: "Meetings", time: "04:00 PM", colorClass: "bg-orange-500/10 text-orange-400 border-orange-500/20" }, ]; const daysOfWeek = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]; // Generates a mock calendar grid for a 30-day month starting on a Tuesday const generateCalendarDays = () => { const days = []; // 1 empty slot for Monday before the 1st days.push({ empty: true, key: "empty-0" }); for (let i = 1; i <= 30; i++) { const events = mockEvents.filter((e) => e.day === i); days.push({ empty: false, day: i, events, isToday: i === 15 }); } // Fill the rest of the grid (35 total cells for a 5-week view) const remaining = 35 - days.length; for (let i = 1; i <= remaining; i++) { days.push({ empty: true, key: `empty-end-${i}` }); } return days; }; export default function CalendarPage() { const calendarDays = generateCalendarDays(); return (
{/* Top Header */}

Calendar / Monthly View

{/* Main Content Grid */}
{/* Left Sidebar Panel */}
{/* Mini Calendar Mock */}
May 2026
M
T
W
T
F
S
S
27
{[...Array(30)].map((_, i) => (
{i + 1}
))}
1
2
3
4
{/* Calendars / Categories */}

My Calendars

{categories.map((cat, idx) => ( ))}

Shared Context

{/* AI Features */}

AI Assistant

Based on your energy trends, I suggest moving the UI Review to Thursday afternoon.

{/* Main Calendar View */}
{/* Calendar Toolbar */}

May 2026

{/* Calendar Header (Days) */}
{daysOfWeek.map((day) => (
{day}
))}
{/* Calendar Grid */}
{calendarDays.map((cell, idx) => (
{!cell.empty && (
{cell.day}
)} {/* Events */}
{cell.events?.map((event, eIdx) => (
{event.time} • {event.title}
))}
))}
); }