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,20 @@
1
+ export declare const HIERARCHY_CHARTS: Set<string>;
2
+ export declare const NETWORK_CHARTS: Set<string>;
3
+ export declare const BAR_AREA_CHARTS: Set<string>;
4
+ export declare const TREND_SERIES_CHARTS: Set<string>;
5
+ export declare const ORDINAL_BAR_CHARTS: Set<string>;
6
+ export declare const CURVE_CHARTS: Set<string>;
7
+ export declare const PIE_CHARTS: Set<string>;
8
+ export declare const PART_TO_WHOLE_ACCESSORS: Record<string, string>;
9
+ export declare const PART_TO_WHOLE_CHARTS: Set<string>;
10
+ export declare const NORMALIZED_STACK_ACCESSORS: Record<string, string>;
11
+ export declare const VALUE_CHARTS: Set<string>;
12
+ export declare const XY_WITH_AXES_CHARTS: Set<string>;
13
+ export declare const PHYSICS_MOTION_CHARTS: Set<string>;
14
+ export declare const CONTINUOUS_MOTION_CHARTS: Set<string>;
15
+ export declare const PHYSICS_SETTLED_CHARTS: Set<string>;
16
+ export declare const PHYSICS_DIAGNOSTIC_CHARTS: Set<string>;
17
+ export declare const REALTIME_CHARTS: Set<string>;
18
+ export declare const DUAL_AXIS_CHARTS: Set<string>;
19
+ export declare const GEO_CHARTS: Set<string>;
20
+ export declare const POINT_TARGET_RADIUS_PROP: Record<string, string>;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Single source of truth for per-chart prop specifications.
3
+ *
4
+ * Three downstream consumers used to maintain their own per-chart entries:
5
+ * - `ai/schema.json` (LLM tool definitions)
6
+ * - `src/components/charts/shared/validationMap.ts` (runtime prop validation)
7
+ * - `ai/componentMetadata.cjs` (category buckets)
8
+ *
9
+ * Today, `validationMap.ts` is derived directly from this registry, and
10
+ * `ai/schema.json` is generated from it — run `npm run docs:chart-specs:schema`
11
+ * to refresh the schema after editing a spec. `componentMetadata.cjs` is still
12
+ * hand-edited but gated for parity by the registry: `check:chart-specs` (run
13
+ * via `npm run check:chart-specs`) regenerates each chart's schema/
14
+ * validation/metadata entries with the pure functions in
15
+ * `scripts/lib/chart-specs-generators.mjs` and fails the build on any
16
+ * drift, including unexpected adds or removes that bypass the registry.
17
+ *
18
+ * Design notes:
19
+ * - Shared prop bags (common, xyAxis, ordinalAxis) live in `PROP_BAGS` and
20
+ * are referenced by name in each spec so common surface stays in one place.
21
+ * - The runtime PropType set ("string" | "number" | "boolean" | "array" |
22
+ * "object" | "function") is broader than JSON Schema's, but the schema
23
+ * generator emits whatever types this registry declares — including
24
+ * "function" inside type unions (canonical entries like
25
+ * `RidgelinePlot.tooltip: ["function", "object"]` and
26
+ * `SwimlaneChart.onBrush: "function"` already use this convention; LLMs
27
+ * read the union and pick a non-function alternative when they can't
28
+ * supply a function value). For props that are purely callbacks or
29
+ * escape hatches an LLM cannot meaningfully populate, tag the spec
30
+ * with `omitFromSchema: true` to keep it in validationMap but out of
31
+ * schema.json. `description` and `default` annotations surface in
32
+ * schema.json (and MCP responses) but are dropped from validationMap
33
+ * (which only reads `type` and `enum`).
34
+ */
35
+ export type PropType = "string" | "number" | "boolean" | "array" | "object" | "function";
36
+ export type DataShape = "array" | "object" | "network" | "realtime" | "none";
37
+ export type ChartCategory = "xy" | "ordinal" | "network" | "geo" | "realtime" | "physics" | "value";
38
+ /**
39
+ * Capability tags for runtime behavior. Each chart declares which
40
+ * features it actually supports so docs, AI/MCP tools, and CI gates
41
+ * can read structured truth instead of inferring it from the source.
42
+ *
43
+ * All fields are required so a new chart entry can't omit them
44
+ * silently — the audit's anti-goal "Do not make registry metadata
45
+ * aspirational. It should describe real runtime behavior and be
46
+ * checked." applies here.
47
+ */
48
+ export interface ChartCapabilities {
49
+ /**
50
+ * Render pipeline. `canvas` for Stream-Frame-driven charts that
51
+ * paint to canvas with SVG overlays for chrome (the common case).
52
+ * `svg` for charts that are pure SVG (none today, but reserved).
53
+ * `hybrid` for charts that use both — currently every Stream-Frame
54
+ * HOC qualifies as hybrid; reserve `canvas` for any future
55
+ * canvas-only fallback.
56
+ */
57
+ renderModes: Array<"canvas" | "svg" | "hybrid">;
58
+ /** Renders a legend swatch column when `colorBy` (or equivalent)
59
+ * resolves to non-empty categories. */
60
+ supportsLegend: boolean;
61
+ /** Reads from a `selection` prop and dims/highlights matching
62
+ * marks via `wrapStyleWithSelection` or equivalent. */
63
+ supportsSelection: boolean;
64
+ /** Produces a hover-driven selection (used by linked crosshair /
65
+ * cross-filter patterns) via `linkedHover`. */
66
+ supportsLinkedHover: boolean;
67
+ /** Exposes a ref handle (`push`, `pushMany`, etc.) so consumers
68
+ * can mutate the data list without re-rendering. Hierarchy
69
+ * charts (Treemap/CirclePack/TreeDiagram/OrbitDiagram) and
70
+ * pure-synthetic charts (GaugeChart) declare false. */
71
+ supportsPush: boolean;
72
+ /** Renders to a static SVG via `renderChart()` from `semiotic/server`
73
+ * through a registered entry in `serverChartConfigs.ts`. SSR-only
74
+ * charts (none yet) and HOC-SSR exclusions also declare false. */
75
+ supportsSSR: boolean;
76
+ /**
77
+ * How color is consumed by the chart's data marks.
78
+ * - `categorical`: discrete buckets, paired with a `colorBy` accessor.
79
+ * - `sequential`: continuous scale (heatmap intensity, choropleth value).
80
+ * - `threshold`: stepped scale with explicit breakpoints (gauge zones).
81
+ * - `continuous`: smooth interpolation along a 1-D path (gradient fill).
82
+ * - `none`: chart doesn't use color encoding (sparkline, pure layout).
83
+ */
84
+ colorModel: "categorical" | "sequential" | "threshold" | "continuous" | "none";
85
+ /**
86
+ * Where the geometry comes from.
87
+ * - `plugin`: a built-in plugin in the frame (sankey/force/chord/tree
88
+ * for network; bar/pie/swarm/etc. for ordinal; line/area/etc. for XY).
89
+ * - `custom`: emitted via the frame's customLayout escape hatch
90
+ * (ProcessSankey via `customNetworkLayout`, NetworkCustomChart,
91
+ * XYCustomChart, OrdinalCustomChart).
92
+ * - `synthetic`: no layout — the chart constructs its scene from
93
+ * the input value(s) directly (GaugeChart computes arc geometry).
94
+ */
95
+ layoutMode: "plugin" | "custom" | "synthetic";
96
+ /**
97
+ * Free-form tag list for opt-in features that don't fit the
98
+ * boolean shape — e.g. "particles", "forecast", "anomaly", "brush",
99
+ * "streamgraph", "minimap". Used by docs feature tables and
100
+ * potential capability-driven AI suggestions.
101
+ */
102
+ specialFeatures: string[];
103
+ }
104
+ export interface ChartPropSpec {
105
+ /** Allowed runtime types. May be a single value or a union. */
106
+ type: PropType | PropType[];
107
+ /** Allowed enum values for string-typed props. */
108
+ enum?: readonly string[];
109
+ /** Default value surfaced in schema.json (and shown in MCP getSchema). */
110
+ default?: unknown;
111
+ /** Schema-side description; surfaces in LLM tool definitions. */
112
+ description?: string;
113
+ /**
114
+ * When true, the prop is included in validationMap but omitted from
115
+ * schema.json. Use for handler/callback props (`onClick`, `tooltip`)
116
+ * and pass-through escape hatches (`frameProps`) that LLMs shouldn't
117
+ * be asked to populate.
118
+ */
119
+ omitFromSchema?: boolean;
120
+ }
121
+ export interface ChartSpec {
122
+ /** Component name, must match the React export. */
123
+ name: string;
124
+ category: ChartCategory;
125
+ /** Human-readable description for schema.tools[].function.description. */
126
+ description: string;
127
+ /** Statically-required props. Push-mode optionality lives in behaviorContracts. */
128
+ required: string[];
129
+ /** Drives validation dispatch (validateArrayData / validateNetworkData / …). */
130
+ dataShape: DataShape;
131
+ /** Accessor props validated against the data shape at runtime. */
132
+ dataAccessors: string[];
133
+ /**
134
+ * Shared prop bags this chart composes. Bag props are merged in left-to-right
135
+ * order; chart-specific `ownProps` win on key collision.
136
+ */
137
+ propBags: ReadonlyArray<keyof typeof PROP_BAGS>;
138
+ /** Chart-specific prop spec, overlaid on top of the composed bags. */
139
+ ownProps: Record<string, ChartPropSpec>;
140
+ /**
141
+ * Capability matrix — declarative facts about runtime behavior.
142
+ * Drives docs feature tables, capability-aware AI/MCP tools, and
143
+ * the `check:capabilities` drift gate (which verifies, e.g., that
144
+ * a chart claiming `supportsSSR: true` has a matching entry in
145
+ * `serverChartConfigs.ts`).
146
+ */
147
+ capabilities: ChartCapabilities;
148
+ }
149
+ export declare const PROP_BAGS: {
150
+ readonly common: Record<string, ChartPropSpec>;
151
+ readonly xyAxis: Record<string, ChartPropSpec>;
152
+ readonly ordinalAxis: Record<string, ChartPropSpec>;
153
+ readonly realtime: Record<string, ChartPropSpec>;
154
+ readonly physics: Record<string, ChartPropSpec>;
155
+ };
156
+ export declare const ORIENTATION_ENUM: readonly ["vertical", "horizontal"];
157
+ export declare const HORIZONTAL_VERTICAL_ENUM: readonly ["horizontal", "vertical"];
158
+ export declare const LEGEND_POSITION_ENUM: readonly ["right", "left", "top", "bottom"];
159
+ export declare const CURVE_ENUM: readonly ["linear", "monotoneX", "monotoneY", "step", "stepAfter", "stepBefore", "basis", "cardinal", "catmullRom"];
160
+ export declare const CHART_MODE_ENUM: readonly ["primary", "context", "sparkline"];
161
+ /**
162
+ * Compose a chart's full prop set (bags + ownProps) in deterministic order.
163
+ * ownProps wins on key collision so a chart can override a shared default.
164
+ */
165
+ export declare function composeProps(spec: ChartSpec): Record<string, ChartPropSpec>;
@@ -1,131 +1,12 @@
1
- export type PropType = "string" | "number" | "boolean" | "array" | "object" | "function";
2
- export type DataShape = "array" | "object" | "network" | "realtime" | "none";
3
- export type ChartCategory = "xy" | "ordinal" | "network" | "geo" | "realtime" | "value";
4
1
  /**
5
- * Capability tags for runtime behavior. Each chart declares which
6
- * features it actually supports so docs, AI/MCP tools, and CI gates
7
- * can read structured truth instead of inferring it from the source.
2
+ * Single source of truth for per-chart prop specifications.
8
3
  *
9
- * All fields are required so a new chart entry can't omit them
10
- * silently — the audit's anti-goal "Do not make registry metadata
11
- * aspirational. It should describe real runtime behavior and be
12
- * checked." applies here.
4
+ * Spec entries are split by family (`chartSpecsXY.ts`, etc.); this module
5
+ * re-exports types/helpers and composes `CHART_SPECS`.
6
+ *
7
+ * See `chartSpecCore.ts` for types, prop bags, and `composeProps`.
13
8
  */
14
- export interface ChartCapabilities {
15
- /**
16
- * Render pipeline. `canvas` for Stream-Frame-driven charts that
17
- * paint to canvas with SVG overlays for chrome (the common case).
18
- * `svg` for charts that are pure SVG (none today, but reserved).
19
- * `hybrid` for charts that use both — currently every Stream-Frame
20
- * HOC qualifies as hybrid; reserve `canvas` for any future
21
- * canvas-only fallback.
22
- */
23
- renderModes: Array<"canvas" | "svg" | "hybrid">;
24
- /** Renders a legend swatch column when `colorBy` (or equivalent)
25
- * resolves to non-empty categories. */
26
- supportsLegend: boolean;
27
- /** Reads from a `selection` prop and dims/highlights matching
28
- * marks via `wrapStyleWithSelection` or equivalent. */
29
- supportsSelection: boolean;
30
- /** Produces a hover-driven selection (used by linked crosshair /
31
- * cross-filter patterns) via `linkedHover`. */
32
- supportsLinkedHover: boolean;
33
- /** Exposes a ref handle (`push`, `pushMany`, etc.) so consumers
34
- * can mutate the data list without re-rendering. Hierarchy
35
- * charts (Treemap/CirclePack/TreeDiagram/OrbitDiagram) and
36
- * pure-synthetic charts (GaugeChart) declare false. */
37
- supportsPush: boolean;
38
- /** Renders to a static SVG via `renderChart()` from `semiotic/server`
39
- * through a registered entry in `serverChartConfigs.ts`. SSR-only
40
- * charts (none yet) and HOC-SSR exclusions also declare false. */
41
- supportsSSR: boolean;
42
- /**
43
- * How color is consumed by the chart's data marks.
44
- * - `categorical`: discrete buckets, paired with a `colorBy` accessor.
45
- * - `sequential`: continuous scale (heatmap intensity, choropleth value).
46
- * - `threshold`: stepped scale with explicit breakpoints (gauge zones).
47
- * - `continuous`: smooth interpolation along a 1-D path (gradient fill).
48
- * - `none`: chart doesn't use color encoding (sparkline, pure layout).
49
- */
50
- colorModel: "categorical" | "sequential" | "threshold" | "continuous" | "none";
51
- /**
52
- * Where the geometry comes from.
53
- * - `plugin`: a built-in plugin in the frame (sankey/force/chord/tree
54
- * for network; bar/pie/swarm/etc. for ordinal; line/area/etc. for XY).
55
- * - `custom`: emitted via the frame's customLayout escape hatch
56
- * (ProcessSankey via `customNetworkLayout`, NetworkCustomChart,
57
- * XYCustomChart, OrdinalCustomChart).
58
- * - `synthetic`: no layout — the chart constructs its scene from
59
- * the input value(s) directly (GaugeChart computes arc geometry).
60
- */
61
- layoutMode: "plugin" | "custom" | "synthetic";
62
- /**
63
- * Free-form tag list for opt-in features that don't fit the
64
- * boolean shape — e.g. "particles", "forecast", "anomaly", "brush",
65
- * "streamgraph", "minimap". Used by docs feature tables and
66
- * potential capability-driven AI suggestions.
67
- */
68
- specialFeatures: string[];
69
- }
70
- export interface ChartPropSpec {
71
- /** Allowed runtime types. May be a single value or a union. */
72
- type: PropType | PropType[];
73
- /** Allowed enum values for string-typed props. */
74
- enum?: readonly string[];
75
- /** Default value surfaced in schema.json (and shown in MCP getSchema). */
76
- default?: unknown;
77
- /** Schema-side description; surfaces in LLM tool definitions. */
78
- description?: string;
79
- /**
80
- * When true, the prop is included in validationMap but omitted from
81
- * schema.json. Use for handler/callback props (`onClick`, `tooltip`)
82
- * and pass-through escape hatches (`frameProps`) that LLMs shouldn't
83
- * be asked to populate.
84
- */
85
- omitFromSchema?: boolean;
86
- }
87
- export interface ChartSpec {
88
- /** Component name, must match the React export. */
89
- name: string;
90
- category: ChartCategory;
91
- /** Human-readable description for schema.tools[].function.description. */
92
- description: string;
93
- /** Statically-required props. Push-mode optionality lives in behaviorContracts. */
94
- required: string[];
95
- /** Drives validation dispatch (validateArrayData / validateNetworkData / …). */
96
- dataShape: DataShape;
97
- /** Accessor props validated against the data shape at runtime. */
98
- dataAccessors: string[];
99
- /**
100
- * Shared prop bags this chart composes. Bag props are merged in left-to-right
101
- * order; chart-specific `ownProps` win on key collision.
102
- */
103
- propBags: ReadonlyArray<keyof typeof PROP_BAGS>;
104
- /** Chart-specific prop spec, overlaid on top of the composed bags. */
105
- ownProps: Record<string, ChartPropSpec>;
106
- /**
107
- * Capability matrix — declarative facts about runtime behavior.
108
- * Drives docs feature tables, capability-aware AI/MCP tools, and
109
- * the `check:capabilities` drift gate (which verifies, e.g., that
110
- * a chart claiming `supportsSSR: true` has a matching entry in
111
- * `serverChartConfigs.ts`).
112
- */
113
- capabilities: ChartCapabilities;
114
- }
115
- export declare const PROP_BAGS: {
116
- readonly common: Record<string, ChartPropSpec>;
117
- readonly xyAxis: Record<string, ChartPropSpec>;
118
- readonly ordinalAxis: Record<string, ChartPropSpec>;
119
- readonly realtime: Record<string, ChartPropSpec>;
120
- };
121
- export declare const ORIENTATION_ENUM: readonly ["vertical", "horizontal"];
122
- export declare const HORIZONTAL_VERTICAL_ENUM: readonly ["horizontal", "vertical"];
123
- export declare const LEGEND_POSITION_ENUM: readonly ["right", "left", "top", "bottom"];
124
- export declare const CURVE_ENUM: readonly ["linear", "monotoneX", "monotoneY", "step", "stepAfter", "stepBefore", "basis", "cardinal", "catmullRom"];
125
- export declare const CHART_MODE_ENUM: readonly ["primary", "context", "sparkline"];
9
+ export type { PropType, DataShape, ChartCategory, ChartCapabilities, ChartPropSpec, ChartSpec, } from "./chartSpecCore";
10
+ export { PROP_BAGS, ORIENTATION_ENUM, HORIZONTAL_VERTICAL_ENUM, LEGEND_POSITION_ENUM, CURVE_ENUM, CHART_MODE_ENUM, composeProps, } from "./chartSpecCore";
11
+ import type { ChartSpec } from "./chartSpecCore";
126
12
  export declare const CHART_SPECS: Record<string, ChartSpec>;
127
- /**
128
- * Compose a chart's full prop set (bags + ownProps) in deterministic order.
129
- * ownProps wins on key collision so a chart can override a shared default.
130
- */
131
- export declare function composeProps(spec: ChartSpec): Record<string, ChartPropSpec>;
@@ -0,0 +1,2 @@
1
+ import type { ChartSpec } from "./chartSpecCore";
2
+ export declare const GEO_CHART_SPECS: Record<string, ChartSpec>;
@@ -0,0 +1,2 @@
1
+ import type { ChartSpec } from "./chartSpecCore";
2
+ export declare const NETWORK_CHART_SPECS: Record<string, ChartSpec>;
@@ -0,0 +1,2 @@
1
+ import type { ChartSpec } from "./chartSpecCore";
2
+ export declare const ORDINAL_CHART_SPECS: Record<string, ChartSpec>;
@@ -0,0 +1,2 @@
1
+ import type { ChartSpec } from "./chartSpecCore";
2
+ export declare const PHYSICS_CHART_SPECS: Record<string, ChartSpec>;
@@ -0,0 +1,2 @@
1
+ import type { ChartSpec } from "./chartSpecCore";
2
+ export declare const REALTIME_CHART_SPECS: Record<string, ChartSpec>;
@@ -0,0 +1,2 @@
1
+ import type { ChartSpec } from "./chartSpecCore";
2
+ export declare const VALUE_CHART_SPECS: Record<string, ChartSpec>;
@@ -0,0 +1,2 @@
1
+ import type { ChartSpec } from "./chartSpecCore";
2
+ export declare const XY_CHART_SPECS: Record<string, ChartSpec>;
@@ -0,0 +1,3 @@
1
+ /** WCAG contrast ratio between two hex colors.
2
+ * Returns null if either color isn't a parseable hex. */
3
+ export declare function contrastRatio(hex1: string, hex2: string): number | null;
@@ -53,6 +53,8 @@ export declare const interpolateInferno: (t: number) => string;
53
53
  export declare const interpolateMagma: (t: number) => string;
54
54
  export declare const interpolateCividis: (t: number) => string;
55
55
  export declare const interpolateTurbo: (t: number) => string;
56
+ export declare const SEQUENTIAL_INTERPOLATORS: Record<string, (t: number) => string>;
57
+ export declare function getSequentialInterpolator(scheme: string | undefined): (t: number) => string;
56
58
  export declare const interpolateRdBu: (t: number) => string;
57
59
  export declare const interpolatePiYG: (t: number) => string;
58
60
  export declare const interpolatePRGn: (t: number) => string;
@@ -2,18 +2,7 @@ import type { Datum } from "./datumTypes";
2
2
  /**
3
3
  * Predefined color schemes
4
4
  */
5
- export declare const COLOR_SCHEMES: {
6
- category10: readonly string[];
7
- tableau10: readonly string[];
8
- set3: readonly string[];
9
- blues: (t: number) => string;
10
- reds: (t: number) => string;
11
- greens: (t: number) => string;
12
- oranges: (t: number) => string;
13
- purples: (t: number) => string;
14
- viridis: (t: number) => string;
15
- plasma: (t: number) => string;
16
- };
5
+ export declare const COLOR_SCHEMES: Record<string, readonly string[] | ((t: number) => string)>;
17
6
  /**
18
7
  * Default colors for charts
19
8
  */
@@ -46,6 +35,21 @@ export declare const DEPTH_PALETTE_COLORS: string[];
46
35
  * ```
47
36
  */
48
37
  export declare function getColor(dataPoint: Datum, colorBy: string | ((d: Datum) => string), colorScale?: (v: string) => string): string;
38
+ /**
39
+ * Look up a color for `key` in an explicit `{ category: color }` map.
40
+ *
41
+ * Guards against two hazards of a naive `key in map` lookup on a
42
+ * user-supplied object: inherited prototype keys (e.g. `"toString"`,
43
+ * `"constructor"`) must NOT register as mapped categories, and a mapped
44
+ * value that isn't a usable color string (a function, number, `""`) must
45
+ * not leak into a fill/stroke. Returns `undefined` when the key is unmapped
46
+ * or its value isn't a non-empty string, so callers apply their own default.
47
+ *
48
+ * Single source of truth for object-map `colorScheme` resolution across
49
+ * `createColorScale`, `resolveDefaultFill`, `buildResolveColor`,
50
+ * `buildColorScale`, and `CategoryColorProvider`.
51
+ */
52
+ export declare function resolveExplicitColor(map: Record<string, unknown>, key: string | undefined | null): string | undefined;
49
53
  /**
50
54
  * Creates a color scale function from data
51
55
  *
@@ -60,7 +64,7 @@ export declare function getColor(dataPoint: Datum, colorBy: string | ((d: Datum)
60
64
  * const color = colorScale('A') // Returns color for category 'A'
61
65
  * ```
62
66
  */
63
- export declare function createColorScale(data: Array<Datum>, colorBy: string, scheme?: string | string[]): (v: string) => string;
67
+ export declare function createColorScale(data: Array<Datum>, colorBy: string, scheme?: string | string[] | Record<string, string>): (v: string) => string;
64
68
  /**
65
69
  * Generates a size function based on sizeBy configuration.
66
70
  *
@@ -0,0 +1,4 @@
1
+ import type { Datum } from "./datumTypes";
2
+ import type { Diagnosis } from "./diagnoseTypes";
3
+ export declare function checkAnnotationConnectors(_component: string, props: Datum, out: Diagnosis[]): void;
4
+ export declare function checkAnnotationDensity(_component: string, props: Datum, out: Diagnosis[]): void;
@@ -1,16 +1,11 @@
1
1
  import type { Datum } from "./datumTypes";
2
- export interface Diagnosis {
3
- severity: "error" | "warning";
4
- code: string;
5
- message: string;
6
- fix: string;
7
- }
8
- export interface DiagnosisResult {
9
- ok: boolean;
10
- diagnoses: Diagnosis[];
11
- }
12
- /** WCAG contrast ratio between two hex colors. Exported for reuse by the
13
- * accessibility audit (auditAccessibility.ts) — single source of truth for the
14
- * contrast math. Returns null if either color isn't a parseable hex. */
15
- export declare function contrastRatio(hex1: string, hex2: string): number | null;
2
+ import type { DiagnosisResult } from "./diagnoseTypes";
3
+ export { contrastRatio } from "./colorContrast";
4
+ export type { Diagnosis, DiagnosisResult } from "./diagnoseTypes";
5
+ /**
6
+ * Run anti-pattern diagnostics on a Semiotic chart configuration.
7
+ *
8
+ * Returns actionable diagnoses with severity, code, message, and fix instruction.
9
+ * Runs validateProps internally — validation errors are included as diagnoses.
10
+ */
16
11
  export declare function diagnoseConfig(componentName: string, props: Datum): DiagnosisResult;
@@ -0,0 +1,9 @@
1
+ import type { Datum } from "./datumTypes";
2
+ import type { Diagnosis } from "./diagnoseTypes";
3
+ export declare function checkInvertedAxis(_component: string, props: Datum, out: Diagnosis[]): void;
4
+ export declare function checkDualAxisUnlabeled(component: string, props: Datum, out: Diagnosis[]): void;
5
+ export declare function checkCherryPickedWindow(component: string, props: Datum, out: Diagnosis[]): void;
6
+ export declare function checkPartToWholeNegative(component: string, props: Datum, out: Diagnosis[]): void;
7
+ export declare function checkNonPassingCurve(component: string, props: Datum, out: Diagnosis[]): void;
8
+ export declare function checkExtremeAspectRatio(component: string, props: Datum, out: Diagnosis[]): void;
9
+ export declare function checkPieTooManySlices(component: string, props: Datum, out: Diagnosis[]): void;
@@ -0,0 +1,3 @@
1
+ import type { Datum } from "./datumTypes";
2
+ import type { Diagnosis } from "./diagnoseTypes";
3
+ export declare function checkPhysicsConfig(component: string, props: Datum, out: Diagnosis[]): void;
@@ -0,0 +1,10 @@
1
+ export interface Diagnosis {
2
+ severity: "error" | "warning";
3
+ code: string;
4
+ message: string;
5
+ fix: string;
6
+ }
7
+ export interface DiagnosisResult {
8
+ ok: boolean;
9
+ diagnoses: Diagnosis[];
10
+ }
@@ -1,14 +1,25 @@
1
1
  import { createLegend } from "./legendUtils";
2
2
  import type { SelectionHookResult } from "./selectionUtils";
3
3
  import type { OnObservationCallback } from "../../store/ObservationStore";
4
- import type { Accessor, SelectionConfig, LinkedHoverProp, ChartMode, HoverHighlightMode } from "./types";
4
+ import type { Accessor, SelectionConfig, LinkedHoverProp, ChartMode, HoverHighlightMode, MobileInteractionProp, ResolvedMobileInteractionConfig } from "./types";
5
5
  import type { MarginType, PartialMargin } from "../../types/marginType";
6
6
  import type { TransitionConfig } from "../../stream/types";
7
7
  import type { Datum } from "./datumTypes";
8
+ import type { MobileVisualizationContract } from "./auditMobileVisualization";
9
+ import type { ResponsiveRule } from "./responsiveRules";
8
10
  /**
9
11
  * Default fill color used when no colorBy is specified
10
12
  */
11
13
  export declare const DEFAULT_COLOR = "#007bff";
14
+ export declare const MOBILE_INTERACTION_TARGET_SIZE = 44;
15
+ export declare const MOBILE_INTERACTION_MIN_HIT_RADIUS = 24;
16
+ export declare const MOBILE_INTERACTION_DEFAULTS: ResolvedMobileInteractionConfig;
17
+ export declare const DISABLED_MOBILE_INTERACTION: ResolvedMobileInteractionConfig;
18
+ export declare function resolveMobileInteraction(input: MobileInteractionProp | undefined, context?: {
19
+ mode?: ChartMode;
20
+ width?: number;
21
+ mobileSemantics?: MobileVisualizationContract;
22
+ }): ResolvedMobileInteractionConfig;
12
23
  /**
13
24
  * Returns the theme's categorical palette, or undefined if no ThemeProvider or
14
25
  * the palette is empty. Safe to call outside a ThemeProvider (returns undefined).
@@ -30,7 +41,7 @@ export declare function useThemeDiverging(): string | undefined;
30
41
  * Priority: color prop > theme categorical > colorScheme > DEFAULT_COLOR.
31
42
  * When a palette is available, cycles through colors by category name.
32
43
  */
33
- export declare function resolveDefaultFill(color: string | undefined, themeCategorical: string[] | undefined, colorScheme: string | string[] | undefined, category: string | undefined, categoryIndexMap: Map<string, number>): string;
44
+ export declare function resolveDefaultFill(color: string | undefined, themeCategorical: string[] | undefined, colorScheme: string | string[] | Record<string, string> | undefined, category: string | undefined, categoryIndexMap: Map<string, number>): string;
34
45
  /**
35
46
  * Resolve an accessor (string key or function) into a function.
36
47
  * Used across chart components to normalize `valueAccessor`, `categoryAccessor`, etc.
@@ -41,7 +52,7 @@ export declare function resolveAccessor<T = any>(accessor: string | ((d: Datum,
41
52
  * Returns undefined when colorBy is absent or data is empty (push API mode).
42
53
  * Supports both string and function accessors for colorBy.
43
54
  */
44
- export declare function useColorScale(data: Array<Datum>, colorBy: string | ((d: any, i?: number) => any) | undefined, colorScheme?: string | string[]): ((v: string) => string) | undefined;
55
+ export declare function useColorScale(data: Array<Datum>, colorBy: string | ((d: any, i?: number) => any) | undefined, colorScheme?: string | string[] | Record<string, string>): ((v: string) => string) | undefined;
45
56
  /**
46
57
  * Hook to sort data by a value accessor.
47
58
  * Used by BarChart and DotPlot.
@@ -64,7 +75,7 @@ export declare function useSortedData(data: Array<Datum>, sort: boolean | "asc"
64
75
  * @param unwrapData - Deprecated / no-op. Hover data is always unwrapped
65
76
  * (stream frames wrap the raw datum in { data, time, value, x, y }).
66
77
  */
67
- export declare function useChartSelection({ selection, linkedHover, fallbackFields, unwrapData: _unwrapData, onObservation, chartType, chartId, onClick, hoverHighlight, colorByField, }: {
78
+ export declare function useChartSelection({ selection, linkedHover, fallbackFields, unwrapData: _unwrapData, onObservation, chartType, chartId, onClick, hoverHighlight, colorByField, mobileInteraction, }: {
68
79
  selection?: SelectionConfig;
69
80
  linkedHover?: LinkedHoverProp;
70
81
  fallbackFields?: string[];
@@ -78,6 +89,7 @@ export declare function useChartSelection({ selection, linkedHover, fallbackFiel
78
89
  }) => void;
79
90
  hoverHighlight?: HoverHighlightMode;
80
91
  colorByField?: string;
92
+ mobileInteraction?: ResolvedMobileInteractionConfig;
81
93
  }): {
82
94
  activeSelectionHook: SelectionHookResult | null;
83
95
  hoverSelectionHook: SelectionHookResult | null;
@@ -161,8 +173,15 @@ interface ChartModeInput {
161
173
  valueLabel?: string;
162
174
  /** When truthy, enableHover is forced true regardless of mode (LinkedCharts needs hover) */
163
175
  linkedHover?: any;
176
+ /** Optional mobile interaction policy surfaced through useChartMode for custom wrappers. */
177
+ mobileInteraction?: MobileInteractionProp;
178
+ /** Optional mobile semantic contract surfaced through useChartMode for custom wrappers. */
179
+ mobileSemantics?: MobileVisualizationContract;
180
+ /** Semantic responsive transformations resolved before mode defaults. */
181
+ responsiveRules?: ResponsiveRule[];
164
182
  }
165
- interface ChartModeResult {
183
+ /** Result of {@link useChartMode} — exported so declaration emit can name it. */
184
+ export interface ChartModeResult {
166
185
  width: number;
167
186
  height: number;
168
187
  showAxes: boolean;
@@ -186,6 +205,10 @@ interface ChartModeResult {
186
205
  };
187
206
  /** True when mode is context or sparkline — the "hide interactive chrome" union. */
188
207
  compactMode: boolean;
208
+ /** Resolved touch-first behavior for mobile-capable wrappers. */
209
+ mobileInteraction: ResolvedMobileInteractionConfig;
210
+ /** Mobile semantic contract after matching responsive rules are applied. */
211
+ mobileSemantics: MobileVisualizationContract | undefined;
189
212
  }
190
213
  /**
191
214
  * Resolve chart display mode into concrete prop defaults.
@@ -0,0 +1,3 @@
1
+ export declare function getMinMax(values: ReadonlyArray<number>): [number, number];
2
+ export declare function getMin(values: ReadonlyArray<number>, fallback?: number): number;
3
+ export declare function getMax(values: ReadonlyArray<number>, fallback?: number): number;