semiotic 3.0.1 → 3.1.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.
Files changed (129) hide show
  1. package/CLAUDE.md +227 -27
  2. package/README.md +147 -11
  3. package/ai/dist/componentRegistry.js +5 -0
  4. package/ai/dist/mcp-server.js +305 -30
  5. package/ai/examples.md +358 -18
  6. package/ai/schema.json +64 -2
  7. package/ai/system-prompt.md +50 -12
  8. package/dist/components/Legend.d.ts +7 -1
  9. package/dist/components/charts/geo/ChoroplethMap.d.ts +53 -0
  10. package/dist/components/charts/geo/DistanceCartogram.d.ts +90 -0
  11. package/dist/components/charts/geo/FlowMap.d.ts +83 -0
  12. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +67 -0
  13. package/dist/components/charts/geo/index.d.ts +8 -0
  14. package/dist/components/charts/index.d.ts +2 -0
  15. package/dist/components/charts/network/ChordDiagram.d.ts +6 -5
  16. package/dist/components/charts/network/CirclePack.d.ts +2 -2
  17. package/dist/components/charts/network/ForceDirectedGraph.d.ts +9 -7
  18. package/dist/components/charts/network/OrbitDiagram.d.ts +21 -20
  19. package/dist/components/charts/network/SankeyDiagram.d.ts +6 -5
  20. package/dist/components/charts/network/TreeDiagram.d.ts +2 -2
  21. package/dist/components/charts/network/Treemap.d.ts +2 -2
  22. package/dist/components/charts/ordinal/BarChart.d.ts +7 -5
  23. package/dist/components/charts/ordinal/BoxPlot.d.ts +8 -6
  24. package/dist/components/charts/ordinal/DonutChart.d.ts +8 -6
  25. package/dist/components/charts/ordinal/DotPlot.d.ts +8 -6
  26. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +7 -5
  27. package/dist/components/charts/ordinal/Histogram.d.ts +8 -5
  28. package/dist/components/charts/ordinal/PieChart.d.ts +8 -6
  29. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +2 -0
  30. package/dist/components/charts/ordinal/StackedBarChart.d.ts +7 -5
  31. package/dist/components/charts/ordinal/SwarmPlot.d.ts +8 -6
  32. package/dist/components/charts/ordinal/ViolinPlot.d.ts +8 -5
  33. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +24 -6
  34. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +28 -7
  35. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +23 -5
  36. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +24 -6
  37. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +23 -5
  38. package/dist/components/charts/shared/ChartError.d.ts +3 -1
  39. package/dist/components/charts/shared/colorUtils.d.ts +5 -0
  40. package/dist/components/charts/shared/hooks.d.ts +13 -1
  41. package/dist/components/charts/shared/legendUtils.d.ts +2 -3
  42. package/dist/components/charts/shared/statisticalOverlays.d.ts +1 -2
  43. package/dist/components/charts/shared/statisticalOverlaysLazy.d.ts +10 -0
  44. package/dist/components/charts/shared/tooltipUtils.d.ts +1 -1
  45. package/dist/components/charts/shared/types.d.ts +10 -4
  46. package/dist/components/charts/shared/useChartSetup.d.ts +112 -0
  47. package/dist/components/charts/shared/useStreamingLegend.d.ts +65 -0
  48. package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
  49. package/dist/components/charts/xy/AreaChart.d.ts +11 -6
  50. package/dist/components/charts/xy/BubbleChart.d.ts +11 -6
  51. package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -6
  52. package/dist/components/charts/xy/Heatmap.d.ts +16 -5
  53. package/dist/components/charts/xy/LineChart.d.ts +21 -5
  54. package/dist/components/charts/xy/MinimapChart.d.ts +3 -0
  55. package/dist/components/charts/xy/QuadrantChart.d.ts +120 -0
  56. package/dist/components/charts/xy/Scatterplot.d.ts +9 -6
  57. package/dist/components/charts/xy/StackedAreaChart.d.ts +11 -6
  58. package/dist/components/geo/mergeData.d.ts +18 -0
  59. package/dist/components/geo/referenceGeography.d.ts +10 -0
  60. package/dist/components/geo/useReferenceAreas.d.ts +13 -0
  61. package/dist/components/realtime/RingBuffer.d.ts +1 -0
  62. package/dist/components/realtime/types.d.ts +17 -0
  63. package/dist/components/semiotic-data.d.ts +1 -0
  64. package/dist/components/semiotic-geo.d.ts +16 -0
  65. package/dist/components/semiotic-server.d.ts +1 -1
  66. package/dist/components/semiotic-xy.d.ts +1 -0
  67. package/dist/components/semiotic.d.ts +4 -4
  68. package/dist/components/server/renderToStaticSVG.d.ts +4 -2
  69. package/dist/components/stream/AccessibleDataTable.d.ts +50 -0
  70. package/dist/components/stream/CanvasHitTester.d.ts +8 -2
  71. package/dist/components/stream/DataSourceAdapter.d.ts +33 -4
  72. package/dist/components/stream/GeoCanvasHitTester.d.ts +19 -0
  73. package/dist/components/stream/GeoParticlePool.d.ts +46 -0
  74. package/dist/components/stream/GeoPipelineStore.d.ts +81 -0
  75. package/dist/components/stream/GeoTileRenderer.d.ts +31 -0
  76. package/dist/components/stream/NetworkPipelineStore.d.ts +16 -4
  77. package/dist/components/stream/NetworkSVGOverlay.d.ts +4 -1
  78. package/dist/components/stream/OrdinalPipelineStore.d.ts +8 -4
  79. package/dist/components/stream/OrdinalSVGOverlay.d.ts +23 -1
  80. package/dist/components/stream/PipelineStore.d.ts +57 -5
  81. package/dist/components/stream/SVGOverlay.d.ts +28 -1
  82. package/dist/components/stream/SceneGraph.d.ts +7 -3
  83. package/dist/components/stream/SceneToSVG.d.ts +2 -0
  84. package/dist/components/stream/StreamGeoFrame.d.ts +4 -0
  85. package/dist/components/stream/accessorUtils.d.ts +1 -0
  86. package/dist/components/stream/canvasSetup.d.ts +26 -0
  87. package/dist/components/stream/geoTypes.d.ts +186 -0
  88. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +0 -7
  89. package/dist/components/stream/layouts/index.d.ts +2 -1
  90. package/dist/components/stream/layouts/orbitLayoutPlugin.d.ts +2 -0
  91. package/dist/components/stream/legendRenderer.d.ts +33 -0
  92. package/dist/components/stream/networkTypes.d.ts +49 -1
  93. package/dist/components/stream/ordinalTypes.d.ts +10 -0
  94. package/dist/components/stream/pipelineTransitionUtils.d.ts +42 -0
  95. package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +9 -0
  96. package/dist/components/stream/renderers/heatmapCanvasRenderer.d.ts +2 -1
  97. package/dist/components/stream/renderers/lineCanvasRenderer.d.ts +1 -0
  98. package/dist/components/stream/renderers/renderPulse.d.ts +50 -0
  99. package/dist/components/stream/types.d.ts +77 -3
  100. package/dist/components/types/legendTypes.d.ts +27 -3
  101. package/dist/geo.min.js +1 -0
  102. package/dist/geo.module.min.js +1 -0
  103. package/dist/network.min.js +1 -1
  104. package/dist/network.module.min.js +1 -1
  105. package/dist/ordinal.min.js +1 -1
  106. package/dist/ordinal.module.min.js +1 -1
  107. package/dist/realtime.min.js +1 -1
  108. package/dist/realtime.module.min.js +1 -1
  109. package/dist/semiotic-ai-statisticalOverlays-C1f7TYyD.js +1 -0
  110. package/dist/semiotic-ai.min.js +1 -1
  111. package/dist/semiotic-ai.module.min.js +1 -1
  112. package/dist/semiotic-data.d.ts +1 -0
  113. package/dist/semiotic-data.min.js +1 -1
  114. package/dist/semiotic-data.module.min.js +1 -1
  115. package/dist/semiotic-geo.d.ts +16 -0
  116. package/dist/semiotic-server.d.ts +1 -1
  117. package/dist/semiotic-statisticalOverlays-C1f7TYyD.js +1 -0
  118. package/dist/semiotic-xy.d.ts +1 -0
  119. package/dist/semiotic.d.ts +4 -4
  120. package/dist/semiotic.min.js +1 -1
  121. package/dist/semiotic.module.min.js +1 -1
  122. package/dist/server.min.js +1 -1
  123. package/dist/server.module.min.js +1 -1
  124. package/dist/test-utils/canvasMock.d.ts +3 -0
  125. package/dist/xy-statisticalOverlays-C1f7TYyD.js +1 -0
  126. package/dist/xy.min.js +1 -1
  127. package/dist/xy.module.min.js +1 -1
  128. package/package.json +76 -8
  129. package/dist/test/canvasMock.d.ts +0 -2
@@ -0,0 +1,90 @@
1
+ import * as React from "react";
2
+ import type { StreamGeoFrameProps, ProjectionProp } from "../../stream/geoTypes";
3
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
+ import { type TooltipProp } from "../../Tooltip/Tooltip";
5
+ import type { LegendPosition } from "../shared/hooks";
6
+ import type { RealtimeFrameHandle } from "../../realtime/types";
7
+ export interface DistanceCartogramProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps {
8
+ /** Point data with geographic coordinates */
9
+ points?: TDatum[];
10
+ /** Route/edge data with source/target fields */
11
+ lines?: {
12
+ source: string;
13
+ target: string;
14
+ coordinates?: any[];
15
+ [key: string]: any;
16
+ }[];
17
+ /** Longitude accessor @default "lon" */
18
+ xAccessor?: ChartAccessor<TDatum, number>;
19
+ /** Latitude accessor @default "lat" */
20
+ yAccessor?: ChartAccessor<TDatum, number>;
21
+ /** Node ID accessor @default "id" */
22
+ nodeIdAccessor?: string;
23
+ /** ID of the center point */
24
+ center: string;
25
+ /** Cost/distance accessor — numeric field or function */
26
+ costAccessor: string | ((d: any) => number);
27
+ /** Interpolation between geographic (0) and cartogram (1) @default 1 */
28
+ strength?: number;
29
+ /** Line rendering mode @default "straight" */
30
+ lineMode?: "straight" | "fractional";
31
+ /** Base geographic projection @default "mercator" */
32
+ projection?: ProjectionProp;
33
+ /** Show graticule grid lines */
34
+ graticule?: boolean | import("../../stream/geoTypes").GraticuleConfig;
35
+ /** Transition duration in ms when center/strength changes */
36
+ transition?: number;
37
+ /** Field to determine point color */
38
+ colorBy?: ChartAccessor<TDatum, string>;
39
+ /** Color scheme @default "category10" */
40
+ colorScheme?: string | string[];
41
+ /** Point radius @default 5 */
42
+ pointRadius?: number;
43
+ /** Tooltip */
44
+ tooltip?: TooltipProp;
45
+ /** Show legend */
46
+ showLegend?: boolean;
47
+ /** Legend position */
48
+ legendPosition?: LegendPosition;
49
+ /** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
50
+ fitPadding?: number;
51
+ /** Enable zoom/pan. Defaults to true when tileURL is set, false otherwise. */
52
+ zoomable?: boolean;
53
+ /** [minZoom, maxZoom] @default [1, 8] */
54
+ zoomExtent?: [number, number];
55
+ /** Zoom change callback */
56
+ onZoom?: StreamGeoFrameProps["onZoom"];
57
+ /**
58
+ * When true, drag gestures rotate the projection (globe spinning)
59
+ * instead of panning. Defaults to true for orthographic projection.
60
+ */
61
+ dragRotate?: boolean;
62
+ /** Raster tile URL template or function. Enables tile basemap (Mercator only). */
63
+ tileURL?: string | ((z: number, x: number, y: number, dpr: number) => string);
64
+ /** Attribution text for tile provider */
65
+ tileAttribution?: string;
66
+ /** Max cached tiles @default 256 */
67
+ tileCacheSize?: number;
68
+ /** Show concentric distance rings around center. true for auto intervals, number for ring count, or number[] for explicit cost values. @default true */
69
+ showRings?: boolean | number | number[];
70
+ /** Ring style overrides */
71
+ ringStyle?: {
72
+ stroke?: string;
73
+ strokeWidth?: number;
74
+ strokeDasharray?: string;
75
+ labelColor?: string;
76
+ labelSize?: number;
77
+ };
78
+ /** Show north indicator arrow @default true */
79
+ showNorth?: boolean;
80
+ /** Label for cost units shown on rings (e.g. "hrs", "km") */
81
+ costLabel?: string;
82
+ /** Annotations */
83
+ annotations?: Record<string, any>[];
84
+ /** Passthrough */
85
+ frameProps?: Partial<Omit<StreamGeoFrameProps, "projection">>;
86
+ }
87
+ export declare const DistanceCartogram: {
88
+ <TDatum extends Record<string, any> = Record<string, any>>(props: DistanceCartogramProps<TDatum> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
89
+ displayName?: string;
90
+ };
@@ -0,0 +1,83 @@
1
+ import * as React from "react";
2
+ import type { StreamGeoFrameProps, ProjectionProp } from "../../stream/geoTypes";
3
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
+ import { type TooltipProp } from "../../Tooltip/Tooltip";
5
+ import type { Style } from "../../stream/types";
6
+ import type { GeoParticleStyle } from "../../stream/GeoParticlePool";
7
+ import { type AreasProp } from "../../geo/useReferenceAreas";
8
+ export interface FlowMapProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps {
9
+ /** Flow edges with source/target/value */
10
+ flows?: {
11
+ source: string;
12
+ target: string;
13
+ value?: number;
14
+ [key: string]: any;
15
+ }[];
16
+ /** Geographic nodes with coordinates */
17
+ nodes?: TDatum[];
18
+ /** Node ID accessor @default "id" */
19
+ nodeIdAccessor?: string;
20
+ /** Longitude accessor @default "lon" */
21
+ xAccessor?: ChartAccessor<TDatum, number>;
22
+ /** Latitude accessor @default "lat" */
23
+ yAccessor?: ChartAccessor<TDatum, number>;
24
+ /** Value accessor for edge width @default "value" */
25
+ valueAccessor?: string;
26
+ /** Projection @default "equalEarth" */
27
+ projection?: ProjectionProp;
28
+ /** Show graticule grid lines */
29
+ graticule?: boolean | import("../../stream/geoTypes").GraticuleConfig;
30
+ /** Line type: "geo" for great circles, "line" for straight @default "geo" */
31
+ lineType?: "geo" | "line";
32
+ /** Flow rendering style: "basic" (straight/great-circle), "offset" (bidirectional offset), "arc" (curved arcs) @default "basic" */
33
+ flowStyle?: "basic" | "offset" | "arc";
34
+ /** Optional background areas */
35
+ areas?: AreasProp;
36
+ /** Background area style */
37
+ areaStyle?: Style;
38
+ /** Edge color accessor */
39
+ edgeColorBy?: ChartAccessor<any, string>;
40
+ /** Edge opacity @default 0.6 */
41
+ edgeOpacity?: number;
42
+ /** Min/max pixel width for proportional edge width @default [1, 8] */
43
+ edgeWidthRange?: [number, number];
44
+ /** Line cap style for flow edges @default "round" */
45
+ edgeLinecap?: "butt" | "round" | "square";
46
+ /** Color scheme for edges @default "category10" */
47
+ colorScheme?: string | string[];
48
+ /** Show animated particles along flow lines */
49
+ showParticles?: boolean;
50
+ /** Particle appearance and behavior */
51
+ particleStyle?: GeoParticleStyle;
52
+ /** Tooltip */
53
+ tooltip?: TooltipProp;
54
+ /** Show legend */
55
+ showLegend?: boolean;
56
+ /** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
57
+ fitPadding?: number;
58
+ /** Enable zoom/pan. Defaults to true when tileURL is set, false otherwise. */
59
+ zoomable?: boolean;
60
+ /** [minZoom, maxZoom] @default [1, 8] */
61
+ zoomExtent?: [number, number];
62
+ /** Zoom change callback */
63
+ onZoom?: StreamGeoFrameProps["onZoom"];
64
+ /**
65
+ * When true, drag gestures rotate the projection (globe spinning)
66
+ * instead of panning. Defaults to true for orthographic projection.
67
+ */
68
+ dragRotate?: boolean;
69
+ /** Raster tile URL template or function. Enables tile basemap (Mercator only). */
70
+ tileURL?: string | ((z: number, x: number, y: number, dpr: number) => string);
71
+ /** Attribution text for tile provider */
72
+ tileAttribution?: string;
73
+ /** Max cached tiles @default 256 */
74
+ tileCacheSize?: number;
75
+ /** Annotations */
76
+ annotations?: Record<string, any>[];
77
+ /** Passthrough */
78
+ frameProps?: Partial<Omit<StreamGeoFrameProps, "projection">>;
79
+ }
80
+ export declare function FlowMap<TDatum extends Record<string, any> = Record<string, any>>(props: FlowMapProps<TDatum>): React.JSX.Element;
81
+ export declare namespace FlowMap {
82
+ var displayName: string;
83
+ }
@@ -0,0 +1,67 @@
1
+ import * as React from "react";
2
+ import type { StreamGeoFrameProps, ProjectionProp } from "../../stream/geoTypes";
3
+ import type { RealtimeFrameHandle } from "../../realtime/types";
4
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
5
+ import { type TooltipProp } from "../../Tooltip/Tooltip";
6
+ import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
7
+ import type { Style } from "../../stream/types";
8
+ import { type AreasProp } from "../../geo/useReferenceAreas";
9
+ export interface ProportionalSymbolMapProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps {
10
+ /** Point data with geographic coordinates */
11
+ points?: TDatum[];
12
+ /** Longitude accessor @default "lon" */
13
+ xAccessor?: ChartAccessor<TDatum, number>;
14
+ /** Latitude accessor @default "lat" */
15
+ yAccessor?: ChartAccessor<TDatum, number>;
16
+ /** Field to scale point size */
17
+ sizeBy: ChartAccessor<TDatum, number>;
18
+ /** Min and max radius @default [3, 30] */
19
+ sizeRange?: [number, number];
20
+ /** Field to determine point color */
21
+ colorBy?: ChartAccessor<TDatum, string>;
22
+ /** Color scheme @default "category10" */
23
+ colorScheme?: string | string[];
24
+ /** Geographic projection @default "equalEarth" */
25
+ projection?: ProjectionProp;
26
+ /** Show graticule grid lines */
27
+ graticule?: boolean | import("../../stream/geoTypes").GraticuleConfig;
28
+ /** Optional background geography */
29
+ areas?: AreasProp;
30
+ /** Style for background areas @default { fill: "#f0f0f0", stroke: "#ccc" } */
31
+ areaStyle?: Style;
32
+ /** Tooltip config */
33
+ tooltip?: TooltipProp;
34
+ /** Show legend */
35
+ showLegend?: boolean;
36
+ /** Legend interaction mode */
37
+ legendInteraction?: LegendInteractionMode;
38
+ /** Legend position */
39
+ legendPosition?: LegendPosition;
40
+ /** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
41
+ fitPadding?: number;
42
+ /** Enable zoom/pan. Defaults to true when tileURL is set, false otherwise. */
43
+ zoomable?: boolean;
44
+ /** [minZoom, maxZoom] @default [1, 8] */
45
+ zoomExtent?: [number, number];
46
+ /** Zoom change callback */
47
+ onZoom?: StreamGeoFrameProps["onZoom"];
48
+ /**
49
+ * When true, drag gestures rotate the projection (globe spinning)
50
+ * instead of panning. Defaults to true for orthographic projection.
51
+ */
52
+ dragRotate?: boolean;
53
+ /** Raster tile URL template or function. Enables tile basemap (Mercator only). */
54
+ tileURL?: string | ((z: number, x: number, y: number, dpr: number) => string);
55
+ /** Attribution text for tile provider */
56
+ tileAttribution?: string;
57
+ /** Max cached tiles @default 256 */
58
+ tileCacheSize?: number;
59
+ /** Annotations */
60
+ annotations?: Record<string, any>[];
61
+ /** Passthrough */
62
+ frameProps?: Partial<Omit<StreamGeoFrameProps, "points" | "projection">>;
63
+ }
64
+ export declare const ProportionalSymbolMap: {
65
+ <TDatum extends Record<string, any> = Record<string, any>>(props: ProportionalSymbolMapProps<TDatum> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
66
+ displayName?: string;
67
+ };
@@ -0,0 +1,8 @@
1
+ export { ChoroplethMap } from "./ChoroplethMap";
2
+ export type { ChoroplethMapProps } from "./ChoroplethMap";
3
+ export { ProportionalSymbolMap } from "./ProportionalSymbolMap";
4
+ export type { ProportionalSymbolMapProps } from "./ProportionalSymbolMap";
5
+ export { FlowMap } from "./FlowMap";
6
+ export type { FlowMapProps } from "./FlowMap";
7
+ export { DistanceCartogram } from "./DistanceCartogram";
8
+ export type { DistanceCartogramProps } from "./DistanceCartogram";
@@ -24,6 +24,8 @@ export { ScatterplotMatrix } from "./xy/ScatterplotMatrix";
24
24
  export type { ScatterplotMatrixProps } from "./xy/ScatterplotMatrix";
25
25
  export { MinimapChart } from "./xy/MinimapChart";
26
26
  export type { MinimapChartProps, MinimapConfig } from "./xy/MinimapChart";
27
+ export { QuadrantChart } from "./xy/QuadrantChart";
28
+ export type { QuadrantChartProps, QuadrantsConfig, QuadrantConfig, CenterlineStyle } from "./xy/QuadrantChart";
27
29
  export { BarChart } from "./ordinal/BarChart";
28
30
  export type { BarChartProps } from "./ordinal/BarChart";
29
31
  export { StackedBarChart } from "./ordinal/StackedBarChart";
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
2
  import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
3
+ import type { RealtimeFrameHandle } from "../../realtime/types";
3
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
5
6
  import type { LegendInteractionMode } from "../shared/hooks";
@@ -8,7 +9,7 @@ import type { LegendInteractionMode } from "../shared/hooks";
8
9
  */
9
10
  export interface ChordDiagramProps<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>> extends BaseChartProps {
10
11
  nodes?: TNode[];
11
- edges: TEdge[];
12
+ edges?: TEdge[];
12
13
  sourceAccessor?: ChartAccessor<TEdge, string>;
13
14
  targetAccessor?: ChartAccessor<TEdge, string>;
14
15
  valueAccessor?: ChartAccessor<TEdge, number>;
@@ -32,7 +33,7 @@ export interface ChordDiagramProps<TNode extends Record<string, any> = Record<st
32
33
  *
33
34
  * Wraps StreamNetworkFrame (canvas-first) for chord relationship visualization.
34
35
  */
35
- export declare function ChordDiagram<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>>(props: ChordDiagramProps<TNode, TEdge>): React.JSX.Element;
36
- export declare namespace ChordDiagram {
37
- var displayName: string;
38
- }
36
+ export declare const ChordDiagram: {
37
+ <TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>>(props: ChordDiagramProps<TNode, TEdge> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
38
+ displayName?: string;
39
+ };
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
3
- import type { BaseChartProps, ChartAccessor, Accessor } from "../shared/types";
3
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
4
  import { type TooltipProp } from "../../Tooltip/Tooltip";
5
5
  import type { LegendInteractionMode } from "../shared/hooks";
6
6
  /**
@@ -9,7 +9,7 @@ import type { LegendInteractionMode } from "../shared/hooks";
9
9
  export interface CirclePackProps<TNode extends Record<string, any> = Record<string, any>> extends BaseChartProps {
10
10
  data: TNode;
11
11
  childrenAccessor?: ChartAccessor<TNode, TNode[]>;
12
- valueAccessor?: Accessor<number>;
12
+ valueAccessor?: ChartAccessor<TNode, number>;
13
13
  nodeIdAccessor?: ChartAccessor<TNode, string>;
14
14
  colorBy?: ChartAccessor<TNode, string | number>;
15
15
  colorScheme?: string | string[];
@@ -1,14 +1,15 @@
1
1
  import * as React from "react";
2
2
  import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
3
+ import type { RealtimeFrameHandle } from "../../realtime/types";
3
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
5
- import type { LegendInteractionMode } from "../shared/hooks";
6
+ import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
6
7
  /**
7
8
  * ForceDirectedGraph component props
8
9
  */
9
10
  export interface ForceDirectedGraphProps<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>> extends BaseChartProps {
10
- nodes: TNode[];
11
- edges: TEdge[];
11
+ nodes?: TNode[];
12
+ edges?: TEdge[];
12
13
  nodeIDAccessor?: ChartAccessor<TNode, string>;
13
14
  sourceAccessor?: ChartAccessor<TEdge, string>;
14
15
  targetAccessor?: ChartAccessor<TEdge, string>;
@@ -26,6 +27,7 @@ export interface ForceDirectedGraphProps<TNode extends Record<string, any> = Rec
26
27
  enableHover?: boolean;
27
28
  showLegend?: boolean;
28
29
  legendInteraction?: LegendInteractionMode;
30
+ legendPosition?: LegendPosition;
29
31
  tooltip?: TooltipProp;
30
32
  frameProps?: Partial<Omit<StreamNetworkFrameProps, "nodes" | "edges" | "size">>;
31
33
  }
@@ -34,7 +36,7 @@ export interface ForceDirectedGraphProps<TNode extends Record<string, any> = Rec
34
36
  *
35
37
  * Wraps StreamNetworkFrame (canvas-first) for force-directed network visualization.
36
38
  */
37
- export declare function ForceDirectedGraph<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>>(props: ForceDirectedGraphProps<TNode, TEdge>): React.JSX.Element;
38
- export declare namespace ForceDirectedGraph {
39
- var displayName: string;
40
- }
39
+ export declare const ForceDirectedGraph: {
40
+ <TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>>(props: ForceDirectedGraphProps<TNode, TEdge> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
41
+ displayName?: string;
42
+ };
@@ -1,5 +1,7 @@
1
1
  import * as React from "react";
2
+ import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
2
3
  import type { BaseChartProps } from "../shared/types";
4
+ import { type TooltipProp } from "../../Tooltip/Tooltip";
3
5
  export interface OrbitNode {
4
6
  datum: any;
5
7
  x: number;
@@ -35,41 +37,40 @@ export interface OrbitDiagramProps<TDatum extends Record<string, any> = Record<s
35
37
  */
36
38
  orbitMode?: OrbitMode;
37
39
  /** Ring size divisor per depth. Larger = tighter orbits. @default 2.95 */
38
- orbitSize?: number | ((node: OrbitNode) => number);
40
+ orbitSize?: number | ((node: any) => number);
39
41
  /** Orbit speed in degrees per frame @default 0.25 */
40
42
  speed?: number;
41
43
  /** Per-node speed modifier @default (node) => 1 / (node.depth + 1) */
42
- revolution?: (node: OrbitNode) => number;
44
+ revolution?: (node: any) => number;
45
+ /**
46
+ * Built-in revolution style presets:
47
+ * - "locked": children rotate with parent at decreasing speed (default)
48
+ * - "decay": each depth level progressively slower, independent of parent
49
+ * - "alternate": odd-depth rings reverse direction
50
+ * Ignored when `revolution` function is provided.
51
+ * @default "locked"
52
+ */
53
+ revolutionStyle?: "locked" | "decay" | "alternate";
43
54
  /** Vertical squash for elliptical orbits. 1 = circle, 0.5 = ellipse @default 1 */
44
- eccentricity?: number | ((node: OrbitNode) => number);
55
+ eccentricity?: number | ((node: any) => number);
45
56
  /** Show orbital ring paths @default true */
46
57
  showRings?: boolean;
47
58
  /** Node radius. Number or function of node. @default 6 */
48
- nodeRadius?: number | ((node: OrbitNode) => number);
59
+ nodeRadius?: number | ((node: any) => number);
49
60
  /** Show node labels @default false */
50
61
  showLabels?: boolean;
51
62
  /** Enable animation @default true */
52
63
  animated?: boolean;
53
- /** Tooltip configuration */
54
- tooltip?: (node: OrbitNode) => React.ReactNode;
64
+ /** Tooltip configuration. Function form receives the raw datum (not OrbitNode). */
65
+ tooltip?: TooltipProp;
55
66
  /** Enable hover @default true */
56
67
  enableHover?: boolean;
57
- /** Annotation objects. Supports type: "widget" with content (ReactNode) anchored to a node by nodeId. */
58
- annotations?: Array<{
59
- type: string;
60
- nodeId?: string;
61
- dx?: number;
62
- dy?: number;
63
- width?: number;
64
- height?: number;
65
- content?: React.ReactNode;
66
- label?: string;
67
- [key: string]: any;
68
- }>;
68
+ /** Annotation objects */
69
+ annotations?: Array<Record<string, any>>;
69
70
  /** Additional SVG content */
70
71
  foregroundGraphics?: React.ReactNode;
71
- /** Frame props passthrough (unused, for API consistency) */
72
- frameProps?: Record<string, any>;
72
+ /** Frame props passthrough */
73
+ frameProps?: Partial<Omit<StreamNetworkFrameProps, "data" | "size">>;
73
74
  }
74
75
  export declare function OrbitDiagram<TDatum extends Record<string, any> = Record<string, any>>(props: OrbitDiagramProps<TDatum>): React.JSX.Element;
75
76
  export declare namespace OrbitDiagram {
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
2
  import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
3
+ import type { RealtimeFrameHandle } from "../../realtime/types";
3
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
5
6
  import type { LegendInteractionMode } from "../shared/hooks";
@@ -8,7 +9,7 @@ import type { LegendInteractionMode } from "../shared/hooks";
8
9
  */
9
10
  export interface SankeyDiagramProps<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>> extends BaseChartProps {
10
11
  nodes?: TNode[];
11
- edges: TEdge[];
12
+ edges?: TEdge[];
12
13
  sourceAccessor?: ChartAccessor<TEdge, string>;
13
14
  targetAccessor?: ChartAccessor<TEdge, string>;
14
15
  valueAccessor?: ChartAccessor<TEdge, number>;
@@ -34,7 +35,7 @@ export interface SankeyDiagramProps<TNode extends Record<string, any> = Record<s
34
35
  *
35
36
  * Wraps StreamNetworkFrame (canvas-first) for Sankey flow visualization.
36
37
  */
37
- export declare function SankeyDiagram<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>>(props: SankeyDiagramProps<TNode, TEdge>): React.JSX.Element;
38
- export declare namespace SankeyDiagram {
39
- var displayName: string;
40
- }
38
+ export declare const SankeyDiagram: {
39
+ <TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>>(props: SankeyDiagramProps<TNode, TEdge> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
40
+ displayName?: string;
41
+ };
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
3
- import type { BaseChartProps, ChartAccessor, Accessor } from "../shared/types";
3
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
4
  import { type TooltipProp } from "../../Tooltip/Tooltip";
5
5
  import type { LegendInteractionMode } from "../shared/hooks";
6
6
  /**
@@ -11,7 +11,7 @@ export interface TreeDiagramProps<TNode extends Record<string, any> = Record<str
11
11
  layout?: "tree" | "cluster" | "partition" | "treemap" | "circlepack";
12
12
  orientation?: "vertical" | "horizontal" | "radial";
13
13
  childrenAccessor?: ChartAccessor<TNode, TNode[]>;
14
- valueAccessor?: Accessor<number>;
14
+ valueAccessor?: ChartAccessor<TNode, number>;
15
15
  nodeIdAccessor?: ChartAccessor<TNode, string>;
16
16
  colorBy?: ChartAccessor<TNode, string | number>;
17
17
  colorScheme?: string | string[];
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
3
- import type { BaseChartProps, ChartAccessor, Accessor } from "../shared/types";
3
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
4
  import { type TooltipProp } from "../../Tooltip/Tooltip";
5
5
  import type { LegendInteractionMode } from "../shared/hooks";
6
6
  /**
@@ -9,7 +9,7 @@ import type { LegendInteractionMode } from "../shared/hooks";
9
9
  export interface TreemapProps<TNode extends Record<string, any> = Record<string, any>> extends BaseChartProps {
10
10
  data: TNode;
11
11
  childrenAccessor?: ChartAccessor<TNode, TNode[]>;
12
- valueAccessor?: Accessor<number>;
12
+ valueAccessor?: ChartAccessor<TNode, number>;
13
13
  nodeIdAccessor?: ChartAccessor<TNode, string>;
14
14
  colorBy?: ChartAccessor<TNode, string | number>;
15
15
  colorScheme?: string | string[];
@@ -3,11 +3,12 @@ import type { StreamOrdinalFrameProps } from "../../stream/ordinalTypes";
3
3
  import type { LegendInteractionMode } from "../shared/hooks";
4
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
5
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
6
+ import type { RealtimeFrameHandle } from "../../realtime/types";
6
7
  /**
7
8
  * BarChart component props
8
9
  */
9
10
  export interface BarChartProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps {
10
- data: TDatum[];
11
+ data?: TDatum[];
11
12
  categoryAccessor?: ChartAccessor<TDatum, string>;
12
13
  valueAccessor?: ChartAccessor<TDatum, number>;
13
14
  orientation?: "vertical" | "horizontal";
@@ -22,6 +23,7 @@ export interface BarChartProps<TDatum extends Record<string, any> = Record<strin
22
23
  showGrid?: boolean;
23
24
  showLegend?: boolean;
24
25
  legendInteraction?: LegendInteractionMode;
26
+ legendPosition?: "right" | "left" | "top" | "bottom";
25
27
  tooltip?: TooltipProp;
26
28
  annotations?: Record<string, any>[];
27
29
  frameProps?: Partial<Omit<StreamOrdinalFrameProps, "data" | "size">>;
@@ -29,7 +31,7 @@ export interface BarChartProps<TDatum extends Record<string, any> = Record<strin
29
31
  /**
30
32
  * BarChart - Visualize categorical data with bars.
31
33
  */
32
- export declare function BarChart<TDatum extends Record<string, any> = Record<string, any>>(props: BarChartProps<TDatum>): React.JSX.Element;
33
- export declare namespace BarChart {
34
- var displayName: string;
35
- }
34
+ export declare const BarChart: {
35
+ <TDatum extends Record<string, any> = Record<string, any>>(props: BarChartProps<TDatum> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
36
+ displayName?: string;
37
+ };
@@ -1,10 +1,11 @@
1
1
  import * as React from "react";
2
2
  import type { StreamOrdinalFrameProps } from "../../stream/ordinalTypes";
3
- import type { LegendInteractionMode } from "../shared/hooks";
3
+ import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
4
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
5
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
6
+ import type { RealtimeFrameHandle } from "../../realtime/types";
6
7
  export interface BoxPlotProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps {
7
- data: TDatum[];
8
+ data?: TDatum[];
8
9
  categoryAccessor?: ChartAccessor<TDatum, string>;
9
10
  valueAccessor?: ChartAccessor<TDatum, number>;
10
11
  orientation?: "vertical" | "horizontal";
@@ -20,11 +21,12 @@ export interface BoxPlotProps<TDatum extends Record<string, any> = Record<string
20
21
  showGrid?: boolean;
21
22
  showLegend?: boolean;
22
23
  legendInteraction?: LegendInteractionMode;
24
+ legendPosition?: LegendPosition;
23
25
  tooltip?: TooltipProp;
24
26
  annotations?: Record<string, any>[];
25
27
  frameProps?: Partial<Omit<StreamOrdinalFrameProps, "data" | "size">>;
26
28
  }
27
- export declare function BoxPlot<TDatum extends Record<string, any> = Record<string, any>>(props: BoxPlotProps<TDatum>): React.JSX.Element;
28
- export declare namespace BoxPlot {
29
- var displayName: string;
30
- }
29
+ export declare const BoxPlot: {
30
+ <TDatum extends Record<string, any> = Record<string, any>>(props: BoxPlotProps<TDatum> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
31
+ displayName?: string;
32
+ };
@@ -1,10 +1,11 @@
1
1
  import * as React from "react";
2
2
  import type { StreamOrdinalFrameProps } from "../../stream/ordinalTypes";
3
- import type { LegendInteractionMode } from "../shared/hooks";
3
+ import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
4
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
5
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
6
+ import type { RealtimeFrameHandle } from "../../realtime/types";
6
7
  export interface DonutChartProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps {
7
- data: TDatum[];
8
+ data?: TDatum[];
8
9
  categoryAccessor?: ChartAccessor<TDatum, string>;
9
10
  valueAccessor?: ChartAccessor<TDatum, number>;
10
11
  innerRadius?: number;
@@ -16,11 +17,12 @@ export interface DonutChartProps<TDatum extends Record<string, any> = Record<str
16
17
  enableHover?: boolean;
17
18
  showLegend?: boolean;
18
19
  legendInteraction?: LegendInteractionMode;
20
+ legendPosition?: LegendPosition;
19
21
  tooltip?: TooltipProp;
20
22
  annotations?: Record<string, any>[];
21
23
  frameProps?: Partial<Omit<StreamOrdinalFrameProps, "data" | "size">>;
22
24
  }
23
- export declare function DonutChart<TDatum extends Record<string, any> = Record<string, any>>(props: DonutChartProps<TDatum>): React.JSX.Element;
24
- export declare namespace DonutChart {
25
- var displayName: string;
26
- }
25
+ export declare const DonutChart: {
26
+ <TDatum extends Record<string, any> = Record<string, any>>(props: DonutChartProps<TDatum> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
27
+ displayName?: string;
28
+ };
@@ -1,10 +1,11 @@
1
1
  import * as React from "react";
2
2
  import type { StreamOrdinalFrameProps } from "../../stream/ordinalTypes";
3
- import type { LegendInteractionMode } from "../shared/hooks";
3
+ import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
4
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
5
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
6
+ import type { RealtimeFrameHandle } from "../../realtime/types";
6
7
  export interface DotPlotProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps {
7
- data: TDatum[];
8
+ data?: TDatum[];
8
9
  categoryAccessor?: ChartAccessor<TDatum, string>;
9
10
  valueAccessor?: ChartAccessor<TDatum, number>;
10
11
  orientation?: "vertical" | "horizontal";
@@ -20,11 +21,12 @@ export interface DotPlotProps<TDatum extends Record<string, any> = Record<string
20
21
  showGrid?: boolean;
21
22
  showLegend?: boolean;
22
23
  legendInteraction?: LegendInteractionMode;
24
+ legendPosition?: LegendPosition;
23
25
  tooltip?: TooltipProp;
24
26
  annotations?: Record<string, any>[];
25
27
  frameProps?: Partial<Omit<StreamOrdinalFrameProps, "data" | "size">>;
26
28
  }
27
- export declare function DotPlot<TDatum extends Record<string, any> = Record<string, any>>(props: DotPlotProps<TDatum>): React.JSX.Element;
28
- export declare namespace DotPlot {
29
- var displayName: string;
30
- }
29
+ export declare const DotPlot: {
30
+ <TDatum extends Record<string, any> = Record<string, any>>(props: DotPlotProps<TDatum> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
31
+ displayName?: string;
32
+ };
@@ -3,8 +3,9 @@ import type { StreamOrdinalFrameProps } from "../../stream/ordinalTypes";
3
3
  import type { LegendInteractionMode } from "../shared/hooks";
4
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
5
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
6
+ import type { RealtimeFrameHandle } from "../../realtime/types";
6
7
  export interface GroupedBarChartProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps {
7
- data: TDatum[];
8
+ data?: TDatum[];
8
9
  categoryAccessor?: ChartAccessor<TDatum, string>;
9
10
  groupBy: ChartAccessor<TDatum, string>;
10
11
  valueAccessor?: ChartAccessor<TDatum, number>;
@@ -19,11 +20,12 @@ export interface GroupedBarChartProps<TDatum extends Record<string, any> = Recor
19
20
  showGrid?: boolean;
20
21
  showLegend?: boolean;
21
22
  legendInteraction?: LegendInteractionMode;
23
+ legendPosition?: "right" | "left" | "top" | "bottom";
22
24
  tooltip?: TooltipProp;
23
25
  annotations?: Record<string, any>[];
24
26
  frameProps?: Partial<Omit<StreamOrdinalFrameProps, "data" | "size">>;
25
27
  }
26
- export declare function GroupedBarChart<TDatum extends Record<string, any> = Record<string, any>>(props: GroupedBarChartProps<TDatum>): React.JSX.Element;
27
- export declare namespace GroupedBarChart {
28
- var displayName: string;
29
- }
28
+ export declare const GroupedBarChart: {
29
+ <TDatum extends Record<string, any> = Record<string, any>>(props: GroupedBarChartProps<TDatum> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
30
+ displayName?: string;
31
+ };