semiotic 2.0.2 → 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/Annotation.d.ts +3 -0
- package/dist/AnnotationLayer/AnnotationLayer.d.ts +25 -0
- package/dist/Axis/Axis.d.ts +7 -0
- package/dist/Axis/axisTitle.d.ts +10 -0
- package/dist/Axis/index.d.ts +2 -0
- package/dist/Axis/summaryGraphic.d.ts +17 -0
- package/dist/Brush.d.ts +12 -0
- package/dist/DividedLine.d.ts +16 -0
- package/dist/FacetController.d.ts +12 -0
- package/dist/Frame.d.ts +2 -0
- package/dist/InteractionLayer.d.ts +3 -0
- package/dist/Legend.d.ts +3 -0
- package/dist/MiniMap.d.ts +14 -0
- package/dist/MinimapXYFrame.d.ts +10 -0
- package/dist/NetworkFrame.d.ts +8 -0
- package/dist/OrdinalFrame.d.ts +8 -0
- package/dist/ResponsiveFrame.d.ts +22 -0
- package/dist/ResponsiveMinimapXYFrame.d.ts +3 -0
- package/dist/ResponsiveNetworkFrame.d.ts +3 -0
- package/dist/ResponsiveOrdinalFrame.d.ts +3 -0
- package/dist/ResponsiveXYFrame.d.ts +3 -0
- package/dist/SparkFrame.d.ts +14 -0
- package/dist/SparkNetworkFrame.d.ts +5 -0
- package/dist/SparkOrdinalFrame.d.ts +5 -0
- package/dist/SparkXYFrame.d.ts +5 -0
- package/dist/Tooltip/Tooltip.d.ts +141 -0
- package/dist/TooltipPositioner/index.d.ts +7 -0
- package/dist/VisualizationLayer.d.ts +33 -0
- package/dist/XYFrame.d.ts +8 -0
- package/dist/annotationLayerBehavior/annotationHandling.d.ts +19 -0
- package/dist/annotationLayerBehavior/d3labeler.d.ts +9 -0
- package/dist/annotationRules/baseRules.d.ts +25 -0
- package/dist/annotationRules/networkframeRules.d.ts +48 -0
- package/dist/annotationRules/orframeRules.d.ts +103 -0
- package/dist/annotationRules/xyframeRules.d.ts +117 -0
- package/dist/batchWork.d.ts +6 -0
- 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/coordinateNames.d.ts +8 -0
- package/dist/constants/frame_props.d.ts +13 -0
- package/dist/constants/jsx.d.ts +19 -0
- package/dist/data/dataFunctions.d.ts +45 -0
- package/dist/data/multiAccessorUtils.d.ts +1 -0
- package/dist/data/networkPipelineCache.d.ts +27 -0
- package/dist/data/ordinalPipelineCache.d.ts +33 -0
- package/dist/data/unflowedFunctions.d.ts +1 -0
- package/dist/data/xyPipelineCache.d.ts +35 -0
- package/dist/generic_utilities/functions.d.ts +1 -0
- package/dist/index.d.ts +133 -0
- package/dist/interactionLayerBehavior/InteractionCanvas.d.ts +20 -0
- 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 +13 -0
- 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 +111 -0
- package/dist/processing/networkDefaults.d.ts +36 -0
- package/dist/processing/networkLayoutHelpers.d.ts +54 -0
- package/dist/processing/ordinal.d.ts +102 -0
- 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 +140 -0
- 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 +51 -0
- package/dist/semiotic.js +18723 -12996
- package/dist/semiotic.js.map +1 -0
- package/dist/semiotic.min.js +1 -0
- package/dist/semiotic.module.js +18666 -12965
- 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/store/TooltipStore.d.ts +2 -0
- package/dist/store/createStore.d.ts +1 -0
- package/dist/svg/SvgHelper.d.ts +33 -0
- package/dist/svg/areaDrawing.d.ts +21 -0
- 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/ckmeans.d.ts +69 -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 +108 -0
- package/dist/svg/graphAlgorithms.d.ts +14 -0
- package/dist/svg/hexbinLayout.d.ts +7 -0
- package/dist/svg/lineDrawing.d.ts +99 -0
- package/dist/svg/networkDrawing.d.ts +16 -0
- package/dist/svg/nodeGenerators.d.ts +58 -0
- package/dist/svg/pieceDrawing.d.ts +12 -0
- package/dist/svg/pieceLayouts.d.ts +53 -0
- package/dist/svg/sankeyLinks.d.ts +3 -0
- package/dist/svg/summaryAxis.d.ts +6 -0
- package/dist/svg/summaryLayouts.d.ts +53 -0
- package/dist/svg/swarmLayout.d.ts +13 -0
- package/dist/types/annotationTypes.d.ts +135 -0
- package/dist/types/canvasTypes.d.ts +9 -0
- package/dist/types/generalTypes.d.ts +238 -0
- package/dist/types/interactionTypes.d.ts +72 -0
- package/dist/types/legendTypes.d.ts +20 -0
- package/dist/types/networkTypes.d.ts +175 -0
- package/dist/types/ordinalTypes.d.ts +112 -0
- package/dist/types/xyTypes.d.ts +115 -0
- package/dist/useBoundingRect.d.ts +2 -0
- package/dist/useDerivedStateFromProps.d.ts +1 -0
- package/dist/useLegacyUnmountCallback.d.ts +2 -0
- package/dist/visualizationLayerBehavior/axis.d.ts +36 -0
- package/dist/visualizationLayerBehavior/general.d.ts +80 -0
- 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 -65
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format number with specified format string
|
|
3
|
+
*
|
|
4
|
+
* @param value - Number to format
|
|
5
|
+
* @param formatString - D3 format string (e.g., ".2f", ",.0f", ".1%")
|
|
6
|
+
* @returns Formatted string
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/d3/d3-format#format for format string options
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatNumber(value: number, formatString?: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Format date with specified format string
|
|
13
|
+
*
|
|
14
|
+
* @param value - Date to format
|
|
15
|
+
* @param formatString - D3 time format string (e.g., "%Y-%m-%d", "%b %d")
|
|
16
|
+
* @returns Formatted string
|
|
17
|
+
*
|
|
18
|
+
* @see https://github.com/d3/d3-time-format#timeFormat for format string options
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatDate(value: Date | number | string, formatString?: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a formatting function based on the type
|
|
23
|
+
*
|
|
24
|
+
* @param type - Type of formatting: 'number', 'date', 'percent', or 'currency'
|
|
25
|
+
* @param options - Optional configuration for the formatter
|
|
26
|
+
* @returns Formatting function
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const fmt = formatAxis('number', { decimals: 2 })
|
|
31
|
+
* fmt(1234.567) // "1,234.57"
|
|
32
|
+
*
|
|
33
|
+
* const dateFmt = formatAxis('date', { format: '%b %Y' })
|
|
34
|
+
* dateFmt(new Date()) // "Jan 2024"
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function formatAxis(type?: "number" | "date" | "percent" | "currency", options?: {
|
|
38
|
+
decimals?: number;
|
|
39
|
+
format?: string;
|
|
40
|
+
currency?: string;
|
|
41
|
+
}): (d: any) => string;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a tooltip content generator
|
|
44
|
+
*
|
|
45
|
+
* @param fields - Array of field names to display
|
|
46
|
+
* @param formatters - Optional map of field names to formatting functions
|
|
47
|
+
* @param labels - Optional map of field names to display labels
|
|
48
|
+
* @returns React element generator function
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* const tooltip = createTooltip(
|
|
53
|
+
* ['category', 'value'],
|
|
54
|
+
* { value: d => formatNumber(d, ',.2f') },
|
|
55
|
+
* { category: 'Category', value: 'Value' }
|
|
56
|
+
* )
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function createTooltip(fields: string[], formatters?: Record<string, (v: any) => string>, labels?: Record<string, string>): (d: any) => JSX.Element;
|
|
60
|
+
/**
|
|
61
|
+
* Formats large numbers with K/M/B suffixes
|
|
62
|
+
*
|
|
63
|
+
* @param value - Number to format
|
|
64
|
+
* @param decimals - Number of decimal places
|
|
65
|
+
* @returns Formatted string with suffix
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* formatLargeNumber(1234) // "1.2K"
|
|
70
|
+
* formatLargeNumber(1234567) // "1.2M"
|
|
71
|
+
* formatLargeNumber(1234567890) // "1.2B"
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function formatLargeNumber(value: number, decimals?: number): string;
|
|
75
|
+
/**
|
|
76
|
+
* Truncates text to specified length with ellipsis
|
|
77
|
+
*
|
|
78
|
+
* @param text - Text to truncate
|
|
79
|
+
* @param maxLength - Maximum length before truncation
|
|
80
|
+
* @returns Truncated text
|
|
81
|
+
*/
|
|
82
|
+
export declare function truncateText(text: string, maxLength?: number): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Accessor } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Default fill color used when no colorBy is specified
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_COLOR = "#007bff";
|
|
6
|
+
/**
|
|
7
|
+
* Resolve an accessor (string key or function) into a function.
|
|
8
|
+
* Used across chart components to normalize `valueAccessor`, `categoryAccessor`, etc.
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveAccessor<T = any>(accessor: string | ((d: Record<string, any>, i?: number) => T)): (d: Record<string, any>) => T;
|
|
11
|
+
/**
|
|
12
|
+
* Hook to create a color scale from data and colorBy configuration.
|
|
13
|
+
* Returns undefined when colorBy is absent or is a function accessor.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useColorScale(data: Array<Record<string, any>>, colorBy: Accessor<string> | undefined, colorScheme?: string | string[]): ((v: string) => string) | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Hook to sort data by a value accessor.
|
|
18
|
+
* Used by BarChart and DotPlot.
|
|
19
|
+
*/
|
|
20
|
+
export declare function useSortedData(data: Array<Record<string, any>>, sort: boolean | "asc" | "desc" | ((a: Record<string, any>, b: Record<string, any>) => number), valueAccessor: Accessor<number>): Array<Record<string, any>>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Accessor } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Create a legend configuration for HOC components
|
|
4
|
+
*
|
|
5
|
+
* @param data - Array of data points
|
|
6
|
+
* @param colorBy - Field or function to determine color categories
|
|
7
|
+
* @param colorScale - Optional d3 color scale function
|
|
8
|
+
* @param getColor - Function to get color for a data point
|
|
9
|
+
* @param strokeColor - Optional stroke color for legend items
|
|
10
|
+
* @param strokeWidth - Optional stroke width for legend items
|
|
11
|
+
* @returns Legend configuration object for Semiotic frames
|
|
12
|
+
*/
|
|
13
|
+
export declare function createLegend({ data, colorBy, colorScale, getColor, strokeColor, strokeWidth }: {
|
|
14
|
+
data: Array<Record<string, any>>;
|
|
15
|
+
colorBy: Accessor<string>;
|
|
16
|
+
colorScale?: ((v: string) => string);
|
|
17
|
+
getColor: (d: Record<string, any>, accessor: Accessor<string>, scale?: ((v: string) => string)) => string;
|
|
18
|
+
strokeColor?: string;
|
|
19
|
+
strokeWidth?: number;
|
|
20
|
+
}): {
|
|
21
|
+
legendGroups: {
|
|
22
|
+
styleFn: (d: {
|
|
23
|
+
color: string;
|
|
24
|
+
}) => Record<string, string | number>;
|
|
25
|
+
type: "fill";
|
|
26
|
+
items: {
|
|
27
|
+
label: string;
|
|
28
|
+
color: string;
|
|
29
|
+
}[];
|
|
30
|
+
label: string;
|
|
31
|
+
}[];
|
|
32
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { MarginType } from "../../types/generalTypes";
|
|
2
|
+
/**
|
|
3
|
+
* Base props shared across all chart components
|
|
4
|
+
*/
|
|
5
|
+
export interface BaseChartProps {
|
|
6
|
+
/** Chart width in pixels. Default: 600 */
|
|
7
|
+
width?: number;
|
|
8
|
+
/** Chart height in pixels. Default: 400 */
|
|
9
|
+
height?: number;
|
|
10
|
+
/** Margin around the chart. Can be number (same on all sides) or object specifying each side */
|
|
11
|
+
margin?: MarginType;
|
|
12
|
+
/** CSS class name for the chart container */
|
|
13
|
+
className?: string;
|
|
14
|
+
/** Chart title displayed at the top */
|
|
15
|
+
title?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Axis configuration props
|
|
19
|
+
*/
|
|
20
|
+
export interface AxisConfig {
|
|
21
|
+
/** Label for the x-axis */
|
|
22
|
+
xLabel?: string;
|
|
23
|
+
/** Label for the y-axis */
|
|
24
|
+
yLabel?: string;
|
|
25
|
+
/** Format function for x-axis tick labels */
|
|
26
|
+
xFormat?: (d: any) => string;
|
|
27
|
+
/** Format function for y-axis tick labels */
|
|
28
|
+
yFormat?: (d: any) => string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Accessor type - can be a property name or a function
|
|
32
|
+
* @deprecated Use DataAccessor from generalTypes for generic type safety
|
|
33
|
+
*/
|
|
34
|
+
export type Accessor<T = any> = string | ((d: any, i?: number) => T);
|
|
35
|
+
/**
|
|
36
|
+
* Generic accessor type that provides autocomplete when TDatum is specified
|
|
37
|
+
*/
|
|
38
|
+
export type ChartAccessor<TDatum, T> = (keyof TDatum & string) | ((d: TDatum, i?: number) => T);
|
|
39
|
+
/**
|
|
40
|
+
* Color configuration
|
|
41
|
+
*/
|
|
42
|
+
export interface ColorConfig {
|
|
43
|
+
/** Field name or function to determine color */
|
|
44
|
+
colorBy?: Accessor<string>;
|
|
45
|
+
/** Color scheme name (e.g., "blues", "category10") */
|
|
46
|
+
colorScheme?: string;
|
|
47
|
+
/** Custom color palette */
|
|
48
|
+
colors?: string[];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Size configuration
|
|
52
|
+
*/
|
|
53
|
+
export interface SizeConfig {
|
|
54
|
+
/** Field name or function to determine size */
|
|
55
|
+
sizeBy?: Accessor<number>;
|
|
56
|
+
/** Min and max size range */
|
|
57
|
+
sizeRange?: [number, number];
|
|
58
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validates chart data and accessors at render time.
|
|
3
|
+
* Returns null if data is valid, or an error message string if not.
|
|
4
|
+
*
|
|
5
|
+
* Validation is intentionally lightweight — it checks the first data point
|
|
6
|
+
* to catch common mistakes (wrong field names, missing data) without
|
|
7
|
+
* iterating the entire dataset.
|
|
8
|
+
*/
|
|
9
|
+
type AccessorLike = string | ((...args: any[]) => any);
|
|
10
|
+
interface ArrayDataValidation {
|
|
11
|
+
componentName: string;
|
|
12
|
+
data: any[] | undefined | null;
|
|
13
|
+
accessors?: Record<string, AccessorLike | undefined>;
|
|
14
|
+
requiredProps?: Record<string, any>;
|
|
15
|
+
}
|
|
16
|
+
interface ObjectDataValidation {
|
|
17
|
+
componentName: string;
|
|
18
|
+
data: any | undefined | null;
|
|
19
|
+
dataLabel?: string;
|
|
20
|
+
}
|
|
21
|
+
interface NetworkDataValidation {
|
|
22
|
+
componentName: string;
|
|
23
|
+
nodes?: any[] | undefined | null;
|
|
24
|
+
edges?: any[] | undefined | null;
|
|
25
|
+
nodesRequired?: boolean;
|
|
26
|
+
edgesRequired?: boolean;
|
|
27
|
+
accessors?: Record<string, AccessorLike | undefined>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate array-based chart data (LineChart, BarChart, Scatterplot, etc.)
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateArrayData({ componentName, data, accessors, requiredProps, }: ArrayDataValidation): string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Validate object/hierarchical data (TreeDiagram, Treemap, CirclePack)
|
|
35
|
+
*/
|
|
36
|
+
export declare function validateObjectData({ componentName, data, dataLabel, }: ObjectDataValidation): string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Validate network data (ForceDirectedGraph, ChordDiagram, SankeyDiagram)
|
|
39
|
+
*/
|
|
40
|
+
export declare function validateNetworkData({ componentName, nodes, edges, nodesRequired, edgesRequired, accessors, }: NetworkDataValidation): string | null;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static props validation for AI code-generation pipelines.
|
|
3
|
+
*
|
|
4
|
+
* Validates component name, required props, prop types, enum values,
|
|
5
|
+
* unknown props (typo detection), and data shape via the existing
|
|
6
|
+
* validateArrayData / validateObjectData / validateNetworkData helpers.
|
|
7
|
+
*/
|
|
8
|
+
export interface ValidationResult {
|
|
9
|
+
valid: boolean;
|
|
10
|
+
errors: string[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Validate props for a Semiotic HOC chart component.
|
|
14
|
+
*
|
|
15
|
+
* Checks: component name, required props, prop types, enum values,
|
|
16
|
+
* unknown prop names (typo detection), and data shape + accessor validity.
|
|
17
|
+
*/
|
|
18
|
+
export declare function validateProps(componentName: string, props: Record<string, any>): ValidationResult;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { XYFrameProps } from "../../types/xyTypes";
|
|
3
|
+
import type { BaseChartProps, AxisConfig, ChartAccessor } from "../shared/types";
|
|
4
|
+
import { type TooltipProp } from "../../Tooltip/Tooltip";
|
|
5
|
+
/**
|
|
6
|
+
* AreaChart component props
|
|
7
|
+
*/
|
|
8
|
+
export interface AreaChartProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps, AxisConfig {
|
|
9
|
+
/**
|
|
10
|
+
* Array of data points, grouped by category.
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Multiple areas with grouping
|
|
14
|
+
* [{x: 1, y: 10, category: 'A'}, {x: 2, y: 20, category: 'A'}, {x: 1, y: 15, category: 'B'}]
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
data: TDatum[];
|
|
18
|
+
/**
|
|
19
|
+
* Field name or function to access x values
|
|
20
|
+
* @default "x"
|
|
21
|
+
*/
|
|
22
|
+
xAccessor?: ChartAccessor<TDatum, number>;
|
|
23
|
+
/**
|
|
24
|
+
* Field name or function to access y values
|
|
25
|
+
* @default "y"
|
|
26
|
+
*/
|
|
27
|
+
yAccessor?: ChartAccessor<TDatum, number>;
|
|
28
|
+
/**
|
|
29
|
+
* Field name or function to group data into multiple areas
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* areaBy="category" // Group by category field
|
|
33
|
+
* areaBy={d => d.group} // Use function
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
areaBy?: ChartAccessor<TDatum, string>;
|
|
37
|
+
/**
|
|
38
|
+
* Field name in area objects that contains coordinate arrays
|
|
39
|
+
* Used when data is in area objects format
|
|
40
|
+
* @default "coordinates"
|
|
41
|
+
*/
|
|
42
|
+
lineDataAccessor?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Field name or function to determine area color
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* colorBy="category"
|
|
48
|
+
* colorBy={d => d.label}
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
colorBy?: ChartAccessor<TDatum, string>;
|
|
52
|
+
/**
|
|
53
|
+
* Color scheme for categorical data or custom colors array
|
|
54
|
+
* @default "category10"
|
|
55
|
+
*/
|
|
56
|
+
colorScheme?: string | string[];
|
|
57
|
+
/**
|
|
58
|
+
* Curve interpolation type
|
|
59
|
+
* @default "monotoneX"
|
|
60
|
+
*/
|
|
61
|
+
curve?: "linear" | "monotoneX" | "monotoneY" | "step" | "stepAfter" | "stepBefore" | "basis" | "cardinal" | "catmullRom";
|
|
62
|
+
/**
|
|
63
|
+
* Area opacity
|
|
64
|
+
* @default 0.7
|
|
65
|
+
*/
|
|
66
|
+
areaOpacity?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Show line on top of area
|
|
69
|
+
* @default true
|
|
70
|
+
*/
|
|
71
|
+
showLine?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Line stroke width when showLine is true
|
|
74
|
+
* @default 2
|
|
75
|
+
*/
|
|
76
|
+
lineWidth?: number;
|
|
77
|
+
/**
|
|
78
|
+
* Enable hover annotations
|
|
79
|
+
* @default true
|
|
80
|
+
*/
|
|
81
|
+
enableHover?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Show grid lines
|
|
84
|
+
* @default false
|
|
85
|
+
*/
|
|
86
|
+
showGrid?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Show legend for multiple areas
|
|
89
|
+
* @default true (when multiple areas)
|
|
90
|
+
*/
|
|
91
|
+
showLegend?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Tooltip configuration
|
|
94
|
+
*/
|
|
95
|
+
tooltip?: TooltipProp;
|
|
96
|
+
/**
|
|
97
|
+
* Additional XYFrame props for advanced customization
|
|
98
|
+
* For full control, consider using XYFrame directly
|
|
99
|
+
* @see https://semiotic.nteract.io/guides/xy-frame
|
|
100
|
+
*/
|
|
101
|
+
frameProps?: Partial<Omit<XYFrameProps, "lines" | "size">>;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* AreaChart - Visualize quantities over continuous intervals with overlapping filled areas
|
|
105
|
+
*
|
|
106
|
+
* Each series fills from its line down to the baseline. Multiple series overlap
|
|
107
|
+
* with transparency so all shapes remain visible.
|
|
108
|
+
*
|
|
109
|
+
* For stacked areas use {@link StackedAreaChart}.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```tsx
|
|
113
|
+
* <AreaChart
|
|
114
|
+
* data={[
|
|
115
|
+
* {x: 1, y: 10, category: 'A'},
|
|
116
|
+
* {x: 2, y: 20, category: 'A'},
|
|
117
|
+
* {x: 1, y: 15, category: 'B'},
|
|
118
|
+
* {x: 2, y: 25, category: 'B'}
|
|
119
|
+
* ]}
|
|
120
|
+
* areaBy="category"
|
|
121
|
+
* colorBy="category"
|
|
122
|
+
* xLabel="Time"
|
|
123
|
+
* yLabel="Value"
|
|
124
|
+
* />
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export declare function AreaChart<TDatum extends Record<string, any> = Record<string, any>>(props: AreaChartProps<TDatum>): React.JSX.Element;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { XYFrameProps } from "../../types/xyTypes";
|
|
3
|
+
import type { BaseChartProps, AxisConfig, ChartAccessor } from "../shared/types";
|
|
4
|
+
import { type TooltipProp } from "../../Tooltip/Tooltip";
|
|
5
|
+
/**
|
|
6
|
+
* BubbleChart component props
|
|
7
|
+
*/
|
|
8
|
+
export interface BubbleChartProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps, AxisConfig {
|
|
9
|
+
/**
|
|
10
|
+
* Array of data points. Each point should have x, y, and size properties.
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* [{x: 1, y: 10, size: 50, category: 'A'}, {x: 2, y: 20, size: 30, category: 'B'}]
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
data: TDatum[];
|
|
17
|
+
/**
|
|
18
|
+
* Field name or function to access x values
|
|
19
|
+
* @default "x"
|
|
20
|
+
*/
|
|
21
|
+
xAccessor?: ChartAccessor<TDatum, number>;
|
|
22
|
+
/**
|
|
23
|
+
* Field name or function to access y values
|
|
24
|
+
* @default "y"
|
|
25
|
+
*/
|
|
26
|
+
yAccessor?: ChartAccessor<TDatum, number>;
|
|
27
|
+
/**
|
|
28
|
+
* Field name or function to determine bubble size (required)
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* sizeBy="population"
|
|
32
|
+
* sizeBy={d => Math.sqrt(d.value)}
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
sizeBy: ChartAccessor<TDatum, number>;
|
|
36
|
+
/**
|
|
37
|
+
* Min and max radius for bubbles
|
|
38
|
+
* @default [5, 40]
|
|
39
|
+
*/
|
|
40
|
+
sizeRange?: [number, number];
|
|
41
|
+
/**
|
|
42
|
+
* Field name or function to determine bubble color
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* colorBy="category"
|
|
46
|
+
* colorBy={d => d.value > 10 ? 'red' : 'blue'}
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
colorBy?: ChartAccessor<TDatum, string>;
|
|
50
|
+
/**
|
|
51
|
+
* Color scheme for categorical data or custom colors array
|
|
52
|
+
* @default "category10"
|
|
53
|
+
*/
|
|
54
|
+
colorScheme?: string | string[];
|
|
55
|
+
/**
|
|
56
|
+
* Bubble opacity
|
|
57
|
+
* @default 0.6
|
|
58
|
+
*/
|
|
59
|
+
bubbleOpacity?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Bubble stroke width
|
|
62
|
+
* @default 1
|
|
63
|
+
*/
|
|
64
|
+
bubbleStrokeWidth?: number;
|
|
65
|
+
/**
|
|
66
|
+
* Bubble stroke color
|
|
67
|
+
* @default "white"
|
|
68
|
+
*/
|
|
69
|
+
bubbleStrokeColor?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Enable hover annotations
|
|
72
|
+
* @default true
|
|
73
|
+
*/
|
|
74
|
+
enableHover?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Show grid lines
|
|
77
|
+
* @default false
|
|
78
|
+
*/
|
|
79
|
+
showGrid?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Show legend
|
|
82
|
+
* @default true (when colorBy is specified)
|
|
83
|
+
*/
|
|
84
|
+
showLegend?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Tooltip configuration
|
|
87
|
+
*/
|
|
88
|
+
tooltip?: TooltipProp;
|
|
89
|
+
/**
|
|
90
|
+
* Additional XYFrame props for advanced customization
|
|
91
|
+
* For full control, consider using XYFrame directly
|
|
92
|
+
* @see https://semiotic.nteract.io/guides/xy-frame
|
|
93
|
+
*/
|
|
94
|
+
frameProps?: Partial<Omit<XYFrameProps, "points" | "size">>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* BubbleChart - Visualize three dimensions of data using x, y, and size
|
|
98
|
+
*
|
|
99
|
+
* A simplified wrapper around XYFrame for creating bubble charts. Perfect for
|
|
100
|
+
* showing relationships between three continuous variables or comparing
|
|
101
|
+
* magnitudes across categories.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```tsx
|
|
105
|
+
* // Simple bubble chart
|
|
106
|
+
* <BubbleChart
|
|
107
|
+
* data={[
|
|
108
|
+
* {x: 1, y: 10, size: 50, name: 'A'},
|
|
109
|
+
* {x: 2, y: 20, size: 30, name: 'B'},
|
|
110
|
+
* {x: 3, y: 15, size: 70, name: 'C'}
|
|
111
|
+
* ]}
|
|
112
|
+
* sizeBy="size"
|
|
113
|
+
* xLabel="Time"
|
|
114
|
+
* yLabel="Value"
|
|
115
|
+
* />
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```tsx
|
|
120
|
+
* // With color encoding
|
|
121
|
+
* <BubbleChart
|
|
122
|
+
* data={data}
|
|
123
|
+
* sizeBy="population"
|
|
124
|
+
* colorBy="continent"
|
|
125
|
+
* sizeRange={[5, 50]}
|
|
126
|
+
* bubbleOpacity={0.7}
|
|
127
|
+
* xLabel="GDP per Capita"
|
|
128
|
+
* yLabel="Life Expectancy"
|
|
129
|
+
* />
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```tsx
|
|
134
|
+
* // Advanced: Override XYFrame props
|
|
135
|
+
* <BubbleChart
|
|
136
|
+
* data={data}
|
|
137
|
+
* sizeBy="value"
|
|
138
|
+
* frameProps={{
|
|
139
|
+
* customPointMark: ({ d }) => <circle r={d.r} fill="gold" />
|
|
140
|
+
* }}
|
|
141
|
+
* />
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @remarks
|
|
145
|
+
* This component wraps {@link XYFrame} with sensible defaults for bubble charts.
|
|
146
|
+
* For more advanced features like custom marks, annotations, or complex interactions,
|
|
147
|
+
* use XYFrame directly.
|
|
148
|
+
*
|
|
149
|
+
* **Breadcrumb to advanced usage:**
|
|
150
|
+
* - Use the `frameProps` prop to pass any XYFrame prop
|
|
151
|
+
* - See XYFrame documentation: https://semiotic.nteract.io/guides/xy-frame
|
|
152
|
+
* - All XYFrame props are available via `frameProps`
|
|
153
|
+
*
|
|
154
|
+
* @param props - BubbleChart configuration
|
|
155
|
+
* @returns Rendered bubble chart
|
|
156
|
+
*/
|
|
157
|
+
export declare function BubbleChart<TDatum extends Record<string, any> = Record<string, any>>(props: BubbleChartProps<TDatum>): React.JSX.Element;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { XYFrameProps } from "../../types/xyTypes";
|
|
3
|
+
import type { BaseChartProps, ChartAccessor } from "../shared/types";
|
|
4
|
+
import { type TooltipProp } from "../../Tooltip/Tooltip";
|
|
5
|
+
/**
|
|
6
|
+
* Heatmap component props
|
|
7
|
+
*/
|
|
8
|
+
export interface HeatmapProps<TDatum extends Record<string, any> = Record<string, any>> extends BaseChartProps {
|
|
9
|
+
/**
|
|
10
|
+
* Array of data points with x, y, and value properties.
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* [{x: 1, y: 1, value: 10}, {x: 1, y: 2, value: 20}, {x: 2, y: 1, value: 15}]
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
data: TDatum[];
|
|
17
|
+
/**
|
|
18
|
+
* Field name or function to access x values
|
|
19
|
+
* @default "x"
|
|
20
|
+
*/
|
|
21
|
+
xAccessor?: ChartAccessor<TDatum, number>;
|
|
22
|
+
/**
|
|
23
|
+
* Field name or function to access y values
|
|
24
|
+
* @default "y"
|
|
25
|
+
*/
|
|
26
|
+
yAccessor?: ChartAccessor<TDatum, number>;
|
|
27
|
+
/**
|
|
28
|
+
* Field name or function to access cell values
|
|
29
|
+
* @default "value"
|
|
30
|
+
*/
|
|
31
|
+
valueAccessor?: ChartAccessor<TDatum, number>;
|
|
32
|
+
/**
|
|
33
|
+
* Label for the x-axis
|
|
34
|
+
*/
|
|
35
|
+
xLabel?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Label for the y-axis
|
|
38
|
+
*/
|
|
39
|
+
yLabel?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Format function for x-axis tick labels
|
|
42
|
+
*/
|
|
43
|
+
xFormat?: (d: any) => string;
|
|
44
|
+
/**
|
|
45
|
+
* Format function for y-axis tick labels
|
|
46
|
+
*/
|
|
47
|
+
yFormat?: (d: any) => string;
|
|
48
|
+
/**
|
|
49
|
+
* Color scheme for the heatmap
|
|
50
|
+
* @default "blues"
|
|
51
|
+
*/
|
|
52
|
+
colorScheme?: "blues" | "reds" | "greens" | "viridis" | "custom";
|
|
53
|
+
/**
|
|
54
|
+
* Custom color scale (used when colorScheme is "custom")
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* customColorScale={scaleSequential(interpolatePlasma).domain([0, 100])}
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
customColorScale?: any;
|
|
61
|
+
/**
|
|
62
|
+
* Show values in cells
|
|
63
|
+
* @default false
|
|
64
|
+
*/
|
|
65
|
+
showValues?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Format function for cell value labels
|
|
68
|
+
*/
|
|
69
|
+
valueFormat?: (d: number) => string;
|
|
70
|
+
/**
|
|
71
|
+
* Cell border color
|
|
72
|
+
* @default "#fff"
|
|
73
|
+
*/
|
|
74
|
+
cellBorderColor?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Cell border width
|
|
77
|
+
* @default 1
|
|
78
|
+
*/
|
|
79
|
+
cellBorderWidth?: number;
|
|
80
|
+
/**
|
|
81
|
+
* Enable hover annotations
|
|
82
|
+
* @default true
|
|
83
|
+
*/
|
|
84
|
+
enableHover?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Tooltip configuration
|
|
87
|
+
*/
|
|
88
|
+
tooltip?: TooltipProp;
|
|
89
|
+
/**
|
|
90
|
+
* Additional XYFrame props for advanced customization
|
|
91
|
+
* For full control, consider using XYFrame directly
|
|
92
|
+
* @see https://semiotic.nteract.io/guides/xy-frame
|
|
93
|
+
*/
|
|
94
|
+
frameProps?: Partial<Omit<XYFrameProps, "summaries" | "size">>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Heatmap - Visualize matrix data with color-encoded cells
|
|
98
|
+
*
|
|
99
|
+
* A simplified wrapper around XYFrame for creating heatmaps. Perfect for
|
|
100
|
+
* showing patterns, correlations, and distributions in 2D data.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```tsx
|
|
104
|
+
* // Simple heatmap
|
|
105
|
+
* <Heatmap
|
|
106
|
+
* data={[
|
|
107
|
+
* {x: 1, y: 1, value: 10},
|
|
108
|
+
* {x: 1, y: 2, value: 20},
|
|
109
|
+
* {x: 2, y: 1, value: 15},
|
|
110
|
+
* {x: 2, y: 2, value: 25}
|
|
111
|
+
* ]}
|
|
112
|
+
* xLabel="Time"
|
|
113
|
+
* yLabel="Category"
|
|
114
|
+
* />
|
|
115
|
+
* ```
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```tsx
|
|
119
|
+
* // With custom color scheme and value labels
|
|
120
|
+
* <Heatmap
|
|
121
|
+
* data={data}
|
|
122
|
+
* colorScheme="viridis"
|
|
123
|
+
* showValues={true}
|
|
124
|
+
* valueFormat={d => d.toFixed(1)}
|
|
125
|
+
* />
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```tsx
|
|
130
|
+
* // Advanced: Custom color scale
|
|
131
|
+
* <Heatmap
|
|
132
|
+
* data={data}
|
|
133
|
+
* colorScheme="custom"
|
|
134
|
+
* customColorScale={
|
|
135
|
+
* scaleSequential(interpolatePlasma).domain([0, 100])
|
|
136
|
+
* }
|
|
137
|
+
* />
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @remarks
|
|
141
|
+
* This component wraps {@link XYFrame} with sensible defaults for heatmaps.
|
|
142
|
+
* For more advanced features like hexbins, contours, or custom summaries,
|
|
143
|
+
* use XYFrame directly.
|
|
144
|
+
*
|
|
145
|
+
* **Breadcrumb to advanced usage:**
|
|
146
|
+
* - Use the `frameProps` prop to pass any XYFrame prop
|
|
147
|
+
* - See XYFrame documentation: https://semiotic.nteract.io/guides/xy-frame
|
|
148
|
+
* - All XYFrame props are available via `frameProps`
|
|
149
|
+
*
|
|
150
|
+
* @param props - Heatmap configuration
|
|
151
|
+
* @returns Rendered heatmap
|
|
152
|
+
*/
|
|
153
|
+
export declare function Heatmap<TDatum extends Record<string, any> = Record<string, any>>(props: HeatmapProps<TDatum>): React.JSX.Element;
|