/** * @factory/ui — EmptyState (icon + title + description + optional action). * Used for empty pages/databases/search results (Definition of Done: "empty * state" per AGENTS.md). */ import * as React from "react"; import { clsx } from "clsx"; export interface EmptyStateProps extends React.HTMLAttributes { /** Optional icon node (e.g. a lucide-react element). */ icon?: React.ReactNode; title: string; description?: string; /** Call-to-action button/node (e.g. ). */ action?: React.ReactNode; } export function EmptyState({ icon, title, description, action, className, ...props }: EmptyStateProps) { return (
{icon !== undefined && ( )}

{title}

{description !== undefined && (

{description}

)} {action !== undefined &&
{action}
}
); }