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
@@ -2,10 +2,12 @@ import type { ReactNode } from "react";
2
2
  import type { OnObservationCallback } from "../store/ObservationStore";
3
3
  import type { HoverData, AnnotationContext } from "../realtime/types";
4
4
  import type { LegendGroup, LegendLayout } from "../types/legendTypes";
5
- import type { Style, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, SceneDatum } from "./types";
5
+ import type { Style, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, SceneDatum, SceneAccessibilityMetadata } from "./types";
6
6
  import type { AnimateProp } from "./pipelineTransitionUtils";
7
7
  import type { Datum } from "../charts/shared/datumTypes";
8
8
  import type { AutoPlaceAnnotations } from "../recipes/annotationLayout";
9
+ import type { NetworkSymbolName } from "./symbolPath";
10
+ import type { GlyphDef } from "./glyphDef";
9
11
  export interface TensionConfig {
10
12
  weightChange: number;
11
13
  newEdge: number;
@@ -51,6 +53,8 @@ export interface RealtimeNode {
51
53
  __hierarchyNode?: unknown;
52
54
  /** @internal Circle-pack layout radius. Set by `hierarchyLayoutPlugin`. */
53
55
  __radius?: number;
56
+ /** @internal Pre-resolved force-layout radius used by worker snapshots. */
57
+ __forceRadius?: number;
54
58
  /**
55
59
  * @internal Chord-layout extension. Carries the start/end angles
56
60
  * for the arc segment representing this node, computed by
@@ -181,7 +185,7 @@ export interface RealtimeNetworkFrameProps {
181
185
  showParticles?: boolean;
182
186
  particleStyle?: ParticleStyle;
183
187
  colorBy?: string | ((d: RealtimeNode) => string);
184
- colorScheme?: string | string[];
188
+ colorScheme?: string | string[] | Record<string, string>;
185
189
  edgeColorBy?: "source" | "target" | ((d: RealtimeEdge) => string);
186
190
  edgeOpacity?: number;
187
191
  nodeLabel?: string | ((d: RealtimeNode) => string);
@@ -204,6 +208,8 @@ export interface NetworkCircleNode {
204
208
  r: number;
205
209
  style: Style;
206
210
  datum: SceneDatum;
211
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
212
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
207
213
  id?: string;
208
214
  label?: string;
209
215
  depth?: number;
@@ -220,6 +226,8 @@ export interface NetworkRectNode {
220
226
  h: number;
221
227
  style: Style;
222
228
  datum: SceneDatum;
229
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
230
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
223
231
  id?: string;
224
232
  label?: string;
225
233
  depth?: number;
@@ -241,12 +249,82 @@ export interface NetworkArcNode {
241
249
  endAngle: number;
242
250
  style: Style;
243
251
  datum: SceneDatum;
252
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
253
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
244
254
  id?: string;
245
255
  label?: string;
246
256
  _pulseIntensity?: number;
247
257
  _pulseColor?: string;
248
258
  _pulseGlowRadius?: number;
249
259
  }
260
+ /**
261
+ * Symbol node — a glyph rendered from a `d3-shape` symbol path (or a custom
262
+ * path). The per-datum shape channel: recipes that encode a categorical field
263
+ * as marker shape (e.g. `packedClusterMatrix`) emit these. Hit-tests as a
264
+ * circle of the symbol's effective radius; renders on canvas and in SVG/SSR.
265
+ */
266
+ export interface NetworkSymbolNode {
267
+ type: "symbol";
268
+ cx: number;
269
+ cy: number;
270
+ /** d3-symbol area in px² — drives the glyph's drawn size. */
271
+ size: number;
272
+ /** Named shape. Ignored when `path` is set. @default "circle" */
273
+ symbolType?: NetworkSymbolName;
274
+ /** Pre-built SVG path string, origin-centered — overrides `symbolType`. */
275
+ path?: string;
276
+ /** Rotation in radians about (cx, cy). */
277
+ rotation?: number;
278
+ style: Style;
279
+ datum: SceneDatum;
280
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
281
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
282
+ id?: string;
283
+ label?: string;
284
+ depth?: number;
285
+ _pulseIntensity?: number;
286
+ _pulseColor?: string;
287
+ _pulseGlowRadius?: number;
288
+ }
289
+ /**
290
+ * Glyph node — the composite-pictogram channel for network scenes: a
291
+ * multi-part `GlyphDef` stamped at (cx, cy) with per-node `color`/`accent`
292
+ * paints and optional partial fill. The network sibling of the XY/ordinal/geo
293
+ * `GlyphSceneNode`.
294
+ */
295
+ export interface NetworkGlyphNode {
296
+ type: "glyph";
297
+ cx: number;
298
+ cy: number;
299
+ /** Rendered height in px — width follows the definition's viewBox aspect. */
300
+ size: number;
301
+ /** The multi-part pictogram definition to stamp. */
302
+ glyph: GlyphDef;
303
+ /** Primary paint for parts declaring `"color"`. Falls back to `style.fill`. */
304
+ color?: string;
305
+ /** Accent paint for parts declaring `"accent"`. */
306
+ accent?: string;
307
+ /** Partial fill 0–1. @default 1 */
308
+ fraction?: number;
309
+ /** Where the partial fill begins, 0–1. @default 0 */
310
+ fractionStart?: number;
311
+ /** Partial-fill axis. @default "horizontal" */
312
+ fractionDirection?: "horizontal" | "vertical";
313
+ /** Ghost paint drawn at full extent beneath a partial fill. */
314
+ ghostColor?: string;
315
+ /** Rotation in radians about (cx, cy). */
316
+ rotation?: number;
317
+ style: Style;
318
+ datum: SceneDatum;
319
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
320
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
321
+ id?: string;
322
+ label?: string;
323
+ depth?: number;
324
+ _pulseIntensity?: number;
325
+ _pulseColor?: string;
326
+ _pulseGlowRadius?: number;
327
+ }
250
328
  /** Line edge — used by force */
251
329
  export interface NetworkLineEdge {
252
330
  type: "line";
@@ -305,7 +383,7 @@ export interface NetworkCurvedEdge {
305
383
  _cachedPath2D?: Path2D;
306
384
  _cachedPath2DSource?: string;
307
385
  }
308
- export type NetworkSceneNode = NetworkCircleNode | NetworkRectNode | NetworkArcNode;
386
+ export type NetworkSceneNode = NetworkCircleNode | NetworkRectNode | NetworkArcNode | NetworkSymbolNode | NetworkGlyphNode;
309
387
  export type NetworkSceneEdge = NetworkLineEdge | NetworkBezierEdge | NetworkRibbonEdge | NetworkCurvedEdge;
310
388
  /** Label data for the SVG overlay */
311
389
  export interface NetworkLabel {
@@ -382,6 +460,8 @@ export interface NetworkPipelineConfig {
382
460
  edgeSort?: (a: unknown, b: unknown) => number;
383
461
  iterations?: number;
384
462
  forceStrength?: number;
463
+ /** @internal Skip simulation after worker-computed positions are applied. */
464
+ __skipForceSimulation?: boolean;
385
465
  padAngle?: number;
386
466
  groupWidth?: number;
387
467
  sortGroups?: (a: unknown, b: unknown) => number;
@@ -398,7 +478,7 @@ export interface NetworkPipelineConfig {
398
478
  showLabels?: boolean;
399
479
  labelMode?: "leaf" | "parent" | "all";
400
480
  colorBy?: string | ((d: Datum) => string | number);
401
- colorScheme?: string | string[];
481
+ colorScheme?: string | string[] | Record<string, string>;
402
482
  /** Theme categorical palette — used as fallback when colorScheme is not an explicit array */
403
483
  themeCategorical?: string[];
404
484
  /** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
@@ -451,6 +531,8 @@ export interface NetworkPipelineConfig {
451
531
  /** When provided, replaces both layout dispatch and scene building.
452
532
  * Receives raw nodes/edges and returns positioned scene primitives. */
453
533
  customNetworkLayout?: import("./networkCustomLayout").NetworkCustomLayout;
534
+ /** Called when `customNetworkLayout` throws. */
535
+ onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
454
536
  /** User-supplied config blob threaded through to NetworkLayoutContext.config. */
455
537
  layoutConfig?: object;
456
538
  /** Resolved shared-selection predicate, surfaced to a custom layout as
@@ -480,6 +562,12 @@ export interface StreamNetworkFrameProps<T = Datum> {
480
562
  nodeWidth?: number;
481
563
  iterations?: number;
482
564
  forceStrength?: number;
565
+ /** Execute force layout synchronously, in a worker, or choose by graph cost. */
566
+ layoutExecution?: "auto" | "worker" | "sync";
567
+ /** Content displayed while an internally-managed worker layout is pending. */
568
+ layoutLoadingContent?: ReactNode | false;
569
+ /** Receives internally-managed force-layout lifecycle changes. */
570
+ onLayoutStateChange?: (state: "pending" | "ready" | "error") => void;
483
571
  padAngle?: number;
484
572
  groupWidth?: number;
485
573
  sortGroups?: (a: unknown, b: unknown) => number;
@@ -494,7 +582,7 @@ export interface StreamNetworkFrameProps<T = Datum> {
494
582
  nodeStyle?: (d: Datum) => Datum;
495
583
  edgeStyle?: (d: Datum) => Datum;
496
584
  colorBy?: string | ((d: Datum) => string | number);
497
- colorScheme?: string | string[];
585
+ colorScheme?: string | string[] | Record<string, string>;
498
586
  edgeColorBy?: "source" | "target" | "gradient" | ((d: Datum) => string);
499
587
  edgeOpacity?: number;
500
588
  colorByDepth?: boolean;
@@ -569,6 +657,8 @@ export interface StreamNetworkFrameProps<T = Datum> {
569
657
  * Receives raw nodes/edges + dimensions/theme, returns positioned scene
570
658
  * primitives. See `semiotic/recipes` for reference layouts (flextree, dagre). */
571
659
  customNetworkLayout?: import("./networkCustomLayout").NetworkCustomLayout;
660
+ /** Called when `customNetworkLayout` throws. */
661
+ onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
572
662
  /** User-supplied config blob threaded through to NetworkLayoutContext.config. */
573
663
  layoutConfig?: object;
574
664
  /** Resolved shared-selection predicate, surfaced to a custom layout as
@@ -600,5 +690,14 @@ export interface StreamNetworkFrameHandle {
600
690
  };
601
691
  relayout(): void;
602
692
  getTension(): number;
693
+ /** The most recent custom layout result (sceneNodes/sceneEdges/overlays as
694
+ * returned by `customNetworkLayout`) — host readback so pages that need the
695
+ * computed placement don't re-run the layout. Null before the first layout
696
+ * or when no custom layout is configured. A failed retry retains the prior
697
+ * good result; inspect `getLayoutFailure()` to distinguish recovery. */
698
+ getCustomLayout(): import("./networkCustomLayout").NetworkLayoutResult | null;
699
+ /** The latest custom-layout failure, if any. Cleared by a successful layout,
700
+ * removing the custom layout, or `clear()`. */
701
+ getLayoutFailure(): import("./customLayoutFailure").CustomLayoutFailureDiagnostic | null;
603
702
  }
604
703
  export type NetworkRendererFn = (ctx: CanvasRenderingContext2D, nodes: NetworkSceneNode[], edges: NetworkSceneEdge[], size: [number, number]) => void;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Chart-type → canvas renderer dispatch for StreamOrdinalFrame.
3
+ * Connectors are always included when the chart type builds them into the scene.
4
+ */
5
+ import type { OrdinalChartType } from "./ordinalTypes";
6
+ export type OrdinalAnyRendererFn = (ctx: CanvasRenderingContext2D, nodes: any[], scales: any, layout: any) => void;
7
+ export declare const ORDINAL_CANVAS_RENDERERS: Record<OrdinalChartType, OrdinalAnyRendererFn[]>;
@@ -3,7 +3,8 @@ import type { ScaleBand, ScaleLinear } from "d3-scale";
3
3
  import type { Datum } from "../charts/shared/datumTypes";
4
4
  import type { MarginType } from "../types/marginType";
5
5
  import type { OrdinalSceneNode, OrdinalScales } from "./ordinalTypes";
6
- import type { ThemeSemanticColors } from "./types";
6
+ import type { Style, ThemeSemanticColors } from "./types";
7
+ import type { CustomLayoutSelection } from "./customLayoutSelection";
7
8
  /**
8
9
  * customLayout escape hatch for `StreamOrdinalFrame`.
9
10
  *
@@ -75,10 +76,25 @@ export interface OrdinalLayoutContext<C extends object = Record<string, unknown>
75
76
  resolveColor: (key: string) => string;
76
77
  /** User-supplied config blob threaded through `layoutConfig`. */
77
78
  config: C;
79
+ /**
80
+ * Shared-selection projection (from `selection` / `linkedHover`). `null` when
81
+ * unwired. For selection-driven styling without a relayout, use
82
+ * {@link OrdinalLayoutResult.restyle} (canvas) / `useCustomLayoutSelection`
83
+ * (overlays) rather than recomputing geometry here.
84
+ */
85
+ selection?: CustomLayoutSelection | null;
78
86
  }
79
87
  export interface OrdinalLayoutResult {
80
88
  /** Scene nodes to render. Get hit testing, transitions, decay, SSR for free. */
81
89
  nodes?: OrdinalSceneNode[];
82
90
  /** SVG overlays composited above the canvas (labels, axis lines, annotations). */
83
91
  overlays?: ReactNode;
92
+ /**
93
+ * **Per-frame restyle of canvas marks, without re-positioning.** When present,
94
+ * a selection/hover change re-applies styles to the existing scene nodes +
95
+ * repaints — no relayout, no quadtree rebuild. Return a style patch merged onto
96
+ * the node's *base* style. Providing it opts into the cheap selection path.
97
+ * Pairs with `useCustomLayoutSelection` for the `overlays`.
98
+ */
99
+ restyle?: (node: OrdinalSceneNode, selection: CustomLayoutSelection | null) => Partial<Style> | void;
84
100
  }
@@ -0,0 +1,5 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ type CategoryAccessor = string | ((datum: Datum) => string) | undefined;
3
+ /** Build the source-data category index used by aggregate pulse marks. */
4
+ export declare function buildOrdinalCategoryIndex(data: readonly Datum[], categoryAccessor: CategoryAccessor): Map<string, number[]>;
5
+ export {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Default ordinal hover tooltip for StreamOrdinalFrame.
3
+ * Uses shared `defaultTooltipStyle` for theme CSS-var consistency.
4
+ */
5
+ import * as React from "react";
6
+ import type { HoverData } from "./ordinalTypes";
7
+ declare function DefaultOrdinalTooltip({ hover }: {
8
+ hover: HoverData;
9
+ }): React.JSX.Element | null;
10
+ export { DefaultOrdinalTooltip };
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Pure ordinal domain + column projection helpers for OrdinalPipelineStore.
3
+ */
4
+ import type { ScaleBand } from "d3-scale";
5
+ import type { Datum } from "../charts/shared/datumTypes";
6
+ import type { OrdinalColumn, OrdinalLayout, OrdinalPipelineConfig } from "./ordinalTypes";
7
+ export interface OrdinalValueDomainInput {
8
+ data: Datum[];
9
+ chartType: OrdinalPipelineConfig["chartType"];
10
+ projection?: OrdinalPipelineConfig["projection"];
11
+ normalize?: boolean;
12
+ rExtent?: OrdinalPipelineConfig["rExtent"];
13
+ extentPadding?: number;
14
+ baselinePadding?: boolean;
15
+ axisExtent?: OrdinalPipelineConfig["axisExtent"];
16
+ getO: (d: Datum) => string;
17
+ getR: (d: Datum) => number;
18
+ getStack?: (d: Datum) => string;
19
+ /** IncrementalExtent-style [min, max]; Infinity/-Infinity when empty. */
20
+ rawRExtent: [number, number];
21
+ }
22
+ /**
23
+ * Compute the ordinal value (r) domain from data + chart type rules.
24
+ * Pure: no store mutation; callers supply accessors and raw extent.
25
+ */
26
+ export declare function computeOrdinalValueDomain(input: OrdinalValueDomainInput): [number, number];
27
+ export interface BuildOrdinalColumnsInput {
28
+ data: Datum[];
29
+ oExtent: string[];
30
+ oScale: ScaleBand<string>;
31
+ projection: string;
32
+ layout: OrdinalLayout;
33
+ dynamicColumnWidth?: OrdinalPipelineConfig["dynamicColumnWidth"];
34
+ getO: (d: Datum) => string;
35
+ getR: (d: Datum) => number;
36
+ }
37
+ /** Project band scale + data into per-category column geometry. */
38
+ export declare function buildOrdinalColumns(input: BuildOrdinalColumnsInput): Record<string, OrdinalColumn>;
@@ -0,0 +1,12 @@
1
+ import { type ChangeSet, type UpdateResult } from "./pipelineUpdateContract";
2
+ type DataChangeKind = Extract<ChangeSet["kind"], "ingest" | "replace" | "remove" | "update" | "clear">;
3
+ /** Result bookkeeping and invalidation policy for the Ordinal store pilot. */
4
+ export declare class OrdinalPipelineUpdateResults {
5
+ private tracker;
6
+ get last(): UpdateResult;
7
+ recordData(kind: DataChangeKind, count?: number): UpdateResult;
8
+ recordNoop(kind: DataChangeKind | "restyle"): UpdateResult;
9
+ recordRestyle(hasCustomRestyle: boolean): UpdateResult;
10
+ recordConfig(keys: readonly string[]): UpdateResult;
11
+ }
12
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { RingBuffer } from "../realtime/RingBuffer";
3
+ import type { OrdinalSceneNode } from "./ordinalTypes";
4
+ import type { PulseConfig } from "./types";
5
+ /**
6
+ * Apply pulse-derived fields to ordinal scene nodes without rebuilding their
7
+ * layout. Wedges aggregate their category's source data; other supported
8
+ * nodes map directly to one source datum.
9
+ */
10
+ export declare function applyOrdinalPulse(pulse: PulseConfig, nodes: OrdinalSceneNode[], timestampBuffer: RingBuffer<number>, datumIndex: ReadonlyMap<Datum, number>, getCategoryIndices: (category: string) => number[] | undefined, now: number): boolean;
@@ -0,0 +1,3 @@
1
+ import type { RingBuffer } from "../realtime/RingBuffer";
2
+ /** Keep a pulse timestamp ring aligned with the retained ordinal data. */
3
+ export declare function syncOrdinalPulseTimestampBuffer<T>(pulseEnabled: boolean, buffer: RingBuffer<T>, timestamps: RingBuffer<number> | null, timestamp: number): RingBuffer<number> | null;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * chartType → pure scene builder dispatch for OrdinalPipelineStore.
3
+ */
4
+ import type { SceneBuilderFn } from "./types";
5
+ export declare const ORDINAL_SCENE_BUILDERS: Record<string, SceneBuilderFn>;
@@ -10,6 +10,8 @@ export interface OrdinalSceneContext {
10
10
  getStack?: (d: Datum) => string;
11
11
  getGroup?: (d: Datum) => string;
12
12
  getColor?: (d: Datum) => string;
13
+ /** Categorical accessor → glyph shape (swarm/dot symbolBy). */
14
+ getSymbol?: (d: Datum) => string;
13
15
  getConnector?: (d: Datum) => string;
14
16
  getO: (d: Datum) => string;
15
17
  multiScales: ScaleLinear<number, number>[];
@@ -0,0 +1,9 @@
1
+ import { type Quadtree } from "d3-quadtree";
2
+ import type { OrdinalSceneNode } from "./ordinalTypes";
3
+ import type { PointSceneNode } from "./types";
4
+ export interface OrdinalPointSpatialIndex {
5
+ readonly maxRadius: number;
6
+ readonly quadtree: Quadtree<PointSceneNode> | null;
7
+ }
8
+ /** Build the optional point-hit index for large ordinal point scenes. */
9
+ export declare function buildOrdinalPointSpatialIndex(scene: readonly OrdinalSceneNode[]): OrdinalPointSpatialIndex;
@@ -2,7 +2,8 @@ import type { ReactNode } from "react";
2
2
  import type { ScaleLinear, ScaleBand } from "d3-scale";
3
3
  import type { WindowMode, HoverAnnotationConfig, HoverData, AnnotationContext } from "../realtime/types";
4
4
  import type { AutoPlaceAnnotations } from "../recipes/annotationLayout";
5
- import type { Style, SceneDatum, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors } from "./types";
5
+ import type { SymbolName } from "./symbolPath";
6
+ import type { Style, SceneDatum, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, FrameGraphicsProp, SceneAccessibilityMetadata } from "./types";
6
7
  import type { AnimateProp } from "./pipelineTransitionUtils";
7
8
  import type { GradientLegendConfig, LegendGroup, LegendLayout } from "../types/legendTypes";
8
9
  import type { Datum } from "../charts/shared/datumTypes";
@@ -53,6 +54,8 @@ export interface WedgeSceneNode {
53
54
  };
54
55
  style: Style;
55
56
  datum: SceneDatum;
57
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
58
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
56
59
  category?: string;
57
60
  _pulseIntensity?: number;
58
61
  _pulseColor?: string;
@@ -162,9 +165,9 @@ export interface TrapezoidSceneNode {
162
165
  _targetOpacity?: number;
163
166
  _transitionKey?: string;
164
167
  }
165
- export type { Style, PointSceneNode, RectSceneNode } from "./types";
166
- import type { PointSceneNode, RectSceneNode } from "./types";
167
- export type OrdinalSceneNode = RectSceneNode | PointSceneNode | WedgeSceneNode | BoxplotSceneNode | ViolinSceneNode | ConnectorSceneNode | TrapezoidSceneNode;
168
+ export type { Style, PointSceneNode, RectSceneNode, SymbolSceneNode, GlyphSceneNode } from "./types";
169
+ import type { PointSceneNode, RectSceneNode, SymbolSceneNode, GlyphSceneNode } from "./types";
170
+ export type OrdinalSceneNode = RectSceneNode | PointSceneNode | SymbolSceneNode | GlyphSceneNode | WedgeSceneNode | BoxplotSceneNode | ViolinSceneNode | ConnectorSceneNode | TrapezoidSceneNode;
168
171
  export interface OrdinalColumn {
169
172
  name: string;
170
173
  x: number;
@@ -193,6 +196,10 @@ export interface OrdinalPipelineConfig {
193
196
  categoryAccessor?: string | ((d: Datum) => string);
194
197
  valueAccessor?: string | ((d: Datum) => number) | Array<string | ((d: Datum) => number)>;
195
198
  colorAccessor?: string | ((d: Datum) => string);
199
+ /** Categorical accessor → glyph shape (swarm/dot). Emits SymbolSceneNodes. */
200
+ symbolAccessor?: string | ((d: Datum) => string);
201
+ /** Explicit `{category → shape}` map; unmapped categories auto-assign. */
202
+ symbolMap?: Record<string, SymbolName>;
196
203
  stackBy?: string | ((d: Datum) => string);
197
204
  groupBy?: string | ((d: Datum) => string);
198
205
  timeAccessor?: string | ((d: Datum) => number);
@@ -200,6 +207,13 @@ export interface OrdinalPipelineConfig {
200
207
  oAccessor?: string | ((d: Datum) => string);
201
208
  /** @deprecated Use valueAccessor */
202
209
  rAccessor?: string | ((d: Datum) => number) | Array<string | ((d: Datum) => number)>;
210
+ /**
211
+ * Escape hatch for a *stable* function accessor whose captured semantics
212
+ * change without its identity changing. Accessor equality is identity-based,
213
+ * so such a change is otherwise invisible. Bump this number to force the
214
+ * store to re-resolve accessors, rebuild the category domain, and reset value
215
+ * extents. Prefer changing the accessor identity where you can. */
216
+ accessorRevision?: number;
203
217
  multiAxis?: boolean;
204
218
  rExtent?: [number?, number?];
205
219
  oExtent?: string[];
@@ -249,7 +263,7 @@ export interface OrdinalPipelineConfig {
249
263
  dynamicColumnWidth?: string | ((data: Datum[]) => number);
250
264
  pieceStyle?: (d: Datum, category?: string) => Style;
251
265
  summaryStyle?: (d: Datum, category?: string) => Style;
252
- colorScheme?: string | string[];
266
+ colorScheme?: string | string[] | Record<string, string>;
253
267
  themeCategorical?: string[];
254
268
  /** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
255
269
  themeSemantic?: ThemeSemanticColors;
@@ -270,11 +284,16 @@ export interface OrdinalPipelineConfig {
270
284
  * Receives an OrdinalLayoutContext (scales, dimensions, theme,
271
285
  * resolveColor) and returns scene nodes plus optional overlays. */
272
286
  customLayout?: import("./ordinalCustomLayout").OrdinalCustomLayout;
287
+ /** Called when `customLayout` throws. */
288
+ onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
273
289
  /** User-supplied config blob threaded through to OrdinalLayoutContext.config. */
274
290
  layoutConfig?: object;
275
291
  /** Resolved margin — passed through so OrdinalLayoutContext.dimensions.margin
276
292
  * reflects what the frame actually used. */
277
293
  layoutMargin?: import("../types/marginType").MarginType;
294
+ /** Resolved shared selection projected into OrdinalLayoutContext.selection.
295
+ * Owned by a dedicated frame effect (kept off the rebuild path). */
296
+ layoutSelection?: import("./customLayoutSelection").CustomLayoutSelection | null;
278
297
  }
279
298
  export interface StreamOrdinalFrameProps<T = Datum> {
280
299
  chartType: OrdinalChartType;
@@ -285,6 +304,10 @@ export interface StreamOrdinalFrameProps<T = Datum> {
285
304
  /** Value field — the quantitative dimension (replaces rAccessor). Can be array for multiAxis. */
286
305
  valueAccessor?: string | ((d: T) => number) | Array<string | ((d: T) => number)>;
287
306
  colorAccessor?: string | ((d: T) => string);
307
+ /** Categorical accessor → glyph shape (swarm/dot). */
308
+ symbolAccessor?: string | ((d: T) => string);
309
+ /** Explicit `{category → shape}` map for `symbolAccessor`; unmapped auto-assign. */
310
+ symbolMap?: Record<string, SymbolName>;
288
311
  stackBy?: string | ((d: T) => string);
289
312
  groupBy?: string | ((d: T) => string);
290
313
  timeAccessor?: string | ((d: T) => number);
@@ -292,6 +315,12 @@ export interface StreamOrdinalFrameProps<T = Datum> {
292
315
  oAccessor?: string | ((d: T) => string);
293
316
  /** @deprecated Use valueAccessor instead */
294
317
  rAccessor?: string | ((d: T) => number) | Array<string | ((d: T) => number)>;
318
+ /**
319
+ * Force category/value re-derivation when a stable accessor's external
320
+ * semantics changed without a new function identity. Prefer changing the
321
+ * accessor reference where possible.
322
+ */
323
+ accessorRevision?: number;
295
324
  multiAxis?: boolean;
296
325
  projection?: "vertical" | "horizontal" | "radial";
297
326
  size?: [number, number];
@@ -357,7 +386,7 @@ export interface StreamOrdinalFrameProps<T = Datum> {
357
386
  axisExtent?: import("../charts/shared/axisExtent").AxisExtentMode;
358
387
  pieceStyle?: (d: Datum, category?: string) => Style;
359
388
  summaryStyle?: (d: Datum, category?: string) => Style;
360
- colorScheme?: string | string[];
389
+ colorScheme?: string | string[] | Record<string, string>;
361
390
  barColors?: Record<string, string>;
362
391
  showAxes?: boolean;
363
392
  showCategoryTicks?: boolean;
@@ -381,6 +410,7 @@ export interface StreamOrdinalFrameProps<T = Datum> {
381
410
  hoverAnnotation?: boolean | HoverAnnotationConfig;
382
411
  tooltipContent?: (d: HoverData) => ReactNode;
383
412
  customHoverBehavior?: (d: HoverData | null) => void;
413
+ customClickBehavior?: (d: HoverData | null) => void;
384
414
  annotations?: Datum[];
385
415
  autoPlaceAnnotations?: AutoPlaceAnnotations;
386
416
  svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => ReactNode;
@@ -404,8 +434,12 @@ export interface StreamOrdinalFrameProps<T = Datum> {
404
434
  legendCategoryAccessor?: string | ((d: T) => string);
405
435
  /** Fires when the current legend category domain changes after scene rebuilds. */
406
436
  onCategoriesChange?: (categories: string[]) => void;
407
- backgroundGraphics?: ReactNode;
408
- foregroundGraphics?: ReactNode;
437
+ /** SVG behind the canvas. Function form receives `{ size, margin, scales }`
438
+ * with the frame's resolved `{o, r, projection}` scales (null pre-layout). */
439
+ backgroundGraphics?: FrameGraphicsProp<OrdinalScales>;
440
+ /** SVG on top (in the overlay). Function form receives `{ size, margin, scales }`
441
+ * with the frame's resolved `{o, r, projection}` scales (null pre-layout). */
442
+ foregroundGraphics?: FrameGraphicsProp<OrdinalScales>;
409
443
  title?: string | ReactNode;
410
444
  className?: string;
411
445
  background?: string;
@@ -438,8 +472,14 @@ export interface StreamOrdinalFrameProps<T = Datum> {
438
472
  * `semiotic/recipes` for reference layouts (marimekko, parallel
439
473
  * coordinates, bullet). */
440
474
  customLayout?: import("./ordinalCustomLayout").OrdinalCustomLayout;
475
+ /** Called when `customLayout` throws. */
476
+ onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
441
477
  /** User-supplied config blob threaded through to OrdinalLayoutContext.config. */
442
478
  layoutConfig?: object;
479
+ /** Resolved shared selection projected into `OrdinalLayoutContext.selection`.
480
+ * Kept off the rebuild path — restyles (if the layout returned `restyle`) or
481
+ * rebuilds, never re-ingests. */
482
+ layoutSelection?: import("./customLayoutSelection").CustomLayoutSelection | null;
443
483
  }
444
484
  export interface StreamOrdinalFrameHandle<T = Datum> {
445
485
  push(datum: T): void;
@@ -464,6 +504,14 @@ export interface StreamOrdinalFrameHandle<T = Datum> {
464
504
  clear(): void;
465
505
  getData(): T[];
466
506
  getScales(): OrdinalScales | null;
507
+ /** The most recent custom layout result — host readback so pages that need
508
+ * the computed placement don't re-run the layout. Null before the first
509
+ * layout or when no custom layout is configured. A failed retry retains the
510
+ * prior good result; inspect `getLayoutFailure()` to distinguish recovery. */
511
+ getCustomLayout(): import("./ordinalCustomLayout").OrdinalLayoutResult | null;
512
+ /** The latest custom-layout failure, if any. Cleared by a successful layout,
513
+ * removing the custom layout, or `clear()`. */
514
+ getLayoutFailure(): import("./customLayoutFailure").CustomLayoutFailureDiagnostic | null;
467
515
  }
468
516
  export interface OrdinalLayout {
469
517
  width: number;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared paint-gate helpers for Stream Frame render loops.
3
+ *
4
+ * Frames differ in scene types, but the decision "should this rAF clear and
5
+ * redraw the data canvas?" is the same shape everywhere: dirty/scene rebuild,
6
+ * transition, continuous animation, particles, live encodings.
7
+ */
8
+ export interface DataPaintNeedsInput {
9
+ /** Prop/layout dirty or scene rebuilt this frame. */
10
+ dirtyOrRebuilt: boolean;
11
+ /** Transition animation is advancing. */
12
+ transitioning: boolean;
13
+ /** Layout animation tick (orbit, force step, etc.). */
14
+ animationTicked?: boolean;
15
+ /** Particles / continuous mode wants a frame. */
16
+ continuous?: boolean;
17
+ /** Pulse / decay / threshold / topology-diff encodings are live. */
18
+ liveEncoding?: boolean;
19
+ /** Family-specific force (rotation applied, zoom, etc.). */
20
+ forced?: boolean;
21
+ }
22
+ /**
23
+ * True when the data canvas should clear and redraw this frame.
24
+ * Interaction-only or annotation-only rAF retries should leave data alone.
25
+ */
26
+ export declare function needsDataCanvasPaint(input: DataPaintNeedsInput): boolean;
27
+ /**
28
+ * True when an interaction overlay canvas should clear/draw.
29
+ * Pass `hadContentLastFrame` so a hover-end still gets one clear.
30
+ */
31
+ export declare function needsInteractionCanvasPaint(active: boolean, hadContentLastFrame: boolean): boolean;
@@ -0,0 +1,5 @@
1
+ /** FIFO capacity-queue controller: stateful region service riding StreamPhysicsFrame's live heartbeat. */
2
+ import type { PhysicsController } from "./PhysicsControllers";
3
+ import type { CapacityQueueControllerOptions } from "./CapacityQueueTypes";
4
+ /** FIFO region service with visit evidence, overflow staging, and live metrics. */
5
+ export declare function createCapacityQueueController(options: CapacityQueueControllerOptions): PhysicsController;