semiotic 3.0.0-beta.2 → 3.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/CLAUDE.md +93 -753
  2. package/README.md +92 -7
  3. package/ai/dist/componentRegistry.js +26 -0
  4. package/ai/dist/{ai/mcp-server.js → mcp-server.js} +1 -1
  5. package/ai/dist/{ai/renderHOCToSVG.js → renderHOCToSVG.js} +2 -2
  6. package/dist/ChartContainer.d.ts +60 -0
  7. package/dist/DetailsPanel.d.ts +37 -0
  8. package/dist/LinkedCharts.d.ts +2 -0
  9. package/dist/Tooltip/Tooltip.d.ts +2 -2
  10. package/dist/charts/index.d.ts +1 -1
  11. package/dist/charts/ordinal/BarChart.d.ts +1 -0
  12. package/dist/charts/ordinal/BoxPlot.d.ts +1 -0
  13. package/dist/charts/ordinal/DonutChart.d.ts +1 -0
  14. package/dist/charts/ordinal/DotPlot.d.ts +1 -0
  15. package/dist/charts/ordinal/GroupedBarChart.d.ts +1 -0
  16. package/dist/charts/ordinal/Histogram.d.ts +1 -0
  17. package/dist/charts/ordinal/PieChart.d.ts +1 -0
  18. package/dist/charts/ordinal/RidgelinePlot.d.ts +1 -0
  19. package/dist/charts/ordinal/StackedBarChart.d.ts +1 -0
  20. package/dist/charts/ordinal/SwarmPlot.d.ts +1 -0
  21. package/dist/charts/ordinal/ViolinPlot.d.ts +1 -0
  22. package/dist/charts/realtime/RealtimeHeatmap.d.ts +11 -0
  23. package/dist/charts/realtime/RealtimeHistogram.d.ts +15 -1
  24. package/dist/charts/realtime/RealtimeLineChart.d.ts +6 -0
  25. package/dist/charts/realtime/RealtimeSwarmChart.d.ts +6 -0
  26. package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +6 -0
  27. package/dist/charts/shared/annotationRules.d.ts +3 -0
  28. package/dist/charts/shared/colorUtils.d.ts +17 -11
  29. package/dist/charts/shared/hooks.d.ts +96 -1
  30. package/dist/charts/shared/loess.d.ts +13 -0
  31. package/dist/charts/shared/networkUtils.d.ts +31 -0
  32. package/dist/charts/shared/tooltipUtils.d.ts +16 -0
  33. package/dist/charts/shared/types.d.ts +17 -2
  34. package/dist/charts/shared/validateChartData.d.ts +2 -3
  35. package/dist/charts/shared/validateProps.d.ts +18 -0
  36. package/dist/charts/xy/AreaChart.d.ts +4 -0
  37. package/dist/charts/xy/BubbleChart.d.ts +6 -0
  38. package/dist/charts/xy/Heatmap.d.ts +4 -0
  39. package/dist/charts/xy/LineChart.d.ts +6 -0
  40. package/dist/charts/xy/Scatterplot.d.ts +4 -0
  41. package/dist/charts/xy/StackedAreaChart.d.ts +4 -0
  42. package/dist/data/fromVegaLite.d.ts +48 -0
  43. package/dist/export/chartConfig.d.ts +29 -0
  44. package/dist/export/selectionSerializer.d.ts +20 -0
  45. package/dist/geometry/sankeyLinks.d.ts +1 -1
  46. package/dist/network.min.js +1 -1
  47. package/dist/network.module.min.js +1 -1
  48. package/dist/ordinal.min.js +1 -1
  49. package/dist/ordinal.module.min.js +1 -1
  50. package/dist/realtime/types.d.ts +20 -6
  51. package/dist/realtime.min.js +1 -1
  52. package/dist/realtime.module.min.js +1 -1
  53. package/dist/semiotic-ai.d.ts +14 -0
  54. package/dist/semiotic-ai.min.js +1 -1
  55. package/dist/semiotic-ai.module.min.js +1 -1
  56. package/dist/semiotic-data.d.ts +2 -0
  57. package/dist/semiotic-data.min.js +1 -1
  58. package/dist/semiotic-data.module.min.js +1 -1
  59. package/dist/semiotic-network.d.ts +9 -19
  60. package/dist/semiotic-ordinal.d.ts +12 -14
  61. package/dist/semiotic-xy.d.ts +12 -18
  62. package/dist/semiotic.d.ts +16 -13
  63. package/dist/semiotic.min.js +1 -1
  64. package/dist/semiotic.module.min.js +1 -1
  65. package/dist/server.min.js +1 -1
  66. package/dist/server.module.min.js +1 -1
  67. package/dist/store/ObservationStore.d.ts +61 -0
  68. package/dist/store/SelectionStore.d.ts +9 -1
  69. package/dist/store/ThemeStore.d.ts +6 -1
  70. package/dist/store/TooltipStore.d.ts +3 -1
  71. package/dist/store/createStore.d.ts +4 -1
  72. package/dist/store/useObservation.d.ts +18 -0
  73. package/dist/stream/MarginalGraphics.d.ts +1 -1
  74. package/dist/stream/NetworkPipelineStore.d.ts +44 -0
  75. package/dist/stream/OrdinalCanvasHitTester.d.ts +1 -0
  76. package/dist/stream/OrdinalSVGOverlay.d.ts +6 -2
  77. package/dist/stream/ParticlePool.d.ts +2 -1
  78. package/dist/stream/PipelineStore.d.ts +11 -0
  79. package/dist/stream/SVGOverlay.d.ts +21 -2
  80. package/dist/stream/SceneGraph.d.ts +1 -1
  81. package/dist/stream/networkTypes.d.ts +58 -1
  82. package/dist/stream/ordinalTypes.d.ts +13 -0
  83. package/dist/stream/types.d.ts +14 -0
  84. package/dist/types/annotationTypes.d.ts +10 -0
  85. package/dist/types/networkTypes.d.ts +1 -2
  86. package/dist/xy.min.js +1 -1
  87. package/dist/xy.module.min.js +1 -1
  88. package/package.json +30 -42
  89. package/ai/dist/ai/componentRegistry.js +0 -45
  90. package/ai/dist/src/components/Annotation.js +0 -358
  91. package/ai/dist/src/components/AnnotationLayer/AnnotationLayer.js +0 -369
  92. package/ai/dist/src/components/Axis/Axis.js +0 -374
  93. package/ai/dist/src/components/Axis/axisTitle.js +0 -14
  94. package/ai/dist/src/components/Axis/index.js +0 -7
  95. package/ai/dist/src/components/Axis/summaryGraphic.js +0 -37
  96. package/ai/dist/src/components/Brush.js +0 -84
  97. package/ai/dist/src/components/ChartErrorBoundary.js +0 -91
  98. package/ai/dist/src/components/DividedLine.js +0 -65
  99. package/ai/dist/src/components/Legend.js +0 -140
  100. package/ai/dist/src/components/LinkedCharts.js +0 -95
  101. package/ai/dist/src/components/ThemeProvider.js +0 -79
  102. package/ai/dist/src/components/Tooltip/Tooltip.js +0 -309
  103. package/ai/dist/src/components/TooltipPositioner/index.js +0 -132
  104. package/ai/dist/src/components/annotationLayerBehavior/annotationHandling.js +0 -73
  105. package/ai/dist/src/components/annotationLayerBehavior/d3labeler.js +0 -254
  106. package/ai/dist/src/components/annotationRules/baseRules.js +0 -150
  107. package/ai/dist/src/components/annotationRules/networkframeRules.js +0 -196
  108. package/ai/dist/src/components/annotationRules/xyframeRules.js +0 -297
  109. package/ai/dist/src/components/batchWork.js +0 -35
  110. package/ai/dist/src/components/charts/index.js +0 -109
  111. package/ai/dist/src/components/charts/network/ChordDiagram.js +0 -142
  112. package/ai/dist/src/components/charts/network/CirclePack.js +0 -108
  113. package/ai/dist/src/components/charts/network/ForceDirectedGraph.js +0 -121
  114. package/ai/dist/src/components/charts/network/SankeyDiagram.js +0 -155
  115. package/ai/dist/src/components/charts/network/TreeDiagram.js +0 -110
  116. package/ai/dist/src/components/charts/network/Treemap.js +0 -106
  117. package/ai/dist/src/components/charts/ordinal/BarChart.js +0 -156
  118. package/ai/dist/src/components/charts/ordinal/BoxPlot.js +0 -139
  119. package/ai/dist/src/components/charts/ordinal/DonutChart.js +0 -130
  120. package/ai/dist/src/components/charts/ordinal/DotPlot.js +0 -126
  121. package/ai/dist/src/components/charts/ordinal/GroupedBarChart.js +0 -129
  122. package/ai/dist/src/components/charts/ordinal/Histogram.js +0 -132
  123. package/ai/dist/src/components/charts/ordinal/PieChart.js +0 -128
  124. package/ai/dist/src/components/charts/ordinal/RidgelinePlot.js +0 -130
  125. package/ai/dist/src/components/charts/ordinal/StackedBarChart.js +0 -130
  126. package/ai/dist/src/components/charts/ordinal/SwarmPlot.js +0 -147
  127. package/ai/dist/src/components/charts/ordinal/ViolinPlot.js +0 -138
  128. package/ai/dist/src/components/charts/realtime/RealtimeHeatmap.js +0 -79
  129. package/ai/dist/src/components/charts/realtime/RealtimeHistogram.js +0 -114
  130. package/ai/dist/src/components/charts/realtime/RealtimeLineChart.js +0 -93
  131. package/ai/dist/src/components/charts/realtime/RealtimeSwarmChart.js +0 -105
  132. package/ai/dist/src/components/charts/realtime/RealtimeWaterfallChart.js +0 -106
  133. package/ai/dist/src/components/charts/shared/ChartError.js +0 -72
  134. package/ai/dist/src/components/charts/shared/colorUtils.js +0 -138
  135. package/ai/dist/src/components/charts/shared/formatUtils.js +0 -213
  136. package/ai/dist/src/components/charts/shared/hooks.js +0 -49
  137. package/ai/dist/src/components/charts/shared/legendUtils.js +0 -57
  138. package/ai/dist/src/components/charts/shared/selectionUtils.js +0 -67
  139. package/ai/dist/src/components/charts/shared/tooltipUtils.js +0 -79
  140. package/ai/dist/src/components/charts/shared/types.js +0 -2
  141. package/ai/dist/src/components/charts/shared/validateChartData.js +0 -82
  142. package/ai/dist/src/components/charts/shared/validateProps.js +0 -736
  143. package/ai/dist/src/components/charts/xy/AreaChart.js +0 -230
  144. package/ai/dist/src/components/charts/xy/BubbleChart.js +0 -251
  145. package/ai/dist/src/components/charts/xy/Heatmap.js +0 -235
  146. package/ai/dist/src/components/charts/xy/LineChart.js +0 -307
  147. package/ai/dist/src/components/charts/xy/MinimapChart.js +0 -298
  148. package/ai/dist/src/components/charts/xy/Scatterplot.js +0 -172
  149. package/ai/dist/src/components/charts/xy/ScatterplotMatrix.js +0 -426
  150. package/ai/dist/src/components/charts/xy/StackedAreaChart.js +0 -231
  151. package/ai/dist/src/components/constants/coordinateNames.js +0 -11
  152. package/ai/dist/src/components/constants/frame_props.js +0 -251
  153. package/ai/dist/src/components/data/dataFunctions.js +0 -487
  154. package/ai/dist/src/components/data/multiAccessorUtils.js +0 -14
  155. package/ai/dist/src/components/data/transforms.js +0 -143
  156. package/ai/dist/src/components/data/unflowedFunctions.js +0 -5
  157. package/ai/dist/src/components/export/exportChart.js +0 -121
  158. package/ai/dist/src/components/generic_utilities/functions.js +0 -5
  159. package/ai/dist/src/components/geometry/areaDrawing.js +0 -312
  160. package/ai/dist/src/components/geometry/contourLayout.js +0 -73
  161. package/ai/dist/src/components/geometry/hexbinLayout.js +0 -163
  162. package/ai/dist/src/components/geometry/lineDrawing.js +0 -356
  163. package/ai/dist/src/components/geometry/sankeyLinks.js +0 -331
  164. package/ai/dist/src/components/geometry/summaryLayouts.js +0 -136
  165. package/ai/dist/src/components/index.js +0 -18
  166. package/ai/dist/src/components/processing/InteractionItems.js +0 -223
  167. package/ai/dist/src/components/processing/hierarchyUtils.js +0 -104
  168. package/ai/dist/src/components/processing/layouts/chordLayout.js +0 -58
  169. package/ai/dist/src/components/processing/layouts/forceLayout.js +0 -142
  170. package/ai/dist/src/components/processing/layouts/hierarchyLayout.js +0 -31
  171. package/ai/dist/src/components/processing/layouts/index.js +0 -32
  172. package/ai/dist/src/components/processing/layouts/sankeyLayout.js +0 -96
  173. package/ai/dist/src/components/processing/layouts/simpleLayouts.js +0 -34
  174. package/ai/dist/src/components/processing/layouts/types.js +0 -2
  175. package/ai/dist/src/components/processing/networkDefaults.js +0 -39
  176. package/ai/dist/src/components/realtime/BinAccumulator.js +0 -36
  177. package/ai/dist/src/components/realtime/IncrementalExtent.js +0 -55
  178. package/ai/dist/src/components/realtime/RingBuffer.js +0 -104
  179. package/ai/dist/src/components/realtime/renderers/barRenderer.js +0 -133
  180. package/ai/dist/src/components/realtime/renderers/candlestickRenderer.js +0 -7
  181. package/ai/dist/src/components/realtime/renderers/lineRenderer.js +0 -164
  182. package/ai/dist/src/components/realtime/renderers/swarmRenderer.js +0 -91
  183. package/ai/dist/src/components/realtime/renderers/types.js +0 -2
  184. package/ai/dist/src/components/realtime/renderers/waterfallRenderer.js +0 -163
  185. package/ai/dist/src/components/realtime/types.js +0 -2
  186. package/ai/dist/src/components/semiotic-ai.js +0 -89
  187. package/ai/dist/src/components/semiotic-data.js +0 -12
  188. package/ai/dist/src/components/semiotic-network.js +0 -38
  189. package/ai/dist/src/components/semiotic-ordinal.js +0 -28
  190. package/ai/dist/src/components/semiotic-realtime.js +0 -30
  191. package/ai/dist/src/components/semiotic-server.js +0 -8
  192. package/ai/dist/src/components/semiotic-xy.js +0 -35
  193. package/ai/dist/src/components/semiotic.js +0 -109
  194. package/ai/dist/src/components/server/renderToStaticSVG.js +0 -594
  195. package/ai/dist/src/components/store/SelectionStore.js +0 -91
  196. package/ai/dist/src/components/store/ThemeStore.js +0 -78
  197. package/ai/dist/src/components/store/TooltipStore.js +0 -13
  198. package/ai/dist/src/components/store/createStore.js +0 -81
  199. package/ai/dist/src/components/store/useSelection.js +0 -133
  200. package/ai/dist/src/components/stream/CanvasHitTester.js +0 -164
  201. package/ai/dist/src/components/stream/DataSourceAdapter.js +0 -99
  202. package/ai/dist/src/components/stream/MarginalGraphics.js +0 -266
  203. package/ai/dist/src/components/stream/NetworkCanvasHitTester.js +0 -228
  204. package/ai/dist/src/components/stream/NetworkPipelineStore.js +0 -498
  205. package/ai/dist/src/components/stream/NetworkSVGOverlay.js +0 -70
  206. package/ai/dist/src/components/stream/NetworkSceneGraph.js +0 -38
  207. package/ai/dist/src/components/stream/OrdinalCanvasHitTester.js +0 -146
  208. package/ai/dist/src/components/stream/OrdinalPipelineStore.js +0 -786
  209. package/ai/dist/src/components/stream/OrdinalSVGOverlay.js +0 -130
  210. package/ai/dist/src/components/stream/ParticlePool.js +0 -174
  211. package/ai/dist/src/components/stream/PipelineStore.js +0 -1243
  212. package/ai/dist/src/components/stream/SVGOverlay.js +0 -129
  213. package/ai/dist/src/components/stream/SceneGraph.js +0 -132
  214. package/ai/dist/src/components/stream/StreamNetworkFrame.js +0 -561
  215. package/ai/dist/src/components/stream/StreamOrdinalFrame.js +0 -492
  216. package/ai/dist/src/components/stream/StreamXYFrame.js +0 -590
  217. package/ai/dist/src/components/stream/accessorUtils.js +0 -20
  218. package/ai/dist/src/components/stream/index.js +0 -32
  219. package/ai/dist/src/components/stream/layouts/chordLayoutPlugin.js +0 -352
  220. package/ai/dist/src/components/stream/layouts/forceLayoutPlugin.js +0 -230
  221. package/ai/dist/src/components/stream/layouts/hierarchyLayoutPlugin.js +0 -568
  222. package/ai/dist/src/components/stream/layouts/index.js +0 -28
  223. package/ai/dist/src/components/stream/layouts/sankeyLayoutPlugin.js +0 -245
  224. package/ai/dist/src/components/stream/networkTypes.js +0 -17
  225. package/ai/dist/src/components/stream/ordinalSceneBuilders/barScene.js +0 -126
  226. package/ai/dist/src/components/stream/ordinalSceneBuilders/connectorScene.js +0 -62
  227. package/ai/dist/src/components/stream/ordinalSceneBuilders/pieScene.js +0 -33
  228. package/ai/dist/src/components/stream/ordinalSceneBuilders/pointScene.js +0 -63
  229. package/ai/dist/src/components/stream/ordinalSceneBuilders/statisticalScene.js +0 -278
  230. package/ai/dist/src/components/stream/ordinalSceneBuilders/timelineScene.js +0 -30
  231. package/ai/dist/src/components/stream/ordinalSceneBuilders/types.js +0 -2
  232. package/ai/dist/src/components/stream/ordinalTypes.js +0 -2
  233. package/ai/dist/src/components/stream/renderers/areaCanvasRenderer.js +0 -48
  234. package/ai/dist/src/components/stream/renderers/barCanvasRenderer.js +0 -70
  235. package/ai/dist/src/components/stream/renderers/boxplotCanvasRenderer.js +0 -75
  236. package/ai/dist/src/components/stream/renderers/candlestickCanvasRenderer.js +0 -28
  237. package/ai/dist/src/components/stream/renderers/connectorCanvasRenderer.js +0 -47
  238. package/ai/dist/src/components/stream/renderers/heatmapCanvasRenderer.js +0 -31
  239. package/ai/dist/src/components/stream/renderers/lineCanvasRenderer.js +0 -140
  240. package/ai/dist/src/components/stream/renderers/networkArcRenderer.js +0 -38
  241. package/ai/dist/src/components/stream/renderers/networkCircleRenderer.js +0 -37
  242. package/ai/dist/src/components/stream/renderers/networkEdgeRenderer.js +0 -102
  243. package/ai/dist/src/components/stream/renderers/networkParticleRenderer.js +0 -63
  244. package/ai/dist/src/components/stream/renderers/networkRectRenderer.js +0 -35
  245. package/ai/dist/src/components/stream/renderers/pointCanvasRenderer.js +0 -38
  246. package/ai/dist/src/components/stream/renderers/swarmCanvasRenderer.js +0 -10
  247. package/ai/dist/src/components/stream/renderers/types.js +0 -2
  248. package/ai/dist/src/components/stream/renderers/violinCanvasRenderer.js +0 -47
  249. package/ai/dist/src/components/stream/renderers/waterfallCanvasRenderer.js +0 -38
  250. package/ai/dist/src/components/stream/renderers/wedgeCanvasRenderer.js +0 -33
  251. package/ai/dist/src/components/stream/types.js +0 -2
  252. package/ai/dist/src/components/types/annotationTypes.js +0 -2
  253. package/ai/dist/src/components/types/canvasTypes.js +0 -2
  254. package/ai/dist/src/components/types/generalTypes.js +0 -2
  255. package/ai/dist/src/components/types/interactionTypes.js +0 -2
  256. package/ai/dist/src/components/types/legendTypes.js +0 -2
  257. package/ai/dist/src/components/types/networkTypes.js +0 -2
  258. package/ai/dist/src/components/types/ordinalTypes.js +0 -2
  259. package/ai/dist/src/components/types/xyTypes.js +0 -2
  260. package/ai/dist/src/components/useBoundingRect.js +0 -24
  261. package/ai/dist/src/components/visualizationLayerBehavior/axis.js +0 -301
  262. package/ai/dist/src/components/visualizationLayerBehavior/general.js +0 -435
  263. package/ai/dist/src/setupTests.js +0 -4
  264. package/dist/AnnotationLayer/AnnotationLayer.d.ts +0 -25
  265. package/dist/Axis/Axis.d.ts +0 -7
  266. package/dist/Axis/axisTitle.d.ts +0 -10
  267. package/dist/Axis/index.d.ts +0 -2
  268. package/dist/Axis/summaryGraphic.d.ts +0 -17
  269. package/dist/Brush.d.ts +0 -12
  270. package/dist/DividedLine.d.ts +0 -16
  271. package/dist/TooltipPositioner/index.d.ts +0 -7
  272. package/dist/annotationLayerBehavior/annotationHandling.d.ts +0 -19
  273. package/dist/annotationLayerBehavior/d3labeler.d.ts +0 -9
  274. package/dist/annotationRules/baseRules.d.ts +0 -25
  275. package/dist/annotationRules/networkframeRules.d.ts +0 -48
  276. package/dist/annotationRules/xyframeRules.d.ts +0 -117
  277. package/dist/batchWork.d.ts +0 -6
  278. package/dist/constants/coordinateNames.d.ts +0 -8
  279. package/dist/constants/frame_props.d.ts +0 -13
  280. package/dist/data/dataFunctions.d.ts +0 -45
  281. package/dist/data/multiAccessorUtils.d.ts +0 -1
  282. package/dist/data/unflowedFunctions.d.ts +0 -1
  283. package/dist/generic_utilities/functions.d.ts +0 -1
  284. package/dist/geometry/areaDrawing.d.ts +0 -21
  285. package/dist/geometry/contourLayout.d.ts +0 -6
  286. package/dist/geometry/hexbinLayout.d.ts +0 -7
  287. package/dist/geometry/lineDrawing.d.ts +0 -71
  288. package/dist/geometry/summaryLayouts.d.ts +0 -45
  289. package/dist/index.d.ts +0 -1
  290. package/dist/network.js +0 -7495
  291. package/dist/network.js.map +0 -1
  292. package/dist/network.module.js +0 -7458
  293. package/dist/network.module.js.map +0 -1
  294. package/dist/ordinal.js +0 -6497
  295. package/dist/ordinal.js.map +0 -1
  296. package/dist/ordinal.module.js +0 -6465
  297. package/dist/ordinal.module.js.map +0 -1
  298. package/dist/processing/InteractionItems.d.ts +0 -13
  299. package/dist/processing/hierarchyUtils.d.ts +0 -16
  300. package/dist/processing/layouts/chordLayout.d.ts +0 -2
  301. package/dist/processing/layouts/forceLayout.d.ts +0 -3
  302. package/dist/processing/layouts/hierarchyLayout.d.ts +0 -10
  303. package/dist/processing/layouts/index.d.ts +0 -8
  304. package/dist/processing/layouts/sankeyLayout.d.ts +0 -8
  305. package/dist/processing/layouts/simpleLayouts.d.ts +0 -7
  306. package/dist/processing/layouts/types.d.ts +0 -17
  307. package/dist/processing/networkDefaults.d.ts +0 -36
  308. package/dist/realtime/renderers/barRenderer.d.ts +0 -2
  309. package/dist/realtime/renderers/candlestickRenderer.d.ts +0 -2
  310. package/dist/realtime/renderers/lineRenderer.d.ts +0 -2
  311. package/dist/realtime/renderers/swarmRenderer.d.ts +0 -2
  312. package/dist/realtime.js +0 -7072
  313. package/dist/realtime.js.map +0 -1
  314. package/dist/realtime.module.js +0 -7043
  315. package/dist/realtime.module.js.map +0 -1
  316. package/dist/semiotic-ai.js +0 -13323
  317. package/dist/semiotic-ai.js.map +0 -1
  318. package/dist/semiotic-ai.module.js +0 -13264
  319. package/dist/semiotic-ai.module.js.map +0 -1
  320. package/dist/semiotic-data.js +0 -141
  321. package/dist/semiotic-data.js.map +0 -1
  322. package/dist/semiotic-data.module.js +0 -136
  323. package/dist/semiotic-data.module.js.map +0 -1
  324. package/dist/semiotic.js +0 -16351
  325. package/dist/semiotic.js.map +0 -1
  326. package/dist/semiotic.module.js +0 -16265
  327. package/dist/semiotic.module.js.map +0 -1
  328. package/dist/server.js +0 -5191
  329. package/dist/server.js.map +0 -1
  330. package/dist/server.module.js +0 -5166
  331. package/dist/server.module.js.map +0 -1
  332. package/dist/stream/NetworkSceneGraph.d.ts +0 -14
  333. package/dist/stream/index.d.ts +0 -16
  334. package/dist/types/canvasTypes.d.ts +0 -9
  335. package/dist/types/xyTypes.d.ts +0 -24
  336. package/dist/useBoundingRect.d.ts +0 -2
  337. package/dist/visualizationLayerBehavior/axis.d.ts +0 -36
  338. package/dist/visualizationLayerBehavior/general.d.ts +0 -80
  339. package/dist/xy.js +0 -6993
  340. package/dist/xy.js.map +0 -1
  341. package/dist/xy.module.js +0 -6957
  342. package/dist/xy.module.js.map +0 -1
@@ -1,498 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NetworkPipelineStore = void 0;
4
- const d3_interpolate_1 = require("d3-interpolate");
5
- const ParticlePool_1 = require("./ParticlePool");
6
- const layouts_1 = require("./layouts");
7
- const networkTypes_1 = require("./networkTypes");
8
- const CURVATURE = 0.5;
9
- /**
10
- * NetworkPipelineStore — stateful store for the StreamNetworkFrame.
11
- *
12
- * Absorbs TopologyStore's functionality (mutable Maps, tension tracking,
13
- * bezier caching) and adds layout plugin dispatch and scene graph generation.
14
- *
15
- * For bounded data: ingests nodes/edges arrays, runs layout once, builds scene.
16
- * For streaming data: ingests edge pushes, tracks tension, relayouts on threshold.
17
- */
18
- class NetworkPipelineStore {
19
- constructor(config) {
20
- // ── Topology ──────────────────────────────────────────────────────────
21
- this.nodes = new Map();
22
- this.edges = new Map();
23
- this.tension = 0;
24
- this.layoutVersion = 0;
25
- // ── Scene graph ───────────────────────────────────────────────────────
26
- this.sceneNodes = [];
27
- this.sceneEdges = [];
28
- this.labels = [];
29
- // ── Particles ─────────────────────────────────────────────────────────
30
- this.particlePool = null;
31
- // ── Transition animation ──────────────────────────────────────────────
32
- this.transition = null;
33
- this.config = config;
34
- this.tensionConfig = {
35
- ...networkTypes_1.DEFAULT_TENSION_CONFIG,
36
- ...config.tensionConfig
37
- };
38
- // Lazy particle pool — only for sankey with particles
39
- if (config.chartType === "sankey" && config.showParticles) {
40
- this.particlePool = new ParticlePool_1.ParticlePool(2000);
41
- }
42
- }
43
- // ── Config update ─────────────────────────────────────────────────────
44
- updateConfig(config) {
45
- this.config = config;
46
- this.tensionConfig = {
47
- ...networkTypes_1.DEFAULT_TENSION_CONFIG,
48
- ...config.tensionConfig
49
- };
50
- // Create/destroy particle pool based on config
51
- if (config.chartType === "sankey" && config.showParticles) {
52
- if (!this.particlePool) {
53
- this.particlePool = new ParticlePool_1.ParticlePool(2000);
54
- }
55
- }
56
- else {
57
- this.particlePool = null;
58
- }
59
- }
60
- // ── Hierarchy data ingestion ──────────────────────────────────────────
61
- /**
62
- * Ingest hierarchy root data for tree/treemap/circlepack/partition layouts.
63
- * The hierarchy root is passed to the layout plugin via config.__hierarchyRoot.
64
- */
65
- ingestHierarchy(rootData, size) {
66
- this.nodes.clear();
67
- this.edges.clear();
68
- this.config.__hierarchyRoot = rootData;
69
- // Run layout — the hierarchical plugin will populate nodes/edges
70
- this.runLayout(size);
71
- }
72
- // ── Bounded data ingestion ────────────────────────────────────────────
73
- /**
74
- * Ingest bounded node/edge arrays (from props).
75
- * Clears existing topology and rebuilds from scratch.
76
- */
77
- ingestBounded(rawNodes, rawEdges, size) {
78
- const { nodeIDAccessor = "id", sourceAccessor = "source", targetAccessor = "target", valueAccessor = "value" } = this.config;
79
- const getNodeId = typeof nodeIDAccessor === "function"
80
- ? nodeIDAccessor
81
- : (d) => d[nodeIDAccessor];
82
- const getSource = typeof sourceAccessor === "function"
83
- ? sourceAccessor
84
- : (d) => d[sourceAccessor];
85
- const getTarget = typeof targetAccessor === "function"
86
- ? targetAccessor
87
- : (d) => d[targetAccessor];
88
- const getValue = typeof valueAccessor === "function"
89
- ? valueAccessor
90
- : (d) => d[valueAccessor] ?? 1;
91
- this.nodes.clear();
92
- this.edges.clear();
93
- // Build node map
94
- for (const raw of rawNodes) {
95
- const id = String(getNodeId(raw));
96
- this.nodes.set(id, {
97
- ...createNode(id),
98
- data: raw
99
- });
100
- }
101
- // Build edge map (creating nodes if not provided)
102
- for (const raw of rawEdges) {
103
- const sourceId = String(getSource(raw));
104
- const targetId = String(getTarget(raw));
105
- const value = Number(getValue(raw)) || 1;
106
- if (!this.nodes.has(sourceId)) {
107
- this.nodes.set(sourceId, { ...createNode(sourceId), data: raw });
108
- }
109
- if (!this.nodes.has(targetId)) {
110
- this.nodes.set(targetId, { ...createNode(targetId), data: raw });
111
- }
112
- const key = `${sourceId}\0${targetId}`;
113
- this.edges.set(key, {
114
- source: sourceId,
115
- target: targetId,
116
- value,
117
- y0: 0,
118
- y1: 0,
119
- sankeyWidth: 0,
120
- data: raw
121
- });
122
- }
123
- // Run layout
124
- this.runLayout(size);
125
- }
126
- // ── Streaming data ingestion ──────────────────────────────────────────
127
- /**
128
- * Unique key for an edge (same as TopologyStore).
129
- */
130
- edgeKey(source, target) {
131
- return `${source}\0${target}`;
132
- }
133
- /**
134
- * Ingest a pushed edge. Creates nodes/edges as needed and accumulates tension.
135
- * Returns true if a relayout is needed.
136
- */
137
- ingestEdge(push) {
138
- const { source, target, value } = push;
139
- const isFirst = this.nodes.size === 0;
140
- let topologyChanged = false;
141
- if (!this.nodes.has(source)) {
142
- this.nodes.set(source, createNode(source));
143
- this.tension += this.tensionConfig.newNode;
144
- topologyChanged = true;
145
- }
146
- if (!this.nodes.has(target)) {
147
- this.nodes.set(target, createNode(target));
148
- this.tension += this.tensionConfig.newNode;
149
- topologyChanged = true;
150
- }
151
- const key = this.edgeKey(source, target);
152
- const existing = this.edges.get(key);
153
- if (existing) {
154
- existing.value += value;
155
- this.tension += this.tensionConfig.weightChange;
156
- }
157
- else {
158
- this.edges.set(key, {
159
- source,
160
- target,
161
- value,
162
- y0: 0,
163
- y1: 0,
164
- sankeyWidth: 0
165
- });
166
- this.tension += this.tensionConfig.newEdge;
167
- topologyChanged = true;
168
- }
169
- return isFirst || topologyChanged || this.tension >= this.tensionConfig.threshold;
170
- }
171
- // ── Layout execution ──────────────────────────────────────────────────
172
- /**
173
- * Run the layout algorithm via the appropriate plugin.
174
- */
175
- runLayout(size) {
176
- const plugin = (0, layouts_1.getLayoutPlugin)(this.config.chartType);
177
- if (!plugin)
178
- return;
179
- let nodesArr = Array.from(this.nodes.values());
180
- let edgesArr = Array.from(this.edges.values());
181
- // For hierarchical plugins the store's Maps are empty — the plugin
182
- // populates the nodes/edges arrays itself from config.__hierarchyRoot.
183
- // Skip the early exit so the plugin gets called.
184
- if (nodesArr.length === 0 && !plugin.hierarchical)
185
- return;
186
- // Save previous positions for transition
187
- this.prepareForRelayout();
188
- // Execute layout — hierarchical plugins push into the arrays directly
189
- plugin.computeLayout(nodesArr, edgesArr, this.config, size);
190
- // After hierarchical layout, sync the populated arrays back into the
191
- // store's Maps so buildScene and getLayoutData work correctly.
192
- if (plugin.hierarchical && nodesArr.length > 0) {
193
- this.nodes.clear();
194
- this.edges.clear();
195
- for (const node of nodesArr) {
196
- this.nodes.set(node.id, node);
197
- }
198
- for (const edge of edgesArr) {
199
- const srcId = typeof edge.source === "string" ? edge.source : edge.source.id;
200
- const tgtId = typeof edge.target === "string" ? edge.target : edge.target.id;
201
- this.edges.set(`${srcId}\0${tgtId}`, edge);
202
- }
203
- }
204
- // Finalize — update derived properties and bezier caches
205
- this.finalizeLayout();
206
- // Save target positions for animation
207
- this.saveTargetPositions();
208
- // Check if we have meaningful previous positions to animate from
209
- const hasOldPositions = nodesArr.some((n) => n._prevX0 !== undefined &&
210
- (n._prevX0 !== 0 || n._prevX1 !== 0 || n._prevY0 !== 0 || n._prevY1 !== 0));
211
- if (hasOldPositions && this.tensionConfig.transitionDuration > 0) {
212
- // Reset to previous positions (animation starts from here)
213
- this.restorePreviousPositions();
214
- // Start transition
215
- this.transition = {
216
- startTime: performance.now(),
217
- duration: this.tensionConfig.transitionDuration
218
- };
219
- }
220
- this.layoutVersion++;
221
- }
222
- /**
223
- * Build the scene graph from current layout positions.
224
- */
225
- buildScene(size) {
226
- const plugin = (0, layouts_1.getLayoutPlugin)(this.config.chartType);
227
- if (!plugin)
228
- return;
229
- const nodesArr = Array.from(this.nodes.values());
230
- const edgesArr = Array.from(this.edges.values());
231
- const { sceneNodes, sceneEdges, labels } = plugin.buildScene(nodesArr, edgesArr, this.config, size);
232
- this.sceneNodes = sceneNodes;
233
- this.sceneEdges = sceneEdges;
234
- this.labels = labels;
235
- }
236
- // ── Transition animation ──────────────────────────────────────────────
237
- /**
238
- * Advance the transition animation. Returns true if still animating.
239
- */
240
- advanceTransition(now) {
241
- if (!this.transition)
242
- return false;
243
- const elapsed = now - this.transition.startTime;
244
- const rawT = Math.min(elapsed / this.transition.duration, 1);
245
- // Ease-out cubic
246
- const t = 1 - Math.pow(1 - rawT, 3);
247
- for (const node of this.nodes.values()) {
248
- if (node._targetX0 !== undefined &&
249
- node._prevX0 !== undefined &&
250
- (node._prevX0 !== 0 || node._prevX1 !== 0)) {
251
- node.x0 = node._prevX0 + (node._targetX0 - node._prevX0) * t;
252
- node.x1 = node._prevX1 + (node._targetX1 - node._prevX1) * t;
253
- node.y0 = node._prevY0 + (node._targetY0 - node._prevY0) * t;
254
- node.y1 = node._prevY1 + (node._targetY1 - node._prevY1) * t;
255
- }
256
- }
257
- for (const edge of this.edges.values()) {
258
- if (edge._targetY0 !== undefined &&
259
- edge._prevY0 !== undefined &&
260
- edge._prevSankeyWidth !== undefined &&
261
- edge._prevSankeyWidth > 0) {
262
- edge.y0 = edge._prevY0 + (edge._targetY0 - edge._prevY0) * t;
263
- edge.y1 = edge._prevY1 + (edge._targetY1 - edge._prevY1) * t;
264
- edge.sankeyWidth =
265
- edge._prevSankeyWidth + (edge._targetSankeyWidth - edge._prevSankeyWidth) * t;
266
- }
267
- }
268
- // Rebuild beziers for new interpolated positions
269
- this.rebuildAllBeziers();
270
- if (rawT >= 1) {
271
- // Snap to final target positions
272
- this.snapToTargets();
273
- this.transition = null;
274
- return false;
275
- }
276
- return true;
277
- }
278
- // ── Topology helpers (ported from TopologyStore) ──────────────────────
279
- prepareForRelayout() {
280
- for (const node of this.nodes.values()) {
281
- node._prevX0 = node.x0;
282
- node._prevX1 = node.x1;
283
- node._prevY0 = node.y0;
284
- node._prevY1 = node.y1;
285
- }
286
- for (const edge of this.edges.values()) {
287
- edge._prevY0 = edge.y0;
288
- edge._prevY1 = edge.y1;
289
- edge._prevSankeyWidth = edge.sankeyWidth;
290
- }
291
- }
292
- finalizeLayout() {
293
- const direction = this.config.orientation === "vertical" ? "down" : "right";
294
- for (const node of this.nodes.values()) {
295
- // Sankey/treemap/partition set x0/x1/y0/y1 — derive x/y from those.
296
- // Force/chord set x/y directly — derive x0/x1 from x/y.
297
- const hasBox = node.x0 !== 0 || node.x1 !== 0 || node.y0 !== 0 || node.y1 !== 0;
298
- if (hasBox) {
299
- node.width = node.x1 - node.x0;
300
- node.height = node.y1 - node.y0;
301
- node.x = node.x0 + node.width / 2;
302
- node.y = node.y0 + node.height / 2;
303
- }
304
- else {
305
- // x/y already set by layout (force, chord) — synthesize a bounding box
306
- const r = 5;
307
- node.x0 = node.x - r;
308
- node.x1 = node.x + r;
309
- node.y0 = node.y - r;
310
- node.y1 = node.y + r;
311
- node.width = r * 2;
312
- node.height = r * 2;
313
- }
314
- }
315
- for (const edge of this.edges.values()) {
316
- edge.direction = direction;
317
- this.updateEdgeBezier(edge);
318
- }
319
- this.tension = 0;
320
- }
321
- saveTargetPositions() {
322
- for (const node of this.nodes.values()) {
323
- node._targetX0 = node.x0;
324
- node._targetX1 = node.x1;
325
- node._targetY0 = node.y0;
326
- node._targetY1 = node.y1;
327
- }
328
- for (const edge of this.edges.values()) {
329
- edge._targetY0 = edge.y0;
330
- edge._targetY1 = edge.y1;
331
- edge._targetSankeyWidth = edge.sankeyWidth;
332
- }
333
- }
334
- restorePreviousPositions() {
335
- for (const node of this.nodes.values()) {
336
- if (node._prevX0 !== undefined &&
337
- (node._prevX0 !== 0 || node._prevX1 !== 0)) {
338
- node.x0 = node._prevX0;
339
- node.x1 = node._prevX1;
340
- node.y0 = node._prevY0;
341
- node.y1 = node._prevY1;
342
- }
343
- }
344
- for (const edge of this.edges.values()) {
345
- if (edge._prevY0 !== undefined &&
346
- edge._prevSankeyWidth !== undefined &&
347
- edge._prevSankeyWidth > 0) {
348
- edge.y0 = edge._prevY0;
349
- edge.y1 = edge._prevY1;
350
- edge.sankeyWidth = edge._prevSankeyWidth;
351
- }
352
- }
353
- this.rebuildAllBeziers();
354
- }
355
- snapToTargets() {
356
- for (const node of this.nodes.values()) {
357
- if (node._targetX0 !== undefined) {
358
- node.x0 = node._targetX0;
359
- node.x1 = node._targetX1;
360
- node.y0 = node._targetY0;
361
- node.y1 = node._targetY1;
362
- }
363
- }
364
- for (const edge of this.edges.values()) {
365
- if (edge._targetY0 !== undefined) {
366
- edge.y0 = edge._targetY0;
367
- edge.y1 = edge._targetY1;
368
- edge.sankeyWidth = edge._targetSankeyWidth;
369
- }
370
- }
371
- this.rebuildAllBeziers();
372
- }
373
- // ── Bezier caching (ported from TopologyStore) ────────────────────────
374
- updateEdgeBezier(edge) {
375
- const sourceNode = typeof edge.source === "string"
376
- ? this.nodes.get(edge.source)
377
- : edge.source;
378
- const targetNode = typeof edge.target === "string"
379
- ? this.nodes.get(edge.target)
380
- : edge.target;
381
- if (!sourceNode || !targetNode)
382
- return;
383
- if (edge.circular && edge.circularPathData) {
384
- edge.bezier = this.buildCircularBezier(edge);
385
- }
386
- else {
387
- edge.bezier = this.buildStandardBezier(edge, sourceNode, targetNode);
388
- }
389
- }
390
- buildStandardBezier(edge, sourceNode, targetNode) {
391
- const hw = (edge.sankeyWidth || 1) / 2;
392
- if (edge.direction === "down") {
393
- const y0 = sourceNode.y1;
394
- const y1 = targetNode.y0;
395
- const xi = (0, d3_interpolate_1.interpolateNumber)(y0, y1);
396
- const p0 = { x: edge.y0, y: y0 };
397
- const p1 = { x: edge.y0, y: xi(CURVATURE) };
398
- const p2 = { x: edge.y1, y: xi(1 - CURVATURE) };
399
- const p3 = { x: edge.y1, y: y1 };
400
- return { circular: false, points: [p0, p1, p2, p3], halfWidth: hw };
401
- }
402
- // Horizontal (default)
403
- const x0 = sourceNode.x1;
404
- const x1 = targetNode.x0;
405
- const xi = (0, d3_interpolate_1.interpolateNumber)(x0, x1);
406
- const p0 = { x: x0, y: edge.y0 };
407
- const p1 = { x: xi(CURVATURE), y: edge.y0 };
408
- const p2 = { x: xi(1 - CURVATURE), y: edge.y1 };
409
- const p3 = { x: x1, y: edge.y1 };
410
- return { circular: false, points: [p0, p1, p2, p3], halfWidth: hw };
411
- }
412
- buildCircularBezier(edge) {
413
- const hw = (edge.sankeyWidth || 1) / 2;
414
- const cpd = edge.circularPathData;
415
- let waypoints;
416
- if (edge.direction === "down") {
417
- waypoints = [
418
- { x: cpd.sourceY, y: cpd.sourceX },
419
- { x: cpd.sourceY, y: cpd.leftFullExtent },
420
- { x: cpd.verticalFullExtent, y: cpd.leftFullExtent },
421
- { x: cpd.verticalFullExtent, y: cpd.rightFullExtent },
422
- { x: cpd.targetY, y: cpd.rightFullExtent },
423
- { x: cpd.targetY, y: cpd.targetX }
424
- ];
425
- }
426
- else {
427
- waypoints = [
428
- { x: cpd.sourceX, y: cpd.sourceY },
429
- { x: cpd.leftFullExtent, y: cpd.sourceY },
430
- { x: cpd.leftFullExtent, y: cpd.verticalFullExtent },
431
- { x: cpd.rightFullExtent, y: cpd.verticalFullExtent },
432
- { x: cpd.rightFullExtent, y: cpd.targetY },
433
- { x: cpd.targetX, y: cpd.targetY }
434
- ];
435
- }
436
- const segments = [];
437
- for (let i = 0; i < waypoints.length - 1; i++) {
438
- const a = waypoints[i];
439
- const b = waypoints[i + 1];
440
- const dx = b.x - a.x;
441
- const dy = b.y - a.y;
442
- segments.push([
443
- a,
444
- { x: a.x + dx / 3, y: a.y + dy / 3 },
445
- { x: a.x + (2 * dx) / 3, y: a.y + (2 * dy) / 3 },
446
- b
447
- ]);
448
- }
449
- return { circular: true, segments, halfWidth: hw };
450
- }
451
- rebuildAllBeziers() {
452
- for (const node of this.nodes.values()) {
453
- node.width = node.x1 - node.x0;
454
- node.height = node.y1 - node.y0;
455
- node.x = node.x0 + node.width / 2;
456
- node.y = node.y0 + node.height / 2;
457
- }
458
- for (const edge of this.edges.values()) {
459
- this.updateEdgeBezier(edge);
460
- }
461
- }
462
- // ── Public accessors ──────────────────────────────────────────────────
463
- getLayoutData() {
464
- return {
465
- nodes: Array.from(this.nodes.values()),
466
- edges: Array.from(this.edges.values())
467
- };
468
- }
469
- clear() {
470
- this.nodes.clear();
471
- this.edges.clear();
472
- this.tension = 0;
473
- this.layoutVersion = 0;
474
- this.sceneNodes = [];
475
- this.sceneEdges = [];
476
- this.labels = [];
477
- this.transition = null;
478
- if (this.particlePool) {
479
- this.particlePool.clear();
480
- }
481
- }
482
- }
483
- exports.NetworkPipelineStore = NetworkPipelineStore;
484
- function createNode(id) {
485
- return {
486
- id,
487
- x0: 0,
488
- x1: 0,
489
- y0: 0,
490
- y1: 0,
491
- x: 0,
492
- y: 0,
493
- width: 0,
494
- height: 0,
495
- value: 0,
496
- createdByFrame: true
497
- };
498
- }
@@ -1,70 +0,0 @@
1
- "use client";
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.NetworkSVGOverlay = NetworkSVGOverlay;
38
- const React = __importStar(require("react"));
39
- /**
40
- * SVG overlay for network charts — renders labels, title, legend, annotations.
41
- *
42
- * Unlike XY/ordinal overlays, network charts don't have axes or grid lines.
43
- * The overlay is positioned absolutely over the canvas.
44
- */
45
- function NetworkSVGOverlay(props) {
46
- const { width, height, totalWidth, totalHeight, margin, labels, title, legend, foregroundGraphics, annotations, svgAnnotationRules, annotationFrame } = props;
47
- return (React.createElement("svg", { width: totalWidth, height: totalHeight, style: {
48
- position: "absolute",
49
- top: 0,
50
- left: 0,
51
- pointerEvents: "none"
52
- } },
53
- React.createElement("g", { transform: `translate(${margin.left},${margin.top})` },
54
- labels.map((label, i) => (React.createElement("text", { key: `label-${i}`, x: label.x, y: label.y, textAnchor: label.anchor || "start", dominantBaseline: (label.baseline || "middle"), fontSize: label.fontSize || 11, fontWeight: label.fontWeight, fill: label.fill || "currentColor", stroke: label.stroke, strokeWidth: label.strokeWidth, paintOrder: label.paintOrder, style: { pointerEvents: "none" } }, label.text))),
55
- annotations &&
56
- svgAnnotationRules &&
57
- annotations.map((annotation, i) => {
58
- const element = svgAnnotationRules(annotation, i, {
59
- width,
60
- height
61
- });
62
- return element ? (React.createElement(React.Fragment, { key: `annotation-${i}` }, element)) : null;
63
- }),
64
- foregroundGraphics),
65
- title && typeof title === "string" ? (React.createElement("text", { x: totalWidth / 2, y: 16, textAnchor: "middle", fontSize: 14, fontWeight: 600, fill: "currentColor" }, title)) : title ? (React.createElement("foreignObject", { x: 0, y: 0, width: totalWidth, height: margin.top }, title)) : null,
66
- legend && typeof legend === "object" && "legendGroups" in legend ? (React.createElement("g", { transform: `translate(${totalWidth - margin.right + 10},${margin.top})` }, legend.legendGroups.map((group, gi) => (React.createElement("g", { key: `legend-group-${gi}` }, group.items?.map((item, ii) => (React.createElement("g", { key: `legend-item-${ii}`, transform: `translate(0,${ii * 20})` },
67
- React.createElement("rect", { x: 0, y: 0, width: 12, height: 12, fill: item.color, rx: 2 }),
68
- React.createElement("text", { x: 18, y: 10, fontSize: 11, fill: "currentColor" }, item.label))))))))) : legend ? (React.createElement("g", { transform: `translate(${totalWidth - margin.right + 10},${margin.top})` }, legend)) : null));
69
- }
70
- NetworkSVGOverlay.displayName = "NetworkSVGOverlay";
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildCircleNode = buildCircleNode;
4
- exports.buildRectNode = buildRectNode;
5
- exports.buildArcNode = buildArcNode;
6
- exports.buildLineEdge = buildLineEdge;
7
- exports.buildBezierEdge = buildBezierEdge;
8
- exports.buildRibbonEdge = buildRibbonEdge;
9
- exports.buildCurvedEdge = buildCurvedEdge;
10
- exports.buildLabel = buildLabel;
11
- /**
12
- * Builder functions for network scene nodes.
13
- * Used by layout plugins to construct the scene graph.
14
- */
15
- function buildCircleNode(cx, cy, r, style, datum, id, label, depth) {
16
- return { type: "circle", cx, cy, r, style, datum, id, label, depth };
17
- }
18
- function buildRectNode(x, y, w, h, style, datum, id, label, depth) {
19
- return { type: "rect", x, y, w, h, style, datum, id, label, depth };
20
- }
21
- function buildArcNode(cx, cy, innerR, outerR, startAngle, endAngle, style, datum, id, label) {
22
- return { type: "arc", cx, cy, innerR, outerR, startAngle, endAngle, style, datum, id, label };
23
- }
24
- function buildLineEdge(x1, y1, x2, y2, style, datum) {
25
- return { type: "line", x1, y1, x2, y2, style, datum };
26
- }
27
- function buildBezierEdge(pathD, style, datum, bezierCache) {
28
- return { type: "bezier", pathD, bezierCache, style, datum };
29
- }
30
- function buildRibbonEdge(pathD, style, datum) {
31
- return { type: "ribbon", pathD, style, datum };
32
- }
33
- function buildCurvedEdge(pathD, style, datum) {
34
- return { type: "curved", pathD, style, datum };
35
- }
36
- function buildLabel(x, y, text, options) {
37
- return { x, y, text, ...options };
38
- }