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.
Files changed (424) hide show
  1. package/CLAUDE.md +530 -0
  2. package/README.md +190 -37
  3. package/ai/cli.js +48 -0
  4. package/ai/dist/ai/componentRegistry.js +45 -0
  5. package/ai/dist/ai/mcp-server.js +99 -0
  6. package/ai/dist/ai/renderHOCToSVG.js +77 -0
  7. package/ai/dist/src/components/Annotation.js +358 -0
  8. package/ai/dist/src/components/AnnotationLayer/AnnotationLayer.js +369 -0
  9. package/ai/dist/src/components/Axis/Axis.js +373 -0
  10. package/ai/dist/src/components/Axis/axisTitle.js +14 -0
  11. package/ai/dist/src/components/Axis/index.js +7 -0
  12. package/ai/dist/src/components/Axis/summaryGraphic.js +37 -0
  13. package/ai/dist/src/components/Brush.js +84 -0
  14. package/ai/dist/src/components/DividedLine.js +65 -0
  15. package/ai/dist/src/components/FacetController.js +259 -0
  16. package/ai/dist/src/components/Frame.js +139 -0
  17. package/ai/dist/src/components/InteractionLayer.js +328 -0
  18. package/ai/dist/src/components/Legend.js +140 -0
  19. package/ai/dist/src/components/MiniMap.js +75 -0
  20. package/ai/dist/src/components/MinimapXYFrame.js +99 -0
  21. package/ai/dist/src/components/NetworkFrame.js +335 -0
  22. package/ai/dist/src/components/OrdinalFrame.js +437 -0
  23. package/ai/dist/src/components/ResponsiveFrame.js +68 -0
  24. package/ai/dist/src/components/ResponsiveMinimapXYFrame.js +11 -0
  25. package/ai/dist/src/components/ResponsiveNetworkFrame.js +11 -0
  26. package/ai/dist/src/components/ResponsiveOrdinalFrame.js +11 -0
  27. package/ai/dist/src/components/ResponsiveXYFrame.js +10 -0
  28. package/ai/dist/src/components/SparkFrame.js +113 -0
  29. package/ai/dist/src/components/SparkNetworkFrame.js +11 -0
  30. package/ai/dist/src/components/SparkOrdinalFrame.js +11 -0
  31. package/ai/dist/src/components/SparkXYFrame.js +11 -0
  32. package/ai/dist/src/components/Tooltip/Tooltip.js +304 -0
  33. package/ai/dist/src/components/TooltipPositioner/index.js +132 -0
  34. package/ai/dist/src/components/VisualizationLayer.js +395 -0
  35. package/ai/dist/src/components/XYFrame.js +524 -0
  36. package/ai/dist/src/components/annotationLayerBehavior/annotationHandling.js +73 -0
  37. package/ai/dist/src/components/annotationLayerBehavior/d3labeler.js +254 -0
  38. package/ai/dist/src/components/annotationRules/baseRules.js +150 -0
  39. package/ai/dist/src/components/annotationRules/networkframeRules.js +198 -0
  40. package/ai/dist/src/components/annotationRules/orframeRules.js +695 -0
  41. package/ai/dist/src/components/annotationRules/xyframeRules.js +299 -0
  42. package/ai/dist/src/components/batchWork.js +35 -0
  43. package/ai/dist/src/components/charts/index.js +96 -0
  44. package/ai/dist/src/components/charts/network/ChordDiagram.js +245 -0
  45. package/ai/dist/src/components/charts/network/CirclePack.js +177 -0
  46. package/ai/dist/src/components/charts/network/ForceDirectedGraph.js +248 -0
  47. package/ai/dist/src/components/charts/network/SankeyDiagram.js +305 -0
  48. package/ai/dist/src/components/charts/network/TreeDiagram.js +268 -0
  49. package/ai/dist/src/components/charts/network/Treemap.js +177 -0
  50. package/ai/dist/src/components/charts/ordinal/BarChart.js +191 -0
  51. package/ai/dist/src/components/charts/ordinal/BoxPlot.js +235 -0
  52. package/ai/dist/src/components/charts/ordinal/DonutChart.js +178 -0
  53. package/ai/dist/src/components/charts/ordinal/DotPlot.js +194 -0
  54. package/ai/dist/src/components/charts/ordinal/GroupedBarChart.js +194 -0
  55. package/ai/dist/src/components/charts/ordinal/PieChart.js +155 -0
  56. package/ai/dist/src/components/charts/ordinal/StackedBarChart.js +213 -0
  57. package/ai/dist/src/components/charts/ordinal/SwarmPlot.js +219 -0
  58. package/ai/dist/src/components/charts/realtime/RealtimeBarChart.js +91 -0
  59. package/ai/dist/src/components/charts/realtime/RealtimeLineChart.js +73 -0
  60. package/ai/dist/src/components/charts/realtime/RealtimeSwarmChart.js +85 -0
  61. package/ai/dist/src/components/charts/realtime/RealtimeWaterfallChart.js +86 -0
  62. package/ai/dist/src/components/charts/shared/ChartError.js +72 -0
  63. package/ai/dist/src/components/charts/shared/colorUtils.js +138 -0
  64. package/ai/dist/src/components/charts/shared/formatUtils.js +176 -0
  65. package/ai/dist/src/components/charts/shared/hooks.js +49 -0
  66. package/ai/dist/src/components/charts/shared/legendUtils.js +57 -0
  67. package/ai/dist/src/components/charts/shared/types.js +2 -0
  68. package/ai/dist/src/components/charts/shared/validateChartData.js +82 -0
  69. package/ai/dist/src/components/charts/shared/validateProps.js +640 -0
  70. package/ai/dist/src/components/charts/xy/AreaChart.js +220 -0
  71. package/ai/dist/src/components/charts/xy/BubbleChart.js +222 -0
  72. package/ai/dist/src/components/charts/xy/Heatmap.js +230 -0
  73. package/ai/dist/src/components/charts/xy/LineChart.js +302 -0
  74. package/ai/dist/src/components/charts/xy/Scatterplot.js +136 -0
  75. package/ai/dist/src/components/charts/xy/StackedAreaChart.js +220 -0
  76. package/ai/dist/src/components/constants/coordinateNames.js +11 -0
  77. package/ai/dist/src/components/constants/frame_props.js +251 -0
  78. package/ai/dist/src/components/constants/jsx.js +71 -0
  79. package/ai/dist/src/components/data/dataFunctions.js +473 -0
  80. package/ai/dist/src/components/data/multiAccessorUtils.js +14 -0
  81. package/ai/dist/src/components/data/networkPipelineCache.js +43 -0
  82. package/ai/dist/src/components/data/ordinalPipelineCache.js +53 -0
  83. package/ai/dist/src/components/data/unflowedFunctions.js +5 -0
  84. package/ai/dist/src/components/data/xyPipelineCache.js +49 -0
  85. package/ai/dist/src/components/generic_utilities/functions.js +5 -0
  86. package/ai/dist/src/components/index.js +145 -0
  87. package/ai/dist/src/components/interactionLayerBehavior/InteractionCanvas.js +128 -0
  88. package/ai/dist/src/components/processing/InteractionItems.js +223 -0
  89. package/ai/dist/src/components/processing/hierarchyUtils.js +104 -0
  90. package/ai/dist/src/components/processing/layouts/chordLayout.js +58 -0
  91. package/ai/dist/src/components/processing/layouts/forceLayout.js +142 -0
  92. package/ai/dist/src/components/processing/layouts/hierarchyLayout.js +31 -0
  93. package/ai/dist/src/components/processing/layouts/index.js +32 -0
  94. package/ai/dist/src/components/processing/layouts/sankeyLayout.js +96 -0
  95. package/ai/dist/src/components/processing/layouts/simpleLayouts.js +34 -0
  96. package/ai/dist/src/components/processing/layouts/types.js +2 -0
  97. package/ai/dist/src/components/processing/network.js +771 -0
  98. package/ai/dist/src/components/processing/networkDefaults.js +39 -0
  99. package/ai/dist/src/components/processing/networkLayoutHelpers.js +98 -0
  100. package/ai/dist/src/components/processing/ordinal.js +889 -0
  101. package/ai/dist/src/components/processing/ordinalConstants.js +23 -0
  102. package/ai/dist/src/components/processing/ordinalOverlays.js +88 -0
  103. package/ai/dist/src/components/processing/ordinalRenderPipeline.js +196 -0
  104. package/ai/dist/src/components/processing/xyDrawing.js +484 -0
  105. package/ai/dist/src/components/realtime/BinAccumulator.js +36 -0
  106. package/ai/dist/src/components/realtime/IncrementalExtent.js +55 -0
  107. package/ai/dist/src/components/realtime/RealtimeFrame.js +710 -0
  108. package/ai/dist/src/components/realtime/RingBuffer.js +104 -0
  109. package/ai/dist/src/components/realtime/renderers/barRenderer.js +133 -0
  110. package/ai/dist/src/components/realtime/renderers/candlestickRenderer.js +7 -0
  111. package/ai/dist/src/components/realtime/renderers/lineRenderer.js +164 -0
  112. package/ai/dist/src/components/realtime/renderers/swarmRenderer.js +91 -0
  113. package/ai/dist/src/components/realtime/renderers/types.js +2 -0
  114. package/ai/dist/src/components/realtime/renderers/waterfallRenderer.js +163 -0
  115. package/ai/dist/src/components/realtime/types.js +2 -0
  116. package/ai/dist/src/components/semiotic-ai.js +66 -0
  117. package/ai/dist/src/components/semiotic-network.js +30 -0
  118. package/ai/dist/src/components/semiotic-ordinal.js +28 -0
  119. package/ai/dist/src/components/semiotic-realtime.js +37 -0
  120. package/ai/dist/src/components/semiotic-server.js +8 -0
  121. package/ai/dist/src/components/semiotic-xy.js +41 -0
  122. package/ai/dist/src/components/semiotic.js +101 -0
  123. package/ai/dist/src/components/server/renderToStaticSVG.js +392 -0
  124. package/ai/dist/src/components/store/TooltipStore.js +13 -0
  125. package/ai/dist/src/components/store/createStore.js +77 -0
  126. package/ai/dist/src/components/svg/SvgHelper.js +308 -0
  127. package/ai/dist/src/components/svg/areaDrawing.js +312 -0
  128. package/ai/dist/src/components/svg/boxplotRenderer.js +441 -0
  129. package/ai/dist/src/components/svg/bucketizedRenderer.js +677 -0
  130. package/ai/dist/src/components/svg/ckbinsRenderer.js +92 -0
  131. package/ai/dist/src/components/svg/ckmeans.js +238 -0
  132. package/ai/dist/src/components/svg/contourLayout.js +73 -0
  133. package/ai/dist/src/components/svg/contourRenderer.js +53 -0
  134. package/ai/dist/src/components/svg/edgeGenerators.js +181 -0
  135. package/ai/dist/src/components/svg/frameFunctions.js +579 -0
  136. package/ai/dist/src/components/svg/graphAlgorithms.js +138 -0
  137. package/ai/dist/src/components/svg/hexbinLayout.js +163 -0
  138. package/ai/dist/src/components/svg/lineDrawing.js +427 -0
  139. package/ai/dist/src/components/svg/networkDrawing.js +207 -0
  140. package/ai/dist/src/components/svg/nodeGenerators.js +131 -0
  141. package/ai/dist/src/components/svg/pieceDrawing.js +110 -0
  142. package/ai/dist/src/components/svg/pieceLayouts.js +588 -0
  143. package/ai/dist/src/components/svg/sankeyLinks.js +143 -0
  144. package/ai/dist/src/components/svg/summaryAxis.js +48 -0
  145. package/ai/dist/src/components/svg/summaryLayouts.js +202 -0
  146. package/ai/dist/src/components/svg/swarmLayout.js +128 -0
  147. package/ai/dist/src/components/types/annotationTypes.js +2 -0
  148. package/ai/dist/src/components/types/canvasTypes.js +2 -0
  149. package/ai/dist/src/components/types/generalTypes.js +2 -0
  150. package/ai/dist/src/components/types/interactionTypes.js +2 -0
  151. package/ai/dist/src/components/types/legendTypes.js +2 -0
  152. package/ai/dist/src/components/types/networkTypes.js +2 -0
  153. package/ai/dist/src/components/types/ordinalTypes.js +2 -0
  154. package/ai/dist/src/components/types/xyTypes.js +2 -0
  155. package/ai/dist/src/components/useBoundingRect.js +24 -0
  156. package/ai/dist/src/components/useDerivedStateFromProps.js +25 -0
  157. package/ai/dist/src/components/useLegacyUnmountCallback.js +21 -0
  158. package/ai/dist/src/components/visualizationLayerBehavior/axis.js +249 -0
  159. package/ai/dist/src/components/visualizationLayerBehavior/general.js +435 -0
  160. package/ai/dist/src/setupTests.js +4 -0
  161. package/ai/examples.md +394 -0
  162. package/ai/schema.json +1178 -0
  163. package/ai/system-prompt.md +38 -0
  164. package/dist/AnnotationLayer/AnnotationLayer.d.ts +0 -1
  165. package/dist/Axis/axisTitle.d.ts +3 -3
  166. package/dist/Axis/summaryGraphic.d.ts +1 -1
  167. package/dist/FacetController.d.ts +1 -1
  168. package/dist/MinimapXYFrame.d.ts +2 -2
  169. package/dist/NetworkFrame.d.ts +5 -1
  170. package/dist/OrdinalFrame.d.ts +5 -1
  171. package/dist/ResponsiveFrame.d.ts +2 -2
  172. package/dist/ResponsiveMinimapXYFrame.d.ts +3 -6
  173. package/dist/ResponsiveNetworkFrame.d.ts +3 -6
  174. package/dist/ResponsiveOrdinalFrame.d.ts +3 -6
  175. package/dist/ResponsiveXYFrame.d.ts +3 -6
  176. package/dist/SparkFrame.d.ts +1 -1
  177. package/dist/SparkNetworkFrame.d.ts +3 -3
  178. package/dist/SparkOrdinalFrame.d.ts +3 -3
  179. package/dist/SparkXYFrame.d.ts +3 -3
  180. package/dist/Tooltip/Tooltip.d.ts +141 -0
  181. package/dist/TooltipPositioner/index.d.ts +1 -1
  182. package/dist/VisualizationLayer.d.ts +3 -3
  183. package/dist/XYFrame.d.ts +5 -1
  184. package/dist/annotationLayerBehavior/annotationHandling.d.ts +2 -2
  185. package/dist/annotationRules/networkframeRules.d.ts +2 -2
  186. package/dist/annotationRules/orframeRules.d.ts +2 -4
  187. package/dist/annotationRules/xyframeRules.d.ts +2 -2
  188. package/dist/batchWork.d.ts +1 -1
  189. package/dist/charts/index.d.ts +62 -0
  190. package/dist/charts/network/ChordDiagram.d.ts +181 -0
  191. package/dist/charts/network/CirclePack.d.ts +103 -0
  192. package/dist/charts/network/ForceDirectedGraph.d.ts +192 -0
  193. package/dist/charts/network/SankeyDiagram.d.ts +195 -0
  194. package/dist/charts/network/TreeDiagram.d.ts +200 -0
  195. package/dist/charts/network/Treemap.d.ts +98 -0
  196. package/dist/charts/ordinal/BarChart.d.ts +119 -0
  197. package/dist/charts/ordinal/BoxPlot.d.ts +125 -0
  198. package/dist/charts/ordinal/DonutChart.d.ts +95 -0
  199. package/dist/charts/ordinal/DotPlot.d.ts +128 -0
  200. package/dist/charts/ordinal/GroupedBarChart.d.ts +113 -0
  201. package/dist/charts/ordinal/PieChart.d.ts +83 -0
  202. package/dist/charts/ordinal/StackedBarChart.d.ts +119 -0
  203. package/dist/charts/ordinal/SwarmPlot.d.ts +137 -0
  204. package/dist/charts/realtime/RealtimeBarChart.d.ts +102 -0
  205. package/dist/charts/realtime/RealtimeLineChart.d.ts +78 -0
  206. package/dist/charts/realtime/RealtimeSwarmChart.d.ts +88 -0
  207. package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +85 -0
  208. package/dist/charts/shared/ChartError.d.ts +19 -0
  209. package/dist/charts/shared/colorUtils.d.ts +62 -0
  210. package/dist/charts/shared/formatUtils.d.ts +82 -0
  211. package/dist/charts/shared/hooks.d.ts +20 -0
  212. package/dist/charts/shared/legendUtils.d.ts +32 -0
  213. package/dist/charts/shared/types.d.ts +58 -0
  214. package/dist/charts/shared/validateChartData.d.ts +41 -0
  215. package/dist/charts/shared/validateProps.d.ts +18 -0
  216. package/dist/charts/xy/AreaChart.d.ts +127 -0
  217. package/dist/charts/xy/BubbleChart.d.ts +157 -0
  218. package/dist/charts/xy/Heatmap.d.ts +153 -0
  219. package/dist/charts/xy/LineChart.d.ts +193 -0
  220. package/dist/charts/xy/Scatterplot.d.ts +50 -0
  221. package/dist/charts/xy/StackedAreaChart.d.ts +131 -0
  222. package/dist/constants/frame_props.d.ts +9 -0
  223. package/dist/constants/jsx.d.ts +2 -2
  224. package/dist/data/dataFunctions.d.ts +11 -12
  225. package/dist/data/networkPipelineCache.d.ts +27 -0
  226. package/dist/data/ordinalPipelineCache.d.ts +33 -0
  227. package/dist/data/xyPipelineCache.d.ts +35 -0
  228. package/dist/index.d.ts +70 -62
  229. package/dist/interactionLayerBehavior/InteractionCanvas.d.ts +1 -1
  230. package/dist/network.js +8520 -0
  231. package/dist/network.js.map +1 -0
  232. package/dist/network.min.js +1 -0
  233. package/dist/network.module.js +8484 -0
  234. package/dist/network.module.js.map +1 -0
  235. package/dist/network.module.min.js +1 -0
  236. package/dist/ordinal.js +9276 -0
  237. package/dist/ordinal.js.map +1 -0
  238. package/dist/ordinal.min.js +1 -0
  239. package/dist/ordinal.module.js +9242 -0
  240. package/dist/ordinal.module.js.map +1 -0
  241. package/dist/ordinal.module.min.js +1 -0
  242. package/dist/processing/InteractionItems.d.ts +5 -4
  243. package/dist/processing/hierarchyUtils.d.ts +16 -0
  244. package/dist/processing/layouts/chordLayout.d.ts +2 -0
  245. package/dist/processing/layouts/forceLayout.d.ts +3 -0
  246. package/dist/processing/layouts/hierarchyLayout.d.ts +10 -0
  247. package/dist/processing/layouts/index.d.ts +8 -0
  248. package/dist/processing/layouts/sankeyLayout.d.ts +8 -0
  249. package/dist/processing/layouts/simpleLayouts.d.ts +7 -0
  250. package/dist/processing/layouts/types.d.ts +17 -0
  251. package/dist/processing/network.d.ts +25 -28
  252. package/dist/processing/networkDefaults.d.ts +36 -0
  253. package/dist/processing/networkLayoutHelpers.d.ts +54 -0
  254. package/dist/processing/ordinal.d.ts +43 -43
  255. package/dist/processing/ordinalConstants.d.ts +33 -0
  256. package/dist/processing/ordinalOverlays.d.ts +33 -0
  257. package/dist/processing/ordinalRenderPipeline.d.ts +148 -0
  258. package/dist/processing/xyDrawing.d.ts +46 -41
  259. package/dist/realtime/BinAccumulator.d.ts +8 -0
  260. package/dist/realtime/IncrementalExtent.d.ts +13 -0
  261. package/dist/realtime/RealtimeFrame.d.ts +4 -0
  262. package/dist/realtime/RingBuffer.d.ts +19 -0
  263. package/dist/realtime/renderers/barRenderer.d.ts +2 -0
  264. package/dist/realtime/renderers/candlestickRenderer.d.ts +2 -0
  265. package/dist/realtime/renderers/lineRenderer.d.ts +2 -0
  266. package/dist/realtime/renderers/swarmRenderer.d.ts +2 -0
  267. package/dist/realtime/renderers/types.d.ts +9 -0
  268. package/dist/realtime/renderers/waterfallRenderer.d.ts +3 -0
  269. package/dist/realtime/types.d.ts +113 -0
  270. package/dist/realtime.js +1598 -0
  271. package/dist/realtime.js.map +1 -0
  272. package/dist/realtime.min.js +1 -0
  273. package/dist/realtime.module.js +1566 -0
  274. package/dist/realtime.module.js.map +1 -0
  275. package/dist/realtime.module.min.js +1 -0
  276. package/dist/semiotic-ai.d.ts +28 -0
  277. package/dist/semiotic-ai.js +18722 -0
  278. package/dist/semiotic-ai.js.map +1 -0
  279. package/dist/semiotic-ai.min.js +1 -0
  280. package/dist/semiotic-ai.module.js +18668 -0
  281. package/dist/semiotic-ai.module.js.map +1 -0
  282. package/dist/semiotic-ai.module.min.js +1 -0
  283. package/dist/semiotic-network.d.ts +19 -0
  284. package/dist/semiotic-ordinal.d.ts +18 -0
  285. package/dist/semiotic-realtime.d.ts +23 -0
  286. package/dist/semiotic-server.d.ts +1 -0
  287. package/dist/semiotic-xy.d.ts +24 -0
  288. package/dist/semiotic.d.ts +19 -3
  289. package/dist/semiotic.js +18707 -12983
  290. package/dist/semiotic.js.map +1 -0
  291. package/dist/semiotic.min.js +1 -0
  292. package/dist/semiotic.module.js +18651 -12953
  293. package/dist/semiotic.module.js.map +1 -0
  294. package/dist/semiotic.module.min.js +1 -0
  295. package/dist/server/renderToStaticSVG.d.ts +9 -0
  296. package/dist/server.js +8360 -0
  297. package/dist/server.js.map +1 -0
  298. package/dist/server.min.js +1 -0
  299. package/dist/server.module.js +8331 -0
  300. package/dist/server.module.js.map +1 -0
  301. package/dist/server.module.min.js +1 -0
  302. package/dist/svg/SvgHelper.d.ts +1 -5
  303. package/dist/svg/areaDrawing.d.ts +3 -13
  304. package/dist/svg/boxplotRenderer.d.ts +15 -0
  305. package/dist/svg/bucketizedRenderer.d.ts +16 -0
  306. package/dist/svg/ckbinsRenderer.d.ts +20 -0
  307. package/dist/svg/contourLayout.d.ts +6 -0
  308. package/dist/svg/contourRenderer.d.ts +12 -0
  309. package/dist/svg/edgeGenerators.d.ts +51 -0
  310. package/dist/svg/frameFunctions.d.ts +17 -28
  311. package/dist/svg/graphAlgorithms.d.ts +14 -0
  312. package/dist/svg/hexbinLayout.d.ts +7 -0
  313. package/dist/svg/lineDrawing.d.ts +8 -8
  314. package/dist/svg/networkDrawing.d.ts +5 -123
  315. package/dist/svg/nodeGenerators.d.ts +58 -0
  316. package/dist/svg/pieceDrawing.d.ts +1 -2
  317. package/dist/svg/pieceLayouts.d.ts +5 -23
  318. package/dist/svg/sankeyLinks.d.ts +3 -0
  319. package/dist/svg/summaryAxis.d.ts +6 -0
  320. package/dist/svg/summaryLayouts.d.ts +36 -57
  321. package/dist/svg/swarmLayout.d.ts +13 -0
  322. package/dist/types/annotationTypes.d.ts +13 -18
  323. package/dist/types/canvasTypes.d.ts +1 -1
  324. package/dist/types/generalTypes.d.ts +37 -35
  325. package/dist/types/interactionTypes.d.ts +7 -9
  326. package/dist/types/legendTypes.d.ts +2 -2
  327. package/dist/types/networkTypes.d.ts +40 -30
  328. package/dist/types/ordinalTypes.d.ts +27 -18
  329. package/dist/types/xyTypes.d.ts +13 -16
  330. package/dist/useLegacyUnmountCallback.d.ts +2 -1
  331. package/dist/visualizationLayerBehavior/axis.d.ts +3 -5
  332. package/dist/visualizationLayerBehavior/general.d.ts +8 -12
  333. package/dist/xy.js +7944 -0
  334. package/dist/xy.js.map +1 -0
  335. package/dist/xy.min.js +1 -0
  336. package/dist/xy.module.js +7903 -0
  337. package/dist/xy.module.js.map +1 -0
  338. package/dist/xy.module.min.js +1 -0
  339. package/package.json +116 -66
  340. package/dist/AnnotationLayer/helpers.d.ts +0 -6
  341. package/dist/AnnotationLayer/index.d.ts +0 -2
  342. package/dist/Mark/Mark.d.ts +0 -3
  343. package/dist/Mark/Mark.types.d.ts +0 -10
  344. package/dist/Mark/constants/markTransition.d.ts +0 -10
  345. package/dist/Mark/markBehavior/drawing.d.ts +0 -13
  346. package/dist/SpanOrDiv.d.ts +0 -10
  347. package/dist/components/Annotation.d.ts +0 -3
  348. package/dist/components/AnnotationLayer/AnnotationLayer.d.ts +0 -26
  349. package/dist/components/Axis/Axis.d.ts +0 -7
  350. package/dist/components/Axis/axisTitle.d.ts +0 -10
  351. package/dist/components/Axis/index.d.ts +0 -2
  352. package/dist/components/Axis/summaryGraphic.d.ts +0 -17
  353. package/dist/components/Brush.d.ts +0 -12
  354. package/dist/components/DividedLine.d.ts +0 -16
  355. package/dist/components/FacetController.d.ts +0 -12
  356. package/dist/components/Frame.d.ts +0 -2
  357. package/dist/components/InteractionLayer.d.ts +0 -3
  358. package/dist/components/Legend.d.ts +0 -3
  359. package/dist/components/Mark/Mark.d.ts +0 -3
  360. package/dist/components/Mark/Mark.types.d.ts +0 -10
  361. package/dist/components/Mark/markBehavior/drawing.d.ts +0 -13
  362. package/dist/components/MiniMap.d.ts +0 -14
  363. package/dist/components/MinimapXYFrame.d.ts +0 -10
  364. package/dist/components/NetworkFrame.d.ts +0 -4
  365. package/dist/components/OrdinalFrame.d.ts +0 -4
  366. package/dist/components/ResponsiveFrame.d.ts +0 -22
  367. package/dist/components/ResponsiveMinimapXYFrame.d.ts +0 -6
  368. package/dist/components/ResponsiveNetworkFrame.d.ts +0 -6
  369. package/dist/components/ResponsiveOrdinalFrame.d.ts +0 -6
  370. package/dist/components/ResponsiveXYFrame.d.ts +0 -6
  371. package/dist/components/SpanOrDiv.d.ts +0 -10
  372. package/dist/components/SparkFrame.d.ts +0 -14
  373. package/dist/components/SparkNetworkFrame.d.ts +0 -5
  374. package/dist/components/SparkOrdinalFrame.d.ts +0 -5
  375. package/dist/components/SparkXYFrame.d.ts +0 -5
  376. package/dist/components/TooltipPositioner/index.d.ts +0 -7
  377. package/dist/components/VisualizationLayer.d.ts +0 -33
  378. package/dist/components/XYFrame.d.ts +0 -4
  379. package/dist/components/annotationLayerBehavior/annotationHandling.d.ts +0 -19
  380. package/dist/components/annotationLayerBehavior/d3labeler.d.ts +0 -9
  381. package/dist/components/annotationRules/baseRules.d.ts +0 -25
  382. package/dist/components/annotationRules/networkframeRules.d.ts +0 -48
  383. package/dist/components/annotationRules/orframeRules.d.ts +0 -105
  384. package/dist/components/annotationRules/xyframeRules.d.ts +0 -117
  385. package/dist/components/batchWork.d.ts +0 -6
  386. package/dist/components/constants/coordinateNames.d.ts +0 -8
  387. package/dist/components/constants/frame_props.d.ts +0 -4
  388. package/dist/components/constants/jsx.d.ts +0 -19
  389. package/dist/components/data/dataFunctions.d.ts +0 -46
  390. package/dist/components/data/multiAccessorUtils.d.ts +0 -1
  391. package/dist/components/data/unflowedFunctions.d.ts +0 -1
  392. package/dist/components/generic_utilities/functions.d.ts +0 -1
  393. package/dist/components/index.d.ts +0 -125
  394. package/dist/components/interactionLayerBehavior/InteractionCanvas.d.ts +0 -20
  395. package/dist/components/processing/InteractionItems.d.ts +0 -12
  396. package/dist/components/processing/network.d.ts +0 -114
  397. package/dist/components/processing/ordinal.d.ts +0 -102
  398. package/dist/components/processing/xyDrawing.d.ts +0 -135
  399. package/dist/components/semiotic.d.ts +0 -35
  400. package/dist/components/store/TooltipStore.d.ts +0 -2
  401. package/dist/components/store/createStore.d.ts +0 -1
  402. package/dist/components/svg/SvgHelper.d.ts +0 -37
  403. package/dist/components/svg/areaDrawing.d.ts +0 -31
  404. package/dist/components/svg/ckmeans.d.ts +0 -69
  405. package/dist/components/svg/frameFunctions.d.ts +0 -119
  406. package/dist/components/svg/lineDrawing.d.ts +0 -99
  407. package/dist/components/svg/networkDrawing.d.ts +0 -134
  408. package/dist/components/svg/pieceDrawing.d.ts +0 -13
  409. package/dist/components/svg/pieceLayouts.d.ts +0 -71
  410. package/dist/components/svg/summaryLayouts.d.ts +0 -74
  411. package/dist/components/types/annotationTypes.d.ts +0 -140
  412. package/dist/components/types/canvasTypes.d.ts +0 -9
  413. package/dist/components/types/generalTypes.d.ts +0 -236
  414. package/dist/components/types/interactionTypes.d.ts +0 -74
  415. package/dist/components/types/legendTypes.d.ts +0 -20
  416. package/dist/components/types/networkTypes.d.ts +0 -165
  417. package/dist/components/types/ordinalTypes.d.ts +0 -103
  418. package/dist/components/types/xyTypes.d.ts +0 -118
  419. package/dist/components/useBoundingRect.d.ts +0 -2
  420. package/dist/components/useDerivedStateFromProps.d.ts +0 -1
  421. package/dist/components/useLegacyUnmountCallback.d.ts +0 -1
  422. package/dist/components/visualizationLayerBehavior/axis.d.ts +0 -38
  423. package/dist/components/visualizationLayerBehavior/general.d.ts +0 -84
  424. package/dist/setupTests.d.ts +0 -1
package/README.md CHANGED
@@ -1,70 +1,223 @@
1
1
  [![Semiotic](semiotic_logo_horizontal.png "semiotic")](https://semiotic.nteract.io)
2
2
 
3
- [![Semiotic](https://github.com/nteract/semiotic/actions/workflows/node.js.yml/badge.svg?branch=main)](https://github.com/nteract/semiotic/actions/workflows/node.js.yml)
3
+ [![CI](https://github.com/nteract/semiotic/actions/workflows/node.js.yml/badge.svg?branch=main)](https://github.com/nteract/semiotic/actions/workflows/node.js.yml)
4
+ [![npm version](https://img.shields.io/npm/v/semiotic.svg)](https://www.npmjs.com/package/semiotic)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-built--in-blue.svg)](https://www.typescriptlang.org/)
4
6
 
5
- Semiotic is a data visualization framework combining React & D3.
7
+ A React data visualization library for charts, networks, and beyond.
6
8
 
7
- ## Documentation
9
+ Simple charts in 5 lines. Force-directed graphs, Sankey diagrams, treemaps,
10
+ and chord diagrams when you need them. Full D3-level control when you want it.
11
+
12
+ ```jsx
13
+ import { LineChart } from "semiotic"
14
+
15
+ <LineChart
16
+ data={salesData}
17
+ xAccessor="month"
18
+ yAccessor="revenue"
19
+ />
20
+ ```
21
+
22
+ ## Why Semiotic
23
+
24
+ **Start simple, go deep.** Semiotic has three layers of abstraction:
8
25
 
9
- [Interactive Documentation v1.x](https://semioticv1.nteract.io/)
26
+ | Layer | For | Example |
27
+ |---|---|---|
28
+ | **Charts** | Common visualizations with sensible defaults | `<LineChart data={d} xAccessor="x" yAccessor="y" />` |
29
+ | **Frames** | Full control over rendering, interaction, and layout | `<XYFrame lines={d} customLineMark={...} />` |
30
+ | **Utilities** | Standalone axes, legends, annotations, brushes | `<Annotation type="react" />` |
10
31
 
11
- [API Docs v1.x](https://semioticv1.nteract.io/api)
32
+ Every Chart component accepts a `frameProps` prop to access the underlying
33
+ Frame API without giving up the simpler interface.
12
34
 
13
- [Interactive Examples v1.x](https://semioticv1.nteract.io/examples)
35
+ **Network visualization as a first-class citizen.** Force-directed graphs,
36
+ Sankey diagrams, chord diagrams, tree layouts, treemaps, and circle packing
37
+ are all React components with the same clean prop API as LineChart.
14
38
 
15
- [Preview of Interactive Documentation for v2.x](https://semiotic.nteract.io)
39
+ **What Semiotic does that other libraries don't:**
40
+ - Force-directed graphs, Sankey diagrams, chord diagrams, treemaps, and circle packing — as React components with the same clean API as LineChart
41
+ - Real-time streaming charts rendered on canvas at 60fps
42
+ - Built-in annotation system with hover, click, and custom annotation types
43
+ - Server-side SVG rendering for email, OG images, and PDFs
16
44
 
17
- ## Installation
45
+ **When to use something else.** Need a standard line or bar chart for a dashboard?
46
+ [Recharts](https://recharts.org) has a larger ecosystem and more community examples.
47
+ Semiotic is built for projects that need network visualization, statistical summaries,
48
+ or custom mark rendering — capabilities that general-purpose charting libraries don't offer.
49
+
50
+ **AI-ready.** Semiotic ships with structured schemas (`ai/schema.json`), an
51
+ `import from "semiotic/ai"` entry point, and an MCP server — all designed for
52
+ LLM code generation. AI coding assistants can generate correct Semiotic code on
53
+ the first try. Run `npx semiotic-ai --help` for CLI options or add `semiotic-mcp`
54
+ to your MCP client config for tool-based chart rendering.
55
+
56
+ ## Install
18
57
 
19
58
  ```bash
20
- yarn install semiotic
59
+ npm install semiotic
21
60
  ```
22
61
 
23
- ## Usage Example
62
+ Requires React 18.1 or later.
24
63
 
25
- As a library:
26
- ```js
27
- import { XYFrame } from "semiotic"
64
+ ## Quick Examples
65
+
66
+ ### Line Chart
67
+
68
+ ```jsx
69
+ import { LineChart } from "semiotic"
70
+
71
+ <LineChart
72
+ data={salesData}
73
+ xAccessor="month"
74
+ yAccessor="revenue"
75
+ curve="monotoneX"
76
+ showPoints={true}
77
+ xLabel="Month"
78
+ yLabel="Revenue"
79
+ />
28
80
  ```
29
81
 
30
- You can also use the static distribution (via https://unpkg.com or https://esm.sh):
82
+ ### Bar Chart
31
83
 
32
- ```html
33
- <script type="module">
34
- import { XYFrame } from "https://unpkg.com/semiotic?module"
35
- </script>
84
+ ```jsx
85
+ import { BarChart } from "semiotic"
86
+
87
+ <BarChart
88
+ data={categoryData}
89
+ categoryAccessor="department"
90
+ valueAccessor="sales"
91
+ orientation="horizontal"
92
+ colorBy="region"
93
+ />
36
94
  ```
37
95
 
38
- [These Codepen examples](https://codepen.io/emeeks/) use the static distribution.
96
+ ### Force-Directed Graph
97
+
98
+ ```jsx
99
+ import { ForceDirectedGraph } from "semiotic"
39
100
 
40
- ## Project recognition
101
+ <ForceDirectedGraph
102
+ nodes={teamMembers}
103
+ edges={connections}
104
+ colorBy="department"
105
+ nodeSize={8}
106
+ showLabels={true}
107
+ />
108
+ ```
41
109
 
42
- _Semiotic icon based on an icon by André Schauer_
110
+ ### Sankey Diagram
43
111
 
44
- It may not be apparent in the commit logs but development of this library owes a lot to:
112
+ ```jsx
113
+ import { SankeyDiagram } from "semiotic"
45
114
 
46
- * Susie Lu
47
- * Jason Reid
48
- * James Womack
49
- * Matt Herman
50
- * Shelby Sturgis
51
- * Tristan Reid
115
+ <SankeyDiagram
116
+ nodes={entities}
117
+ edges={flows}
118
+ colorBy="category"
119
+ nodeLabel="name"
120
+ />
121
+ ```
52
122
 
53
- ## Testing
123
+ ### Streaming Data
54
124
 
55
- Using BrowserStack for browser compatibility testing
56
- [![BrowserStack](browserstack_logo.png "browserstack")](http://browserstack.com/)
125
+ ```jsx
126
+ import { RealtimeLineChart } from "semiotic"
57
127
 
58
- ## Changelog
128
+ const chartRef = useRef()
59
129
 
60
- [Changelog](./CHANGELOG.md)
130
+ // Push data at any frequency
131
+ chartRef.current.push({ time: Date.now(), value: reading })
61
132
 
62
- ## License
133
+ <RealtimeLineChart
134
+ ref={chartRef}
135
+ timeAccessor="time"
136
+ valueAccessor="value"
137
+ windowSize={200}
138
+ />
139
+ ```
63
140
 
64
- [License](./LICENSE)
141
+ ## All Chart Components
142
+
143
+ | Category | Components |
144
+ |---|---|
145
+ | **XY** | `LineChart` `AreaChart` `StackedAreaChart` `Scatterplot` `BubbleChart` `Heatmap` |
146
+ | **Categorical** | `BarChart` `StackedBarChart` `GroupedBarChart` `SwarmPlot` `BoxPlot` `DotPlot` `PieChart` `DonutChart` |
147
+ | **Network** | `ForceDirectedGraph` `ChordDiagram` `SankeyDiagram` `TreeDiagram` `Treemap` `CirclePack` |
148
+ | **Realtime** | `RealtimeLineChart` `RealtimeBarChart` `RealtimeSwarmChart` `RealtimeWaterfallChart` |
149
+ | **Frames** | `XYFrame` `OrdinalFrame` `NetworkFrame` `RealtimeFrame` |
150
+
151
+ ## Smaller Bundles
152
+
153
+ Import only what you need:
154
+
155
+ ```jsx
156
+ import { LineChart } from "semiotic/xy" // 125 KB (vs 218 KB full)
157
+ import { BarChart } from "semiotic/ordinal" // 140 KB
158
+ import { ForceDirectedGraph } from "semiotic/network" // 133 KB
159
+ import { LineChart } from "semiotic/ai" // HOC-only surface for AI generation
160
+ ```
161
+
162
+ ## TypeScript
163
+
164
+ Full type definitions ship with the package. Generics for type-safe accessors:
165
+
166
+ ```tsx
167
+ interface Sale { month: number; revenue: number }
168
+
169
+ <LineChart<Sale>
170
+ data={sales}
171
+ xAccessor="month" // TS validates this is keyof Sale
172
+ yAccessor="revenue"
173
+ />
174
+ ```
175
+
176
+ ## Server-Side Rendering
177
+
178
+ Static SVG generation for Node.js (email, OG images, PDF):
179
+
180
+ ```js
181
+ import { renderToStaticSVG } from "semiotic/server"
182
+
183
+ const svg = renderToStaticSVG("xy", {
184
+ lines: [{ coordinates: data }],
185
+ xAccessor: "date",
186
+ yAccessor: "value",
187
+ size: [600, 400],
188
+ })
189
+ ```
190
+
191
+ Works with Next.js App Router, Remix, and Astro via `"use client"` directives.
192
+
193
+ ## Documentation
194
+
195
+ [Interactive docs and examples](https://semiotic.nteract.io)
196
+
197
+ - [Getting Started](https://semiotic.nteract.io/getting-started)
198
+ - [Charts](https://semiotic.nteract.io/charts) — all 24 chart types with live examples
199
+ - [Frames](https://semiotic.nteract.io/frames) — full Frame API reference
200
+ - [Features](https://semiotic.nteract.io/features) — axes, annotations, tooltips, styling
201
+ - [Cookbook](https://semiotic.nteract.io/cookbook) — advanced patterns and recipes
202
+ - [Playground](https://semiotic.nteract.io/playground) — interactive prop exploration
203
+
204
+ ## Upgrading
205
+
206
+ - [Migration Guide](./MIGRATION.md) — upgrading from v1.x or v2.x
207
+ - [Changelog](./CHANGELOG.md) — full release history
65
208
 
66
209
  ## Contributing
67
210
 
68
- Our community follows the nteract [Contributor Code of Conduct](https://github.com/nteract/nteract/blob/main/CODE_OF_CONDUCT.md).
211
+ See [CONTRIBUTING.md](CONTRIBUTING.md). Our community follows the nteract
212
+ [Code of Conduct](https://github.com/nteract/nteract/blob/main/CODE_OF_CONDUCT.md).
213
+
214
+ ## Acknowledgments
215
+
216
+ Development of this library owes a lot to Susie Lu, Jason Reid, James Womack,
217
+ Matt Herman, Shelby Sturgis, and Tristan Reid.
218
+
219
+ _Semiotic icon based on an icon by Andre Schauer._
220
+
221
+ ## License
69
222
 
70
- If you are interested in contributing to the project, please read our [CONTRIBUTING.md](CONTRIBUTING.md) file.
223
+ [Apache 2.0](./LICENSE)
package/ai/cli.js ADDED
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env node
2
+ "use strict"
3
+
4
+ const fs = require("fs")
5
+ const path = require("path")
6
+
7
+ const pkgRoot = path.resolve(__dirname, "..")
8
+
9
+ const FILES = {
10
+ default: path.join(pkgRoot, "CLAUDE.md"),
11
+ "--schema": path.join(__dirname, "schema.json"),
12
+ "--compact": path.join(__dirname, "system-prompt.md"),
13
+ "--examples": path.join(__dirname, "examples.md"),
14
+ }
15
+
16
+ const HELP = `
17
+ semiotic-ai — Dump Semiotic AI context to stdout
18
+
19
+ Usage:
20
+ npx semiotic-ai Print CLAUDE.md (full reference)
21
+ npx semiotic-ai --schema Print ai/schema.json (tool definitions)
22
+ npx semiotic-ai --compact Print ai/system-prompt.md (compact prompt)
23
+ npx semiotic-ai --examples Print ai/examples.md (copy-paste examples)
24
+ npx semiotic-ai --help Show this help message
25
+ `.trim()
26
+
27
+ const flag = process.argv[2]
28
+
29
+ if (flag === "--help" || flag === "-h") {
30
+ console.log(HELP)
31
+ process.exit(0)
32
+ }
33
+
34
+ const filePath = flag ? FILES[flag] : FILES.default
35
+
36
+ if (!filePath) {
37
+ console.error(`Unknown flag: ${flag}\n`)
38
+ console.error(HELP)
39
+ process.exit(1)
40
+ }
41
+
42
+ try {
43
+ const content = fs.readFileSync(filePath, "utf-8")
44
+ process.stdout.write(content)
45
+ } catch (err) {
46
+ console.error(`Error reading ${filePath}: ${err.message}`)
47
+ process.exit(1)
48
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COMPONENT_REGISTRY = void 0;
4
+ const LineChart_1 = require("../src/components/charts/xy/LineChart");
5
+ const AreaChart_1 = require("../src/components/charts/xy/AreaChart");
6
+ const StackedAreaChart_1 = require("../src/components/charts/xy/StackedAreaChart");
7
+ const Scatterplot_1 = require("../src/components/charts/xy/Scatterplot");
8
+ const BubbleChart_1 = require("../src/components/charts/xy/BubbleChart");
9
+ const Heatmap_1 = require("../src/components/charts/xy/Heatmap");
10
+ const BarChart_1 = require("../src/components/charts/ordinal/BarChart");
11
+ const StackedBarChart_1 = require("../src/components/charts/ordinal/StackedBarChart");
12
+ const GroupedBarChart_1 = require("../src/components/charts/ordinal/GroupedBarChart");
13
+ const SwarmPlot_1 = require("../src/components/charts/ordinal/SwarmPlot");
14
+ const BoxPlot_1 = require("../src/components/charts/ordinal/BoxPlot");
15
+ const DotPlot_1 = require("../src/components/charts/ordinal/DotPlot");
16
+ const PieChart_1 = require("../src/components/charts/ordinal/PieChart");
17
+ const DonutChart_1 = require("../src/components/charts/ordinal/DonutChart");
18
+ const ForceDirectedGraph_1 = require("../src/components/charts/network/ForceDirectedGraph");
19
+ const ChordDiagram_1 = require("../src/components/charts/network/ChordDiagram");
20
+ const SankeyDiagram_1 = require("../src/components/charts/network/SankeyDiagram");
21
+ const TreeDiagram_1 = require("../src/components/charts/network/TreeDiagram");
22
+ const Treemap_1 = require("../src/components/charts/network/Treemap");
23
+ const CirclePack_1 = require("../src/components/charts/network/CirclePack");
24
+ exports.COMPONENT_REGISTRY = {
25
+ LineChart: { component: LineChart_1.LineChart, category: "xy" },
26
+ AreaChart: { component: AreaChart_1.AreaChart, category: "xy" },
27
+ StackedAreaChart: { component: StackedAreaChart_1.StackedAreaChart, category: "xy" },
28
+ Scatterplot: { component: Scatterplot_1.Scatterplot, category: "xy" },
29
+ BubbleChart: { component: BubbleChart_1.BubbleChart, category: "xy" },
30
+ Heatmap: { component: Heatmap_1.Heatmap, category: "xy" },
31
+ BarChart: { component: BarChart_1.BarChart, category: "ordinal" },
32
+ StackedBarChart: { component: StackedBarChart_1.StackedBarChart, category: "ordinal" },
33
+ GroupedBarChart: { component: GroupedBarChart_1.GroupedBarChart, category: "ordinal" },
34
+ SwarmPlot: { component: SwarmPlot_1.SwarmPlot, category: "ordinal" },
35
+ BoxPlot: { component: BoxPlot_1.BoxPlot, category: "ordinal" },
36
+ DotPlot: { component: DotPlot_1.DotPlot, category: "ordinal" },
37
+ PieChart: { component: PieChart_1.PieChart, category: "ordinal" },
38
+ DonutChart: { component: DonutChart_1.DonutChart, category: "ordinal" },
39
+ ForceDirectedGraph: { component: ForceDirectedGraph_1.ForceDirectedGraph, category: "network" },
40
+ ChordDiagram: { component: ChordDiagram_1.ChordDiagram, category: "network" },
41
+ SankeyDiagram: { component: SankeyDiagram_1.SankeyDiagram, category: "network" },
42
+ TreeDiagram: { component: TreeDiagram_1.TreeDiagram, category: "network" },
43
+ Treemap: { component: Treemap_1.Treemap, category: "network" },
44
+ CirclePack: { component: CirclePack_1.CirclePack, category: "network" },
45
+ };
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Semiotic MCP Server
5
+ *
6
+ * Exposes every HOC chart component as an MCP tool.
7
+ * Accepts component props as tool arguments, renders to static SVG,
8
+ * and returns the SVG string.
9
+ *
10
+ * Usage (Claude Desktop / claude_desktop_config.json):
11
+ * {
12
+ * "mcpServers": {
13
+ * "semiotic": {
14
+ * "command": "npx",
15
+ * "args": ["semiotic-mcp"]
16
+ * }
17
+ * }
18
+ * }
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || (function () {
37
+ var ownKeys = function(o) {
38
+ ownKeys = Object.getOwnPropertyNames || function (o) {
39
+ var ar = [];
40
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
41
+ return ar;
42
+ };
43
+ return ownKeys(o);
44
+ };
45
+ return function (mod) {
46
+ if (mod && mod.__esModule) return mod;
47
+ var result = {};
48
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
49
+ __setModuleDefault(result, mod);
50
+ return result;
51
+ };
52
+ })();
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
55
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
56
+ const fs = __importStar(require("fs"));
57
+ const path = __importStar(require("path"));
58
+ const renderHOCToSVG_1 = require("./renderHOCToSVG");
59
+ const componentRegistry_1 = require("./componentRegistry");
60
+ // Load schema.json for tool definitions
61
+ const schemaPath = path.resolve(__dirname, "schema.json");
62
+ const schema = JSON.parse(fs.readFileSync(schemaPath, "utf-8"));
63
+ // Build MCP server
64
+ const server = new mcp_js_1.McpServer({
65
+ name: "semiotic",
66
+ version: schema.version || "3.0.0",
67
+ });
68
+ // Register each chart component as a tool
69
+ for (const toolDef of schema.tools) {
70
+ const { name, description, parameters } = toolDef.function;
71
+ // Skip realtime charts (ref-based, can't render to static SVG)
72
+ if (name.startsWith("Realtime"))
73
+ continue;
74
+ // Skip components not in registry
75
+ if (!componentRegistry_1.COMPONENT_REGISTRY[name])
76
+ continue;
77
+ // Register the tool — use raw z.any() style since we have our own validation
78
+ server.tool(name, description, {}, async (args) => {
79
+ const result = (0, renderHOCToSVG_1.renderHOCToSVG)(name, args);
80
+ if (result.error) {
81
+ return {
82
+ content: [{ type: "text", text: result.error }],
83
+ isError: true,
84
+ };
85
+ }
86
+ return {
87
+ content: [{ type: "text", text: result.svg }],
88
+ };
89
+ });
90
+ }
91
+ // Start the server
92
+ async function main() {
93
+ const transport = new stdio_js_1.StdioServerTransport();
94
+ await server.connect(transport);
95
+ }
96
+ main().catch((err) => {
97
+ console.error("MCP server error:", err);
98
+ process.exit(1);
99
+ });
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.renderHOCToSVG = renderHOCToSVG;
37
+ /**
38
+ * Render a Semiotic HOC chart component to static SVG markup.
39
+ *
40
+ * Uses ReactDOMServer.renderToStaticMarkup which supports hooks
41
+ * (useMemo, custom hooks) used by the HOC components.
42
+ */
43
+ const React = __importStar(require("react"));
44
+ const ReactDOMServer = __importStar(require("react-dom/server"));
45
+ const componentRegistry_1 = require("./componentRegistry");
46
+ const validateProps_1 = require("../src/components/charts/shared/validateProps");
47
+ function renderHOCToSVG(componentName, props) {
48
+ // Look up component
49
+ const entry = componentRegistry_1.COMPONENT_REGISTRY[componentName];
50
+ if (!entry) {
51
+ return {
52
+ svg: null,
53
+ error: `Unknown component "${componentName}". Available: ${Object.keys(componentRegistry_1.COMPONENT_REGISTRY).join(", ")}`,
54
+ };
55
+ }
56
+ // Validate props
57
+ const validation = (0, validateProps_1.validateProps)(componentName, props);
58
+ if (!validation.valid) {
59
+ return {
60
+ svg: null,
61
+ error: `Validation errors:\n${validation.errors.join("\n")}`,
62
+ };
63
+ }
64
+ // Disable hover (not useful in static SVG)
65
+ const renderProps = { ...props, enableHover: false };
66
+ try {
67
+ const element = React.createElement(entry.component, renderProps);
68
+ const svg = ReactDOMServer.renderToStaticMarkup(element);
69
+ return { svg, error: null };
70
+ }
71
+ catch (err) {
72
+ return {
73
+ svg: null,
74
+ error: `Render error: ${err.message || String(err)}`,
75
+ };
76
+ }
77
+ }