import { TNode, Value } from '@tempots/dom'; /** * Size options for the EmptyState component. */ export type EmptyStateSize = 'sm' | 'md' | 'lg'; /** * Configuration options for the {@link EmptyState} component. */ export interface EmptyStateOptions { /** * Icon identifier string (Iconify format) to display above the title. * When `undefined`, no icon is rendered. */ icon?: Value; /** * Main heading text for the empty state. */ title: Value; /** * Optional description text displayed below the title. */ description?: Value; /** * Visual size of the empty state component. * @default 'md' */ size?: Value; /** * Optional action element (e.g., a button) displayed below the description. */ action?: TNode; /** * Additional CSS class name(s) to apply to the root element. */ class?: Value; } /** * Renders an empty state UI component used to communicate when no content or * data is available. Typically includes an icon, title, description, and an * optional call-to-action button. * * Empty states improve UX by explaining why content is missing and suggesting * next steps, rather than showing a blank screen. * * @param options - Configuration options for the empty state * @returns A centered empty state element with icon, text, and optional action * * @example * ```typescript * import { EmptyState } from '@tempots/beatui' * import { Button } from '@tempots/beatui' * * EmptyState({ * icon: 'material-symbols:inbox-outline', * title: 'No messages', * description: 'You have no messages in your inbox.', * size: 'md' * }) * ``` * * @example * ```typescript * // With action button * EmptyState({ * icon: 'material-symbols:add-circle-outline', * title: 'No projects yet', * description: 'Create your first project to get started.', * size: 'lg', * action: Button( * { variant: 'filled', color: 'primary' }, * 'Create Project' * ) * }) * ``` * * @example * ```typescript * // Minimal empty state without icon * EmptyState({ * title: 'Nothing to see here', * description: 'Try adjusting your filters.', * size: 'sm' * }) * ``` */ export declare function EmptyState({ icon, title, description, size, action, class: cls, }: EmptyStateOptions): import("@tempots/dom").Renderable;