semiotic 3.7.5 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/CLAUDE.md +63 -18
  2. package/README.md +121 -27
  3. package/agent-skill/semiotic-charts/SKILL.md +146 -0
  4. package/ai/cli.js +133 -45
  5. package/ai/componentMetadata.cjs +6 -1
  6. package/ai/dist/mcp-server.js +1741 -163
  7. package/ai/examples.md +174 -0
  8. package/ai/schema.json +2733 -536
  9. package/ai/surface-manifest.json +201 -0
  10. package/ai/system-prompt.md +20 -4
  11. package/dist/__tests__/scenarios/mcpProtocolTypes.d.ts +20 -0
  12. package/dist/components/AccessibleNavTree.d.ts +7 -1
  13. package/dist/components/CategoryColors.d.ts +1 -1
  14. package/dist/components/ChartContainer.d.ts +91 -0
  15. package/dist/components/ChartGrid.d.ts +11 -1
  16. package/dist/components/CircularBrush.d.ts +61 -0
  17. package/dist/components/ContextLayout.d.ts +5 -1
  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 +26 -1
  29. package/dist/components/ai/chartClinic.d.ts +91 -0
  30. package/dist/components/ai/chartClinicMetadata.generated.d.ts +15 -0
  31. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  32. package/dist/components/ai/chartRecipes.d.ts +278 -0
  33. package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
  34. package/dist/components/ai/describeChart.d.ts +7 -0
  35. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  36. package/dist/components/ai/generativeChart.d.ts +28 -3
  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/ai/useNavigationSync.d.ts +17 -2
  47. package/dist/components/chartContainerMobile.d.ts +9 -0
  48. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  49. package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
  50. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  51. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  52. package/dist/components/charts/geo/ChoroplethMap.d.ts +19 -2
  53. package/dist/components/charts/geo/DistanceCartogram.d.ts +15 -3
  54. package/dist/components/charts/geo/FlowMap.d.ts +11 -7
  55. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +15 -3
  56. package/dist/components/charts/geo/index.d.ts +2 -0
  57. package/dist/components/charts/index.d.ts +35 -1
  58. package/dist/components/charts/network/ChordDiagram.d.ts +10 -2
  59. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  60. package/dist/components/charts/network/ForceDirectedGraph.d.ts +26 -5
  61. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  62. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  63. package/dist/components/charts/network/SankeyDiagram.d.ts +10 -2
  64. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  65. package/dist/components/charts/network/Treemap.d.ts +1 -1
  66. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  67. package/dist/components/charts/ordinal/BarChart.d.ts +22 -1
  68. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  69. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  70. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  71. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  72. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +12 -1
  73. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  74. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  75. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  76. package/dist/components/charts/ordinal/StackedBarChart.d.ts +12 -1
  77. package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
  78. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  79. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  80. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  81. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  82. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +54 -0
  83. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  84. package/dist/components/charts/physics/EventDropChart.d.ts +60 -0
  85. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  86. package/dist/components/charts/physics/GaltonBoardChart.d.ts +74 -0
  87. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  88. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  89. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  90. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  91. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +99 -0
  92. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  93. package/dist/components/charts/physics/PhysicsPileChart.d.ts +60 -0
  94. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  95. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  96. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  97. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  98. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  99. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  100. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  101. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  102. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  103. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  104. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  105. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  106. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  107. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  108. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  109. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  110. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  111. package/dist/components/charts/physics/physicsChartShared.d.ts +57 -0
  112. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  113. package/dist/components/charts/physics/physicsCustomLayout.d.ts +32 -0
  114. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  115. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  116. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  117. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  118. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  119. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  120. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  121. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  122. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
  123. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  124. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  125. package/dist/components/charts/shared/AnnotationLabel.d.ts +88 -0
  126. package/dist/components/charts/shared/annotationActivation.d.ts +35 -0
  127. package/dist/components/charts/shared/annotationLabelLayout.d.ts +5 -0
  128. package/dist/components/charts/shared/annotationRules.d.ts +2 -1
  129. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  130. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  131. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  132. package/dist/components/charts/shared/chartSelectionUtils.d.ts +4 -0
  133. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  134. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  135. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  136. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  137. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  138. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  139. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  140. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  141. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  142. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  143. package/dist/components/charts/shared/colorUtils.d.ts +16 -1
  144. package/dist/components/charts/shared/datumTypes.d.ts +2 -0
  145. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +6 -0
  146. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  147. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  148. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  149. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  150. package/dist/components/charts/shared/formatUtils.d.ts +3 -3
  151. package/dist/components/charts/shared/hatchFill.d.ts +87 -0
  152. package/dist/components/charts/shared/hooks.d.ts +34 -10
  153. package/dist/components/charts/shared/knownChartComponents.d.ts +9 -0
  154. package/dist/components/charts/shared/leastSquaresRegression.d.ts +16 -0
  155. package/dist/components/charts/shared/mergeShapeStyle.d.ts +3 -2
  156. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  157. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  158. package/dist/components/charts/shared/semanticInteractions.d.ts +42 -0
  159. package/dist/components/charts/shared/sparseArray.d.ts +1 -1
  160. package/dist/components/charts/shared/streamPropsHelpers.d.ts +17 -5
  161. package/dist/components/charts/shared/styleRules.d.ts +205 -0
  162. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  163. package/dist/components/charts/shared/tooltipUtils.d.ts +22 -9
  164. package/dist/components/charts/shared/types.d.ts +58 -7
  165. package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +16 -2
  166. package/dist/components/charts/shared/useChartSetup.d.ts +11 -4
  167. package/dist/components/charts/shared/useCustomChartSetup.d.ts +17 -5
  168. package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -2
  169. package/dist/components/charts/shared/useLikertAggregation.d.ts +4 -4
  170. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  171. package/dist/components/charts/shared/useOrdinalBrush.d.ts +2 -1
  172. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +25 -2
  173. package/dist/components/charts/shared/useStreamingLegend.d.ts +2 -2
  174. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  175. package/dist/components/charts/shared/useXYLineStyle.d.ts +10 -0
  176. package/dist/components/charts/shared/useXYPointStyle.d.ts +19 -1
  177. package/dist/components/charts/shared/validateChartData.d.ts +7 -5
  178. package/dist/components/charts/shared/validationMap.d.ts +7 -9
  179. package/dist/components/charts/shared/validationMap.generated.d.ts +6 -0
  180. package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
  181. package/dist/components/charts/value/targetPresentation.d.ts +22 -0
  182. package/dist/components/charts/value/types.d.ts +5 -6
  183. package/dist/components/charts/xy/AreaChart.d.ts +9 -1
  184. package/dist/components/charts/xy/BubbleChart.d.ts +10 -1
  185. package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -0
  186. package/dist/components/charts/xy/DifferenceChart.d.ts +1 -52
  187. package/dist/components/charts/xy/Heatmap.d.ts +2 -2
  188. package/dist/components/charts/xy/LineChart.d.ts +12 -1
  189. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  190. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  191. package/dist/components/charts/xy/QuadrantChart.d.ts +8 -1
  192. package/dist/components/charts/xy/Scatterplot.d.ts +11 -1
  193. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  194. package/dist/components/charts/xy/StackedAreaChart.d.ts +16 -4
  195. package/dist/components/charts/xy/differenceSegments.d.ts +49 -0
  196. package/dist/components/charts/xy/scatterplotMatrixInteractionTypes.d.ts +12 -0
  197. package/dist/components/controls/SentenceFilter.d.ts +97 -0
  198. package/dist/components/controls/controlAudit.d.ts +24 -0
  199. package/dist/components/controls/controlContract.d.ts +57 -0
  200. package/dist/components/data/fromFlintChart.d.ts +74 -0
  201. package/dist/components/data/fromVegaLite.d.ts +46 -9
  202. package/dist/components/data/portability/index.d.ts +6 -3
  203. package/dist/components/data/portability/result.d.ts +52 -0
  204. package/dist/components/data/portability/spec.d.ts +31 -0
  205. package/dist/components/data/portability/vegaLite.d.ts +24 -6
  206. package/dist/components/export/chartConfig.d.ts +11 -0
  207. package/dist/components/realtime/types.d.ts +11 -0
  208. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  209. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  210. package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
  211. package/dist/components/recipes/cyclical.d.ts +39 -0
  212. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  213. package/dist/components/recipes/forceLayout.d.ts +48 -0
  214. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  215. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  216. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  217. package/dist/components/recipes/gofishIR.d.ts +178 -132
  218. package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
  219. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  220. package/dist/components/recipes/intervals.d.ts +80 -0
  221. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  222. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  223. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  224. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  225. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  226. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  227. package/dist/components/recipes/physics.d.ts +122 -0
  228. package/dist/components/recipes/physicsReference.d.ts +102 -0
  229. package/dist/components/recipes/processAggregates.d.ts +32 -0
  230. package/dist/components/recipes/processChrome.d.ts +67 -0
  231. package/dist/components/recipes/processJourney.d.ts +54 -0
  232. package/dist/components/recipes/processPhysics.d.ts +300 -0
  233. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  234. package/dist/components/recipes/radialCoords.d.ts +69 -0
  235. package/dist/components/recipes/random.d.ts +2 -0
  236. package/dist/components/recipes/recipeChrome.d.ts +91 -0
  237. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  238. package/dist/components/recipes/recipeLegend.d.ts +53 -1
  239. package/dist/components/recipes/recipeUtils.d.ts +52 -0
  240. package/dist/components/recipes/runs.d.ts +59 -0
  241. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  242. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  243. package/dist/components/recipes/unitize.d.ts +108 -0
  244. package/dist/components/recipes/vector.d.ts +28 -0
  245. package/dist/components/recipes/waffle.d.ts +43 -0
  246. package/dist/components/rough/createRoughRenderMode.d.ts +46 -0
  247. package/dist/components/semiotic-ai-core.d.ts +47 -0
  248. package/dist/components/semiotic-ai.d.ts +53 -9
  249. package/dist/components/semiotic-controls.d.ts +20 -0
  250. package/dist/components/semiotic-experimental.d.ts +38 -9
  251. package/dist/components/semiotic-geo.d.ts +15 -0
  252. package/dist/components/semiotic-network.d.ts +15 -0
  253. package/dist/components/semiotic-ordinal.d.ts +14 -0
  254. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  255. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  256. package/dist/components/semiotic-physics.d.ts +60 -0
  257. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  258. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  259. package/dist/components/semiotic-realtime.d.ts +4 -30
  260. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  261. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  262. package/dist/components/semiotic-recipes.d.ts +4 -43
  263. package/dist/components/semiotic-rough.d.ts +4 -0
  264. package/dist/components/semiotic-server-edge.d.ts +8 -0
  265. package/dist/components/semiotic-server-node.d.ts +5 -0
  266. package/dist/components/semiotic-server.d.ts +2 -2
  267. package/dist/components/semiotic-themes-core.d.ts +53 -0
  268. package/dist/components/semiotic-themes-react.d.ts +4 -0
  269. package/dist/components/semiotic-themes.d.ts +6 -76
  270. package/dist/components/semiotic-utils-core.d.ts +50 -0
  271. package/dist/components/semiotic-utils-react.d.ts +5 -0
  272. package/dist/components/semiotic-utils.d.ts +3 -39
  273. package/dist/components/semiotic-xy.d.ts +12 -0
  274. package/dist/components/semiotic.d.ts +44 -8
  275. package/dist/components/server/animatedGif.d.ts +36 -0
  276. package/dist/components/server/optionalImageTypes.d.ts +37 -0
  277. package/dist/components/server/renderEvidence.d.ts +1 -1
  278. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  279. package/dist/components/server/serverChartConfigShared.d.ts +21 -0
  280. package/dist/components/server/serverChartConfigs.d.ts +22 -12
  281. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  282. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  283. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  284. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  285. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  286. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  287. package/dist/components/server/staticAnnotations.d.ts +6 -3
  288. package/dist/components/server/staticGeo.d.ts +4 -0
  289. package/dist/components/server/staticLegend.d.ts +2 -2
  290. package/dist/components/server/staticNetwork.d.ts +8 -0
  291. package/dist/components/server/staticOrdinal.d.ts +11 -0
  292. package/dist/components/server/staticPhysics.d.ts +3 -0
  293. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  294. package/dist/components/server/staticXY.d.ts +4 -0
  295. package/dist/components/store/ObservationStore.d.ts +23 -2
  296. package/dist/components/store/themeSerialization.d.ts +32 -0
  297. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  298. package/dist/components/stream/AccessibleDataTable.d.ts +7 -23
  299. package/dist/components/stream/AriaLiveTooltip.d.ts +9 -0
  300. package/dist/components/stream/CanvasHitTester.d.ts +4 -4
  301. package/dist/components/stream/DataSourceAdapter.d.ts +1 -1
  302. package/dist/components/stream/FocusRing.d.ts +4 -2
  303. package/dist/components/stream/FrameRuntime.d.ts +57 -0
  304. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  305. package/dist/components/stream/GeoParticlePool.d.ts +1 -1
  306. package/dist/components/stream/GeoPipelineStore.d.ts +62 -3
  307. package/dist/components/stream/GeoSVGOverlay.d.ts +64 -0
  308. package/dist/components/stream/NetworkCanvasHitTester.d.ts +2 -1
  309. package/dist/components/stream/NetworkPipelineStore.d.ts +44 -36
  310. package/dist/components/stream/NetworkSSRFrame.d.ts +17 -0
  311. package/dist/components/stream/NetworkSVGOverlay.d.ts +10 -1
  312. package/dist/components/stream/OrdinalCanvasHitTester.d.ts +2 -2
  313. package/dist/components/stream/OrdinalPipelineStore.d.ts +55 -11
  314. package/dist/components/stream/OrdinalSVGOverlay.d.ts +9 -1
  315. package/dist/components/stream/OrdinalStyleResolver.d.ts +12 -0
  316. package/dist/components/stream/ParticlePool.d.ts +1 -1
  317. package/dist/components/stream/PipelineStore.d.ts +81 -174
  318. package/dist/components/stream/SVGOverlay.d.ts +6 -0
  319. package/dist/components/stream/SceneGraph.d.ts +12 -4
  320. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  321. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  322. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  323. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  324. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  325. package/dist/components/stream/accessorUtils.d.ts +25 -12
  326. package/dist/components/stream/annotationAccessorResolver.d.ts +2 -2
  327. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  328. package/dist/components/stream/canvasBackground.d.ts +24 -0
  329. package/dist/components/stream/canvasSetup.d.ts +4 -1
  330. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  331. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  332. package/dist/components/stream/frameGraphics.d.ts +4 -0
  333. package/dist/components/stream/frameKeyboardNavigation.d.ts +45 -0
  334. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  335. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  336. package/dist/components/stream/geoCartogram.d.ts +17 -0
  337. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  338. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  339. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  340. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  341. package/dist/components/stream/geoPipelineUpdateResults.d.ts +34 -0
  342. package/dist/components/stream/geoSceneBuilder.d.ts +16 -0
  343. package/dist/components/stream/geoTypes.d.ts +97 -15
  344. package/dist/components/stream/glyphDef.d.ts +98 -0
  345. package/dist/components/stream/hitTarget.d.ts +170 -0
  346. package/dist/components/stream/hitTestUtils.d.ts +2 -2
  347. package/dist/components/stream/hoverUtils.d.ts +7 -2
  348. package/dist/components/stream/keyboardNav.d.ts +4 -1
  349. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  350. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +58 -0
  351. package/dist/components/stream/layouts/hierarchyUtils.d.ts +2 -2
  352. package/dist/components/stream/networkBezier.d.ts +10 -0
  353. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  354. package/dist/components/stream/networkCustomLayoutRunner.d.ts +23 -0
  355. package/dist/components/stream/networkCustomRestyle.d.ts +15 -0
  356. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  357. package/dist/components/stream/networkFrameAnimation.d.ts +7 -0
  358. package/dist/components/stream/networkFrameHandleTypes.d.ts +39 -0
  359. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  360. package/dist/components/stream/networkFrameObservations.d.ts +15 -0
  361. package/dist/components/stream/networkFramePaint.d.ts +52 -0
  362. package/dist/components/stream/networkInteractionTypes.d.ts +26 -0
  363. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  364. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  365. package/dist/components/stream/networkPipelineUpdateResults.d.ts +38 -0
  366. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  367. package/dist/components/stream/networkTypes.d.ts +103 -51
  368. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  369. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  370. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  371. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  372. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +31 -0
  373. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  374. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  375. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  376. package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -2
  377. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  378. package/dist/components/stream/ordinalTypes.d.ts +68 -9
  379. package/dist/components/stream/paintNeeds.d.ts +31 -0
  380. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  381. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  382. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  383. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  384. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  385. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  386. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  387. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  388. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  389. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  390. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  391. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  392. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  393. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  394. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +86 -0
  395. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  396. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +78 -0
  397. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  398. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  399. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  400. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  401. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  402. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  403. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  404. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  405. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  406. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  407. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +317 -0
  408. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  409. package/dist/components/stream/physics/physicsFrameObservations.d.ts +19 -0
  410. package/dist/components/stream/physics/physicsFrameSetup.d.ts +4 -0
  411. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  412. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  413. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  414. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +27 -0
  415. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  416. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  417. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +18 -0
  418. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  419. package/dist/components/stream/pipelineConfig.d.ts +179 -0
  420. package/dist/components/stream/pipelineDecay.d.ts +21 -3
  421. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  422. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  423. package/dist/components/stream/pipelinePulse.d.ts +17 -3
  424. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  425. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  426. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +33 -0
  427. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  428. package/dist/components/stream/pipelineTransitions.d.ts +3 -1
  429. package/dist/components/stream/pipelineUpdateContract.d.ts +69 -0
  430. package/dist/components/stream/pipelineUpdateStore.d.ts +21 -0
  431. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  432. package/dist/components/stream/renderBackend.d.ts +27 -0
  433. package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +15 -1
  434. package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +3 -2
  435. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  436. package/dist/components/stream/renderers/networkParticleRenderer.d.ts +1 -1
  437. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  438. package/dist/components/stream/sceneRenderBackendTypes.d.ts +28 -0
  439. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +45 -0
  440. package/dist/components/stream/streamSemanticTypes.d.ts +16 -0
  441. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  442. package/dist/components/stream/streamThemeTypes.d.ts +14 -0
  443. package/dist/components/stream/svgOverlayUtils.d.ts +10 -0
  444. package/dist/components/stream/test-utils/frameScheduler.d.ts +12 -0
  445. package/dist/components/stream/test-utils/revisionConsumption.d.ts +13 -0
  446. package/dist/components/stream/titleLayout.d.ts +31 -0
  447. package/dist/components/stream/types.d.ts +165 -72
  448. package/dist/components/stream/useCanvasFrameHost.d.ts +71 -0
  449. package/dist/components/stream/useFrame.d.ts +44 -2
  450. package/dist/components/stream/useHydration.d.ts +6 -0
  451. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  452. package/dist/components/stream/useSemanticFrameInteractions.d.ts +22 -0
  453. package/dist/components/stream/useUpdateResultSnapshot.d.ts +7 -0
  454. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  455. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  456. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  457. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  458. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  459. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  460. package/dist/components/stream/xyFrameAxisTypes.d.ts +50 -0
  461. package/dist/components/stream/xySceneBuilders/types.d.ts +10 -9
  462. package/dist/controls.min.js +2 -0
  463. package/dist/controls.module.min.js +2 -0
  464. package/dist/forceLayoutWorker.js +1 -0
  465. package/dist/geo.min.js +1 -1
  466. package/dist/geo.module.min.js +1 -1
  467. package/dist/network.min.js +1 -1
  468. package/dist/network.module.min.js +1 -1
  469. package/dist/ordinal.min.js +1 -1
  470. package/dist/ordinal.module.min.js +1 -1
  471. package/dist/physics-matter.min.js +1 -0
  472. package/dist/physics-matter.module.min.js +1 -0
  473. package/dist/physics-rapier.min.js +1 -0
  474. package/dist/physics-rapier.module.min.js +1 -0
  475. package/dist/physics.min.js +2 -0
  476. package/dist/physics.module.min.js +2 -0
  477. package/dist/physicsWorker.js +1 -0
  478. package/dist/realtime.min.js +1 -1
  479. package/dist/realtime.module.min.js +1 -1
  480. package/dist/rough.min.js +1 -0
  481. package/dist/rough.module.min.js +1 -0
  482. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  483. package/dist/semiotic-ai-core.d.ts +47 -0
  484. package/dist/semiotic-ai-core.min.js +1 -0
  485. package/dist/semiotic-ai-core.module.min.js +1 -0
  486. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  487. package/dist/semiotic-ai.d.ts +53 -9
  488. package/dist/semiotic-ai.min.js +1 -1
  489. package/dist/semiotic-ai.module.min.js +1 -1
  490. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  491. package/dist/semiotic-controls.d.ts +20 -0
  492. package/dist/semiotic-data.min.js +1 -1
  493. package/dist/semiotic-data.module.min.js +1 -1
  494. package/dist/semiotic-experimental.d.ts +38 -9
  495. package/dist/semiotic-experimental.min.js +1 -1
  496. package/dist/semiotic-experimental.module.min.js +1 -1
  497. package/dist/semiotic-geo.d.ts +15 -0
  498. package/dist/semiotic-network.d.ts +15 -0
  499. package/dist/semiotic-ordinal.d.ts +14 -0
  500. package/dist/semiotic-physics-matter.d.ts +10 -0
  501. package/dist/semiotic-physics-rapier.d.ts +9 -0
  502. package/dist/semiotic-physics.d.ts +60 -0
  503. package/dist/semiotic-realtime-core.d.ts +34 -0
  504. package/dist/semiotic-realtime-core.min.js +1 -0
  505. package/dist/semiotic-realtime-core.module.min.js +1 -0
  506. package/dist/semiotic-realtime-react.d.ts +10 -0
  507. package/dist/semiotic-realtime-react.min.js +2 -0
  508. package/dist/semiotic-realtime-react.module.min.js +2 -0
  509. package/dist/semiotic-realtime.d.ts +4 -30
  510. package/dist/semiotic-recipes-core.d.ts +92 -0
  511. package/dist/semiotic-recipes-core.min.js +1 -0
  512. package/dist/semiotic-recipes-core.module.min.js +1 -0
  513. package/dist/semiotic-recipes-react.d.ts +7 -0
  514. package/dist/semiotic-recipes-react.min.js +2 -0
  515. package/dist/semiotic-recipes-react.module.min.js +2 -0
  516. package/dist/semiotic-recipes.d.ts +4 -43
  517. package/dist/semiotic-recipes.min.js +1 -1
  518. package/dist/semiotic-recipes.module.min.js +1 -1
  519. package/dist/semiotic-rough.d.ts +4 -0
  520. package/dist/semiotic-server-edge.d.ts +8 -0
  521. package/dist/semiotic-server-edge.min.js +1 -0
  522. package/dist/semiotic-server-edge.module.min.js +1 -0
  523. package/dist/semiotic-server-node.d.ts +5 -0
  524. package/dist/semiotic-server-node.min.js +1 -0
  525. package/dist/semiotic-server-node.module.min.js +1 -0
  526. package/dist/semiotic-server.d.ts +2 -2
  527. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  528. package/dist/semiotic-themes-core.d.ts +53 -0
  529. package/dist/semiotic-themes-core.min.js +1 -0
  530. package/dist/semiotic-themes-core.module.min.js +1 -0
  531. package/dist/semiotic-themes-react.d.ts +4 -0
  532. package/dist/semiotic-themes-react.min.js +2 -0
  533. package/dist/semiotic-themes-react.module.min.js +2 -0
  534. package/dist/semiotic-themes.d.ts +6 -76
  535. package/dist/semiotic-themes.min.js +1 -2
  536. package/dist/semiotic-themes.module.min.js +1 -2
  537. package/dist/semiotic-utils-core.d.ts +50 -0
  538. package/dist/semiotic-utils-core.min.js +1 -0
  539. package/dist/semiotic-utils-core.module.min.js +1 -0
  540. package/dist/semiotic-utils-react.d.ts +5 -0
  541. package/dist/semiotic-utils-react.min.js +2 -0
  542. package/dist/semiotic-utils-react.module.min.js +2 -0
  543. package/dist/semiotic-utils.d.ts +3 -39
  544. package/dist/semiotic-utils.min.js +1 -2
  545. package/dist/semiotic-utils.module.min.js +1 -2
  546. package/dist/semiotic-value.min.js +1 -1
  547. package/dist/semiotic-value.module.min.js +1 -1
  548. package/dist/semiotic-xy.d.ts +12 -0
  549. package/dist/semiotic.d.ts +44 -8
  550. package/dist/semiotic.min.js +1 -1
  551. package/dist/semiotic.module.min.js +1 -1
  552. package/dist/server.min.js +1 -1
  553. package/dist/server.module.min.js +1 -1
  554. package/dist/test-utils/capturedFrameProps.d.ts +67 -0
  555. package/dist/test-utils/frameMock.d.ts +12 -9
  556. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  557. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  558. package/dist/xy.min.js +1 -1
  559. package/dist/xy.module.min.js +1 -1
  560. package/package.json +259 -88
  561. package/spec/README.md +152 -0
  562. package/spec/bindings/README.md +35 -0
  563. package/spec/bindings/vega-lite.mjs +112 -0
  564. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  565. package/spec/v0.1/audience-profile.schema.json +67 -0
  566. package/spec/v0.1/chart-capability.schema.json +186 -0
  567. package/dist/components/recipes/gofish.d.ts +0 -207
  568. package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
  569. package/dist/components/recipes/gofishLambdas.d.ts +0 -145
  570. package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
  571. package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
  572. package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
  573. package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
  574. package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
  575. package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
@@ -40,6 +40,12 @@ export interface ChartReaderGroundingOptions {
40
40
  maxLeaves?: number;
41
41
  /** Skip the navigation structure (e.g. to save tokens). Default false. */
42
42
  includeStructure?: boolean;
43
+ /**
44
+ * Include physics runtime grounding for StreamPhysicsFrame/physics HOCs.
45
+ * Default: auto-detect from physics chart props. Pass false to omit, true to
46
+ * force extraction from props, or an object to supply snapshot/evidence rows.
47
+ */
48
+ physics?: boolean | PhysicsReaderGroundingInput;
43
49
  }
44
50
  export interface ChartReaderGroundingIntent {
45
51
  /** The communicative act the chart performs. */
@@ -51,6 +57,81 @@ export interface ChartReaderGroundingIntent {
51
57
  /** Resolved per-intent scores, when the caller passed them (not from a raw descriptor). */
52
58
  intentScores?: Partial<Record<IntentId, number>>;
53
59
  }
60
+ export interface PhysicsReaderGroundingAggregate {
61
+ id?: string;
62
+ label: string;
63
+ count: number;
64
+ secondary?: number;
65
+ secondaryLabel?: string;
66
+ observed?: number;
67
+ }
68
+ export interface PhysicsReaderGroundingAggregates {
69
+ rows: PhysicsReaderGroundingAggregate[];
70
+ totalCount: number;
71
+ populatedCount: number;
72
+ leader?: PhysicsReaderGroundingAggregate;
73
+ }
74
+ export interface PhysicsReaderGroundingSimulation {
75
+ state?: string;
76
+ settled?: boolean;
77
+ elapsedSeconds?: number;
78
+ paused?: boolean;
79
+ visible?: boolean;
80
+ seed?: number;
81
+ gravity?: {
82
+ x: number;
83
+ y: number;
84
+ };
85
+ fixedDt?: number;
86
+ timeScale?: number;
87
+ maxSubsteps?: number;
88
+ liveBodies?: number;
89
+ sleepingBodies?: number;
90
+ queued?: number;
91
+ bodyLimit?: number;
92
+ eviction?: string;
93
+ }
94
+ export interface PhysicsReaderGroundingGeometry {
95
+ colliders?: number;
96
+ sensors?: number;
97
+ springs?: number;
98
+ activeSensorPairs?: number;
99
+ }
100
+ export interface PhysicsReaderGroundingSediment {
101
+ bins: number;
102
+ count: number;
103
+ total?: number;
104
+ leader?: {
105
+ id?: string;
106
+ label: string;
107
+ count: number;
108
+ total?: number;
109
+ };
110
+ }
111
+ export interface PhysicsReaderGroundingInput {
112
+ /** PhysicsPipelineSnapshot or a structurally equivalent object. */
113
+ snapshot?: unknown;
114
+ /** PhysicsSettledEvidence or a structurally equivalent object. */
115
+ evidence?: unknown;
116
+ /** PhysicsPipelineConfig or equivalent runtime config. */
117
+ config?: unknown;
118
+ /** Settled projection rows / evidence bin counts. */
119
+ projectionRows?: readonly unknown[];
120
+ /** Alias for projectionRows when callers already name the rows aggregates. */
121
+ aggregates?: readonly unknown[];
122
+ /** Physics sediment bin snapshots. */
123
+ sediment?: readonly unknown[];
124
+ /** Precomputed sediment totals, if available. */
125
+ sedimentTotals?: unknown;
126
+ }
127
+ export interface PhysicsReaderGrounding {
128
+ simulation: PhysicsReaderGroundingSimulation;
129
+ geometry?: PhysicsReaderGroundingGeometry;
130
+ aggregates?: PhysicsReaderGroundingAggregates;
131
+ sediment?: PhysicsReaderGroundingSediment;
132
+ /** Compact prose appended to `ChartReaderGrounding.text`. */
133
+ text: string;
134
+ }
54
135
  export interface ChartReaderGrounding {
55
136
  component: string;
56
137
  /** Layered L1–L3 description ({ text, levels }). */
@@ -59,6 +140,8 @@ export interface ChartReaderGrounding {
59
140
  intent?: ChartReaderGroundingIntent;
60
141
  /** Structured navigation tree (chart → axes/series → datum). Omitted when `includeStructure: false`. */
61
142
  structure?: NavTreeNode;
143
+ /** Physics-specific runtime grounding for simulation charts. */
144
+ physics?: PhysicsReaderGrounding;
62
145
  /** L1–L4 joined into one prose blob an LLM can read directly. */
63
146
  text: string;
64
147
  }
@@ -0,0 +1,8 @@
1
+ import type { ChartCapability, ChartDataProfile } from "./chartCapabilityTypes";
2
+ import type { ChartRecipe, DataRoleDefinition } from "./chartRecipes";
3
+ export declare function resolveRecipeRoleField(recipe: ChartRecipe, role: DataRoleDefinition, profile: ChartDataProfile): string | undefined;
4
+ /**
5
+ * Adapt a declarative recipe into the existing capability engine. Raw custom
6
+ * frame HOCs remain excluded; named recipes participate as distinct candidates.
7
+ */
8
+ export declare function recipeToChartCapability(recipe: ChartRecipe): ChartCapability;
@@ -0,0 +1,13 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { ChartRecipe } from "./chartRecipes";
3
+ import type { NavTreeNode } from "./navigationTree";
4
+ export interface RecipeNavigationOptions {
5
+ maxLeaves?: number;
6
+ locale?: string;
7
+ }
8
+ /**
9
+ * Build navigation from a recipe strategy, or from its declared data roles
10
+ * when no strategy exists. The fallback always produces data leaves rather
11
+ * than collapsing an unfamiliar custom chart to a root-only node.
12
+ */
13
+ export declare function buildRecipeNavigationTree(recipe: ChartRecipe, props: Datum, options?: RecipeNavigationOptions): NavTreeNode;
@@ -0,0 +1,11 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { ChartRecipe, DataRoleDefinition, IntentDefinition } from "./chartRecipes";
3
+ export declare function recipeIntentId(intent: IntentDefinition): string | undefined;
4
+ export declare function recipeConfig(props: Datum): Record<string, unknown>;
5
+ export declare function recipeData(props: Datum): Datum[];
6
+ export declare function resolveRecipeForChart(component: string, props: Datum, explicit?: ChartRecipe): ChartRecipe | undefined;
7
+ export declare function fieldForRole(role: DataRoleDefinition, config: Record<string, unknown>, data?: ReadonlyArray<Datum>): string | undefined;
8
+ export declare function roleByName(recipe: ChartRecipe, name: string): DataRoleDefinition | undefined;
9
+ export declare function firstRole(recipe: ChartRecipe, semanticTypes: DataRoleDefinition["semanticType"][]): DataRoleDefinition | undefined;
10
+ export declare function roleValue(datum: Datum, role: DataRoleDefinition | undefined, config: Record<string, unknown>, data: ReadonlyArray<Datum>): unknown;
11
+ export declare function fillRecipeTemplate(template: string, datum: Datum | undefined, recipe: ChartRecipe, config: Record<string, unknown>, data: ReadonlyArray<Datum>, extra?: Record<string, string | number>): string;
@@ -1,6 +1,7 @@
1
1
  import type { Datum } from "../charts/shared/datumTypes";
2
2
  import type { ChartDataProfile, Suggestion } from "./chartCapabilityTypes";
3
3
  import type { IntentId } from "./intents";
4
+ import type { ObservedSceneAuditResult } from "./observedSceneAudit";
4
5
  /**
5
6
  * Repair result when the chosen chart fits the data — nothing to fix.
6
7
  */
@@ -9,6 +10,8 @@ export interface RepairOkResult {
9
10
  component: string;
10
11
  /** The same data profile that was evaluated. */
11
12
  profile: ChartDataProfile;
13
+ /** Recipe-specific reception/accessibility repairs, even when data shape fits. */
14
+ repairs?: string[];
12
15
  }
13
16
  /**
14
17
  * Repair result when the chosen chart doesn't fit. Carries the diagnostic
@@ -24,6 +27,7 @@ export interface RepairAlternativeResult {
24
27
  /** Whether the caller intended one of the alternatives anyway. */
25
28
  alternatives: Suggestion[];
26
29
  profile: ChartDataProfile;
30
+ repairs?: string[];
27
31
  }
28
32
  /**
29
33
  * Repair result when no capability is registered for the asked component.
@@ -34,6 +38,7 @@ export interface RepairUnknownResult {
34
38
  /** Closest matches by family/intent — best effort. */
35
39
  alternatives: Suggestion[];
36
40
  profile: ChartDataProfile;
41
+ repairs?: string[];
37
42
  }
38
43
  export type RepairResult = RepairOkResult | RepairAlternativeResult | RepairUnknownResult;
39
44
  export interface RepairOptions {
@@ -45,6 +50,10 @@ export interface RepairOptions {
45
50
  maxAlternatives?: number;
46
51
  /** Pre-computed profile, avoids recomputation. */
47
52
  profile?: ChartDataProfile;
53
+ /** Current rendered props, used for recipe-specific repair guidance. */
54
+ props?: Datum;
55
+ /** Optional observed-scene evidence from auditObservedScene(). */
56
+ observedSceneAudit?: ObservedSceneAuditResult;
48
57
  }
49
58
  /**
50
59
  * Validate that a chart component is a sensible choice for a dataset, and
@@ -2,7 +2,7 @@ import type { Datum } from "../charts/shared/datumTypes";
2
2
  import { type ProfileDataOptions } from "./profileData";
3
3
  import type { ChartCapability, ChartDataProfile, ScaledSuggestionGroups, Suggestion } from "./chartCapabilityTypes";
4
4
  import type { IntentId } from "./intents";
5
- import { type AudienceProfile } from "./audienceProfile";
5
+ import { type AudienceProfile, type ReceptionModality } from "./audienceProfile";
6
6
  import { type DataQualityProfile, type DataScaleProfile } from "./dataScaleProfile";
7
7
  export interface SuggestChartsOptions extends ProfileDataOptions {
8
8
  /** Ranking intent(s). When omitted, suggestions are ranked by mean intent score. */
@@ -39,6 +39,12 @@ export interface SuggestChartsOptions extends ProfileDataOptions {
39
39
  * `dataScaleProfile.ts`.
40
40
  */
41
41
  quality?: DataQualityProfile;
42
+ /** Restrict recipe candidates by portability tier. Built-ins are unaffected. */
43
+ portability?: "portable" | "local";
44
+ /** Controls how strongly declared recipe reception risks affect ranking. */
45
+ riskTolerance?: "low" | "medium" | "high";
46
+ /** Explicit reception channel when no full AudienceProfile is available. */
47
+ receptionChannel?: ReceptionModality;
42
48
  }
43
49
  /**
44
50
  * Suggest charts for a dataset, ranked by intent suitability.
@@ -85,6 +91,10 @@ export declare function scoreChart(component: string, data: ReadonlyArray<Datum>
85
91
  intent?: IntentId | IntentId[];
86
92
  variantKey?: string;
87
93
  profile?: ChartDataProfile;
94
+ audience?: AudienceProfile;
95
+ portability?: "portable" | "local";
96
+ riskTolerance?: "low" | "medium" | "high";
97
+ receptionChannel?: ReceptionModality;
88
98
  }): Suggestion | {
89
99
  reason: string;
90
100
  };
@@ -1,3 +1,4 @@
1
+ import type { ChartObservation } from "../store/ObservationStore";
1
2
  import type { NavTreeNode } from "./navigationTree";
2
3
  import type { Datum } from "../charts/shared/datumTypes";
3
4
  /**
@@ -29,8 +30,12 @@ export interface UseNavigationSyncOptions {
29
30
  matchFields?: string[];
30
31
  /** Selection name shared with the chart's `selection={{ name }}`. Default "__semiotic-nav-sync". */
31
32
  selectionName?: string;
32
- /** Which canvas observations move the tree. Default ["hover", "click"]. */
33
- observe?: Array<"hover" | "click">;
33
+ /**
34
+ * Which chart observations move the tree. Defaults to pointer hover/click
35
+ * plus keyboard focus/activation so raw frames and HOC charts stay in sync
36
+ * for both pointer and keyboard readers.
37
+ */
38
+ observe?: Array<"hover" | "click" | "focus" | "activate">;
34
39
  /**
35
40
  * The chart's annotations. An annotation anchored to a datum carries that
36
41
  * datum's identifying fields (the same `matchFields` used for hover sync), so
@@ -49,6 +54,16 @@ export interface UseNavigationSyncResult {
49
54
  selection: {
50
55
  name: string;
51
56
  };
57
+ /**
58
+ * Feed a chart observation directly into the sync. This is useful for raw
59
+ * StreamFrames or custom interactions that call `onObservation` themselves
60
+ * instead of publishing through the chart HOCs. Matching pointer and
61
+ * keyboard observations move the tree; events later received from the global
62
+ * observation store are de-duplicated by object identity.
63
+ */
64
+ onObservation: (observation: ChartObservation) => void;
65
+ /** Alias of `onObservation` for composing an externally supplied handler. */
66
+ handleObservation: (observation: ChartObservation) => void;
52
67
  /** Nav-tree leaf ids that an annotation anchors to — mark these as "has a note". */
53
68
  annotatedIds: Set<string>;
54
69
  /**
@@ -0,0 +1,9 @@
1
+ import type { ReactElement } from "react";
2
+ import type { MobileStandardControlRequest, MobileStandardControlsProps } from "./MobileStandardControls";
3
+ import type { MobileInteractionProp } from "./charts/shared/types";
4
+ export declare function canReceiveChartProps(child: ReactElement): boolean;
5
+ export declare function isMobileStandardControlsProps(value: MobileStandardControlRequest | MobileStandardControlsProps | undefined): value is MobileStandardControlsProps;
6
+ export declare function standardControlsFromInteraction(mobileInteraction: MobileInteractionProp | undefined): MobileStandardControlRequest | undefined;
7
+ export declare function targetSizeFromInteraction(mobileInteraction: MobileInteractionProp | undefined): number | undefined;
8
+ export declare function hasStandardControlsRequest(request: MobileStandardControlRequest | undefined): request is MobileStandardControlRequest;
9
+ export declare function withStandardControls(source: MobileInteractionProp | undefined, controls: MobileStandardControlRequest | undefined): MobileInteractionProp | undefined;
@@ -0,0 +1,48 @@
1
+ import * as React from "react";
2
+ import type { ProjectionProp, StreamGeoFrameProps } from "../../stream/geoTypes";
3
+ import type { GeoCustomLayout } from "../../stream/geoCustomLayout";
4
+ import type { ChartRecipe } from "../../ai/chartRecipes";
5
+ import type { RealtimeFrameHandle } from "../../realtime/types";
6
+ import type { Datum } from "../shared/datumTypes";
7
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
8
+ import { type TooltipProp } from "../../Tooltip/Tooltip";
9
+ export interface GeoCustomChartProps<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> extends BaseChartProps {
10
+ /** Geographic point data supplied to `GeoLayoutContext.points`. */
11
+ points?: TDatum[];
12
+ /** Geographic areas supplied to `GeoLayoutContext.areas`. */
13
+ areas?: GeoJSON.Feature[];
14
+ /** Geographic line/flow records supplied to `GeoLayoutContext.lines`. */
15
+ lines?: TDatum[];
16
+ /** Layout function that emits GeoFrame scene nodes and optional overlays. */
17
+ layout: GeoCustomLayout<TConfig>;
18
+ /** User configuration threaded to `GeoLayoutContext.config`. */
19
+ layoutConfig?: TConfig;
20
+ /** Receives a structured diagnostic if the layout throws. */
21
+ onLayoutError?: StreamGeoFrameProps["onLayoutError"];
22
+ recipe?: ChartRecipe<TDatum, TConfig>;
23
+ recipeId?: string;
24
+ /** Projection resolved before the custom layout runs. @default "equirectangular" */
25
+ projection?: ProjectionProp;
26
+ xAccessor?: StreamGeoFrameProps<TDatum>["xAccessor"];
27
+ yAccessor?: StreamGeoFrameProps<TDatum>["yAccessor"];
28
+ lineDataAccessor?: StreamGeoFrameProps<TDatum>["lineDataAccessor"];
29
+ /** Field or function that declares the semantic category used for custom-layout color. */
30
+ colorBy?: ChartAccessor<TDatum, string>;
31
+ colorScheme?: string | string[] | Record<string, string>;
32
+ enableHover?: boolean;
33
+ tooltip?: TooltipProp;
34
+ annotations?: Datum[];
35
+ /** Additional StreamGeoFrame props excluding fields controlled by this HOC. */
36
+ frameProps?: Partial<Omit<StreamGeoFrameProps, "areas" | "points" | "lines" | "projection" | "size" | "customLayout" | "layoutConfig" | "layoutSelection" | "xAccessor" | "yAccessor" | "lineDataAccessor">>;
37
+ }
38
+ /**
39
+ * GeoCustomChart — escape hatch for bespoke geographic geometry.
40
+ *
41
+ * The frame resolves the projection and continues to own canvas rendering,
42
+ * polygon/point/line hit-testing, accessibility, tooltips, selection, and SSR.
43
+ * The supplied layout owns only the scene geometry and SVG overlays.
44
+ */
45
+ export declare const GeoCustomChart: {
46
+ <TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>>(props: GeoCustomChartProps<TDatum, TConfig> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
47
+ displayName?: string;
48
+ };
@@ -3,7 +3,8 @@ import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
3
3
  import type { RealtimeFrameHandle } from "../../realtime/types";
4
4
  import type { NetworkCustomLayout } from "../../stream/networkCustomLayout";
5
5
  import type { Datum } from "../shared/datumTypes";
6
- import type { BaseChartProps } from "../shared/types";
6
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
7
+ import type { ChartRecipe } from "../../ai/chartRecipes";
7
8
  export interface NetworkCustomChartProps<TNode extends Datum = Datum, TEdge extends Datum = Datum, TConfig extends object = Record<string, unknown>> extends BaseChartProps {
8
9
  /** Node objects with at least an `id` field. Positions are typically pre-computed by the user (e.g. from dagre / d3-flextree) and read by the layout. */
9
10
  nodes?: TNode[];
@@ -13,6 +14,10 @@ export interface NetworkCustomChartProps<TNode extends Datum = Datum, TEdge exte
13
14
  layout: NetworkCustomLayout<TConfig>;
14
15
  /** Config blob threaded through to NetworkLayoutContext.config. */
15
16
  layoutConfig?: TConfig;
17
+ /** Receives a structured diagnostic if the layout throws. */
18
+ onLayoutError?: StreamNetworkFrameProps["onLayoutError"];
19
+ recipe?: ChartRecipe<TNode, TConfig>;
20
+ recipeId?: string;
16
21
  /** Field name (or function) for the node id. @default "id" */
17
22
  nodeIDAccessor?: StreamNetworkFrameProps["nodeIDAccessor"];
18
23
  /** Field name for the edge source id. @default "source" */
@@ -20,7 +25,8 @@ export interface NetworkCustomChartProps<TNode extends Datum = Datum, TEdge exte
20
25
  /** Field name for the edge target id. @default "target" */
21
26
  targetAccessor?: StreamNetworkFrameProps["targetAccessor"];
22
27
  /** Color scheme threaded into the layout's `resolveColor` helper. */
23
- colorScheme?: string | string[];
28
+ colorBy?: ChartAccessor<TNode, string | number>;
29
+ colorScheme?: string | string[] | Record<string, string>;
24
30
  enableHover?: boolean;
25
31
  /**
26
32
  * Annotations rendered over the chart. A custom network layout's marks are
@@ -3,7 +3,8 @@ import type { StreamOrdinalFrameProps } from "../../stream/ordinalTypes";
3
3
  import type { RealtimeFrameHandle } from "../../realtime/types";
4
4
  import type { OrdinalCustomLayout } from "../../stream/ordinalCustomLayout";
5
5
  import type { Datum } from "../shared/datumTypes";
6
- import type { BaseChartProps } from "../shared/types";
6
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
7
+ import type { ChartRecipe } from "../../ai/chartRecipes";
7
8
  export interface OrdinalCustomChartProps<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> extends BaseChartProps {
8
9
  /** Data passed through to OrdinalLayoutContext.data. */
9
10
  data?: TDatum[];
@@ -11,6 +12,10 @@ export interface OrdinalCustomChartProps<TDatum extends Datum = Datum, TConfig e
11
12
  layout: OrdinalCustomLayout<TConfig>;
12
13
  /** Config blob threaded through to OrdinalLayoutContext.config. */
13
14
  layoutConfig?: TConfig;
15
+ /** Receives a structured diagnostic if the layout throws. */
16
+ onLayoutError?: StreamOrdinalFrameProps["onLayoutError"];
17
+ recipe?: ChartRecipe<TDatum, TConfig>;
18
+ recipeId?: string;
14
19
  /** Field name (or function) for the category. The frame builds the o-scale from these. */
15
20
  categoryAccessor?: StreamOrdinalFrameProps["categoryAccessor"];
16
21
  /** Field name (or function) for the value. The frame builds the r-scale from these. */
@@ -25,7 +30,8 @@ export interface OrdinalCustomChartProps<TDatum extends Datum = Datum, TConfig e
25
30
  /** Vertical / horizontal / radial. Default vertical. */
26
31
  projection?: StreamOrdinalFrameProps["projection"];
27
32
  /** Color scheme threaded into the layout's `resolveColor` helper. */
28
- colorScheme?: string | string[];
33
+ colorBy?: ChartAccessor<TDatum, string>;
34
+ colorScheme?: string | string[] | Record<string, string>;
29
35
  enableHover?: boolean;
30
36
  showAxes?: boolean;
31
37
  showGrid?: boolean;
@@ -3,8 +3,9 @@ import type { StreamXYFrameProps } from "../../stream/types";
3
3
  import type { RealtimeFrameHandle } from "../../realtime/types";
4
4
  import type { CustomLayout } from "../../stream/customLayout";
5
5
  import type { Datum } from "../shared/datumTypes";
6
- import type { BaseChartProps, AxisConfig } from "../shared/types";
6
+ import type { BaseChartProps, AxisConfig, ChartAccessor } from "../shared/types";
7
7
  import type { TooltipProp } from "../../Tooltip/Tooltip";
8
+ import type { ChartRecipe } from "../../ai/chartRecipes";
8
9
  export interface XYCustomChartProps<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> extends BaseChartProps, AxisConfig {
9
10
  /** Data passed through to LayoutContext.data. */
10
11
  data?: TDatum[];
@@ -12,6 +13,12 @@ export interface XYCustomChartProps<TDatum extends Datum = Datum, TConfig extend
12
13
  layout: CustomLayout<TConfig>;
13
14
  /** Config blob threaded through to LayoutContext.config. */
14
15
  layoutConfig?: TConfig;
16
+ /** Receives a structured diagnostic if the layout throws. */
17
+ onLayoutError?: StreamXYFrameProps["onLayoutError"];
18
+ /** Optional meaning/intelligence contract for description, navigation, and audit surfaces. */
19
+ recipe?: ChartRecipe<TDatum, TConfig>;
20
+ /** Registered recipe id; portable alternative to embedding the manifest object. */
21
+ recipeId?: string;
15
22
  /**
16
23
  * Optional fixed extents — flow into scale construction *before* the layout
17
24
  * runs, so scales reflect the layout's intended domain. Layouts that don't
@@ -25,7 +32,9 @@ export interface XYCustomChartProps<TDatum extends Datum = Datum, TConfig extend
25
32
  enableHover?: boolean;
26
33
  showLegend?: boolean;
27
34
  annotations?: Datum[];
28
- colorScheme?: string | string[];
35
+ /** Field or function that declares the semantic category used for custom-layout color. */
36
+ colorBy?: ChartAccessor<TDatum, string>;
37
+ colorScheme?: string | string[] | Record<string, string>;
29
38
  tooltip?: TooltipProp;
30
39
  /** Additional StreamXYFrame props for advanced customization, excluding XYCustomChart-controlled fields. */
31
40
  frameProps?: Partial<Omit<StreamXYFrameProps, "chartType" | "data" | "size" | "customLayout" | "layoutConfig">>;
@@ -4,6 +4,7 @@ import type { StreamGeoFrameProps, ProjectionProp } from "../../stream/geoTypes"
4
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
5
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
6
6
  import type { LegendInteractionMode } from "../shared/hooks";
7
+ import { type StyleRule } from "../shared/styleRules";
7
8
  import { type AreasProp } from "../../geo/useReferenceAreas";
8
9
  /**
9
10
  * ChoroplethMap component props
@@ -33,6 +34,17 @@ export interface ChoroplethMapProps<TDatum extends Datum = Datum> extends BaseCh
33
34
  valueAccessor: ChartAccessor<TDatum, number>;
34
35
  /** Sequential color scheme @default "blues" */
35
36
  colorScheme?: string;
37
+ /**
38
+ * Declarative, threshold-aware feature styling. Ordered `{ when, style }`
39
+ * rules; last applicable rule wins per property. `when` accepts a predicate
40
+ * `(feature, ctx) => boolean` (`ctx.value` is the feature's `valueAccessor`
41
+ * value; rules see the feature with its `properties` flattened, so
42
+ * `{ field: "iso", eq: "USA" }` works), a declarative threshold
43
+ * (`{ gt, gte, within, in, … }`), or `true`. A rule's `fill` may be a color
44
+ * or a HatchFill (hatch flags a feature — e.g. "no data" / "under review").
45
+ * Layers over the sequential-scale base fill.
46
+ */
47
+ styleRules?: StyleRule[];
36
48
  /** Geographic projection @default "equalEarth" */
37
49
  projection?: ProjectionProp;
38
50
  /** Show graticule grid lines */
@@ -43,8 +55,13 @@ export interface ChoroplethMapProps<TDatum extends Datum = Datum> extends BaseCh
43
55
  showLegend?: boolean;
44
56
  /** Legend interaction mode */
45
57
  legendInteraction?: LegendInteractionMode;
46
- /** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
47
- fitPadding?: number;
58
+ /**
59
+ * Finite projection-fit fraction in `[0, 0.5)`. `0.1` = 10% inset;
60
+ * nullish values use 0 and invalid values throw. An explicit
61
+ * `frameProps.projectionExtent` remains authoritative.
62
+ * @default 0
63
+ */
64
+ fitPadding?: number | null;
48
65
  /** Enable zoom/pan. Defaults to true when tileURL is set, false otherwise. */
49
66
  zoomable?: boolean;
50
67
  /** [minZoom, maxZoom] @default [1, 8] */
@@ -4,6 +4,7 @@ import type { StreamGeoFrameProps, ProjectionProp } from "../../stream/geoTypes"
4
4
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
5
5
  import { type TooltipProp } from "../../Tooltip/Tooltip";
6
6
  import type { LegendPosition } from "../shared/hooks";
7
+ import { type StyleRule } from "../shared/styleRules";
7
8
  import type { RealtimeFrameHandle } from "../../realtime/types";
8
9
  export interface DistanceCartogramProps<TDatum extends Datum = Datum> extends BaseChartProps {
9
10
  /** Point data with geographic coordinates */
@@ -36,8 +37,14 @@ export interface DistanceCartogramProps<TDatum extends Datum = Datum> extends Ba
36
37
  transition?: number;
37
38
  /** Field to determine point color */
38
39
  colorBy?: ChartAccessor<TDatum, string>;
40
+ /**
41
+ * Declarative, threshold-aware point styling. Ordered `{ when, style }`
42
+ * rules; last applicable rule wins. `ctx` = `{ value, category }`
43
+ * (category = `colorBy`). A rule `fill` may be a color or a HatchFill.
44
+ */
45
+ styleRules?: StyleRule[];
39
46
  /** Color scheme @default "category10" */
40
- colorScheme?: string | string[];
47
+ colorScheme?: string | string[] | Record<string, string>;
41
48
  /** Point radius @default 5 */
42
49
  pointRadius?: number;
43
50
  /** Tooltip */
@@ -46,8 +53,13 @@ export interface DistanceCartogramProps<TDatum extends Datum = Datum> extends Ba
46
53
  showLegend?: boolean;
47
54
  /** Legend position */
48
55
  legendPosition?: LegendPosition;
49
- /** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
50
- fitPadding?: number;
56
+ /**
57
+ * Finite projection-fit fraction in `[0, 0.5)`. `0.1` = 10% inset;
58
+ * nullish values use 0 and invalid values throw. An explicit
59
+ * `frameProps.projectionExtent` remains authoritative.
60
+ * @default 0
61
+ */
62
+ fitPadding?: number | null;
51
63
  /** Enable zoom/pan. Defaults to true when tileURL is set, false otherwise. */
52
64
  zoomable?: boolean;
53
65
  /** [minZoom, maxZoom] @default [1, 8] */
@@ -10,12 +10,11 @@ import type { GeoParticleStyle } from "../../stream/GeoParticlePool";
10
10
  import { type AreasProp } from "../../geo/useReferenceAreas";
11
11
  export interface FlowMapProps<TDatum extends Datum = Datum> extends BaseChartProps {
12
12
  /** Flow edges with source/target/value */
13
- flows?: {
13
+ flows?: Array<Datum & {
14
14
  source: string;
15
15
  target: string;
16
16
  value?: number;
17
- [key: string]: any;
18
- }[];
17
+ }>;
19
18
  /** Geographic nodes with coordinates */
20
19
  nodes?: TDatum[];
21
20
  /** Node ID accessor @default "id" */
@@ -39,7 +38,7 @@ export interface FlowMapProps<TDatum extends Datum = Datum> extends BaseChartPro
39
38
  /** Background area style */
40
39
  areaStyle?: Style;
41
40
  /** Edge color accessor */
42
- edgeColorBy?: ChartAccessor<any, string>;
41
+ edgeColorBy?: ChartAccessor<Datum, string>;
43
42
  /** Edge opacity @default 0.6 */
44
43
  edgeOpacity?: number;
45
44
  /** Min/max pixel width for proportional edge width @default [1, 8] */
@@ -47,7 +46,7 @@ export interface FlowMapProps<TDatum extends Datum = Datum> extends BaseChartPro
47
46
  /** Line cap style for flow edges @default "round" */
48
47
  edgeLinecap?: "butt" | "round" | "square";
49
48
  /** Color scheme for edges @default "category10" */
50
- colorScheme?: string | string[];
49
+ colorScheme?: string | string[] | Record<string, string>;
51
50
  /** Show animated particles along flow lines */
52
51
  showParticles?: boolean;
53
52
  /** Particle appearance and behavior */
@@ -60,8 +59,13 @@ export interface FlowMapProps<TDatum extends Datum = Datum> extends BaseChartPro
60
59
  legendInteraction?: LegendInteractionMode;
61
60
  /** Legend position */
62
61
  legendPosition?: LegendPosition;
63
- /** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
64
- fitPadding?: number;
62
+ /**
63
+ * Finite projection-fit fraction in `[0, 0.5)`. `0.1` = 10% inset;
64
+ * nullish values use 0 and invalid values throw. An explicit
65
+ * `frameProps.projectionExtent` remains authoritative.
66
+ * @default 0
67
+ */
68
+ fitPadding?: number | null;
65
69
  /** Enable zoom/pan. Defaults to true when tileURL is set, false otherwise. */
66
70
  zoomable?: boolean;
67
71
  /** [minZoom, maxZoom] @default [1, 8] */
@@ -5,6 +5,7 @@ import type { RealtimeFrameHandle } from "../../realtime/types";
5
5
  import type { BaseChartProps, ChartAccessor } from "../shared/types";
6
6
  import { type TooltipProp } from "../../Tooltip/Tooltip";
7
7
  import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
8
+ import { type StyleRule } from "../shared/styleRules";
8
9
  import type { Style } from "../../stream/types";
9
10
  import { type AreasProp } from "../../geo/useReferenceAreas";
10
11
  export interface ProportionalSymbolMapProps<TDatum extends Datum = Datum> extends BaseChartProps {
@@ -20,8 +21,14 @@ export interface ProportionalSymbolMapProps<TDatum extends Datum = Datum> extend
20
21
  sizeRange?: [number, number];
21
22
  /** Field to determine point color */
22
23
  colorBy?: ChartAccessor<TDatum, string>;
24
+ /**
25
+ * Declarative, threshold-aware symbol styling. Ordered `{ when, style }`
26
+ * rules; last applicable rule wins. `ctx` = `{ value, category }` (value =
27
+ * `sizeBy`, category = `colorBy`). A rule `fill` may be a color or HatchFill.
28
+ */
29
+ styleRules?: StyleRule[];
23
30
  /** Color scheme @default "category10" */
24
- colorScheme?: string | string[];
31
+ colorScheme?: string | string[] | Record<string, string>;
25
32
  /** Geographic projection @default "equalEarth" */
26
33
  projection?: ProjectionProp;
27
34
  /** Show graticule grid lines */
@@ -38,8 +45,13 @@ export interface ProportionalSymbolMapProps<TDatum extends Datum = Datum> extend
38
45
  legendInteraction?: LegendInteractionMode;
39
46
  /** Legend position */
40
47
  legendPosition?: LegendPosition;
41
- /** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
42
- fitPadding?: number;
48
+ /**
49
+ * Finite projection-fit fraction in `[0, 0.5)`. `0.1` = 10% inset;
50
+ * nullish values use 0 and invalid values throw. An explicit
51
+ * `frameProps.projectionExtent` remains authoritative.
52
+ * @default 0
53
+ */
54
+ fitPadding?: number | null;
43
55
  /** Enable zoom/pan. Defaults to true when tileURL is set, false otherwise. */
44
56
  zoomable?: boolean;
45
57
  /** [minZoom, maxZoom] @default [1, 8] */
@@ -6,3 +6,5 @@ export { FlowMap } from "./FlowMap";
6
6
  export type { FlowMapProps } from "./FlowMap";
7
7
  export { DistanceCartogram } from "./DistanceCartogram";
8
8
  export type { DistanceCartogramProps } from "./DistanceCartogram";
9
+ export { GeoCustomChart } from "../custom/GeoCustomChart";
10
+ export type { GeoCustomChartProps } from "../custom/GeoCustomChart";
@@ -96,7 +96,35 @@ export { RealtimeWaterfallChart } from "./realtime/RealtimeWaterfallChart";
96
96
  export type { RealtimeWaterfallChartProps } from "./realtime/RealtimeWaterfallChart";
97
97
  export { RealtimeHeatmap } from "./realtime/RealtimeHeatmap";
98
98
  export type { RealtimeHeatmapProps } from "./realtime/RealtimeHeatmap";
99
- export type { BaseChartProps, AxisConfig, Accessor, ChartAccessor, ChartMode } from "./shared/types";
99
+ export { GaltonBoardChart } from "./physics/GaltonBoardChart";
100
+ export type { GaltonBoardChartProps, GaltonBoardReferenceLine } from "./physics/GaltonBoardChart";
101
+ export { EventDropChart } from "./physics/EventDropChart";
102
+ export type { EventDropChartProps } from "./physics/EventDropChart";
103
+ export { PhysicsPileChart } from "./physics/PhysicsPileChart";
104
+ export type { PhysicsPileChartProps } from "./physics/PhysicsPileChart";
105
+ export { CollisionSwarmChart } from "./physics/CollisionSwarmChart";
106
+ export type { CollisionSwarmChartProps } from "./physics/CollisionSwarmChart";
107
+ export { GauntletChart, GuantletChart, planGauntletPropertyWork, replaceGauntletNegative } from "./physics/GauntletChart";
108
+ export type { GauntletChartProps, GauntletEffect, GauntletEvent, GauntletEventContext, GauntletEventLogItem, GauntletGate, GauntletLayout, GauntletNegativeReplacementOptions, GauntletPopSpec, GauntletProjectPlacement, GauntletProjectState, GauntletPropertyForceContext, GauntletPropertyDefinition, GauntletPropertyWorkPlan, GauntletPropertyWorkPlanOptions } from "./physics/GauntletChart";
109
+ export { physicsProcessBoundaryColliders, physicsProcessGroupSemanticItems, physicsProcessRegionSemanticItem, physicsProcessStageSemanticItems } from "./physics/physicsProcessPrimitives";
110
+ export type { PhysicsProcessBodyGroup, PhysicsProcessBoundaryOptions, PhysicsProcessStage } from "./physics/physicsProcessPrimitives";
111
+ export { absorbRegion, bodyGroupSpec, capacitatedRegion, chargeGateRegion, forceFieldRegion, membraneRegion, portalRegion, pressureFieldRegion, processLaneWalls, processStageLayout, processStageRegions, routeSurfaceRegion, stageTargetInVolume } from "../recipes/processPhysics";
112
+ export { aggregateRegionCounts, groupCompletionRows, regionCountsToProjectionRows } from "../recipes/processAggregates";
113
+ export { processVolumePolygons } from "../recipes/processVolumeGeometry";
114
+ export { createProcessJourneyLedger, processJourneyRows, updateProcessJourney } from "../recipes/processJourney";
115
+ export type { BodyGroupSpec, BodyGroupSpecOptions, ProcessMembraneDef, ProcessRegionBaseOptions, ProcessStageRegionOptions, ProcessStageDef, ProcessVolumeLayout, ProcessVolumeLayoutOptions, ProcessVolumeMembraneBand, ProcessVolumeShape, ProcessVolumeStageBand } from "../recipes/processPhysics";
116
+ export type { RegionCountBucket, RegionCountMap } from "../recipes/processAggregates";
117
+ export type { ProcessVolumePoint, ProcessVolumePolygon, ProcessVolumePolygonRole } from "../recipes/processVolumeGeometry";
118
+ export type { ProcessJourneyEntityState, ProcessJourneyLedger, ProcessJourneyRow, ProcessJourneyStage, ProcessJourneyUpdateOptions } from "../recipes/processJourney";
119
+ export { PhysicalFlowChart } from "./physics/PhysicalFlowChart";
120
+ export type { PhysicalFlowChartProps } from "./physics/PhysicalFlowChart";
121
+ export { ProcessFlowChart } from "./physics/ProcessFlowChart";
122
+ export type { ProcessFlowChartProps, ProcessFlowProjectionMetadata, ProcessFlowStageDef } from "./physics/ProcessFlowChart";
123
+ export { PhysicsCustomChart } from "./physics/PhysicsCustomChart";
124
+ export type { PhysicsCustomChartProps, PhysicsCustomLayout, PhysicsCustomLayoutContext, PhysicsCustomLayoutResult, PhysicsCustomSpawnDatumResult } from "./physics/PhysicsCustomChart";
125
+ export type { BaseChartProps, AxisConfig, Accessor, ChartAccessor, ChartMode, MobileClearSelectionBehavior, MobileSnapBehavior, MobileInteractionConfig, MobileInteractionProp, MobileStandardControlsMode, ResolvedMobileInteractionConfig, } from "./shared/types";
126
+ export { responsiveRuleMatches, resolveResponsiveRules } from "./shared/responsiveRules";
127
+ export type { ResponsiveOrientation, ResponsiveRuleCondition, ResponsiveRuleContext, ResponsiveRule, ResponsiveRuleMatch, ResponsiveRuleResult, } from "./shared/responsiveRules";
100
128
  export { useColorScale, useSortedData, DEFAULT_COLOR } from "./shared/hooks";
101
129
  export { COLOR_SCHEMES, DEFAULT_COLORS, getColor, createColorScale, getSize } from "./shared/colorUtils";
102
130
  export { formatNumber, formatDate, formatAxis, createTooltip, formatLargeNumber, truncateText, adaptiveTimeTicks } from "./shared/formatUtils";
@@ -105,3 +133,9 @@ export { Tooltip, MultiLineTooltip, normalizeTooltip } from "../Tooltip/Tooltip"
105
133
  export type { TooltipProp, TooltipConfig, TooltipField, MultiLineTooltipConfig } from "../Tooltip/Tooltip";
106
134
  export { createHatchPattern } from "./shared/hatchPattern";
107
135
  export type { HatchPatternOptions } from "./shared/hatchPattern";
136
+ export { isHatchFill, hatchPatternDef, resolveSvgFill, hatchFillId } from "./shared/hatchFill";
137
+ export type { HatchFill } from "./shared/hatchFill";
138
+ export { resolveStyleRules, matchesThreshold, ruleMatches, makeRuleValueResolver, makeXYRuleContext, makeNodeRuleContext, composeStyleRules, makeStyleRuleStyleFn, } from "./shared/styleRules";
139
+ export type { StyleRule, StyleRuleStyle, StyleRuleThreshold, StyleRuleContext, StyleRulePredicate, } from "./shared/styleRules";
140
+ export { AnnotationLabel, estimateLabelWidth } from "./shared/AnnotationLabel";
141
+ export type { AnnotationLabelBackground, AnnotationLabelBackgroundConfig, AnnotationLabelProps } from "./shared/AnnotationLabel";