import { r as SummaryStrings } from "./summary-D8UEQXYr.js"; import { CSSProperties, ReactNode } from "react"; //#region src/core/strings-sprout.d.ts type SproutStrings = Pick; //#endregion //#region src/charts/sprout-row/index.d.ts interface SproutDatum { label: string; /** Stage 0–3 (rounded + clamped); null = missing (soil tick only). */ value: number | null; } interface SproutRowProps { data: readonly SproutDatum[]; /** Category labels under the slots (default off at micro scale). */ labels?: boolean | undefined; /** `value` prints the stage number above each glyph. */ label?: "none" | "value" | undefined; color?: string | undefined; height?: number | undefined; step?: number | undefined; fontSize?: number | undefined; strings?: SproutStrings | undefined; /** Minimum in-chart label size, in viewBox units. Geometry sizes labels from * the mark and floors them at 7; this raises that floor and moves the * reserved gutter with it. A label the box cannot seat at the raised floor * drops rather than shrinking back under it. */ labelSize?: number | undefined; title?: string | undefined; summary?: string | false | undefined; id?: string | undefined; className?: string | undefined; style?: CSSProperties | undefined; children?: ReactNode | undefined; } /** * Box and type size, resolved ONCE from the caller's props. * * Both are host-computed as often as typed, and a non-finite or non-positive one * is destructive in a way a bad datum is not: `height={NaN}` painted * `d="M9.55 NaN…"` glyphs and `--mc-seat: NaN` inside a viewBox `Chart` had * already clamped to 1, and `fontSize={-3}` put a negative `font-size` on every * name. Exported because the interactive entry needs the same two numbers — * deriving them from the raw props again is how its focus ring leaves the glyph. */ declare function sproutBox(labels: boolean, height?: number | undefined, fontSize?: number | undefined, min?: number | undefined): { height: number; fontSize: number; }; declare function sproutRowSummary(data: readonly SproutDatum[], strings?: SproutStrings): string; /** * The label-driven layout numbers (they widen the row when category names are * shown). Exported because the interactive entry must derive the SAME * step/padX/labelBand — computing them independently drifted its overlay ring * off the glyph whenever `labels` was on. * * Category labels render at the library-standard size and never shrink to an * illegible caption. To keep the row compact they STAGGER onto two tiers below * the soil (even slots near, odd slots far), so same-tier neighbours sit two * steps apart — a name only needs to clear 2·step, not one. The extent is the * shared PROSE estimate (`textGutterProse`, 0.95 em/char) plus a half-em gutter: * these are caller names, not figures this chart formatted, and the digits rate * it used to assume (0.72) is under the measured advance of an upper-case name, * which put "FOXTROT" on top of its neighbour and past the row's edge. The row * still widens if even 2·step is too tight. */ declare function sproutLayout(data: readonly SproutDatum[], labels: boolean, fontSize: number, step?: number | undefined): { step: number; padX: number; labelBand: number; twoTier: boolean; }; /** * Is there room for the category names? Shared by both entries so the static and * the interactive twin never disagree about the label band — a client that kept * a gutter the static dropped would walk every hit-test sideways by its width. */ declare function sproutLabelsFit(data: readonly SproutDatum[], fontSize: number, height: number, step?: number | undefined): boolean; declare function SproutRow(props: SproutRowProps): ReactNode; //#endregion export { sproutLabelsFit as a, SproutStrings as c, sproutBox as i, SproutRow as n, sproutLayout as o, SproutRowProps as r, sproutRowSummary as s, SproutDatum as t };