"use client"; import type { Task } from "@mosaic/shared"; import { TaskStatus } from "@mosaic/shared"; import { useDroppable } from "@dnd-kit/core"; import { SortableContext, verticalListSortingStrategy } from "@dnd-kit/sortable"; import { TaskCard } from "./task-card"; interface KanbanColumnProps { status: TaskStatus; title: string; tasks: Task[]; } const statusColors = { [TaskStatus.NOT_STARTED]: "border-gray-300 dark:border-gray-600", [TaskStatus.IN_PROGRESS]: "border-blue-300 dark:border-blue-600", [TaskStatus.PAUSED]: "border-amber-300 dark:border-amber-600", [TaskStatus.COMPLETED]: "border-green-300 dark:border-green-600", [TaskStatus.ARCHIVED]: "border-gray-400 dark:border-gray-500", }; const statusBadgeColors = { [TaskStatus.NOT_STARTED]: "bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300", [TaskStatus.IN_PROGRESS]: "bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400", [TaskStatus.PAUSED]: "bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400", [TaskStatus.COMPLETED]: "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400", [TaskStatus.ARCHIVED]: "bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400", }; export function KanbanColumn({ status, title, tasks }: KanbanColumnProps) { const { setNodeRef, isOver } = useDroppable({ id: status, }); const taskIds = tasks.map((task) => task.id); return (
{/* Column Header */}

{title}

{tasks.length}
{/* Tasks */}
{tasks.length > 0 ? ( tasks.map((task) => ) ) : (
{/* Empty state - gentle, PDA-friendly */}

No tasks here yet

)}
); }