semiotic 3.7.5 → 3.8.0

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 (481) hide show
  1. package/CLAUDE.md +54 -12
  2. package/README.md +121 -27
  3. package/agent-skill/semiotic-charts/SKILL.md +146 -0
  4. package/ai/cli.js +133 -45
  5. package/ai/componentMetadata.cjs +6 -1
  6. package/ai/dist/mcp-server.js +1651 -154
  7. package/ai/examples.md +174 -0
  8. package/ai/schema.json +2733 -536
  9. package/ai/surface-manifest.json +200 -0
  10. package/ai/system-prompt.md +18 -3
  11. package/dist/components/CategoryColors.d.ts +1 -1
  12. package/dist/components/ChartContainer.d.ts +91 -0
  13. package/dist/components/ChartGrid.d.ts +11 -1
  14. package/dist/components/CircularBrush.d.ts +61 -0
  15. package/dist/components/ContextLayout.d.ts +5 -1
  16. package/dist/components/DirectManipulationControl.d.ts +63 -0
  17. package/dist/components/LinkedCharts.d.ts +3 -1
  18. package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
  19. package/dist/components/MobileChartContainer.d.ts +51 -0
  20. package/dist/components/MobileStandardControls.d.ts +68 -0
  21. package/dist/components/SmallMultipleChart.d.ts +84 -0
  22. package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
  23. package/dist/components/ai/ChartRecipe.d.ts +16 -0
  24. package/dist/components/ai/IntentMark.d.ts +15 -0
  25. package/dist/components/ai/chartCapabilities.d.ts +8 -1
  26. package/dist/components/ai/chartCapabilityTypes.d.ts +26 -1
  27. package/dist/components/ai/chartClinic.d.ts +91 -0
  28. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  29. package/dist/components/ai/chartRecipes.d.ts +278 -0
  30. package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
  31. package/dist/components/ai/describeChart.d.ts +7 -0
  32. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  33. package/dist/components/ai/generativeChart.d.ts +28 -3
  34. package/dist/components/ai/intentManifest.d.ts +62 -0
  35. package/dist/components/ai/navigationTree.d.ts +3 -0
  36. package/dist/components/ai/observedSceneAudit.d.ts +72 -0
  37. package/dist/components/ai/readerGrounding.d.ts +83 -0
  38. package/dist/components/ai/recipeCapability.d.ts +8 -0
  39. package/dist/components/ai/recipeNavigation.d.ts +13 -0
  40. package/dist/components/ai/recipeSemantics.d.ts +11 -0
  41. package/dist/components/ai/repairChartConfig.d.ts +9 -0
  42. package/dist/components/ai/suggestCharts.d.ts +11 -1
  43. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  44. package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
  45. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  46. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  47. package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
  48. package/dist/components/charts/geo/FlowMap.d.ts +1 -1
  49. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
  50. package/dist/components/charts/geo/index.d.ts +2 -0
  51. package/dist/components/charts/index.d.ts +29 -1
  52. package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
  53. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  54. package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
  55. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  56. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  57. package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
  58. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  59. package/dist/components/charts/network/Treemap.d.ts +1 -1
  60. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  61. package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
  62. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  63. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  64. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  65. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  66. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
  67. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  68. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  69. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  70. package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
  71. package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
  72. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  73. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  74. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  75. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  76. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
  77. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  78. package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
  79. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  80. package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
  81. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  82. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  83. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  84. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  85. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
  86. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  87. package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
  88. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  89. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  90. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  91. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  92. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  93. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  94. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  95. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  96. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  97. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  98. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  99. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  100. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  101. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  102. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  103. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  104. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  105. package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
  106. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  107. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  108. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  109. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  110. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  111. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  112. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  113. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  114. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  115. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
  116. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  117. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  118. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  119. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  120. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  121. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  122. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  123. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  124. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  125. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  126. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  127. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  128. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  129. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  130. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  131. package/dist/components/charts/shared/colorUtils.d.ts +16 -1
  132. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
  133. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  134. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  135. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  136. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  137. package/dist/components/charts/shared/hooks.d.ts +28 -5
  138. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  139. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  140. package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
  141. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  142. package/dist/components/charts/shared/types.d.ts +49 -1
  143. package/dist/components/charts/shared/useChartSetup.d.ts +9 -2
  144. package/dist/components/charts/shared/useCustomChartSetup.d.ts +14 -5
  145. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  146. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
  147. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  148. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  149. package/dist/components/charts/shared/validationMap.d.ts +0 -11
  150. package/dist/components/charts/xy/AreaChart.d.ts +1 -1
  151. package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
  152. package/dist/components/charts/xy/LineChart.d.ts +1 -1
  153. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  154. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  155. package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
  156. package/dist/components/charts/xy/Scatterplot.d.ts +1 -1
  157. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  158. package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
  159. package/dist/components/controls/controlAudit.d.ts +24 -0
  160. package/dist/components/controls/controlContract.d.ts +57 -0
  161. package/dist/components/data/fromFlintChart.d.ts +74 -0
  162. package/dist/components/data/fromVegaLite.d.ts +27 -0
  163. package/dist/components/data/portability/index.d.ts +6 -3
  164. package/dist/components/data/portability/result.d.ts +52 -0
  165. package/dist/components/data/portability/spec.d.ts +31 -0
  166. package/dist/components/data/portability/vegaLite.d.ts +24 -6
  167. package/dist/components/export/chartConfig.d.ts +11 -0
  168. package/dist/components/realtime/types.d.ts +11 -0
  169. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  170. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  171. package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
  172. package/dist/components/recipes/cyclical.d.ts +39 -0
  173. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  174. package/dist/components/recipes/forceLayout.d.ts +48 -0
  175. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  176. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  177. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  178. package/dist/components/recipes/gofishIR.d.ts +178 -132
  179. package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
  180. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  181. package/dist/components/recipes/intervals.d.ts +80 -0
  182. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  183. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  184. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  185. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  186. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  187. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  188. package/dist/components/recipes/physics.d.ts +122 -0
  189. package/dist/components/recipes/physicsReference.d.ts +102 -0
  190. package/dist/components/recipes/processAggregates.d.ts +32 -0
  191. package/dist/components/recipes/processChrome.d.ts +67 -0
  192. package/dist/components/recipes/processJourney.d.ts +54 -0
  193. package/dist/components/recipes/processPhysics.d.ts +300 -0
  194. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  195. package/dist/components/recipes/radialCoords.d.ts +69 -0
  196. package/dist/components/recipes/random.d.ts +2 -0
  197. package/dist/components/recipes/recipeChrome.d.ts +91 -0
  198. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  199. package/dist/components/recipes/recipeLegend.d.ts +53 -1
  200. package/dist/components/recipes/recipeUtils.d.ts +52 -0
  201. package/dist/components/recipes/runs.d.ts +59 -0
  202. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  203. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  204. package/dist/components/recipes/unitize.d.ts +108 -0
  205. package/dist/components/recipes/vector.d.ts +28 -0
  206. package/dist/components/recipes/waffle.d.ts +43 -0
  207. package/dist/components/semiotic-ai-core.d.ts +47 -0
  208. package/dist/components/semiotic-ai.d.ts +50 -8
  209. package/dist/components/semiotic-controls.d.ts +18 -0
  210. package/dist/components/semiotic-experimental.d.ts +38 -9
  211. package/dist/components/semiotic-geo.d.ts +11 -0
  212. package/dist/components/semiotic-network.d.ts +11 -0
  213. package/dist/components/semiotic-ordinal.d.ts +8 -0
  214. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  215. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  216. package/dist/components/semiotic-physics.d.ts +56 -0
  217. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  218. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  219. package/dist/components/semiotic-realtime.d.ts +4 -30
  220. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  221. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  222. package/dist/components/semiotic-recipes.d.ts +4 -43
  223. package/dist/components/semiotic-server-edge.d.ts +8 -0
  224. package/dist/components/semiotic-server-node.d.ts +5 -0
  225. package/dist/components/semiotic-server.d.ts +2 -2
  226. package/dist/components/semiotic-themes-core.d.ts +53 -0
  227. package/dist/components/semiotic-themes-react.d.ts +4 -0
  228. package/dist/components/semiotic-themes.d.ts +6 -76
  229. package/dist/components/semiotic-utils-core.d.ts +46 -0
  230. package/dist/components/semiotic-utils-react.d.ts +5 -0
  231. package/dist/components/semiotic-utils.d.ts +3 -39
  232. package/dist/components/semiotic-xy.d.ts +8 -0
  233. package/dist/components/semiotic.d.ts +35 -7
  234. package/dist/components/server/animatedGif.d.ts +36 -0
  235. package/dist/components/server/renderEvidence.d.ts +1 -1
  236. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  237. package/dist/components/server/serverChartConfigShared.d.ts +17 -0
  238. package/dist/components/server/serverChartConfigs.d.ts +19 -9
  239. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  240. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  241. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  242. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  243. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  244. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  245. package/dist/components/server/staticGeo.d.ts +4 -0
  246. package/dist/components/server/staticLegend.d.ts +1 -1
  247. package/dist/components/server/staticNetwork.d.ts +8 -0
  248. package/dist/components/server/staticOrdinal.d.ts +11 -0
  249. package/dist/components/server/staticPhysics.d.ts +3 -0
  250. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  251. package/dist/components/server/staticXY.d.ts +4 -0
  252. package/dist/components/store/ObservationStore.d.ts +3 -2
  253. package/dist/components/store/themeSerialization.d.ts +32 -0
  254. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  255. package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
  256. package/dist/components/stream/FocusRing.d.ts +4 -2
  257. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  258. package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
  259. package/dist/components/stream/NetworkPipelineStore.d.ts +31 -26
  260. package/dist/components/stream/NetworkSVGOverlay.d.ts +4 -1
  261. package/dist/components/stream/OrdinalPipelineStore.d.ts +46 -2
  262. package/dist/components/stream/PipelineStore.d.ts +81 -170
  263. package/dist/components/stream/SceneGraph.d.ts +9 -1
  264. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  265. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  266. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  267. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  268. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  269. package/dist/components/stream/accessorUtils.d.ts +23 -10
  270. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  271. package/dist/components/stream/canvasBackground.d.ts +24 -0
  272. package/dist/components/stream/canvasSetup.d.ts +4 -1
  273. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  274. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  275. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  276. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  277. package/dist/components/stream/geoCartogram.d.ts +17 -0
  278. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  279. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  280. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  281. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  282. package/dist/components/stream/geoTypes.d.ts +56 -7
  283. package/dist/components/stream/glyphDef.d.ts +98 -0
  284. package/dist/components/stream/hitTarget.d.ts +170 -0
  285. package/dist/components/stream/hoverUtils.d.ts +3 -0
  286. package/dist/components/stream/keyboardNav.d.ts +4 -1
  287. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  288. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
  289. package/dist/components/stream/networkBezier.d.ts +10 -0
  290. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  291. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  292. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  293. package/dist/components/stream/networkFramePaint.d.ts +43 -0
  294. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  295. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  296. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  297. package/dist/components/stream/networkTypes.d.ts +76 -5
  298. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  299. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  300. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  301. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  302. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
  303. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  304. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  305. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  306. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  307. package/dist/components/stream/ordinalTypes.d.ts +40 -8
  308. package/dist/components/stream/paintNeeds.d.ts +31 -0
  309. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  310. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  311. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  312. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  313. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  314. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  315. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  316. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  317. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  318. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  319. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  320. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  321. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  322. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  323. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
  324. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  325. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
  326. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  327. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  328. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  329. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  330. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  331. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  332. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  333. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  334. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  335. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  336. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
  337. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  338. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  339. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  340. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  341. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
  342. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  343. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  344. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
  345. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  346. package/dist/components/stream/pipelineConfig.d.ts +177 -0
  347. package/dist/components/stream/pipelineDecay.d.ts +20 -2
  348. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  349. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  350. package/dist/components/stream/pipelinePulse.d.ts +16 -2
  351. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  352. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  353. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
  354. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  355. package/dist/components/stream/pipelineTransitions.d.ts +2 -0
  356. package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
  357. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  358. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  359. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  360. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
  361. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  362. package/dist/components/stream/types.d.ts +135 -7
  363. package/dist/components/stream/useFrame.d.ts +21 -2
  364. package/dist/components/stream/useHydration.d.ts +6 -0
  365. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  366. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  367. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  368. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  369. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  370. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  371. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  372. package/dist/components/stream/xySceneBuilders/types.d.ts +4 -4
  373. package/dist/controls.min.js +2 -0
  374. package/dist/controls.module.min.js +2 -0
  375. package/dist/forceLayoutWorker.js +1 -0
  376. package/dist/geo.min.js +1 -1
  377. package/dist/geo.module.min.js +1 -1
  378. package/dist/network.min.js +1 -1
  379. package/dist/network.module.min.js +1 -1
  380. package/dist/ordinal.min.js +1 -1
  381. package/dist/ordinal.module.min.js +1 -1
  382. package/dist/physics-matter.min.js +1 -0
  383. package/dist/physics-matter.module.min.js +1 -0
  384. package/dist/physics-rapier.min.js +1 -0
  385. package/dist/physics-rapier.module.min.js +1 -0
  386. package/dist/physics.min.js +2 -0
  387. package/dist/physics.module.min.js +2 -0
  388. package/dist/physicsWorker.js +1 -0
  389. package/dist/realtime.min.js +1 -1
  390. package/dist/realtime.module.min.js +1 -1
  391. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  392. package/dist/semiotic-ai-core.d.ts +47 -0
  393. package/dist/semiotic-ai-core.min.js +1 -0
  394. package/dist/semiotic-ai-core.module.min.js +1 -0
  395. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  396. package/dist/semiotic-ai.d.ts +50 -8
  397. package/dist/semiotic-ai.min.js +1 -1
  398. package/dist/semiotic-ai.module.min.js +1 -1
  399. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  400. package/dist/semiotic-controls.d.ts +18 -0
  401. package/dist/semiotic-data.min.js +1 -1
  402. package/dist/semiotic-data.module.min.js +1 -1
  403. package/dist/semiotic-experimental.d.ts +38 -9
  404. package/dist/semiotic-experimental.min.js +1 -1
  405. package/dist/semiotic-experimental.module.min.js +1 -1
  406. package/dist/semiotic-geo.d.ts +11 -0
  407. package/dist/semiotic-network.d.ts +11 -0
  408. package/dist/semiotic-ordinal.d.ts +8 -0
  409. package/dist/semiotic-physics-matter.d.ts +10 -0
  410. package/dist/semiotic-physics-rapier.d.ts +9 -0
  411. package/dist/semiotic-physics.d.ts +56 -0
  412. package/dist/semiotic-realtime-core.d.ts +34 -0
  413. package/dist/semiotic-realtime-core.min.js +1 -0
  414. package/dist/semiotic-realtime-core.module.min.js +1 -0
  415. package/dist/semiotic-realtime-react.d.ts +10 -0
  416. package/dist/semiotic-realtime-react.min.js +2 -0
  417. package/dist/semiotic-realtime-react.module.min.js +2 -0
  418. package/dist/semiotic-realtime.d.ts +4 -30
  419. package/dist/semiotic-recipes-core.d.ts +92 -0
  420. package/dist/semiotic-recipes-core.min.js +1 -0
  421. package/dist/semiotic-recipes-core.module.min.js +1 -0
  422. package/dist/semiotic-recipes-react.d.ts +7 -0
  423. package/dist/semiotic-recipes-react.min.js +2 -0
  424. package/dist/semiotic-recipes-react.module.min.js +2 -0
  425. package/dist/semiotic-recipes.d.ts +4 -43
  426. package/dist/semiotic-recipes.min.js +1 -1
  427. package/dist/semiotic-recipes.module.min.js +1 -1
  428. package/dist/semiotic-server-edge.d.ts +8 -0
  429. package/dist/semiotic-server-edge.min.js +1 -0
  430. package/dist/semiotic-server-edge.module.min.js +1 -0
  431. package/dist/semiotic-server-node.d.ts +5 -0
  432. package/dist/semiotic-server-node.min.js +1 -0
  433. package/dist/semiotic-server-node.module.min.js +1 -0
  434. package/dist/semiotic-server.d.ts +2 -2
  435. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  436. package/dist/semiotic-themes-core.d.ts +53 -0
  437. package/dist/semiotic-themes-core.min.js +1 -0
  438. package/dist/semiotic-themes-core.module.min.js +1 -0
  439. package/dist/semiotic-themes-react.d.ts +4 -0
  440. package/dist/semiotic-themes-react.min.js +2 -0
  441. package/dist/semiotic-themes-react.module.min.js +2 -0
  442. package/dist/semiotic-themes.d.ts +6 -76
  443. package/dist/semiotic-themes.min.js +1 -2
  444. package/dist/semiotic-themes.module.min.js +1 -2
  445. package/dist/semiotic-utils-core.d.ts +46 -0
  446. package/dist/semiotic-utils-core.min.js +1 -0
  447. package/dist/semiotic-utils-core.module.min.js +1 -0
  448. package/dist/semiotic-utils-react.d.ts +5 -0
  449. package/dist/semiotic-utils-react.min.js +2 -0
  450. package/dist/semiotic-utils-react.module.min.js +2 -0
  451. package/dist/semiotic-utils.d.ts +3 -39
  452. package/dist/semiotic-utils.min.js +1 -2
  453. package/dist/semiotic-utils.module.min.js +1 -2
  454. package/dist/semiotic-value.min.js +1 -1
  455. package/dist/semiotic-value.module.min.js +1 -1
  456. package/dist/semiotic-xy.d.ts +8 -0
  457. package/dist/semiotic.d.ts +35 -7
  458. package/dist/semiotic.min.js +1 -1
  459. package/dist/semiotic.module.min.js +1 -1
  460. package/dist/server.min.js +1 -1
  461. package/dist/server.module.min.js +1 -1
  462. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  463. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  464. package/dist/xy.min.js +1 -1
  465. package/dist/xy.module.min.js +1 -1
  466. package/package.json +239 -87
  467. package/spec/README.md +152 -0
  468. package/spec/bindings/README.md +35 -0
  469. package/spec/bindings/vega-lite.mjs +112 -0
  470. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  471. package/spec/v0.1/audience-profile.schema.json +67 -0
  472. package/spec/v0.1/chart-capability.schema.json +186 -0
  473. package/dist/components/recipes/gofish.d.ts +0 -207
  474. package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
  475. package/dist/components/recipes/gofishLambdas.d.ts +0 -145
  476. package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
  477. package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
  478. package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
  479. package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
  480. package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
  481. package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
@@ -1,10 +1,9 @@
1
- import type { Datum } from "../charts/shared/datumTypes";
2
- type FrameType = "xy" | "ordinal" | "network" | "geo";
3
- interface ChartConfig {
4
- frameType: FrameType;
5
- /** Build frame props from HOC-level props */
6
- buildProps: (data: any, colorBy: any, colorScheme: any, common: Datum, rest: Datum) => Datum;
7
- }
1
+ /**
2
+ * Chart-specific prop mapping for renderChart().
3
+ *
4
+ * Family implementations live in serverChartConfigs{XY,Ordinal,Network,Geo,Custom,Physics}.ts.
5
+ */
6
+ import type { ChartConfig } from "./serverChartConfigShared";
8
7
  export declare const CHART_CONFIGS: {
9
8
  Sparkline: ChartConfig;
10
9
  LineChart: ChartConfig;
@@ -15,7 +14,7 @@ export declare const CHART_CONFIGS: {
15
14
  CandlestickChart: ChartConfig;
16
15
  BubbleChart: {
17
16
  frameType: "xy";
18
- buildProps: (data: any, colorBy: any, colorScheme: any, common: Datum, rest: Datum) => {
17
+ buildProps: (data: any, colorBy: any, colorScheme: any, common: import("../stream/networkColorAccessors").Datum, rest: import("../stream/networkColorAccessors").Datum) => {
19
18
  chartType: string;
20
19
  data: any;
21
20
  xAccessor: any;
@@ -29,6 +28,7 @@ export declare const CHART_CONFIGS: {
29
28
  ConnectedScatterplot: ChartConfig;
30
29
  QuadrantChart: ChartConfig;
31
30
  Heatmap: ChartConfig;
31
+ XYCustomChart: ChartConfig;
32
32
  BarChart: ChartConfig;
33
33
  StackedBarChart: ChartConfig;
34
34
  GroupedBarChart: ChartConfig;
@@ -44,7 +44,9 @@ export declare const CHART_CONFIGS: {
44
44
  LikertChart: ChartConfig;
45
45
  FunnelChart: ChartConfig;
46
46
  GaugeChart: ChartConfig;
47
+ OrdinalCustomChart: ChartConfig;
47
48
  ForceDirectedGraph: ChartConfig;
49
+ NetworkCustomChart: ChartConfig;
48
50
  SankeyDiagram: ChartConfig;
49
51
  ProcessSankey: ChartConfig;
50
52
  ChordDiagram: ChartConfig;
@@ -54,5 +56,13 @@ export declare const CHART_CONFIGS: {
54
56
  ChoroplethMap: ChartConfig;
55
57
  ProportionalSymbolMap: ChartConfig;
56
58
  FlowMap: ChartConfig;
59
+ GeoCustomChart: ChartConfig;
60
+ GaltonBoardChart: ChartConfig;
61
+ EventDropChart: ChartConfig;
62
+ PhysicsPileChart: ChartConfig;
63
+ CollisionSwarmChart: ChartConfig;
64
+ ProcessFlowChart: ChartConfig;
65
+ GauntletChart: ChartConfig;
66
+ PhysicalFlowChart: ChartConfig;
67
+ PhysicsCustomChart: ChartConfig;
57
68
  };
58
- export {};
@@ -0,0 +1,5 @@
1
+ import { type ChartConfig } from "./serverChartConfigShared";
2
+ export declare const xyCustomChart: ChartConfig;
3
+ export declare const ordinalCustomChart: ChartConfig;
4
+ export declare const networkCustomChart: ChartConfig;
5
+ export declare const geoCustomChart: ChartConfig;
@@ -0,0 +1,9 @@
1
+ import { type ChartConfig } from "./serverChartConfigShared";
2
+ export declare const choroplethMap: ChartConfig;
3
+ export declare const proportionalSymbolMap: ChartConfig;
4
+ /**
5
+ * FlowMap expands `flows` (edges with source/target ids) + `nodes` (points
6
+ * with coordinates) into the `lines` shape StreamGeoFrame expects, where
7
+ * each line carries a `coordinates` array of two {x,y} endpoints.
8
+ */
9
+ export declare const flowMap: ChartConfig;
@@ -0,0 +1,8 @@
1
+ import { type ChartConfig } from "./serverChartConfigShared";
2
+ export declare const forceDirectedGraph: ChartConfig;
3
+ export declare const processSankey: ChartConfig;
4
+ export declare const sankeyDiagram: ChartConfig;
5
+ export declare const chordDiagram: ChartConfig;
6
+ export declare const treeDiagram: ChartConfig;
7
+ export declare const treemap: ChartConfig;
8
+ export declare const circlePack: ChartConfig;
@@ -0,0 +1,16 @@
1
+ import { type ChartConfig } from "./serverChartConfigShared";
2
+ export declare const barChart: ChartConfig;
3
+ export declare const stackedBarChart: ChartConfig;
4
+ export declare const groupedBarChart: ChartConfig;
5
+ export declare const pieChart: ChartConfig;
6
+ export declare const donutChart: ChartConfig;
7
+ export declare const histogram: ChartConfig;
8
+ export declare const boxPlot: ChartConfig;
9
+ export declare const violinPlot: ChartConfig;
10
+ export declare const swarmPlot: ChartConfig;
11
+ export declare const dotPlot: ChartConfig;
12
+ export declare const swimlaneChart: ChartConfig;
13
+ export declare const ridgelinePlot: ChartConfig;
14
+ export declare const likertChart: ChartConfig;
15
+ export declare const funnelChart: ChartConfig;
16
+ export declare const gaugeChart: ChartConfig;
@@ -0,0 +1,9 @@
1
+ import { type ChartConfig } from "./serverChartConfigShared";
2
+ export declare const galtonBoardChart: ChartConfig;
3
+ export declare const eventDropChart: ChartConfig;
4
+ export declare const physicsPileChart: ChartConfig;
5
+ export declare const collisionSwarmChart: ChartConfig;
6
+ export declare const processFlowChart: ChartConfig;
7
+ export declare const gauntletChart: ChartConfig;
8
+ export declare const physicalFlowChart: ChartConfig;
9
+ export declare const physicsCustomChart: ChartConfig;
@@ -0,0 +1,11 @@
1
+ import { type ChartConfig } from "./serverChartConfigShared";
2
+ export declare const sparkline: ChartConfig;
3
+ export declare const lineChart: ChartConfig;
4
+ export declare const areaChart: ChartConfig;
5
+ export declare const differenceChart: ChartConfig;
6
+ export declare const stackedAreaChart: ChartConfig;
7
+ export declare const candlestickChart: ChartConfig;
8
+ export declare const scatterplot: ChartConfig;
9
+ export declare const quadrantChart: ChartConfig;
10
+ export declare const connectedScatterplot: ChartConfig;
11
+ export declare const heatmap: ChartConfig;
@@ -0,0 +1,4 @@
1
+ import type { StreamGeoFrameProps } from "../stream/geoTypes";
2
+ import { type EvidenceSink } from "./renderEvidence";
3
+ import type { ThemeAwareProps } from "./staticSVGChrome";
4
+ export declare function renderGeoFrame(props: StreamGeoFrameProps & ThemeAwareProps, sink?: EvidenceSink): string;
@@ -26,7 +26,7 @@ export interface StaticLegendConfig {
26
26
  /** Category labels to show in legend */
27
27
  categories: string[];
28
28
  /** Color scheme — array of colors or d3-scale-chromatic name */
29
- colorScheme?: string | string[];
29
+ colorScheme?: string | string[] | Record<string, string>;
30
30
  /** Theme for text/font colors */
31
31
  theme: SemioticTheme;
32
32
  /** Legend position */
@@ -0,0 +1,8 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { NetworkPipelineConfig, RealtimeNode, RealtimeEdge, StreamNetworkFrameProps } from "../stream/networkTypes";
3
+ import { type EvidenceSink } from "./renderEvidence";
4
+ import type { ThemeAwareProps } from "./staticSVGChrome";
5
+ export declare function resolveAccessor(accessor: string | ((d: Datum) => any) | undefined, defaultKey: string): (d: Datum) => any;
6
+ export declare function buildRealtimeNodes(propsNodes: any[], config: NetworkPipelineConfig): RealtimeNode[];
7
+ export declare function buildRealtimeEdges(propsEdges: any[], config: NetworkPipelineConfig): RealtimeEdge[];
8
+ export declare function renderNetworkFrame(props: StreamNetworkFrameProps & ThemeAwareProps, sink?: EvidenceSink): string;
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import { OrdinalPipelineStore } from "../stream/OrdinalPipelineStore";
3
+ import type { StreamOrdinalFrameProps } from "../stream/ordinalTypes";
4
+ import { type EvidenceSink } from "./renderEvidence";
5
+ import type { SemioticTheme } from "../store/ThemeStore";
6
+ import type { ThemeAwareProps } from "./staticSVGChrome";
7
+ export declare function generateOrdinalAxesSVG(store: OrdinalPipelineStore, layout: {
8
+ width: number;
9
+ height: number;
10
+ }, props: StreamOrdinalFrameProps, theme: SemioticTheme, idPrefix?: string): React.ReactNode;
11
+ export declare function renderOrdinalFrame(props: StreamOrdinalFrameProps & ThemeAwareProps, sink?: EvidenceSink): string;
@@ -0,0 +1,3 @@
1
+ import { type EvidenceSink } from "./renderEvidence";
2
+ import type { StaticPhysicsFrameProps } from "./staticSVGChrome";
3
+ export declare function renderPhysicsFrame(props: StaticPhysicsFrameProps, sink?: EvidenceSink): string;
@@ -0,0 +1,110 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { LegendLayout } from "../types/legendTypes";
3
+ import type { StreamXYFrameProps, StreamScales, StreamLayout } from "../stream/types";
4
+ import type { StreamNetworkFrameProps, RealtimeEdge } from "../stream/networkTypes";
5
+ import type { StreamOrdinalFrameProps } from "../stream/ordinalTypes";
6
+ import type { StreamGeoFrameProps } from "../stream/geoTypes";
7
+ import type { PhysicsSettledSVGOptions } from "../stream/physics/PhysicsSettledSVG";
8
+ import type { PhysicsPipelineStore } from "../stream/physics/PhysicsPipelineStore";
9
+ import type { OrdinalPipelineStore } from "../stream/OrdinalPipelineStore";
10
+ import type { RenderEvidence } from "./renderEvidence";
11
+ import { resolveTheme, type ThemeInput } from "./themeResolver";
12
+ import type { SemioticTheme } from "../store/ThemeStore";
13
+ import * as React from "react";
14
+ export type FrameType = RenderEvidence["frameType"];
15
+ export type StaticPhysicsFrameProps = PhysicsSettledSVGOptions & {
16
+ config?: ConstructorParameters<typeof PhysicsPipelineStore>[0];
17
+ initialSpawns?: Array<Record<string, unknown>>;
18
+ projectionRows?: PhysicsSettledSVGOptions["projectionRows"];
19
+ size?: [number, number];
20
+ _idPrefix?: string;
21
+ };
22
+ export type StaticFrameProps = (StreamXYFrameProps | StreamNetworkFrameProps | StreamOrdinalFrameProps | StreamGeoFrameProps | StaticPhysicsFrameProps) & ThemeAwareProps;
23
+ export type CategoricalAccessor = string | ((d: Datum) => string);
24
+ type EdgeEndpoint = RealtimeEdge["source"] | RealtimeEdge["target"] | null | undefined;
25
+ export declare function edgeEndpointId(endpoint: EdgeEndpoint): string | null;
26
+ /** Generate a short stable ID from chart props for unique SVG element IDs */
27
+ export declare function chartUID(props: Datum): string;
28
+ export interface ThemeAwareProps {
29
+ theme?: ThemeInput;
30
+ showLegend?: boolean;
31
+ showGrid?: boolean;
32
+ annotations?: Datum[];
33
+ title?: string | React.ReactNode;
34
+ description?: string;
35
+ background?: string;
36
+ className?: string;
37
+ legendPosition?: "right" | "left" | "top" | "bottom";
38
+ legendLayout?: LegendLayout;
39
+ /** Prefix for SVG element IDs — used by renderDashboard to avoid collisions */
40
+ _idPrefix?: string;
41
+ }
42
+ export declare function reserveStaticLegendMargin(margin: {
43
+ top: number;
44
+ right: number;
45
+ bottom: number;
46
+ left: number;
47
+ }, options: {
48
+ categories: string[];
49
+ colorScheme?: string | string[] | Record<string, string>;
50
+ theme: ReturnType<typeof resolveTheme>;
51
+ position?: "right" | "left" | "top" | "bottom";
52
+ size: [number, number];
53
+ hasTitle?: boolean;
54
+ legendLayout?: LegendLayout;
55
+ }): void;
56
+ export declare function reserveLegendConfigMargin(margin: {
57
+ top: number;
58
+ right: number;
59
+ bottom: number;
60
+ left: number;
61
+ }, options: {
62
+ legend: unknown;
63
+ theme: ReturnType<typeof resolveTheme>;
64
+ position?: "right" | "left" | "top" | "bottom";
65
+ size: [number, number];
66
+ hasTitle?: boolean;
67
+ legendLayout?: LegendLayout;
68
+ }): void;
69
+ export declare function renderLegendConfig(legend: unknown, options: {
70
+ theme: ReturnType<typeof resolveTheme>;
71
+ position?: "right" | "left" | "top" | "bottom";
72
+ size: [number, number];
73
+ margin: {
74
+ top: number;
75
+ right: number;
76
+ bottom: number;
77
+ left: number;
78
+ };
79
+ hasTitle?: boolean;
80
+ legendLayout?: LegendLayout;
81
+ idPrefix?: string;
82
+ }): React.ReactNode;
83
+ export declare function defaultTickFormat(v: number): string;
84
+ /** Render grid lines for XY charts */
85
+ export declare function renderGridSVG(scales: StreamScales, layout: StreamLayout, theme: SemioticTheme, idPrefix?: string): React.ReactNode;
86
+ /** Render grid lines for ordinal charts */
87
+ export declare function renderOrdinalGridSVG(store: OrdinalPipelineStore, layout: {
88
+ width: number;
89
+ height: number;
90
+ }, theme: SemioticTheme, idPrefix?: string): React.ReactNode;
91
+ /** Wrap SVG content with accessibility attributes */
92
+ export declare function wrapSVG(content: React.ReactNode, opts: {
93
+ width: number;
94
+ height: number;
95
+ className: string;
96
+ title?: string | React.ReactNode;
97
+ description?: string;
98
+ background?: string;
99
+ theme: SemioticTheme;
100
+ innerTransform: string;
101
+ innerWidth: number;
102
+ innerHeight: number;
103
+ legend?: React.ReactNode;
104
+ outerElements?: React.ReactNode;
105
+ defs?: React.ReactNode;
106
+ /** Prefix for SVG element IDs to avoid collisions in multi-chart documents */
107
+ idPrefix?: string;
108
+ }): React.ReactElement;
109
+ export declare function generateAxesSVG(scales: StreamScales, layout: StreamLayout, props: StreamXYFrameProps, theme: SemioticTheme, idPrefix?: string): React.ReactNode;
110
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { StreamXYFrameProps } from "../stream/types";
2
+ import { type EvidenceSink } from "./renderEvidence";
3
+ import type { ThemeAwareProps } from "./staticSVGChrome";
4
+ export declare function renderStreamXYFrame(props: StreamXYFrameProps & ThemeAwareProps, sink?: EvidenceSink): string;
@@ -1,4 +1,6 @@
1
1
  import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { ControlObservation } from "../controls/controlContract";
3
+ export type { ControlObservation } from "../controls/controlContract";
2
4
  interface ObservationBase {
3
5
  timestamp: number;
4
6
  chartType: string;
@@ -64,7 +66,7 @@ export interface LateDataObservation extends ObservationBase {
64
66
  /** Running total of late events seen on this chart. */
65
67
  lateCount: number;
66
68
  }
67
- export type ChartObservation = HoverObservation | HoverEndObservation | BrushObservation | BrushEndObservation | SelectionObservation | SelectionEndObservation | ClickObservation | ClickEndObservation | LateDataObservation;
69
+ export type ChartObservation = HoverObservation | HoverEndObservation | BrushObservation | BrushEndObservation | SelectionObservation | SelectionEndObservation | ClickObservation | ClickEndObservation | ControlObservation | LateDataObservation;
68
70
  export type OnObservationCallback = (observation: ChartObservation) => void;
69
71
  export interface ObservationStoreState {
70
72
  /** Ring buffer of recent observations (newest last). Mutated in place for perf. */
@@ -76,4 +78,3 @@ export interface ObservationStoreState {
76
78
  clearObservations: () => void;
77
79
  }
78
80
  export declare const ObservationProvider: import("react").FC<import("./createStore").StoreProviderProps<ObservationStoreState>>, useObservationSelector: <R>(selector: (state: ObservationStoreState) => R, equalityFn?: ((a: R, b: R) => boolean) | undefined) => R;
79
- export {};
@@ -0,0 +1,32 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { SemioticTheme } from "./ThemeStore";
3
+ /**
4
+ * Convert a SemioticTheme to a CSS custom properties string.
5
+ * Useful for SSR or generating stylesheet content.
6
+ *
7
+ * @param theme - A SemioticTheme object
8
+ * @param selector - CSS selector to scope the variables (default: `:root`)
9
+ * @returns CSS string with custom properties
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const css = themeToCSS(TUFTE_LIGHT, ".my-charts")
14
+ * // .my-charts {
15
+ * // --semiotic-bg: #fffff8;
16
+ * // --semiotic-text: #111111;
17
+ * // ...
18
+ * // }
19
+ * ```
20
+ */
21
+ export declare function themeToCSS(theme: SemioticTheme, selector?: string): string;
22
+ /**
23
+ * Convert a SemioticTheme to a design tokens JSON object.
24
+ * Compatible with Style Dictionary / Design Token Community Group format.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const tokens = themeToTokens(TUFTE_LIGHT)
29
+ * // { semiotic: { bg: { $value: "#fffff8", $type: "color" }, ... } }
30
+ * ```
31
+ */
32
+ export declare function themeToTokens(theme: SemioticTheme): Datum;
@@ -2,6 +2,7 @@ import type { Datum } from "../charts/shared/datumTypes";
2
2
  import { type DataSummary } from "../data/DataSummarizer";
3
3
  import type { ChartDataProfile, Suggestion } from "../ai/chartCapabilityTypes";
4
4
  import type { IntentId } from "../ai/intents";
5
+ import { type ChartReaderGrounding, type ChartReaderGroundingOptions } from "../ai/readerGrounding";
5
6
  /**
6
7
  * Identifies a single point of interest on the chart — typically the datum
7
8
  * the user is currently hovering, clicked, or otherwise focused on. When
@@ -31,6 +32,8 @@ export interface InterrogationContext {
31
32
  componentName?: string;
32
33
  /** Optional caller-supplied chart props (accessor names, scales, etc.). */
33
34
  props?: Record<string, unknown>;
35
+ /** Optional reader-grounding payload for faithful chart interpretation. */
36
+ grounding?: ChartReaderGrounding;
34
37
  /**
35
38
  * The current focused datum — what the user is interactively pointing at.
36
39
  * Lets the LLM tailor responses to a specific point ("why is *this* one
@@ -82,6 +85,12 @@ export interface UseChartInterrogationOptions {
82
85
  * `onObservation` callback or the convenience `useChartFocus` hook.
83
86
  */
84
87
  focus?: InterrogationFocus | null;
88
+ /**
89
+ * Include `buildReaderGrounding()` in the interrogation context. Pass true
90
+ * for default grounding, or an options object for capability/audience,
91
+ * structure, and physics runtime grounding controls.
92
+ */
93
+ includeGrounding?: boolean | ChartReaderGroundingOptions;
85
94
  }
86
95
  export interface UseChartInterrogationResult {
87
96
  /** Ask a question. Updates history, annotations, loading, and error. */
@@ -1,9 +1,7 @@
1
1
  import * as React from "react";
2
- /** Scene node type used by the accessible data table — accepts any frame's scene nodes */
3
- type AnySceneNode = {
4
- type?: string;
5
- [key: string]: any;
6
- };
2
+ import { type AccessibleSceneNode as AnySceneNode } from "./accessibleDataRows";
3
+ export { extractAllRows } from "./accessibleDataRows";
4
+ export type { DataRow } from "./accessibleDataRows";
7
5
  declare const SR_ONLY_STYLE: React.CSSProperties;
8
6
  /**
9
7
  * Compute an aria-label describing the chart type and data shape from the scene graph.
@@ -13,14 +11,6 @@ export declare function computeCanvasAriaLabel(scene: AnySceneNode[] | null | un
13
11
  * Compute an aria-label for network charts from scene nodes and edges.
14
12
  */
15
13
  export declare function computeNetworkAriaLabel(nodeCount: number, edgeCount: number, chartType: string): string;
16
- interface DataRow {
17
- label: string;
18
- values: Record<string, string | number>;
19
- }
20
- /** Extract a flat list of typed rows from scene nodes, surfacing the raw datum
21
- * fields (not pixel coordinates). Defensively handles missing/malformed data —
22
- * never throws. Exported for direct testing. */
23
- export declare function extractAllRows(scene: AnySceneNode[]): DataRow[];
24
14
  interface AccessibleDataTableProps {
25
15
  scene: AnySceneNode[];
26
16
  chartType: string;
@@ -24,10 +24,12 @@ export interface FocusRingProps {
24
24
  /** Total chart size */
25
25
  size: [number, number];
26
26
  /** Shape hint from the focused nav point */
27
- shape?: "circle" | "rect" | "wedge";
27
+ shape?: "circle" | "rect" | "wedge" | "geoarea" | "path";
28
28
  /** Width of rect-shaped focus target */
29
29
  width?: number;
30
30
  /** Height of rect-shaped focus target */
31
31
  height?: number;
32
+ /** SVG path (plot-relative) outlined for a geoarea focus. */
33
+ pathData?: string;
32
34
  }
33
- export declare function FocusRing({ active, hoverPoint, margin, size, shape, width, height }: FocusRingProps): React.JSX.Element | null;
35
+ export declare function FocusRing({ active, hoverPoint, margin, size, shape, width, height, pathData }: FocusRingProps): React.JSX.Element | null;
@@ -16,4 +16,4 @@ export interface GeoHitResult {
16
16
  * The `hitCtx` parameter is a shared offscreen canvas context used for
17
17
  * isPointInPath checks without polluting the visible canvas.
18
18
  */
19
- export declare function findNearestGeoNode(nodes: GeoSceneNode[], mouseX: number, mouseY: number, maxDistance: number, hitCtx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pointQuadtree?: Quadtree<PointSceneNode> | null, maxPointRadius?: number): GeoHitResult | null;
19
+ export declare function findNearestGeoNode(nodes: GeoSceneNode[], mouseX: number, mouseY: number, maxDistance: number, hitCtx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pointQuadtree?: Quadtree<PointSceneNode> | null, maxPointRadius?: number, lineMaxDistance?: number): GeoHitResult | null;
@@ -4,11 +4,29 @@ import type { GeoPipelineConfig, GeoScales, GeoSceneNode } from "./geoTypes";
4
4
  import type { PointSceneNode, StreamLayout } from "./types";
5
5
  import type { ActiveTransition } from "./pipelineTransitionUtils";
6
6
  import type { Datum } from "../charts/shared/datumTypes";
7
+ import type { GeoLayoutResult } from "./geoCustomLayout";
8
+ import type { CustomLayoutSelection } from "./customLayoutSelection";
9
+ import { type CustomLayoutFailureDiagnostic } from "./customLayoutFailure";
7
10
  export declare class GeoPipelineStore {
8
11
  config: GeoPipelineConfig;
9
12
  scene: GeoSceneNode[];
10
13
  scales: GeoScales | null;
11
14
  version: number;
15
+ /** SVG overlays returned from the active custom layout. */
16
+ customLayoutOverlays: import("react").ReactNode;
17
+ /** Most recent custom layout result for host readback (`getCustomLayout()`).
18
+ * Null before the first layout or without a custom layout. A failed
19
+ * re-layout retains the prior good result alongside its diagnostic. */
20
+ lastCustomLayoutResult: GeoLayoutResult | null;
21
+ /** Most recent exception from a custom layout invocation, for host readback. */
22
+ lastCustomLayoutFailure: CustomLayoutFailureDiagnostic | null;
23
+ private _customLayoutDiagnosticsWarned;
24
+ private _customRestyle;
25
+ hasCustomRestyle: boolean;
26
+ private _baseStyles;
27
+ /** Set only while a custom-layout invocation throws. The rebuild callers use
28
+ * it to retain the previous scene and projection state without mutating it. */
29
+ private _customLayoutFailedThisBuild;
12
30
  private static readonly QUADTREE_THRESHOLD;
13
31
  private _quadtree;
14
32
  /** Largest visual point radius in the current scene; used to widen quadtree
@@ -74,6 +92,16 @@ export declare class GeoPipelineStore {
74
92
  */
75
93
  removePoint(id: string | string[]): Datum[];
76
94
  clear(): void;
95
+ setLayoutSelection(selection: CustomLayoutSelection | null): void;
96
+ /**
97
+ * "Styles changed, repaint the data canvas without rebuilding the scene."
98
+ * Set by {@link restyleScene}; consumed once per frame by the paint loop, so a
99
+ * style-only selection change repaints without a projection/scene recompute.
100
+ */
101
+ private _stylePaintPending;
102
+ /** Consume the style-only repaint signal (see {@link _stylePaintPending}). */
103
+ consumeStylePaintPending(): boolean;
104
+ restyleScene(selection: CustomLayoutSelection | null): void;
77
105
  computeScene(layout: StreamLayout): void;
78
106
  private fitProjection;
79
107
  /**
@@ -1,6 +1,7 @@
1
1
  import { ParticlePool } from "./ParticlePool";
2
- import type { NetworkHtmlMark } from "./networkCustomLayout";
2
+ import type { NetworkLayoutResult, NetworkHtmlMark } from "./networkCustomLayout";
3
3
  import type { CustomLayoutSelection } from "./customLayoutSelection";
4
+ import { type CustomLayoutFailureDiagnostic } from "./customLayoutFailure";
4
5
  import type { ActiveTransition } from "./pipelineTransitionUtils";
5
6
  import { type Quadtree } from "d3-quadtree";
6
7
  import type { NetworkPipelineConfig, NetworkSceneNode, NetworkSceneEdge, NetworkCircleNode, NetworkLabel, RealtimeNode, RealtimeEdge, EdgePush } from "./networkTypes";
@@ -31,6 +32,12 @@ export declare class NetworkPipelineStore {
31
32
  labels: NetworkLabel[];
32
33
  /** Overlays returned from customNetworkLayout (consumed by StreamNetworkFrame). */
33
34
  customLayoutOverlays: import("react").ReactNode;
35
+ /** Most recent custom layout result for host readback (`getCustomLayout()`).
36
+ * Null before the first layout or without a custom layout. A failed rerun
37
+ * retains this last successful result when its rendered scene is reusable. */
38
+ lastCustomLayoutResult: NetworkLayoutResult | null;
39
+ /** Latest custom-layout failure for frame-handle readback. */
40
+ lastCustomLayoutFailure: CustomLayoutFailureDiagnostic | null;
34
41
  /** HTML marks returned from customNetworkLayout — positioned DOM nodes the
35
42
  * frame renders in a layer above the canvas/overlays (consumed by
36
43
  * StreamNetworkFrame). Empty for built-in chart types. */
@@ -83,6 +90,7 @@ export declare class NetworkPipelineStore {
83
90
  lastTopologyChangeTime: number;
84
91
  private previousNodeIds;
85
92
  private previousEdgeKeys;
93
+ private _networkDecayCache;
86
94
  /** Snapshot of node positions from the last layout — used for force warm-start */
87
95
  _lastPositionSnapshot: Map<string, {
88
96
  x: number;
@@ -99,7 +107,19 @@ export declare class NetworkPipelineStore {
99
107
  * Ingest bounded node/edge arrays (from props).
100
108
  * Clears existing topology and rebuilds from scratch.
101
109
  */
102
- ingestBounded(rawNodes: any[], rawEdges: any[], size: [number, number]): void;
110
+ ingestBounded(rawNodes: any[], rawEdges: any[], size: [number, number], options?: {
111
+ deferLayout?: boolean;
112
+ }): void;
113
+ /**
114
+ * Apply worker-computed force positions through the normal layout finalizer.
115
+ * The force plugin still resolves edge endpoints, clamps bounds, records
116
+ * topology diffs, snapshots positions, and prepares transitions; it only
117
+ * skips the expensive simulation itself.
118
+ */
119
+ applyForceLayoutPositions(positions: Record<string, {
120
+ x: number;
121
+ y: number;
122
+ }>, size: [number, number]): void;
103
123
  /**
104
124
  * Unique key for an edge (same as TopologyStore).
105
125
  */
@@ -139,6 +159,15 @@ export declare class NetworkPipelineStore {
139
159
  * stays valid and no relayout/repack happens. The frame repaints the canvas
140
160
  * after calling this. No-op when the layout supplied no restyle callbacks.
141
161
  */
162
+ /**
163
+ * "Styles changed, repaint the data canvas without rebuilding the scene."
164
+ * Set by {@link restyleScene}; consumed once per frame by the paint loop.
165
+ * Deliberately separate from `_sceneNodesRevision` (the quadtree-invalidation
166
+ * counter) so a style-only selection change repaints without a relayout.
167
+ */
168
+ private _stylePaintPending;
169
+ /** Consume the style-only repaint signal (see {@link _stylePaintPending}). */
170
+ consumeStylePaintPending(): boolean;
142
171
  restyleScene(selection: CustomLayoutSelection | null): void;
143
172
  buildScene(size: [number, number]): void;
144
173
  /**
@@ -198,37 +227,13 @@ export declare class NetworkPipelineStore {
198
227
  private restorePreviousPositions;
199
228
  private snapToTargets;
200
229
  private updateEdgeBezier;
201
- private buildStandardBezier;
202
- private buildCircularBezier;
203
230
  rebuildAllBeziers(): void;
204
- /**
205
- * Apply pulse glow to scene nodes/edges based on their creation timestamps.
206
- */
207
231
  applyPulse(now: number): void;
208
- /**
209
- * Apply decay opacity to scene nodes based on topology age order.
210
- * Older nodes (created earlier) are more faded.
211
- */
212
232
  applyDecay(): void;
213
- /**
214
- * Apply topology diff highlight — newly added nodes glow briefly.
215
- * Duration: 2 seconds from lastTopologyChangeTime.
216
- */
217
233
  applyTopologyDiff(now: number): void;
218
- /** Whether there is an active topology diff animation */
219
234
  get hasActiveTopologyDiff(): boolean;
220
- /**
221
- * Apply threshold alerting to scene nodes.
222
- * Overrides fill color and adds pulse for nodes exceeding thresholds.
223
- */
224
235
  applyThresholds(now: number): void;
225
- /**
226
- * Whether there are active threshold alerts on any node.
227
- */
228
236
  get hasActiveThresholds(): boolean;
229
- /**
230
- * Whether there are active pulse animations (recent ingests within pulse duration).
231
- */
232
237
  get hasActivePulses(): boolean;
233
238
  getLayoutData(): {
234
239
  nodes: RealtimeNode[];
@@ -5,6 +5,7 @@ import type { NetworkLabel } from "./networkTypes";
5
5
  import type { LegendGroup, GradientLegendConfig, LegendLayout } from "../types/legendTypes";
6
6
  import { type AutoPlaceAnnotations } from "../recipes/annotationLayout";
7
7
  import type { AnnotationContext } from "../realtime/types";
8
+ import { type GlyphDef } from "./glyphDef";
8
9
  type AnnotationAnchorNode = {
9
10
  type: string;
10
11
  datum: Datum | null;
@@ -19,8 +20,10 @@ type AnnotationAnchorNode = {
19
20
  r?: number;
20
21
  /** Arc nodes (chord, radial) carry an outer radius. */
21
22
  outerR?: number;
22
- /** Symbol nodes (the per-datum glyph channel) carry a d3-symbol area. */
23
+ /** Symbol nodes carry a d3-symbol area; glyph nodes reuse `size` as rendered height. */
23
24
  size?: number;
25
+ /** Glyph nodes (the composite-pictogram channel) carry a definition. */
26
+ glyph?: GlyphDef;
24
27
  };
25
28
  type NetworkAnnotationContext = AnnotationContext & {
26
29
  sceneNodes?: AnnotationAnchorNode[];