/** * @fileoverview Saasflare EmptyState — placeholder for empty views. * @module packages/ui/components/ui/empty-state * @layer core * * Displays a centered icon/illustration, title, description, and optional * action button when a list, table, or section has no data. * * @example * import { EmptyState } from "@saasflare/ui"; * import { InboxIcon } from "./phosphor"; * * } * title="No messages" * description="You haven't received any messages yet." * action={} * /> */ import * as React from "react"; import { type SaasflareComponentProps } from "../../providers"; /** Props for the EmptyState component */ interface EmptyStateProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps { /** * Icon or illustration element. Rendered verbatim — because this is an * arbitrary `ReactNode` rather than an internal Phosphor icon, the * provider's `iconWeight` does not reach it. Set `weight` on the icon * you pass (e.g. ``) for weight control. */ icon?: React.ReactNode; /** Title text */ title: string; /** Description text */ description?: string; /** Action element (button, link, etc.) */ action?: React.ReactNode; } /** * Empty state placeholder with icon, text, and call-to-action. * * @component * @layer core * * @param {React.ReactNode} icon - Icon or illustration * @param {string} title - Title text * @param {string} description - Description text * @param {React.ReactNode} action - Optional CTA button * * @example * } * title="No documents" * description="Upload your first document to get started." * action={} * /> */ declare function EmptyState({ icon, title, description, action, className, surface, radius, animated, iconWeight, ...props }: EmptyStateProps): import("react/jsx-runtime").JSX.Element; export { EmptyState, type EmptyStateProps };