/** * `ProjectTabs` — the project tab bar rendered below the app header. * * Shows one tab per open project with a close control, and a "+" button to * return to the launcher. Purely presentational: all state lives in the * parent (ProjectsView via useProjects). */ import type { TabItem } from "@/shared"; import { Button, Tabs, cn } from "@/shared"; export interface ProjectTabsProps { items: TabItem[]; activeTabId: string | null; onSelect: (id: string) => void; onClose: (id: string) => void; /** Whether the launcher overlay is currently visible (no active tab). */ showingLauncher: boolean; onShowLauncher: () => void; className?: string; } export function ProjectTabs({ items, activeTabId, onSelect, onClose, showingLauncher, onShowLauncher, className, }: ProjectTabsProps) { if (items.length === 0) return null; return (