semiotic 3.5.3 → 3.6.0

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.
Files changed (134) hide show
  1. package/CLAUDE.md +62 -4
  2. package/README.md +19 -12
  3. package/ai/componentMetadata.cjs +9 -2
  4. package/ai/dist/mcp-server.js +253 -3
  5. package/ai/examples.md +27 -0
  6. package/ai/schema.json +319 -49
  7. package/ai/system-prompt.md +1 -1
  8. package/dist/components/ai/audienceProfile.d.ts +90 -0
  9. package/dist/components/ai/audiences.d.ts +31 -0
  10. package/dist/components/ai/chartCapabilities.d.ts +55 -0
  11. package/dist/components/ai/chartCapabilityTypes.d.ts +196 -0
  12. package/dist/components/ai/diffProfile.d.ts +51 -0
  13. package/dist/components/ai/inferIntent.d.ts +24 -0
  14. package/dist/components/ai/intents.d.ts +34 -0
  15. package/dist/components/ai/profileData.d.ts +16 -0
  16. package/dist/components/ai/qualityFixtures.d.ts +2 -0
  17. package/dist/components/ai/qualityScorecard.d.ts +82 -0
  18. package/dist/components/ai/repairChartConfig.d.ts +73 -0
  19. package/dist/components/ai/streamingTypes.d.ts +64 -0
  20. package/dist/components/ai/suggestCharts.d.ts +76 -0
  21. package/dist/components/ai/suggestDashboard.d.ts +92 -0
  22. package/dist/components/ai/suggestStreamCharts.d.ts +34 -0
  23. package/dist/components/ai/suggestStretchCharts.d.ts +60 -0
  24. package/dist/components/ai/useChartSuggestions.d.ts +22 -0
  25. package/dist/components/charts/geo/ChoroplethMap.capability.d.ts +2 -0
  26. package/dist/components/charts/geo/DistanceCartogram.capability.d.ts +2 -0
  27. package/dist/components/charts/geo/FlowMap.capability.d.ts +2 -0
  28. package/dist/components/charts/geo/ProportionalSymbolMap.capability.d.ts +2 -0
  29. package/dist/components/charts/index.d.ts +4 -4
  30. package/dist/components/charts/network/ChordDiagram.capability.d.ts +2 -0
  31. package/dist/components/charts/network/CirclePack.capability.d.ts +2 -0
  32. package/dist/components/charts/network/ForceDirectedGraph.capability.d.ts +2 -0
  33. package/dist/components/charts/network/OrbitDiagram.capability.d.ts +2 -0
  34. package/dist/components/charts/network/ProcessSankey.capability.d.ts +2 -0
  35. package/dist/components/charts/network/SankeyDiagram.capability.d.ts +2 -0
  36. package/dist/components/charts/network/TreeDiagram.capability.d.ts +2 -0
  37. package/dist/components/charts/network/Treemap.capability.d.ts +2 -0
  38. package/dist/components/charts/network/Treemap.d.ts +8 -0
  39. package/dist/components/charts/ordinal/BarChart.capability.d.ts +2 -0
  40. package/dist/components/charts/ordinal/BoxPlot.capability.d.ts +2 -0
  41. package/dist/components/charts/ordinal/DonutChart.capability.d.ts +2 -0
  42. package/dist/components/charts/ordinal/DotPlot.capability.d.ts +2 -0
  43. package/dist/components/charts/ordinal/FunnelChart.capability.d.ts +2 -0
  44. package/dist/components/charts/ordinal/GaugeChart.capability.d.ts +2 -0
  45. package/dist/components/charts/ordinal/GaugeChart.d.ts +10 -0
  46. package/dist/components/charts/ordinal/GroupedBarChart.capability.d.ts +2 -0
  47. package/dist/components/charts/ordinal/Histogram.capability.d.ts +2 -0
  48. package/dist/components/charts/ordinal/Histogram.d.ts +4 -2
  49. package/dist/components/charts/ordinal/LikertChart.capability.d.ts +2 -0
  50. package/dist/components/charts/ordinal/LikertChart.d.ts +1 -1
  51. package/dist/components/charts/ordinal/LikertChart.defaults.d.ts +1 -0
  52. package/dist/components/charts/ordinal/PieChart.capability.d.ts +2 -0
  53. package/dist/components/charts/ordinal/RidgelinePlot.capability.d.ts +2 -0
  54. package/dist/components/charts/ordinal/StackedBarChart.capability.d.ts +2 -0
  55. package/dist/components/charts/ordinal/SwarmPlot.capability.d.ts +2 -0
  56. package/dist/components/charts/ordinal/SwimlaneChart.capability.d.ts +2 -0
  57. package/dist/components/charts/ordinal/ViolinPlot.capability.d.ts +2 -0
  58. package/dist/components/charts/realtime/RealtimeHeatmap.capability.d.ts +2 -0
  59. package/dist/components/charts/realtime/RealtimeHistogram.capability.d.ts +2 -0
  60. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +22 -0
  61. package/dist/components/charts/realtime/RealtimeLineChart.capability.d.ts +2 -0
  62. package/dist/components/charts/realtime/RealtimeSwarmChart.capability.d.ts +2 -0
  63. package/dist/components/charts/realtime/RealtimeWaterfallChart.capability.d.ts +2 -0
  64. package/dist/components/charts/realtime/TemporalHistogram.capability.d.ts +7 -0
  65. package/dist/components/charts/shared/chartSpecs.d.ts +0 -34
  66. package/dist/components/charts/shared/gaugeGradient.d.ts +62 -0
  67. package/dist/components/charts/shared/hooks.d.ts +2 -2
  68. package/dist/components/charts/shared/streamPropsHelpers.d.ts +2 -2
  69. package/dist/components/charts/shared/types.d.ts +11 -2
  70. package/dist/components/charts/shared/useChartSetup.d.ts +2 -2
  71. package/dist/components/charts/shared/useCustomChartSetup.d.ts +1 -1
  72. package/dist/components/charts/xy/AreaChart.capability.d.ts +10 -0
  73. package/dist/components/charts/xy/AreaChart.d.ts +15 -0
  74. package/dist/components/charts/xy/BubbleChart.capability.d.ts +2 -0
  75. package/dist/components/charts/xy/CandlestickChart.capability.d.ts +2 -0
  76. package/dist/components/charts/xy/ConnectedScatterplot.capability.d.ts +2 -0
  77. package/dist/components/charts/xy/DifferenceChart.capability.d.ts +8 -0
  78. package/dist/components/charts/xy/Heatmap.capability.d.ts +9 -0
  79. package/dist/components/charts/xy/LineChart.capability.d.ts +9 -0
  80. package/dist/components/charts/xy/MinimapChart.capability.d.ts +2 -0
  81. package/dist/components/charts/xy/MultiAxisLineChart.capability.d.ts +2 -0
  82. package/dist/components/charts/xy/QuadrantChart.capability.d.ts +2 -0
  83. package/dist/components/charts/xy/QuadrantChart.d.ts +5 -2
  84. package/dist/components/charts/xy/QuadrantChart.defaults.d.ts +2 -0
  85. package/dist/components/charts/xy/Scatterplot.capability.d.ts +2 -0
  86. package/dist/components/charts/xy/StackedAreaChart.capability.d.ts +2 -0
  87. package/dist/components/data/DataSummarizer.d.ts +45 -0
  88. package/dist/components/semiotic-ai.d.ts +36 -1
  89. package/dist/components/semiotic-realtime.d.ts +3 -3
  90. package/dist/components/semiotic-server.d.ts +1 -0
  91. package/dist/components/semiotic-xy.d.ts +2 -2
  92. package/dist/components/semiotic.d.ts +5 -4
  93. package/dist/components/server/renderToStaticSVG.d.ts +2 -0
  94. package/dist/components/server/staticLegend.d.ts +35 -0
  95. package/dist/components/store/ThemeStore.d.ts +2 -0
  96. package/dist/components/store/useChartFocus.d.ts +43 -0
  97. package/dist/components/store/useChartInterrogation.d.ts +141 -0
  98. package/dist/components/stream/NetworkSVGOverlay.d.ts +2 -1
  99. package/dist/components/stream/OrdinalSVGOverlay.d.ts +2 -1
  100. package/dist/components/stream/SVGOverlay.d.ts +2 -1
  101. package/dist/components/stream/SceneToSVG.d.ts +1 -1
  102. package/dist/components/stream/geoTypes.d.ts +2 -1
  103. package/dist/components/stream/hoverUtils.d.ts +1 -0
  104. package/dist/components/stream/legendRenderer.d.ts +2 -1
  105. package/dist/components/stream/networkTypes.d.ts +2 -1
  106. package/dist/components/stream/ordinalTypes.d.ts +16 -2
  107. package/dist/components/stream/renderers/wedgePathBuilder.d.ts +31 -0
  108. package/dist/components/stream/types.d.ts +2 -1
  109. package/dist/components/types/legendTypes.d.ts +15 -0
  110. package/dist/components/types/marginType.d.ts +17 -3
  111. package/dist/geo.min.js +1 -1
  112. package/dist/geo.module.min.js +1 -1
  113. package/dist/network.min.js +1 -1
  114. package/dist/network.module.min.js +1 -1
  115. package/dist/ordinal.min.js +1 -1
  116. package/dist/ordinal.module.min.js +1 -1
  117. package/dist/realtime.min.js +1 -1
  118. package/dist/realtime.module.min.js +1 -1
  119. package/dist/semiotic-ai.d.ts +36 -1
  120. package/dist/semiotic-ai.min.js +1 -1
  121. package/dist/semiotic-ai.module.min.js +1 -1
  122. package/dist/semiotic-realtime.d.ts +3 -3
  123. package/dist/semiotic-server.d.ts +1 -0
  124. package/dist/semiotic-utils.min.js +1 -1
  125. package/dist/semiotic-utils.module.min.js +1 -1
  126. package/dist/semiotic-xy.d.ts +2 -2
  127. package/dist/semiotic.d.ts +5 -4
  128. package/dist/semiotic.min.js +1 -1
  129. package/dist/semiotic.module.min.js +1 -1
  130. package/dist/server.min.js +1 -1
  131. package/dist/server.module.min.js +1 -1
  132. package/dist/xy.min.js +1 -1
  133. package/dist/xy.module.min.js +1 -1
  134. package/package.json +25 -24
@@ -0,0 +1,2 @@
1
+ import type { StreamChartCapability } from "../../ai/streamingTypes";
2
+ export declare const RealtimeHeatmapCapability: StreamChartCapability;
@@ -0,0 +1,2 @@
1
+ import type { StreamChartCapability } from "../../ai/streamingTypes";
2
+ export declare const RealtimeHistogramCapability: StreamChartCapability;
@@ -6,6 +6,7 @@ import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
6
6
  import type { ChartMode, ChartAccessor, SelectionConfig } from "../shared/types";
7
7
  import type { OnObservationCallback } from "../../store/ObservationStore";
8
8
  import type { Datum } from "../shared/datumTypes";
9
+ export type RealtimeHistogramDirection = "up" | "down";
9
10
  export interface RealtimeHistogramProps<TDatum extends Datum = Datum> {
10
11
  /** Display mode: "primary" (full chrome), "context" (compact), "sparkline" (inline) */
11
12
  mode?: ChartMode;
@@ -44,6 +45,14 @@ export interface RealtimeHistogramProps<TDatum extends Datum = Datum> {
44
45
  timeExtent?: [number, number];
45
46
  /** Fixed value domain */
46
47
  valueExtent?: [number, number];
48
+ /**
49
+ * Direction bars grow from the baseline.
50
+ * "up" uses the normal y-domain. "down" flips the resolved value
51
+ * domain so bars grow downward from the top, useful for mirrored
52
+ * histogram layouts. Explicit valueExtent is reversed.
53
+ * @default "up"
54
+ */
55
+ direction?: RealtimeHistogramDirection;
47
56
  /** Extent padding factor */
48
57
  extentPadding?: number;
49
58
  /**
@@ -175,6 +184,19 @@ export declare const RealtimeHistogram: {
175
184
  <TDatum extends Datum = Datum>(props: RealtimeHistogramProps<TDatum> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
176
185
  displayName?: string;
177
186
  };
187
+ export interface TemporalHistogramProps<TDatum extends Datum = Datum> extends Omit<RealtimeHistogramProps<TDatum>, "data" | "windowSize" | "windowMode"> {
188
+ /** Static data array for a bounded temporal histogram. */
189
+ data: TDatum[];
190
+ }
191
+ /**
192
+ * Static-data sibling for temporal histograms. Use this when the data is a
193
+ * bounded array rather than a ref-driven stream; the realtime push API is not
194
+ * part of this public surface.
195
+ */
196
+ export declare function TemporalHistogram<TDatum extends Datum = Datum>(props: TemporalHistogramProps<TDatum>): import("react/jsx-runtime").JSX.Element;
197
+ export declare namespace TemporalHistogram {
198
+ var displayName: string;
199
+ }
178
200
  /** @deprecated Use `RealtimeHistogram` (the canonical public name) instead. The
179
201
  * `RealtimeTemporalHistogram` alias is preserved for back-compat with code
180
202
  * written before the rename and will be removed in a future major version. */
@@ -0,0 +1,2 @@
1
+ import type { StreamChartCapability } from "../../ai/streamingTypes";
2
+ export declare const RealtimeLineChartCapability: StreamChartCapability;
@@ -0,0 +1,2 @@
1
+ import type { StreamChartCapability } from "../../ai/streamingTypes";
2
+ export declare const RealtimeSwarmChartCapability: StreamChartCapability;
@@ -0,0 +1,2 @@
1
+ import type { StreamChartCapability } from "../../ai/streamingTypes";
2
+ export declare const RealtimeWaterfallChartCapability: StreamChartCapability;
@@ -0,0 +1,7 @@
1
+ import type { StreamChartCapability } from "../../ai/streamingTypes";
2
+ /**
3
+ * TemporalHistogram is the bounded sibling of RealtimeHistogram — same chart
4
+ * but for static data with a fixed window. For stream selection it competes
5
+ * with RealtimeHistogram; the choice depends on retention.
6
+ */
7
+ export declare const TemporalHistogramCapability: StreamChartCapability;
@@ -1,37 +1,3 @@
1
- /**
2
- * Single source of truth for per-chart prop specifications.
3
- *
4
- * Three downstream consumers used to maintain their own per-chart entries:
5
- * - `ai/schema.json` (LLM tool definitions)
6
- * - `src/components/charts/shared/validationMap.ts` (runtime prop validation)
7
- * - `ai/componentMetadata.cjs` (category buckets)
8
- *
9
- * Today, `ai/schema.json` is generated from this registry — run
10
- * `npm run docs:chart-specs:schema` to refresh it after editing a spec.
11
- * `validationMap.ts` and `ai/componentMetadata.cjs` are still hand-edited
12
- * but are gated for parity by the registry: `check:chart-specs` (run via
13
- * `npm run check:chart-specs`) regenerates each chart's schema/
14
- * validation/metadata entries with the pure functions in
15
- * `scripts/lib/chart-specs-generators.mjs` and fails the build on any
16
- * drift, including unexpected adds or removes that bypass the registry.
17
- *
18
- * Design notes:
19
- * - Shared prop bags (common, xyAxis, ordinalAxis) live in `PROP_BAGS` and
20
- * are referenced by name in each spec so common surface stays in one place.
21
- * - The runtime PropType set ("string" | "number" | "boolean" | "array" |
22
- * "object" | "function") is broader than JSON Schema's, but the schema
23
- * generator emits whatever types this registry declares — including
24
- * "function" inside type unions (canonical entries like
25
- * `RidgelinePlot.tooltip: ["function", "object"]` and
26
- * `SwimlaneChart.onBrush: "function"` already use this convention; LLMs
27
- * read the union and pick a non-function alternative when they can't
28
- * supply a function value). For props that are purely callbacks or
29
- * escape hatches an LLM cannot meaningfully populate, tag the spec
30
- * with `omitFromSchema: true` to keep it in validationMap but out of
31
- * schema.json. `description` and `default` annotations surface in
32
- * schema.json (and MCP responses) but are dropped from validationMap
33
- * (which only reads `type` and `enum`).
34
- */
35
1
  export type PropType = "string" | "number" | "boolean" | "array" | "object" | "function";
36
2
  export type DataShape = "array" | "object" | "network" | "realtime" | "none";
37
3
  export type ChartCategory = "xy" | "ordinal" | "network" | "geo" | "realtime";
@@ -0,0 +1,62 @@
1
+ import type { Datum } from "./datumTypes";
2
+ export interface GaugeThresholdLike {
3
+ value: number;
4
+ color: string;
5
+ label?: string;
6
+ }
7
+ export interface GaugeGradientStop {
8
+ offset: number;
9
+ color: string;
10
+ }
11
+ export interface GaugeGradientFill {
12
+ colorStops: GaugeGradientStop[];
13
+ }
14
+ export interface GaugeArcDatum extends Datum {
15
+ category: string;
16
+ value: number;
17
+ _zone?: string;
18
+ _isFill: boolean;
19
+ _pctStart?: number;
20
+ _pct?: number;
21
+ _roundedEnds?: {
22
+ start?: boolean;
23
+ end?: boolean;
24
+ };
25
+ _nonInteractive?: boolean;
26
+ /** Pre-computed gradient colors for the rendered band. Each entry is
27
+ * the color for one equal-angle slice across the band's full angular
28
+ * span. The wedge renderer reads this and paints the slices itself
29
+ * inside a clip-mask shaped like the wedge's rounded outline. */
30
+ _gradientBand?: {
31
+ colors: string[];
32
+ };
33
+ }
34
+ export interface GaugeArcModel {
35
+ gaugeData: GaugeArcDatum[];
36
+ pieceStyle: (d: Datum, category?: string) => {
37
+ fill: string;
38
+ opacity?: number;
39
+ };
40
+ gaugeAnnotations: Datum[];
41
+ }
42
+ interface BuildGaugeArcModelOptions {
43
+ min: number;
44
+ max: number;
45
+ value: number;
46
+ thresholds?: GaugeThresholdLike[];
47
+ fillColor?: string;
48
+ backgroundColor: string;
49
+ fillZones: boolean;
50
+ showScaleLabels: boolean;
51
+ gradientFill?: GaugeGradientFill;
52
+ gradientSteps?: number;
53
+ }
54
+ /**
55
+ * Build the synthetic wedge data model used by GaugeChart.
56
+ *
57
+ * When `gradientFill` is provided, the visible fill is split into many thin
58
+ * slices and sampled against the supplied color stops so color changes along
59
+ * the arc length rather than by threshold zone.
60
+ */
61
+ export declare function buildGaugeArcModel(options: BuildGaugeArcModelOptions): GaugeArcModel;
62
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { createLegend } from "./legendUtils";
2
2
  import type { SelectionHookResult } from "./selectionUtils";
3
3
  import type { OnObservationCallback } from "../../store/ObservationStore";
4
- import type { Accessor, SelectionConfig, LinkedHoverProp, ChartMode } from "./types";
4
+ import type { Accessor, SelectionConfig, LinkedHoverProp, ChartMode, HoverHighlightMode } from "./types";
5
5
  import type { MarginType, PartialMargin } from "../../types/marginType";
6
6
  import type { TransitionConfig } from "../../stream/types";
7
7
  import type { Datum } from "./datumTypes";
@@ -76,7 +76,7 @@ export declare function useChartSelection({ selection, linkedHover, fallbackFiel
76
76
  x: number;
77
77
  y: number;
78
78
  }) => void;
79
- hoverHighlight?: boolean;
79
+ hoverHighlight?: HoverHighlightMode;
80
80
  colorByField?: string;
81
81
  }): {
82
82
  activeSelectionHook: SelectionHookResult | null;
@@ -2,7 +2,7 @@ import type { ReactNode } from "react";
2
2
  import type { Datum } from "./datumTypes";
3
3
  import { type TooltipProp } from "../../Tooltip/Tooltip";
4
4
  import type { HoverData } from "../../realtime/types";
5
- import type { LinkedHoverProp, SelectionConfig } from "./types";
5
+ import type { HoverHighlightMode, LinkedHoverProp, SelectionConfig } from "./types";
6
6
  import type { OnObservationCallback } from "../../store/ObservationStore";
7
7
  import type { AnimateProp } from "../../stream/pipelineTransitionUtils";
8
8
  /**
@@ -74,7 +74,7 @@ export declare function buildCustomBehaviorProps(input: {
74
74
  x: number;
75
75
  y: number;
76
76
  }) => void) | undefined;
77
- hoverHighlight?: boolean;
77
+ hoverHighlight?: HoverHighlightMode;
78
78
  customHoverBehavior: (d: Datum | null) => void;
79
79
  customClickBehavior: (d: Datum | null) => void;
80
80
  /**
@@ -43,6 +43,13 @@ export type LinkedBrushProp = string | {
43
43
  * User-provided props always override mode defaults.
44
44
  */
45
45
  export type ChartMode = "primary" | "context" | "sparkline";
46
+ /**
47
+ * Hover highlighting mode.
48
+ * `true` and `"series"` both dim non-hovered series/categories; the string
49
+ * form is accepted for compatibility with wrapper libraries that expose a
50
+ * more explicit per-series mode.
51
+ */
52
+ export type HoverHighlightMode = boolean | "series";
46
53
  /**
47
54
  * Base props shared across all chart components
48
55
  */
@@ -55,7 +62,9 @@ export interface BaseChartProps {
55
62
  height?: number;
56
63
  /** Margin around the chart. Accepts a number (same on all sides) or an object
57
64
  * with any subset of `top`/`bottom`/`left`/`right`. Missing sides fall back
58
- * to the chart-mode defaults. */
65
+ * to the chart-mode defaults. Use `"auto"` or `null` for a side to explicitly
66
+ * allow chart auto-reservation, e.g. `margin={{ right: "auto" }}` with a
67
+ * right-side legend. */
59
68
  margin?: PartialMargin;
60
69
  /** Auto-match width to parent container. Default: false */
61
70
  responsiveWidth?: boolean;
@@ -110,7 +119,7 @@ export interface BaseChartProps {
110
119
  y: number;
111
120
  }) => void;
112
121
  /** Dim non-hovered series when hovering a data mark. Requires `colorBy`. */
113
- hoverHighlight?: boolean;
122
+ hoverHighlight?: HoverHighlightMode;
114
123
  /** Max pixel distance for hover/click hit testing. Default 30. Increase for sparse charts, decrease for dense ones. */
115
124
  hoverRadius?: number;
116
125
  /** ID accessor for remove()/update() on XY charts. Extracts a unique identifier from each datum. */
@@ -1,7 +1,7 @@
1
1
  import type { Datum } from "./datumTypes";
2
2
  import { useChartLegendAndMargin, useLegendInteraction, DEFAULT_COLOR } from "./hooks";
3
3
  import type { LegendInteractionMode, LegendPosition } from "./hooks";
4
- import type { Accessor, SelectionConfig, LinkedHoverProp } from "./types";
4
+ import type { Accessor, SelectionConfig, LinkedHoverProp, HoverHighlightMode } from "./types";
5
5
  import type { OnObservationCallback } from "../../store/ObservationStore";
6
6
  import type { PartialMargin } from "../../types/marginType";
7
7
  import type { SelectionHookResult } from "./selectionUtils";
@@ -57,7 +57,7 @@ export interface ChartSetupInput {
57
57
  y: number;
58
58
  }) => void;
59
59
  /** Dim non-hovered series on data mark hover */
60
- hoverHighlight?: boolean;
60
+ hoverHighlight?: HoverHighlightMode;
61
61
  /** Loading state */
62
62
  loading: boolean | undefined;
63
63
  /** Custom content rendered in place of the default skeleton while `loading` is true. */
@@ -3,7 +3,7 @@ import { useChartMode } from "./hooks";
3
3
  import { type ChartSetupResult } from "./useChartSetup";
4
4
  import type { ChartMode, SelectionConfig, LinkedHoverProp } from "./types";
5
5
  import type { OnObservationCallback } from "../../store/ObservationStore";
6
- import type { PartialMargin, MarginType } from "../../types/marginType";
6
+ import { type PartialMargin, type MarginType } from "../../types/marginType";
7
7
  import type { Datum } from "./datumTypes";
8
8
  import type { RealtimeFrameHandle } from "../../realtime/types";
9
9
  /**
@@ -0,0 +1,10 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ /**
3
+ * AreaChart is treated as a strictly single-series chart. Multi-series areas
4
+ * are an occlusion nightmare — when the data has 2+ series we subselect the
5
+ * leading series (largest cumulative y) and surface a caveat so the reader
6
+ * knows they're looking at one slice, not the whole dataset. For full multi-
7
+ * series comparison the engine routes callers to LineChart; for two-series
8
+ * comparison, to DifferenceChart.
9
+ */
10
+ export declare const AreaChartCapability: ChartCapability;
@@ -6,6 +6,13 @@ import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
6
6
  import type { BaseChartProps, AxisConfig, ChartAccessor } from "../shared/types";
7
7
  import { type TooltipProp } from "../../Tooltip/Tooltip";
8
8
  import type { ForecastConfig, AnomalyConfig } from "../shared/statisticalOverlays";
9
+ export interface SemanticGradientStop {
10
+ /** Percent from baseline to line/top. 0 = baseline, 100 = line/top. */
11
+ at: number;
12
+ color: string;
13
+ /** Optional opacity applied to this stop. */
14
+ opacity?: number;
15
+ }
9
16
  /**
10
17
  * AreaChart component props
11
18
  */
@@ -90,6 +97,14 @@ export interface AreaChartProps<TDatum extends Datum = Datum> extends BaseChartP
90
97
  color: string;
91
98
  }>;
92
99
  };
100
+ /**
101
+ * Semantic area gradient stops expressed in user-facing percentages:
102
+ * `at: 0` is the baseline and `at: 100` is the line/top of the area.
103
+ * This is converted to `gradientFill.colorStops`, whose raw offsets use
104
+ * the renderer coordinate convention (`0` = top, `1` = baseline).
105
+ * When set, this takes precedence over `gradientFill`.
106
+ */
107
+ semanticGradient?: SemanticGradientStop[];
93
108
  /**
94
109
  * Area opacity (flat fill, ignored when gradientFill is set)
95
110
  * @default 0.7
@@ -0,0 +1,2 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ export declare const BubbleChartCapability: ChartCapability;
@@ -0,0 +1,2 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ export declare const CandlestickChartCapability: ChartCapability;
@@ -0,0 +1,2 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ export declare const ConnectedScatterplotCapability: ChartCapability;
@@ -0,0 +1,8 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ /**
3
+ * DifferenceChart's native shape is two series. When the input has 2+ series
4
+ * we subselect the top two by total y and pivot them into the wide form the
5
+ * chart expects — same "narrow the dataset to make the chart honest" pattern
6
+ * AreaChart uses for its single-series fallback.
7
+ */
8
+ export declare const DifferenceChartCapability: ChartCapability;
@@ -0,0 +1,9 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ /**
3
+ * Heatmap is a matrix: categorical × categorical (or temporal × categorical),
4
+ * with a numeric encoded as color. Without two genuine discrete dimensions
5
+ * for the axes, a heatmap of raw rows is sparse and unreadable. Tuned in
6
+ * Phase 2.1 after the scorecard surfaced Heatmap winning unsuitable
7
+ * compare-categories rankings.
8
+ */
9
+ export declare const HeatmapCapability: ChartCapability;
@@ -0,0 +1,9 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ /**
3
+ * LineChart capability — declares what data shapes LineChart serves well,
4
+ * what intents it answers, and what variants change those answers.
5
+ *
6
+ * Read alongside `LineChart.tsx`; this file is what makes the chart
7
+ * "self-aware" for suggestion and interrogation flows.
8
+ */
9
+ export declare const LineChartCapability: ChartCapability;
@@ -0,0 +1,2 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ export declare const MinimapChartCapability: ChartCapability;
@@ -0,0 +1,2 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ export declare const MultiAxisLineChartCapability: ChartCapability;
@@ -0,0 +1,2 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ export declare const QuadrantChartCapability: ChartCapability;
@@ -30,6 +30,9 @@ export interface QuadrantsConfig {
30
30
  bottomRight: QuadrantConfig;
31
31
  bottomLeft: QuadrantConfig;
32
32
  }
33
+ export type QuadrantsConfigOverride = {
34
+ [TQuadrant in keyof QuadrantsConfig]?: Partial<QuadrantsConfig[TQuadrant]>;
35
+ };
33
36
  /**
34
37
  * Centerline style configuration
35
38
  */
@@ -55,8 +58,8 @@ export interface QuadrantChartProps<TDatum extends Datum = Datum> extends BaseCh
55
58
  xCenter?: number;
56
59
  /** Y-coordinate of the horizontal center line. Defaults to midpoint of y domain. */
57
60
  yCenter?: number;
58
- /** Quadrant configuration: labels and colors for each of the four quadrants */
59
- quadrants: QuadrantsConfig;
61
+ /** Optional quadrant overrides. Omitted quadrants and quadrant fields fall back to built-in defaults. */
62
+ quadrants?: QuadrantsConfigOverride;
60
63
  /** Style for the center lines */
61
64
  centerlineStyle?: CenterlineStyle;
62
65
  /** Show quadrant labels @default true */
@@ -0,0 +1,2 @@
1
+ import type { QuadrantsConfig } from "./QuadrantChart";
2
+ export declare const DEFAULT_QUADRANTS: QuadrantsConfig;
@@ -0,0 +1,2 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ export declare const ScatterplotCapability: ChartCapability;
@@ -0,0 +1,2 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ export declare const StackedAreaChartCapability: ChartCapability;
@@ -0,0 +1,45 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ export type FieldType = "numeric" | "categorical" | "date" | "unknown";
3
+ export interface NumericFieldSummary {
4
+ type: "numeric";
5
+ min: number;
6
+ max: number;
7
+ mean: number;
8
+ median: number;
9
+ }
10
+ export interface DateFieldSummary {
11
+ type: "date";
12
+ min: string;
13
+ max: string;
14
+ }
15
+ export interface CategoricalFieldSummary {
16
+ type: "categorical";
17
+ distinctCount: number;
18
+ topValues: ReadonlyArray<{
19
+ value: string;
20
+ count: number;
21
+ }>;
22
+ distinctValues?: ReadonlyArray<string>;
23
+ }
24
+ export interface UnknownFieldSummary {
25
+ type: "unknown";
26
+ }
27
+ export type FieldSummary = NumericFieldSummary | DateFieldSummary | CategoricalFieldSummary | UnknownFieldSummary;
28
+ export interface DataSummary {
29
+ rowCount: number;
30
+ fields: Record<string, FieldSummary>;
31
+ sample: ReadonlyArray<Datum>;
32
+ }
33
+ export interface SummarizeOptions {
34
+ maxDistinct?: number;
35
+ sampleSize?: number;
36
+ /** Scan up to this many rows when discovering field keys (handles ragged rows). */
37
+ keyScanRows?: number;
38
+ }
39
+ /**
40
+ * Summarize a dataset for an LLM. Returns row count, per-field statistics, and a small sample.
41
+ *
42
+ * Designed so a model can answer questions about ranges, peaks, distributions, and categories
43
+ * without seeing the full dataset.
44
+ */
45
+ export declare function summarizeData(data: ReadonlyArray<Datum> | null | undefined, options?: SummarizeOptions): DataSummary;
@@ -37,7 +37,7 @@ export { Treemap } from "./charts/network/Treemap";
37
37
  export { CirclePack } from "./charts/network/CirclePack";
38
38
  export { OrbitDiagram } from "./charts/network/OrbitDiagram";
39
39
  export { RealtimeLineChart } from "./charts/realtime/RealtimeLineChart";
40
- export { RealtimeHistogram } from "./charts/realtime/RealtimeHistogram";
40
+ export { RealtimeHistogram, TemporalHistogram } from "./charts/realtime/RealtimeHistogram";
41
41
  export { RealtimeSwarmChart } from "./charts/realtime/RealtimeSwarmChart";
42
42
  export { RealtimeWaterfallChart } from "./charts/realtime/RealtimeWaterfallChart";
43
43
  export { RealtimeHeatmap } from "./charts/realtime/RealtimeHeatmap";
@@ -66,6 +66,41 @@ export { serializeSelections, deserializeSelections } from "./export/selectionSe
66
66
  export type { SerializedSelections, SerializedSelection, SerializedFieldSelection } from "./export/selectionSerializer";
67
67
  export { fromVegaLite } from "./data/fromVegaLite";
68
68
  export type { VegaLiteSpec, VegaLiteEncoding } from "./data/fromVegaLite";
69
+ export { useChartInterrogation } from "./store/useChartInterrogation";
70
+ export type { UseChartInterrogationOptions, UseChartInterrogationResult, InterrogationContext, InterrogationFocus, InterrogationResult, InterrogationQuery, InterrogationMessage, } from "./store/useChartInterrogation";
71
+ export { useChartFocus } from "./store/useChartFocus";
72
+ export type { UseChartFocusOptions } from "./store/useChartFocus";
73
+ export { summarizeData } from "./data/DataSummarizer";
74
+ export type { DataSummary, FieldSummary, FieldType, NumericFieldSummary, DateFieldSummary, CategoricalFieldSummary, UnknownFieldSummary, SummarizeOptions, } from "./data/DataSummarizer";
75
+ export { profileData } from "./ai/profileData";
76
+ export type { ProfileDataOptions } from "./ai/profileData";
77
+ export { suggestCharts, scoreChart, explainCapabilityFit } from "./ai/suggestCharts";
78
+ export type { SuggestChartsOptions, RejectedCapability, ExplainCapabilityFitResult, } from "./ai/suggestCharts";
79
+ export { inferIntent } from "./ai/inferIntent";
80
+ export type { InferIntentResult } from "./ai/inferIntent";
81
+ export { suggestDashboard } from "./ai/suggestDashboard";
82
+ export type { DashboardPanel, DashboardSuggestion, SuggestDashboardOptions, } from "./ai/suggestDashboard";
83
+ export { applyAudienceBias, effectiveFamiliarity, stretchFamiliarityCeiling, } from "./ai/audienceProfile";
84
+ export type { AudienceProfile, AudienceTarget, AudienceBiasResult, } from "./ai/audienceProfile";
85
+ export { executivePersona, analystPersona, dataScientistPersona, BUILT_IN_AUDIENCES, } from "./ai/audiences";
86
+ export { suggestStretchCharts } from "./ai/suggestStretchCharts";
87
+ export type { StretchSuggestion, SuggestStretchChartsOptions, } from "./ai/suggestStretchCharts";
88
+ export { suggestStreamCharts, registerStreamChartCapability, unregisterStreamChartCapability, getStreamCapabilities, } from "./ai/suggestStreamCharts";
89
+ export type { SuggestStreamChartsOptions } from "./ai/suggestStreamCharts";
90
+ export type { StreamSchema, StreamFieldSchema, StreamFieldKind, StreamChartCapability, StreamIntentScorer, StreamSuggestion, } from "./ai/streamingTypes";
91
+ export { diffProfile } from "./ai/diffProfile";
92
+ export type { ProfileDiff, FieldTypeChange, PrimaryRoleChange, PrimaryRole } from "./ai/diffProfile";
93
+ export { repairChartConfig } from "./ai/repairChartConfig";
94
+ export type { RepairResult, RepairOkResult, RepairAlternativeResult, RepairUnknownResult, RepairOptions, } from "./ai/repairChartConfig";
95
+ export { runQualityScorecard } from "./ai/qualityScorecard";
96
+ export type { ScorecardFixture, ScorecardReport, PerCapabilityScore, PerFixtureScore, } from "./ai/qualityScorecard";
97
+ export { CANONICAL_FIXTURES } from "./ai/qualityFixtures";
98
+ export { useChartSuggestions } from "./ai/useChartSuggestions";
99
+ export type { UseChartSuggestionsOptions, UseChartSuggestionsResult } from "./ai/useChartSuggestions";
100
+ export { getCapabilities, getCapability, registerChartCapability, unregisterChartCapability, LineChartCapability, AreaChartCapability, StackedAreaChartCapability, ScatterplotCapability, ConnectedScatterplotCapability, BubbleChartCapability, QuadrantChartCapability, MultiAxisLineChartCapability, MinimapChartCapability, DifferenceChartCapability, CandlestickChartCapability, HeatmapCapability, BarChartCapability, GroupedBarChartCapability, StackedBarChartCapability, DotPlotCapability, PieChartCapability, DonutChartCapability, FunnelChartCapability, GaugeChartCapability, LikertChartCapability, SwimlaneChartCapability, HistogramCapability, BoxPlotCapability, SwarmPlotCapability, ViolinPlotCapability, RidgelinePlotCapability, ForceDirectedGraphCapability, SankeyDiagramCapability, ChordDiagramCapability, ProcessSankeyCapability, TreeDiagramCapability, TreemapCapability, CirclePackCapability, OrbitDiagramCapability, ChoroplethMapCapability, ProportionalSymbolMapCapability, FlowMapCapability, DistanceCartogramCapability, } from "./ai/chartCapabilities";
101
+ export type { ChartCapability, ChartDataProfile, ChartFamily, ChartImportPath, ChartRubric, ChartVariant, FieldCandidate, FieldKind, FitResult, IntentScorer, Suggestion, } from "./ai/chartCapabilityTypes";
102
+ export { listIntents, getIntent, registerIntent, BUILT_IN_INTENT_IDS } from "./ai/intents";
103
+ export type { BuiltInIntentId, IntentId, IntentDescriptor } from "./ai/intents";
69
104
  export { useChartObserver } from "./store/useObservation";
70
105
  export type { UseChartObserverOptions, UseChartObserverResult } from "./store/useObservation";
71
106
  export type { ChartObservation, OnObservationCallback, HoverObservation, HoverEndObservation, BrushObservation, BrushEndObservation, SelectionObservation, SelectionEndObservation, ClickObservation, ClickEndObservation } from "./store/ObservationStore";
@@ -7,13 +7,13 @@ import StreamNetworkFrame from "./stream/StreamNetworkFrame";
7
7
  import { RingBuffer } from "./realtime/RingBuffer";
8
8
  import { IncrementalExtent } from "./realtime/IncrementalExtent";
9
9
  import { RealtimeLineChart } from "./charts/realtime/RealtimeLineChart";
10
- import { RealtimeHistogram } from "./charts/realtime/RealtimeHistogram";
10
+ import { RealtimeHistogram, TemporalHistogram } from "./charts/realtime/RealtimeHistogram";
11
11
  import { RealtimeSwarmChart } from "./charts/realtime/RealtimeSwarmChart";
12
12
  import { RealtimeWaterfallChart } from "./charts/realtime/RealtimeWaterfallChart";
13
13
  import { RealtimeHeatmap } from "./charts/realtime/RealtimeHeatmap";
14
- export { StreamXYFrame, StreamNetworkFrame, RingBuffer, IncrementalExtent, RealtimeLineChart, RealtimeHistogram, RealtimeSwarmChart, RealtimeWaterfallChart, RealtimeHeatmap };
14
+ export { StreamXYFrame, StreamNetworkFrame, RingBuffer, IncrementalExtent, RealtimeLineChart, RealtimeHistogram, TemporalHistogram, RealtimeSwarmChart, RealtimeWaterfallChart, RealtimeHeatmap };
15
15
  export type { RealtimeLineChartProps } from "./charts/realtime/RealtimeLineChart";
16
- export type { RealtimeHistogramProps } from "./charts/realtime/RealtimeHistogram";
16
+ export type { RealtimeHistogramProps, TemporalHistogramProps } from "./charts/realtime/RealtimeHistogram";
17
17
  export type { RealtimeSwarmChartProps } from "./charts/realtime/RealtimeSwarmChart";
18
18
  export type { RealtimeWaterfallChartProps } from "./charts/realtime/RealtimeWaterfallChart";
19
19
  export type { RealtimeHeatmapProps } from "./charts/realtime/RealtimeHeatmap";
@@ -1,5 +1,6 @@
1
1
  export { renderToStaticSVG, renderXYToStaticSVG, renderOrdinalToStaticSVG, renderNetworkToStaticSVG, renderGeoToStaticSVG, renderChart, renderToImage, renderDashboard, } from "./server/renderToStaticSVG";
2
2
  export type { RenderToImageOptions, DashboardChart, DashboardLayout, RenderDashboardOptions, } from "./server/renderToStaticSVG";
3
+ export type { LegendLayout } from "./types/legendTypes";
3
4
  export { renderToAnimatedGif, generateFrameSVGs, generateFrameSequence } from "./server/animatedGif";
4
5
  export type { AnimatedGifOptions } from "./server/animatedGif";
5
6
  export { resolveTheme, themeStyles } from "./server/themeResolver";
@@ -21,14 +21,14 @@ export { XYCustomChart } from "./charts/custom/XYCustomChart";
21
21
  export type { StreamXYFrameProps, StreamXYFrameHandle } from "./stream/types";
22
22
  export type { CustomLayout, LayoutContext, LayoutResult } from "./stream/customLayout";
23
23
  export type { LineChartProps } from "./charts/xy/LineChart";
24
- export type { AreaChartProps } from "./charts/xy/AreaChart";
24
+ export type { AreaChartProps, SemanticGradientStop } from "./charts/xy/AreaChart";
25
25
  export type { DifferenceChartProps } from "./charts/xy/DifferenceChart";
26
26
  export type { StackedAreaChartProps } from "./charts/xy/StackedAreaChart";
27
27
  export type { ScatterplotProps } from "./charts/xy/Scatterplot";
28
28
  export type { ConnectedScatterplotProps } from "./charts/xy/ConnectedScatterplot";
29
29
  export type { BubbleChartProps } from "./charts/xy/BubbleChart";
30
30
  export type { HeatmapProps } from "./charts/xy/Heatmap";
31
- export type { QuadrantChartProps } from "./charts/xy/QuadrantChart";
31
+ export type { QuadrantChartProps, QuadrantsConfig, QuadrantsConfigOverride, QuadrantConfig, CenterlineStyle } from "./charts/xy/QuadrantChart";
32
32
  export type { MultiAxisLineChartProps } from "./charts/xy/MultiAxisLineChart";
33
33
  export type { CandlestickChartProps } from "./charts/xy/CandlestickChart";
34
34
  export type { XYCustomChartProps } from "./charts/custom/XYCustomChart";
@@ -19,12 +19,13 @@ import { Tooltip, MultiLineTooltip, normalizeTooltip } from "./Tooltip/Tooltip";
19
19
  import { RingBuffer } from "./realtime/RingBuffer";
20
20
  import { IncrementalExtent } from "./realtime/IncrementalExtent";
21
21
  import { RealtimeLineChart } from "./charts/realtime/RealtimeLineChart";
22
- import { RealtimeTemporalHistogram, RealtimeHistogram } from "./charts/realtime/RealtimeHistogram";
22
+ import { RealtimeTemporalHistogram, RealtimeHistogram, TemporalHistogram } from "./charts/realtime/RealtimeHistogram";
23
23
  import { RealtimeSwarmChart } from "./charts/realtime/RealtimeSwarmChart";
24
24
  import { RealtimeWaterfallChart } from "./charts/realtime/RealtimeWaterfallChart";
25
25
  import { RealtimeHeatmap } from "./charts/realtime/RealtimeHeatmap";
26
- export { StreamXYFrame, StreamOrdinalFrame, StreamNetworkFrame, Scatterplot, ConnectedScatterplot, LineChart, AreaChart, DifferenceChart, StackedAreaChart, Heatmap, BubbleChart, BarChart, StackedBarChart, LikertChart, SwarmPlot, BoxPlot, Histogram, ViolinPlot, RidgelinePlot, DotPlot, ForceDirectedGraph, ChordDiagram, SankeyDiagram, ProcessSankey, TreeDiagram, PieChart, DonutChart, GaugeChart, FunnelChart, GroupedBarChart, SwimlaneChart, Treemap, CirclePack, OrbitDiagram, ScatterplotMatrix, MinimapChart, QuadrantChart, MultiAxisLineChart, CandlestickChart, XYCustomChart, NetworkCustomChart, OrdinalCustomChart, LinkedCharts, ThemeProvider, useTheme, exportChart, toConfig, fromConfig, toURL, fromURL, copyConfig, configToJSX, serializeSelections, deserializeSelections, fromVegaLite, ChartErrorBoundary, ChartContainer, ChartGrid, CategoryColorProvider, useCategoryColors, ContextLayout, DetailsPanel, Tooltip, MultiLineTooltip, normalizeTooltip, RingBuffer, IncrementalExtent, RealtimeLineChart, RealtimeTemporalHistogram, RealtimeHistogram, RealtimeSwarmChart, RealtimeWaterfallChart, RealtimeHeatmap, createHatchPattern };
27
- export { ScatterplotProps, ConnectedScatterplotProps, LineChartProps, AreaChartProps, DifferenceChartProps, StackedAreaChartProps, HeatmapProps, BubbleChartProps, BarChartProps, StackedBarChartProps, LikertChartProps, SwarmPlotProps, BoxPlotProps, HistogramProps, ViolinPlotProps, DotPlotProps, PieChartProps, DonutChartProps, GaugeChartProps, GaugeThreshold, FunnelChartProps, GroupedBarChartProps, SwimlaneChartProps, RidgelinePlotProps, OrbitDiagramProps, OrbitNode, ForceDirectedGraphProps, ChordDiagramProps, SankeyDiagramProps, ProcessSankeyProps, ProcessSankeyTick, TreeDiagramProps, TreemapProps, CirclePackProps, ScatterplotMatrixProps, MinimapChartProps, MinimapConfig, QuadrantChartProps, MultiAxisLineChartProps, MultiAxisSeriesConfig, CandlestickChartProps, QuadrantsConfig, QuadrantConfig, CenterlineStyle, BaseChartProps, AxisConfig, Accessor, ChartAccessor, ChartMode } from "./charts";
26
+ export { StreamXYFrame, StreamOrdinalFrame, StreamNetworkFrame, Scatterplot, ConnectedScatterplot, LineChart, AreaChart, DifferenceChart, StackedAreaChart, Heatmap, BubbleChart, BarChart, StackedBarChart, LikertChart, SwarmPlot, BoxPlot, Histogram, ViolinPlot, RidgelinePlot, DotPlot, ForceDirectedGraph, ChordDiagram, SankeyDiagram, ProcessSankey, TreeDiagram, PieChart, DonutChart, GaugeChart, FunnelChart, GroupedBarChart, SwimlaneChart, Treemap, CirclePack, OrbitDiagram, ScatterplotMatrix, MinimapChart, QuadrantChart, MultiAxisLineChart, CandlestickChart, XYCustomChart, NetworkCustomChart, OrdinalCustomChart, LinkedCharts, ThemeProvider, useTheme, exportChart, toConfig, fromConfig, toURL, fromURL, copyConfig, configToJSX, serializeSelections, deserializeSelections, fromVegaLite, ChartErrorBoundary, ChartContainer, ChartGrid, CategoryColorProvider, useCategoryColors, ContextLayout, DetailsPanel, Tooltip, MultiLineTooltip, normalizeTooltip, RingBuffer, IncrementalExtent, RealtimeLineChart, RealtimeTemporalHistogram, RealtimeHistogram, TemporalHistogram, RealtimeSwarmChart, RealtimeWaterfallChart, RealtimeHeatmap, createHatchPattern };
27
+ export type { LegendLayout } from "./types/legendTypes";
28
+ export { ScatterplotProps, ConnectedScatterplotProps, LineChartProps, AreaChartProps, SemanticGradientStop, DifferenceChartProps, StackedAreaChartProps, HeatmapProps, BubbleChartProps, BarChartProps, StackedBarChartProps, LikertChartProps, SwarmPlotProps, BoxPlotProps, HistogramProps, ViolinPlotProps, DotPlotProps, PieChartProps, DonutChartProps, GaugeChartProps, GaugeThreshold, FunnelChartProps, GroupedBarChartProps, SwimlaneChartProps, RidgelinePlotProps, OrbitDiagramProps, OrbitNode, ForceDirectedGraphProps, ChordDiagramProps, SankeyDiagramProps, ProcessSankeyProps, ProcessSankeyTick, TreeDiagramProps, TreemapProps, CirclePackProps, ScatterplotMatrixProps, MinimapChartProps, MinimapConfig, QuadrantChartProps, MultiAxisLineChartProps, MultiAxisSeriesConfig, CandlestickChartProps, QuadrantsConfig, QuadrantsConfigOverride, QuadrantConfig, CenterlineStyle, BaseChartProps, AxisConfig, Accessor, ChartAccessor, ChartMode } from "./charts";
28
29
  export type { StreamXYFrameProps, StreamXYFrameHandle, StreamChartType, RuntimeMode, SceneNode, Changeset, StreamScales, StreamLayout, CurveType, CanvasRendererFn, XYFrameAxisConfig, BandConfig } from "./stream/types";
29
30
  export type { StreamRendererFn } from "./stream/renderers/types";
30
31
  export type { StreamOrdinalFrameProps, StreamOrdinalFrameHandle, OrdinalChartType, OrdinalScales, OrdinalSceneNode } from "./stream/ordinalTypes";
@@ -57,7 +58,7 @@ export { darkenColor, lightenColor } from "./charts/shared/colorManipulation";
57
58
  export type { TooltipProp, TooltipConfig, TooltipField, MultiLineTooltipConfig } from "./Tooltip/Tooltip";
58
59
  export type { ArrowOfTime, WindowMode, ThresholdType, LineStyle, BarStyle, WaterfallStyle, SwarmStyle, AnnotationContext, AnnotationAnchorMode, CrosshairStyle, HoverAnnotationConfig, HoverData } from "./realtime/types";
59
60
  export type { RealtimeLineChartProps } from "./charts/realtime/RealtimeLineChart";
60
- export type { RealtimeTemporalHistogramProps, RealtimeHistogramProps } from "./charts/realtime/RealtimeHistogram";
61
+ export type { RealtimeTemporalHistogramProps, RealtimeHistogramProps, TemporalHistogramProps } from "./charts/realtime/RealtimeHistogram";
61
62
  export type { RealtimeSwarmChartProps } from "./charts/realtime/RealtimeSwarmChart";
62
63
  export type { RealtimeWaterfallChartProps } from "./charts/realtime/RealtimeWaterfallChart";
63
64
  export type { RealtimeHeatmapProps } from "./charts/realtime/RealtimeHeatmap";
@@ -1,4 +1,5 @@
1
1
  import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { LegendLayout } from "../types/legendTypes";
2
3
  /**
3
4
  * Server-side rendering of Semiotic charts to standalone SVG strings.
4
5
  *
@@ -33,6 +34,7 @@ interface ThemeAwareProps {
33
34
  background?: string;
34
35
  className?: string;
35
36
  legendPosition?: "right" | "left" | "top" | "bottom";
37
+ legendLayout?: LegendLayout;
36
38
  /** Prefix for SVG element IDs — used by renderDashboard to avoid collisions */
37
39
  _idPrefix?: string;
38
40
  }