import type { LucideIcon } from 'lucide-react'; import { Empty, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, } from '@/components/ui/empty'; import { cn } from '@/lib/utils'; interface PanelEmptyProps { /** Icon communicating the kind of emptiness (no data vs no results). */ icon: LucideIcon; /** Short heading, e.g. "No MCP servers" or "No results". */ title: string; /** Optional secondary explanation line. */ description?: string; className?: string; } /** * A reusable empty-state for dock panels. Fills the remaining vertical * space and centers an icon + title + optional description. Callers * distinguish a "no data yet" state from a "search found nothing" * state via the {@link icon} and {@link title} they pass. * * @param icon - The lucide icon to show. * @param title - The empty-state heading. * @param description - Optional explanatory text. * @param className - Extra classes for the wrapper. * @returns The centered empty-state element. */ export function PanelEmpty({ icon: Icon, title, description, className }: PanelEmptyProps) { return ( {title} {description ? {description} : null} ); }