semiotic 3.3.1 → 3.4.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/CLAUDE.md +25 -6
- package/README.md +1 -1
- package/ai/dist/mcp-server.js +104 -9
- package/ai/schema.json +42 -1
- package/ai/system-prompt.md +4 -0
- package/dist/components/Annotation.d.ts +42 -2
- package/dist/components/CategoryColors.d.ts +1 -1
- package/dist/components/ChartGrid.d.ts +1 -1
- package/dist/components/ContextLayout.d.ts +1 -1
- package/dist/components/DataSummaryContext.d.ts +1 -1
- package/dist/components/DetailsPanel.d.ts +3 -2
- package/dist/components/Legend.d.ts +2 -3
- package/dist/components/LinkedCharts.d.ts +9 -1
- package/dist/components/ThemeProvider.d.ts +1 -1
- package/dist/components/Tooltip/FlippingTooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +4 -3
- package/dist/components/charts/geo/ChoroplethMap.d.ts +4 -4
- package/dist/components/charts/geo/DistanceCartogram.d.ts +5 -4
- package/dist/components/charts/geo/FlowMap.d.ts +4 -4
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +4 -3
- package/dist/components/charts/index.d.ts +3 -1
- package/dist/components/charts/network/ChordDiagram.d.ts +4 -3
- package/dist/components/charts/network/CirclePack.d.ts +3 -3
- package/dist/components/charts/network/ForceDirectedGraph.d.ts +3 -2
- package/dist/components/charts/network/OrbitDiagram.d.ts +6 -5
- package/dist/components/charts/network/SankeyDiagram.d.ts +4 -3
- package/dist/components/charts/network/TreeDiagram.d.ts +3 -3
- package/dist/components/charts/network/Treemap.d.ts +3 -3
- package/dist/components/charts/ordinal/BarChart.d.ts +30 -4
- package/dist/components/charts/ordinal/BoxPlot.d.ts +4 -3
- package/dist/components/charts/ordinal/DonutChart.d.ts +4 -3
- package/dist/components/charts/ordinal/DotPlot.d.ts +13 -4
- package/dist/components/charts/ordinal/FunnelChart.d.ts +4 -3
- package/dist/components/charts/ordinal/GaugeChart.d.ts +2 -1
- package/dist/components/charts/ordinal/GroupedBarChart.d.ts +6 -5
- package/dist/components/charts/ordinal/Histogram.d.ts +4 -3
- package/dist/components/charts/ordinal/LikertChart.d.ts +8 -4
- package/dist/components/charts/ordinal/PieChart.d.ts +4 -3
- package/dist/components/charts/ordinal/RidgelinePlot.d.ts +4 -3
- package/dist/components/charts/ordinal/StackedBarChart.d.ts +6 -5
- package/dist/components/charts/ordinal/SwarmPlot.d.ts +4 -3
- package/dist/components/charts/ordinal/SwimlaneChart.d.ts +4 -3
- package/dist/components/charts/ordinal/ViolinPlot.d.ts +4 -3
- package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +7 -6
- package/dist/components/charts/realtime/RealtimeHistogram.d.ts +10 -7
- package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -6
- package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +7 -6
- package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -6
- package/dist/components/charts/shared/ChartError.d.ts +1 -2
- package/dist/components/charts/shared/annotationResolvers.d.ts +4 -3
- package/dist/components/charts/shared/annotationRules.d.ts +2 -1
- package/dist/components/charts/shared/colorUtils.d.ts +4 -3
- package/dist/components/charts/shared/datumTypes.d.ts +20 -0
- package/dist/components/charts/shared/diagnoseConfig.d.ts +2 -7
- package/dist/components/charts/shared/formatUtils.d.ts +4 -2
- package/dist/components/charts/shared/hooks.d.ts +41 -24
- package/dist/components/charts/shared/legendUtils.d.ts +3 -2
- package/dist/components/charts/shared/mergeShapeStyle.d.ts +43 -0
- package/dist/components/charts/shared/networkUtils.d.ts +7 -6
- package/dist/components/charts/shared/selectionUtils.d.ts +14 -11
- package/dist/components/charts/shared/statisticalOverlays.d.ts +14 -26
- package/dist/components/charts/shared/statisticalOverlaysLazy.d.ts +2 -2
- package/dist/components/charts/shared/statsTooltip.d.ts +3 -2
- package/dist/components/charts/shared/tooltipUtils.d.ts +20 -7
- package/dist/components/charts/shared/types.d.ts +27 -19
- package/dist/components/charts/shared/useChartSetup.d.ts +15 -6
- package/dist/components/charts/shared/useLikertAggregation.d.ts +18 -7
- package/dist/components/charts/shared/useOrdinalStreaming.d.ts +3 -2
- package/dist/components/charts/shared/useResolvedSelection.d.ts +2 -0
- package/dist/components/charts/shared/useStreamingLegend.d.ts +2 -1
- package/dist/components/charts/shared/validateChartData.d.ts +2 -1
- package/dist/components/charts/shared/validateProps.d.ts +2 -8
- package/dist/components/charts/shared/withChartWrapper.d.ts +1 -1
- package/dist/components/charts/xy/AreaChart.d.ts +4 -3
- package/dist/components/charts/xy/BubbleChart.d.ts +4 -3
- package/dist/components/charts/xy/CandlestickChart.d.ts +47 -0
- package/dist/components/charts/xy/ConnectedScatterplot.d.ts +4 -3
- package/dist/components/charts/xy/Heatmap.d.ts +12 -7
- package/dist/components/charts/xy/LineChart.d.ts +4 -3
- package/dist/components/charts/xy/MinimapChart.d.ts +4 -4
- package/dist/components/charts/xy/MultiAxisLineChart.d.ts +5 -4
- package/dist/components/charts/xy/QuadrantChart.d.ts +4 -3
- package/dist/components/charts/xy/Scatterplot.d.ts +4 -3
- package/dist/components/charts/xy/ScatterplotMatrix.d.ts +3 -3
- package/dist/components/charts/xy/StackedAreaChart.d.ts +4 -3
- package/dist/components/data/transforms.d.ts +8 -7
- package/dist/components/export/chartConfig.d.ts +4 -3
- package/dist/components/geo/mergeData.d.ts +2 -1
- package/dist/components/realtime/BinAccumulator.d.ts +3 -2
- package/dist/components/realtime/renderers/types.d.ts +2 -1
- package/dist/components/realtime/renderers/waterfallRenderer.d.ts +2 -1
- package/dist/components/realtime/types.d.ts +32 -16
- package/dist/components/semiotic-geo.d.ts +4 -0
- package/dist/components/semiotic-network.d.ts +7 -0
- package/dist/components/semiotic-ordinal.d.ts +8 -0
- package/dist/components/semiotic-themes.d.ts +2 -1
- package/dist/components/semiotic-xy.d.ts +11 -0
- package/dist/components/semiotic.d.ts +3 -3
- package/dist/components/server/animatedGif.d.ts +4 -18
- package/dist/components/server/renderToStaticSVG.d.ts +6 -5
- package/dist/components/server/serverChartConfigs.d.ts +2 -10
- package/dist/components/server/staticAnnotations.d.ts +2 -1
- package/dist/components/server/staticLegend.d.ts +2 -1
- package/dist/components/store/ObservationStore.d.ts +4 -3
- package/dist/components/store/SelectionStore.d.ts +3 -8
- package/dist/components/store/ThemeStore.d.ts +34 -4
- package/dist/components/store/TooltipStore.d.ts +1 -1
- package/dist/components/store/useSelection.d.ts +6 -5
- package/dist/components/stream/AccessibleDataTable.d.ts +5 -5
- package/dist/components/stream/CanvasHitTester.d.ts +10 -4
- package/dist/components/stream/DataSourceAdapter.d.ts +19 -1
- package/dist/components/stream/FocusRing.d.ts +1 -2
- package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
- package/dist/components/stream/GeoParticlePool.d.ts +2 -1
- package/dist/components/stream/GeoPipelineStore.d.ts +26 -7
- package/dist/components/stream/MarginalGraphics.d.ts +1 -2
- package/dist/components/stream/NetworkPipelineStore.d.ts +8 -2
- package/dist/components/stream/NetworkSVGOverlay.d.ts +4 -4
- package/dist/components/stream/OrdinalBrushOverlay.d.ts +1 -19
- package/dist/components/stream/OrdinalCanvasHitTester.d.ts +3 -1
- package/dist/components/stream/OrdinalPipelineStore.d.ts +44 -6
- package/dist/components/stream/OrdinalSVGOverlay.d.ts +6 -5
- package/dist/components/stream/ParticlePool.d.ts +4 -0
- package/dist/components/stream/PipelineStore.d.ts +80 -30
- package/dist/components/stream/SVGOverlay.d.ts +10 -10
- package/dist/components/stream/SceneGraph.d.ts +6 -5
- package/dist/components/stream/StreamGeoFrame.d.ts +2 -1
- package/dist/components/stream/StreamNetworkFrame.d.ts +2 -1
- package/dist/components/stream/StreamOrdinalFrame.d.ts +2 -1
- package/dist/components/stream/StreamXYFrame.d.ts +19 -1
- package/dist/components/stream/XYBrushOverlay.d.ts +1 -21
- package/dist/components/stream/devDataAccessWarning.d.ts +2 -11
- package/dist/components/stream/geoTypes.d.ts +32 -18
- package/dist/components/stream/hoverUtils.d.ts +14 -1
- package/dist/components/stream/layouts/hierarchySceneBuilders.d.ts +4 -3
- package/dist/components/stream/layouts/hierarchyUtils.d.ts +4 -3
- package/dist/components/stream/networkTypes.d.ts +51 -28
- package/dist/components/stream/ordinalSceneBuilders/barFunnelScene.d.ts +1 -1
- package/dist/components/stream/ordinalSceneBuilders/barScene.d.ts +2 -2
- package/dist/components/stream/ordinalSceneBuilders/connectorScene.d.ts +1 -1
- package/dist/components/stream/ordinalSceneBuilders/pointScene.d.ts +2 -2
- package/dist/components/stream/ordinalSceneBuilders/statisticalScene.d.ts +4 -4
- package/dist/components/stream/ordinalSceneBuilders/swimlaneScene.d.ts +1 -1
- package/dist/components/stream/ordinalSceneBuilders/timelineScene.d.ts +1 -1
- package/dist/components/stream/ordinalSceneBuilders/types.d.ts +9 -8
- package/dist/components/stream/ordinalTypes.d.ts +102 -29
- package/dist/components/stream/pipelineDecay.d.ts +2 -1
- package/dist/components/stream/pipelinePulse.d.ts +2 -1
- package/dist/components/stream/pipelineTransitionUtils.d.ts +21 -0
- package/dist/components/stream/pipelineTransitions.d.ts +16 -4
- package/dist/components/stream/quadtreeHitTest.d.ts +22 -0
- package/dist/components/stream/renderers/colorUtils.d.ts +20 -0
- package/dist/components/stream/renderers/resolveCSSColor.d.ts +23 -6
- package/dist/components/stream/types.d.ts +63 -8
- package/dist/components/stream/useFrame.d.ts +122 -0
- package/dist/components/stream/xySceneBuilders/areaScene.d.ts +3 -2
- package/dist/components/stream/xySceneBuilders/barScene.d.ts +2 -1
- package/dist/components/stream/xySceneBuilders/boundsScene.d.ts +2 -1
- package/dist/components/stream/xySceneBuilders/candlestickScene.d.ts +2 -1
- package/dist/components/stream/xySceneBuilders/emitPointNodes.d.ts +3 -2
- package/dist/components/stream/xySceneBuilders/heatmapScene.d.ts +2 -1
- package/dist/components/stream/xySceneBuilders/lineScene.d.ts +2 -1
- package/dist/components/stream/xySceneBuilders/mixedScene.d.ts +2 -1
- package/dist/components/stream/xySceneBuilders/pointScene.d.ts +2 -1
- package/dist/components/stream/xySceneBuilders/swarmScene.d.ts +2 -1
- package/dist/components/stream/xySceneBuilders/types.d.ts +35 -26
- package/dist/components/stream/xySceneBuilders/waterfallScene.d.ts +2 -1
- package/dist/components/types/marginType.d.ts +15 -0
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-geo.d.ts +4 -0
- package/dist/semiotic-network.d.ts +7 -0
- package/dist/semiotic-ordinal.d.ts +8 -0
- package/dist/semiotic-statisticalOverlays-Ckd_jM8z.js +1 -0
- package/dist/semiotic-themes.d.ts +2 -1
- package/dist/semiotic-themes.min.js +1 -1
- package/dist/semiotic-themes.module.min.js +1 -1
- package/dist/semiotic-utils.min.js +1 -1
- package/dist/semiotic-utils.module.min.js +1 -1
- package/dist/semiotic-xy.d.ts +11 -0
- package/dist/semiotic.d.ts +3 -3
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/test-utils/canvasMock.d.ts +35 -1
- package/dist/test-utils/ordinalFixtures.d.ts +48 -0
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +50 -42
- package/dist/components/types/annotationTypes.d.ts +0 -145
- package/dist/components/types/generalTypes.d.ts +0 -241
- package/dist/components/types/interactionTypes.d.ts +0 -72
- package/dist/components/types/networkTypes.d.ts +0 -174
- package/dist/components/types/ordinalTypes.d.ts +0 -112
- package/dist/semiotic-statisticalOverlays-DGX_WWc5.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
2
|
import type { StreamScales, MarginalGraphicsConfig } from "./types";
|
|
3
3
|
import type { AnnotationContext } from "../realtime/types";
|
|
4
4
|
import type { ReactNode } from "react";
|
|
@@ -38,8 +38,8 @@ interface SVGOverlayProps {
|
|
|
38
38
|
yLabel?: string;
|
|
39
39
|
/** Label for the right Y axis (dual-axis charts) */
|
|
40
40
|
yLabelRight?: string;
|
|
41
|
-
xFormat?: (d:
|
|
42
|
-
yFormat?: (d:
|
|
41
|
+
xFormat?: (d: number | Date | string, index?: number, allTicks?: number[]) => string | ReactNode;
|
|
42
|
+
yFormat?: (d: number | Date | string) => string | ReactNode;
|
|
43
43
|
showGrid?: boolean;
|
|
44
44
|
title?: string | ReactNode;
|
|
45
45
|
legend?: ReactNode | {
|
|
@@ -65,12 +65,12 @@ interface SVGOverlayProps {
|
|
|
65
65
|
marginalGraphics?: MarginalGraphicsConfig;
|
|
66
66
|
xValues?: number[];
|
|
67
67
|
yValues?: number[];
|
|
68
|
-
annotations?:
|
|
69
|
-
svgAnnotationRules?: (annotation:
|
|
68
|
+
annotations?: Datum[];
|
|
69
|
+
svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => ReactNode;
|
|
70
70
|
annotationFrame?: number;
|
|
71
71
|
xAccessor?: string;
|
|
72
72
|
yAccessor?: string;
|
|
73
|
-
annotationData?:
|
|
73
|
+
annotationData?: Datum[];
|
|
74
74
|
pointNodes?: {
|
|
75
75
|
pointId?: string;
|
|
76
76
|
x: number;
|
|
@@ -102,9 +102,9 @@ interface SVGUnderlayProps {
|
|
|
102
102
|
showAxes?: boolean;
|
|
103
103
|
axes?: AxisConfig[];
|
|
104
104
|
showGrid?: boolean;
|
|
105
|
-
xFormat?: (d:
|
|
106
|
-
yFormat?: (d:
|
|
105
|
+
xFormat?: (d: number | Date | string, index?: number, allTicks?: number[]) => string | ReactNode;
|
|
106
|
+
yFormat?: (d: number | Date | string) => string | ReactNode;
|
|
107
107
|
}
|
|
108
|
-
export declare function SVGUnderlay(props: SVGUnderlayProps):
|
|
109
|
-
export declare function SVGOverlay(props: SVGOverlayProps):
|
|
108
|
+
export declare function SVGUnderlay(props: SVGUnderlayProps): import("react/jsx-runtime").JSX.Element | null;
|
|
109
|
+
export declare function SVGOverlay(props: SVGOverlayProps): import("react/jsx-runtime").JSX.Element | null;
|
|
110
110
|
export {};
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import type { SceneNode, LineSceneNode, AreaSceneNode, PointSceneNode, RectSceneNode, HeatcellSceneNode, Style, StreamScales, CurveType } from "./types";
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
2
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
3
|
+
export declare function buildLineNode(data: Datum[], scales: StreamScales, xGet: (d: Datum) => number, yGet: (d: Datum) => number, style: Style, group?: string): LineSceneNode;
|
|
4
|
+
export declare function buildAreaNode(data: Datum[], scales: StreamScales, xGet: (d: Datum) => number, yGet: (d: Datum) => number, baselineY: number, style: Style, group?: string, y0Get?: (d: Datum) => number): AreaSceneNode;
|
|
4
5
|
/** Per-group-per-x stacked top values, keyed by group then x */
|
|
5
6
|
export type StackedTops = Map<string, Map<number, number>>;
|
|
6
7
|
export declare function buildStackedAreaNodes(groups: {
|
|
7
8
|
key: string;
|
|
8
|
-
data:
|
|
9
|
-
}[], scales: StreamScales, xGet: (d:
|
|
9
|
+
data: Datum[];
|
|
10
|
+
}[], scales: StreamScales, xGet: (d: Datum) => number, yGet: (d: Datum) => number, styleFn: (group: string, sampleDatum?: Datum) => Style, normalize?: boolean, curve?: CurveType): {
|
|
10
11
|
nodes: AreaSceneNode[];
|
|
11
12
|
stackedTops: StackedTops;
|
|
12
13
|
};
|
|
13
|
-
export declare function buildPointNode(datum:
|
|
14
|
+
export declare function buildPointNode(datum: Datum, scales: StreamScales, xGet: (d: Datum) => number, yGet: (d: Datum) => number, r: number, style: Style, pointId?: string): PointSceneNode | null;
|
|
14
15
|
export declare function buildRectNode(x: number, y: number, w: number, h: number, style: Style, datum: any, group?: string): RectSceneNode;
|
|
15
16
|
export declare function buildHeatcellNode(x: number, y: number, w: number, h: number, fill: string, datum: any, options?: {
|
|
16
17
|
value?: number;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import type { StreamGeoFrameProps, StreamGeoFrameHandle } from "./geoTypes";
|
|
3
|
-
declare const StreamGeoFrame: React.ForwardRefExoticComponent<StreamGeoFrameProps<
|
|
4
|
+
declare const StreamGeoFrame: React.ForwardRefExoticComponent<StreamGeoFrameProps<Datum> & React.RefAttributes<StreamGeoFrameHandle>>;
|
|
4
5
|
export default StreamGeoFrame;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import type { StreamNetworkFrameProps, StreamNetworkFrameHandle } from "./networkTypes";
|
|
3
|
-
declare const StreamNetworkFrame: React.ForwardRefExoticComponent<StreamNetworkFrameProps<
|
|
4
|
+
declare const StreamNetworkFrame: React.ForwardRefExoticComponent<StreamNetworkFrameProps<Datum> & React.RefAttributes<StreamNetworkFrameHandle>>;
|
|
4
5
|
export default StreamNetworkFrame;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import type { StreamOrdinalFrameProps, StreamOrdinalFrameHandle } from "./ordinalTypes";
|
|
3
|
-
declare const StreamOrdinalFrame: React.ForwardRefExoticComponent<StreamOrdinalFrameProps<
|
|
4
|
+
declare const StreamOrdinalFrame: React.ForwardRefExoticComponent<StreamOrdinalFrameProps<Datum> & React.RefAttributes<StreamOrdinalFrameHandle<Datum>>>;
|
|
4
5
|
export default StreamOrdinalFrame;
|
|
@@ -1,4 +1,22 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import type { StreamXYFrameProps, StreamXYFrameHandle } from "./types";
|
|
3
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Append a 2-char hex alpha to an existing CSS color, returning a valid
|
|
6
|
+
* CSS color string. The naive `${color}${alpha}` concatenation only works
|
|
7
|
+
* when `color` is a 6-char `#rrggbb`; shorthand `#rgb` produces the
|
|
8
|
+
* invalid 5-char `#rgbXX`, which `ctx.strokeStyle`/`fillStyle` silently
|
|
9
|
+
* rejects (falling back to `#000000` — black, invisible on dark themes).
|
|
10
|
+
* The /cookbook/marginal-graphics crosshair invisibility was caused
|
|
11
|
+
* precisely by `--semiotic-text-secondary: "#aaa"` hitting this path.
|
|
12
|
+
*
|
|
13
|
+
* Handles:
|
|
14
|
+
* • 3-char hex (`#abc`) → expanded to 6-char then concatenated
|
|
15
|
+
* • 6-char hex (`#aabbcc`) → concatenated directly
|
|
16
|
+
* • `rgb(...)` → repacked as `rgba(..., a)` with numeric alpha
|
|
17
|
+
* Any other form (named colors, hsl(), oklch(), etc.) falls back to the
|
|
18
|
+
* raw color without alpha — degrades gracefully.
|
|
19
|
+
*/
|
|
20
|
+
export declare function withAlpha(color: string, alphaHex: string): string;
|
|
21
|
+
declare const StreamXYFrame: React.ForwardRefExoticComponent<StreamXYFrameProps<Datum> & React.RefAttributes<StreamXYFrameHandle<Datum>>>;
|
|
4
22
|
export default StreamXYFrame;
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* XYBrushOverlay — d3-brush SVG overlay for XY frames.
|
|
3
|
-
*
|
|
4
|
-
* Renders a transparent SVG positioned above the canvas. Supports x, y, and
|
|
5
|
-
* xy brush dimensions, bin snapping, and streaming brush tracking (shrinks/
|
|
6
|
-
* clears the brush as data scrolls past the selected range).
|
|
7
|
-
*
|
|
8
|
-
* Key design decisions:
|
|
9
|
-
* - d3-brush lifecycle depends on [width, height, dimension, snap, binSize, snapDuring]
|
|
10
|
-
* only — scales and binBoundaries are read from refs to avoid teardown mid-drag.
|
|
11
|
-
* - Data-driven snapping (binBoundaries) uses binary search to snap to actual bin
|
|
12
|
-
* edges. Falls back to uniform grid math (binSize) when no boundaries are provided.
|
|
13
|
-
* - Bin snapping applies on "end" events by default. Set snapDuring=true to also
|
|
14
|
-
* snap during drag (the "brush" event).
|
|
15
|
-
* - Streaming tracking guards against y-only dimension (no x-domain to track).
|
|
16
|
-
* - isProgrammaticMoveRef prevents re-entrant brush events from .move() calls.
|
|
17
|
-
*
|
|
18
|
-
* Consumed by: StreamXYFrame (rendered when brush prop is set).
|
|
19
|
-
*/
|
|
20
|
-
import * as React from "react";
|
|
21
1
|
import type { StreamScales } from "./types";
|
|
22
2
|
export interface XYBrushOverlayProps {
|
|
23
3
|
width: number;
|
|
@@ -44,4 +24,4 @@ export interface XYBrushOverlayProps {
|
|
|
44
24
|
snapDuring?: boolean;
|
|
45
25
|
streaming?: boolean;
|
|
46
26
|
}
|
|
47
|
-
export declare function XYBrushOverlay({ width, height, totalWidth, totalHeight, margin, dimension, scales, onBrush, binSize, snap, binBoundaries, snapDuring, streaming }: XYBrushOverlayProps):
|
|
27
|
+
export declare function XYBrushOverlay({ width, height, totalWidth, totalHeight, margin, dimension, scales, onBrush, binSize, snap, binBoundaries, snapDuring, streaming }: XYBrushOverlayProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Dev-mode helper that warns when user callbacks access properties that exist
|
|
3
|
-
* on `.data` but not on the RealtimeNode/RealtimeEdge wrapper.
|
|
4
|
-
*
|
|
5
|
-
* Common pitfall:
|
|
6
|
-
* nodeStyle={(d) => ({ fill: d.category })} // undefined!
|
|
7
|
-
* nodeStyle={(d) => ({ fill: d.data?.category })} // correct
|
|
8
|
-
*
|
|
9
|
-
* In production, this is a no-op passthrough.
|
|
10
|
-
*/
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
11
2
|
export declare function wrapWithDataHint<T extends {
|
|
12
|
-
data?:
|
|
3
|
+
data?: Datum;
|
|
13
4
|
}>(datum: T, callbackName: string): T;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { GeoProjection, GeoPath, GeoPermissibleObjects } from "d3-geo";
|
|
3
|
-
import type { Style, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, PointSceneNode, LineSceneNode } from "./types";
|
|
3
|
+
import type { Style, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, PointSceneNode, LineSceneNode, ThemeSemanticColors } from "./types";
|
|
4
|
+
import type { AnimateProp } from "./pipelineTransitionUtils";
|
|
4
5
|
import type { HoverAnnotationConfig, HoverData } from "../realtime/types";
|
|
5
6
|
import type { GeoParticleStyle } from "./GeoParticlePool";
|
|
7
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
6
8
|
export type ProjectionProp = GeoProjection | ProjectionName | ProjectionConfig;
|
|
7
9
|
export type ProjectionName = "mercator" | "equalEarth" | "albersUsa" | "orthographic" | "naturalEarth" | "equirectangular";
|
|
8
10
|
export interface ProjectionConfig {
|
|
@@ -20,8 +22,8 @@ export interface GraticuleConfig {
|
|
|
20
22
|
}
|
|
21
23
|
export interface DistanceCartogramConfig {
|
|
22
24
|
center: string;
|
|
23
|
-
centerAccessor?: string | ((d:
|
|
24
|
-
costAccessor: string | ((d:
|
|
25
|
+
centerAccessor?: string | ((d: Datum) => string);
|
|
26
|
+
costAccessor: string | ((d: Datum) => number);
|
|
25
27
|
strength?: number;
|
|
26
28
|
lineMode?: "straight" | "fractional";
|
|
27
29
|
}
|
|
@@ -58,27 +60,35 @@ export interface GeoPipelineConfig {
|
|
|
58
60
|
projectionExtent?: [[number, number], [number, number]];
|
|
59
61
|
/** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
|
|
60
62
|
fitPadding?: number;
|
|
61
|
-
xAccessor?: string | ((d:
|
|
62
|
-
yAccessor?: string | ((d:
|
|
63
|
-
lineDataAccessor?: string | ((d:
|
|
63
|
+
xAccessor?: string | ((d: Datum) => number);
|
|
64
|
+
yAccessor?: string | ((d: Datum) => number);
|
|
65
|
+
lineDataAccessor?: string | ((d: Datum) => any[]);
|
|
64
66
|
lineType?: "geo" | "line";
|
|
65
67
|
/** Flow rendering style: "basic" (straight/great-circle), "offset" (bidirectional offset), "arc" (curved arcs) @default "basic" */
|
|
66
68
|
flowStyle?: "basic" | "offset" | "arc";
|
|
67
|
-
areaStyle?: Style | ((d:
|
|
68
|
-
pointStyle?: (d:
|
|
69
|
+
areaStyle?: Style | ((d: Datum) => Style);
|
|
70
|
+
pointStyle?: (d: Datum) => Style & {
|
|
69
71
|
r?: number;
|
|
70
72
|
};
|
|
71
73
|
lineStyle?: Style | ((d: any, group?: string) => Style);
|
|
72
74
|
colorScheme?: string | string[];
|
|
75
|
+
/** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
|
|
76
|
+
themeSemantic?: ThemeSemanticColors;
|
|
77
|
+
/** Theme sequential scheme name — fallback for ChoroplethMap when colorScheme is not set. */
|
|
78
|
+
themeSequential?: string;
|
|
79
|
+
/** Theme diverging scheme name — available for geo consumers that need midpoint encodings. */
|
|
80
|
+
themeDiverging?: string;
|
|
73
81
|
graticule?: boolean | GraticuleConfig;
|
|
74
82
|
projectionTransform?: DistanceCartogramConfig;
|
|
75
83
|
decay?: DecayConfig;
|
|
76
84
|
pulse?: PulseConfig;
|
|
77
85
|
transition?: TransitionConfig;
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
/** Whether to animate elements on first render */
|
|
87
|
+
introAnimation?: boolean;
|
|
88
|
+
annotations?: Datum[];
|
|
89
|
+
pointIdAccessor?: string | ((d: Datum) => string);
|
|
80
90
|
}
|
|
81
|
-
export interface StreamGeoFrameProps<T =
|
|
91
|
+
export interface StreamGeoFrameProps<T = Datum> {
|
|
82
92
|
projection: ProjectionProp;
|
|
83
93
|
projectionExtent?: [[number, number], [number, number]];
|
|
84
94
|
/** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
|
|
@@ -131,8 +141,8 @@ export interface StreamGeoFrameProps<T = Record<string, any>> {
|
|
|
131
141
|
className?: string;
|
|
132
142
|
background?: string;
|
|
133
143
|
runtimeMode?: "bounded" | "streaming";
|
|
134
|
-
areaStyle?: Style | ((d:
|
|
135
|
-
pointStyle?: (d:
|
|
144
|
+
areaStyle?: Style | ((d: Datum) => Style);
|
|
145
|
+
pointStyle?: (d: Datum) => Style & {
|
|
136
146
|
r?: number;
|
|
137
147
|
};
|
|
138
148
|
lineStyle?: Style | ((d: any, group?: string) => Style);
|
|
@@ -142,10 +152,14 @@ export interface StreamGeoFrameProps<T = Record<string, any>> {
|
|
|
142
152
|
tooltipContent?: (d: HoverData) => ReactNode;
|
|
143
153
|
customClickBehavior?: (d: HoverData | null) => void;
|
|
144
154
|
customHoverBehavior?: (d: HoverData | null) => void;
|
|
145
|
-
annotations?:
|
|
155
|
+
annotations?: Datum[];
|
|
146
156
|
decay?: DecayConfig;
|
|
147
157
|
pulse?: PulseConfig;
|
|
148
158
|
transition?: TransitionConfig;
|
|
159
|
+
/** Declarative animation: `true` for defaults (300ms ease-out), or config object.
|
|
160
|
+
* When enabled, charts animate on first render (intro) and on data change.
|
|
161
|
+
* Set `{ intro: false }` to disable the intro animation. */
|
|
162
|
+
animate?: AnimateProp;
|
|
149
163
|
staleness?: StalenessConfig;
|
|
150
164
|
backgroundGraphics?: ReactNode;
|
|
151
165
|
foregroundGraphics?: ReactNode;
|
|
@@ -169,10 +183,10 @@ export interface StreamGeoFrameProps<T = Record<string, any>> {
|
|
|
169
183
|
summary?: string;
|
|
170
184
|
}
|
|
171
185
|
export interface StreamGeoFrameHandle {
|
|
172
|
-
push(datum:
|
|
173
|
-
pushMany(data:
|
|
186
|
+
push(datum: Datum): void;
|
|
187
|
+
pushMany(data: Datum[]): void;
|
|
174
188
|
/** Remove points by ID. Requires pointIdAccessor. */
|
|
175
|
-
removePoint(id: string | string[]):
|
|
189
|
+
removePoint(id: string | string[]): Datum[];
|
|
176
190
|
clear(): void;
|
|
177
191
|
getProjection(): GeoProjection | null;
|
|
178
192
|
getGeoPath(): GeoPath<any, GeoPermissibleObjects> | null;
|
|
@@ -188,5 +202,5 @@ export interface StreamGeoFrameHandle {
|
|
|
188
202
|
/** Animate back to initial view */
|
|
189
203
|
resetZoom(): void;
|
|
190
204
|
/** Get current data points */
|
|
191
|
-
getData():
|
|
205
|
+
getData(): Datum[];
|
|
192
206
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
1
2
|
/**
|
|
2
3
|
* Shared hover data utilities for stream frames.
|
|
3
4
|
*
|
|
@@ -7,13 +8,25 @@
|
|
|
7
8
|
* property flattening that are handled at the call site.
|
|
8
9
|
*/
|
|
9
10
|
import type { HoverData } from "../realtime/types";
|
|
11
|
+
/**
|
|
12
|
+
* Minimal shape a Stream Frame's internal hover handler needs from a pointer
|
|
13
|
+
* event. React.MouseEvent satisfies this structurally, as does the plain
|
|
14
|
+
* `{clientX, clientY}` object the rAF-coalescing path synthesizes. Using this
|
|
15
|
+
* narrower type on `hoverHandlerRef` (instead of `React.MouseEvent`) prevents
|
|
16
|
+
* downstream code from reading event fields — `currentTarget`, `target`,
|
|
17
|
+
* `preventDefault` — that wouldn't survive the coalescing cast.
|
|
18
|
+
*/
|
|
19
|
+
export interface HoverPointerCoords {
|
|
20
|
+
clientX: number;
|
|
21
|
+
clientY: number;
|
|
22
|
+
}
|
|
10
23
|
/**
|
|
11
24
|
* Spread raw datum properties onto HoverData if it's a non-null,
|
|
12
25
|
* non-array object. Class instances (Date, etc.) are included —
|
|
13
26
|
* this matches the historical behavior where all datum fields are
|
|
14
27
|
* accessible directly on the hover object (d.fieldName).
|
|
15
28
|
*/
|
|
16
|
-
export declare function spreadDatum(rawDatum: any):
|
|
29
|
+
export declare function spreadDatum(rawDatum: any): Datum;
|
|
17
30
|
/**
|
|
18
31
|
* Build a HoverData object from a raw datum and pixel coordinates.
|
|
19
32
|
* Spreads plain-object datum properties for backwards compatibility
|
|
@@ -13,17 +13,18 @@
|
|
|
13
13
|
* Consumed by: hierarchyLayoutPlugin.ts (buildScene dispatcher)
|
|
14
14
|
*/
|
|
15
15
|
import type { NetworkPipelineConfig, NetworkSceneNode, NetworkSceneEdge, NetworkLabel, RealtimeNode, RealtimeEdge } from "../networkTypes";
|
|
16
|
-
|
|
16
|
+
import type { Style } from "../types";
|
|
17
|
+
export declare function buildTreeScene(nodes: RealtimeNode[], edges: RealtimeEdge[], config: NetworkPipelineConfig, size: [number, number], nodeStyleFn: (d: RealtimeNode) => Style, edgeStyleFn: (d: RealtimeEdge) => Style): {
|
|
17
18
|
sceneNodes: NetworkSceneNode[];
|
|
18
19
|
sceneEdges: NetworkSceneEdge[];
|
|
19
20
|
labels: NetworkLabel[];
|
|
20
21
|
};
|
|
21
|
-
export declare function buildRectScene(nodes: RealtimeNode[], config: NetworkPipelineConfig, size: [number, number], nodeStyleFn: (d:
|
|
22
|
+
export declare function buildRectScene(nodes: RealtimeNode[], config: NetworkPipelineConfig, size: [number, number], nodeStyleFn: (d: RealtimeNode) => Style): {
|
|
22
23
|
sceneNodes: NetworkSceneNode[];
|
|
23
24
|
sceneEdges: NetworkSceneEdge[];
|
|
24
25
|
labels: NetworkLabel[];
|
|
25
26
|
};
|
|
26
|
-
export declare function buildCircleScene(nodes: RealtimeNode[], config: NetworkPipelineConfig, size: [number, number], nodeStyleFn: (d:
|
|
27
|
+
export declare function buildCircleScene(nodes: RealtimeNode[], config: NetworkPipelineConfig, size: [number, number], nodeStyleFn: (d: RealtimeNode) => Style): {
|
|
27
28
|
sceneNodes: NetworkSceneNode[];
|
|
28
29
|
sceneEdges: NetworkSceneEdge[];
|
|
29
30
|
labels: NetworkLabel[];
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* Consumed by: hierarchyLayoutPlugin.ts, hierarchySceneBuilders.ts
|
|
8
8
|
*/
|
|
9
9
|
import type { NetworkPipelineConfig } from "../networkTypes";
|
|
10
|
+
import type { Datum } from "../../charts/shared/datumTypes";
|
|
10
11
|
/** Depth-based color palette shared across all hierarchy scene builders */
|
|
11
12
|
export declare const DEPTH_PALETTE: string[];
|
|
12
13
|
/**
|
|
@@ -19,7 +20,7 @@ export declare function parseColor(color: string): [number, number, number];
|
|
|
19
20
|
* Uses perceived luminance (ITU-R BT.601).
|
|
20
21
|
*/
|
|
21
22
|
export declare function contrastTextColor(bgColor: string): string;
|
|
22
|
-
export declare function resolveChildrenAccessor(accessor: string | ((d:
|
|
23
|
+
export declare function resolveChildrenAccessor(accessor: string | ((d: Datum) => any[]) | undefined): ((d: Datum) => any[]) | undefined;
|
|
23
24
|
export declare function resolveNodeId(d: any, config: NetworkPipelineConfig, index: number): string;
|
|
24
|
-
export declare function resolveLabelFn(nodeLabel: string | ((d:
|
|
25
|
-
export declare function resolveDefaultNodeSize(nodeSize: number | string | ((d:
|
|
25
|
+
export declare function resolveLabelFn(nodeLabel: string | ((d: Datum) => string) | undefined): ((d: Datum) => string) | null;
|
|
26
|
+
export declare function resolveDefaultNodeSize(nodeSize: number | string | ((d: Datum) => number) | undefined): number;
|
|
@@ -2,7 +2,9 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
import type { OnObservationCallback } from "../store/ObservationStore";
|
|
3
3
|
import type { HoverData, AnnotationContext } from "../realtime/types";
|
|
4
4
|
import type { LegendGroup } from "../types/legendTypes";
|
|
5
|
-
import type { Style, DecayConfig, PulseConfig, StalenessConfig } from "./types";
|
|
5
|
+
import type { Style, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors } from "./types";
|
|
6
|
+
import type { AnimateProp } from "./pipelineTransitionUtils";
|
|
7
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
6
8
|
export interface TensionConfig {
|
|
7
9
|
weightChange: number;
|
|
8
10
|
newEdge: number;
|
|
@@ -31,7 +33,7 @@ export interface RealtimeNode {
|
|
|
31
33
|
_targetY1?: number;
|
|
32
34
|
value: number;
|
|
33
35
|
depth?: number;
|
|
34
|
-
data?:
|
|
36
|
+
data?: Datum;
|
|
35
37
|
createdByFrame?: boolean;
|
|
36
38
|
sourceLinks?: RealtimeEdge[];
|
|
37
39
|
targetLinks?: RealtimeEdge[];
|
|
@@ -52,11 +54,13 @@ export interface RealtimeEdge {
|
|
|
52
54
|
_targetY0?: number;
|
|
53
55
|
_targetY1?: number;
|
|
54
56
|
_targetSankeyWidth?: number;
|
|
57
|
+
/** Set during intro animation to allow edge interpolation from width 0 */
|
|
58
|
+
_introFromZero?: boolean;
|
|
55
59
|
direction?: string;
|
|
56
60
|
circular?: boolean;
|
|
57
61
|
circularPathData?: any;
|
|
58
62
|
bezier?: BezierCache;
|
|
59
|
-
data?:
|
|
63
|
+
data?: Datum;
|
|
60
64
|
/** Unique key for this edge (supports parallel edges between same node pair) */
|
|
61
65
|
_edgeKey?: string;
|
|
62
66
|
_pulseIntensity?: number;
|
|
@@ -208,6 +212,9 @@ export interface NetworkBezierEdge {
|
|
|
208
212
|
datum: any;
|
|
209
213
|
_pulseIntensity?: number;
|
|
210
214
|
_pulseColor?: string;
|
|
215
|
+
/** Lazily-built Path2D for hit testing; invalidated when pathD changes. */
|
|
216
|
+
_cachedPath2D?: Path2D;
|
|
217
|
+
_cachedPath2DSource?: string;
|
|
211
218
|
}
|
|
212
219
|
/** Ribbon edge — used by chord */
|
|
213
220
|
export interface NetworkRibbonEdge {
|
|
@@ -217,6 +224,8 @@ export interface NetworkRibbonEdge {
|
|
|
217
224
|
datum: any;
|
|
218
225
|
_pulseIntensity?: number;
|
|
219
226
|
_pulseColor?: string;
|
|
227
|
+
_cachedPath2D?: Path2D;
|
|
228
|
+
_cachedPath2DSource?: string;
|
|
220
229
|
}
|
|
221
230
|
/** Curved edge — used by tree, cluster */
|
|
222
231
|
export interface NetworkCurvedEdge {
|
|
@@ -226,6 +235,8 @@ export interface NetworkCurvedEdge {
|
|
|
226
235
|
datum: any;
|
|
227
236
|
_pulseIntensity?: number;
|
|
228
237
|
_pulseColor?: string;
|
|
238
|
+
_cachedPath2D?: Path2D;
|
|
239
|
+
_cachedPath2DSource?: string;
|
|
229
240
|
}
|
|
230
241
|
export type NetworkSceneNode = NetworkCircleNode | NetworkRectNode | NetworkArcNode;
|
|
231
242
|
export type NetworkSceneEdge = NetworkLineEdge | NetworkBezierEdge | NetworkRibbonEdge | NetworkCurvedEdge;
|
|
@@ -289,14 +300,14 @@ export interface ThresholdAlertConfig {
|
|
|
289
300
|
}
|
|
290
301
|
export interface NetworkPipelineConfig {
|
|
291
302
|
chartType: NetworkChartType;
|
|
292
|
-
nodeIDAccessor?: string | ((d:
|
|
293
|
-
sourceAccessor?: string | ((d:
|
|
294
|
-
targetAccessor?: string | ((d:
|
|
295
|
-
valueAccessor?: string | ((d:
|
|
303
|
+
nodeIDAccessor?: string | ((d: Datum) => string);
|
|
304
|
+
sourceAccessor?: string | ((d: Datum) => string);
|
|
305
|
+
targetAccessor?: string | ((d: Datum) => string);
|
|
306
|
+
valueAccessor?: string | ((d: Datum) => number);
|
|
296
307
|
/** Edge ID accessor for removeEdge(edgeId) — enables single-ID edge removal */
|
|
297
|
-
edgeIdAccessor?: string | ((d:
|
|
298
|
-
childrenAccessor?: string | ((d:
|
|
299
|
-
hierarchySum?: string | ((d:
|
|
308
|
+
edgeIdAccessor?: string | ((d: Datum) => string);
|
|
309
|
+
childrenAccessor?: string | ((d: Datum) => any[]);
|
|
310
|
+
hierarchySum?: string | ((d: Datum) => number);
|
|
300
311
|
orientation?: "horizontal" | "vertical";
|
|
301
312
|
nodeAlign?: "justify" | "left" | "right" | "center";
|
|
302
313
|
nodePaddingRatio?: number;
|
|
@@ -314,20 +325,27 @@ export interface NetworkPipelineConfig {
|
|
|
314
325
|
tensionConfig?: TensionConfig;
|
|
315
326
|
showParticles?: boolean;
|
|
316
327
|
particleStyle?: ParticleStyle;
|
|
317
|
-
nodeStyle?: (d:
|
|
318
|
-
edgeStyle?: (d:
|
|
319
|
-
nodeLabel?: string | ((d:
|
|
328
|
+
nodeStyle?: (d: Datum) => Datum;
|
|
329
|
+
edgeStyle?: (d: Datum) => Datum;
|
|
330
|
+
nodeLabel?: string | ((d: Datum) => string);
|
|
320
331
|
showLabels?: boolean;
|
|
321
332
|
labelMode?: "leaf" | "parent" | "all";
|
|
322
|
-
colorBy?: string | ((d:
|
|
333
|
+
colorBy?: string | ((d: Datum) => string | number);
|
|
323
334
|
colorScheme?: string | string[];
|
|
324
|
-
|
|
335
|
+
/** Theme categorical palette — used as fallback when colorScheme is not an explicit array */
|
|
336
|
+
themeCategorical?: string[];
|
|
337
|
+
/** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
|
|
338
|
+
themeSemantic?: ThemeSemanticColors;
|
|
339
|
+
edgeColorBy?: "source" | "target" | "gradient" | ((d: Datum) => string);
|
|
325
340
|
edgeOpacity?: number;
|
|
326
341
|
colorByDepth?: boolean;
|
|
327
|
-
nodeSize?: number | string | ((d:
|
|
342
|
+
nodeSize?: number | string | ((d: Datum) => number);
|
|
328
343
|
nodeSizeRange?: [number, number];
|
|
329
344
|
decay?: DecayConfig;
|
|
330
345
|
pulse?: PulseConfig;
|
|
346
|
+
transition?: TransitionConfig;
|
|
347
|
+
/** Whether to animate elements on first render (nodes scale up, edges fade in) */
|
|
348
|
+
introAnimation?: boolean;
|
|
331
349
|
staleness?: StalenessConfig;
|
|
332
350
|
thresholds?: ThresholdAlertConfig;
|
|
333
351
|
/** Ring arrangement mode: "flat" (all children in one ring), "solar" (one per ring),
|
|
@@ -364,7 +382,7 @@ export interface NetworkPipelineConfig {
|
|
|
364
382
|
y: number;
|
|
365
383
|
}>;
|
|
366
384
|
}
|
|
367
|
-
export interface StreamNetworkFrameProps<T =
|
|
385
|
+
export interface StreamNetworkFrameProps<T = Datum> {
|
|
368
386
|
chartType: NetworkChartType;
|
|
369
387
|
nodes?: T[];
|
|
370
388
|
edges?: T[] | T;
|
|
@@ -376,7 +394,7 @@ export interface StreamNetworkFrameProps<T = Record<string, any>> {
|
|
|
376
394
|
targetAccessor?: string | ((d: T) => string);
|
|
377
395
|
valueAccessor?: string | ((d: T) => number);
|
|
378
396
|
/** Edge ID accessor for removeEdge(edgeId) single-ID removal */
|
|
379
|
-
edgeIdAccessor?: string | ((d:
|
|
397
|
+
edgeIdAccessor?: string | ((d: Datum) => string);
|
|
380
398
|
childrenAccessor?: string | ((d: T) => T[]);
|
|
381
399
|
hierarchySum?: string | ((d: T) => number);
|
|
382
400
|
orientation?: "horizontal" | "vertical";
|
|
@@ -396,16 +414,16 @@ export interface StreamNetworkFrameProps<T = Record<string, any>> {
|
|
|
396
414
|
tensionConfig?: Partial<TensionConfig>;
|
|
397
415
|
showParticles?: boolean;
|
|
398
416
|
particleStyle?: ParticleStyle;
|
|
399
|
-
nodeStyle?: (d:
|
|
400
|
-
edgeStyle?: (d:
|
|
401
|
-
colorBy?: string | ((d:
|
|
417
|
+
nodeStyle?: (d: Datum) => Datum;
|
|
418
|
+
edgeStyle?: (d: Datum) => Datum;
|
|
419
|
+
colorBy?: string | ((d: Datum) => string | number);
|
|
402
420
|
colorScheme?: string | string[];
|
|
403
|
-
edgeColorBy?: "source" | "target" | "gradient" | ((d:
|
|
421
|
+
edgeColorBy?: "source" | "target" | "gradient" | ((d: Datum) => string);
|
|
404
422
|
edgeOpacity?: number;
|
|
405
423
|
colorByDepth?: boolean;
|
|
406
|
-
nodeSize?: number | string | ((d:
|
|
424
|
+
nodeSize?: number | string | ((d: Datum) => number);
|
|
407
425
|
nodeSizeRange?: [number, number];
|
|
408
|
-
nodeLabel?: string | ((d:
|
|
426
|
+
nodeLabel?: string | ((d: Datum) => string);
|
|
409
427
|
showLabels?: boolean;
|
|
410
428
|
labelMode?: "leaf" | "parent" | "all";
|
|
411
429
|
size?: [number, number];
|
|
@@ -428,8 +446,8 @@ export interface StreamNetworkFrameProps<T = Record<string, any>> {
|
|
|
428
446
|
/** Chart instance identifier for observation filtering */
|
|
429
447
|
chartId?: string;
|
|
430
448
|
onTopologyChange?: (nodes: RealtimeNode[], edges: RealtimeEdge[]) => void;
|
|
431
|
-
annotations?:
|
|
432
|
-
svgAnnotationRules?: (annotation:
|
|
449
|
+
annotations?: Datum[];
|
|
450
|
+
svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => ReactNode;
|
|
433
451
|
legend?: ReactNode | {
|
|
434
452
|
legendGroups: LegendGroup[];
|
|
435
453
|
};
|
|
@@ -447,6 +465,11 @@ export interface StreamNetworkFrameProps<T = Record<string, any>> {
|
|
|
447
465
|
backgroundGraphics?: ReactNode;
|
|
448
466
|
decay?: DecayConfig;
|
|
449
467
|
pulse?: PulseConfig;
|
|
468
|
+
transition?: TransitionConfig;
|
|
469
|
+
/** Declarative animation: `true` for defaults (300ms ease-out), or config object.
|
|
470
|
+
* When enabled, charts animate on first render (intro) and on data change.
|
|
471
|
+
* Set `{ intro: false }` to disable the intro animation. */
|
|
472
|
+
animate?: AnimateProp;
|
|
450
473
|
staleness?: StalenessConfig;
|
|
451
474
|
thresholds?: ThresholdAlertConfig;
|
|
452
475
|
orbitMode?: "flat" | "solar" | "atomic" | number[];
|
|
@@ -472,9 +495,9 @@ export interface StreamNetworkFrameHandle {
|
|
|
472
495
|
/** Remove edges by source+target, or by edge ID when edgeIdAccessor is configured. */
|
|
473
496
|
removeEdge(sourceIdOrEdgeId: string, targetId?: string): boolean;
|
|
474
497
|
/** Update a node's data by ID. Returns previous data. */
|
|
475
|
-
updateNode(id: string, updater: (data:
|
|
498
|
+
updateNode(id: string, updater: (data: Datum) => Datum): Datum | null;
|
|
476
499
|
/** Update all edges between source+target. Returns array of previous data. */
|
|
477
|
-
updateEdge(sourceId: string, targetId: string, updater: (data:
|
|
500
|
+
updateEdge(sourceId: string, targetId: string, updater: (data: Datum) => Datum): Datum[];
|
|
478
501
|
clear(): void;
|
|
479
502
|
getTopology(): {
|
|
480
503
|
nodes: RealtimeNode[];
|
|
@@ -24,4 +24,4 @@ import type { OrdinalSceneContext } from "./types";
|
|
|
24
24
|
* - __barFunnelCategory: category key (for multi-category)
|
|
25
25
|
* - __barFunnelLabelX/Y: position for the floating label
|
|
26
26
|
*/
|
|
27
|
-
export declare function buildBarFunnelScene(ctx: OrdinalSceneContext,
|
|
27
|
+
export declare function buildBarFunnelScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { OrdinalSceneNode, OrdinalLayout } from "../ordinalTypes";
|
|
2
2
|
import type { OrdinalSceneContext } from "./types";
|
|
3
|
-
export declare function buildBarScene(ctx: OrdinalSceneContext,
|
|
4
|
-
export declare function buildClusterBarScene(ctx: OrdinalSceneContext,
|
|
3
|
+
export declare function buildBarScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
4
|
+
export declare function buildClusterBarScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ConnectorSceneNode, OrdinalSceneNode, OrdinalLayout } from "../ordinalTypes";
|
|
2
2
|
import type { OrdinalSceneContext } from "./types";
|
|
3
|
-
export declare function buildConnectors(ctx: OrdinalSceneContext, pieceNodes: OrdinalSceneNode[],
|
|
3
|
+
export declare function buildConnectors(ctx: OrdinalSceneContext, pieceNodes: OrdinalSceneNode[], _layout: OrdinalLayout): ConnectorSceneNode[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { OrdinalSceneNode, OrdinalLayout } from "../ordinalTypes";
|
|
2
2
|
import type { OrdinalSceneContext } from "./types";
|
|
3
|
-
export declare function buildPointScene(ctx: OrdinalSceneContext,
|
|
4
|
-
export declare function buildSwarmScene(ctx: OrdinalSceneContext,
|
|
3
|
+
export declare function buildPointScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
4
|
+
export declare function buildSwarmScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { OrdinalSceneNode, OrdinalLayout } from "../ordinalTypes";
|
|
2
2
|
import type { OrdinalSceneContext } from "./types";
|
|
3
|
-
export declare function buildBoxplotScene(ctx: OrdinalSceneContext,
|
|
4
|
-
export declare function buildViolinScene(ctx: OrdinalSceneContext,
|
|
5
|
-
export declare function buildHistogramScene(ctx: OrdinalSceneContext,
|
|
6
|
-
export declare function buildRidgelineScene(ctx: OrdinalSceneContext,
|
|
3
|
+
export declare function buildBoxplotScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
4
|
+
export declare function buildViolinScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
5
|
+
export declare function buildHistogramScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
6
|
+
export declare function buildRidgelineScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
@@ -9,4 +9,4 @@ import type { OrdinalSceneContext } from "./types";
|
|
|
9
9
|
* multiple items with the same subcategory can appear in the same lane —
|
|
10
10
|
* they simply stack sequentially.
|
|
11
11
|
*/
|
|
12
|
-
export declare function buildSwimlaneScene(ctx: OrdinalSceneContext,
|
|
12
|
+
export declare function buildSwimlaneScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { OrdinalSceneNode, OrdinalLayout } from "../ordinalTypes";
|
|
2
2
|
import type { OrdinalSceneContext } from "./types";
|
|
3
|
-
export declare function buildTimelineScene(ctx: OrdinalSceneContext,
|
|
3
|
+
export declare function buildTimelineScene(ctx: OrdinalSceneContext, _layout: OrdinalLayout): OrdinalSceneNode[];
|