semiotic 3.7.4 → 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 (517) hide show
  1. package/CLAUDE.md +60 -15
  2. package/README.md +135 -24
  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 +2934 -517
  9. package/ai/surface-manifest.json +200 -0
  10. package/ai/system-prompt.md +19 -3
  11. package/dist/components/Annotation.d.ts +4 -0
  12. package/dist/components/CategoryColors.d.ts +1 -1
  13. package/dist/components/ChartContainer.d.ts +91 -0
  14. package/dist/components/ChartGrid.d.ts +11 -1
  15. package/dist/components/CircularBrush.d.ts +61 -0
  16. package/dist/components/ContextLayout.d.ts +5 -1
  17. package/dist/components/DataSummaryContext.d.ts +1 -0
  18. package/dist/components/DirectManipulationControl.d.ts +63 -0
  19. package/dist/components/LinkedCharts.d.ts +3 -1
  20. package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
  21. package/dist/components/MobileChartContainer.d.ts +51 -0
  22. package/dist/components/MobileStandardControls.d.ts +68 -0
  23. package/dist/components/SmallMultipleChart.d.ts +84 -0
  24. package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
  25. package/dist/components/ai/ChartRecipe.d.ts +16 -0
  26. package/dist/components/ai/IntentMark.d.ts +15 -0
  27. package/dist/components/ai/chartCapabilities.d.ts +8 -1
  28. package/dist/components/ai/chartCapabilityTypes.d.ts +42 -1
  29. package/dist/components/ai/chartClinic.d.ts +91 -0
  30. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  31. package/dist/components/ai/chartRecipes.d.ts +278 -0
  32. package/dist/components/ai/dataPitfallsBridge.d.ts +203 -0
  33. package/dist/components/ai/dataQualityBridge.d.ts +201 -0
  34. package/dist/components/ai/describeChart.d.ts +9 -0
  35. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  36. package/dist/components/ai/generativeChart.d.ts +170 -0
  37. package/dist/components/ai/intentManifest.d.ts +62 -0
  38. package/dist/components/ai/navigationTree.d.ts +3 -0
  39. package/dist/components/ai/observedSceneAudit.d.ts +72 -0
  40. package/dist/components/ai/readerGrounding.d.ts +83 -0
  41. package/dist/components/ai/recipeCapability.d.ts +8 -0
  42. package/dist/components/ai/recipeNavigation.d.ts +13 -0
  43. package/dist/components/ai/recipeSemantics.d.ts +11 -0
  44. package/dist/components/ai/repairChartConfig.d.ts +9 -0
  45. package/dist/components/ai/suggestCharts.d.ts +11 -1
  46. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  47. package/dist/components/charts/custom/NetworkCustomChart.d.ts +22 -3
  48. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  49. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  50. package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
  51. package/dist/components/charts/geo/FlowMap.d.ts +1 -1
  52. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
  53. package/dist/components/charts/geo/index.d.ts +2 -0
  54. package/dist/components/charts/index.d.ts +29 -1
  55. package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
  56. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  57. package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
  58. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  59. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  60. package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
  61. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  62. package/dist/components/charts/network/Treemap.d.ts +1 -1
  63. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  64. package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
  65. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  66. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  67. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  68. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  69. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
  70. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  71. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  72. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  73. package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
  74. package/dist/components/charts/ordinal/SwarmPlot.d.ts +8 -1
  75. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  76. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  77. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  78. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  79. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
  80. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  81. package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
  82. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  83. package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
  84. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  85. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  86. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  87. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  88. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
  89. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  90. package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
  91. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  92. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  93. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  94. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  95. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  96. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  97. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  98. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  99. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  100. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  101. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  102. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  103. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  104. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  105. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  106. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  107. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  108. package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
  109. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  110. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  111. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  112. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  113. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  114. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  115. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  116. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  117. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  118. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +30 -1
  119. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  120. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  121. package/dist/components/charts/realtime/aggregate.d.ts +51 -0
  122. package/dist/components/charts/realtime/eventTime.d.ts +26 -0
  123. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  124. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  125. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  126. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  127. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  128. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  129. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  130. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  131. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  132. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  133. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  134. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  135. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  136. package/dist/components/charts/shared/colorPalettes.d.ts +2 -0
  137. package/dist/components/charts/shared/colorUtils.d.ts +17 -13
  138. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
  139. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  140. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  141. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  142. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  143. package/dist/components/charts/shared/hooks.d.ts +28 -5
  144. package/dist/components/charts/shared/minMax.d.ts +3 -0
  145. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  146. package/dist/components/charts/shared/radialGeometry.d.ts +0 -18
  147. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  148. package/dist/components/charts/shared/smartTooltip.d.ts +27 -0
  149. package/dist/components/charts/shared/statisticalOverlays.d.ts +35 -0
  150. package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
  151. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  152. package/dist/components/charts/shared/tooltipUtils.d.ts +2 -0
  153. package/dist/components/charts/shared/types.d.ts +49 -1
  154. package/dist/components/charts/shared/useChartSetup.d.ts +10 -3
  155. package/dist/components/charts/shared/useCustomChartSetup.d.ts +15 -6
  156. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  157. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
  158. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  159. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  160. package/dist/components/charts/shared/validateChartData.d.ts +1 -1
  161. package/dist/components/charts/shared/validationMap.d.ts +0 -11
  162. package/dist/components/charts/xy/AreaChart.d.ts +1 -1
  163. package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
  164. package/dist/components/charts/xy/LineChart.d.ts +1 -1
  165. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  166. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  167. package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
  168. package/dist/components/charts/xy/Scatterplot.d.ts +10 -1
  169. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  170. package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
  171. package/dist/components/controls/controlAudit.d.ts +24 -0
  172. package/dist/components/controls/controlContract.d.ts +57 -0
  173. package/dist/components/data/fromArrow.d.ts +54 -0
  174. package/dist/components/data/fromFlintChart.d.ts +74 -0
  175. package/dist/components/data/fromMermaid.d.ts +47 -0
  176. package/dist/components/data/fromObservablePlot.d.ts +69 -0
  177. package/dist/components/data/fromVegaLite.d.ts +27 -0
  178. package/dist/components/data/portability/index.d.ts +17 -0
  179. package/dist/components/data/portability/result.d.ts +52 -0
  180. package/dist/components/data/portability/spec.d.ts +160 -0
  181. package/dist/components/data/portability/vegaLite.d.ts +80 -0
  182. package/dist/components/export/chartConfig.d.ts +11 -0
  183. package/dist/components/realtime/ReorderBuffer.d.ts +54 -0
  184. package/dist/components/realtime/RunningStats.d.ts +66 -0
  185. package/dist/components/realtime/WindowAccumulator.d.ts +105 -0
  186. package/dist/components/realtime/parseWindowDuration.d.ts +12 -0
  187. package/dist/components/realtime/types.d.ts +11 -0
  188. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  189. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  190. package/dist/components/recipes/boba.d.ts +23 -0
  191. package/dist/components/recipes/customTooltip.d.ts +31 -0
  192. package/dist/components/recipes/cyclical.d.ts +39 -0
  193. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  194. package/dist/components/recipes/forceLayout.d.ts +48 -0
  195. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  196. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  197. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  198. package/dist/components/recipes/gofishIR.d.ts +215 -0
  199. package/dist/components/recipes/gofishIRExamples.d.ts +38 -0
  200. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  201. package/dist/components/recipes/intervals.d.ts +80 -0
  202. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  203. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  204. package/dist/components/recipes/mermaidDag.d.ts +44 -0
  205. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  206. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  207. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  208. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  209. package/dist/components/recipes/packedClusterMatrix.d.ts +166 -0
  210. package/dist/components/recipes/physics.d.ts +122 -0
  211. package/dist/components/recipes/physicsReference.d.ts +102 -0
  212. package/dist/components/recipes/processAggregates.d.ts +32 -0
  213. package/dist/components/recipes/processChrome.d.ts +67 -0
  214. package/dist/components/recipes/processJourney.d.ts +54 -0
  215. package/dist/components/recipes/processPhysics.d.ts +300 -0
  216. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  217. package/dist/components/recipes/radialCoords.d.ts +69 -0
  218. package/dist/components/recipes/random.d.ts +2 -0
  219. package/dist/components/recipes/recipeChrome.d.ts +191 -0
  220. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  221. package/dist/components/recipes/recipeLegend.d.ts +109 -0
  222. package/dist/components/recipes/recipeUtils.d.ts +157 -0
  223. package/dist/components/recipes/runs.d.ts +59 -0
  224. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  225. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  226. package/dist/components/recipes/unitize.d.ts +108 -0
  227. package/dist/components/recipes/vector.d.ts +28 -0
  228. package/dist/components/recipes/waffle.d.ts +43 -0
  229. package/dist/components/semiotic-ai-core.d.ts +47 -0
  230. package/dist/components/semiotic-ai.d.ts +52 -4
  231. package/dist/components/semiotic-controls.d.ts +18 -0
  232. package/dist/components/semiotic-data.d.ts +2 -0
  233. package/dist/components/semiotic-experimental.d.ts +49 -0
  234. package/dist/components/semiotic-geo.d.ts +11 -0
  235. package/dist/components/semiotic-network.d.ts +14 -1
  236. package/dist/components/semiotic-ordinal.d.ts +10 -0
  237. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  238. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  239. package/dist/components/semiotic-physics.d.ts +56 -0
  240. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  241. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  242. package/dist/components/semiotic-realtime.d.ts +4 -22
  243. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  244. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  245. package/dist/components/semiotic-recipes.d.ts +4 -26
  246. package/dist/components/semiotic-server-edge.d.ts +8 -0
  247. package/dist/components/semiotic-server-node.d.ts +5 -0
  248. package/dist/components/semiotic-server.d.ts +2 -2
  249. package/dist/components/semiotic-themes-core.d.ts +53 -0
  250. package/dist/components/semiotic-themes-react.d.ts +4 -0
  251. package/dist/components/semiotic-themes.d.ts +6 -74
  252. package/dist/components/semiotic-utils-core.d.ts +46 -0
  253. package/dist/components/semiotic-utils-react.d.ts +5 -0
  254. package/dist/components/semiotic-utils.d.ts +3 -39
  255. package/dist/components/semiotic-xy.d.ts +10 -0
  256. package/dist/components/semiotic.d.ts +39 -7
  257. package/dist/components/server/animatedGif.d.ts +36 -0
  258. package/dist/components/server/renderEvidence.d.ts +1 -1
  259. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  260. package/dist/components/server/serverChartConfigShared.d.ts +17 -0
  261. package/dist/components/server/serverChartConfigs.d.ts +19 -9
  262. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  263. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  264. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  265. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  266. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  267. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  268. package/dist/components/server/staticGeo.d.ts +4 -0
  269. package/dist/components/server/staticLegend.d.ts +1 -1
  270. package/dist/components/server/staticNetwork.d.ts +8 -0
  271. package/dist/components/server/staticOrdinal.d.ts +11 -0
  272. package/dist/components/server/staticPhysics.d.ts +3 -0
  273. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  274. package/dist/components/server/staticXY.d.ts +4 -0
  275. package/dist/components/store/ObservationStore.d.ts +23 -3
  276. package/dist/components/store/SelectionStore.d.ts +1 -1
  277. package/dist/components/store/ThemeStore.d.ts +1 -1
  278. package/dist/components/store/TooltipStore.d.ts +1 -1
  279. package/dist/components/store/createStore.d.ts +1 -1
  280. package/dist/components/store/designTokens.d.ts +15 -0
  281. package/dist/components/store/themeSerialization.d.ts +32 -0
  282. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  283. package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
  284. package/dist/components/stream/FocusRing.d.ts +4 -2
  285. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  286. package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
  287. package/dist/components/stream/NetworkHtmlMarksLayer.d.ts +44 -0
  288. package/dist/components/stream/NetworkPipelineStore.d.ts +62 -25
  289. package/dist/components/stream/NetworkSVGOverlay.d.ts +15 -0
  290. package/dist/components/stream/OrdinalPipelineStore.d.ts +64 -2
  291. package/dist/components/stream/PipelineStore.d.ts +100 -162
  292. package/dist/components/stream/SceneGraph.d.ts +14 -2
  293. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  294. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  295. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  296. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  297. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  298. package/dist/components/stream/accessorUtils.d.ts +23 -10
  299. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  300. package/dist/components/stream/canvasBackground.d.ts +24 -0
  301. package/dist/components/stream/canvasSetup.d.ts +4 -1
  302. package/dist/components/stream/customLayout.d.ts +20 -0
  303. package/dist/components/stream/customLayoutDiagnostics.d.ts +11 -0
  304. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  305. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  306. package/dist/components/stream/customLayoutSelection.d.ts +52 -0
  307. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  308. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  309. package/dist/components/stream/geoCartogram.d.ts +17 -0
  310. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  311. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  312. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  313. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  314. package/dist/components/stream/geoTypes.d.ts +56 -7
  315. package/dist/components/stream/glyphDef.d.ts +98 -0
  316. package/dist/components/stream/hitTarget.d.ts +170 -0
  317. package/dist/components/stream/hoverUtils.d.ts +3 -0
  318. package/dist/components/stream/keyboardNav.d.ts +4 -1
  319. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  320. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
  321. package/dist/components/stream/networkBezier.d.ts +10 -0
  322. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  323. package/dist/components/stream/networkCustomLayout.d.ts +66 -1
  324. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  325. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  326. package/dist/components/stream/networkFramePaint.d.ts +43 -0
  327. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  328. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  329. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  330. package/dist/components/stream/networkTypes.d.ts +104 -5
  331. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  332. package/dist/components/stream/ordinalCustomLayout.d.ts +17 -1
  333. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  334. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  335. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  336. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
  337. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  338. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  339. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  340. package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -0
  341. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  342. package/dist/components/stream/ordinalTypes.d.ts +56 -8
  343. package/dist/components/stream/paintNeeds.d.ts +31 -0
  344. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  345. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  346. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  347. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  348. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  349. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  350. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  351. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  352. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  353. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  354. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  355. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  356. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  357. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  358. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
  359. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  360. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
  361. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  362. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  363. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  364. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  365. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  366. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  367. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  368. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  369. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  370. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  371. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
  372. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  373. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  374. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  375. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  376. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
  377. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  378. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  379. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
  380. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  381. package/dist/components/stream/pipelineConfig.d.ts +177 -0
  382. package/dist/components/stream/pipelineDecay.d.ts +20 -2
  383. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  384. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  385. package/dist/components/stream/pipelinePulse.d.ts +16 -2
  386. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  387. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  388. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
  389. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  390. package/dist/components/stream/pipelineTransitions.d.ts +2 -0
  391. package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
  392. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  393. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  394. package/dist/components/stream/renderers/networkSymbolRenderer.d.ts +2 -0
  395. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  396. package/dist/components/stream/renderers/symbolCanvasRenderer.d.ts +2 -0
  397. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
  398. package/dist/components/stream/stalenessBands.d.ts +28 -0
  399. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  400. package/dist/components/stream/symbolPath.d.ts +24 -0
  401. package/dist/components/stream/types.d.ts +206 -9
  402. package/dist/components/stream/useFrame.d.ts +21 -2
  403. package/dist/components/stream/useHydration.d.ts +6 -0
  404. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  405. package/dist/components/stream/useStalenessCheck.d.ts +6 -1
  406. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  407. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  408. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  409. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  410. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  411. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  412. package/dist/components/stream/xySceneBuilders/pointScene.d.ts +2 -2
  413. package/dist/components/stream/xySceneBuilders/types.d.ts +9 -4
  414. package/dist/controls.min.js +2 -0
  415. package/dist/controls.module.min.js +2 -0
  416. package/dist/forceLayoutWorker.js +1 -0
  417. package/dist/geo.min.js +1 -1
  418. package/dist/geo.module.min.js +1 -1
  419. package/dist/network.min.js +1 -1
  420. package/dist/network.module.min.js +1 -1
  421. package/dist/ordinal.min.js +1 -1
  422. package/dist/ordinal.module.min.js +1 -1
  423. package/dist/physics-matter.min.js +1 -0
  424. package/dist/physics-matter.module.min.js +1 -0
  425. package/dist/physics-rapier.min.js +1 -0
  426. package/dist/physics-rapier.module.min.js +1 -0
  427. package/dist/physics.min.js +2 -0
  428. package/dist/physics.module.min.js +2 -0
  429. package/dist/physicsWorker.js +1 -0
  430. package/dist/realtime.min.js +1 -1
  431. package/dist/realtime.module.min.js +1 -1
  432. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  433. package/dist/semiotic-ai-core.d.ts +47 -0
  434. package/dist/semiotic-ai-core.min.js +1 -0
  435. package/dist/semiotic-ai-core.module.min.js +1 -0
  436. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  437. package/dist/semiotic-ai.d.ts +52 -4
  438. package/dist/semiotic-ai.min.js +1 -1
  439. package/dist/semiotic-ai.module.min.js +1 -1
  440. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  441. package/dist/semiotic-controls.d.ts +18 -0
  442. package/dist/semiotic-data.d.ts +2 -0
  443. package/dist/semiotic-data.min.js +1 -1
  444. package/dist/semiotic-data.module.min.js +1 -1
  445. package/dist/semiotic-experimental.d.ts +49 -0
  446. package/dist/semiotic-experimental.min.js +1 -0
  447. package/dist/semiotic-experimental.module.min.js +1 -0
  448. package/dist/semiotic-geo.d.ts +11 -0
  449. package/dist/semiotic-network.d.ts +14 -1
  450. package/dist/semiotic-ordinal.d.ts +10 -0
  451. package/dist/semiotic-physics-matter.d.ts +10 -0
  452. package/dist/semiotic-physics-rapier.d.ts +9 -0
  453. package/dist/semiotic-physics.d.ts +56 -0
  454. package/dist/semiotic-realtime-core.d.ts +34 -0
  455. package/dist/semiotic-realtime-core.min.js +1 -0
  456. package/dist/semiotic-realtime-core.module.min.js +1 -0
  457. package/dist/semiotic-realtime-react.d.ts +10 -0
  458. package/dist/semiotic-realtime-react.min.js +2 -0
  459. package/dist/semiotic-realtime-react.module.min.js +2 -0
  460. package/dist/semiotic-realtime.d.ts +4 -22
  461. package/dist/semiotic-recipes-core.d.ts +92 -0
  462. package/dist/semiotic-recipes-core.min.js +1 -0
  463. package/dist/semiotic-recipes-core.module.min.js +1 -0
  464. package/dist/semiotic-recipes-react.d.ts +7 -0
  465. package/dist/semiotic-recipes-react.min.js +2 -0
  466. package/dist/semiotic-recipes-react.module.min.js +2 -0
  467. package/dist/semiotic-recipes.d.ts +4 -26
  468. package/dist/semiotic-recipes.min.js +1 -1
  469. package/dist/semiotic-recipes.module.min.js +1 -1
  470. package/dist/semiotic-server-edge.d.ts +8 -0
  471. package/dist/semiotic-server-edge.min.js +1 -0
  472. package/dist/semiotic-server-edge.module.min.js +1 -0
  473. package/dist/semiotic-server-node.d.ts +5 -0
  474. package/dist/semiotic-server-node.min.js +1 -0
  475. package/dist/semiotic-server-node.module.min.js +1 -0
  476. package/dist/semiotic-server.d.ts +2 -2
  477. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  478. package/dist/semiotic-themes-core.d.ts +53 -0
  479. package/dist/semiotic-themes-core.min.js +1 -0
  480. package/dist/semiotic-themes-core.module.min.js +1 -0
  481. package/dist/semiotic-themes-react.d.ts +4 -0
  482. package/dist/semiotic-themes-react.min.js +2 -0
  483. package/dist/semiotic-themes-react.module.min.js +2 -0
  484. package/dist/semiotic-themes.d.ts +6 -74
  485. package/dist/semiotic-themes.min.js +1 -2
  486. package/dist/semiotic-themes.module.min.js +1 -2
  487. package/dist/semiotic-utils-core.d.ts +46 -0
  488. package/dist/semiotic-utils-core.min.js +1 -0
  489. package/dist/semiotic-utils-core.module.min.js +1 -0
  490. package/dist/semiotic-utils-react.d.ts +5 -0
  491. package/dist/semiotic-utils-react.min.js +2 -0
  492. package/dist/semiotic-utils-react.module.min.js +2 -0
  493. package/dist/semiotic-utils.d.ts +3 -39
  494. package/dist/semiotic-utils.min.js +1 -2
  495. package/dist/semiotic-utils.module.min.js +1 -2
  496. package/dist/semiotic-value.min.js +1 -1
  497. package/dist/semiotic-value.module.min.js +1 -1
  498. package/dist/semiotic-xy.d.ts +10 -0
  499. package/dist/semiotic.d.ts +39 -7
  500. package/dist/semiotic.min.js +1 -1
  501. package/dist/semiotic.module.min.js +1 -1
  502. package/dist/server.min.js +1 -1
  503. package/dist/server.module.min.js +1 -1
  504. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  505. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  506. package/dist/xy.min.js +1 -1
  507. package/dist/xy.module.min.js +1 -1
  508. package/package.json +246 -86
  509. package/spec/README.md +152 -0
  510. package/spec/bindings/README.md +35 -0
  511. package/spec/bindings/vega-lite.mjs +112 -0
  512. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  513. package/spec/v0.1/audience-profile.schema.json +67 -0
  514. package/spec/v0.1/chart-capability.schema.json +186 -0
  515. package/dist/semiotic-ai-statisticalOverlays-C2PPlmXv.js +0 -1
  516. package/dist/semiotic-statisticalOverlays-C3DsOgr_.js +0 -1
  517. package/dist/xy-statisticalOverlays-C2PPlmXv.js +0 -1
@@ -0,0 +1,49 @@
1
+ import type { Datum } from "./datumTypes";
2
+ /**
3
+ * The slice of a chart's imperative handle this hook drives. Every Semiotic
4
+ * push-API handle (realtime + non-realtime HOCs) satisfies it structurally;
5
+ * each method is optional so the hook degrades gracefully on handles that
6
+ * only support a subset (e.g. append-only).
7
+ */
8
+ export interface SyncedPushHandle<T = Datum> {
9
+ push?: (datum: T) => unknown;
10
+ pushMany?: (data: T[]) => unknown;
11
+ update?: (id: string, updater: (datum: T) => T) => unknown;
12
+ remove?: (id: string | string[]) => unknown;
13
+ clear?: () => unknown;
14
+ }
15
+ /** An id accessor: a field name, or a function of the row (and its index). */
16
+ export type PushIdAccessor<T> = keyof T | ((datum: T, index: number) => string | number | null | undefined);
17
+ export interface SyncedPushDataOptions<T = Datum> {
18
+ /**
19
+ * Identifies a row so it can be updated/removed in place. A field name
20
+ * (`"id"`) or a function. Omit it and rows are keyed by index — fine for
21
+ * append-mostly streams, but reorders/removals then read positionally.
22
+ */
23
+ id?: PushIdAccessor<T>;
24
+ /**
25
+ * Clear the buffer and re-sync from scratch whenever this value changes.
26
+ * Use it for things that invalidate the whole series — a theme remount, a
27
+ * mode switch, a new data source. The handle identity changing (chart
28
+ * remount) always forces a reset too.
29
+ */
30
+ resetKey?: unknown;
31
+ }
32
+ /**
33
+ * Pure reconciliation: bring `handle`'s buffer from `previousById` to `rows`,
34
+ * issuing the minimal push/update/remove calls, and return the new id→row map.
35
+ *
36
+ * Exported for direct use and unit testing. The hook is a thin
37
+ * effect wrapper around this. Rows are matched by `getId`; a row whose
38
+ * reference changed is `update`d in place (or removed + re-pushed when the
39
+ * handle has no `update`).
40
+ */
41
+ export declare function syncPushBuffer<T = Datum>(handle: SyncedPushHandle<T>, previousById: Map<string, T>, rows: ReadonlyArray<T>, getId: ((datum: T, index: number) => string) | null): Map<string, T>;
42
+ /**
43
+ * Mirror a controlled React array into a push-API chart's buffer.
44
+ *
45
+ * @param ref The same ref you pass to the chart's `ref` prop.
46
+ * @param data The rows the chart should currently show.
47
+ * @param options `id` accessor and optional `resetKey`.
48
+ */
49
+ export declare function useSyncedPushData<T = Datum>(ref: React.RefObject<SyncedPushHandle<T> | null>, data: ReadonlyArray<T>, options?: SyncedPushDataOptions<T>): void;
@@ -12,7 +12,7 @@ import type { Datum } from "./datumTypes";
12
12
  type AccessorLike = string | ((...args: any[]) => any);
13
13
  interface ArrayDataValidation {
14
14
  componentName: string;
15
- data: any[] | undefined | null;
15
+ data: any;
16
16
  accessors?: Record<string, AccessorLike | undefined>;
17
17
  requiredProps?: Datum;
18
18
  }
@@ -1,13 +1,2 @@
1
- /**
2
- * Per-component prop specifications for validation.
3
- *
4
- * Pure data — one ComponentSpec entry per Semiotic HOC chart.
5
- * Shared prop fragments (commonProps, xyAxisProps, etc.) are composed
6
- * via spread to keep individual entries concise.
7
- *
8
- * Consumed by: validateProps.ts (validation engine), diagnoseConfig.ts,
9
- * chartConfig.ts. Schema/validation parity is locked by the
10
- * Chart Spec Registry (`check:chart-specs`).
11
- */
12
1
  import type { ComponentSpec } from "./validateProps";
13
2
  export declare const VALIDATION_MAP: Record<string, ComponentSpec>;
@@ -64,7 +64,7 @@ export interface AreaChartProps<TDatum extends Datum = Datum> extends BaseChartP
64
64
  * Color scheme for categorical data or custom colors array
65
65
  * @default "category10"
66
66
  */
67
- colorScheme?: string | string[];
67
+ colorScheme?: string | string[] | Record<string, string>;
68
68
  /**
69
69
  * Curve interpolation type
70
70
  * @default "monotoneX"
@@ -55,7 +55,7 @@ export interface BubbleChartProps<TDatum extends Datum = Datum> extends BaseChar
55
55
  * Color scheme for categorical data or custom colors array
56
56
  * @default "category10"
57
57
  */
58
- colorScheme?: string | string[];
58
+ colorScheme?: string | string[] | Record<string, string>;
59
59
  /**
60
60
  * Bubble opacity
61
61
  * @default 0.6
@@ -73,7 +73,7 @@ export interface LineChartProps<TDatum extends Datum = Datum> extends BaseChartP
73
73
  * Color scheme for categorical data or custom colors array
74
74
  * @default "category10"
75
75
  */
76
- colorScheme?: string | string[];
76
+ colorScheme?: string | string[] | Record<string, string>;
77
77
  /**
78
78
  * Curve interpolation type
79
79
  * @default "linear"
@@ -37,7 +37,7 @@ export interface MinimapChartProps<TDatum extends Datum = Datum> extends Omit<Ba
37
37
  /** Color-by field or function */
38
38
  colorBy?: ChartAccessor<TDatum, string>;
39
39
  /** Color scheme (default: "category10") */
40
- colorScheme?: string | string[];
40
+ colorScheme?: string | string[] | Record<string, string>;
41
41
  /** Curve type (default: "linear") */
42
42
  curve?: "linear" | "monotoneX" | "monotoneY" | "step" | "stepAfter" | "stepBefore" | "basis" | "cardinal" | "catmullRom";
43
43
  /** Line stroke width (default: 2) */
@@ -28,12 +28,12 @@ export interface MultiAxisLineChartProps<TDatum extends Datum = Datum> extends B
28
28
  /** Array of data points shared by both series */
29
29
  data?: TDatum[];
30
30
  /** Field name or function to access x values @default "x" */
31
- xAccessor?: ChartAccessor<TDatum, number>;
31
+ xAccessor?: ChartAccessor<TDatum, number | Date | string>;
32
32
  /** Series configuration — exactly 2 for dual-axis mode.
33
33
  * If not exactly 2, renders as a normal line chart with a console warning. */
34
34
  series: MultiAxisSeriesConfig<TDatum>[];
35
35
  /** Color scheme or custom colors array @default "category10" */
36
- colorScheme?: string | string[];
36
+ colorScheme?: string | string[] | Record<string, string>;
37
37
  /** Enable hover annotations @default true */
38
38
  enableHover?: boolean;
39
39
  /** Curve interpolation @default "monotoneX" */
@@ -69,7 +69,7 @@ export interface QuadrantChartProps<TDatum extends Datum = Datum> extends BaseCh
69
69
  /** Field name or function to determine point color */
70
70
  colorBy?: ChartAccessor<TDatum, string>;
71
71
  /** Color scheme for categorical data @default "category10" */
72
- colorScheme?: string | string[];
72
+ colorScheme?: string | string[] | Record<string, string>;
73
73
  /** Field name or function to determine point size */
74
74
  sizeBy?: ChartAccessor<TDatum, number>;
75
75
  /** Min and max radius for points @default [3, 15] */
@@ -1,6 +1,7 @@
1
1
  import type { Datum } from "../shared/datumTypes";
2
2
  import * as React from "react";
3
3
  import type { StreamXYFrameProps, MarginalGraphicsConfig } from "../../stream/types";
4
+ import type { SymbolName } from "../../stream/symbolPath";
4
5
  import type { RealtimeFrameHandle } from "../../realtime/types";
5
6
  import type { BaseChartProps, AxisConfig, ChartAccessor } from "../shared/types";
6
7
  import { type TooltipProp } from "../../Tooltip/Tooltip";
@@ -24,11 +25,19 @@ export interface ScatterplotProps<TDatum extends Datum = Datum> extends BaseChar
24
25
  /** Field name or function to determine point color */
25
26
  colorBy?: ChartAccessor<TDatum, string>;
26
27
  /** Color scheme for categorical data or custom colors array @default "category10" */
27
- colorScheme?: string | string[];
28
+ colorScheme?: string | string[] | Record<string, string>;
28
29
  /** Field name or function to determine point size */
29
30
  sizeBy?: ChartAccessor<TDatum, number>;
30
31
  /** Min and max radius for points @default [3, 15] */
31
32
  sizeRange?: [number, number];
33
+ /** Field name or function → glyph **shape**: each mark renders as a d3-shape
34
+ * glyph instead of a circle (the per-datum shape channel). Pair with a
35
+ * `symbolMap` for stable, legend-matchable shapes; unmapped categories
36
+ * auto-assign. Size still tracks `sizeBy`/`pointRadius`. */
37
+ symbolBy?: ChartAccessor<TDatum, string>;
38
+ /** Explicit `{category → shape}` map for `symbolBy` (e.g. `{ Civil: "star" }`);
39
+ * unmapped categories auto-assign from the shape sequence. */
40
+ symbolMap?: Record<string, SymbolName>;
32
41
  /** Default point radius when sizeBy is not specified @default 5 */
33
42
  pointRadius?: number;
34
43
  /** Point opacity @default 0.8 */
@@ -12,7 +12,7 @@ export interface ScatterplotMatrixProps<TDatum extends Datum = Datum> extends Ba
12
12
  /** Field or function to determine point color */
13
13
  colorBy?: ChartAccessor<TDatum, string>;
14
14
  /** Color scheme @default "category10" */
15
- colorScheme?: string | string[];
15
+ colorScheme?: string | string[] | Record<string, string>;
16
16
  /** Size of each cell in pixels @default 150 */
17
17
  cellSize?: number;
18
18
  /** Gap between cells in pixels @default 4 */
@@ -39,6 +39,16 @@ export interface ScatterplotMatrixProps<TDatum extends Datum = Datum> extends Ba
39
39
  showLegend?: boolean;
40
40
  /** Field or function to identify each data point in tooltips. Defaults to "Row {index}" */
41
41
  idAccessor?: string | ((d: TDatum) => string);
42
+ /**
43
+ * Called when a point in any cell is clicked. Receives the clicked row datum
44
+ * and its grid-relative pixel position `{ x, y }` — the same coordinate space
45
+ * as `onObservation`. Fires in hover mode (the default); in brush mode the
46
+ * drag-select overlay captures pointer events, so clicks are not delivered.
47
+ */
48
+ onClick?: (datum: TDatum, event: {
49
+ x: number;
50
+ y: number;
51
+ }) => void;
42
52
  }
43
53
  /**
44
54
  * ScatterplotMatrix (SPLOM) — multi-dimensional scatter visualization
@@ -21,7 +21,7 @@ export interface StackedAreaChartProps<TDatum extends Datum = Datum> extends Bas
21
21
  * Field name or function to access x values
22
22
  * @default "x"
23
23
  */
24
- xAccessor?: ChartAccessor<TDatum, number>;
24
+ xAccessor?: ChartAccessor<TDatum, number | Date | string>;
25
25
  /**
26
26
  * Field name or function to access y values
27
27
  * @default "y"
@@ -55,7 +55,7 @@ export interface StackedAreaChartProps<TDatum extends Datum = Datum> extends Bas
55
55
  * Color scheme for categorical data or custom colors array
56
56
  * @default "category10"
57
57
  */
58
- colorScheme?: string | string[];
58
+ colorScheme?: string | string[] | Record<string, string>;
59
59
  /**
60
60
  * Curve interpolation type
61
61
  * @default "monotoneX"
@@ -99,13 +99,16 @@ export interface StackedAreaChartProps<TDatum extends Datum = Datum> extends Bas
99
99
  * wiggle across series — best for high-cardinality series where
100
100
  * relative shape matters more than absolute values.
101
101
  * - `"silhouette"`: center the stack symmetrically around y=0.
102
+ * - `"diverging"`: series with **positive** y stack above 0; series with
103
+ * **negative** y stack below 0 (signed benefit / risk stacks). Pass
104
+ * negative values for risk layers — do not use absolute magnitudes.
102
105
  *
103
106
  * Mutually exclusive with `normalize` — when `normalize` is true,
104
107
  * baseline is forced to `"zero"`.
105
108
  *
106
109
  * @default "zero"
107
110
  */
108
- baseline?: "zero" | "wiggle" | "silhouette";
111
+ baseline?: "zero" | "wiggle" | "silhouette" | "diverging";
109
112
  /**
110
113
  * Stack order — controls which series sits at the top, middle, or
111
114
  * bottom of the stack. Pair with `baseline: "wiggle"` or
@@ -113,12 +116,14 @@ export interface StackedAreaChartProps<TDatum extends Datum = Datum> extends Bas
113
116
  *
114
117
  * - `"key"` (default): alphabetical by series key. Stable under
115
118
  * streaming (no re-shuffling on data eviction).
119
+ * - `"input"`: first-seen series order within the current data
120
+ * buffer/window; streaming eviction can change this order.
116
121
  * - `"insideOut"`: largest-total series in the middle, smaller series
117
122
  * wrapping outward. The classic d3 streamgraph aesthetic — gives
118
123
  * you a "central anchor" layer with everything else built off of it.
119
124
  * - `"asc"` / `"desc"`: by total ascending / descending.
120
125
  */
121
- stackOrder?: "key" | "insideOut" | "asc" | "desc";
126
+ stackOrder?: "key" | "input" | "insideOut" | "asc" | "desc";
122
127
  /**
123
128
  * Enable hover annotations
124
129
  * @default true
@@ -0,0 +1,24 @@
1
+ import { type VisualizationControlDefinition } from "./controlContract";
2
+ export type ControlAuditStatus = "pass" | "warn" | "fail";
3
+ export interface ControlAuditFinding {
4
+ id: string;
5
+ controlId?: string;
6
+ status: ControlAuditStatus;
7
+ message: string;
8
+ remediation?: string;
9
+ }
10
+ export interface ControlAuditResult {
11
+ ok: boolean;
12
+ findings: ControlAuditFinding[];
13
+ }
14
+ export interface AuditVisualizationControlsOptions {
15
+ controls?: ReadonlyArray<VisualizationControlDefinition>;
16
+ minimumTargetSize?: number;
17
+ }
18
+ /**
19
+ * Audit portable control declarations without requiring a mounted chart. It
20
+ * verifies the invariants an agent or recipe serializer can actually inspect:
21
+ * semantic type, controlled-state target, keyboard path, value text, and
22
+ * minimum target size.
23
+ */
24
+ export declare function auditVisualizationControls({ controls, minimumTargetSize, }: AuditVisualizationControlsOptions): ControlAuditResult;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Frame-neutral semantics shared by SVG, HTML, and declarative visualization
3
+ * controls. This module intentionally has no React, frame, or store imports so
4
+ * it can be included by the small `semiotic/controls` entry point.
5
+ */
6
+ export declare const VISUALIZATION_CONTROL_TYPES: readonly ["value", "threshold", "partition-boundary", "time-window", "range-boundary"];
7
+ export type VisualizationControlType = (typeof VISUALIZATION_CONTROL_TYPES)[number];
8
+ export type VisualizationControlValue = number | [number, number];
9
+ export type ControlObservationPhase = "control-start" | "control-change" | "control-end";
10
+ export type ControlInputSource = "pointer" | "keyboard" | "programmatic";
11
+ /** A machine-readable interaction emitted by a visualization control. */
12
+ export interface ControlObservation {
13
+ type: ControlObservationPhase;
14
+ controlType: VisualizationControlType;
15
+ value: VisualizationControlValue;
16
+ chartType: string;
17
+ timestamp: number;
18
+ controlId?: string;
19
+ chartId?: string;
20
+ source?: ControlInputSource;
21
+ }
22
+ export type ControlObservationCallback = (observation: ControlObservation) => void;
23
+ export interface ControlObservationAdapterOptions {
24
+ controlType: VisualizationControlType;
25
+ controlId?: string;
26
+ chartId?: string;
27
+ chartType?: string;
28
+ onObservation?: ControlObservationCallback;
29
+ }
30
+ /**
31
+ * Creates an adapter for a control implementation. Frame adapters can pass
32
+ * their existing `onObservation`, while standalone controls can omit it.
33
+ */
34
+ export declare function createControlObservationAdapter({ controlType, controlId, chartId, chartType, onObservation, }: ControlObservationAdapterOptions): (phase: ControlObservationPhase, value: VisualizationControlValue, source?: ControlInputSource) => void;
35
+ /**
36
+ * JSON-safe control metadata carried by portable recipes and agent-facing
37
+ * audits. `target` is the controlled state binding, not a pointer handler.
38
+ */
39
+ export interface VisualizationControlDefinition {
40
+ id: string;
41
+ type: VisualizationControlType;
42
+ target: string;
43
+ domain: readonly [number, number];
44
+ label: string;
45
+ valueText: string;
46
+ step?: number;
47
+ keyboard?: "slider" | "buttons" | "native-range";
48
+ alternatives?: readonly string[];
49
+ observations?: readonly ControlObservationPhase[];
50
+ minimumTargetSize?: number;
51
+ annotation?: {
52
+ /** The annotation state key that follows this control's value. */
53
+ target?: string;
54
+ /** A portable template, such as "Threshold: {value}". */
55
+ valueText?: string;
56
+ };
57
+ }
@@ -0,0 +1,54 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ /**
3
+ * Apache Arrow → Semiotic rows (v1).
4
+ *
5
+ * Reads an Arrow table (DuckDB-Wasm result set, Arrow IPC, Parquet-via-Arrow)
6
+ * into the plain row objects the chart accessor path expects, so an in-browser
7
+ * analytics engine can feed Semiotic with one call.
8
+ *
9
+ * **Honest scope (v1).** Semiotic's data path is row-oriented and validates the
10
+ * `data` prop with `Array.isArray`, so a chart's `data` must be a real array of
11
+ * row objects. This adapter therefore materializes rows — but leanly: it reads
12
+ * each requested column cell-by-cell into a plain object, avoiding Arrow's own
13
+ * `Table.toArray()` row-proxy machinery, and it supports column projection so
14
+ * you only pay for the fields you chart. The genuinely zero-copy columnar path
15
+ * (a typed-array accessor mode + bulk ring-buffer ingest) is deliberately
16
+ * *not* built here: it touches the ingestion core and waits on a named consumer
17
+ * plus profiling evidence, rather than being built on spec.
18
+ *
19
+ * Pure, dependency-free: the Arrow table is duck-typed, so `apache-arrow` never
20
+ * enters Semiotic's dependencies — you bring the table, this reads it.
21
+ */
22
+ /** A column vector, duck-typed to apache-arrow's `Vector`. */
23
+ export interface ArrowColumnLike {
24
+ get(index: number): unknown;
25
+ }
26
+ /** A schema field, duck-typed to apache-arrow's `Field`. */
27
+ export interface ArrowFieldLike {
28
+ name: string;
29
+ }
30
+ /** A table schema, duck-typed to apache-arrow's `Schema`. */
31
+ export interface ArrowSchemaLike {
32
+ fields: ReadonlyArray<ArrowFieldLike>;
33
+ }
34
+ /** An Arrow table, duck-typed to apache-arrow's `Table` (and DuckDB-Wasm results). */
35
+ export interface ArrowTableLike {
36
+ numRows: number;
37
+ schema: ArrowSchemaLike;
38
+ getChild(name: string): ArrowColumnLike | null | undefined;
39
+ }
40
+ export interface FromArrowOptions {
41
+ /** Project a subset of columns. Omit to read every column in the schema. */
42
+ fields?: ReadonlyArray<string>;
43
+ /**
44
+ * Convert Arrow int64/uint64 values (returned as `bigint`) to `number`, since
45
+ * the chart scales and `toNumber` coercion work in `number`. Default true.
46
+ * Values outside `Number.MAX_SAFE_INTEGER` are left as `bigint` (and warned).
47
+ */
48
+ coerceBigInt?: boolean;
49
+ }
50
+ /**
51
+ * Materialize an Arrow table into Semiotic row objects. Pass the result
52
+ * straight to a chart's `data` prop: `<LineChart data={fromArrow(table)} … />`.
53
+ */
54
+ export declare function fromArrow(table: ArrowTableLike, options?: FromArrowOptions): Datum[];
@@ -0,0 +1,74 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { ChartConfig } from "../export/chartConfig";
3
+ /**
4
+ * Flint Chart -> Semiotic translator.
5
+ *
6
+ * Flint's public request shape is intentionally small: inline or referenced
7
+ * rows, optional field semantics, and a chart_spec object with chart type,
8
+ * channel encodings, base size, canvas ceiling, and chart properties. This
9
+ * adapter consumes that request as an ecosystem boundary format and emits a
10
+ * Semiotic ChartConfig. It does not call Flint and does not attempt to compile
11
+ * Flint to backend-native specs.
12
+ *
13
+ * Scope (experimental): bar, grouped bar, stacked bar, line, area, scatter,
14
+ * heatmap, pie/donut, histogram, and boxplot with simple channel bindings.
15
+ */
16
+ export type FlintEncodingType = "quantitative" | "nominal" | "ordinal" | "temporal";
17
+ export type FlintAggregate = "count" | "sum" | "average" | "mean";
18
+ export interface FlintSemanticAnnotation {
19
+ semanticType?: string;
20
+ [key: string]: unknown;
21
+ }
22
+ export interface FlintChartEncoding {
23
+ field?: string;
24
+ type?: FlintEncodingType;
25
+ aggregate?: FlintAggregate;
26
+ sortOrder?: "ascending" | "descending";
27
+ sortBy?: string;
28
+ scheme?: string;
29
+ [key: string]: unknown;
30
+ }
31
+ export type FlintEncodingInput = FlintChartEncoding | string;
32
+ export type FlintRawEncodingValue = FlintEncodingInput | FlintEncodingInput[];
33
+ export interface FlintChartSize {
34
+ width: number;
35
+ height: number;
36
+ }
37
+ export interface FlintChartAssemblyInput {
38
+ data: {
39
+ values: Datum[];
40
+ url?: never;
41
+ } | {
42
+ url: string;
43
+ values?: never;
44
+ };
45
+ semantic_types?: Record<string, string | FlintSemanticAnnotation>;
46
+ chart_spec: {
47
+ chartType: string;
48
+ encodings: Record<string, FlintRawEncodingValue>;
49
+ baseSize?: FlintChartSize;
50
+ canvasSize?: FlintChartSize;
51
+ chartProperties?: Record<string, unknown>;
52
+ };
53
+ options?: Record<string, unknown>;
54
+ field_display_names?: Record<string, string>;
55
+ }
56
+ export interface FlintChartConfigMetadata {
57
+ chartType: string;
58
+ semanticTypes?: Record<string, string | FlintSemanticAnnotation>;
59
+ fieldDisplayNames?: Record<string, string>;
60
+ chartProperties?: Record<string, unknown>;
61
+ baseSize?: FlintChartSize;
62
+ canvasSize?: FlintChartSize;
63
+ dataUrl?: string;
64
+ options?: Record<string, unknown>;
65
+ unmappedEncodings?: Record<string, FlintRawEncodingValue>;
66
+ }
67
+ export type FlintChartConfig = ChartConfig & {
68
+ warnings?: string[];
69
+ flint: FlintChartConfigMetadata;
70
+ };
71
+ /**
72
+ * Convert a Flint ChartAssemblyInput into a Semiotic ChartConfig.
73
+ */
74
+ export declare function fromFlintChart(input: FlintChartAssemblyInput): FlintChartConfig;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Mermaid → Semiotic graph (alpha).
3
+ *
4
+ * Mermaid is the dominant text-to-graph language across GitHub, Notion, and LLM
5
+ * output — but it renders as flat, hard-to-style, non-interactive, *inaccessible*
6
+ * SVG. This adapter parses Mermaid `graph`/`flowchart` syntax into a topology
7
+ * Semiotic can render with hover, isolation, theme tokens, keyboard navigation,
8
+ * and an accessible navigation tree.
9
+ *
10
+ * The gofish lesson applies hard (D7): **reconstruct the diagram's semantics,
11
+ * not its pixels.** A Mermaid flowchart is a DAG, not a force graph, so this
12
+ * adapter doesn't just emit nodes/edges — it computes a layered layout
13
+ * (longest-path layering) and stamps each node with `layer`/`row` coordinates,
14
+ * ready for the `lineageDagLayout` recipe via `NetworkCustomChart`. The raw
15
+ * topology is also returned, so a consumer who wants a force layout
16
+ * (`ForceDirectedGraph`) can use it directly.
17
+ *
18
+ * Scope (alpha): `graph`/`flowchart` with TD/TB/BT/LR/RL direction, node shapes,
19
+ * and labeled edges. Other Mermaid diagram types (sequence, class, state, er,
20
+ * gantt, pie, mindmap, …) are declined with a reason rather than mistranslated.
21
+ *
22
+ * Pure, dependency-free: a small dedicated parser, never a Mermaid runtime dep.
23
+ */
24
+ export type MermaidDirection = "TD" | "TB" | "BT" | "LR" | "RL";
25
+ export type MermaidNodeShape = "rect" | "round" | "stadium" | "subroutine" | "cylinder" | "circle" | "diamond" | "hexagon" | "flag";
26
+ export interface MermaidNode {
27
+ id: string;
28
+ label: string;
29
+ shape: MermaidNodeShape;
30
+ /** Longest-path layer (0 = a source with no incoming edges). */
31
+ layer: number;
32
+ /** Order within the layer (insertion order). */
33
+ row: number;
34
+ }
35
+ export interface MermaidEdge {
36
+ source: string;
37
+ target: string;
38
+ label?: string;
39
+ }
40
+ export interface MermaidResult {
41
+ kind: "flowchart";
42
+ direction: MermaidDirection;
43
+ nodes: MermaidNode[];
44
+ edges: MermaidEdge[];
45
+ warnings?: string[];
46
+ }
47
+ export declare function fromMermaid(text: string): MermaidResult;
@@ -0,0 +1,69 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ /**
3
+ * Observable Plot → Semiotic translator.
4
+ *
5
+ * A sibling to `fromVegaLite`: maps a declarative Observable Plot spec to a
6
+ * Semiotic `ChartConfig`, so a chart sketched in a notebook crosses the
7
+ * notebook→production rewrite tax and arrives with everything a throwaway Plot
8
+ * chart never had — accessible tables, keyboard navigation, descriptions, the
9
+ * a11y audit, theme tokens, annotation provenance, and SSR.
10
+ *
11
+ * Honest hard part (the reason this stages behind `unstable_`): Plot's public
12
+ * API is *imperative JS* (`Plot.line(data, {…})`), not declarative JSON. This
13
+ * adapter consumes the **declarative shape of a Plot spec** — the `{ marks,
14
+ * x, y, color, … }` object you'd pass to `Plot.plot()`, with each mark
15
+ * expressed as `{ type, data?, options? }`. Where a mark, channel, or
16
+ * transform has no faithful Semiotic equivalent, it surfaces a warning and
17
+ * refuses to approximate, rather than emit a plausible-but-wrong chart.
18
+ *
19
+ * Scope (alpha): core marks — line/lineY/lineX, barY/barX, dot, areaY/area,
20
+ * rectY (binned → histogram), cell, tick — with basic channels. No layered
21
+ * multi-mark plots, facets, or Plot transforms (binX/groupY/stackY as option
22
+ * wrappers).
23
+ */
24
+ import type { ChartConfig } from "../export/chartConfig";
25
+ /** A channel value: a field name (string), a constant (number), or — declined — a function. */
26
+ export type ObservablePlotChannel = string | number | ((d: Datum, i: number) => unknown);
27
+ export interface ObservablePlotMarkOptions {
28
+ x?: ObservablePlotChannel;
29
+ y?: ObservablePlotChannel;
30
+ fill?: ObservablePlotChannel;
31
+ stroke?: ObservablePlotChannel;
32
+ r?: ObservablePlotChannel;
33
+ z?: ObservablePlotChannel;
34
+ curve?: string;
35
+ [key: string]: unknown;
36
+ }
37
+ export interface ObservablePlotMark {
38
+ /** The Plot mark function name, e.g. "line", "barY", "dot", "areaY", "cell". */
39
+ type: string;
40
+ data?: Datum[];
41
+ options?: ObservablePlotMarkOptions;
42
+ }
43
+ export interface ObservablePlotScale {
44
+ label?: string;
45
+ type?: string;
46
+ scheme?: string;
47
+ domain?: unknown;
48
+ range?: unknown;
49
+ [key: string]: unknown;
50
+ }
51
+ export interface ObservablePlotSpec {
52
+ marks?: ObservablePlotMark[];
53
+ /** Shared data, when marks don't each carry their own. */
54
+ data?: Datum[];
55
+ width?: number;
56
+ height?: number;
57
+ title?: string;
58
+ x?: ObservablePlotScale;
59
+ y?: ObservablePlotScale;
60
+ color?: ObservablePlotScale;
61
+ r?: ObservablePlotScale;
62
+ fx?: unknown;
63
+ fy?: unknown;
64
+ facet?: unknown;
65
+ [key: string]: unknown;
66
+ }
67
+ export declare function fromObservablePlot(spec: ObservablePlotSpec): ChartConfig & {
68
+ warnings?: string[];
69
+ };
@@ -6,6 +6,7 @@
6
6
  * with basic encodings. No layers, facets, selections, or complex transforms.
7
7
  */
8
8
  import type { ChartConfig } from "../export/chartConfig";
9
+ import type { PortabilityImportResult } from "./portability/result";
9
10
  export interface VegaLiteEncoding {
10
11
  field?: string;
11
12
  type?: "quantitative" | "nominal" | "ordinal" | "temporal";
@@ -43,6 +44,32 @@ export interface VegaLiteSpec {
43
44
  transform?: any[];
44
45
  [key: string]: any;
45
46
  }
47
+ /** Strictness for the typed, experimental Vega-Lite import result. */
48
+ export interface FromVegaLiteOptions {
49
+ /**
50
+ * Strict is the safe default: unsupported composition or marks return a
51
+ * typed refusal instead of a plausible fallback chart. `lossy` retains the
52
+ * legacy fallback behavior, but reports every known loss explicitly.
53
+ */
54
+ mode?: "strict" | "lossy";
55
+ }
56
+ /** Typed result for the experimental, loss-aware Vega-Lite importer. */
57
+ export type VegaLiteImportResult = PortabilityImportResult<ChartConfig>;
58
+ /**
59
+ * Recover the one base view emitted by attachIDIDAnnotations(). This is
60
+ * intentionally narrow: arbitrary Vega-Lite layer composition remains
61
+ * unsupported and must not be guessed as a chart configuration.
62
+ */
63
+ export declare function unwrapIDIDEnrichedVegaLiteSpec(spec: VegaLiteSpec): VegaLiteSpec;
46
64
  export declare function fromVegaLite(spec: VegaLiteSpec): ChartConfig & {
47
65
  warnings?: string[];
48
66
  };
67
+ /**
68
+ * Strict, loss-aware Vega-Lite import.
69
+ *
70
+ * `fromVegaLite()` remains the stable compatibility helper and therefore
71
+ * preserves its historical fallback behavior. New portability integrations
72
+ * should use this result API, whose default is to refuse unsupported semantics
73
+ * rather than return a chart that merely looks plausible.
74
+ */
75
+ export declare function fromVegaLiteResult(spec: VegaLiteSpec, options?: FromVegaLiteOptions): VegaLiteImportResult;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * IDID portability spec — runtime surface (v0.1, experimental).
3
+ *
4
+ * Library-neutral types, dependency-free validators, an outbound Vega-Lite
5
+ * translator, and the IDID-over-Vega-Lite binding. The canonical published
6
+ * artifact is the JSON Schema set in `/spec/v0.1`.
7
+ *
8
+ * Exposed via `semiotic/experimental` behind the `unstable_` prefix while the
9
+ * surface is proven against real consumers.
10
+ */
11
+ export { IDID_SPEC_VERSION, BUILTIN_INTENT_IDS, validatePortableCapability, validatePortableAudienceProfile, validatePortableAnnotation, } from "./spec";
12
+ export type { BuiltInIntentId, PortableIntentId, PortableChartRubric, PortableChartVariant, PortableMobileInteractionCapability, PortableMobileLabelCapability, PortableMobileCustomCapability, PortableMobileCapability, PortableChartCapability, PortableReceptionModality, PortableAudienceTarget, PortableAudienceProfile, PortableAnnotationActorKind, PortableAnnotationSource, PortableAnnotationBasis, PortableAnnotationProvenance, PortableAnnotationFreshness, PortableAnnotationStatus, PortableAnnotationAnchor, PortableAnnotationLifecycle, PortableAnnotated, ValidationResult, } from "./spec";
13
+ export { toVegaLite, toVegaLiteResult, attachIDID, readIDID, attachIDIDAnnotations, readIDIDAnnotations, } from "./vegaLite";
14
+ export type { IDIDVegaLiteMeta, ToVegaLiteOptions, VegaLiteExportResult, } from "./vegaLite";
15
+ export { fromVegaLiteResult, unwrapIDIDEnrichedVegaLiteSpec, } from "../fromVegaLite";
16
+ export type { FromVegaLiteOptions, VegaLiteImportResult, } from "../fromVegaLite";
17
+ export type { PortabilityStatus, PortabilityDiagnosticSeverity, PortabilityDiagnostic, PortabilityLoss, PortabilityProvenance, PortabilityResult, PortabilityImportResult, PortabilityExportResult, } from "./result";