import type { AreaChartSlot, BarChartSlot, ChartFrameSlot, DonutChartSlot, LineChartSlot } from './slots.js'; /** Per-slot class overrides for ``. */ export type ChartFrameSlotClasses = Partial>; /** Per-slot class overrides for ``. */ export type BarChartSlotClasses = Partial>; /** Per-slot class overrides for ``. */ export type LineChartSlotClasses = Partial>; /** Per-slot class overrides for ``. */ export type AreaChartSlotClasses = Partial>; /** Per-slot class overrides for ``. */ export type DonutChartSlotClasses = Partial>; /** Plot margins (px). Any omitted side falls back to the frame default. */ export interface ChartMargin { top?: number; right?: number; bottom?: number; left?: number; } /** * Plot geometry passed to a ChartFrame children snippet. The snippet renders * inside a `` translated to the plot's top-left corner, so marks use local * coordinates in `[0, innerWidth] × [0, innerHeight]`. */ export interface ChartPlot { /** Full SVG width (px). */ width: number; /** Full SVG height (px). */ height: number; /** Drawable width inside the margins (px). */ innerWidth: number; /** Drawable height inside the margins (px). */ innerHeight: number; /** Resolved margins (all sides present). */ margin: Required; } /** A data series shared across the cartesian charts. */ export interface ChartSeries { /** Legend + tooltip label. */ label: string; /** Explicit color; defaults to the cycled categorical palette. */ color?: string; } /** One category (x-axis tick) with one value per series — shared by the cartesian charts. */ export interface CartesianDatum { /** Category label rendered on the x-axis. */ label: string; /** Values in series order; missing entries are treated as 0. */ values: number[]; }