import * as React from 'react'; export type EmptyStateLayout = 'horizontal' | 'vertical'; /** A single action: a link when `href` is set, a button when `onClick` is. */ export interface EmptyStateAction { /** Visible text, and the React key — actions must therefore have distinct labels. */ label: string; onClick?: React.MouseEventHandler; href?: string; /** * Button treatment. Ignored when `href` is set, which always renders as a link. * @default 'secondary' */ variant?: 'primary' | 'secondary' | 'link'; } declare const emptyStateStyles: (props?: ({ layout?: "horizontal" | "vertical" | null | undefined; container?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface EmptyStateProps extends Omit, 'title'> { /** Illustration or icon. Decorative by default — give it a label if it carries meaning. */ image?: React.ReactNode; /** Headline. Rendered as an `h3`; override with `titleAs` to keep an outline correct. */ title?: React.ReactNode; /** * Heading level for `title`. * @default 'h3' */ titleAs?: 'h2' | 'h3' | 'h4' | 'h5' | 'h6'; /** Supporting copy. */ body?: React.ReactNode; /** Actions below the copy. */ actions?: EmptyStateAction[]; /** * `horizontal` puts the image beside the copy; `vertical` stacks and centers. * @default 'horizontal' */ layout?: EmptyStateLayout; /** * Wrap in a bordered card. Set `false` when the parent already draws one — * a table's empty row, for instance. * @default true */ container?: boolean; } /** * The zero state of a region: an illustration slot, a headline, supporting copy, * and optional actions. * * Ported from maker-ds `patterns/empty-state` rather than cr-web-demo, which * re-implements this ad hoc at every call site — three different paddings and two * different heading weights across the app. maker-ds's branded background asset, * its product-specific presets, and its `Actions` foundation are all dropped in * favor of the `image` slot and a minimal `EmptyStateAction[]`; `TextLink` has no * Strix equivalent, so an action with an `href` renders as `Button variant="link"` * with `render={}`, which keeps it a real anchor for middle-click and * "copy link address". * * @example * @example *