/** * ReadinessSummary — a "what's left before this is ready" panel: an optional * progress bar with a worded count, then grouped, actionable issues. Generalizes * the readiness/completeness panels found across products (setup checklists, * document completeness, pre-submission validation …). * * Router-neutral: issues expose an `onSelect` callback and/or a trailing action * node — no routing lives here (an app or the react-components layer wires links). * Readiness is never communicated by color alone: the header states the count in * words, each issue has a shape icon, and a positive zero-state renders when * nothing is outstanding. */ import type { ReactNode } from "react"; import { type ReadinessSeverity } from "./variants.js"; export * from "./variants.js"; export type ReadinessIssue = { id: string; label: ReactNode; description?: ReactNode; /** Defaults to `error`. */ severity?: ReadinessSeverity; /** When provided, the issue becomes a keyboard-operable button. */ onSelect?: () => void; /** Trailing content (a count badge, a custom link/action node). */ action?: ReactNode; }; export type ReadinessGroup = { id: string; title?: ReactNode; issues: readonly ReadinessIssue[]; }; export type ReadinessProgress = { complete: number; total: number; }; export type ReadinessSummaryProps = { groups: readonly ReadinessGroup[]; title?: ReactNode; /** Drives the progress bar and its "{complete} of {total}" caption. */ progress?: ReadinessProgress; /** Rendered when every group is empty. Defaults to a positive English state. */ readyState?: ReactNode; /** * Formats the completeness caption beside the title. Defaults to English * "{complete} of {total} complete". */ progressLabel?: (complete: number, total: number) => ReactNode; ariaLabel?: string; }; export declare function ReadinessSummary({ groups, title, progress, readyState, progressLabel, ariaLabel, }: ReadinessSummaryProps): import("react").JSX.Element; //# sourceMappingURL=index.d.ts.map