import "./comparison_bar.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; export interface ComparisonBarProps extends StyleProps { /** What the two figures are figures OF — "Price", "Lead time". */ title: string; /** The subject: this record's own figure. */ value: number; /** What it is read AGAINST — the list price, the market rate, last year. Null * where the screen has no reference to state, which is a different fact from * a reference of zero. */ reference: number | null; /** Both figures, drawn by the SAME formatter the register draws them with — * one value, one rendering. */ format: (n: number) => string; valueLabel: string; referenceLabel: string; /** THE DELTA AS A SENTENCE, in the screen's own words. It is handed the SIGNED * difference as a share of the reference, in percentage points: negative where * the value is below it, because only the caller knows which direction its * domain calls good. Omitted, the pack states the share and its direction. */ deltaLabel?: (pct: number) => string; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** * ONE FIGURE READ AGAINST ANOTHER — our price against the list price, this * quarter against last, the quoted lead time against the market's. Two bars on * ONE axis, each stating its own figure in words, and the difference between * them said in a sentence underneath. * * NOT A PROGRESS: a meter is a value against a MAXIMUM, and a reference price is * not a ceiling. NOT A BREAKDOWN either: the two bars are not shares of one * whole, they are two wholes drawn to one scale. * * THE AXIS IS THE LONGER OF THE TWO, so the longer bar runs the full track and * the eye gets the ratio before it reads either number. * * THE BARS SAY NOTHING ON THEIR OWN — each arm prints its label and its figure, * and the delta is a sentence. The delta carries no tone, because the kit cannot * know which direction is good news. * * A NULL REFERENCE DRAWS NO BAR AT ALL: one reading alone has nothing to be a * share OF, so a track would run full whatever the value is. */ export declare function ComparisonBar(props: ComparisonBarProps): React.ReactElement>;