import { type ReactNode } from "react"; import { cn } from "@/lib/utils"; export interface DependencyBannerDependency { id: string; title: string; statusLabel: string; isBlocking?: boolean; isDone?: boolean; onClick?: () => void; disabled?: boolean; } interface DependencyBannerProps { variant?: DependencyBannerVariant; dependencies?: DependencyBannerDependency[]; children?: ReactNode; className?: string; emptyMessage?: string; } type DependencyBannerVariant = "blocked" | "resolved"; const toneClassByVariant: Record = { blocked: "border-rose-200 bg-rose-50 text-rose-700", resolved: "border-blue-200 bg-blue-50 text-blue-700", }; export function DependencyBanner({ variant = "blocked", dependencies = [], children, className, emptyMessage = "No dependencies.", }: DependencyBannerProps) { return (
{dependencies.length > 0 ? ( dependencies.map((dependency) => { const isBlocking = dependency.isBlocking === true; const isDone = dependency.isDone === true; return ( ); }) ) : (

{emptyMessage}

)} {children ? (
{children}
) : null}
); }