import type { ProjectRepoFile } from "@/features/projects/hooks"; import type { ProjectRepoUnavailableReason } from "@/features/projects/lib/projectRepoAvailability"; import type * as React from "react"; import { cn } from "@/shared/lib/cn"; import { ReadmePanel } from "./ProjectReadmePanel"; import type { RepoSourceHeaderControls } from "./ProjectRepositorySource"; type ProjectOverviewPanelProps = { /** `buzz-channel` binding of the repository, for access-restricted copy. */ accessChannelId?: string | null; externalHost?: string; externalUrl?: string | null; gitDataState: GitDataState; /** Hide the readme header rows when the workspace renders them itself. */ hideReadmeHeader?: boolean; ownerAvatarUrl?: string | null; ownerIsAgent?: boolean; ownerName?: string; readmeFile: ProjectRepoFile | null; /** Branch picker + remote/local toggle for the readme header. */ sourceControls?: RepoSourceHeaderControls; unavailableReason?: ProjectRepoUnavailableReason; }; export type GitDataState = "checking" | "available" | "empty" | "unavailable"; export function OverviewRailSection({ children, title, titleClassName, }: { children: React.ReactNode; title: string; titleClassName?: string; }) { return (

{title}

{children}
); } export function ProjectOverviewPanel({ accessChannelId, externalHost, externalUrl, gitDataState, hideReadmeHeader, ownerAvatarUrl, ownerIsAgent, ownerName, readmeFile, sourceControls, unavailableReason, }: ProjectOverviewPanelProps) { return (
{/* ReadmePanel renders its own "no README" fallback while keeping repository recovery actions reachable. */}
); }