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
@@ -1,12 +1,17 @@
1
1
  import type { ReactNode } from "react";
2
- import type { OnObservationCallback } from "../store/ObservationStore";
3
- import type { HoverData, AnnotationContext } from "../realtime/types";
2
+ import type { HoverData } from "../realtime/types";
3
+ import type { Datum } from "../charts/shared/datumTypes";
4
+ type NetworkDatumComparator = {
5
+ bivarianceHack(a: Datum, b: Datum): number;
6
+ }["bivarianceHack"];
7
+ type NetworkGroupComparator = (a: number, b: number) => number;
4
8
  import type { LegendGroup, LegendLayout } from "../types/legendTypes";
5
- import type { Style, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, SceneDatum } from "./types";
9
+ import type { Style, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, SceneDatum, SceneAccessibilityMetadata, SceneRenderMode } from "./types";
6
10
  import type { AnimateProp } from "./pipelineTransitionUtils";
7
- import type { Datum } from "../charts/shared/datumTypes";
8
- import type { AutoPlaceAnnotations } from "../recipes/annotationLayout";
9
11
  import type { NetworkSymbolName } from "./symbolPath";
12
+ import type { GlyphDef } from "./glyphDef";
13
+ import type { StreamNetworkFrameHandle } from "./networkFrameHandleTypes";
14
+ import type { StreamNetworkInteractionProps } from "./networkInteractionTypes";
10
15
  export interface TensionConfig {
11
16
  weightChange: number;
12
17
  newEdge: number;
@@ -52,6 +57,8 @@ export interface RealtimeNode {
52
57
  __hierarchyNode?: unknown;
53
58
  /** @internal Circle-pack layout radius. Set by `hierarchyLayoutPlugin`. */
54
59
  __radius?: number;
60
+ /** @internal Pre-resolved force-layout radius used by worker snapshots. */
61
+ __forceRadius?: number;
55
62
  /**
56
63
  * @internal Chord-layout extension. Carries the start/end angles
57
64
  * for the arc segment representing this node, computed by
@@ -181,8 +188,10 @@ export interface RealtimeNetworkFrameProps {
181
188
  tensionConfig?: Partial<TensionConfig>;
182
189
  showParticles?: boolean;
183
190
  particleStyle?: ParticleStyle;
191
+ /** Optional scene paint backend. Exact node and edge geometry remains interactive. */
192
+ renderMode?: SceneRenderMode<NetworkSceneNode | NetworkSceneEdge>;
184
193
  colorBy?: string | ((d: RealtimeNode) => string);
185
- colorScheme?: string | string[];
194
+ colorScheme?: string | string[] | Record<string, string>;
186
195
  edgeColorBy?: "source" | "target" | ((d: RealtimeEdge) => string);
187
196
  edgeOpacity?: number;
188
197
  nodeLabel?: string | ((d: RealtimeNode) => string);
@@ -205,6 +214,8 @@ export interface NetworkCircleNode {
205
214
  r: number;
206
215
  style: Style;
207
216
  datum: SceneDatum;
217
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
218
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
208
219
  id?: string;
209
220
  label?: string;
210
221
  depth?: number;
@@ -221,6 +232,8 @@ export interface NetworkRectNode {
221
232
  h: number;
222
233
  style: Style;
223
234
  datum: SceneDatum;
235
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
236
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
224
237
  id?: string;
225
238
  label?: string;
226
239
  depth?: number;
@@ -242,6 +255,8 @@ export interface NetworkArcNode {
242
255
  endAngle: number;
243
256
  style: Style;
244
257
  datum: SceneDatum;
258
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
259
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
245
260
  id?: string;
246
261
  label?: string;
247
262
  _pulseIntensity?: number;
@@ -268,6 +283,47 @@ export interface NetworkSymbolNode {
268
283
  rotation?: number;
269
284
  style: Style;
270
285
  datum: SceneDatum;
286
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
287
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
288
+ id?: string;
289
+ label?: string;
290
+ depth?: number;
291
+ _pulseIntensity?: number;
292
+ _pulseColor?: string;
293
+ _pulseGlowRadius?: number;
294
+ }
295
+ /**
296
+ * Glyph node — the composite-pictogram channel for network scenes: a
297
+ * multi-part `GlyphDef` stamped at (cx, cy) with per-node `color`/`accent`
298
+ * paints and optional partial fill. The network sibling of the XY/ordinal/geo
299
+ * `GlyphSceneNode`.
300
+ */
301
+ export interface NetworkGlyphNode {
302
+ type: "glyph";
303
+ cx: number;
304
+ cy: number;
305
+ /** Rendered height in px — width follows the definition's viewBox aspect. */
306
+ size: number;
307
+ /** The multi-part pictogram definition to stamp. */
308
+ glyph: GlyphDef;
309
+ /** Primary paint for parts declaring `"color"`. Falls back to `style.fill`. */
310
+ color?: string;
311
+ /** Accent paint for parts declaring `"accent"`. */
312
+ accent?: string;
313
+ /** Partial fill 0–1. @default 1 */
314
+ fraction?: number;
315
+ /** Where the partial fill begins, 0–1. @default 0 */
316
+ fractionStart?: number;
317
+ /** Partial-fill axis. @default "horizontal" */
318
+ fractionDirection?: "horizontal" | "vertical";
319
+ /** Ghost paint drawn at full extent beneath a partial fill. */
320
+ ghostColor?: string;
321
+ /** Rotation in radians about (cx, cy). */
322
+ rotation?: number;
323
+ style: Style;
324
+ datum: SceneDatum;
325
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
326
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
271
327
  id?: string;
272
328
  label?: string;
273
329
  depth?: number;
@@ -333,7 +389,7 @@ export interface NetworkCurvedEdge {
333
389
  _cachedPath2D?: Path2D;
334
390
  _cachedPath2DSource?: string;
335
391
  }
336
- export type NetworkSceneNode = NetworkCircleNode | NetworkRectNode | NetworkArcNode | NetworkSymbolNode;
392
+ export type NetworkSceneNode = NetworkCircleNode | NetworkRectNode | NetworkArcNode | NetworkSymbolNode | NetworkGlyphNode;
337
393
  export type NetworkSceneEdge = NetworkLineEdge | NetworkBezierEdge | NetworkRibbonEdge | NetworkCurvedEdge;
338
394
  /** Label data for the SVG overlay */
339
395
  export interface NetworkLabel {
@@ -395,6 +451,12 @@ export interface ThresholdAlertConfig {
395
451
  }
396
452
  export interface NetworkPipelineConfig {
397
453
  chartType: NetworkChartType;
454
+ /** Frame-owned logical clock for ingest, live encodings, and transitions. */
455
+ clock?: import("./FrameRuntime").FrameClock;
456
+ /** Frame-local random source used by synchronous force layout. */
457
+ random?: import("./FrameRuntime").FrameRandom;
458
+ /** Serializable deterministic seed, including the force-worker protocol. */
459
+ seed?: number;
398
460
  nodeIDAccessor?: string | ((d: Datum) => string);
399
461
  sourceAccessor?: string | ((d: Datum) => string);
400
462
  targetAccessor?: string | ((d: Datum) => string);
@@ -407,12 +469,14 @@ export interface NetworkPipelineConfig {
407
469
  nodeAlign?: "justify" | "left" | "right" | "center";
408
470
  nodePaddingRatio?: number;
409
471
  nodeWidth?: number;
410
- edgeSort?: (a: unknown, b: unknown) => number;
472
+ edgeSort?: NetworkDatumComparator;
411
473
  iterations?: number;
412
474
  forceStrength?: number;
475
+ /** @internal Skip simulation after worker-computed positions are applied. */
476
+ __skipForceSimulation?: boolean;
413
477
  padAngle?: number;
414
478
  groupWidth?: number;
415
- sortGroups?: (a: unknown, b: unknown) => number;
479
+ sortGroups?: NetworkGroupComparator;
416
480
  treeOrientation?: "vertical" | "horizontal" | "radial";
417
481
  edgeType?: "line" | "curve";
418
482
  padding?: number;
@@ -426,7 +490,7 @@ export interface NetworkPipelineConfig {
426
490
  showLabels?: boolean;
427
491
  labelMode?: "leaf" | "parent" | "all";
428
492
  colorBy?: string | ((d: Datum) => string | number);
429
- colorScheme?: string | string[];
493
+ colorScheme?: string | string[] | Record<string, string>;
430
494
  /** Theme categorical palette — used as fallback when colorScheme is not an explicit array */
431
495
  themeCategorical?: string[];
432
496
  /** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
@@ -479,6 +543,8 @@ export interface NetworkPipelineConfig {
479
543
  /** When provided, replaces both layout dispatch and scene building.
480
544
  * Receives raw nodes/edges and returns positioned scene primitives. */
481
545
  customNetworkLayout?: import("./networkCustomLayout").NetworkCustomLayout;
546
+ /** Called when `customNetworkLayout` throws. */
547
+ onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
482
548
  /** User-supplied config blob threaded through to NetworkLayoutContext.config. */
483
549
  layoutConfig?: object;
484
550
  /** Resolved shared-selection predicate, surfaced to a custom layout as
@@ -487,7 +553,7 @@ export interface NetworkPipelineConfig {
487
553
  * `buildScene` (re-emitting dimmed marks) without a re-ingest or re-layout. */
488
554
  layoutSelection?: import("./networkCustomLayout").NetworkLayoutSelection | null;
489
555
  }
490
- export interface StreamNetworkFrameProps<T = Datum> {
556
+ export interface StreamNetworkFrameProps<T = Datum> extends StreamNetworkInteractionProps<RealtimeNode, RealtimeEdge> {
491
557
  chartType: NetworkChartType;
492
558
  nodes?: T[];
493
559
  edges?: T[] | T;
@@ -508,10 +574,18 @@ export interface StreamNetworkFrameProps<T = Datum> {
508
574
  nodeWidth?: number;
509
575
  iterations?: number;
510
576
  forceStrength?: number;
577
+ /** Execute force layout synchronously, in a worker, or choose by graph cost. */
578
+ layoutExecution?: "auto" | "worker" | "sync";
579
+ /** Content displayed while an internally-managed worker layout is pending. */
580
+ layoutLoadingContent?: ReactNode | false;
581
+ /** Receives internally-managed force-layout lifecycle changes. */
582
+ onLayoutStateChange?: (state: "pending" | "ready" | "error") => void;
511
583
  padAngle?: number;
512
584
  groupWidth?: number;
513
- sortGroups?: (a: unknown, b: unknown) => number;
514
- edgeSort?: (a: unknown, b: unknown) => number;
585
+ sortGroups?: NetworkGroupComparator;
586
+ edgeSort?: NetworkDatumComparator;
587
+ /** Optional scene paint backend. Exact node and edge geometry remains interactive. */
588
+ renderMode?: SceneRenderMode<NetworkSceneNode | NetworkSceneEdge>;
515
589
  treeOrientation?: "vertical" | "horizontal" | "radial";
516
590
  edgeType?: "line" | "curve";
517
591
  padding?: number;
@@ -522,7 +596,7 @@ export interface StreamNetworkFrameProps<T = Datum> {
522
596
  nodeStyle?: (d: Datum) => Datum;
523
597
  edgeStyle?: (d: Datum) => Datum;
524
598
  colorBy?: string | ((d: Datum) => string | number);
525
- colorScheme?: string | string[];
599
+ colorScheme?: string | string[] | Record<string, string>;
526
600
  edgeColorBy?: "source" | "target" | "gradient" | ((d: Datum) => string);
527
601
  edgeOpacity?: number;
528
602
  colorByDepth?: boolean;
@@ -542,18 +616,6 @@ export interface StreamNetworkFrameProps<T = Datum> {
542
616
  };
543
617
  className?: string;
544
618
  background?: string;
545
- enableHover?: boolean;
546
- tooltipContent?: (d: HoverData) => ReactNode;
547
- customHoverBehavior?: (d: HoverData | null) => void;
548
- customClickBehavior?: (d: HoverData | null) => void;
549
- /** Observation callback — emits hover/click events to the ObservationStore and this callback */
550
- onObservation?: OnObservationCallback;
551
- /** Chart instance identifier for observation filtering */
552
- chartId?: string;
553
- onTopologyChange?: (nodes: RealtimeNode[], edges: RealtimeEdge[]) => void;
554
- annotations?: Datum[];
555
- autoPlaceAnnotations?: AutoPlaceAnnotations;
556
- svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => ReactNode;
557
619
  legend?: ReactNode | {
558
620
  legendGroups: LegendGroup[];
559
621
  };
@@ -578,6 +640,18 @@ export interface StreamNetworkFrameProps<T = Datum> {
578
640
  * Set `{ intro: false }` to disable the intro animation. */
579
641
  animate?: AnimateProp;
580
642
  staleness?: StalenessConfig;
643
+ /** Optional rAF seam for deterministic host scheduling. */
644
+ frameScheduler?: import("./useFrame").FrameScheduler;
645
+ /** Monotonic wall-clock seam used to derive logical frame time. */
646
+ clock?: import("./FrameRuntime").FrameClock;
647
+ /** Injectable random source for force layout and particles. */
648
+ random?: import("./FrameRuntime").FrameRandom;
649
+ /** Serializable deterministic random seed. Ignored when `random` is supplied. */
650
+ seed?: number;
651
+ /** Freeze logical animation time and cancel queued work while paused. */
652
+ paused?: boolean;
653
+ /** Freeze logical animation time while the document is hidden. Defaults to true. */
654
+ suspendWhenHidden?: boolean;
581
655
  thresholds?: ThresholdAlertConfig;
582
656
  orbitMode?: "flat" | "solar" | "atomic" | number[];
583
657
  orbitSize?: number | ((node: Datum) => number);
@@ -597,6 +671,8 @@ export interface StreamNetworkFrameProps<T = Datum> {
597
671
  * Receives raw nodes/edges + dimensions/theme, returns positioned scene
598
672
  * primitives. See `semiotic/recipes` for reference layouts (flextree, dagre). */
599
673
  customNetworkLayout?: import("./networkCustomLayout").NetworkCustomLayout;
674
+ /** Called when `customNetworkLayout` throws. */
675
+ onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
600
676
  /** User-supplied config blob threaded through to NetworkLayoutContext.config. */
601
677
  layoutConfig?: object;
602
678
  /** Resolved shared-selection predicate, surfaced to a custom layout as
@@ -604,29 +680,5 @@ export interface StreamNetworkFrameProps<T = Datum> {
604
680
  * `selection` / `linkedHover` wiring; render-only (no re-ingest on change). */
605
681
  layoutSelection?: import("./networkCustomLayout").NetworkLayoutSelection | null;
606
682
  }
607
- export interface StreamNetworkFrameHandle {
608
- push(edge: EdgePush): void;
609
- pushMany(edges: EdgePush[]): void;
610
- /** Remove a node by ID. Also removes connected edges. */
611
- removeNode(id: string): boolean;
612
- /** Remove edges by source+target, or by edge ID when edgeIdAccessor is configured. */
613
- removeEdge(sourceIdOrEdgeId: string, targetId?: string): boolean;
614
- /** Update a node's data by ID. Returns previous data. */
615
- updateNode(id: string, updater: (data: Datum) => Datum): Datum | null;
616
- /** Update all edges between source+target. Returns array of previous data. */
617
- updateEdge(sourceId: string, targetId: string, updater: (data: Datum) => Datum): Datum[];
618
- clear(): void;
619
- getTopology(): {
620
- nodes: RealtimeNode[];
621
- edges: RealtimeEdge[];
622
- };
623
- getTopologyDiff(): {
624
- addedNodes: string[];
625
- removedNodes: string[];
626
- addedEdges: string[];
627
- removedEdges: string[];
628
- };
629
- relayout(): void;
630
- getTension(): number;
631
- }
683
+ export type { StreamNetworkFrameHandle } from "./networkFrameHandleTypes";
632
684
  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, OrdinalRendererFn } from "./ordinalTypes";
6
+ export type OrdinalAnyRendererFn = OrdinalRendererFn;
7
+ export declare const ORDINAL_CANVAS_RENDERERS: Record<OrdinalChartType, OrdinalAnyRendererFn[]>;
@@ -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,31 @@
1
+ import { type ChangeSet, type Invalidation, type UpdateResult } from "./pipelineUpdateContract";
2
+ /** Whether a config patch re-derives retained ordinal data resources. */
3
+ export type OrdinalRetainedDataEffect = "preserve" | "rebuild";
4
+ export interface OrdinalConfigPatchDependency {
5
+ readonly retainedData: OrdinalRetainedDataEffect;
6
+ readonly invalidations: readonly Invalidation[];
7
+ }
8
+ /**
9
+ * Ordinal's key-level patch policy. Category/value/order accessors re-derive
10
+ * retained categorical state. Layout, style, and future-only controls expose
11
+ * distinct revision effects instead of the previous blanket scene rebuild.
12
+ */
13
+ export declare const ORDINAL_CONFIG_PATCH_DEPENDENCIES: Readonly<Record<string, OrdinalConfigPatchDependency>>;
14
+ export interface OrdinalConfigPatchClassification {
15
+ readonly retainedData: OrdinalRetainedDataEffect;
16
+ readonly invalidations: ReadonlySet<Invalidation>;
17
+ }
18
+ /** Union the declared effects for a patch after its effective keys are known. */
19
+ export declare function classifyOrdinalConfigPatch(keys: readonly string[]): OrdinalConfigPatchClassification;
20
+ type DataChangeKind = Extract<ChangeSet["kind"], "ingest" | "replace" | "remove" | "update" | "clear">;
21
+ /** Result bookkeeping and invalidation policy for the Ordinal store pilot. */
22
+ export declare class OrdinalPipelineUpdateResults {
23
+ private tracker;
24
+ get last(): UpdateResult;
25
+ subscribe(listener: () => void): () => void;
26
+ recordData(kind: DataChangeKind, count?: number): UpdateResult;
27
+ recordNoop(kind: DataChangeKind | "restyle"): UpdateResult;
28
+ recordRestyle(hasCustomRestyle: boolean): UpdateResult;
29
+ recordConfig(keys: readonly string[]): UpdateResult;
30
+ }
31
+ 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>;
@@ -16,8 +16,8 @@ export interface OrdinalSceneContext {
16
16
  getO: (d: Datum) => string;
17
17
  multiScales: ScaleLinear<number, number>[];
18
18
  rAccessors: ((d: Datum) => number)[];
19
- resolvePieceStyle: (d: any, category?: string) => Style;
20
- resolveSummaryStyle: (d: any, category?: string) => Style;
19
+ resolvePieceStyle: (d: Datum | null, category?: string) => Style;
20
+ resolveSummaryStyle: (d: Datum | null, category?: string) => Style;
21
21
  /** For timeline: resolve rAccessor as [start, end] */
22
22
  getRawRange: (d: Datum) => [number, number] | null;
23
23
  }
@@ -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;
@@ -3,10 +3,13 @@ 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
5
  import type { SymbolName } from "./symbolPath";
6
- import type { Style, SceneDatum, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors } from "./types";
6
+ import type { Style, SceneDatum, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, FrameGraphicsProp, SceneAccessibilityMetadata, SceneRenderMode } from "./types";
7
7
  import type { AnimateProp } from "./pipelineTransitionUtils";
8
8
  import type { GradientLegendConfig, LegendGroup, LegendLayout } from "../types/legendTypes";
9
9
  import type { Datum } from "../charts/shared/datumTypes";
10
+ import type { OnObservationCallback } from "../store/ObservationStore";
11
+ import type { SemanticClickBehavior, SemanticHoverBehavior } from "../charts/shared/semanticInteractions";
12
+ import type { OnAnnotationActivateCallback } from "../charts/shared/annotationActivation";
10
13
  export type OrdinalChartType = "bar" | "clusterbar" | "point" | "swarm" | "pie" | "donut" | "boxplot" | "violin" | "histogram" | "ridgeline" | "timeline" | "funnel" | "bar-funnel" | "swimlane" | "custom";
11
14
  export interface OrdinalScales {
12
15
  o: ScaleBand<string>;
@@ -54,6 +57,8 @@ export interface WedgeSceneNode {
54
57
  };
55
58
  style: Style;
56
59
  datum: SceneDatum;
60
+ accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
61
+ accessibility?: SceneAccessibilityMetadata["accessibility"];
57
62
  category?: string;
58
63
  _pulseIntensity?: number;
59
64
  _pulseColor?: string;
@@ -163,9 +168,9 @@ export interface TrapezoidSceneNode {
163
168
  _targetOpacity?: number;
164
169
  _transitionKey?: string;
165
170
  }
166
- export type { Style, PointSceneNode, RectSceneNode, SymbolSceneNode } from "./types";
167
- import type { PointSceneNode, RectSceneNode, SymbolSceneNode } from "./types";
168
- export type OrdinalSceneNode = RectSceneNode | PointSceneNode | SymbolSceneNode | WedgeSceneNode | BoxplotSceneNode | ViolinSceneNode | ConnectorSceneNode | TrapezoidSceneNode;
171
+ export type { Style, PointSceneNode, RectSceneNode, SymbolSceneNode, GlyphSceneNode } from "./types";
172
+ import type { PointSceneNode, RectSceneNode, SymbolSceneNode, GlyphSceneNode } from "./types";
173
+ export type OrdinalSceneNode = RectSceneNode | PointSceneNode | SymbolSceneNode | GlyphSceneNode | WedgeSceneNode | BoxplotSceneNode | ViolinSceneNode | ConnectorSceneNode | TrapezoidSceneNode;
169
174
  export interface OrdinalColumn {
170
175
  name: string;
171
176
  x: number;
@@ -205,6 +210,13 @@ export interface OrdinalPipelineConfig {
205
210
  oAccessor?: string | ((d: Datum) => string);
206
211
  /** @deprecated Use valueAccessor */
207
212
  rAccessor?: string | ((d: Datum) => number) | Array<string | ((d: Datum) => number)>;
213
+ /**
214
+ * Escape hatch for a *stable* function accessor whose captured semantics
215
+ * change without its identity changing. Accessor equality is identity-based,
216
+ * so such a change is otherwise invisible. Bump this number to force the
217
+ * store to re-resolve accessors, rebuild the category domain, and reset value
218
+ * extents. Prefer changing the accessor identity where you can. */
219
+ accessorRevision?: number;
208
220
  multiAxis?: boolean;
209
221
  rExtent?: [number?, number?];
210
222
  oExtent?: string[];
@@ -254,7 +266,7 @@ export interface OrdinalPipelineConfig {
254
266
  dynamicColumnWidth?: string | ((data: Datum[]) => number);
255
267
  pieceStyle?: (d: Datum, category?: string) => Style;
256
268
  summaryStyle?: (d: Datum, category?: string) => Style;
257
- colorScheme?: string | string[];
269
+ colorScheme?: string | string[] | Record<string, string>;
258
270
  themeCategorical?: string[];
259
271
  /** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
260
272
  themeSemantic?: ThemeSemanticColors;
@@ -271,10 +283,14 @@ export interface OrdinalPipelineConfig {
271
283
  /** Whether to animate elements on first render (bars grow from baseline, wedges sweep in) */
272
284
  introAnimation?: boolean;
273
285
  staleness?: StalenessConfig;
286
+ /** Frame-owned logical clock for ingest, pulse, staleness, and transitions. */
287
+ clock?: import("./FrameRuntime").FrameClock;
274
288
  /** When provided, replaces chart-type dispatch in scene building.
275
289
  * Receives an OrdinalLayoutContext (scales, dimensions, theme,
276
290
  * resolveColor) and returns scene nodes plus optional overlays. */
277
291
  customLayout?: import("./ordinalCustomLayout").OrdinalCustomLayout;
292
+ /** Called when `customLayout` throws. */
293
+ onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
278
294
  /** User-supplied config blob threaded through to OrdinalLayoutContext.config. */
279
295
  layoutConfig?: object;
280
296
  /** Resolved margin — passed through so OrdinalLayoutContext.dimensions.margin
@@ -304,6 +320,12 @@ export interface StreamOrdinalFrameProps<T = Datum> {
304
320
  oAccessor?: string | ((d: T) => string);
305
321
  /** @deprecated Use valueAccessor instead */
306
322
  rAccessor?: string | ((d: T) => number) | Array<string | ((d: T) => number)>;
323
+ /**
324
+ * Force category/value re-derivation when a stable accessor's external
325
+ * semantics changed without a new function identity. Prefer changing the
326
+ * accessor reference where possible.
327
+ */
328
+ accessorRevision?: number;
307
329
  multiAxis?: boolean;
308
330
  projection?: "vertical" | "horizontal" | "radial";
309
331
  size?: [number, number];
@@ -367,9 +389,11 @@ export interface StreamOrdinalFrameProps<T = Datum> {
367
389
  * it's a band scale, not a continuous one. Ignored when explicit
368
390
  * `rTickValues` are provided — caller has hand-picked positions. */
369
391
  axisExtent?: import("../charts/shared/axisExtent").AxisExtentMode;
392
+ /** Optional scene paint backend. Exact scene geometry remains interactive. */
393
+ renderMode?: SceneRenderMode<OrdinalSceneNode>;
370
394
  pieceStyle?: (d: Datum, category?: string) => Style;
371
395
  summaryStyle?: (d: Datum, category?: string) => Style;
372
- colorScheme?: string | string[];
396
+ colorScheme?: string | string[] | Record<string, string>;
373
397
  barColors?: Record<string, string>;
374
398
  showAxes?: boolean;
375
399
  showCategoryTicks?: boolean;
@@ -392,8 +416,17 @@ export interface StreamOrdinalFrameProps<T = Datum> {
392
416
  enableHover?: boolean;
393
417
  hoverAnnotation?: boolean | HoverAnnotationConfig;
394
418
  tooltipContent?: (d: HoverData) => ReactNode;
395
- customHoverBehavior?: (d: HoverData | null) => void;
419
+ customHoverBehavior?: SemanticHoverBehavior<HoverData>;
420
+ customClickBehavior?: SemanticClickBehavior<HoverData>;
421
+ /** Structured interaction observations, including semantic focus/activate. */
422
+ onObservation?: OnObservationCallback;
423
+ /** @internal HOC observation callback forwarded only to annotation widgets. */
424
+ annotationObservationCallback?: OnObservationCallback;
425
+ /** Chart instance identifier included in observation events. */
426
+ chartId?: string;
396
427
  annotations?: Datum[];
428
+ /** Observe activation of widget annotations without replacing widget behavior. */
429
+ onAnnotationActivate?: OnAnnotationActivateCallback;
397
430
  autoPlaceAnnotations?: AutoPlaceAnnotations;
398
431
  svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => ReactNode;
399
432
  showGrid?: boolean;
@@ -416,8 +449,12 @@ export interface StreamOrdinalFrameProps<T = Datum> {
416
449
  legendCategoryAccessor?: string | ((d: T) => string);
417
450
  /** Fires when the current legend category domain changes after scene rebuilds. */
418
451
  onCategoriesChange?: (categories: string[]) => void;
419
- backgroundGraphics?: ReactNode;
420
- foregroundGraphics?: ReactNode;
452
+ /** SVG behind the canvas. Function form receives `{ size, margin, scales }`
453
+ * with the frame's resolved `{o, r, projection}` scales (null pre-layout). */
454
+ backgroundGraphics?: FrameGraphicsProp<OrdinalScales>;
455
+ /** SVG on top (in the overlay). Function form receives `{ size, margin, scales }`
456
+ * with the frame's resolved `{o, r, projection}` scales (null pre-layout). */
457
+ foregroundGraphics?: FrameGraphicsProp<OrdinalScales>;
421
458
  title?: string | ReactNode;
422
459
  className?: string;
423
460
  background?: string;
@@ -438,6 +475,18 @@ export interface StreamOrdinalFrameProps<T = Datum> {
438
475
  * Set `{ intro: false }` to disable the intro animation. */
439
476
  animate?: AnimateProp;
440
477
  staleness?: StalenessConfig;
478
+ /** Optional rAF seam for deterministic host scheduling. */
479
+ frameScheduler?: import("./useFrame").FrameScheduler;
480
+ /** Monotonic wall-clock seam used to derive logical frame time. */
481
+ clock?: import("./FrameRuntime").FrameClock;
482
+ /** Injectable frame-local random source. Ordinal rendering currently has no stochastic layout. */
483
+ random?: import("./FrameRuntime").FrameRandom;
484
+ /** Serializable deterministic random seed for future ordinal stochastic work. */
485
+ seed?: number;
486
+ /** Freeze logical animation time and cancel queued work while paused. */
487
+ paused?: boolean;
488
+ /** Freeze logical animation time while the document is hidden. Defaults to true. */
489
+ suspendWhenHidden?: boolean;
441
490
  /** Render a visually-hidden data table from the scene graph for screen readers */
442
491
  accessibleTable?: boolean;
443
492
  /** Accessible description overriding the auto-generated aria-label on the chart container */
@@ -450,6 +499,8 @@ export interface StreamOrdinalFrameProps<T = Datum> {
450
499
  * `semiotic/recipes` for reference layouts (marimekko, parallel
451
500
  * coordinates, bullet). */
452
501
  customLayout?: import("./ordinalCustomLayout").OrdinalCustomLayout;
502
+ /** Called when `customLayout` throws. */
503
+ onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
453
504
  /** User-supplied config blob threaded through to OrdinalLayoutContext.config. */
454
505
  layoutConfig?: object;
455
506
  /** Resolved shared selection projected into `OrdinalLayoutContext.selection`.
@@ -480,6 +531,14 @@ export interface StreamOrdinalFrameHandle<T = Datum> {
480
531
  clear(): void;
481
532
  getData(): T[];
482
533
  getScales(): OrdinalScales | null;
534
+ /** The most recent custom layout result — host readback so pages that need
535
+ * the computed placement don't re-run the layout. Null before the first
536
+ * layout or when no custom layout is configured. A failed retry retains the
537
+ * prior good result; inspect `getLayoutFailure()` to distinguish recovery. */
538
+ getCustomLayout(): import("./ordinalCustomLayout").OrdinalLayoutResult | null;
539
+ /** The latest custom-layout failure, if any. Cleared by a successful layout,
540
+ * removing the custom layout, or `clear()`. */
541
+ getLayoutFailure(): import("./customLayoutFailure").CustomLayoutFailureDiagnostic | null;
483
542
  }
484
543
  export interface OrdinalLayout {
485
544
  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;