semiotic 2.0.3 → 3.0.0-beta.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 +530 -0
- package/README.md +190 -37
- package/ai/cli.js +48 -0
- package/ai/dist/ai/componentRegistry.js +45 -0
- package/ai/dist/ai/mcp-server.js +99 -0
- package/ai/dist/ai/renderHOCToSVG.js +77 -0
- package/ai/dist/src/components/Annotation.js +358 -0
- package/ai/dist/src/components/AnnotationLayer/AnnotationLayer.js +369 -0
- package/ai/dist/src/components/Axis/Axis.js +373 -0
- package/ai/dist/src/components/Axis/axisTitle.js +14 -0
- package/ai/dist/src/components/Axis/index.js +7 -0
- package/ai/dist/src/components/Axis/summaryGraphic.js +37 -0
- package/ai/dist/src/components/Brush.js +84 -0
- package/ai/dist/src/components/DividedLine.js +65 -0
- package/ai/dist/src/components/FacetController.js +259 -0
- package/ai/dist/src/components/Frame.js +139 -0
- package/ai/dist/src/components/InteractionLayer.js +328 -0
- package/ai/dist/src/components/Legend.js +140 -0
- package/ai/dist/src/components/MiniMap.js +75 -0
- package/ai/dist/src/components/MinimapXYFrame.js +99 -0
- package/ai/dist/src/components/NetworkFrame.js +335 -0
- package/ai/dist/src/components/OrdinalFrame.js +437 -0
- package/ai/dist/src/components/ResponsiveFrame.js +68 -0
- package/ai/dist/src/components/ResponsiveMinimapXYFrame.js +11 -0
- package/ai/dist/src/components/ResponsiveNetworkFrame.js +11 -0
- package/ai/dist/src/components/ResponsiveOrdinalFrame.js +11 -0
- package/ai/dist/src/components/ResponsiveXYFrame.js +10 -0
- package/ai/dist/src/components/SparkFrame.js +113 -0
- package/ai/dist/src/components/SparkNetworkFrame.js +11 -0
- package/ai/dist/src/components/SparkOrdinalFrame.js +11 -0
- package/ai/dist/src/components/SparkXYFrame.js +11 -0
- package/ai/dist/src/components/Tooltip/Tooltip.js +304 -0
- package/ai/dist/src/components/TooltipPositioner/index.js +132 -0
- package/ai/dist/src/components/VisualizationLayer.js +395 -0
- package/ai/dist/src/components/XYFrame.js +524 -0
- package/ai/dist/src/components/annotationLayerBehavior/annotationHandling.js +73 -0
- package/ai/dist/src/components/annotationLayerBehavior/d3labeler.js +254 -0
- package/ai/dist/src/components/annotationRules/baseRules.js +150 -0
- package/ai/dist/src/components/annotationRules/networkframeRules.js +198 -0
- package/ai/dist/src/components/annotationRules/orframeRules.js +695 -0
- package/ai/dist/src/components/annotationRules/xyframeRules.js +299 -0
- package/ai/dist/src/components/batchWork.js +35 -0
- package/ai/dist/src/components/charts/index.js +96 -0
- package/ai/dist/src/components/charts/network/ChordDiagram.js +245 -0
- package/ai/dist/src/components/charts/network/CirclePack.js +177 -0
- package/ai/dist/src/components/charts/network/ForceDirectedGraph.js +248 -0
- package/ai/dist/src/components/charts/network/SankeyDiagram.js +305 -0
- package/ai/dist/src/components/charts/network/TreeDiagram.js +268 -0
- package/ai/dist/src/components/charts/network/Treemap.js +177 -0
- package/ai/dist/src/components/charts/ordinal/BarChart.js +191 -0
- package/ai/dist/src/components/charts/ordinal/BoxPlot.js +235 -0
- package/ai/dist/src/components/charts/ordinal/DonutChart.js +178 -0
- package/ai/dist/src/components/charts/ordinal/DotPlot.js +194 -0
- package/ai/dist/src/components/charts/ordinal/GroupedBarChart.js +194 -0
- package/ai/dist/src/components/charts/ordinal/PieChart.js +155 -0
- package/ai/dist/src/components/charts/ordinal/StackedBarChart.js +213 -0
- package/ai/dist/src/components/charts/ordinal/SwarmPlot.js +219 -0
- package/ai/dist/src/components/charts/realtime/RealtimeBarChart.js +91 -0
- package/ai/dist/src/components/charts/realtime/RealtimeLineChart.js +73 -0
- package/ai/dist/src/components/charts/realtime/RealtimeSwarmChart.js +85 -0
- package/ai/dist/src/components/charts/realtime/RealtimeWaterfallChart.js +86 -0
- package/ai/dist/src/components/charts/shared/ChartError.js +72 -0
- package/ai/dist/src/components/charts/shared/colorUtils.js +138 -0
- package/ai/dist/src/components/charts/shared/formatUtils.js +176 -0
- package/ai/dist/src/components/charts/shared/hooks.js +49 -0
- package/ai/dist/src/components/charts/shared/legendUtils.js +57 -0
- package/ai/dist/src/components/charts/shared/types.js +2 -0
- package/ai/dist/src/components/charts/shared/validateChartData.js +82 -0
- package/ai/dist/src/components/charts/shared/validateProps.js +640 -0
- package/ai/dist/src/components/charts/xy/AreaChart.js +220 -0
- package/ai/dist/src/components/charts/xy/BubbleChart.js +222 -0
- package/ai/dist/src/components/charts/xy/Heatmap.js +230 -0
- package/ai/dist/src/components/charts/xy/LineChart.js +302 -0
- package/ai/dist/src/components/charts/xy/Scatterplot.js +136 -0
- package/ai/dist/src/components/charts/xy/StackedAreaChart.js +220 -0
- package/ai/dist/src/components/constants/coordinateNames.js +11 -0
- package/ai/dist/src/components/constants/frame_props.js +251 -0
- package/ai/dist/src/components/constants/jsx.js +71 -0
- package/ai/dist/src/components/data/dataFunctions.js +473 -0
- package/ai/dist/src/components/data/multiAccessorUtils.js +14 -0
- package/ai/dist/src/components/data/networkPipelineCache.js +43 -0
- package/ai/dist/src/components/data/ordinalPipelineCache.js +53 -0
- package/ai/dist/src/components/data/unflowedFunctions.js +5 -0
- package/ai/dist/src/components/data/xyPipelineCache.js +49 -0
- package/ai/dist/src/components/generic_utilities/functions.js +5 -0
- package/ai/dist/src/components/index.js +145 -0
- package/ai/dist/src/components/interactionLayerBehavior/InteractionCanvas.js +128 -0
- package/ai/dist/src/components/processing/InteractionItems.js +223 -0
- package/ai/dist/src/components/processing/hierarchyUtils.js +104 -0
- package/ai/dist/src/components/processing/layouts/chordLayout.js +58 -0
- package/ai/dist/src/components/processing/layouts/forceLayout.js +142 -0
- package/ai/dist/src/components/processing/layouts/hierarchyLayout.js +31 -0
- package/ai/dist/src/components/processing/layouts/index.js +32 -0
- package/ai/dist/src/components/processing/layouts/sankeyLayout.js +96 -0
- package/ai/dist/src/components/processing/layouts/simpleLayouts.js +34 -0
- package/ai/dist/src/components/processing/layouts/types.js +2 -0
- package/ai/dist/src/components/processing/network.js +771 -0
- package/ai/dist/src/components/processing/networkDefaults.js +39 -0
- package/ai/dist/src/components/processing/networkLayoutHelpers.js +98 -0
- package/ai/dist/src/components/processing/ordinal.js +889 -0
- package/ai/dist/src/components/processing/ordinalConstants.js +23 -0
- package/ai/dist/src/components/processing/ordinalOverlays.js +88 -0
- package/ai/dist/src/components/processing/ordinalRenderPipeline.js +196 -0
- package/ai/dist/src/components/processing/xyDrawing.js +484 -0
- package/ai/dist/src/components/realtime/BinAccumulator.js +36 -0
- package/ai/dist/src/components/realtime/IncrementalExtent.js +55 -0
- package/ai/dist/src/components/realtime/RealtimeFrame.js +710 -0
- package/ai/dist/src/components/realtime/RingBuffer.js +104 -0
- package/ai/dist/src/components/realtime/renderers/barRenderer.js +133 -0
- package/ai/dist/src/components/realtime/renderers/candlestickRenderer.js +7 -0
- package/ai/dist/src/components/realtime/renderers/lineRenderer.js +164 -0
- package/ai/dist/src/components/realtime/renderers/swarmRenderer.js +91 -0
- package/ai/dist/src/components/realtime/renderers/types.js +2 -0
- package/ai/dist/src/components/realtime/renderers/waterfallRenderer.js +163 -0
- package/ai/dist/src/components/realtime/types.js +2 -0
- package/ai/dist/src/components/semiotic-ai.js +66 -0
- package/ai/dist/src/components/semiotic-network.js +30 -0
- package/ai/dist/src/components/semiotic-ordinal.js +28 -0
- package/ai/dist/src/components/semiotic-realtime.js +37 -0
- package/ai/dist/src/components/semiotic-server.js +8 -0
- package/ai/dist/src/components/semiotic-xy.js +41 -0
- package/ai/dist/src/components/semiotic.js +101 -0
- package/ai/dist/src/components/server/renderToStaticSVG.js +392 -0
- package/ai/dist/src/components/store/TooltipStore.js +13 -0
- package/ai/dist/src/components/store/createStore.js +77 -0
- package/ai/dist/src/components/svg/SvgHelper.js +308 -0
- package/ai/dist/src/components/svg/areaDrawing.js +312 -0
- package/ai/dist/src/components/svg/boxplotRenderer.js +441 -0
- package/ai/dist/src/components/svg/bucketizedRenderer.js +677 -0
- package/ai/dist/src/components/svg/ckbinsRenderer.js +92 -0
- package/ai/dist/src/components/svg/ckmeans.js +238 -0
- package/ai/dist/src/components/svg/contourLayout.js +73 -0
- package/ai/dist/src/components/svg/contourRenderer.js +53 -0
- package/ai/dist/src/components/svg/edgeGenerators.js +181 -0
- package/ai/dist/src/components/svg/frameFunctions.js +579 -0
- package/ai/dist/src/components/svg/graphAlgorithms.js +138 -0
- package/ai/dist/src/components/svg/hexbinLayout.js +163 -0
- package/ai/dist/src/components/svg/lineDrawing.js +427 -0
- package/ai/dist/src/components/svg/networkDrawing.js +207 -0
- package/ai/dist/src/components/svg/nodeGenerators.js +131 -0
- package/ai/dist/src/components/svg/pieceDrawing.js +110 -0
- package/ai/dist/src/components/svg/pieceLayouts.js +588 -0
- package/ai/dist/src/components/svg/sankeyLinks.js +143 -0
- package/ai/dist/src/components/svg/summaryAxis.js +48 -0
- package/ai/dist/src/components/svg/summaryLayouts.js +202 -0
- package/ai/dist/src/components/svg/swarmLayout.js +128 -0
- package/ai/dist/src/components/types/annotationTypes.js +2 -0
- package/ai/dist/src/components/types/canvasTypes.js +2 -0
- package/ai/dist/src/components/types/generalTypes.js +2 -0
- package/ai/dist/src/components/types/interactionTypes.js +2 -0
- package/ai/dist/src/components/types/legendTypes.js +2 -0
- package/ai/dist/src/components/types/networkTypes.js +2 -0
- package/ai/dist/src/components/types/ordinalTypes.js +2 -0
- package/ai/dist/src/components/types/xyTypes.js +2 -0
- package/ai/dist/src/components/useBoundingRect.js +24 -0
- package/ai/dist/src/components/useDerivedStateFromProps.js +25 -0
- package/ai/dist/src/components/useLegacyUnmountCallback.js +21 -0
- package/ai/dist/src/components/visualizationLayerBehavior/axis.js +249 -0
- package/ai/dist/src/components/visualizationLayerBehavior/general.js +435 -0
- package/ai/dist/src/setupTests.js +4 -0
- package/ai/examples.md +394 -0
- package/ai/schema.json +1178 -0
- package/ai/system-prompt.md +38 -0
- package/dist/AnnotationLayer/AnnotationLayer.d.ts +0 -1
- package/dist/Axis/axisTitle.d.ts +3 -3
- package/dist/Axis/summaryGraphic.d.ts +1 -1
- package/dist/FacetController.d.ts +1 -1
- package/dist/MinimapXYFrame.d.ts +2 -2
- package/dist/NetworkFrame.d.ts +5 -1
- package/dist/OrdinalFrame.d.ts +5 -1
- package/dist/ResponsiveFrame.d.ts +2 -2
- package/dist/ResponsiveMinimapXYFrame.d.ts +3 -6
- package/dist/ResponsiveNetworkFrame.d.ts +3 -6
- package/dist/ResponsiveOrdinalFrame.d.ts +3 -6
- package/dist/ResponsiveXYFrame.d.ts +3 -6
- package/dist/SparkFrame.d.ts +1 -1
- package/dist/SparkNetworkFrame.d.ts +3 -3
- package/dist/SparkOrdinalFrame.d.ts +3 -3
- package/dist/SparkXYFrame.d.ts +3 -3
- package/dist/Tooltip/Tooltip.d.ts +141 -0
- package/dist/TooltipPositioner/index.d.ts +1 -1
- package/dist/VisualizationLayer.d.ts +3 -3
- package/dist/XYFrame.d.ts +5 -1
- package/dist/annotationLayerBehavior/annotationHandling.d.ts +2 -2
- package/dist/annotationRules/networkframeRules.d.ts +2 -2
- package/dist/annotationRules/orframeRules.d.ts +2 -4
- package/dist/annotationRules/xyframeRules.d.ts +2 -2
- package/dist/batchWork.d.ts +1 -1
- package/dist/charts/index.d.ts +62 -0
- package/dist/charts/network/ChordDiagram.d.ts +181 -0
- package/dist/charts/network/CirclePack.d.ts +103 -0
- package/dist/charts/network/ForceDirectedGraph.d.ts +192 -0
- package/dist/charts/network/SankeyDiagram.d.ts +195 -0
- package/dist/charts/network/TreeDiagram.d.ts +200 -0
- package/dist/charts/network/Treemap.d.ts +98 -0
- package/dist/charts/ordinal/BarChart.d.ts +119 -0
- package/dist/charts/ordinal/BoxPlot.d.ts +125 -0
- package/dist/charts/ordinal/DonutChart.d.ts +95 -0
- package/dist/charts/ordinal/DotPlot.d.ts +128 -0
- package/dist/charts/ordinal/GroupedBarChart.d.ts +113 -0
- package/dist/charts/ordinal/PieChart.d.ts +83 -0
- package/dist/charts/ordinal/StackedBarChart.d.ts +119 -0
- package/dist/charts/ordinal/SwarmPlot.d.ts +137 -0
- package/dist/charts/realtime/RealtimeBarChart.d.ts +102 -0
- package/dist/charts/realtime/RealtimeLineChart.d.ts +78 -0
- package/dist/charts/realtime/RealtimeSwarmChart.d.ts +88 -0
- package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +85 -0
- package/dist/charts/shared/ChartError.d.ts +19 -0
- package/dist/charts/shared/colorUtils.d.ts +62 -0
- package/dist/charts/shared/formatUtils.d.ts +82 -0
- package/dist/charts/shared/hooks.d.ts +20 -0
- package/dist/charts/shared/legendUtils.d.ts +32 -0
- package/dist/charts/shared/types.d.ts +58 -0
- package/dist/charts/shared/validateChartData.d.ts +41 -0
- package/dist/charts/shared/validateProps.d.ts +18 -0
- package/dist/charts/xy/AreaChart.d.ts +127 -0
- package/dist/charts/xy/BubbleChart.d.ts +157 -0
- package/dist/charts/xy/Heatmap.d.ts +153 -0
- package/dist/charts/xy/LineChart.d.ts +193 -0
- package/dist/charts/xy/Scatterplot.d.ts +50 -0
- package/dist/charts/xy/StackedAreaChart.d.ts +131 -0
- package/dist/constants/frame_props.d.ts +9 -0
- package/dist/constants/jsx.d.ts +2 -2
- package/dist/data/dataFunctions.d.ts +11 -12
- package/dist/data/networkPipelineCache.d.ts +27 -0
- package/dist/data/ordinalPipelineCache.d.ts +33 -0
- package/dist/data/xyPipelineCache.d.ts +35 -0
- package/dist/index.d.ts +70 -62
- package/dist/interactionLayerBehavior/InteractionCanvas.d.ts +1 -1
- package/dist/network.js +8520 -0
- package/dist/network.js.map +1 -0
- package/dist/network.min.js +1 -0
- package/dist/network.module.js +8484 -0
- package/dist/network.module.js.map +1 -0
- package/dist/network.module.min.js +1 -0
- package/dist/ordinal.js +9276 -0
- package/dist/ordinal.js.map +1 -0
- package/dist/ordinal.min.js +1 -0
- package/dist/ordinal.module.js +9242 -0
- package/dist/ordinal.module.js.map +1 -0
- package/dist/ordinal.module.min.js +1 -0
- package/dist/processing/InteractionItems.d.ts +5 -4
- package/dist/processing/hierarchyUtils.d.ts +16 -0
- package/dist/processing/layouts/chordLayout.d.ts +2 -0
- package/dist/processing/layouts/forceLayout.d.ts +3 -0
- package/dist/processing/layouts/hierarchyLayout.d.ts +10 -0
- package/dist/processing/layouts/index.d.ts +8 -0
- package/dist/processing/layouts/sankeyLayout.d.ts +8 -0
- package/dist/processing/layouts/simpleLayouts.d.ts +7 -0
- package/dist/processing/layouts/types.d.ts +17 -0
- package/dist/processing/network.d.ts +25 -28
- package/dist/processing/networkDefaults.d.ts +36 -0
- package/dist/processing/networkLayoutHelpers.d.ts +54 -0
- package/dist/processing/ordinal.d.ts +43 -43
- package/dist/processing/ordinalConstants.d.ts +33 -0
- package/dist/processing/ordinalOverlays.d.ts +33 -0
- package/dist/processing/ordinalRenderPipeline.d.ts +148 -0
- package/dist/processing/xyDrawing.d.ts +46 -41
- package/dist/realtime/BinAccumulator.d.ts +8 -0
- package/dist/realtime/IncrementalExtent.d.ts +13 -0
- package/dist/realtime/RealtimeFrame.d.ts +4 -0
- package/dist/realtime/RingBuffer.d.ts +19 -0
- package/dist/realtime/renderers/barRenderer.d.ts +2 -0
- package/dist/realtime/renderers/candlestickRenderer.d.ts +2 -0
- package/dist/realtime/renderers/lineRenderer.d.ts +2 -0
- package/dist/realtime/renderers/swarmRenderer.d.ts +2 -0
- package/dist/realtime/renderers/types.d.ts +9 -0
- package/dist/realtime/renderers/waterfallRenderer.d.ts +3 -0
- package/dist/realtime/types.d.ts +113 -0
- package/dist/realtime.js +1598 -0
- package/dist/realtime.js.map +1 -0
- package/dist/realtime.min.js +1 -0
- package/dist/realtime.module.js +1566 -0
- package/dist/realtime.module.js.map +1 -0
- package/dist/realtime.module.min.js +1 -0
- package/dist/semiotic-ai.d.ts +28 -0
- package/dist/semiotic-ai.js +18722 -0
- package/dist/semiotic-ai.js.map +1 -0
- package/dist/semiotic-ai.min.js +1 -0
- package/dist/semiotic-ai.module.js +18668 -0
- package/dist/semiotic-ai.module.js.map +1 -0
- package/dist/semiotic-ai.module.min.js +1 -0
- package/dist/semiotic-network.d.ts +19 -0
- package/dist/semiotic-ordinal.d.ts +18 -0
- package/dist/semiotic-realtime.d.ts +23 -0
- package/dist/semiotic-server.d.ts +1 -0
- package/dist/semiotic-xy.d.ts +24 -0
- package/dist/semiotic.d.ts +19 -3
- package/dist/semiotic.js +18707 -12983
- package/dist/semiotic.js.map +1 -0
- package/dist/semiotic.min.js +1 -0
- package/dist/semiotic.module.js +18651 -12953
- package/dist/semiotic.module.js.map +1 -0
- package/dist/semiotic.module.min.js +1 -0
- package/dist/server/renderToStaticSVG.d.ts +9 -0
- package/dist/server.js +8360 -0
- package/dist/server.js.map +1 -0
- package/dist/server.min.js +1 -0
- package/dist/server.module.js +8331 -0
- package/dist/server.module.js.map +1 -0
- package/dist/server.module.min.js +1 -0
- package/dist/svg/SvgHelper.d.ts +1 -5
- package/dist/svg/areaDrawing.d.ts +3 -13
- package/dist/svg/boxplotRenderer.d.ts +15 -0
- package/dist/svg/bucketizedRenderer.d.ts +16 -0
- package/dist/svg/ckbinsRenderer.d.ts +20 -0
- package/dist/svg/contourLayout.d.ts +6 -0
- package/dist/svg/contourRenderer.d.ts +12 -0
- package/dist/svg/edgeGenerators.d.ts +51 -0
- package/dist/svg/frameFunctions.d.ts +17 -28
- package/dist/svg/graphAlgorithms.d.ts +14 -0
- package/dist/svg/hexbinLayout.d.ts +7 -0
- package/dist/svg/lineDrawing.d.ts +8 -8
- package/dist/svg/networkDrawing.d.ts +5 -123
- package/dist/svg/nodeGenerators.d.ts +58 -0
- package/dist/svg/pieceDrawing.d.ts +1 -2
- package/dist/svg/pieceLayouts.d.ts +5 -23
- package/dist/svg/sankeyLinks.d.ts +3 -0
- package/dist/svg/summaryAxis.d.ts +6 -0
- package/dist/svg/summaryLayouts.d.ts +36 -57
- package/dist/svg/swarmLayout.d.ts +13 -0
- package/dist/types/annotationTypes.d.ts +13 -18
- package/dist/types/canvasTypes.d.ts +1 -1
- package/dist/types/generalTypes.d.ts +37 -35
- package/dist/types/interactionTypes.d.ts +7 -9
- package/dist/types/legendTypes.d.ts +2 -2
- package/dist/types/networkTypes.d.ts +40 -30
- package/dist/types/ordinalTypes.d.ts +27 -18
- package/dist/types/xyTypes.d.ts +13 -16
- package/dist/useLegacyUnmountCallback.d.ts +2 -1
- package/dist/visualizationLayerBehavior/axis.d.ts +3 -5
- package/dist/visualizationLayerBehavior/general.d.ts +8 -12
- package/dist/xy.js +7944 -0
- package/dist/xy.js.map +1 -0
- package/dist/xy.min.js +1 -0
- package/dist/xy.module.js +7903 -0
- package/dist/xy.module.js.map +1 -0
- package/dist/xy.module.min.js +1 -0
- package/package.json +116 -66
- package/dist/AnnotationLayer/helpers.d.ts +0 -6
- package/dist/AnnotationLayer/index.d.ts +0 -2
- package/dist/Mark/Mark.d.ts +0 -3
- package/dist/Mark/Mark.types.d.ts +0 -10
- package/dist/Mark/constants/markTransition.d.ts +0 -10
- package/dist/Mark/markBehavior/drawing.d.ts +0 -13
- package/dist/SpanOrDiv.d.ts +0 -10
- package/dist/components/Annotation.d.ts +0 -3
- package/dist/components/AnnotationLayer/AnnotationLayer.d.ts +0 -26
- package/dist/components/Axis/Axis.d.ts +0 -7
- package/dist/components/Axis/axisTitle.d.ts +0 -10
- package/dist/components/Axis/index.d.ts +0 -2
- package/dist/components/Axis/summaryGraphic.d.ts +0 -17
- package/dist/components/Brush.d.ts +0 -12
- package/dist/components/DividedLine.d.ts +0 -16
- package/dist/components/FacetController.d.ts +0 -12
- package/dist/components/Frame.d.ts +0 -2
- package/dist/components/InteractionLayer.d.ts +0 -3
- package/dist/components/Legend.d.ts +0 -3
- package/dist/components/Mark/Mark.d.ts +0 -3
- package/dist/components/Mark/Mark.types.d.ts +0 -10
- package/dist/components/Mark/markBehavior/drawing.d.ts +0 -13
- package/dist/components/MiniMap.d.ts +0 -14
- package/dist/components/MinimapXYFrame.d.ts +0 -10
- package/dist/components/NetworkFrame.d.ts +0 -4
- package/dist/components/OrdinalFrame.d.ts +0 -4
- package/dist/components/ResponsiveFrame.d.ts +0 -22
- package/dist/components/ResponsiveMinimapXYFrame.d.ts +0 -6
- package/dist/components/ResponsiveNetworkFrame.d.ts +0 -6
- package/dist/components/ResponsiveOrdinalFrame.d.ts +0 -6
- package/dist/components/ResponsiveXYFrame.d.ts +0 -6
- package/dist/components/SpanOrDiv.d.ts +0 -10
- package/dist/components/SparkFrame.d.ts +0 -14
- package/dist/components/SparkNetworkFrame.d.ts +0 -5
- package/dist/components/SparkOrdinalFrame.d.ts +0 -5
- package/dist/components/SparkXYFrame.d.ts +0 -5
- package/dist/components/TooltipPositioner/index.d.ts +0 -7
- package/dist/components/VisualizationLayer.d.ts +0 -33
- package/dist/components/XYFrame.d.ts +0 -4
- package/dist/components/annotationLayerBehavior/annotationHandling.d.ts +0 -19
- package/dist/components/annotationLayerBehavior/d3labeler.d.ts +0 -9
- package/dist/components/annotationRules/baseRules.d.ts +0 -25
- package/dist/components/annotationRules/networkframeRules.d.ts +0 -48
- package/dist/components/annotationRules/orframeRules.d.ts +0 -105
- package/dist/components/annotationRules/xyframeRules.d.ts +0 -117
- package/dist/components/batchWork.d.ts +0 -6
- package/dist/components/constants/coordinateNames.d.ts +0 -8
- package/dist/components/constants/frame_props.d.ts +0 -4
- package/dist/components/constants/jsx.d.ts +0 -19
- package/dist/components/data/dataFunctions.d.ts +0 -46
- package/dist/components/data/multiAccessorUtils.d.ts +0 -1
- package/dist/components/data/unflowedFunctions.d.ts +0 -1
- package/dist/components/generic_utilities/functions.d.ts +0 -1
- package/dist/components/index.d.ts +0 -125
- package/dist/components/interactionLayerBehavior/InteractionCanvas.d.ts +0 -20
- package/dist/components/processing/InteractionItems.d.ts +0 -12
- package/dist/components/processing/network.d.ts +0 -114
- package/dist/components/processing/ordinal.d.ts +0 -102
- package/dist/components/processing/xyDrawing.d.ts +0 -135
- package/dist/components/semiotic.d.ts +0 -35
- package/dist/components/store/TooltipStore.d.ts +0 -2
- package/dist/components/store/createStore.d.ts +0 -1
- package/dist/components/svg/SvgHelper.d.ts +0 -37
- package/dist/components/svg/areaDrawing.d.ts +0 -31
- package/dist/components/svg/ckmeans.d.ts +0 -69
- package/dist/components/svg/frameFunctions.d.ts +0 -119
- package/dist/components/svg/lineDrawing.d.ts +0 -99
- package/dist/components/svg/networkDrawing.d.ts +0 -134
- package/dist/components/svg/pieceDrawing.d.ts +0 -13
- package/dist/components/svg/pieceLayouts.d.ts +0 -71
- package/dist/components/svg/summaryLayouts.d.ts +0 -74
- package/dist/components/types/annotationTypes.d.ts +0 -140
- package/dist/components/types/canvasTypes.d.ts +0 -9
- package/dist/components/types/generalTypes.d.ts +0 -236
- package/dist/components/types/interactionTypes.d.ts +0 -74
- package/dist/components/types/legendTypes.d.ts +0 -20
- package/dist/components/types/networkTypes.d.ts +0 -165
- package/dist/components/types/ordinalTypes.d.ts +0 -103
- package/dist/components/types/xyTypes.d.ts +0 -118
- package/dist/components/useBoundingRect.d.ts +0 -2
- package/dist/components/useDerivedStateFromProps.d.ts +0 -1
- package/dist/components/useLegacyUnmountCallback.d.ts +0 -1
- package/dist/components/visualizationLayerBehavior/axis.d.ts +0 -38
- package/dist/components/visualizationLayerBehavior/general.d.ts +0 -84
- package/dist/setupTests.d.ts +0 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { NetworkFrameProps } from "../../types/networkTypes";
|
|
3
|
+
import type { BaseChartProps, ChartAccessor } from "../shared/types";
|
|
4
|
+
import { type TooltipProp } from "../../Tooltip/Tooltip";
|
|
5
|
+
/**
|
|
6
|
+
* ChordDiagram component props
|
|
7
|
+
*/
|
|
8
|
+
export interface ChordDiagramProps<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>> extends BaseChartProps {
|
|
9
|
+
/**
|
|
10
|
+
* Array of nodes (optional - will be inferred from edges if not provided)
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* [{id: 'A', category: 'Group1'}, {id: 'B', category: 'Group2'}]
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
nodes?: TNode[];
|
|
17
|
+
/**
|
|
18
|
+
* Array of edges with source, target, and value
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* [
|
|
22
|
+
* {source: 'A', target: 'B', value: 100},
|
|
23
|
+
* {source: 'B', target: 'A', value: 80},
|
|
24
|
+
* {source: 'A', target: 'A', value: 50}
|
|
25
|
+
* ]
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
edges: TEdge[];
|
|
29
|
+
/**
|
|
30
|
+
* Field name or function to access source node identifier
|
|
31
|
+
* @default "source"
|
|
32
|
+
*/
|
|
33
|
+
sourceAccessor?: ChartAccessor<TEdge, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Field name or function to access target node identifier
|
|
36
|
+
* @default "target"
|
|
37
|
+
*/
|
|
38
|
+
targetAccessor?: ChartAccessor<TEdge, string>;
|
|
39
|
+
/**
|
|
40
|
+
* Field name or function to access edge value (width)
|
|
41
|
+
* @default "value"
|
|
42
|
+
*/
|
|
43
|
+
valueAccessor?: ChartAccessor<TEdge, number>;
|
|
44
|
+
/**
|
|
45
|
+
* Field name or function to access node identifier
|
|
46
|
+
* @default "id"
|
|
47
|
+
*/
|
|
48
|
+
nodeIdAccessor?: ChartAccessor<TNode, string>;
|
|
49
|
+
/**
|
|
50
|
+
* Field name or function to determine node color
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* colorBy="category"
|
|
54
|
+
* colorBy={d => d.group}
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
colorBy?: ChartAccessor<TNode, string>;
|
|
58
|
+
/**
|
|
59
|
+
* Color scheme for nodes or custom colors array
|
|
60
|
+
* @default "category10"
|
|
61
|
+
*/
|
|
62
|
+
colorScheme?: string | string[];
|
|
63
|
+
/**
|
|
64
|
+
* Edge color strategy
|
|
65
|
+
* - "source": color edges by source node
|
|
66
|
+
* - "target": color edges by target node
|
|
67
|
+
* - function: custom coloring function
|
|
68
|
+
* @default "source"
|
|
69
|
+
*/
|
|
70
|
+
edgeColorBy?: "source" | "target" | ((d: any) => string);
|
|
71
|
+
/**
|
|
72
|
+
* Padding angle between adjacent groups (in radians)
|
|
73
|
+
* @default 0.01
|
|
74
|
+
*/
|
|
75
|
+
padAngle?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Width of the outer arc (node) in pixels
|
|
78
|
+
* @default 20
|
|
79
|
+
*/
|
|
80
|
+
groupWidth?: number;
|
|
81
|
+
/**
|
|
82
|
+
* Sort function for groups (nodes) around the circle
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* sortGroups={(a, b) => b.value - a.value}
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
sortGroups?: (a: any, b: any) => number;
|
|
89
|
+
/**
|
|
90
|
+
* Label accessor for nodes
|
|
91
|
+
* @default Uses nodeIdAccessor
|
|
92
|
+
*/
|
|
93
|
+
nodeLabel?: ChartAccessor<TNode, string>;
|
|
94
|
+
/**
|
|
95
|
+
* Show labels around circumference
|
|
96
|
+
* @default true
|
|
97
|
+
*/
|
|
98
|
+
showLabels?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Enable hover annotations
|
|
101
|
+
* @default true
|
|
102
|
+
*/
|
|
103
|
+
enableHover?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Edge opacity
|
|
106
|
+
* @default 0.5
|
|
107
|
+
*/
|
|
108
|
+
edgeOpacity?: number;
|
|
109
|
+
/**
|
|
110
|
+
* Tooltip configuration
|
|
111
|
+
*/
|
|
112
|
+
tooltip?: TooltipProp;
|
|
113
|
+
/**
|
|
114
|
+
* Additional NetworkFrame props for advanced customization
|
|
115
|
+
* For full control, consider using NetworkFrame directly
|
|
116
|
+
* @see https://semiotic.nteract.io/guides/network-frame
|
|
117
|
+
*/
|
|
118
|
+
frameProps?: Partial<Omit<NetworkFrameProps, "edges" | "size">>;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* ChordDiagram - Visualize directed relationships with circular chord layout
|
|
122
|
+
*
|
|
123
|
+
* A simplified wrapper around NetworkFrame for creating chord diagrams.
|
|
124
|
+
* Perfect for showing flow and relationships between entities, especially
|
|
125
|
+
* when there are reciprocal connections and self-loops.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```tsx
|
|
129
|
+
* // Simple chord diagram
|
|
130
|
+
* <ChordDiagram
|
|
131
|
+
* edges={[
|
|
132
|
+
* {source: 'A', target: 'B', value: 100},
|
|
133
|
+
* {source: 'B', target: 'A', value: 80},
|
|
134
|
+
* {source: 'A', target: 'A', value: 50}
|
|
135
|
+
* ]}
|
|
136
|
+
* colorBy={(d) => d.id}
|
|
137
|
+
* />
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```tsx
|
|
142
|
+
* // With custom styling and padding
|
|
143
|
+
* <ChordDiagram
|
|
144
|
+
* edges={edges}
|
|
145
|
+
* nodes={nodes}
|
|
146
|
+
* colorBy="category"
|
|
147
|
+
* edgeColorBy="source"
|
|
148
|
+
* padAngle={0.05}
|
|
149
|
+
* groupWidth={30}
|
|
150
|
+
* />
|
|
151
|
+
* ```
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```tsx
|
|
155
|
+
* // With sorting and labels
|
|
156
|
+
* <ChordDiagram
|
|
157
|
+
* edges={edges}
|
|
158
|
+
* sortGroups={(a, b) => b.value - a.value}
|
|
159
|
+
* nodeLabel="name"
|
|
160
|
+
* showLabels={true}
|
|
161
|
+
* />
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* @remarks
|
|
165
|
+
* This component wraps {@link NetworkFrame} with sensible defaults for chord diagrams.
|
|
166
|
+
* Chord diagrams work best when there are asymmetric relationships and self-loops.
|
|
167
|
+
*
|
|
168
|
+
* **Data Requirements:**
|
|
169
|
+
* - Edges must have source, target, and value properties
|
|
170
|
+
* - Self-loops (source === target) are displayed as curved arcs
|
|
171
|
+
* - Reciprocal edges show the asymmetry in relationships
|
|
172
|
+
*
|
|
173
|
+
* **Breadcrumb to advanced usage:**
|
|
174
|
+
* - Use the `frameProps` prop to pass any NetworkFrame prop
|
|
175
|
+
* - See NetworkFrame documentation: https://semiotic.nteract.io/guides/network-frame
|
|
176
|
+
* - All NetworkFrame props are available via `frameProps`
|
|
177
|
+
*
|
|
178
|
+
* @param props - ChordDiagram configuration
|
|
179
|
+
* @returns Rendered chord diagram
|
|
180
|
+
*/
|
|
181
|
+
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;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { NetworkFrameProps } from "../../types/networkTypes";
|
|
3
|
+
import type { BaseChartProps, ChartAccessor, Accessor } from "../shared/types";
|
|
4
|
+
import { type TooltipProp } from "../../Tooltip/Tooltip";
|
|
5
|
+
/**
|
|
6
|
+
* CirclePack component props
|
|
7
|
+
*/
|
|
8
|
+
export interface CirclePackProps<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>> extends BaseChartProps {
|
|
9
|
+
/**
|
|
10
|
+
* Hierarchical data structure with children and values.
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* {
|
|
14
|
+
* name: 'root',
|
|
15
|
+
* children: [
|
|
16
|
+
* {name: 'A', value: 100},
|
|
17
|
+
* {name: 'B', children: [{name: 'B1', value: 50}, {name: 'B2', value: 30}]}
|
|
18
|
+
* ]
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
data: TNode;
|
|
23
|
+
/**
|
|
24
|
+
* Field name or function to access children array
|
|
25
|
+
* @default "children"
|
|
26
|
+
*/
|
|
27
|
+
childrenAccessor?: ChartAccessor<TNode, TNode[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Field name or function to access node value for sizing
|
|
30
|
+
* @default "value"
|
|
31
|
+
*/
|
|
32
|
+
valueAccessor?: Accessor<number>;
|
|
33
|
+
/**
|
|
34
|
+
* Field name or function to access node identifier
|
|
35
|
+
* @default "name"
|
|
36
|
+
*/
|
|
37
|
+
nodeIdAccessor?: ChartAccessor<TNode, string>;
|
|
38
|
+
/**
|
|
39
|
+
* Field name or function to determine node color
|
|
40
|
+
*/
|
|
41
|
+
colorBy?: ChartAccessor<TNode, string | number>;
|
|
42
|
+
/**
|
|
43
|
+
* Color scheme for nodes or custom colors array
|
|
44
|
+
* @default "category10"
|
|
45
|
+
*/
|
|
46
|
+
colorScheme?: string | string[];
|
|
47
|
+
/**
|
|
48
|
+
* Color nodes by hierarchy depth level
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
colorByDepth?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Show labels on circles
|
|
54
|
+
* @default true
|
|
55
|
+
*/
|
|
56
|
+
showLabels?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Node label accessor
|
|
59
|
+
* @default Uses nodeIdAccessor
|
|
60
|
+
*/
|
|
61
|
+
nodeLabel?: ChartAccessor<TNode, string>;
|
|
62
|
+
/**
|
|
63
|
+
* Circle fill opacity (helps see nesting)
|
|
64
|
+
* @default 0.7
|
|
65
|
+
*/
|
|
66
|
+
circleOpacity?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Enable hover annotations
|
|
69
|
+
* @default true
|
|
70
|
+
*/
|
|
71
|
+
enableHover?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Tooltip configuration
|
|
74
|
+
*/
|
|
75
|
+
tooltip?: TooltipProp;
|
|
76
|
+
/**
|
|
77
|
+
* Additional NetworkFrame props for advanced customization
|
|
78
|
+
* For full control, consider using NetworkFrame directly
|
|
79
|
+
*/
|
|
80
|
+
frameProps?: Partial<Omit<NetworkFrameProps, "edges" | "size">>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* CirclePack - Visualize hierarchical data as nested circles.
|
|
84
|
+
*
|
|
85
|
+
* A simplified wrapper around NetworkFrame with circlepack layout.
|
|
86
|
+
* Each circle's area is proportional to its value.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```tsx
|
|
90
|
+
* <CirclePack
|
|
91
|
+
* data={{
|
|
92
|
+
* name: 'root',
|
|
93
|
+
* children: [
|
|
94
|
+
* {name: 'A', value: 100},
|
|
95
|
+
* {name: 'B', value: 200},
|
|
96
|
+
* {name: 'C', value: 150}
|
|
97
|
+
* ]
|
|
98
|
+
* }}
|
|
99
|
+
* colorByDepth
|
|
100
|
+
* />
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export declare function CirclePack<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>>(props: CirclePackProps<TNode, TEdge>): React.JSX.Element;
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { NetworkFrameProps } from "../../types/networkTypes";
|
|
3
|
+
import type { BaseChartProps, ChartAccessor } from "../shared/types";
|
|
4
|
+
import { type TooltipProp } from "../../Tooltip/Tooltip";
|
|
5
|
+
/**
|
|
6
|
+
* ForceDirectedGraph component props
|
|
7
|
+
*/
|
|
8
|
+
export interface ForceDirectedGraphProps<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>> extends BaseChartProps {
|
|
9
|
+
/**
|
|
10
|
+
* Array of nodes. Each node should have an id property.
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* [{id: 'A', label: 'Node A'}, {id: 'B', label: 'Node B'}]
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
nodes: TNode[];
|
|
17
|
+
/**
|
|
18
|
+
* Array of edges connecting nodes.
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* [{source: 'A', target: 'B'}, {source: 'B', target: 'C'}]
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
edges: TEdge[];
|
|
25
|
+
/**
|
|
26
|
+
* Field name or function to access node IDs
|
|
27
|
+
* @default "id"
|
|
28
|
+
*/
|
|
29
|
+
nodeIDAccessor?: ChartAccessor<TNode, string>;
|
|
30
|
+
/**
|
|
31
|
+
* Field name or function to access edge source IDs
|
|
32
|
+
* @default "source"
|
|
33
|
+
*/
|
|
34
|
+
sourceAccessor?: ChartAccessor<TEdge, string>;
|
|
35
|
+
/**
|
|
36
|
+
* Field name or function to access edge target IDs
|
|
37
|
+
* @default "target"
|
|
38
|
+
*/
|
|
39
|
+
targetAccessor?: ChartAccessor<TEdge, string>;
|
|
40
|
+
/**
|
|
41
|
+
* Field name or function to determine node labels
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* nodeLabel="label" // Use label field
|
|
45
|
+
* nodeLabel={d => d.name} // Use function
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
nodeLabel?: ChartAccessor<TNode, string>;
|
|
49
|
+
/**
|
|
50
|
+
* Field name or function to determine node color
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* colorBy="group"
|
|
54
|
+
* colorBy={d => d.value > 10 ? 'red' : 'blue'}
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
colorBy?: ChartAccessor<TNode, string>;
|
|
58
|
+
/**
|
|
59
|
+
* Color scheme for categorical data or custom colors array
|
|
60
|
+
* @default "category10"
|
|
61
|
+
*/
|
|
62
|
+
colorScheme?: string | string[];
|
|
63
|
+
/**
|
|
64
|
+
* Field name, number, or function to determine node size
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* nodeSize={5} // Fixed size
|
|
68
|
+
* nodeSize="importance" // Use field
|
|
69
|
+
* nodeSize={d => d.connections * 2} // Use function
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
nodeSize?: number | ChartAccessor<TNode, number>;
|
|
73
|
+
/**
|
|
74
|
+
* Min and max radius for nodes when using dynamic sizing
|
|
75
|
+
* @default [5, 20]
|
|
76
|
+
*/
|
|
77
|
+
nodeSizeRange?: [number, number];
|
|
78
|
+
/**
|
|
79
|
+
* Field name, number, or function to determine edge width
|
|
80
|
+
* @default 1
|
|
81
|
+
*/
|
|
82
|
+
edgeWidth?: number | ChartAccessor<TEdge, number>;
|
|
83
|
+
/**
|
|
84
|
+
* Edge color
|
|
85
|
+
* @default "#999"
|
|
86
|
+
*/
|
|
87
|
+
edgeColor?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Edge opacity
|
|
90
|
+
* @default 0.6
|
|
91
|
+
*/
|
|
92
|
+
edgeOpacity?: number;
|
|
93
|
+
/**
|
|
94
|
+
* Number of force simulation iterations
|
|
95
|
+
* @default 300
|
|
96
|
+
*/
|
|
97
|
+
iterations?: number;
|
|
98
|
+
/**
|
|
99
|
+
* Strength of the force simulation
|
|
100
|
+
* Lower values create looser layouts
|
|
101
|
+
* @default 0.1
|
|
102
|
+
*/
|
|
103
|
+
forceStrength?: number;
|
|
104
|
+
/**
|
|
105
|
+
* Enable node labels
|
|
106
|
+
* @default false
|
|
107
|
+
*/
|
|
108
|
+
showLabels?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Enable hover annotations
|
|
111
|
+
* @default true
|
|
112
|
+
*/
|
|
113
|
+
enableHover?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Show legend
|
|
116
|
+
* @default true (when colorBy is specified)
|
|
117
|
+
*/
|
|
118
|
+
showLegend?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Tooltip configuration
|
|
121
|
+
*/
|
|
122
|
+
tooltip?: TooltipProp;
|
|
123
|
+
/**
|
|
124
|
+
* Additional NetworkFrame props for advanced customization
|
|
125
|
+
* For full control, consider using NetworkFrame directly
|
|
126
|
+
* @see https://semiotic.nteract.io/guides/network-frame
|
|
127
|
+
*/
|
|
128
|
+
frameProps?: Partial<Omit<NetworkFrameProps, "nodes" | "edges" | "size">>;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* ForceDirectedGraph - Visualize network relationships with force-directed layout
|
|
132
|
+
*
|
|
133
|
+
* A simplified wrapper around NetworkFrame for creating force-directed graphs.
|
|
134
|
+
* Perfect for visualizing connections, communities, and network structures.
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```tsx
|
|
138
|
+
* // Simple force-directed graph
|
|
139
|
+
* <ForceDirectedGraph
|
|
140
|
+
* nodes={[
|
|
141
|
+
* {id: 'A', label: 'Node A'},
|
|
142
|
+
* {id: 'B', label: 'Node B'},
|
|
143
|
+
* {id: 'C', label: 'Node C'}
|
|
144
|
+
* ]}
|
|
145
|
+
* edges={[
|
|
146
|
+
* {source: 'A', target: 'B'},
|
|
147
|
+
* {source: 'B', target: 'C'}
|
|
148
|
+
* ]}
|
|
149
|
+
* />
|
|
150
|
+
* ```
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```tsx
|
|
154
|
+
* // With color and size encoding
|
|
155
|
+
* <ForceDirectedGraph
|
|
156
|
+
* nodes={nodes}
|
|
157
|
+
* edges={edges}
|
|
158
|
+
* colorBy="group"
|
|
159
|
+
* nodeSize="connections"
|
|
160
|
+
* nodeSizeRange={[5, 25]}
|
|
161
|
+
* showLabels={true}
|
|
162
|
+
* iterations={500}
|
|
163
|
+
* />
|
|
164
|
+
* ```
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```tsx
|
|
168
|
+
* // Advanced: Override NetworkFrame props
|
|
169
|
+
* <ForceDirectedGraph
|
|
170
|
+
* nodes={nodes}
|
|
171
|
+
* edges={edges}
|
|
172
|
+
* frameProps={{
|
|
173
|
+
* networkType: { type: "force", iterations: 500, edgeStrength: 2 },
|
|
174
|
+
* customNodeIcon: ({ d }) => <circle r={10} fill="gold" />
|
|
175
|
+
* }}
|
|
176
|
+
* />
|
|
177
|
+
* ```
|
|
178
|
+
*
|
|
179
|
+
* @remarks
|
|
180
|
+
* This component wraps {@link NetworkFrame} with sensible defaults for force-directed graphs.
|
|
181
|
+
* For more advanced features like custom layouts, hierarchical networks, or complex interactions,
|
|
182
|
+
* use NetworkFrame directly.
|
|
183
|
+
*
|
|
184
|
+
* **Breadcrumb to advanced usage:**
|
|
185
|
+
* - Use the `frameProps` prop to pass any NetworkFrame prop
|
|
186
|
+
* - See NetworkFrame documentation: https://semiotic.nteract.io/guides/network-frame
|
|
187
|
+
* - All NetworkFrame props are available via `frameProps`
|
|
188
|
+
*
|
|
189
|
+
* @param props - ForceDirectedGraph configuration
|
|
190
|
+
* @returns Rendered force-directed graph
|
|
191
|
+
*/
|
|
192
|
+
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;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { NetworkFrameProps } from "../../types/networkTypes";
|
|
3
|
+
import type { BaseChartProps, ChartAccessor } from "../shared/types";
|
|
4
|
+
import { type TooltipProp } from "../../Tooltip/Tooltip";
|
|
5
|
+
/**
|
|
6
|
+
* SankeyDiagram component props
|
|
7
|
+
*/
|
|
8
|
+
export interface SankeyDiagramProps<TNode extends Record<string, any> = Record<string, any>, TEdge extends Record<string, any> = Record<string, any>> extends BaseChartProps {
|
|
9
|
+
/**
|
|
10
|
+
* Array of nodes (optional - will be inferred from edges if not provided)
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* [{id: 'A', category: 'Source'}, {id: 'B', category: 'Target'}]
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
nodes?: TNode[];
|
|
17
|
+
/**
|
|
18
|
+
* Array of edges (links) with source, target, and value
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* [
|
|
22
|
+
* {source: 'A', target: 'B', value: 100},
|
|
23
|
+
* {source: 'B', target: 'C', value: 80}
|
|
24
|
+
* ]
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
edges: TEdge[];
|
|
28
|
+
/**
|
|
29
|
+
* Field name or function to access source node identifier
|
|
30
|
+
* @default "source"
|
|
31
|
+
*/
|
|
32
|
+
sourceAccessor?: ChartAccessor<TEdge, string>;
|
|
33
|
+
/**
|
|
34
|
+
* Field name or function to access target node identifier
|
|
35
|
+
* @default "target"
|
|
36
|
+
*/
|
|
37
|
+
targetAccessor?: ChartAccessor<TEdge, string>;
|
|
38
|
+
/**
|
|
39
|
+
* Field name or function to access edge value (flow width)
|
|
40
|
+
* @default "value"
|
|
41
|
+
*/
|
|
42
|
+
valueAccessor?: ChartAccessor<TEdge, number>;
|
|
43
|
+
/**
|
|
44
|
+
* Field name or function to access node identifier
|
|
45
|
+
* @default "id"
|
|
46
|
+
*/
|
|
47
|
+
nodeIdAccessor?: ChartAccessor<TNode, string>;
|
|
48
|
+
/**
|
|
49
|
+
* Field name or function to determine node color
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* colorBy="category"
|
|
53
|
+
* colorBy={d => d.type}
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
colorBy?: ChartAccessor<TNode, string>;
|
|
57
|
+
/**
|
|
58
|
+
* Color scheme for nodes or custom colors array
|
|
59
|
+
* @default "category10"
|
|
60
|
+
*/
|
|
61
|
+
colorScheme?: string | string[];
|
|
62
|
+
/**
|
|
63
|
+
* Edge color strategy
|
|
64
|
+
* - "source": color edges by source node
|
|
65
|
+
* - "target": color edges by target node
|
|
66
|
+
* - "gradient": gradient from source to target
|
|
67
|
+
* - function: custom coloring function
|
|
68
|
+
* @default "source"
|
|
69
|
+
*/
|
|
70
|
+
edgeColorBy?: "source" | "target" | "gradient" | ((d: any) => string);
|
|
71
|
+
/**
|
|
72
|
+
* Layout orientation
|
|
73
|
+
* @default "horizontal"
|
|
74
|
+
*/
|
|
75
|
+
orientation?: "horizontal" | "vertical";
|
|
76
|
+
/**
|
|
77
|
+
* Node alignment strategy
|
|
78
|
+
* - "justify": spread nodes evenly
|
|
79
|
+
* - "left": align nodes to the left
|
|
80
|
+
* - "right": align nodes to the right
|
|
81
|
+
* - "center": center nodes
|
|
82
|
+
* @default "justify"
|
|
83
|
+
*/
|
|
84
|
+
nodeAlign?: "justify" | "left" | "right" | "center";
|
|
85
|
+
/**
|
|
86
|
+
* Padding between nodes (ratio of node height)
|
|
87
|
+
* @default 0.05
|
|
88
|
+
*/
|
|
89
|
+
nodePaddingRatio?: number;
|
|
90
|
+
/**
|
|
91
|
+
* Fixed width of nodes in pixels
|
|
92
|
+
* @default 15
|
|
93
|
+
*/
|
|
94
|
+
nodeWidth?: number;
|
|
95
|
+
/**
|
|
96
|
+
* Label accessor for nodes
|
|
97
|
+
* @default Uses nodeIdAccessor
|
|
98
|
+
*/
|
|
99
|
+
nodeLabel?: ChartAccessor<TNode, string>;
|
|
100
|
+
/**
|
|
101
|
+
* Show node labels
|
|
102
|
+
* @default true
|
|
103
|
+
*/
|
|
104
|
+
showLabels?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Enable hover annotations
|
|
107
|
+
* @default true
|
|
108
|
+
*/
|
|
109
|
+
enableHover?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Edge opacity
|
|
112
|
+
* @default 0.5
|
|
113
|
+
*/
|
|
114
|
+
edgeOpacity?: number;
|
|
115
|
+
/**
|
|
116
|
+
* Sort function for edges
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* edgeSort={(a, b) => b.value - a.value}
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
edgeSort?: (a: any, b: any) => number;
|
|
123
|
+
/**
|
|
124
|
+
* Tooltip configuration
|
|
125
|
+
*/
|
|
126
|
+
tooltip?: TooltipProp;
|
|
127
|
+
/**
|
|
128
|
+
* Additional NetworkFrame props for advanced customization
|
|
129
|
+
* For full control, consider using NetworkFrame directly
|
|
130
|
+
* @see https://semiotic.nteract.io/guides/network-frame
|
|
131
|
+
*/
|
|
132
|
+
frameProps?: Partial<Omit<NetworkFrameProps, "edges" | "size">>;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* SankeyDiagram - Visualize flow and magnitude of movement between nodes
|
|
136
|
+
*
|
|
137
|
+
* A simplified wrapper around NetworkFrame for creating Sankey diagrams.
|
|
138
|
+
* Perfect for showing material, energy, cost, or any other quantity
|
|
139
|
+
* flowing through a system.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```tsx
|
|
143
|
+
* // Simple Sankey diagram
|
|
144
|
+
* <SankeyDiagram
|
|
145
|
+
* edges={[
|
|
146
|
+
* {source: 'A', target: 'B', value: 100},
|
|
147
|
+
* {source: 'A', target: 'C', value: 50},
|
|
148
|
+
* {source: 'B', target: 'D', value: 80}
|
|
149
|
+
* ]}
|
|
150
|
+
* />
|
|
151
|
+
* ```
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```tsx
|
|
155
|
+
* // With custom styling and orientation
|
|
156
|
+
* <SankeyDiagram
|
|
157
|
+
* edges={edges}
|
|
158
|
+
* nodes={nodes}
|
|
159
|
+
* colorBy="category"
|
|
160
|
+
* edgeColorBy="gradient"
|
|
161
|
+
* orientation="vertical"
|
|
162
|
+
* nodeAlign="center"
|
|
163
|
+
* />
|
|
164
|
+
* ```
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```tsx
|
|
168
|
+
* // With sorting and padding
|
|
169
|
+
* <SankeyDiagram
|
|
170
|
+
* edges={edges}
|
|
171
|
+
* nodeWidth={20}
|
|
172
|
+
* nodePaddingRatio={0.1}
|
|
173
|
+
* edgeSort={(a, b) => b.value - a.value}
|
|
174
|
+
* />
|
|
175
|
+
* ```
|
|
176
|
+
*
|
|
177
|
+
* @remarks
|
|
178
|
+
* This component wraps {@link NetworkFrame} with sensible defaults for Sankey diagrams.
|
|
179
|
+
* Sankey diagrams are used for directed acyclic graphs (DAGs).
|
|
180
|
+
*
|
|
181
|
+
* **Data Requirements:**
|
|
182
|
+
* - Edges must have source, target, and value properties
|
|
183
|
+
* - Graph should be acyclic (no cycles)
|
|
184
|
+
* - If cycles are detected, consider using a force-directed layout instead
|
|
185
|
+
*
|
|
186
|
+
* **Breadcrumb to advanced usage:**
|
|
187
|
+
* - Use the `frameProps` prop to pass any NetworkFrame prop
|
|
188
|
+
* - See NetworkFrame documentation: https://semiotic.nteract.io/guides/network-frame
|
|
189
|
+
* - All NetworkFrame props are available via `frameProps`
|
|
190
|
+
* - For circular Sankey diagrams, use the `customSankey` prop via frameProps
|
|
191
|
+
*
|
|
192
|
+
* @param props - SankeyDiagram configuration
|
|
193
|
+
* @returns Rendered Sankey diagram
|
|
194
|
+
*/
|
|
195
|
+
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;
|