semiotic 3.8.0 → 3.8.2

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 (331) hide show
  1. package/CLAUDE.md +14 -9
  2. package/README.md +56 -55
  3. package/ai/behaviorContracts.cjs +9 -0
  4. package/ai/dist/mcp-server.js +240 -30
  5. package/ai/schema.json +616 -42
  6. package/ai/surface-manifest.json +3 -2
  7. package/ai/system-prompt.md +7 -3
  8. package/dist/__tests__/scenarios/mcpProtocolTypes.d.ts +20 -0
  9. package/dist/chunk-OrdinalBrushOverlay-PXHQYDB2.module.min.js +2 -0
  10. package/dist/chunk-XYBrushOverlay-ECZJJLAJ.module.min.js +1 -0
  11. package/dist/chunk-XYBrushOverlay-EP2SV3UI.module.min.js +2 -0
  12. package/dist/chunk-chunk-255KDHW5.module.min.js +1 -0
  13. package/dist/chunk-chunk-27HVVXS6.module.min.js +1 -0
  14. package/dist/chunk-chunk-2CXCXRB4.module.min.js +1 -0
  15. package/dist/chunk-chunk-2JGJ5GUG.module.min.js +2 -0
  16. package/dist/chunk-chunk-2UN3ANRN.module.min.js +2 -0
  17. package/dist/chunk-chunk-2VUEY5TH.module.min.js +1 -0
  18. package/dist/chunk-chunk-2WVCH4PL.module.min.js +1 -0
  19. package/dist/chunk-chunk-5UKL5W76.module.min.js +2 -0
  20. package/dist/chunk-chunk-5WEFWNUW.module.min.js +2 -0
  21. package/dist/chunk-chunk-6F6GEAQU.module.min.js +1 -0
  22. package/dist/chunk-chunk-7LHMKRKE.module.min.js +2 -0
  23. package/dist/chunk-chunk-BHYTYMY2.module.min.js +2 -0
  24. package/dist/chunk-chunk-C6EJ4IOD.module.min.js +2 -0
  25. package/dist/chunk-chunk-CA3YDW6F.module.min.js +1 -0
  26. package/dist/chunk-chunk-CP3EN6KZ.module.min.js +1 -0
  27. package/dist/chunk-chunk-CYIML3AV.module.min.js +2 -0
  28. package/dist/chunk-chunk-DNY43POY.module.min.js +1 -0
  29. package/dist/chunk-chunk-DSNGDNJY.module.min.js +1 -0
  30. package/dist/chunk-chunk-E7MIQX7D.module.min.js +2 -0
  31. package/dist/chunk-chunk-EMO5NUGE.module.min.js +1 -0
  32. package/dist/chunk-chunk-ES4DCG3L.module.min.js +1 -0
  33. package/dist/chunk-chunk-FAKO3RGQ.module.min.js +2 -0
  34. package/dist/chunk-chunk-FYY2ACNJ.module.min.js +2 -0
  35. package/dist/chunk-chunk-G7WFWHAD.module.min.js +2 -0
  36. package/dist/chunk-chunk-GMQ5AYTD.module.min.js +1 -0
  37. package/dist/chunk-chunk-H4PPRW6N.module.min.js +1 -0
  38. package/dist/chunk-chunk-IFYPMWKY.module.min.js +1 -0
  39. package/dist/chunk-chunk-J3ELI22J.module.min.js +1 -0
  40. package/dist/chunk-chunk-J3QOW4OE.module.min.js +0 -0
  41. package/dist/chunk-chunk-J3XWETBJ.module.min.js +2 -0
  42. package/dist/chunk-chunk-JCG72SGW.module.min.js +2 -0
  43. package/dist/{semiotic-ai-chunk-OG7BQUUW.module.min.js → chunk-chunk-JJ2OOIET.module.min.js} +0 -1
  44. package/dist/chunk-chunk-KTWEBFMX.module.min.js +2 -0
  45. package/dist/chunk-chunk-L6D3I3V7.module.min.js +2 -0
  46. package/dist/chunk-chunk-M337NY6L.module.min.js +1 -0
  47. package/dist/chunk-chunk-NO4MCQVD.module.min.js +1 -0
  48. package/dist/chunk-chunk-ODUZEEBH.module.min.js +2 -0
  49. package/dist/chunk-chunk-P6UBCMSQ.module.min.js +2 -0
  50. package/dist/chunk-chunk-Q2YADC2V.module.min.js +2 -0
  51. package/dist/chunk-chunk-QRIBHZYW.module.min.js +1 -0
  52. package/dist/chunk-chunk-QSQVBIJA.module.min.js +1 -0
  53. package/dist/chunk-chunk-RCF52Z42.module.min.js +2 -0
  54. package/dist/chunk-chunk-RH5TSQPH.module.min.js +1 -0
  55. package/dist/chunk-chunk-ROP4HI7H.module.min.js +2 -0
  56. package/dist/chunk-chunk-RZH7VZYS.module.min.js +2 -0
  57. package/dist/chunk-chunk-SIRIJ3DY.module.min.js +1 -0
  58. package/dist/chunk-chunk-STZFFTAN.module.min.js +2 -0
  59. package/dist/chunk-chunk-SV4XAZ3Q.module.min.js +1 -0
  60. package/dist/chunk-chunk-T27ZEV6A.module.min.js +1 -0
  61. package/dist/chunk-chunk-U3AGQ5EF.module.min.js +2 -0
  62. package/dist/chunk-chunk-U66USBWU.module.min.js +1 -0
  63. package/dist/chunk-chunk-VVCA3DB7.module.min.js +1 -0
  64. package/dist/chunk-chunk-W3DB2MN4.module.min.js +2 -0
  65. package/dist/chunk-chunk-WCX6U47H.module.min.js +2 -0
  66. package/dist/chunk-chunk-WDIN4LRC.module.min.js +1 -0
  67. package/dist/chunk-chunk-XEVJDUTH.module.min.js +1 -0
  68. package/dist/chunk-chunk-XOYX77KF.module.min.js +2 -0
  69. package/dist/chunk-chunk-YCQYG6J5.module.min.js +2 -0
  70. package/dist/chunk-chunk-YHNZCPOZ.module.min.js +2 -0
  71. package/dist/chunk-chunk-YWZB3KPI.module.min.js +2 -0
  72. package/dist/chunk-chunk-Z5KXAVQD.module.min.js +2 -0
  73. package/dist/chunk-chunk-ZCNBUZPL.module.min.js +2 -0
  74. package/dist/chunk-chunk-ZLKRTF5N.module.min.js +2 -0
  75. package/dist/chunk-chunk-ZTNVDWAK.module.min.js +2 -0
  76. package/dist/chunk-statisticalOverlays-6MVAK5RW.module.min.js +2 -0
  77. package/dist/components/AccessibleNavTree.d.ts +7 -1
  78. package/dist/components/ai/chartClinicMetadata.generated.d.ts +15 -0
  79. package/dist/components/ai/useNavigationSync.d.ts +17 -2
  80. package/dist/components/chartContainerMobile.d.ts +9 -0
  81. package/dist/components/charts/geo/ChoroplethMap.d.ts +19 -2
  82. package/dist/components/charts/geo/DistanceCartogram.d.ts +14 -2
  83. package/dist/components/charts/geo/FlowMap.d.ts +10 -6
  84. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +14 -2
  85. package/dist/components/charts/index.d.ts +6 -0
  86. package/dist/components/charts/network/ChordDiagram.d.ts +9 -1
  87. package/dist/components/charts/network/ForceDirectedGraph.d.ts +11 -0
  88. package/dist/components/charts/network/SankeyDiagram.d.ts +9 -1
  89. package/dist/components/charts/ordinal/BarChart.d.ts +21 -0
  90. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +11 -0
  91. package/dist/components/charts/ordinal/StackedBarChart.d.ts +11 -0
  92. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +7 -0
  93. package/dist/components/charts/physics/EventDropChart.d.ts +7 -0
  94. package/dist/components/charts/physics/GaltonBoardChart.d.ts +8 -0
  95. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +7 -0
  96. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +4 -25
  97. package/dist/components/charts/physics/PhysicsPileChart.d.ts +7 -0
  98. package/dist/components/charts/physics/physicsChartShared.d.ts +17 -1
  99. package/dist/components/charts/physics/physicsCustomLayout.d.ts +32 -0
  100. package/dist/components/charts/shared/AnnotationLabel.d.ts +88 -0
  101. package/dist/components/charts/shared/annotationActivation.d.ts +35 -0
  102. package/dist/components/charts/shared/annotationLabelLayout.d.ts +5 -0
  103. package/dist/components/charts/shared/annotationRules.d.ts +2 -1
  104. package/dist/components/charts/shared/auditAccessibilityText.d.ts +13 -0
  105. package/dist/components/charts/shared/chartSelectionUtils.d.ts +4 -0
  106. package/dist/components/charts/shared/chartSpecCore.d.ts +3 -3
  107. package/dist/components/charts/shared/datumTypes.d.ts +2 -0
  108. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +2 -0
  109. package/dist/components/charts/shared/formatUtils.d.ts +3 -3
  110. package/dist/components/charts/shared/hatchFill.d.ts +87 -0
  111. package/dist/components/charts/shared/hooks.d.ts +7 -6
  112. package/dist/components/charts/shared/knownChartComponents.d.ts +9 -0
  113. package/dist/components/charts/shared/leastSquaresRegression.d.ts +16 -0
  114. package/dist/components/charts/shared/mergeShapeStyle.d.ts +3 -2
  115. package/dist/components/charts/shared/semanticInteractions.d.ts +42 -0
  116. package/dist/components/charts/shared/sparseArray.d.ts +1 -1
  117. package/dist/components/charts/shared/streamPropsHelpers.d.ts +6 -4
  118. package/dist/components/charts/shared/styleRules.d.ts +205 -0
  119. package/dist/components/charts/shared/tooltipUtils.d.ts +22 -9
  120. package/dist/components/charts/shared/types.d.ts +9 -6
  121. package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +16 -2
  122. package/dist/components/charts/shared/useChartSetup.d.ts +2 -2
  123. package/dist/components/charts/shared/useCustomChartSetup.d.ts +3 -0
  124. package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -2
  125. package/dist/components/charts/shared/useLikertAggregation.d.ts +4 -4
  126. package/dist/components/charts/shared/useOrdinalBrush.d.ts +2 -1
  127. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +24 -1
  128. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  129. package/dist/components/charts/shared/useXYLineStyle.d.ts +10 -0
  130. package/dist/components/charts/shared/useXYPointStyle.d.ts +19 -1
  131. package/dist/components/charts/shared/validateChartData.d.ts +7 -5
  132. package/dist/components/charts/shared/validationMap.d.ts +11 -2
  133. package/dist/components/charts/shared/validationMap.generated.d.ts +6 -0
  134. package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
  135. package/dist/components/charts/value/targetPresentation.d.ts +22 -0
  136. package/dist/components/charts/value/types.d.ts +5 -6
  137. package/dist/components/charts/xy/AreaChart.d.ts +8 -0
  138. package/dist/components/charts/xy/BubbleChart.d.ts +9 -0
  139. package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -0
  140. package/dist/components/charts/xy/DifferenceChart.d.ts +1 -52
  141. package/dist/components/charts/xy/Heatmap.d.ts +2 -2
  142. package/dist/components/charts/xy/LineChart.d.ts +11 -0
  143. package/dist/components/charts/xy/QuadrantChart.d.ts +7 -0
  144. package/dist/components/charts/xy/Scatterplot.d.ts +10 -0
  145. package/dist/components/charts/xy/StackedAreaChart.d.ts +7 -0
  146. package/dist/components/charts/xy/differenceSegments.d.ts +49 -0
  147. package/dist/components/charts/xy/scatterplotMatrixInteractionTypes.d.ts +12 -0
  148. package/dist/components/controls/SentenceFilter.d.ts +97 -0
  149. package/dist/components/data/fromVegaLite.d.ts +19 -9
  150. package/dist/components/rough/createRoughRenderMode.d.ts +46 -0
  151. package/dist/components/semiotic-ai.d.ts +3 -1
  152. package/dist/components/semiotic-controls.d.ts +2 -0
  153. package/dist/components/semiotic-geo.d.ts +4 -0
  154. package/dist/components/semiotic-network.d.ts +4 -0
  155. package/dist/components/semiotic-ordinal.d.ts +6 -0
  156. package/dist/components/semiotic-physics.d.ts +4 -0
  157. package/dist/components/semiotic-rough.d.ts +4 -0
  158. package/dist/components/semiotic-utils-core.d.ts +4 -0
  159. package/dist/components/semiotic-xy.d.ts +4 -0
  160. package/dist/components/semiotic.d.ts +9 -1
  161. package/dist/components/server/optionalImageTypes.d.ts +37 -0
  162. package/dist/components/server/serverChartConfigShared.d.ts +9 -5
  163. package/dist/components/server/serverChartConfigs.d.ts +4 -4
  164. package/dist/components/server/staticAnnotations.d.ts +6 -3
  165. package/dist/components/server/staticLegend.d.ts +1 -1
  166. package/dist/components/server/staticNetwork.d.ts +4 -4
  167. package/dist/components/server/staticSVGChrome.d.ts +5 -4
  168. package/dist/components/store/ObservationStore.d.ts +21 -1
  169. package/dist/components/stream/AccessibleDataTable.d.ts +4 -10
  170. package/dist/components/stream/AriaLiveTooltip.d.ts +9 -0
  171. package/dist/components/stream/CanvasHitTester.d.ts +4 -4
  172. package/dist/components/stream/DataSourceAdapter.d.ts +1 -1
  173. package/dist/components/stream/FrameRuntime.d.ts +57 -0
  174. package/dist/components/stream/GeoParticlePool.d.ts +1 -1
  175. package/dist/components/stream/GeoPipelineStore.d.ts +43 -12
  176. package/dist/components/stream/GeoSVGOverlay.d.ts +64 -0
  177. package/dist/components/stream/NetworkCanvasHitTester.d.ts +2 -1
  178. package/dist/components/stream/NetworkPipelineStore.d.ts +24 -21
  179. package/dist/components/stream/NetworkSSRFrame.d.ts +17 -0
  180. package/dist/components/stream/NetworkSVGOverlay.d.ts +6 -0
  181. package/dist/components/stream/OrdinalBrushOverlay.d.ts +1 -2
  182. package/dist/components/stream/OrdinalBrushOverlayLazy.d.ts +9 -0
  183. package/dist/components/stream/OrdinalCanvasHitTester.d.ts +2 -2
  184. package/dist/components/stream/OrdinalPipelineStore.d.ts +13 -13
  185. package/dist/components/stream/OrdinalSVGOverlay.d.ts +9 -1
  186. package/dist/components/stream/OrdinalStyleResolver.d.ts +12 -0
  187. package/dist/components/stream/ParticlePool.d.ts +1 -1
  188. package/dist/components/stream/PipelineStore.d.ts +12 -16
  189. package/dist/components/stream/SVGOverlay.d.ts +6 -0
  190. package/dist/components/stream/SceneGraph.d.ts +3 -3
  191. package/dist/components/stream/XYBrushOverlayLazy.d.ts +17 -0
  192. package/dist/components/stream/accessorUtils.d.ts +2 -2
  193. package/dist/components/stream/annotationAccessorResolver.d.ts +2 -2
  194. package/dist/components/stream/frameGraphics.d.ts +4 -0
  195. package/dist/components/stream/frameKeyboardNavigation.d.ts +45 -0
  196. package/dist/components/stream/geoPipelineHelpers.d.ts +3 -3
  197. package/dist/components/stream/geoPipelineUpdateResults.d.ts +34 -0
  198. package/dist/components/stream/geoSceneBuilder.d.ts +16 -0
  199. package/dist/components/stream/geoTypes.d.ts +48 -15
  200. package/dist/components/stream/hitTestUtils.d.ts +2 -2
  201. package/dist/components/stream/hoverUtils.d.ts +4 -2
  202. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +1 -0
  203. package/dist/components/stream/layouts/hierarchyUtils.d.ts +2 -2
  204. package/dist/components/stream/networkCustomLayoutRunner.d.ts +23 -0
  205. package/dist/components/stream/networkCustomRestyle.d.ts +15 -0
  206. package/dist/components/stream/networkFrameAnimation.d.ts +7 -0
  207. package/dist/components/stream/networkFrameHandleTypes.d.ts +39 -0
  208. package/dist/components/stream/networkFrameObservations.d.ts +15 -0
  209. package/dist/components/stream/networkFramePaint.d.ts +11 -2
  210. package/dist/components/stream/networkInteractionTypes.d.ts +26 -0
  211. package/dist/components/stream/networkPipelineConfig.d.ts +2 -2
  212. package/dist/components/stream/networkPipelineUpdateResults.d.ts +38 -0
  213. package/dist/components/stream/networkTypes.d.ts +37 -56
  214. package/dist/components/stream/ordinalCanvasRenderers.d.ts +2 -2
  215. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +20 -1
  216. package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -2
  217. package/dist/components/stream/ordinalTypes.d.ts +30 -3
  218. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +2 -0
  219. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +6 -0
  220. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +21 -6
  221. package/dist/components/stream/physics/physicsFrameObservations.d.ts +19 -0
  222. package/dist/components/stream/physics/physicsFrameSetup.d.ts +4 -0
  223. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +19 -1
  224. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +3 -1
  225. package/dist/components/stream/pipelineConfig.d.ts +4 -2
  226. package/dist/components/stream/pipelineDecay.d.ts +2 -2
  227. package/dist/components/stream/pipelinePulse.d.ts +2 -2
  228. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +23 -2
  229. package/dist/components/stream/pipelineTransitions.d.ts +1 -1
  230. package/dist/components/stream/pipelineUpdateContract.d.ts +7 -0
  231. package/dist/components/stream/pipelineUpdateStore.d.ts +21 -0
  232. package/dist/components/stream/renderBackend.d.ts +27 -0
  233. package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +15 -1
  234. package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +3 -2
  235. package/dist/components/stream/renderers/networkParticleRenderer.d.ts +1 -1
  236. package/dist/components/stream/sceneRenderBackendTypes.d.ts +28 -0
  237. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +31 -4
  238. package/dist/components/stream/streamSemanticTypes.d.ts +16 -0
  239. package/dist/components/stream/streamThemeTypes.d.ts +14 -0
  240. package/dist/components/stream/svgOverlayUtils.d.ts +10 -0
  241. package/dist/components/stream/test-utils/frameScheduler.d.ts +12 -0
  242. package/dist/components/stream/test-utils/revisionConsumption.d.ts +13 -0
  243. package/dist/components/stream/titleLayout.d.ts +31 -0
  244. package/dist/components/stream/types.d.ts +30 -65
  245. package/dist/components/stream/useCanvasFrameHost.d.ts +71 -0
  246. package/dist/components/stream/useFrame.d.ts +23 -0
  247. package/dist/components/stream/useLegendCategoryEmission.d.ts +3 -3
  248. package/dist/components/stream/useSemanticFrameInteractions.d.ts +22 -0
  249. package/dist/components/stream/useUpdateResultSnapshot.d.ts +7 -0
  250. package/dist/components/stream/xyFrameAxisTypes.d.ts +50 -0
  251. package/dist/components/stream/xySceneBuilders/types.d.ts +6 -5
  252. package/dist/controls.min.js +1 -1
  253. package/dist/controls.module.min.js +1 -1
  254. package/dist/forceLayoutWorker.js +1 -1
  255. package/dist/geo.min.js +1 -1
  256. package/dist/geo.module.min.js +1 -1
  257. package/dist/network.min.js +1 -1
  258. package/dist/network.module.min.js +1 -1
  259. package/dist/ordinal.min.js +1 -1
  260. package/dist/ordinal.module.min.js +1 -1
  261. package/dist/physics-matter.min.js +1 -1
  262. package/dist/physics-matter.module.min.js +1 -1
  263. package/dist/physics-rapier.min.js +1 -1
  264. package/dist/physics-rapier.module.min.js +1 -1
  265. package/dist/physics.min.js +1 -1
  266. package/dist/physics.module.min.js +1 -1
  267. package/dist/physicsWorker.js +1 -1
  268. package/dist/realtime.min.js +1 -1
  269. package/dist/realtime.module.min.js +1 -1
  270. package/dist/rough.min.js +1 -0
  271. package/dist/rough.module.min.js +1 -0
  272. package/dist/semiotic-ai-core.min.js +1 -1
  273. package/dist/semiotic-ai-core.module.min.js +1 -1
  274. package/dist/semiotic-ai.d.ts +3 -1
  275. package/dist/semiotic-ai.min.js +1 -1
  276. package/dist/semiotic-ai.module.min.js +1 -1
  277. package/dist/semiotic-controls.d.ts +2 -0
  278. package/dist/semiotic-data.min.js +1 -1
  279. package/dist/semiotic-data.module.min.js +1 -1
  280. package/dist/semiotic-experimental.min.js +1 -1
  281. package/dist/semiotic-experimental.module.min.js +1 -1
  282. package/dist/semiotic-geo.d.ts +4 -0
  283. package/dist/semiotic-network.d.ts +4 -0
  284. package/dist/semiotic-ordinal.d.ts +6 -0
  285. package/dist/semiotic-physics.d.ts +4 -0
  286. package/dist/semiotic-realtime-core.min.js +1 -1
  287. package/dist/semiotic-realtime-core.module.min.js +1 -1
  288. package/dist/semiotic-realtime-react.min.js +1 -1
  289. package/dist/semiotic-realtime-react.module.min.js +1 -1
  290. package/dist/semiotic-recipes-core.min.js +1 -1
  291. package/dist/semiotic-recipes-core.module.min.js +1 -1
  292. package/dist/semiotic-recipes-react.min.js +1 -1
  293. package/dist/semiotic-recipes-react.module.min.js +1 -1
  294. package/dist/semiotic-recipes.min.js +1 -1
  295. package/dist/semiotic-recipes.module.min.js +1 -1
  296. package/dist/semiotic-rough.d.ts +4 -0
  297. package/dist/semiotic-server-edge.min.js +1 -1
  298. package/dist/semiotic-server-edge.module.min.js +1 -1
  299. package/dist/semiotic-server-node.min.js +1 -1
  300. package/dist/semiotic-server-node.module.min.js +1 -1
  301. package/dist/semiotic-themes-core.min.js +1 -1
  302. package/dist/semiotic-themes-core.module.min.js +1 -1
  303. package/dist/semiotic-themes-react.min.js +1 -1
  304. package/dist/semiotic-themes-react.module.min.js +1 -1
  305. package/dist/semiotic-themes.min.js +1 -1
  306. package/dist/semiotic-themes.module.min.js +1 -1
  307. package/dist/semiotic-utils-core.d.ts +4 -0
  308. package/dist/semiotic-utils-core.min.js +1 -1
  309. package/dist/semiotic-utils-core.module.min.js +1 -1
  310. package/dist/semiotic-utils-react.min.js +1 -1
  311. package/dist/semiotic-utils-react.module.min.js +1 -1
  312. package/dist/semiotic-utils.min.js +1 -1
  313. package/dist/semiotic-utils.module.min.js +1 -1
  314. package/dist/semiotic-value.min.js +1 -1
  315. package/dist/semiotic-value.module.min.js +1 -1
  316. package/dist/semiotic-xy.d.ts +4 -0
  317. package/dist/semiotic.d.ts +9 -1
  318. package/dist/semiotic.min.js +1 -1
  319. package/dist/semiotic.module.min.js +1 -1
  320. package/dist/server.min.js +1 -1
  321. package/dist/server.module.min.js +1 -1
  322. package/dist/test-utils/capturedFrameProps.d.ts +67 -0
  323. package/dist/test-utils/frameMock.d.ts +12 -9
  324. package/dist/xy.min.js +1 -1
  325. package/dist/xy.module.min.js +1 -1
  326. package/package.json +29 -10
  327. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +0 -2
  328. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +0 -2
  329. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +0 -2
  330. package/dist/xy-chunk-IWD6IB6V.module.min.js +0 -2
  331. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +0 -2
@@ -33,6 +33,12 @@ export type { GlyphDef, GlyphPart } from "./stream/glyphDef";
33
33
  export type { GlyphSceneNode, SceneAccessibilityMetadata } from "./stream/types";
34
34
  export { createHatchPattern } from "./charts/shared/hatchPattern";
35
35
  export type { HatchPatternOptions } from "./charts/shared/hatchPattern";
36
+ export { isHatchFill, hatchPatternDef, resolveSvgFill, hatchFillId } from "./charts/shared/hatchFill";
37
+ export type { HatchFill } from "./charts/shared/hatchFill";
38
+ export { resolveStyleRules, matchesThreshold, ruleMatches, makeRuleValueResolver, makeXYRuleContext, makeNodeRuleContext, composeStyleRules, makeStyleRuleStyleFn, } from "./charts/shared/styleRules";
39
+ export type { StyleRule, StyleRuleStyle, StyleRuleThreshold, StyleRuleContext, StyleRulePredicate, } from "./charts/shared/styleRules";
40
+ export { AnnotationLabel, estimateLabelWidth } from "./charts/shared/AnnotationLabel";
41
+ export type { AnnotationLabelBackground, AnnotationLabelBackgroundConfig, AnnotationLabelProps } from "./charts/shared/AnnotationLabel";
36
42
  export type { StreamOrdinalFrameProps, StreamOrdinalFrameHandle, OrdinalChartType, OrdinalScales, OrdinalSceneNode } from "./stream/ordinalTypes";
37
43
  export type { BarChartProps } from "./charts/ordinal/BarChart";
38
44
  export type { StackedBarChartProps } from "./charts/ordinal/StackedBarChart";
@@ -54,3 +54,7 @@ export { compileDependencyMachine, routeDependencyTracks, createLogicalJoin, rep
54
54
  export type { DependencyAccessor, DependencyTaskStatus, DependencyMachineAccessors, CompileDependencyMachineOptions, DependencyMachineDiagnosticCode, DependencyMachineDiagnostic, DependencyMachineNode, DependencyMachineEdge, DependencyMachine, DependencyPoint, DependencyTrackDimensions, DependencyTrackOptions, DependencyTaskPlacement, DependencySocketPlacement, DependencyTrackRoute, DependencyTrackLayout, LogicalJoinSnapshot, LogicalJoin, DependencyReplayEvent, DependencyReplayClock, DependencyReplayState, BlockerAmplification, BlockerAmplificationOptions } from "./charts/physics/dependencyMachine";
55
55
  export { compileMotionEncoding, resolveMotionAccessor, resolveMotionAge, opacityFromAge, resolveMotionVector, deriveMotionVector } from "./charts/shared/motionEncoding";
56
56
  export type { MotionEncodingConstant, MotionEncodingAccessor, MotionTimeBasis, MotionTimeUnit, MotionCoordinateSpace, MotionTimeEncoding, MotionPlacementEncoding, MotionKinematicsEncoding, MotionProcessEncoding, MotionAccessibleEncoding, MotionEncoding, ResolvedMotionEncodingRow, MotionEncodingCompilation, CompileMotionEncodingOptions, ResolveMotionAgeOptions, ResolvedMotionAge, MotionAgeOpacityType, MotionAgeOpacityOptions, MotionPoint, ResolvedMotionVector } from "./charts/shared/motionEncoding";
57
+ export { resolveStyleRules, matchesThreshold, ruleMatches, makeRuleValueResolver, composeStyleRules } from "./charts/shared/styleRules";
58
+ export type { StyleRule, StyleRuleStyle, StyleRuleThreshold, StyleRuleContext, StyleRulePredicate } from "./charts/shared/styleRules";
59
+ export { isHatchFill, hatchPatternDef, resolveSvgFill, hatchFillId } from "./charts/shared/hatchFill";
60
+ export type { HatchFill } from "./charts/shared/hatchFill";
@@ -0,0 +1,4 @@
1
+ /** Optional Rough.js rendering adapter. Import from `semiotic/rough`. */
2
+ export { createRoughRenderMode, stableRoughSeed } from "./rough/createRoughRenderMode";
3
+ export type { RoughRenderMode, RoughRenderModeOptions } from "./rough/createRoughRenderMode";
4
+ export type { SceneRenderBackend, SceneRenderMode } from "./stream/types";
@@ -14,6 +14,10 @@ export { adaptiveTimeTicks, smartTickFormat } from "./charts/shared/formatUtils"
14
14
  export { darkenColor, lightenColor } from "./charts/shared/colorManipulation";
15
15
  export { createHatchPattern } from "./charts/shared/hatchPattern";
16
16
  export type { HatchPatternOptions } from "./charts/shared/hatchPattern";
17
+ export { isHatchFill, hatchFillId, hatchFillKey } from "./charts/shared/hatchFill";
18
+ export type { HatchFill } from "./charts/shared/hatchFill";
19
+ export { resolveStyleRules, matchesThreshold, ruleMatches, makeRuleValueResolver, makeXYRuleContext, makeNodeRuleContext, composeStyleRules, makeStyleRuleStyleFn, } from "./charts/shared/styleRules";
20
+ export type { StyleRule, StyleRuleStyle, StyleRuleThreshold, StyleRuleContext, StyleRulePredicate, } from "./charts/shared/styleRules";
17
21
  export { validateProps } from "./charts/shared/validateProps";
18
22
  export { diagnoseConfig } from "./charts/shared/diagnoseConfig";
19
23
  export { auditAccessibility, formatAccessibilityAudit, accessibilityCaveats } from "./charts/shared/auditAccessibility";
@@ -42,3 +42,7 @@ export type { QuadrantChartProps, QuadrantsConfig, QuadrantsConfigOverride, Quad
42
42
  export type { MultiAxisLineChartProps } from "./charts/xy/MultiAxisLineChart";
43
43
  export type { CandlestickChartProps } from "./charts/xy/CandlestickChart";
44
44
  export type { XYCustomChartProps } from "./charts/custom/XYCustomChart";
45
+ export { resolveStyleRules, matchesThreshold, ruleMatches, makeRuleValueResolver, makeXYRuleContext, composeStyleRules } from "./charts/shared/styleRules";
46
+ export type { StyleRule, StyleRuleStyle, StyleRuleThreshold, StyleRuleContext, StyleRulePredicate } from "./charts/shared/styleRules";
47
+ export { isHatchFill, hatchPatternDef, resolveSvgFill, hatchFillId } from "./charts/shared/hatchFill";
48
+ export type { HatchFill } from "./charts/shared/hatchFill";
@@ -52,7 +52,9 @@ export type { CustomLayoutFailureDiagnostic, CustomLayoutFailureRecovery, Custom
52
52
  export type { UseSelectionOptions, UseSelectionResult, UseSelectionActionsResult, UseLinkedHoverOptions, UseLinkedHoverResult, UseBrushSelectionOptions, UseBrushSelectionResult } from "./LinkedCharts";
53
53
  export { useChartObserver } from "./LinkedCharts";
54
54
  export type { UseChartObserverOptions, UseChartObserverResult } from "./LinkedCharts";
55
- export type { ChartObservation, OnObservationCallback } from "./store/ObservationStore";
55
+ export type { ChartObservation, OnObservationCallback, ObservationInputType, FocusObservation, ActivateObservation, AnnotationActivateObservation } from "./store/ObservationStore";
56
+ export { annotationStableId } from "./charts/shared/annotationActivation";
57
+ export type { ChartAnnotation, AnnotationActivationEvent, OnAnnotationActivateCallback } from "./charts/shared/annotationActivation";
56
58
  export type { ResolutionMode, SelectionClause, Selection } from "./store/SelectionStore";
57
59
  export type { SemioticTheme } from "./ThemeProvider";
58
60
  export { LIGHT_THEME, DARK_THEME, HIGH_CONTRAST_THEME } from "./ThemeProvider";
@@ -83,6 +85,12 @@ export type { ChartConfig, ToConfigOptions, CopyFormat } from "./export/chartCon
83
85
  export type { VegaLiteSpec, VegaLiteEncoding } from "./data/fromVegaLite";
84
86
  export type { SerializedSelections, SerializedSelection, SerializedFieldSelection } from "./export/selectionSerializer";
85
87
  export type { HatchPatternOptions } from "./charts/shared/hatchPattern";
88
+ export { isHatchFill, hatchPatternDef, resolveSvgFill, hatchFillId } from "./charts/shared/hatchFill";
89
+ export type { HatchFill } from "./charts/shared/hatchFill";
90
+ export { resolveStyleRules, matchesThreshold, ruleMatches, makeRuleValueResolver, makeXYRuleContext, makeNodeRuleContext, composeStyleRules, makeStyleRuleStyleFn, styleRulesToPieceStyle, styleRulesToXYStyle, styleRulesToNodeStyle, } from "./charts/shared/styleRules";
91
+ export type { StyleRule, StyleRuleStyle, StyleRuleThreshold, StyleRuleContext, StyleRulePredicate, } from "./charts/shared/styleRules";
92
+ export { AnnotationLabel, estimateLabelWidth } from "./charts/shared/AnnotationLabel";
93
+ export type { AnnotationLabelBackground, AnnotationLabelBackgroundConfig, AnnotationLabelProps } from "./charts/shared/AnnotationLabel";
86
94
  export { smartTickFormat, adaptiveTimeTicks } from "./charts/shared/formatUtils";
87
95
  export { darkenColor, lightenColor } from "./charts/shared/colorManipulation";
88
96
  export type { TooltipProp, TooltipConfig, TooltipField, MultiLineTooltipConfig } from "./Tooltip/Tooltip";
@@ -0,0 +1,37 @@
1
+ export interface SharpPipeline {
2
+ resize(width: number, height: number): SharpPipeline;
3
+ ensureAlpha(): SharpPipeline;
4
+ raw(): SharpPipeline;
5
+ jpeg(options: {
6
+ quality: number;
7
+ }): SharpPipeline;
8
+ png(): SharpPipeline;
9
+ toBuffer(): Promise<Buffer>;
10
+ }
11
+ export type SharpFactory = (input: Uint8Array, options?: {
12
+ density: number;
13
+ }) => SharpPipeline;
14
+ export type SharpModule = SharpFactory & {
15
+ default?: SharpFactory;
16
+ };
17
+ export type GifPalette = number[][] | Uint8Array;
18
+ export interface GifEncoder {
19
+ writeFrame(indexedPixels: Uint8Array, width: number, height: number, options: {
20
+ palette: GifPalette;
21
+ delay: number;
22
+ repeat: number;
23
+ }): void;
24
+ finish(): void;
25
+ bytes(): Uint8Array;
26
+ }
27
+ export interface GifencExports {
28
+ GIFEncoder?: () => GifEncoder;
29
+ quantize?: (pixels: Uint8Array, maxColors: number) => GifPalette;
30
+ applyPalette?: (pixels: Uint8Array, palette: GifPalette) => Uint8Array;
31
+ default?: GifencExports;
32
+ }
33
+ export interface GifencRuntimeExports extends GifencExports {
34
+ GIFEncoder: () => GifEncoder;
35
+ quantize: (pixels: Uint8Array, maxColors: number) => GifPalette;
36
+ applyPalette: (pixels: Uint8Array, palette: GifPalette) => Uint8Array;
37
+ }
@@ -1,15 +1,19 @@
1
1
  import type { Datum } from "../charts/shared/datumTypes";
2
2
  export type FrameType = "xy" | "ordinal" | "network" | "geo" | "physics";
3
+ export type ServerAccessorValue = string | number | boolean | Date | null | undefined;
4
+ export type ServerAccessor = string | ((datum: Datum) => ServerAccessorValue);
5
+ export type ServerColorScheme = string | string[] | Record<string, string> | undefined;
6
+ export type ServerChartData = Datum | Datum[] | null | undefined;
3
7
  export interface ChartConfig {
4
8
  frameType: FrameType;
5
9
  /** Build frame props from HOC-level props */
6
- buildProps: (data: any, colorBy: any, colorScheme: any, common: Datum, rest: Datum) => Datum;
10
+ buildProps: (data: ServerChartData, colorBy: ServerAccessor | undefined, colorScheme: ServerColorScheme, common: Datum, rest: Datum) => Datum;
7
11
  }
8
- export declare function accessorValue(accessor: any, fallback: string, d: Datum): any;
9
- export declare function numericValue(value: any): number;
12
+ export declare function accessorValue(accessor: ServerAccessor | undefined, fallback: string, d: Datum): ServerAccessorValue;
13
+ export declare function numericValue(value: ServerAccessorValue): number;
10
14
  export declare function viridisColor(i: number, n: number): string;
11
- export declare function prepareConnectedScatterplotData(data: any, rest: Datum): {
12
- data: any;
15
+ export declare function prepareConnectedScatterplotData(data: ServerChartData, rest: Datum): {
16
+ data: ServerChartData;
13
17
  orderMap: WeakMap<Datum, {
14
18
  idx: number;
15
19
  total: number;
@@ -14,15 +14,15 @@ export declare const CHART_CONFIGS: {
14
14
  CandlestickChart: ChartConfig;
15
15
  BubbleChart: {
16
16
  frameType: "xy";
17
- buildProps: (data: any, colorBy: any, colorScheme: any, common: import("../stream/networkColorAccessors").Datum, rest: import("../stream/networkColorAccessors").Datum) => {
17
+ buildProps: (data: import("./serverChartConfigShared").ServerChartData, colorBy: import("./serverChartConfigShared").ServerAccessor | undefined, colorScheme: import("./serverChartConfigShared").ServerColorScheme, common: import("../stream/networkColorAccessors").Datum, rest: import("../stream/networkColorAccessors").Datum) => {
18
18
  chartType: string;
19
- data: any;
19
+ data: import("./serverChartConfigShared").ServerChartData;
20
20
  xAccessor: any;
21
21
  yAccessor: any;
22
- colorAccessor: any;
22
+ colorAccessor: import("./serverChartConfigShared").ServerAccessor | undefined;
23
23
  sizeAccessor: any;
24
24
  sizeRange: any;
25
- colorScheme: any;
25
+ colorScheme: import("./serverChartConfigShared").ServerColorScheme;
26
26
  };
27
27
  };
28
28
  ConnectedScatterplot: ChartConfig;
@@ -1,4 +1,4 @@
1
- import type { Datum } from "../charts/shared/datumTypes";
1
+ import type { Datum, DatumValue } from "../charts/shared/datumTypes";
2
2
  /**
3
3
  * Static annotation rendering for server-side SVG.
4
4
  *
@@ -9,8 +9,8 @@ import * as React from "react";
9
9
  import type { SemioticTheme } from "../store/ThemeStore";
10
10
  import { type AutoPlaceAnnotations } from "../recipes/annotationLayout";
11
11
  interface AnnotationScales {
12
- x?: (v: any) => number;
13
- y?: (v: any) => number;
12
+ x?: AnnotationScale;
13
+ y?: AnnotationScale;
14
14
  /** For ordinal charts: band scale */
15
15
  o?: {
16
16
  (v: string): number | undefined;
@@ -25,6 +25,9 @@ interface AnnotationScales {
25
25
  */
26
26
  geoProjection?: (coords: [number, number]) => [number, number] | null;
27
27
  }
28
+ type AnnotationScale = {
29
+ bivarianceHack(value: DatumValue): number;
30
+ }["bivarianceHack"];
28
31
  interface AnnotationLayout {
29
32
  width: number;
30
33
  height: number;
@@ -71,5 +71,5 @@ export declare function renderStaticGradientLegend(config: StaticGradientLegendC
71
71
  /**
72
72
  * Extract unique categories from data using an accessor.
73
73
  */
74
- export declare function extractCategories(data: any[], accessor: string | ((d: Datum) => string) | undefined): string[];
74
+ export declare function extractCategories(data: Datum[], accessor: string | ((d: Datum) => string) | undefined): string[];
75
75
  export {};
@@ -1,8 +1,8 @@
1
- import type { Datum } from "../charts/shared/datumTypes";
1
+ import type { Datum, DatumValue } from "../charts/shared/datumTypes";
2
2
  import type { NetworkPipelineConfig, RealtimeNode, RealtimeEdge, StreamNetworkFrameProps } from "../stream/networkTypes";
3
3
  import { type EvidenceSink } from "./renderEvidence";
4
4
  import type { ThemeAwareProps } from "./staticSVGChrome";
5
- export declare function resolveAccessor(accessor: string | ((d: Datum) => any) | undefined, defaultKey: string): (d: Datum) => any;
6
- export declare function buildRealtimeNodes(propsNodes: any[], config: NetworkPipelineConfig): RealtimeNode[];
7
- export declare function buildRealtimeEdges(propsEdges: any[], config: NetworkPipelineConfig): RealtimeEdge[];
5
+ export declare function resolveAccessor(accessor: string | ((d: Datum) => DatumValue) | undefined, defaultKey: string): (d: Datum) => DatumValue;
6
+ export declare function buildRealtimeNodes(propsNodes: Datum[], config: NetworkPipelineConfig): RealtimeNode[];
7
+ export declare function buildRealtimeEdges(propsEdges: Datum[], config: NetworkPipelineConfig): RealtimeEdge[];
8
8
  export declare function renderNetworkFrame(props: StreamNetworkFrameProps & ThemeAwareProps, sink?: EvidenceSink): string;
@@ -5,16 +5,17 @@ import type { StreamNetworkFrameProps, RealtimeEdge } from "../stream/networkTyp
5
5
  import type { StreamOrdinalFrameProps } from "../stream/ordinalTypes";
6
6
  import type { StreamGeoFrameProps } from "../stream/geoTypes";
7
7
  import type { PhysicsSettledSVGOptions } from "../stream/physics/PhysicsSettledSVG";
8
- import type { PhysicsPipelineStore } from "../stream/physics/PhysicsPipelineStore";
8
+ import type { PhysicsPipelineStore, PhysicsQueuedSpawn } from "../stream/physics/PhysicsPipelineStore";
9
9
  import type { OrdinalPipelineStore } from "../stream/OrdinalPipelineStore";
10
10
  import type { RenderEvidence } from "./renderEvidence";
11
11
  import { resolveTheme, type ThemeInput } from "./themeResolver";
12
12
  import type { SemioticTheme } from "../store/ThemeStore";
13
13
  import * as React from "react";
14
+ import { type AxisExtentMode } from "../charts/shared/axisExtent";
14
15
  export type FrameType = RenderEvidence["frameType"];
15
16
  export type StaticPhysicsFrameProps = PhysicsSettledSVGOptions & {
16
17
  config?: ConstructorParameters<typeof PhysicsPipelineStore>[0];
17
- initialSpawns?: Array<Record<string, unknown>>;
18
+ initialSpawns?: PhysicsQueuedSpawn[];
18
19
  projectionRows?: PhysicsSettledSVGOptions["projectionRows"];
19
20
  size?: [number, number];
20
21
  _idPrefix?: string;
@@ -82,12 +83,12 @@ export declare function renderLegendConfig(legend: unknown, options: {
82
83
  }): React.ReactNode;
83
84
  export declare function defaultTickFormat(v: number): string;
84
85
  /** Render grid lines for XY charts */
85
- export declare function renderGridSVG(scales: StreamScales, layout: StreamLayout, theme: SemioticTheme, idPrefix?: string): React.ReactNode;
86
+ export declare function renderGridSVG(scales: StreamScales, layout: StreamLayout, theme: SemioticTheme, idPrefix?: string, axisExtent?: AxisExtentMode): React.ReactNode;
86
87
  /** Render grid lines for ordinal charts */
87
88
  export declare function renderOrdinalGridSVG(store: OrdinalPipelineStore, layout: {
88
89
  width: number;
89
90
  height: number;
90
- }, theme: SemioticTheme, idPrefix?: string): React.ReactNode;
91
+ }, theme: SemioticTheme, idPrefix?: string, axisExtent?: AxisExtentMode): React.ReactNode;
91
92
  /** Wrap SVG content with accessibility attributes */
92
93
  export declare function wrapSVG(content: React.ReactNode, opts: {
93
94
  width: number;
@@ -6,6 +6,8 @@ interface ObservationBase {
6
6
  chartType: string;
7
7
  chartId?: string;
8
8
  }
9
+ /** Input channel that produced a semantic chart interaction. */
10
+ export type ObservationInputType = "keyboard" | "pointer" | "touch" | "navigation-tree";
9
11
  export interface HoverObservation extends ObservationBase {
10
12
  type: "hover";
11
13
  datum: Datum;
@@ -47,6 +49,24 @@ export interface ClickObservation extends ObservationBase {
47
49
  export interface ClickEndObservation extends ObservationBase {
48
50
  type: "click-end";
49
51
  }
52
+ /** A datum became the reader's active focus target. */
53
+ export interface FocusObservation extends ObservationBase {
54
+ type: "focus";
55
+ datum: Datum;
56
+ inputType: Exclude<ObservationInputType, "touch">;
57
+ }
58
+ /** A datum was deliberately activated, independent of input modality. */
59
+ export interface ActivateObservation extends ObservationBase {
60
+ type: "activate";
61
+ datum: Datum;
62
+ inputType: ObservationInputType;
63
+ }
64
+ /** A stable, interactive annotation was deliberately activated. */
65
+ export interface AnnotationActivateObservation extends ObservationBase {
66
+ type: "annotation-activate";
67
+ annotationId: string;
68
+ inputType: ObservationInputType;
69
+ }
50
70
  /**
51
71
  * Emitted when an event-time stream receives a record outside its
52
72
  * lateness/grace window (see `ReorderBuffer`). Surfaces lateness as an
@@ -66,7 +86,7 @@ export interface LateDataObservation extends ObservationBase {
66
86
  /** Running total of late events seen on this chart. */
67
87
  lateCount: number;
68
88
  }
69
- export type ChartObservation = HoverObservation | HoverEndObservation | BrushObservation | BrushEndObservation | SelectionObservation | SelectionEndObservation | ClickObservation | ClickEndObservation | ControlObservation | LateDataObservation;
89
+ export type ChartObservation = HoverObservation | HoverEndObservation | BrushObservation | BrushEndObservation | SelectionObservation | SelectionEndObservation | ClickObservation | ClickEndObservation | FocusObservation | ActivateObservation | AnnotationActivateObservation | ControlObservation | LateDataObservation;
70
90
  export type OnObservationCallback = (observation: ChartObservation) => void;
71
91
  export interface ObservationStoreState {
72
92
  /** Ring buffer of recent observations (newest last). Mutated in place for perf. */
@@ -1,8 +1,9 @@
1
1
  import * as React from "react";
2
+ import type { Datum } from "../charts/shared/datumTypes";
2
3
  import { type AccessibleSceneNode as AnySceneNode } from "./accessibleDataRows";
3
4
  export { extractAllRows } from "./accessibleDataRows";
4
5
  export type { DataRow } from "./accessibleDataRows";
5
- declare const SR_ONLY_STYLE: React.CSSProperties;
6
+ export { AriaLiveTooltip, SR_ONLY_STYLE } from "./AriaLiveTooltip";
6
7
  /**
7
8
  * Compute an aria-label describing the chart type and data shape from the scene graph.
8
9
  */
@@ -28,7 +29,7 @@ interface AccessibleDataTableProps {
28
29
  export declare function AccessibleDataTable({ scene, chartType, tableId, chartTitle }: AccessibleDataTableProps): React.JSX.Element | null;
29
30
  interface NetworkAccessibleDataTableProps {
30
31
  nodes: Array<{
31
- datum?: any;
32
+ datum?: Datum | null;
32
33
  id?: string;
33
34
  cx?: number;
34
35
  cy?: number;
@@ -36,7 +37,7 @@ interface NetworkAccessibleDataTableProps {
36
37
  y?: number;
37
38
  }>;
38
39
  edges: Array<{
39
- datum?: any;
40
+ datum?: Datum | null;
40
41
  source?: string;
41
42
  target?: string;
42
43
  }>;
@@ -62,10 +63,3 @@ export declare function ScreenReaderSummary({ summary }: {
62
63
  export declare function SkipToTableLink({ tableId }: {
63
64
  tableId: string;
64
65
  }): React.JSX.Element;
65
- /**
66
- * Visually-hidden aria-live region that mirrors tooltip text for screen readers.
67
- */
68
- export declare function AriaLiveTooltip({ hoverPoint }: {
69
- hoverPoint: any;
70
- }): React.JSX.Element;
71
- export { SR_ONLY_STYLE };
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import type { HoverData } from "../realtime/types";
3
+ export declare const SR_ONLY_STYLE: React.CSSProperties;
4
+ /** Visually-hidden aria-live region that mirrors tooltip text for screen readers. */
5
+ export declare function AriaLiveTooltip({ hoverPoint }: {
6
+ hoverPoint: Pick<HoverData, "data"> | {
7
+ data: object;
8
+ } | null;
9
+ }): React.JSX.Element;
@@ -1,17 +1,17 @@
1
- import type { SceneNode, PointSceneNode } from "./types";
1
+ import type { SceneNode, SceneDatum, PointSceneNode } from "./types";
2
+ import type { Datum } from "../charts/shared/datumTypes";
2
3
  import type { RingBuffer } from "../realtime/RingBuffer";
3
4
  import type { Quadtree } from "d3-quadtree";
4
- import type { Datum } from "../charts/shared/datumTypes";
5
5
  export interface HitResult {
6
6
  node: SceneNode;
7
- datum: any;
7
+ datum: SceneDatum;
8
8
  x: number;
9
9
  y: number;
10
10
  distance: number;
11
11
  }
12
12
  export interface XHitResult {
13
13
  node: SceneNode;
14
- datum: any;
14
+ datum: SceneDatum;
15
15
  x: number;
16
16
  y: number;
17
17
  y0?: number;
@@ -1,7 +1,7 @@
1
1
  import type { Changeset } from "./types";
2
2
  import type { Datum } from "../charts/shared/datumTypes";
3
3
  export type ChangesetCallback<T> = (changeset: Changeset<T>) => void;
4
- export declare class DataSourceAdapter<T = Datum> {
4
+ export declare class DataSourceAdapter<T extends object = Datum> {
5
5
  private callback;
6
6
  private lastBoundedData;
7
7
  private chunkTimer;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Shared timing and randomness policy for frame hosts.
3
+ *
4
+ * A runtime converts a wall clock into logical frame time. Logical time moves
5
+ * forward only while the frame is active, so a paused or hidden chart resumes
6
+ * from its previous animation state instead of fast-forwarding through the
7
+ * elapsed wall-clock interval.
8
+ */
9
+ export type FrameClock = () => number;
10
+ export type FrameRandom = () => number;
11
+ export interface FrameRuntimeOptions {
12
+ /** Monotonic wall-clock milliseconds. Defaults to performance.now/Date.now. */
13
+ clock?: FrameClock;
14
+ /** Injectable random source for tests or an embedding runtime. */
15
+ random?: FrameRandom;
16
+ /** Serializable deterministic random seed. Ignored when `random` is provided. */
17
+ seed?: number;
18
+ paused?: boolean;
19
+ visible?: boolean;
20
+ }
21
+ export interface FrameRuntimeSnapshot {
22
+ now: number;
23
+ paused: boolean;
24
+ seed?: number;
25
+ visible: boolean;
26
+ }
27
+ /** Mulberry32 is small, deterministic, and accepts the serializable integer seed surface. */
28
+ export declare function createSeededFrameRandom(seed: number): FrameRandom;
29
+ export declare class FrameRuntime {
30
+ private clock;
31
+ private lastWallTime;
32
+ private logicalTime;
33
+ private randomInput;
34
+ private randomSource;
35
+ private seedValue;
36
+ private pausedValue;
37
+ private subscribers;
38
+ private visibleValue;
39
+ /** Stable callable seam for stores and render loops. */
40
+ readonly now: () => number;
41
+ /** Stable callable seam for stochastic renderers. */
42
+ readonly random: () => number;
43
+ constructor(options?: FrameRuntimeOptions);
44
+ get isActive(): boolean;
45
+ get paused(): boolean;
46
+ get seed(): number | undefined;
47
+ get visible(): boolean;
48
+ configure(options: Pick<FrameRuntimeOptions, "clock" | "random" | "seed">): void;
49
+ setPaused(paused: boolean): void;
50
+ setVisible(visible: boolean): void;
51
+ snapshot(): FrameRuntimeSnapshot;
52
+ subscribe(listener: () => void): () => void;
53
+ private advance;
54
+ private emit;
55
+ private setClock;
56
+ private setRandomSource;
57
+ }
@@ -35,7 +35,7 @@ export declare class GeoParticlePool {
35
35
  particles: GeoParticle[];
36
36
  private capacity;
37
37
  constructor(capacity: number);
38
- spawn(lineIndex: number): GeoParticle | null;
38
+ spawn(lineIndex: number, random?: () => number): GeoParticle | null;
39
39
  /**
40
40
  * Advance all active particles.
41
41
  * @param paths - array of polyline paths, one per line index
@@ -7,8 +7,17 @@ import type { Datum } from "../charts/shared/datumTypes";
7
7
  import type { GeoLayoutResult } from "./geoCustomLayout";
8
8
  import type { CustomLayoutSelection } from "./customLayoutSelection";
9
9
  import { type CustomLayoutFailureDiagnostic } from "./customLayoutFailure";
10
- export declare class GeoPipelineStore {
10
+ import { GeoPipelineUpdateResults } from "./geoPipelineUpdateResults";
11
+ import { type UpdateResult, type UpdateResultStore } from "./pipelineUpdateStore";
12
+ export declare class GeoPipelineStore implements UpdateResultStore {
13
+ getLastUpdateResult: () => UpdateResult;
14
+ getUpdateSnapshot: () => UpdateResult;
15
+ subscribeUpdateResult: (listener: () => void) => () => void;
16
+ setLayoutSelection: (selection: CustomLayoutSelection | null) => void;
17
+ markStylePaintPending: () => void;
18
+ consumeStylePaintPending: () => boolean;
11
19
  config: GeoPipelineConfig;
20
+ protected updateResults: GeoPipelineUpdateResults;
12
21
  scene: GeoSceneNode[];
13
22
  scales: GeoScales | null;
14
23
  version: number;
@@ -55,18 +64,47 @@ export declare class GeoPipelineStore {
55
64
  private prevPositions;
56
65
  private _hasRenderedOnce;
57
66
  constructor(config: GeoPipelineConfig);
67
+ /** Keep Geo transitions and pulse lifecycle on the host's logical clock
68
+ * when one is supplied, while preserving the existing wall-clock default. */
69
+ private currentTime;
70
+ /** Resolve the one configuration-owned retention bound for both streaming
71
+ * points and flow lines. Keeping it here prevents imperative push paths
72
+ * from silently allocating a differently sized window. */
73
+ private getConfiguredWindowSize;
74
+ /** Trim the array-backed line collection only while it participates in a
75
+ * stream. Bounded `setLines` snapshots remain complete until conversion. */
76
+ private retainNewestLines;
77
+ /** Rebuild both point resources from the same retained suffix so pulse
78
+ * timestamps remain indexed to their matching point after a resize. */
79
+ private resizeStreamingWindow;
58
80
  updateConfig(config: Partial<GeoPipelineConfig>): void;
81
+ /** Additive explicit-result form of {@link updateConfig}. */
82
+ updateConfigWithResult(config: Partial<GeoPipelineConfig>): UpdateResult;
59
83
  setAreas(features: GeoJSON.Feature[]): void;
84
+ /** Additive explicit-result form of {@link setAreas}. */
85
+ setAreasWithResult(features: GeoJSON.Feature[]): UpdateResult;
60
86
  setPoints(data: Datum[]): void;
87
+ /** Additive explicit-result form of {@link setPoints}. */
88
+ setPointsWithResult(data: Datum[]): UpdateResult;
61
89
  setLines(data: Datum[]): void;
62
- /** Initialize streaming mode with a ring buffer */
90
+ /** Additive explicit-result form of {@link setLines}. */
91
+ setLinesWithResult(data: Datum[]): UpdateResult;
92
+ /**
93
+ * Enter streaming mode while retaining the newest configured window from a
94
+ * bounded snapshot. The optional legacy argument is immediately reflected
95
+ * in config so the config remains the sole owner of the active capacity.
96
+ */
63
97
  initStreaming(windowSize?: number): void;
64
98
  /** Push a single streaming point */
65
99
  pushPoint(datum: Datum): void;
100
+ /** Additive explicit-result form of {@link pushPoint}. */
101
+ pushPointWithResult(datum: Datum): UpdateResult;
66
102
  /** Push multiple streaming points */
67
103
  pushMany(data: Datum[]): void;
104
+ /** Additive explicit-result form of {@link pushMany}. */
105
+ pushManyWithResult(data: Datum[]): UpdateResult;
68
106
  /** Append a single line/flow record (coordinates pre-resolved). Lines
69
- * aren't ring-buffered the bounded set is the geography.
107
+ * use array storage, then retain the active configured window in streaming mode.
70
108
  * Mutates `lineData` in place to avoid the O(n) GC churn of an
71
109
  * array spread per push. The mutation is invisible to callers
72
110
  * because `setLines` defensive-copies on entry and `getLines`
@@ -92,15 +130,6 @@ export declare class GeoPipelineStore {
92
130
  */
93
131
  removePoint(id: string | string[]): Datum[];
94
132
  clear(): void;
95
- setLayoutSelection(selection: CustomLayoutSelection | null): void;
96
- /**
97
- * "Styles changed, repaint the data canvas without rebuilding the scene."
98
- * Set by {@link restyleScene}; consumed once per frame by the paint loop, so a
99
- * style-only selection change repaints without a projection/scene recompute.
100
- */
101
- private _stylePaintPending;
102
- /** Consume the style-only repaint signal (see {@link _stylePaintPending}). */
103
- consumeStylePaintPending(): boolean;
104
133
  restyleScene(selection: CustomLayoutSelection | null): void;
105
134
  computeScene(layout: StreamLayout): void;
106
135
  private fitProjection;
@@ -148,6 +177,8 @@ export declare class GeoPipelineStore {
148
177
  private applyCartogramTransform;
149
178
  private applyDecay;
150
179
  private applyPulse;
180
+ refreshPulse(now: number): boolean;
181
+ hasActivePulsesAt(now: number): boolean;
151
182
  get hasActivePulses(): boolean;
152
183
  private startTransition;
153
184
  /**
@@ -0,0 +1,64 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { OnObservationCallback } from "../store/ObservationStore";
3
+ import { type OnAnnotationActivateCallback } from "../charts/shared/annotationActivation";
4
+ import * as React from "react";
5
+ import type { ReactNode } from "react";
6
+ import type { GradientLegendConfig, LegendGroup, LegendLayout } from "../types/legendTypes";
7
+ import { type AutoPlaceAnnotations } from "../recipes/annotationLayout";
8
+ interface GeoSVGOverlayProps {
9
+ width: number;
10
+ height: number;
11
+ totalWidth: number;
12
+ totalHeight: number;
13
+ margin: {
14
+ top: number;
15
+ right: number;
16
+ bottom: number;
17
+ left: number;
18
+ };
19
+ /**
20
+ * Geo has no Cartesian axis scale, but this remains part of the internal
21
+ * contract because StreamGeoFrame historically used it to request an empty
22
+ * accessible overlay shell.
23
+ */
24
+ showAxes?: boolean;
25
+ title?: string | ReactNode;
26
+ legend?: ReactNode | {
27
+ legendGroups: LegendGroup[];
28
+ } | {
29
+ gradient: GradientLegendConfig;
30
+ };
31
+ legendHoverBehavior?: (item: {
32
+ label: string;
33
+ } | null) => void;
34
+ legendClickBehavior?: (item: {
35
+ label: string;
36
+ }) => void;
37
+ legendHighlightedCategory?: string | null;
38
+ legendIsolatedCategories?: Set<string>;
39
+ legendPosition?: "right" | "left" | "top" | "bottom";
40
+ legendLayout?: LegendLayout;
41
+ foregroundGraphics?: ReactNode;
42
+ annotations?: Datum[];
43
+ onAnnotationActivate?: OnAnnotationActivateCallback;
44
+ onObservation?: OnObservationCallback;
45
+ chartId?: string;
46
+ chartType?: string;
47
+ autoPlaceAnnotations?: AutoPlaceAnnotations;
48
+ pointNodes?: {
49
+ pointId?: string;
50
+ x: number;
51
+ y: number;
52
+ r: number;
53
+ }[];
54
+ }
55
+ /**
56
+ * The SVG chrome used by StreamGeoFrame.
57
+ *
58
+ * Geo previously imported the Cartesian SVGOverlay even though it never
59
+ * supplies scales, marginal graphics, grids, or linked-crosshair state. Keep
60
+ * the subset Geo actually exercises here so those XY-only dependencies do not
61
+ * enter the Geo bundle.
62
+ */
63
+ export declare function GeoSVGOverlay(props: GeoSVGOverlayProps): React.JSX.Element | null;
64
+ export {};
@@ -1,8 +1,9 @@
1
1
  import type { NetworkSceneNode, NetworkSceneEdge, NetworkCircleNode } from "./networkTypes";
2
2
  import type { Quadtree } from "d3-quadtree";
3
+ import type { SceneDatum } from "./types";
3
4
  export interface NetworkHitResult {
4
5
  type: "node" | "edge";
5
- datum: any;
6
+ datum: SceneDatum;
6
7
  x: number;
7
8
  y: number;
8
9
  distance: number;