"use client"; import { useState } from "react"; import { Plus, Search, MoreHorizontal, MessageSquare, Clock, CheckCircle2, AlertCircle, Layout, List, ArrowRight, TrendingUp, Users, Calendar, Activity, X, ChevronRight, Zap, Shield, Globe, Briefcase, Brain } from "lucide-react"; import { motion, AnimatePresence } from "framer-motion"; // Mock Data const projects = [ { id: 1, name: "Marketing Site", description: "Main landing page and marketing funnel optimizations for the Q3 campaign.", progress: 75, members: 4, tasks: 24, deadline: "May 25", status: "Active", health: "Good", phases: [ { name: "Design", status: "Done", date: "Apr 15" }, { name: "Development", status: "In Progress", date: "May 10" }, { name: "QA", status: "Upcoming", date: "May 20" }, ], aiRisk: "Low risk. Team velocity is 12% higher than average. Content approval is the only potential bottleneck." }, { id: 2, name: "Infrastructure", description: "Database and cloud server optimizations to support scaling to 100k users.", progress: 45, members: 2, tasks: 12, deadline: "Jun 10", status: "Delayed", health: "At Risk", phases: [ { name: "Migration", status: "In Progress", date: "May 12" }, { name: "Load Testing", status: "Upcoming", date: "May 25" }, { name: "Live Deploy", status: "Upcoming", date: "Jun 05" }, ], aiRisk: "High risk. Lead developer is over-allocated. Database migration scripts need optimization for the large dataset." }, { id: 3, name: "Cognis Mobile", description: "React Native application for iOS/Android including push notifications.", progress: 92, members: 6, tasks: 48, deadline: "May 18", status: "Active", health: "Excell.", phases: [], aiRisk: "" }, { id: 4, name: "Research", description: "User interview synthesis and competitor analysis for market expansion.", progress: 100, members: 3, tasks: 8, deadline: "May 05", status: "Completed", health: "Stable", phases: [], aiRisk: "" }, { id: 5, name: "API v2", description: "Restructuring the core API for scale and performance improvements.", progress: 30, members: 5, tasks: 32, deadline: "Jul 15", status: "Active", health: "Good", phases: [], aiRisk: "" }, ]; export default function ProjectsPage() { const [viewMode, setViewMode] = useState<"grid" | "list">("grid"); const [selectedProject, setSelectedProject] = useState(null); return (
{/* Top Header */}

Management / Projects

{/* Analytics Overview Cards */}
{/* View Toggle */}
{/* Projects Container */}
{viewMode === "grid" ? (
{projects.map((project) => ( setSelectedProject(project)} className="bg-[#0A0710] border border-white/5 rounded-sm p-6 flex flex-col gap-6 relative group overflow-hidden shadow-2xl cursor-pointer hover:border-primary/30 transition-all" >

{project.name}

{project.description}

Global Progress {project.progress}%
{project.deadline}
{[1, 2, 3].map(i => (
U{i}
))}
{project.members} Team
{project.health}
))}
) : (
Project Name
Health Status
Progress Metrics
Final Deadline
{projects.map(project => (
setSelectedProject(project)} className="grid grid-cols-12 gap-4 p-5 items-center hover:bg-white/[0.02] transition-colors group cursor-pointer">
{project.name}
{project.tasks} Active Deliverables
{project.health}
{project.progress}% Complete
{project.deadline}
))}
)}
{/* Project Detail Sheet */} {selectedProject && ( <> setSelectedProject(null)} className="fixed inset-0 bg-black/80 backdrop-blur-md z-[100]" />
{selectedProject.health} Health Due: {selectedProject.deadline}

{selectedProject.name}

{/* Description & KPI */}

Overview

{selectedProject.description}

{selectedProject.progress}%
Global Progress
{/* AI Risk Intelligence */} {selectedProject.aiRisk && (

AI Risk Assessment

"{selectedProject.aiRisk}"

)} {/* Timeline / Phases */}

Project Roadmap

{selectedProject.phases?.map((phase: any, i: number) => (
{phase.name}
{phase.date} • {phase.status}
{phase.status === 'Done' && }
))}
{/* Team & Resources */}

Team Allocation

{[1, 2, 3, 4].slice(0, selectedProject.members).map(i => (
U{i}
Project Member {i}
Strategic Lead
))}
)}
); } function ProjectStatCard({ label, value, subtext, icon: Icon }: any) { return (
{label}
{value} {subtext}
); }