import "./finding.css"; import type * as React from "react"; import { type ReactNode } from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; export type FindingSeverity = "critical" | "warning" | "info" | "positive"; /** The `finding` slice. */ export type FindingLabels = Record & { /** Read to assistive tech beside the figure. */ difference: string; }; export interface FindingReading { /** A document, a table, a rate card. */ source: string; value: string; } export interface FindingProps extends StyleProps { /** Sets the dot's colour and its localized word. */ severity: FindingSeverity; /** One line, in the reader's nouns. */ title: string; /** * One per line as `source value`, never joined by a separator. Neither is marked wrong: which is * right is the reader's call. */ readings?: FindingReading[]; /** * "+170 USD", "3 days late". Right-aligned on the title's line, since it is what the reader acts * on. Omit where fields are not commensurable. */ delta?: string; /** Only when the title lacks it; a restating second sentence adds nothing. */ detail?: string; /** The host navigates to it. */ onOpenSource?: (source: string) => void; /** A table, a chart, a confidence bar. */ children?: ReactNode; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** * ONE RANKED DISCREPANCY from a cross-check — a contradiction, an audit observation, a briefing * item — whoever performed it. Readings sit at `sm` like the title; hierarchy comes from weight and * colour, never shrinking evidence. The dot, title and delta share a line and the readings sit * under it. Display-only: it decides nothing. Stack most severe first. */ export declare function Finding(props: FindingProps): React.ReactElement>;