import { Plus } from "lucide-react"; import type { LucideIcon } from "lucide-react"; import type { ReactNode } from "react"; import { Button } from "@/components/ui/button"; interface EmptyStateProps { icon: LucideIcon; /** Large decorative artwork; shares hover/focus with the action below. */ graphic?: ReactNode; /** Optional bold heading rendered above the message. */ title?: string; message: string; /** Optional secondary line rendered under the primary message. */ description?: string; action?: string; onAction?: () => void; /** Hide the leading "+" glyph on the action button (e.g. for a "Set up" CTA). */ hideActionIcon?: boolean; } export function EmptyState({ icon: Icon, graphic, title, message, description, action, onAction, hideActionIcon = false, }: EmptyStateProps) { return (
{graphic ? :
} {title ? ( <>

{title}

{message}

) : ( <>

{message}

{description &&

{description}

} )} {action && onAction && ( )}
); }