/**
* @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 };