import * as React from "react"; /** * Shared chart chrome — owns the cross-cutting concerns every chart needs so the individual chart * wrappers stay tiny: - a11y: a `
` with a visible `
` title and a screen-reader * text alternative (WCAG 1.1.1) describing the plotted data, with the SVG itself marked * `role="img"` so AT announces one labelled graphic. - i18n: a locale-aware `Intl.NumberFormat` * shared by axis ticks + tooltips. - tokens: the `--chart-1..6` palette + size→height tiers. * Internal — NOT a public catalog primitive (re-exported only through the chart wrappers). */ /** Canonical decorative chart palette (foundation tokens). */ export declare const CHART_COLORS: readonly ["var(--chart-1)", "var(--chart-2)", "var(--chart-3)", "var(--chart-4)", "var(--chart-5)", "var(--chart-6)"]; /** Resolve a series/slice colour: explicit wins, else cycle the palette by index. */ export declare function chartColor(index: number, explicit?: string): string; /** Resolve the canvas height: explicit px overrides the `size` tier. */ export declare function chartHeight(size?: "xs" | "sm" | "md" | "lg", height?: number): number; /** A locale-bound number formatter for the active app locale. */ export declare function useChartNumberFormat(options?: Intl.NumberFormatOptions): Intl.NumberFormat; type ChartFrameProps = { /** Visible caption; also the accessible name via `aria-labelledby` → `
`. */ label: React.ReactNode; /** * Paint the caption. `false` keeps the `
` in the DOM as `sr-only`, so * `aria-labelledby` still names the figure — only the duplicate visible title goes away. */ showCaption?: boolean; /** Extra context appended to the screen-reader description. */ description?: React.ReactNode; /** Pre-formatted "category: value" rows for the screen-reader text alternative. */ summaryRows: string[]; /** Concise summary read on the `role="img"` SVG wrapper. */ imgSummary: string; /** True when there is data to plot (otherwise children render an empty state). */ hasData: boolean; /** Canvas height in px. */ height?: number; /** Mirrored onto the figure as `data-size` so CSS can pick a token height tier. */ size?: "xs" | "sm" | "md" | "lg"; /** * Content rendered BELOW the plot, outside the `role="img"` canvas — an activity * footer, a delta, a link. Kept outside so interactive children stay reachable. */ footer?: React.ReactNode; className?: string; id?: string; children: React.ReactNode; ref?: React.Ref; /** The plot box itself — charts that measure their own axis need to read its width. */ canvasRef?: React.Ref; /** Rendered inside the canvas, after `children` (the axis measuring probe). */ canvasExtra?: React.ReactNode; }; /** * The accessible figure wrapper. The chart body passed as `children` is wrapped * in a `role="img"` element with a short `aria-label`; the full data is exposed as * a sibling visually-hidden list referenced by the figure's `aria-describedby`. */ export declare function ChartFrame({ label, showCaption, description, summaryRows, imgSummary, hasData, height, size, footer, className, id, children, ref, canvasRef, canvasExtra, }: ChartFrameProps): React.JSX.Element; export {};