@graphysdk/react-renderer 0.0.1-alpha.20260721093629 → 0.0.1-experimental.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,71 +1,41 @@
1
1
  import { AppearanceConfig } from '@graphysdk/viz-engine';
2
- import { CalloutHitRegion } from '@graphysdk/viz-engine';
3
- import { CalloutPlacement } from '@graphysdk/viz-engine';
4
- import { CartesianCoordSystem } from '@graphysdk/viz-engine';
5
2
  import { Command } from '@graphysdk/viz-engine';
6
- import { CompiledLayer } from '@graphysdk/viz-engine';
7
- import { CompiledLayerFor } from '@graphysdk/viz-engine';
8
3
  import { CompiledPanel } from '@graphysdk/viz-engine';
9
4
  import { CompiledSpec } from '@graphysdk/viz-engine';
10
5
  import { CompilerInput } from '@graphysdk/viz-engine';
11
- import { Component } from 'react';
12
6
  import { ComponentType } from 'react';
13
- import { CoordSystem } from '@graphysdk/viz-engine';
14
- import { CreateGraphyBuilderOptions } from '@graphysdk/viz-engine';
15
7
  import { CSSProperties } from 'react';
16
8
  import { CustomPalettesInput } from '@graphysdk/viz-engine';
17
9
  import { Data } from '@graphysdk/viz-engine';
18
- import { ErrorInfo } from 'react';
19
10
  import { FontSpec } from '@graphysdk/viz-engine';
20
11
  import { FormattedAxis } from '@graphysdk/viz-engine';
21
12
  import { FormattedHeadline } from '@graphysdk/viz-engine';
22
13
  import { FormattedLegend } from '@graphysdk/viz-engine';
23
- import { Geom } from '@graphysdk/viz-engine';
24
- import { GeomName } from '@graphysdk/viz-engine';
25
14
  import { GraphLayout } from '@graphysdk/viz-engine';
26
15
  import { GraphTheme } from '@graphysdk/viz-engine';
27
- import { GraphyBuilder } from '@graphysdk/viz-engine';
28
- import { HeadlineMeasurer } from '@graphysdk/viz-engine';
29
- import { HoverHit } from '@graphysdk/viz-engine';
30
16
  import { HoverState } from '@graphysdk/viz-engine';
31
17
  import { JSX } from 'react/jsx-runtime';
32
18
  import { LayoutEdge } from '@graphysdk/viz-engine';
33
- import { LineStyleType } from '@graphysdk/viz-engine';
34
19
  import { Locale } from '@graphysdk/viz-engine';
35
20
  import { MeasuredText } from '@graphysdk/viz-engine';
36
- import { Observation } from '@graphysdk/viz-engine';
37
- import { Plugin as Plugin_2 } from '@graphysdk/viz-engine';
38
- import { PolarCoordSystem } from '@graphysdk/viz-engine';
39
- import { ReactElement } from 'react';
21
+ import { NamedExoticComponent } from 'react';
40
22
  import { ReactNode } from 'react';
41
23
  import { Rect } from '@graphysdk/viz-engine';
42
- import { RenderHitTester } from '@graphysdk/viz-engine';
43
24
  import { ResolvedHeadlineSize } from '@graphysdk/viz-engine';
44
25
  import { SourceContent } from '@graphysdk/viz-engine';
45
- import { SVGProps } from 'react';
46
26
  import { TextContent } from '@graphysdk/viz-engine';
47
27
  import { TextMeasurer } from '@graphysdk/viz-engine';
48
28
  import { TooltipContent } from '@graphysdk/viz-engine';
49
- import { VizDiagnostic } from '@graphysdk/viz-engine';
50
29
 
51
30
  /**
52
- * Props for the AxisLabel slot — the axis title of every axis (e.g. "Revenue"), overridable via
53
- * `slots.AxisLabel`. `labelRects` are SVG-local, keyed by edge. The tick band is a separate slot — see
54
- * `AxisTicks`.
31
+ * Props for the Axes slot — covers both tick marks and axis labels. Override via `slots.Axes`
32
+ * on `GraphRenderer`. `tickRects` and `labelRects` are SVG-local; `formattedAxes` is the
33
+ * render-ready viz-engine runtime shape.
55
34
  */
56
- export declare interface AxisLabelSlotProps {
57
- formattedAxes: FormattedAxis[];
58
- labelRects: Partial<Record<LayoutEdge, Rect>>;
59
- }
60
-
61
- /**
62
- * Props for the AxisTicks slot — the tick lines and tick labels of every axis, overridable via
63
- * `slots.AxisTicks`. `tickRects` are SVG-local, keyed by edge. The axis title is a separate slot — see
64
- * `AxisLabel`.
65
- */
66
- export declare interface AxisTicksSlotProps {
35
+ export declare interface AxesSlotProps {
67
36
  formattedAxes: FormattedAxis[];
68
37
  tickRects: Partial<Record<LayoutEdge, Rect>>;
38
+ labelRects: Partial<Record<LayoutEdge, Rect>>;
69
39
  }
70
40
 
71
41
  /**
@@ -122,70 +92,26 @@ export declare class CanvasTextMeasurer implements TextMeasurer {
122
92
  private getEmojiCorrection;
123
93
  }
124
94
 
125
- /**
126
- * The compiled layer a renderer's handlers receive. A built-in renderer keyed to a `GeomName` gets
127
- * its param-narrowed `CompiledLayerFor<G>`; a custom renderer (`G = string`) is downstream of
128
- * serialisation, never sees the plugins array, and reads the base {@link CompiledLayer} dynamically.
129
- */
130
- declare type CompiledLayerOf<G extends GeomName | string> = G extends GeomName ? CompiledLayerFor<G> : CompiledLayer;
131
-
132
- declare type CoordKind = CoordSystem['type'];
133
-
134
- /** Maps a coord-kind discriminator to the corresponding `CoordSystem` member. */
135
- declare type CoordSystemFor<C extends CoordKind> = C extends 'cartesian' ? CartesianCoordSystem : C extends 'polar' ? PolarCoordSystem : never;
136
-
137
- /**
138
- * Ergonomic entry point for a React app: pass `plugins` once and get back a {@link GraphyKit} — the
139
- * typed builder plus a `GraphProvider` that already carries them. Pure sugar over the primitives
140
- * (`createGraphyBuilder`, `<GraphProvider plugins>`); use those directly for headless or advanced
141
- * wiring. The `const` type parameter captures the `plugins` tuple literally, so `kit.geom.<customName>`
142
- * is typed.
143
- */
144
- export declare function createGraphyKit<const P extends readonly Plugin_2[] = []>(options?: CreateGraphyBuilderOptions<P>): GraphyKit<P>;
145
-
146
- /** vanilla-extract class that binds the dark token values; set it on any ancestor to flip to dark. */
147
95
  export declare const darkTheme: string;
148
96
 
149
- /** Default paint for the footer region caption and source line. */
97
+ export declare const DefaultAxes: ({ formattedAxes, tickRects, labelRects }: AxesSlotProps) => JSX.Element;
98
+
150
99
  export declare const DefaultFooter: ({ ref, footerRect, mode, caption, isCaptionVisible, source, isSourceVisible, }: FooterSlotProps) => JSX.Element | null;
151
100
 
152
- /** Default paint for the grid region — per-tick gridlines, drawn inside the panel frame rect. */
153
- export declare const DefaultGrid: ({ axes, panel, panelFrameRect, panelRect }: GridSlotProps) => JSX.Element;
101
+ export declare const DefaultGrid: ({ axes, panel, panelRect }: GridSlotProps) => JSX.Element;
154
102
 
155
- /** Default paint for the header region — title and subtitle. */
156
103
  export declare const DefaultHeader: ({ ref, headerRect, mode, title, isTitleVisible, subtitle, isSubtitleVisible, }: HeaderSlotProps) => JSX.Element | null;
157
104
 
158
- /** The built-in glyph for each {@link SwatchShape}. */
159
- export declare const DefaultSwatch: ({ shape, color, lineType, width, height, }: Omit<SwatchSlotProps, "surface" | "label">) => JSX.Element;
105
+ export declare const DefaultHeadline: ({ headline, rect, resolvedSize, visibleItemCount }: HeadlineSlotProps) => JSX.Element;
160
106
 
161
- /**
162
- * Default tooltip body. Paints the box, header, and rows from the formatted {@link content}, and
163
- * resolves each row's swatch shape off its geom's render contract for the active coord system.
164
- * Positioning lives in the {@link Tooltip} wrapper, never here.
165
- */
166
- export declare const DefaultTooltip: ({ content }: TooltipSlotProps) => JSX.Element;
107
+ export declare const DefaultLegend: NamedExoticComponent<LegendSlotProps>;
167
108
 
168
109
  /**
169
- * Dual-target renderer binding, keyed on whether the first argument is a compile definition or a built-in
170
- * geom name:
171
- *
172
- * - **Whole new geom** — `defineGeomRenderer(definition, contract)` pairs the render contract with its
173
- * compile definition, producing a {@link GeomRendererDefinition}. Registering the result registers both
174
- * sides: the compile definition is reachable at `.definition` and the geom name is read from it, so the
175
- * two halves cannot drift.
176
- * - **Render-only override** — `defineGeomRenderer('bar', contract)` rebinds only the paint half of an
177
- * existing built-in, producing a {@link ResolvedGeomRenderer} that carries no `.definition`. The built-in
178
- * compile half keeps running (nothing re-seeds the compile registry); only the render registry changes.
179
- * The name is constrained to {@link GeomName}, so a by-name override of an unknown built-in is a
180
- * compile-time error. To restyle a *custom* geom, rebind its definition (which you hold) via the first form.
110
+ * Presentational tooltip body. Pure function of props paints the box, header, and rows.
111
+ * Positioning and data wiring live in the {@link Tooltip} wrapper, never here.
181
112
  */
182
- export declare function defineGeomRenderer<Definition extends Geom<unknown>>(definition: Definition, contract: GeomRenderContract): GeomRendererDefinition & {
183
- readonly definition: Definition;
184
- };
113
+ export declare const DefaultTooltip: ({ content, isVisible }: TooltipSlotProps) => JSX.Element | null;
185
114
 
186
- export declare function defineGeomRenderer<G extends GeomName>(geom: G, contract: GeomRenderContract): ResolvedGeomRenderer;
187
-
188
- /** Dev-only compile-cache inspector; render inside a `<GraphProvider>`. See {@link DevToolsPanelProps}. */
189
115
  export declare const DevToolsPanel: ({ width, style, className }?: DevToolsPanelProps) => JSX.Element;
190
116
 
191
117
  /**
@@ -202,46 +128,12 @@ export declare interface DevToolsPanelProps {
202
128
  className?: string;
203
129
  }
204
130
 
205
- declare const FONT_STYLES: readonly ["normal", "italic", "oblique"];
206
-
207
131
  /**
208
- * A CSS length keeping its unit so measurement can treat it like CSS paint does: em scales with
209
- * `textScale` (see `emToPx`), px stays absolute.
210
- */
211
- export declare interface FontLength {
212
- value: number;
213
- unit: 'px' | 'em';
214
- }
215
-
216
- /** Host font catalog mapping each font id a spec may reference to the CSS `font-family` string to render it with. */
217
- export declare type FontListInput = Array<{
218
- id: string;
219
- fontFamily: string;
220
- }>;
221
-
222
- /** A CSS `font-style` keyword accepted by a measured font token override. */
223
- export declare type FontStyle = (typeof FONT_STYLES)[number];
224
-
225
- /**
226
- * A structured override of a measured font token. Omitted fields keep the token's default (which
227
- * still cascades from the leaf tokens, e.g. `fontSizeXs`), so `{ weight: 600 }` changes only the
228
- * weight.
229
- */
230
- export declare interface FontTokenOverride {
231
- family?: string;
232
- weight?: number;
233
- style?: FontStyle;
234
- size?: FontLength;
235
- /** Unitless multiplier; sizes HTML line boxes (legend band). Canvas measurement ignores it. */
236
- lineHeight?: number;
237
- }
238
-
239
- /**
240
- * Props for the Footer slot, overridable via `slots.Footer` on `GraphRenderer`. Caption editing in
241
- * `editable` mode is internal to this default; an override replacing the region opts out of it.
132
+ * Props for the Footer slot. Override via `slots.Footer` on `GraphRenderer`. The content
133
+ * (caption/source + visibility) arrives as props; in-place caption editing in `editable` mode is
134
+ * internal to this default — an override replacing the region opts out of that editing.
242
135
  */
243
136
  export declare interface FooterSlotProps {
244
- /** Forward this to the region's outer element — the layout measures the rendered DOM to reserve its space. */
245
137
  ref?: React.Ref<HTMLDivElement>;
246
138
  footerRect: Rect;
247
139
  mode?: GraphMode;
@@ -251,195 +143,6 @@ export declare interface FooterSlotProps {
251
143
  isSourceVisible: boolean;
252
144
  }
253
145
 
254
- /** A custom geom `renderHoverCompanions` handler's input: the layer plus the primary and related hover hits. */
255
- export declare type GeomHoverCompanionsRendererInput = HoverCompanionsRenderInput;
256
-
257
- /** Page-relative cursor coordinates the push-path tooltip anchors to. */
258
- export declare interface GeomHoverCursor {
259
- clientX: number;
260
- clientY: number;
261
- }
262
-
263
- /**
264
- * Pushes a hovered observation key into the central hover, or clears this layer's hover with `null`.
265
- * A non-null key requires a `cursor` — the overlay intercepts the pointer events the cursor-follow
266
- * tooltip would otherwise read, so the anchor can only come from the geom's own handler. Consumed by
267
- * {@link InteractiveOverlayApi.pushHover} and returned by `useGeomHover`.
268
- */
269
- export declare interface GeomHoverPush {
270
- (key: string, cursor: GeomHoverCursor): void;
271
- (key: null): void;
272
- }
273
-
274
- /** A custom geom `renderHover` handler's input: the hovered layer plus the primary/group/related hover hits. */
275
- export declare type GeomHoverRendererInput = HoverRenderInput;
276
-
277
- /** A custom geom `getOverlayAnchor` handler's input: the layer, coord system, and the matched observation. */
278
- export declare type GeomOverlayAnchorRendererInput = OverlayAnchorInput;
279
-
280
- /** An overlay-hosted geom's paint function — receives the guaranteed overlay wiring on `input.overlay`. */
281
- export declare type GeomOverlayRenderFn<G extends GeomName | string = string, C extends CoordKind = CoordKind> = (input: GeomOverlayRenderInput<G, C>) => ReactNode;
282
-
283
- /**
284
- * The input an overlay-hosted render (`{ fn, options: { overlay: true } }`) receives: the standard render
285
- * input plus a guaranteed {@link InteractiveOverlayApi}. The renderer always supplies it, so the geom's
286
- * render uses `overlay` unconditionally — it never decides where it is mounted, only what it paints.
287
- */
288
- export declare interface GeomOverlayRenderInput<G extends GeomName | string = string, C extends CoordKind = CoordKind> extends GeomRenderInput<G, C> {
289
- overlay: InteractiveOverlayApi;
290
- }
291
-
292
- /**
293
- * A geom's `render`: either a plain panel-SVG paint function, or an overlay-hosted one paired with
294
- * `options` — so a geom that must paint into the interactive overlay declares
295
- * `{ fn, options: { overlay: true } }` without a second render entry point. The
296
- * renderer decides where each is mounted; the geom only decides what it paints. `render` is the single
297
- * paint declaration either way.
298
- */
299
- export declare type GeomRender<G extends GeomName | string = string, C extends CoordKind = CoordKind> = GeomRenderFn<G, C> | {
300
- fn: GeomOverlayRenderFn<G, C>;
301
- options: GeomRenderOptions;
302
- };
303
-
304
- /**
305
- * The render side of a geom: everything a single `(geom, coord)` composition needs to render and
306
- * respond to hover. Generic over the geom name and coord kind, so a built-in renderer parameterised
307
- * as `GeomRenderContract<'bar', 'cartesian'>` receives param-narrowed inputs (`CompiledLayerFor<'bar'>`,
308
- * `CartesianCoordSystem`), while the default `<string, CoordKind>` instantiation is the base/custom
309
- * contract a plugin author writes against. The geom's name, highlight strategy, and `params` type are
310
- * NOT restated here — they are read off the compile definition this contract is bound to (see
311
- * {@link defineGeomRenderer}). This is the single declaration of a geom's render contract; the built-in
312
- * narrow form below and the base/custom form (`geom-renderer.ts`) are both instantiations of it.
313
- */
314
- export declare interface GeomRenderContract<G extends GeomName | string = string, C extends CoordKind = CoordKind> {
315
- /** The coord system this contract paints under. A geom may bind one contract per coord. */
316
- coord: C;
317
- swatchShape?: SwatchShape;
318
- /**
319
- * The hover-guide mode this `(geom, coord)` draws when it is the hovered layer (a
320
- * {@link HoverGuideMode}). Omit it — or contribute `null` — to draw no guide (the geom's mark is its
321
- * own highlight). A declared mode the composition can't realise draws nothing: a polar bar's `'band'`
322
- * fills a wedge, but a pie/donut (no category band) resolves to an empty one. `resolveHoverGuideMode`
323
- * reads the hovered layer's mode to pick the one guide the chart draws.
324
- */
325
- guideMode?: HoverGuideMode | null;
326
- /**
327
- * The geom's paint. A plain function paints into the panel SVG; the `{ fn, options: { overlay: true } }`
328
- * form paints into a screen-aligned portal above the central capture layer for a live/drag-driven geom
329
- * that owns its pointer events (force-directed), with the wiring on `input.overlay`.
330
- */
331
- render: GeomRender<G, C>;
332
- /**
333
- * Optional repaint of the matched subset for the highlight overlay. Omit it and the highlight layer
334
- * falls back to {@link render}. A geom overrides it when the plain column-grouped render would
335
- * misrepresent a matched subset — a bar repaints each matched observation as an isolated stack segment
336
- * (from its compiled stack role), so a lone mid-stack match keeps its square-edged silhouette and
337
- * single-width border instead of regrouping into a standalone rounded bar.
338
- */
339
- renderHighlight?: (input: HighlightRenderInput<G, C>) => ReactNode;
340
- renderHover: (input: HoverRenderInput<G, C>) => ReactNode;
341
- renderHoverCompanions: (input: HoverCompanionsRenderInput<G>) => ReactNode;
342
- /**
343
- * Render-side spatial query for a `'render-hit-test'` layer whose geometry is precomputed into the
344
- * compiled spec (sankey ribbons, treemap tiles, voronoi cells). A
345
- * **factory**: given the render input it returns the per-cursor {@link RenderHitTester};
346
- * the renderer memoizes the factory on `layer.data`, so the read runs once per data change and the
347
- * per-move query allocates nothing. The author writes no hook; the renderer registers the tester on its
348
- * behalf. The cursor arrives in panel-local `[0,1]` with a top-left origin — the frame the geom paints
349
- * in. Returns the declared identity key of the observation under the cursor, or `null` for a miss.
350
- */
351
- hitTest?: (input: GeomRenderInput<G, C>) => RenderHitTester;
352
- /** Panel-space anchor for a matched observation; required when the def highlights via overlay-anchor. */
353
- getOverlayAnchor?: (input: OverlayAnchorInput<G, C>) => OverlayAnchor | null;
354
- }
355
-
356
- /**
357
- * A render contract paired with the compile definition it paints for. The engine recovers the definition
358
- * structurally from `.definition` (React-free), and the renderer reads the geom name from the same
359
- * definition — so the compile and render sides are one declaration consumed twice, never two matched by
360
- * a string.
361
- */
362
- export declare interface GeomRendererDefinition extends ResolvedGeomRenderer {
363
- /** The compile definition this renderer paints for. Held by reference — the single source of identity. */
364
- readonly definition: Geom<unknown>;
365
- }
366
-
367
- /** A custom geom render handler's input — the base instantiation of the typed built-in inputs. */
368
- export declare type GeomRendererInput = GeomRenderInput;
369
-
370
- /** A geom's panel-SVG paint function — the plain `render` form. */
371
- export declare type GeomRenderFn<G extends GeomName | string = string, C extends CoordKind = CoordKind> = (input: GeomRenderInput<G, C>) => ReactNode;
372
-
373
- declare interface GeomRenderInput<G extends GeomName | string = string, C extends CoordKind = CoordKind> {
374
- layer: CompiledLayerOf<G>;
375
- coordSystem: CoordSystemFor<C>;
376
- isAnimated: boolean;
377
- formattingLocale: Locale;
378
- }
379
-
380
- /**
381
- * Hosting options for an overlay render. The presence of the object form already declares overlay hosting;
382
- * `overlay: true` makes the call site read explicitly (and leaves room for further hosting options later).
383
- */
384
- export declare interface GeomRenderOptions {
385
- /**
386
- * Mount this render's output in a screen-aligned portal above the central capture layer, rather than in
387
- * the panel SVG — for a live or drag-driven geom that must own its pointer events (force-directed). The
388
- * renderer then supplies {@link GeomOverlayRenderInput.overlay}.
389
- */
390
- overlay: true;
391
- }
392
-
393
- /**
394
- * The single place a chart surfaces an error in place — instead of unwinding the page to a blank
395
- * screen. Two failure modes converge here: a non-throwing **compile failure** the host passes via
396
- * {@link GraphErrorBoundaryProps.forcedErrors}, and a **render-throw** from a renderer component that
397
- * this boundary catches. Both render the same {@link GraphErrorPanel}, so there is exactly one panel
398
- * call site rather than one per failure mode.
399
- */
400
- export declare class GraphErrorBoundary extends Component<GraphErrorBoundaryProps, GraphErrorBoundaryState> {
401
- state: GraphErrorBoundaryState;
402
- static getDerivedStateFromError(error: Error): GraphErrorBoundaryState;
403
- componentDidCatch(error: Error, info: ErrorInfo): void;
404
- componentDidUpdate(prevProps: GraphErrorBoundaryProps): void;
405
- render(): ReactNode;
406
- }
407
-
408
- declare interface GraphErrorBoundaryProps {
409
- children: ReactNode;
410
- /**
411
- * Compile failures to surface in place, rendered through the same panel as a caught render-throw
412
- * so a chart has one predictable place for its errors.
413
- */
414
- forcedErrors?: VizDiagnostic[] | null;
415
- /**
416
- * When any key changes after a caught render-throw, the boundary clears it and
417
- * retries — so a fixed spec recovers. */
418
- resetKeys?: readonly unknown[];
419
- /**
420
- * Called with a single-element list when a child throws during render
421
- * (not for `forcedErrors`, which the host already reported).
422
- */
423
- onError?: (errors: VizDiagnostic[]) => void;
424
- }
425
-
426
- declare interface GraphErrorBoundaryState {
427
- caughtDiagnostic: VizDiagnostic | null;
428
- }
429
-
430
- /**
431
- * Shared in-place fallback for a chart that failed to compile or render. Shows each diagnostic's
432
- * `code`, `message`, and `suggestion` — richer than a bare error message — so an end user can file
433
- * a useful report and a developer can see what to fix. Theme-independent: it can render before the
434
- * theme provider mounts.
435
- */
436
- export declare const GraphErrorPanel: ({ errors }: GraphErrorPanelProps) => JSX.Element;
437
-
438
- declare interface GraphErrorPanelProps {
439
- /** The compile failure(s). The first headlines; any remaining are listed beneath it. */
440
- errors: VizDiagnostic[];
441
- }
442
-
443
146
  /**
444
147
  * Chart display and interaction mode.
445
148
  * - 'readonly': Normal chart display with full interactivity but no editing (default)
@@ -448,34 +151,19 @@ declare interface GraphErrorPanelProps {
448
151
  export declare type GraphMode = 'readonly' | 'editable';
449
152
 
450
153
  /**
451
- * Owns the compiled spec for a graph and exposes it via {@link useCompiledSelector}, plus a
452
- * `dispatch` for applying {@link Command}s. Both failure modes — a non-throwing compile failure and a
453
- * render-throw from a renderer component — converge on a single {@link GraphErrorBoundary} that shows
454
- * the error in place, so a broken chart never blanks the page.
154
+ * Owns the compiled spec for a graph and exposes it via {@link useCompiledSpec}, plus a
155
+ * `dispatch` for applying {@link Command}s.
455
156
  */
456
- export declare const GraphProvider: ({ data, input, plugins, formattingLocale, onChange, onError, onWarnings, customPalettes, theme, fontList, themeOverrides: themeOverridesInput, children, }: GraphProviderProps) => JSX.Element;
157
+ export declare const GraphProvider: ({ data, input, formattingLocale, onChange, customPalettes, theme, themeOverrides: themeOverridesInput, children, }: GraphProviderProps) => JSX.Element;
457
158
 
458
- /** Props for {@link GraphProvider}: the data and spec input to compile, plus theme, locale and plugin wiring. */
459
- export declare interface GraphProviderProps {
159
+ declare interface GraphProviderProps {
460
160
  data: Data;
461
161
  input: CompilerInput;
462
- /**
463
- * Custom geoms, stats, and transforms (and their render halves) registered for this graph. Seeds
464
- * the compiler and builds the per-provider render resolver from one array. Construction-time config,
465
- * frozen at mount — change the registered set by remounting (React `key`); `data`/`input`/`theme`
466
- * stay reactive.
467
- */
468
- plugins?: readonly Plugin_2[];
469
162
  formattingLocale?: Locale;
470
163
  onChange?: (next: CompilerInput) => void;
471
- /** Fires with the compile failure(s) whenever a compile/recompile/dispatch produces errors. */
472
- onError?: (errors: VizDiagnostic[]) => void;
473
- /** Fires with any warnings a successful compile produced. */
474
- onWarnings?: (warnings: VizDiagnostic[]) => void;
475
164
  theme?: GraphTheme;
476
165
  themeOverrides?: ThemeOverrides;
477
166
  customPalettes?: CustomPalettesInput;
478
- fontList?: FontListInput;
479
167
  children: ReactNode;
480
168
  }
481
169
 
@@ -485,14 +173,11 @@ export declare interface GraphProviderProps {
485
173
  * no `config` prop: every consumer must wrap with `<GraphProvider>` so commands can operate
486
174
  * on the live spec.
487
175
  */
488
- export declare const GraphRenderer: ({ slots, sizing, onResize, ...rest }: GraphRendererProps) => JSX.Element;
176
+ export declare const GraphRenderer: ({ slots, ...props }: GraphRendererProps) => JSX.Element;
489
177
 
490
- /** Props for {@link GraphRenderer}: container sizing, interaction toggles and per-region slot overrides. */
491
178
  export declare interface GraphRendererProps {
492
- /** Controls how the graph responds to its container size. Defaults to filling the parent container. */
493
- sizing?: GraphSizing;
494
- /** Callback invoked when the graph's container is resized. Fires in every sizing mode. */
495
- onResize?: ResizeObserverOnResize;
179
+ width: number;
180
+ height: number;
496
181
  isAnimated?: boolean;
497
182
  showTooltips?: boolean;
498
183
  mode?: GraphMode;
@@ -500,78 +185,37 @@ export declare interface GraphRendererProps {
500
185
  slots?: GraphSlots;
501
186
  }
502
187
 
503
- /** Controls how the graph claims space in its container. */
504
- export declare type GraphSizing = {
505
- mode: 'responsive';
506
- } | {
507
- mode: 'fixed';
508
- width: number;
509
- height: number;
510
- } | {
511
- mode: 'keepAspectRatio';
512
- intrinsicWidth: number;
513
- intrinsicHeight: number;
514
- } | {
515
- mode: 'keepAspectRatio';
516
- intrinsicWidth: number;
517
- aspectRatio: number;
518
- } | {
519
- mode: 'keepAspectRatio';
520
- intrinsicHeight: number;
521
- aspectRatio: number;
522
- };
523
-
524
188
  /**
525
- * Region overrides for `GraphRenderer`. A slot replaces how one region paints; the viz-engine `Spec`
526
- * still owns whether a region exists and what data it receives, and an override gets the same
527
- * render-ready props as its default.
528
- *
529
- * Layout-safe regions (`Header`, `Footer`, `Tooltip`, `Grid`, `Swatch`) are bare components —
530
- * DOM-measured, reserving no edge space or painting inside a box the layout already sized.
531
- * Layout-coupled regions (`AxisTicks`, `AxisLabel`, `Legend`, `Headline`) are
532
- * {@link SlotOverride}s that also declare their reserved size via `measure`, else paint and the
533
- * reserved band desync. The tick and title bands are separate slots so overriding one leaves the other
534
- * on its default.
189
+ * Region overrides for `GraphRenderer`. Each slot replaces how one region paints; the viz-engine
190
+ * `Spec` stays the source of truth for whether a region exists and what data it receives. An
191
+ * override has the same signature as its default and is handed render-ready props.
535
192
  */
536
193
  export declare interface GraphSlots {
537
194
  Header?: ComponentType<HeaderSlotProps>;
538
195
  Footer?: ComponentType<FooterSlotProps>;
196
+ Legend?: ComponentType<LegendSlotProps>;
197
+ Headline?: ComponentType<HeadlineSlotProps>;
539
198
  Tooltip?: ComponentType<TooltipSlotProps>;
540
199
  Grid?: ComponentType<GridSlotProps>;
541
- Swatch?: ComponentType<SwatchSlotProps>;
542
- Legend?: SlotOverride<LegendSlotProps, (legend: FormattedLegend, ctx: SlotMeasureContext) => number>;
543
- Headline?: SlotOverride<HeadlineSlotProps, HeadlineMeasurer>;
544
- AxisTicks?: SlotOverride<AxisTicksSlotProps, (axis: FormattedAxis, ctx: SlotMeasureContext) => number>;
545
- AxisLabel?: SlotOverride<AxisLabelSlotProps, (axis: FormattedAxis, ctx: SlotMeasureContext) => number>;
200
+ Axes?: ComponentType<AxesSlotProps>;
546
201
  }
547
202
 
548
203
  /**
549
- * A plugin-bound authoring kit: the typed `geom`/`stat`/`transform`/`scale`/`coord` factories plus
550
- * `createSpec`/`pipe`, and a `GraphProvider` pre-bound to the same `plugins` so what can be written
551
- * and what can render derive from one array and cannot diverge. Generic over the `plugins` tuple so
552
- * the typed per-plugin builder methods (`geom.<name>`, …) flow through to the React entry point.
553
- */
554
- export declare interface GraphyKit<P extends readonly Plugin_2[] = readonly Plugin_2[]> extends GraphyBuilder<P> {
555
- GraphProvider: (props: Omit<GraphProviderProps, 'plugins'>) => ReactElement;
556
- }
557
-
558
- /**
559
- * Props for the Grid slot, overridable via `slots.Grid` on `GraphRenderer`. `panelRect` is in
560
- * SVG-local coordinates.
204
+ * Props for the Grid slot. Override via `slots.Grid` on `GraphRenderer`. `panelRect` is in
205
+ * SVG-local coordinates; `axes` and `panel` are render-ready viz-engine runtime shapes.
561
206
  */
562
207
  export declare interface GridSlotProps {
563
208
  axes: FormattedAxis[];
564
209
  panel: CompiledPanel;
565
- panelFrameRect: GraphLayout['panelFrame'];
566
210
  panelRect: GraphLayout['panel'];
567
211
  }
568
212
 
569
213
  /**
570
- * Props for the Header slot, overridable via `slots.Header` on `GraphRenderer`. Title editing in
571
- * `editable` mode is internal to this default; an override replacing the region opts out of it.
214
+ * Props for the Header slot. Override via `slots.Header` on `GraphRenderer`. The content
215
+ * (title/subtitle + visibility) arrives as props; in-place title editing in `editable` mode is
216
+ * internal to this default — an override replacing the region opts out of that editing.
572
217
  */
573
218
  export declare interface HeaderSlotProps {
574
- /** Forward this to the region's outer element — the layout measures the rendered DOM to reserve its space. */
575
219
  ref?: React.Ref<HTMLDivElement>;
576
220
  headerRect: Rect;
577
221
  mode?: GraphMode;
@@ -581,7 +225,10 @@ export declare interface HeaderSlotProps {
581
225
  isSubtitleVisible: boolean;
582
226
  }
583
227
 
584
- /** Props for the Headline slot, overridable via `slots.Headline` on `GraphRenderer`. */
228
+ /**
229
+ * Props for the Headline slot. Override via `slots.Headline` on `GraphRenderer`; the data is
230
+ * render-ready, formatted by the viz-engine runtime.
231
+ */
585
232
  export declare interface HeadlineSlotProps {
586
233
  headline: FormattedHeadline;
587
234
  rect: Rect;
@@ -590,37 +237,6 @@ export declare interface HeadlineSlotProps {
590
237
  visibleItemCount: number;
591
238
  }
592
239
 
593
- /**
594
- * The input a geom's {@link GeomRenderContract.renderHighlight} receives: the matched-subset layer plus
595
- * the panel rect, so a geom that repaints matched observations in absolute panel pixels (bars drawing
596
- * isolated stack segments) has the frame it needs. A superset of {@link GeomRenderInput}, so a geom that
597
- * doesn't override `renderHighlight` still paints through the plain `render`.
598
- */
599
- declare interface HighlightRenderInput<G extends GeomName | string = string, C extends CoordKind = CoordKind> extends GeomRenderInput<G, C> {
600
- panelRect: GraphLayout['panel'];
601
- }
602
-
603
- declare interface HoverCompanionsRenderInput<G extends GeomName | string = string> {
604
- layer: CompiledLayerOf<G>;
605
- primary: HoverHit;
606
- related: HoverHit[];
607
- }
608
-
609
- /**
610
- * The shape of positional guide the `HoverGuide` draws for a hovered observation, contributed per
611
- * `(geom, coord)` renderer via `guideMode`:
612
- *
613
- * - `'band'` — a rectangle over the hovered category's band on the main axis (bars).
614
- * - `'crosshair'` — a rule at the hovered value: a straight line under cartesian, a centre-to-rim spoke
615
- * under polar (line and area).
616
- *
617
- * A renderer that omits `guideMode` draws no guide (scatter points). A declared `'band'` still draws
618
- * nothing where the composition has no category band — a pie/donut resolves to an empty wedge. The chart
619
- * draws the guide of whichever layer the cursor resolves to, so a combo shows a band over a hovered bar
620
- * and a crosshair over a hovered line; see `resolveHoverGuideMode`.
621
- */
622
- declare type HoverGuideMode = 'crosshair' | 'band';
623
-
624
240
  /**
625
241
  * Hosts the hover store + engine for the surrounding `<GraphProvider>`. Subscribes only to the
626
242
  * `layers` and `coordSystem` slices of the compiled spec — the engine never reads anything else,
@@ -632,177 +248,28 @@ declare interface HoverProviderProps {
632
248
  children: ReactNode;
633
249
  }
634
250
 
635
- declare interface HoverRenderInput<G extends GeomName | string = string, C extends CoordKind = CoordKind> {
636
- layer: CompiledLayerOf<G>;
637
- coordSystem: CoordSystemFor<C>;
638
- primary: HoverHit;
639
- group: HoverHit[];
640
- related: HoverHit[];
641
- panelRect: GraphLayout['panel'];
642
- }
643
-
644
251
  declare interface HoverSlice {
645
252
  hover: HoverState;
646
- /**
647
- * Box the tooltip anchors against while the pointer is over a pinned callout, in client
648
- * coordinates. `null` during normal cursor hover, when the tooltip follows the cursor.
649
- */
650
- tooltipAnchor: TooltipAnchor | null;
651
- /**
652
- * Mini-bubble hit rects the tracker tests before the geom hit-test. Callout renderers publish
653
- * their placed rects here so hover detection stays in the single pointer pipeline.
654
- */
655
- calloutHits: CalloutHitRegion[];
656
253
  }
657
254
 
658
255
  declare interface HoverStoreActions {
659
256
  setHoverState: (next: HoverState) => void;
660
- setTooltipAnchor: (next: TooltipAnchor | null) => void;
661
- setCalloutHits: (next: CalloutHitRegion[]) => void;
662
257
  }
663
258
 
664
- /** State of the hover store: the current {@link HoverState} plus its setter. */
665
259
  declare type HoverStoreState = HoverSlice & HoverStoreActions;
666
260
 
667
261
  /**
668
- * The overlay wiring handed to an overlay-hosted render via {@link GeomOverlayRenderInput.overlay}. The
669
- * geom writes only its simulation, marks, and drag handlers; the renderer owns the on-screen rect
670
- * measurement, the portal alignment, and the push wiring.
262
+ * Props for the Legend slot. Override via `slots.Legend` on `GraphRenderer`; the data is
263
+ * render-ready, formatted by the viz-engine runtime.
671
264
  */
672
- export declare interface InteractiveOverlayApi {
673
- /** Feeds the hovered observation's identity key into the unified hover store — the push path. */
674
- pushHover: GeomHoverPush;
675
- /** The panel's on-screen rect in client pixels, so the overlay can place its marks. */
676
- panelRect: PanelScreenRect;
677
- }
678
-
679
- /** Props for the Legend slot, overridable via `slots.Legend` on `GraphRenderer`. */
680
265
  export declare interface LegendSlotProps {
681
266
  formattedLegends: FormattedLegend[];
682
267
  rects: Partial<Record<LayoutEdge, Rect>>;
683
268
  textScale: number;
684
269
  }
685
270
 
686
- /** Scales the color's HSL lightness up by `amount` (0–1). */
687
- export declare const lightenCss: (colorString: string, amount: number) => string;
688
-
689
- /** vanilla-extract class that binds the light token values; the default theme. */
690
271
  export declare const lightTheme: string;
691
272
 
692
- /**
693
- * The element font tokens JS measurement reproduces. Overridden structurally
694
- * ({@link FontTokenOverride}); the CSS variable's shorthand is serialized from the same object
695
- * measurement reads, so paint and layout move together.
696
- */
697
- export declare type MeasuredFontTokenKey = 'fontDataLabel' | 'fontStackTotal' | 'fontCategoryLabel' | 'fontTickLabel' | 'fontAxisLabel' | 'fontLegendLabel' | 'fontGoalLineLabel';
698
-
699
- /**
700
- * Anchor point in normalized [0,1] coord-space where a highlight overlay marker
701
- * should be painted for one observation. Renderer turns [0,1] into pixels.
702
- */
703
- export declare interface OverlayAnchor {
704
- x: number;
705
- y: number;
706
- }
707
-
708
- declare interface OverlayAnchorInput<G extends GeomName | string = string, C extends CoordKind = CoordKind> {
709
- layer: CompiledLayerOf<G>;
710
- coordSystem: CoordSystemFor<C>;
711
- observation: Observation;
712
- }
713
-
714
- /** The panel's on-screen rect in client coordinates — what a fixed-position overlay aligns to. */
715
- export declare interface PanelScreenRect {
716
- left: number;
717
- top: number;
718
- width: number;
719
- height: number;
720
- }
721
-
722
- export { RenderHitTester }
723
-
724
- /** Fires on each deduped size change — the shape of `GraphRenderer`'s `onResize` callback. */
725
- export declare type ResizeObserverOnResize = (state: ResizeObserverState) => void;
726
-
727
- /** The observed element's content-box size in CSS pixels, rounded to integers. */
728
- export declare interface ResizeObserverState {
729
- width: number;
730
- height: number;
731
- /** True until the first ResizeObserver measurement lands. */
732
- isDefault: boolean;
733
- }
734
-
735
- /**
736
- * A render contract with its resolved geom name attached — the shape the per-provider resolver returns
737
- * and every render site consumes. Both a built-in `GeomRenderer` and a custom {@link GeomRendererDefinition}
738
- * conform to it, so the consumers paint built-ins and customs through one type.
739
- */
740
- export declare interface ResolvedGeomRenderer extends GeomRenderContract {
741
- /** The geom name this renderer paints — the resolver dispatches on it. */
742
- geom: string;
743
- }
744
-
745
- /**
746
- * Passed as the second argument to a layout-coupled slot's `measure`, so it can size its band from
747
- * real text metrics — the same Canvas-backed measurer the built-in measurers use — rather than
748
- * constructing its own. A `measure` whose size is unrelated to text can ignore it.
749
- */
750
- export declare interface SlotMeasureContext {
751
- /** Measures a string at a given font; returns `{ width, height, ascent, descent }` in CSS pixels. */
752
- measureText: TextMeasurer['measureText'];
753
- /** Active text-scale multiplier; multiply an em size by this to get the pixel size to measure at. */
754
- textScale: number;
755
- }
756
-
757
- /**
758
- * A layout-coupled slot: the region's `render` paired with the `measure` the layout uses to reserve
759
- * its space. `measure` mirrors the matching `LayoutMeasurer` method, so paint and reserved space can't
760
- * disagree. Give it a stable reference — a `measure` whose identity changes each render takes effect on
761
- * the next paint but doesn't retrigger layout.
762
- */
763
- export declare interface SlotOverride<Props, Measure> {
764
- /** The component that paints the region. */
765
- render: ComponentType<Props>;
766
- /**
767
- * Returns the region's reserved size. Receives the region's formatted data plus a
768
- * {@link SlotMeasureContext} (`measureText`, `textScale`) for sizing from real text metrics.
769
- */
770
- measure: Measure;
771
- }
772
-
773
- /**
774
- * The vocabulary of legend/tooltip/headline marks the {@link Swatch} can paint. A geom picks the one
775
- * that best evokes its on-canvas mark via `swatchShape` on its render contract (see
776
- * {@link GeomRenderContract}); it is a render concern, so the engine never resolves it.
777
- *
778
- * - `square` — a filled rect (bars)
779
- * - `line` — a horizontal stroke (lines)
780
- * - `area` — a filled region with a stroke accent (areas)
781
- * - `circle` — a filled dot (points)
782
- * - `slice` — a pie / donut wedge (polar bars)
783
- */
784
- export declare type SwatchShape = 'square' | 'line' | 'circle' | 'area' | 'slice';
785
-
786
- /**
787
- * Props for the Swatch slot (`slots.Swatch` on `GraphRenderer`). An override must paint inside the
788
- * `width` × `height` box it receives.
789
- *
790
- * Switch on `shape`, `surface` or `label` and delegate the rest to
791
- * {@link DefaultSwatch}.
792
- */
793
- export declare interface SwatchSlotProps {
794
- shape: SwatchShape;
795
- color: string;
796
- surface: SwatchSurface;
797
- label?: string;
798
- lineType?: LineStyleType;
799
- width?: number;
800
- height?: number;
801
- }
802
-
803
- /** The UI surface a swatch is painted on. Lets a Swatch slot restyle one surface and delegate the rest. */
804
- export declare type SwatchSurface = 'legend' | 'tooltip' | 'headline' | 'callout' | 'rule-label';
805
-
806
273
  /**
807
274
  * Creates a font-ready, cached text measurer and shares it with descendants via context.
808
275
  * Renders nothing until the measurer resolves, so consumers reading the context always
@@ -827,19 +294,10 @@ declare interface TextMeasurerProviderProps {
827
294
  measurer?: TextMeasurer;
828
295
  }
829
296
 
830
- /** The name of a single theme token. */
831
297
  export declare type ThemeKey = keyof ThemeValues;
832
298
 
833
- /**
834
- * A partial set of token values layered over a base theme — the shape of the `themeOverrides`
835
- * prop. Measured font tokens take a {@link FontTokenOverride}; every other token takes its CSS
836
- * string value.
837
- */
838
- export declare type ThemeOverrides = Partial<Omit<ThemeValues, MeasuredFontTokenKey>> & {
839
- [Key in MeasuredFontTokenKey]?: FontTokenOverride;
840
- };
299
+ export declare type ThemeOverrides = Partial<ThemeValues>;
841
300
 
842
- /** Resolves the base theme plus per-graph `themeOverrides` into token values and publishes them to the subtree. */
843
301
  export declare const ThemeProvider: ({ theme, themeOverrides, appearance, children }: ThemeProviderProps) => JSX.Element;
844
302
 
845
303
  declare interface ThemeProviderProps {
@@ -849,34 +307,13 @@ declare interface ThemeProviderProps {
849
307
  children: ReactNode;
850
308
  }
851
309
 
852
- /** Every theme token mapped to its resolved CSS string value. */
853
310
  export declare type ThemeValues = Record<keyof typeof vars, string>;
854
311
 
855
- /**
856
- * Where a pinned callout asks the tooltip to anchor: the marker point in client coordinates, plus
857
- * the direction the mini sits, so the tooltip expands over the mini the way it was placed.
858
- */
859
- declare interface TooltipAnchor {
860
- x: number;
861
- y: number;
862
- placement: CalloutPlacement;
863
- }
864
-
865
- /** Props for the Tooltip slot, overridable via `slots.Tooltip` on `GraphRenderer`. Positioning stays built in. */
866
312
  export declare interface TooltipSlotProps {
867
313
  /** Render-ready tooltip body, already formatted by the viz-engine runtime. */
868
314
  content: TooltipContent;
869
- }
870
-
871
- /**
872
- * A nested SVG that establishes a `[0, 1]` unit coordinate space (top-left origin) stretched to fill
873
- * the geom panel. A layout geom paints its geometry in raw unit coords so paint and hit-test never re-project against each
874
- * other. `preserveAspectRatio="none"` maps the unit square onto the (usually non-square) panel exactly.
875
- */
876
- export declare const UnitSpaceSvg: ({ children, ...rest }: UnitSpaceSvgProps) => ReactNode;
877
-
878
- declare interface UnitSpaceSvgProps extends Omit<SVGProps<SVGSVGElement>, 'viewBox' | 'preserveAspectRatio'> {
879
- children: ReactNode;
315
+ /** Whether the tooltip is currently shown. The wrapper only mounts the slot while open. */
316
+ isVisible: boolean;
880
317
  }
881
318
 
882
319
  /**
@@ -892,29 +329,6 @@ declare interface UnitSpaceSvgProps extends Omit<SVGProps<SVGSVGElement>, 'viewB
892
329
  */
893
330
  export declare const useCompiledSelector: <Selected>(selector: (compiled: CompiledSpec) => Selected) => Selected;
894
331
 
895
- /**
896
- * Registers a layout geom's render-side hit tester so a `'render-hit-test'` layer inherits central hover
897
- * and the built-in tooltip — the path `bar` takes — with no pointer overlay of its own. The pull path.
898
- *
899
- * The cursor passed to the tester is panel-local `[0, 1]`, top-left origin — the frame the geom paints in.
900
- */
901
- export declare function useGeomHitTest(layerId: string, tester: RenderHitTester): void;
902
-
903
- /**
904
- * The push half of the render-hit-test keystone, for a geom whose geometry keeps changing after it is
905
- * drawn (a live simulation) and so owns its own pointer surface above the central capture layer. The
906
- * geom's pointer handlers call the returned setter with the hovered observation's `identityKey`; the
907
- * engine resolves it through the same `byKey` lookup the pull path uses, so the geom inherits the tooltip
908
- * and `renderHover`. Since the overlay intercepts the pointer events, the tooltip is anchored at the
909
- * supplied cursor. Pass `null` to clear. Geoms with geometry fixed once drawn use `useGeomHitTest`.
910
- *
911
- * Escape hatch: an interactive geom should instead declare an overlay-hosted `render`
912
- * (`{ fn, options: { overlay: true } }`), which the renderer portals into a screen-aligned overlay and
913
- * hands a ready `pushHover` via `input.overlay`. Reach for this hook only when that form is not enough.
914
- */
915
- export declare function useGeomHover(layerId: string): GeomHoverPush;
916
-
917
- /** Returns the dispatcher for applying {@link Command}s to the provider's live spec. */
918
332
  export declare const useGraphCommandDispatcher: () => ((command: Command) => void);
919
333
 
920
334
  /**
@@ -922,26 +336,8 @@ export declare const useGraphCommandDispatcher: () => ((command: Command) => voi
922
336
  */
923
337
  export declare function useHoverState<T>(selector: (state: HoverStoreState) => T): T;
924
338
 
925
- /**
926
- * Tracks the on-screen rect of a panel-filling element so a fixed-position overlay (the push path's drag
927
- * surface) can sit exactly over the chart in pixel space. Returns a callback `ref` to attach to a
928
- * panel-sized element and the measured `rect` (`null` until first measured).
929
- *
930
- * The element's own size changes go through the shared {@link useResizeObserver} lifecycle; this hook adds
931
- * the screen-position concerns the observer can't see — viewport scroll/resize move the element's screen
932
- * position without resizing it. Every trigger is coalesced into at most one `getBoundingClientRect` per
933
- * animation frame, so a burst of scroll events forces a single reflow rather than one per event. Only a
934
- * changed rect updates state, so a settled overlay does not re-render every frame.
935
- */
936
- export declare function usePanelScreenRect<T extends Element = SVGRectElement>(): {
937
- ref: (node: T | null) => void;
938
- rect: PanelScreenRect | null;
939
- };
940
-
941
- /** Returns the {@link TextMeasurer} from context; throws outside a `<TextMeasurerProvider>`. */
942
339
  export declare const useTextMeasurer: () => TextMeasurer;
943
340
 
944
- /** CSS custom-property references for every theme token; read at paint sites as `vars.tooltipBackground`, etc. */
945
341
  export declare const vars: {
946
342
  white: `var(--${string})`;
947
343
  black: `var(--${string})`;
@@ -1011,19 +407,11 @@ export declare const vars: {
1011
407
  annotationMenuTriggerIconColor: `var(--${string})`;
1012
408
  heatmapEmptyTileBackground: `var(--${string})`;
1013
409
  dataLabelOutsideBackground: `var(--${string})`;
1014
- dataLabelTextColor: `var(--${string})`;
1015
- dataLabelInsideTextColor: `var(--${string})`;
1016
- stackTotalTextColor: `var(--${string})`;
1017
- stackTotalBackground: `var(--${string})`;
1018
- stackTotalStroke: `var(--${string})`;
1019
410
  gridLineWidth: `var(--${string})`;
1020
411
  gridLineDash: `var(--${string})`;
1021
- gridLineDotted: `var(--${string})`;
1022
412
  tooltipBorderRadius: `var(--${string})`;
1023
- tooltipBorderWidth: `var(--${string})`;
1024
413
  tooltipPaddingBlock: `var(--${string})`;
1025
414
  tooltipPaddingInline: `var(--${string})`;
1026
- tooltipRowGap: `var(--${string})`;
1027
415
  tooltipShadow: `var(--${string})`;
1028
416
  tickLabelOffset: `var(--${string})`;
1029
417
  legendItemGap: `var(--${string})`;
@@ -1113,7 +501,6 @@ export declare const vars: {
1113
501
  fontAxisLabel: `var(--${string})`;
1114
502
  fontDataLabel: `var(--${string})`;
1115
503
  fontStackTotal: `var(--${string})`;
1116
- fontCategoryLabel: `var(--${string})`;
1117
504
  fontLegendLabel: `var(--${string})`;
1118
505
  fontSeriesLabel: `var(--${string})`;
1119
506
  fontTooltipLabel: `var(--${string})`;
@@ -1161,6 +548,4 @@ export declare const vars: {
1161
548
  fontHighlightModeSubtitle: `var(--${string})`;
1162
549
  };
1163
550
 
1164
- export { VizDiagnostic }
1165
-
1166
551
  export { }