semiotic 3.7.4 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. package/CLAUDE.md +60 -15
  2. package/README.md +135 -24
  3. package/agent-skill/semiotic-charts/SKILL.md +146 -0
  4. package/ai/cli.js +133 -45
  5. package/ai/componentMetadata.cjs +6 -1
  6. package/ai/dist/mcp-server.js +1651 -154
  7. package/ai/examples.md +174 -0
  8. package/ai/schema.json +2934 -517
  9. package/ai/surface-manifest.json +200 -0
  10. package/ai/system-prompt.md +19 -3
  11. package/dist/components/Annotation.d.ts +4 -0
  12. package/dist/components/CategoryColors.d.ts +1 -1
  13. package/dist/components/ChartContainer.d.ts +91 -0
  14. package/dist/components/ChartGrid.d.ts +11 -1
  15. package/dist/components/CircularBrush.d.ts +61 -0
  16. package/dist/components/ContextLayout.d.ts +5 -1
  17. package/dist/components/DataSummaryContext.d.ts +1 -0
  18. package/dist/components/DirectManipulationControl.d.ts +63 -0
  19. package/dist/components/LinkedCharts.d.ts +3 -1
  20. package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
  21. package/dist/components/MobileChartContainer.d.ts +51 -0
  22. package/dist/components/MobileStandardControls.d.ts +68 -0
  23. package/dist/components/SmallMultipleChart.d.ts +84 -0
  24. package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
  25. package/dist/components/ai/ChartRecipe.d.ts +16 -0
  26. package/dist/components/ai/IntentMark.d.ts +15 -0
  27. package/dist/components/ai/chartCapabilities.d.ts +8 -1
  28. package/dist/components/ai/chartCapabilityTypes.d.ts +42 -1
  29. package/dist/components/ai/chartClinic.d.ts +91 -0
  30. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  31. package/dist/components/ai/chartRecipes.d.ts +278 -0
  32. package/dist/components/ai/dataPitfallsBridge.d.ts +203 -0
  33. package/dist/components/ai/dataQualityBridge.d.ts +201 -0
  34. package/dist/components/ai/describeChart.d.ts +9 -0
  35. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  36. package/dist/components/ai/generativeChart.d.ts +170 -0
  37. package/dist/components/ai/intentManifest.d.ts +62 -0
  38. package/dist/components/ai/navigationTree.d.ts +3 -0
  39. package/dist/components/ai/observedSceneAudit.d.ts +72 -0
  40. package/dist/components/ai/readerGrounding.d.ts +83 -0
  41. package/dist/components/ai/recipeCapability.d.ts +8 -0
  42. package/dist/components/ai/recipeNavigation.d.ts +13 -0
  43. package/dist/components/ai/recipeSemantics.d.ts +11 -0
  44. package/dist/components/ai/repairChartConfig.d.ts +9 -0
  45. package/dist/components/ai/suggestCharts.d.ts +11 -1
  46. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  47. package/dist/components/charts/custom/NetworkCustomChart.d.ts +22 -3
  48. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  49. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  50. package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
  51. package/dist/components/charts/geo/FlowMap.d.ts +1 -1
  52. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
  53. package/dist/components/charts/geo/index.d.ts +2 -0
  54. package/dist/components/charts/index.d.ts +29 -1
  55. package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
  56. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  57. package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
  58. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  59. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  60. package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
  61. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  62. package/dist/components/charts/network/Treemap.d.ts +1 -1
  63. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  64. package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
  65. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  66. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  67. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  68. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  69. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
  70. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  71. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  72. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  73. package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
  74. package/dist/components/charts/ordinal/SwarmPlot.d.ts +8 -1
  75. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  76. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  77. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  78. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  79. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
  80. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  81. package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
  82. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  83. package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
  84. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  85. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  86. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  87. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  88. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
  89. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  90. package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
  91. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  92. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  93. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  94. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  95. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  96. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  97. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  98. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  99. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  100. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  101. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  102. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  103. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  104. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  105. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  106. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  107. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  108. package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
  109. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  110. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  111. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  112. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  113. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  114. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  115. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  116. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  117. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  118. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +30 -1
  119. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  120. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  121. package/dist/components/charts/realtime/aggregate.d.ts +51 -0
  122. package/dist/components/charts/realtime/eventTime.d.ts +26 -0
  123. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  124. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  125. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  126. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  127. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  128. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  129. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  130. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  131. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  132. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  133. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  134. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  135. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  136. package/dist/components/charts/shared/colorPalettes.d.ts +2 -0
  137. package/dist/components/charts/shared/colorUtils.d.ts +17 -13
  138. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
  139. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  140. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  141. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  142. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  143. package/dist/components/charts/shared/hooks.d.ts +28 -5
  144. package/dist/components/charts/shared/minMax.d.ts +3 -0
  145. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  146. package/dist/components/charts/shared/radialGeometry.d.ts +0 -18
  147. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  148. package/dist/components/charts/shared/smartTooltip.d.ts +27 -0
  149. package/dist/components/charts/shared/statisticalOverlays.d.ts +35 -0
  150. package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
  151. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  152. package/dist/components/charts/shared/tooltipUtils.d.ts +2 -0
  153. package/dist/components/charts/shared/types.d.ts +49 -1
  154. package/dist/components/charts/shared/useChartSetup.d.ts +10 -3
  155. package/dist/components/charts/shared/useCustomChartSetup.d.ts +15 -6
  156. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  157. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
  158. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  159. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  160. package/dist/components/charts/shared/validateChartData.d.ts +1 -1
  161. package/dist/components/charts/shared/validationMap.d.ts +0 -11
  162. package/dist/components/charts/xy/AreaChart.d.ts +1 -1
  163. package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
  164. package/dist/components/charts/xy/LineChart.d.ts +1 -1
  165. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  166. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  167. package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
  168. package/dist/components/charts/xy/Scatterplot.d.ts +10 -1
  169. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  170. package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
  171. package/dist/components/controls/controlAudit.d.ts +24 -0
  172. package/dist/components/controls/controlContract.d.ts +57 -0
  173. package/dist/components/data/fromArrow.d.ts +54 -0
  174. package/dist/components/data/fromFlintChart.d.ts +74 -0
  175. package/dist/components/data/fromMermaid.d.ts +47 -0
  176. package/dist/components/data/fromObservablePlot.d.ts +69 -0
  177. package/dist/components/data/fromVegaLite.d.ts +27 -0
  178. package/dist/components/data/portability/index.d.ts +17 -0
  179. package/dist/components/data/portability/result.d.ts +52 -0
  180. package/dist/components/data/portability/spec.d.ts +160 -0
  181. package/dist/components/data/portability/vegaLite.d.ts +80 -0
  182. package/dist/components/export/chartConfig.d.ts +11 -0
  183. package/dist/components/realtime/ReorderBuffer.d.ts +54 -0
  184. package/dist/components/realtime/RunningStats.d.ts +66 -0
  185. package/dist/components/realtime/WindowAccumulator.d.ts +105 -0
  186. package/dist/components/realtime/parseWindowDuration.d.ts +12 -0
  187. package/dist/components/realtime/types.d.ts +11 -0
  188. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  189. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  190. package/dist/components/recipes/boba.d.ts +23 -0
  191. package/dist/components/recipes/customTooltip.d.ts +31 -0
  192. package/dist/components/recipes/cyclical.d.ts +39 -0
  193. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  194. package/dist/components/recipes/forceLayout.d.ts +48 -0
  195. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  196. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  197. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  198. package/dist/components/recipes/gofishIR.d.ts +215 -0
  199. package/dist/components/recipes/gofishIRExamples.d.ts +38 -0
  200. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  201. package/dist/components/recipes/intervals.d.ts +80 -0
  202. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  203. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  204. package/dist/components/recipes/mermaidDag.d.ts +44 -0
  205. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  206. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  207. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  208. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  209. package/dist/components/recipes/packedClusterMatrix.d.ts +166 -0
  210. package/dist/components/recipes/physics.d.ts +122 -0
  211. package/dist/components/recipes/physicsReference.d.ts +102 -0
  212. package/dist/components/recipes/processAggregates.d.ts +32 -0
  213. package/dist/components/recipes/processChrome.d.ts +67 -0
  214. package/dist/components/recipes/processJourney.d.ts +54 -0
  215. package/dist/components/recipes/processPhysics.d.ts +300 -0
  216. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  217. package/dist/components/recipes/radialCoords.d.ts +69 -0
  218. package/dist/components/recipes/random.d.ts +2 -0
  219. package/dist/components/recipes/recipeChrome.d.ts +191 -0
  220. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  221. package/dist/components/recipes/recipeLegend.d.ts +109 -0
  222. package/dist/components/recipes/recipeUtils.d.ts +157 -0
  223. package/dist/components/recipes/runs.d.ts +59 -0
  224. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  225. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  226. package/dist/components/recipes/unitize.d.ts +108 -0
  227. package/dist/components/recipes/vector.d.ts +28 -0
  228. package/dist/components/recipes/waffle.d.ts +43 -0
  229. package/dist/components/semiotic-ai-core.d.ts +47 -0
  230. package/dist/components/semiotic-ai.d.ts +52 -4
  231. package/dist/components/semiotic-controls.d.ts +18 -0
  232. package/dist/components/semiotic-data.d.ts +2 -0
  233. package/dist/components/semiotic-experimental.d.ts +49 -0
  234. package/dist/components/semiotic-geo.d.ts +11 -0
  235. package/dist/components/semiotic-network.d.ts +14 -1
  236. package/dist/components/semiotic-ordinal.d.ts +10 -0
  237. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  238. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  239. package/dist/components/semiotic-physics.d.ts +56 -0
  240. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  241. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  242. package/dist/components/semiotic-realtime.d.ts +4 -22
  243. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  244. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  245. package/dist/components/semiotic-recipes.d.ts +4 -26
  246. package/dist/components/semiotic-server-edge.d.ts +8 -0
  247. package/dist/components/semiotic-server-node.d.ts +5 -0
  248. package/dist/components/semiotic-server.d.ts +2 -2
  249. package/dist/components/semiotic-themes-core.d.ts +53 -0
  250. package/dist/components/semiotic-themes-react.d.ts +4 -0
  251. package/dist/components/semiotic-themes.d.ts +6 -74
  252. package/dist/components/semiotic-utils-core.d.ts +46 -0
  253. package/dist/components/semiotic-utils-react.d.ts +5 -0
  254. package/dist/components/semiotic-utils.d.ts +3 -39
  255. package/dist/components/semiotic-xy.d.ts +10 -0
  256. package/dist/components/semiotic.d.ts +39 -7
  257. package/dist/components/server/animatedGif.d.ts +36 -0
  258. package/dist/components/server/renderEvidence.d.ts +1 -1
  259. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  260. package/dist/components/server/serverChartConfigShared.d.ts +17 -0
  261. package/dist/components/server/serverChartConfigs.d.ts +19 -9
  262. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  263. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  264. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  265. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  266. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  267. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  268. package/dist/components/server/staticGeo.d.ts +4 -0
  269. package/dist/components/server/staticLegend.d.ts +1 -1
  270. package/dist/components/server/staticNetwork.d.ts +8 -0
  271. package/dist/components/server/staticOrdinal.d.ts +11 -0
  272. package/dist/components/server/staticPhysics.d.ts +3 -0
  273. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  274. package/dist/components/server/staticXY.d.ts +4 -0
  275. package/dist/components/store/ObservationStore.d.ts +23 -3
  276. package/dist/components/store/SelectionStore.d.ts +1 -1
  277. package/dist/components/store/ThemeStore.d.ts +1 -1
  278. package/dist/components/store/TooltipStore.d.ts +1 -1
  279. package/dist/components/store/createStore.d.ts +1 -1
  280. package/dist/components/store/designTokens.d.ts +15 -0
  281. package/dist/components/store/themeSerialization.d.ts +32 -0
  282. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  283. package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
  284. package/dist/components/stream/FocusRing.d.ts +4 -2
  285. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  286. package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
  287. package/dist/components/stream/NetworkHtmlMarksLayer.d.ts +44 -0
  288. package/dist/components/stream/NetworkPipelineStore.d.ts +62 -25
  289. package/dist/components/stream/NetworkSVGOverlay.d.ts +15 -0
  290. package/dist/components/stream/OrdinalPipelineStore.d.ts +64 -2
  291. package/dist/components/stream/PipelineStore.d.ts +100 -162
  292. package/dist/components/stream/SceneGraph.d.ts +14 -2
  293. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  294. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  295. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  296. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  297. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  298. package/dist/components/stream/accessorUtils.d.ts +23 -10
  299. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  300. package/dist/components/stream/canvasBackground.d.ts +24 -0
  301. package/dist/components/stream/canvasSetup.d.ts +4 -1
  302. package/dist/components/stream/customLayout.d.ts +20 -0
  303. package/dist/components/stream/customLayoutDiagnostics.d.ts +11 -0
  304. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  305. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  306. package/dist/components/stream/customLayoutSelection.d.ts +52 -0
  307. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  308. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  309. package/dist/components/stream/geoCartogram.d.ts +17 -0
  310. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  311. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  312. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  313. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  314. package/dist/components/stream/geoTypes.d.ts +56 -7
  315. package/dist/components/stream/glyphDef.d.ts +98 -0
  316. package/dist/components/stream/hitTarget.d.ts +170 -0
  317. package/dist/components/stream/hoverUtils.d.ts +3 -0
  318. package/dist/components/stream/keyboardNav.d.ts +4 -1
  319. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  320. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
  321. package/dist/components/stream/networkBezier.d.ts +10 -0
  322. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  323. package/dist/components/stream/networkCustomLayout.d.ts +66 -1
  324. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  325. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  326. package/dist/components/stream/networkFramePaint.d.ts +43 -0
  327. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  328. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  329. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  330. package/dist/components/stream/networkTypes.d.ts +104 -5
  331. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  332. package/dist/components/stream/ordinalCustomLayout.d.ts +17 -1
  333. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  334. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  335. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  336. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
  337. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  338. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  339. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  340. package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -0
  341. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  342. package/dist/components/stream/ordinalTypes.d.ts +56 -8
  343. package/dist/components/stream/paintNeeds.d.ts +31 -0
  344. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  345. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  346. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  347. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  348. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  349. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  350. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  351. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  352. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  353. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  354. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  355. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  356. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  357. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  358. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
  359. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  360. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
  361. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  362. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  363. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  364. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  365. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  366. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  367. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  368. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  369. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  370. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  371. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
  372. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  373. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  374. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  375. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  376. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
  377. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  378. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  379. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
  380. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  381. package/dist/components/stream/pipelineConfig.d.ts +177 -0
  382. package/dist/components/stream/pipelineDecay.d.ts +20 -2
  383. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  384. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  385. package/dist/components/stream/pipelinePulse.d.ts +16 -2
  386. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  387. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  388. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
  389. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  390. package/dist/components/stream/pipelineTransitions.d.ts +2 -0
  391. package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
  392. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  393. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  394. package/dist/components/stream/renderers/networkSymbolRenderer.d.ts +2 -0
  395. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  396. package/dist/components/stream/renderers/symbolCanvasRenderer.d.ts +2 -0
  397. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
  398. package/dist/components/stream/stalenessBands.d.ts +28 -0
  399. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  400. package/dist/components/stream/symbolPath.d.ts +24 -0
  401. package/dist/components/stream/types.d.ts +206 -9
  402. package/dist/components/stream/useFrame.d.ts +21 -2
  403. package/dist/components/stream/useHydration.d.ts +6 -0
  404. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  405. package/dist/components/stream/useStalenessCheck.d.ts +6 -1
  406. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  407. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  408. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  409. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  410. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  411. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  412. package/dist/components/stream/xySceneBuilders/pointScene.d.ts +2 -2
  413. package/dist/components/stream/xySceneBuilders/types.d.ts +9 -4
  414. package/dist/controls.min.js +2 -0
  415. package/dist/controls.module.min.js +2 -0
  416. package/dist/forceLayoutWorker.js +1 -0
  417. package/dist/geo.min.js +1 -1
  418. package/dist/geo.module.min.js +1 -1
  419. package/dist/network.min.js +1 -1
  420. package/dist/network.module.min.js +1 -1
  421. package/dist/ordinal.min.js +1 -1
  422. package/dist/ordinal.module.min.js +1 -1
  423. package/dist/physics-matter.min.js +1 -0
  424. package/dist/physics-matter.module.min.js +1 -0
  425. package/dist/physics-rapier.min.js +1 -0
  426. package/dist/physics-rapier.module.min.js +1 -0
  427. package/dist/physics.min.js +2 -0
  428. package/dist/physics.module.min.js +2 -0
  429. package/dist/physicsWorker.js +1 -0
  430. package/dist/realtime.min.js +1 -1
  431. package/dist/realtime.module.min.js +1 -1
  432. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  433. package/dist/semiotic-ai-core.d.ts +47 -0
  434. package/dist/semiotic-ai-core.min.js +1 -0
  435. package/dist/semiotic-ai-core.module.min.js +1 -0
  436. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  437. package/dist/semiotic-ai.d.ts +52 -4
  438. package/dist/semiotic-ai.min.js +1 -1
  439. package/dist/semiotic-ai.module.min.js +1 -1
  440. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  441. package/dist/semiotic-controls.d.ts +18 -0
  442. package/dist/semiotic-data.d.ts +2 -0
  443. package/dist/semiotic-data.min.js +1 -1
  444. package/dist/semiotic-data.module.min.js +1 -1
  445. package/dist/semiotic-experimental.d.ts +49 -0
  446. package/dist/semiotic-experimental.min.js +1 -0
  447. package/dist/semiotic-experimental.module.min.js +1 -0
  448. package/dist/semiotic-geo.d.ts +11 -0
  449. package/dist/semiotic-network.d.ts +14 -1
  450. package/dist/semiotic-ordinal.d.ts +10 -0
  451. package/dist/semiotic-physics-matter.d.ts +10 -0
  452. package/dist/semiotic-physics-rapier.d.ts +9 -0
  453. package/dist/semiotic-physics.d.ts +56 -0
  454. package/dist/semiotic-realtime-core.d.ts +34 -0
  455. package/dist/semiotic-realtime-core.min.js +1 -0
  456. package/dist/semiotic-realtime-core.module.min.js +1 -0
  457. package/dist/semiotic-realtime-react.d.ts +10 -0
  458. package/dist/semiotic-realtime-react.min.js +2 -0
  459. package/dist/semiotic-realtime-react.module.min.js +2 -0
  460. package/dist/semiotic-realtime.d.ts +4 -22
  461. package/dist/semiotic-recipes-core.d.ts +92 -0
  462. package/dist/semiotic-recipes-core.min.js +1 -0
  463. package/dist/semiotic-recipes-core.module.min.js +1 -0
  464. package/dist/semiotic-recipes-react.d.ts +7 -0
  465. package/dist/semiotic-recipes-react.min.js +2 -0
  466. package/dist/semiotic-recipes-react.module.min.js +2 -0
  467. package/dist/semiotic-recipes.d.ts +4 -26
  468. package/dist/semiotic-recipes.min.js +1 -1
  469. package/dist/semiotic-recipes.module.min.js +1 -1
  470. package/dist/semiotic-server-edge.d.ts +8 -0
  471. package/dist/semiotic-server-edge.min.js +1 -0
  472. package/dist/semiotic-server-edge.module.min.js +1 -0
  473. package/dist/semiotic-server-node.d.ts +5 -0
  474. package/dist/semiotic-server-node.min.js +1 -0
  475. package/dist/semiotic-server-node.module.min.js +1 -0
  476. package/dist/semiotic-server.d.ts +2 -2
  477. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  478. package/dist/semiotic-themes-core.d.ts +53 -0
  479. package/dist/semiotic-themes-core.min.js +1 -0
  480. package/dist/semiotic-themes-core.module.min.js +1 -0
  481. package/dist/semiotic-themes-react.d.ts +4 -0
  482. package/dist/semiotic-themes-react.min.js +2 -0
  483. package/dist/semiotic-themes-react.module.min.js +2 -0
  484. package/dist/semiotic-themes.d.ts +6 -74
  485. package/dist/semiotic-themes.min.js +1 -2
  486. package/dist/semiotic-themes.module.min.js +1 -2
  487. package/dist/semiotic-utils-core.d.ts +46 -0
  488. package/dist/semiotic-utils-core.min.js +1 -0
  489. package/dist/semiotic-utils-core.module.min.js +1 -0
  490. package/dist/semiotic-utils-react.d.ts +5 -0
  491. package/dist/semiotic-utils-react.min.js +2 -0
  492. package/dist/semiotic-utils-react.module.min.js +2 -0
  493. package/dist/semiotic-utils.d.ts +3 -39
  494. package/dist/semiotic-utils.min.js +1 -2
  495. package/dist/semiotic-utils.module.min.js +1 -2
  496. package/dist/semiotic-value.min.js +1 -1
  497. package/dist/semiotic-value.module.min.js +1 -1
  498. package/dist/semiotic-xy.d.ts +10 -0
  499. package/dist/semiotic.d.ts +39 -7
  500. package/dist/semiotic.min.js +1 -1
  501. package/dist/semiotic.module.min.js +1 -1
  502. package/dist/server.min.js +1 -1
  503. package/dist/server.module.min.js +1 -1
  504. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  505. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  506. package/dist/xy.min.js +1 -1
  507. package/dist/xy.module.min.js +1 -1
  508. package/package.json +246 -86
  509. package/spec/README.md +152 -0
  510. package/spec/bindings/README.md +35 -0
  511. package/spec/bindings/vega-lite.mjs +112 -0
  512. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  513. package/spec/v0.1/audience-profile.schema.json +67 -0
  514. package/spec/v0.1/chart-capability.schema.json +186 -0
  515. package/dist/semiotic-ai-statisticalOverlays-C2PPlmXv.js +0 -1
  516. package/dist/semiotic-statisticalOverlays-C3DsOgr_.js +0 -1
  517. package/dist/xy-statisticalOverlays-C2PPlmXv.js +0 -1
@@ -0,0 +1,166 @@
1
+ import type { NetworkCustomLayout } from "../stream/networkCustomLayout";
2
+ import type { NetworkSymbolName } from "../stream/symbolPath";
3
+ /**
4
+ * Config for {@link packedClusterMatrix}. Accessors read `node.data.<field>`
5
+ * (the ingest wrapper) and fall back to the node itself.
6
+ */
7
+ export interface PackedClusterMatrixConfig {
8
+ /** Categorical field → matrix column. @default "column" */
9
+ columnAccessor?: string;
10
+ /** Categorical field → matrix row (stacked within a column). @default "row" */
11
+ rowAccessor?: string;
12
+ /** Numeric field → glyph size (area-encoded). Constant size when omitted. */
13
+ sizeAccessor?: string;
14
+ /** Categorical field → glyph hue (via `ctx.resolveColor`). */
15
+ colorAccessor?: string;
16
+ /** Fixed hue per category value. Wins over `ctx.resolveColor` for mapped keys —
17
+ * the right choice for editorial graphics with a semantic palette. */
18
+ colorMap?: Record<string, string>;
19
+ /** Categorical field → glyph shape. Auto-assigned shapes when no `symbolMap`. */
20
+ symbolAccessor?: string;
21
+ /** Numeric/date field → lightness shade of the hue (the fourth channel). */
22
+ shadeAccessor?: string;
23
+ /** Boolean field → small center dot on the glyph (e.g. a flagged subset). */
24
+ markerAccessor?: string;
25
+ /** Explicit column order; otherwise columns sort by count, largest first. */
26
+ columnOrder?: string[];
27
+ /** Explicit row order **bottom→top**; otherwise rows sort by count, largest at bottom. */
28
+ rowOrder?: string[];
29
+ /** Map a class value to a named glyph (the base mark BECOMES that shape).
30
+ * Unmapped values get auto-assigned. Mutually exclusive with `iconAccessor`. */
31
+ symbolMap?: Record<string, NetworkSymbolName>;
32
+ /** Shape when no `symbolAccessor` is set. @default "circle" */
33
+ defaultSymbol?: NetworkSymbolName;
34
+ /** Categorical field whose value selects an OPTIONAL stroked icon drawn inside
35
+ * the (filled circle) base mark — the "most marks are plain circles, a few
36
+ * carry an icon" model. Only values present in `iconMap` get an icon. */
37
+ iconAccessor?: string;
38
+ /** Map an icon-field value to a glyph. Values omitted here render as a plain
39
+ * circle (no icon) — so a single dominant class stays unmarked. */
40
+ iconMap?: Record<string, NetworkSymbolName>;
41
+ /** Stroke color of the inner icon. @default "rgba(255,255,255,0.92)" */
42
+ iconColor?: string;
43
+ /** Inner-icon stroke width. @default 1 */
44
+ iconStrokeWidth?: number;
45
+ /** Inner-icon size as a fraction of the base circle radius. @default 0.72 */
46
+ iconScale?: number;
47
+ /** Glyph radius range in px (area = πr²). @default [2, 8] */
48
+ sizeRange?: [number, number];
49
+ /** Size value domain. @default data extent */
50
+ sizeDomain?: [number, number];
51
+ /** Cap total glyph area at this fraction of the plot; radii scale down to fit
52
+ * (keeps clusters packable / non-overlapping on smaller canvases). @default 0.4 */
53
+ maxAreaFraction?: number;
54
+ /** How far the shade travels from the base hue (0..1). @default 0.72 */
55
+ shadeStrength?: number;
56
+ /** Shade value domain. @default data extent (dates auto-parsed) */
57
+ shadeDomain?: [number, number];
58
+ /** Flip the shade ramp (default: low → light, high → dark). */
59
+ shadeReverse?: boolean;
60
+ /** Row layout. `"banded"`: orbit rows are aligned global bands (one y-range
61
+ * spanning all columns → row labels align, one enclosure per band spans the
62
+ * columns, a column is only as tall as its highest occupied band). `"stacked"`:
63
+ * each column stacks its own rows independently (cell height ∝ that column's
64
+ * count; rows do NOT align). @default "banded" */
65
+ rowMode?: "banded" | "stacked";
66
+ /** `"proportional"` (mosaic: cell area ∝ count) or `"uniform"` grid. @default "proportional" */
67
+ cellSizing?: "proportional" | "uniform";
68
+ /** Exponent applied to counts when sizing columns/cells. `1` = strict area ∝
69
+ * count; `<1` softens the range so small columns stay legible. @default 1 */
70
+ proportionExponent?: number;
71
+ /** Gap between columns in px. @default 16 */
72
+ columnGap?: number;
73
+ /** Gap between stacked cells in px. @default 12 */
74
+ rowGap?: number;
75
+ /** Collision padding between glyphs in px. @default 1 */
76
+ packPadding?: number;
77
+ /** Relaxation passes for the packing (capped at 14; a near-uniform seed needs
78
+ * few). Higher = tidier/slower. @default 12 */
79
+ iterations?: number;
80
+ /** Draw a rounded enclosure hugging each cluster. @default true */
81
+ showEnclosures?: boolean;
82
+ enclosureColor?: string;
83
+ enclosureRadius?: number;
84
+ enclosureOpacity?: number;
85
+ enclosureWidth?: number;
86
+ /** Column header labels across the top. @default true */
87
+ showColumnHeaders?: boolean;
88
+ /** Row labels down the left. @default true */
89
+ showRowLabels?: boolean;
90
+ columnLabel?: (col: string) => string;
91
+ rowLabel?: (row: string) => string;
92
+ headerColor?: string;
93
+ labelColor?: string;
94
+ headerFontSize?: number;
95
+ labelFontSize?: number;
96
+ /** Top space reserved for headers. @default 26 */
97
+ headerHeight?: number;
98
+ /** Left space reserved for row labels. @default 66 */
99
+ labelWidth?: number;
100
+ /** Bottom margin reserved for callout labels (only when `callouts` is set). @default 30 */
101
+ footerHeight?: number;
102
+ markStroke?: string;
103
+ markStrokeWidth?: number;
104
+ /** Center-dot color for `markerAccessor` hits. @default "#ffffff" */
105
+ markerColor?: string;
106
+ /** Dim every glyph that doesn't match the highlight. A single `{field,value}`
107
+ * or an array (AND — a glyph must match all to stay lit, e.g. a region×orbit
108
+ * cell). Drives legend / nav-tree highlighting. */
109
+ highlight?: {
110
+ field: string;
111
+ value: string;
112
+ } | {
113
+ field: string;
114
+ value: string;
115
+ }[] | null;
116
+ /** Opacity for dimmed glyphs. @default 0.16 */
117
+ dimOpacity?: number;
118
+ /** Editorial leader-line callouts to specific marks. Each picks the first mark
119
+ * whose `datum[field] === value` and draws a ring + connector + label. `at`
120
+ * places the label: a y in [0,1] of the plot ("1" = bottom) and the label
121
+ * tracks the mark's x, or an explicit `{x,y}` in plot px. */
122
+ callouts?: Array<{
123
+ field: string;
124
+ value: string;
125
+ label: string;
126
+ at?: number | {
127
+ x: number;
128
+ y: number;
129
+ };
130
+ connector?: "straight" | "elbow" | "curve";
131
+ }>;
132
+ calloutColor?: string;
133
+ }
134
+ /**
135
+ * `packedClusterMatrix` — a reusable network layout that arranges a flat set of
136
+ * records into a **matrix of densely-packed clusters**: one column per value of
137
+ * `columnAccessor`, cells stacked within a column per value of `rowAccessor`,
138
+ * each cell a beeswarm of variable-radius glyphs. In `"proportional"` sizing the
139
+ * column widths and cell heights track counts (a mosaic), so a cell's area is
140
+ * proportional to its record count and packing density stays roughly uniform.
141
+ *
142
+ * Each record renders as a **four-channel glyph**: shape (`symbolAccessor`),
143
+ * hue (`colorAccessor`), size (`sizeAccessor`, area-encoded), and lightness
144
+ * shade (`shadeAccessor`). Packing is deterministic (seeded `d3-force`) and the
145
+ * geometry is cached, so hover/selection/filter re-runs re-style without
146
+ * re-packing. Built to recreate small-multiples beeswarm graphics (e.g. Nadieh
147
+ * Bremer's "Satellites in Space").
148
+ *
149
+ * @example
150
+ * ```tsx
151
+ * import { NetworkCustomChart } from "semiotic/network"
152
+ * import { packedClusterMatrix } from "semiotic/recipes"
153
+ *
154
+ * <NetworkCustomChart
155
+ * nodes={satellites} // each: { id, region, orbit, mass, category, klass, launch }
156
+ * layout={packedClusterMatrix}
157
+ * colorScheme={categoryColors}
158
+ * layoutConfig={{
159
+ * columnAccessor: "region", rowAccessor: "orbit",
160
+ * sizeAccessor: "mass", colorAccessor: "category",
161
+ * symbolAccessor: "klass", shadeAccessor: "launch",
162
+ * }}
163
+ * />
164
+ * ```
165
+ */
166
+ export declare const packedClusterMatrix: NetworkCustomLayout<PackedClusterMatrixConfig>;
@@ -0,0 +1,122 @@
1
+ import type { VisualToken } from "./tokenEncoding";
2
+ import { type PhysicsBoundsColliderOptions, type PhysicsPlotBounds, type PhysicsQueuedSpawn, type PhysicsSpawnPacingOptions, type PhysicsXBinColliderOptions } from "../stream/physics/PhysicsPipelineStore";
3
+ import type { PhysicsBodyShape, PhysicsColliderSpec } from "../stream/physics/PhysicsKernel";
4
+ import type { PhysicsSedimentBinSnapshot, PhysicsSedimentColumn, PhysicsSedimentHeightfieldOptions } from "../stream/physics/PhysicsSediment";
5
+ export type NumericScale = (value: number) => number;
6
+ export type BandScale<T = string | number> = ((value: T) => number | undefined) & {
7
+ bandwidth?: () => number;
8
+ };
9
+ export interface PhysicsScaleColliderOptions<TBand = string | number> {
10
+ plot: PhysicsPlotBounds;
11
+ idPrefix?: string;
12
+ bounds?: false | PhysicsBoundsColliderOptions;
13
+ xBins?: Omit<PhysicsXBinColliderOptions, "idPrefix" | "yTop" | "yBottom"> & {
14
+ idPrefix?: string;
15
+ yTop?: number;
16
+ yBottom?: number;
17
+ };
18
+ xBands?: PhysicsBandColliderOptions<TBand>;
19
+ yBands?: PhysicsBandColliderOptions<TBand>;
20
+ }
21
+ export interface PhysicsBandColliderOptions<TBand = string | number> {
22
+ values: readonly TBand[];
23
+ scale: BandScale<TBand>;
24
+ bandwidth?: number;
25
+ wallThickness?: number;
26
+ includeBoundaryWalls?: boolean;
27
+ includeInteriorWalls?: boolean;
28
+ idPrefix?: string;
29
+ }
30
+ export interface GaltonPegsOptions {
31
+ plot: PhysicsPlotBounds;
32
+ rows: number;
33
+ columns?: number;
34
+ pegRadius?: number;
35
+ idPrefix?: string;
36
+ yStart?: number;
37
+ yEnd?: number;
38
+ stagger?: boolean;
39
+ restitution?: number;
40
+ friction?: number;
41
+ }
42
+ export interface SpawnFromTokensOptions<D = unknown> {
43
+ idPrefix?: string;
44
+ x?: number | ((token: VisualToken<D>, index: number) => number);
45
+ y?: number | ((token: VisualToken<D>, index: number) => number);
46
+ radius?: number | ((token: VisualToken<D>, index: number) => number);
47
+ shape?: PhysicsBodyShape | ((token: VisualToken<D>, index: number) => PhysicsBodyShape);
48
+ mass?: number | ((token: VisualToken<D>, index: number) => number);
49
+ vx?: number | ((token: VisualToken<D>, index: number) => number);
50
+ vy?: number | ((token: VisualToken<D>, index: number) => number);
51
+ jitter?: number | {
52
+ x?: number;
53
+ y?: number;
54
+ };
55
+ seed?: number;
56
+ spawnAt?: number | ((token: VisualToken<D>, index: number) => number);
57
+ datum?: (token: VisualToken<D>, index: number) => unknown;
58
+ }
59
+ export interface SedimentBakeOptions extends PhysicsSedimentHeightfieldOptions {
60
+ idPrefix?: string;
61
+ collider?: boolean;
62
+ colliderThickness?: number;
63
+ restitution?: number;
64
+ friction?: number;
65
+ }
66
+ export interface SedimentBakeResult {
67
+ columns: PhysicsSedimentColumn[];
68
+ colliders: PhysicsColliderSpec[];
69
+ }
70
+ export interface ArrivalReplayOptions {
71
+ timeAccessor?: string | ((spawn: PhysicsQueuedSpawn, index: number) => unknown);
72
+ timeScale?: number;
73
+ startAt?: number;
74
+ rebase?: boolean;
75
+ sort?: boolean;
76
+ }
77
+ /**
78
+ * Build chart-aligned static colliders from a plot rectangle plus optional
79
+ * continuous bins or band-scale lanes.
80
+ */
81
+ export declare function collidersFromScales<TBand = string | number>(options: PhysicsScaleColliderOptions<TBand>): PhysicsColliderSpec[];
82
+ /**
83
+ * Generate deterministic square peg colliders for Galton/Plinko-style custom
84
+ * layouts. Square AABBs are intentional: they work with the built-in kernel's
85
+ * small default collider vocabulary while still reading as point pegs.
86
+ */
87
+ export declare function galtonPegs(options: GaltonPegsOptions): PhysicsColliderSpec[];
88
+ /**
89
+ * Convert visual tokens into physics body spawns. Pair with
90
+ * `generateTokens()` / `layoutTokenGrid()` for HOPs, unitized piles, or
91
+ * posterior-sample demos inside `PhysicsCustomChart`.
92
+ */
93
+ export declare function spawnFromTokens<D = unknown>(tokens: readonly VisualToken<D>[], options?: SpawnFromTokensOptions<D>): PhysicsQueuedSpawn[];
94
+ /**
95
+ * Turn sediment snapshots into drawable columns and optional static colliders.
96
+ * Use the columns for overlays and the colliders when old data should become
97
+ * a physical resting surface for live bodies.
98
+ */
99
+ export declare function sedimentBake(bins: PhysicsSedimentBinSnapshot[], options?: SedimentBakeOptions): SedimentBakeResult;
100
+ /**
101
+ * Prepare initial spawns for event-time/arrival-time replay. The returned
102
+ * object spreads directly into a `PhysicsCustomChart` layout result.
103
+ */
104
+ export declare function arrivalReplay(spawns: readonly PhysicsQueuedSpawn[], options?: ArrivalReplayOptions): {
105
+ initialSpawns: PhysicsQueuedSpawn[];
106
+ initialSpawnPacing: PhysicsSpawnPacingOptions;
107
+ };
108
+ export type { PhysicsColliderSpec, PhysicsPlotBounds, PhysicsQueuedSpawn, PhysicsSedimentBinSnapshot, PhysicsSedimentColumn, PhysicsSedimentHeightfieldOptions, PhysicsSpawnPacingOptions };
109
+ export { absorbRegion, bodyGroupSpec, capacitatedRegion, chargeGateRegion, forceFieldRegion, membraneRegion, portalRegion, pressureFieldRegion, processLaneWalls, processStageLayout, processStageRegions, routeSurfaceRegion, stageTargetInVolume } from "./processPhysics";
110
+ export { aggregateRegionCounts, groupCompletionRows, regionCountsToProjectionRows } from "./processAggregates";
111
+ export { processVolumePolygons } from "./processVolumeGeometry";
112
+ export { comparePhysicsTrace, physicsReferenceEnvelope } from "./physicsReference";
113
+ export type { PhysicsReferenceBandSelector, PhysicsReferenceEnvelope, PhysicsReferenceEnvelopeOptions, PhysicsReferenceEnvelopePoint, PhysicsReferenceSampleGrid, PhysicsReferenceTrace, PhysicsScalarTraceSample, PhysicsTraceAccessor, PhysicsTraceComparison, PhysicsTraceComparisonOptions, PhysicsTraceComparisonPoint, PhysicsTraceComparisonStatus, PhysicsTraceInterpolation, PhysicsTraceOutsideDomain } from "./physicsReference";
114
+ export { createProcessJourneyLedger, processJourneyRows, updateProcessJourney } from "./processJourney";
115
+ export { composePhysicsControllers, createCapacityQueueController, createPortalController, createDependencyGateController, createServiceLevelController, createServiceResourcePoolController } from "../stream/physics/PhysicsControllers";
116
+ export type { CapacityQueueAbandonedInfo, CapacityQueueAgeSummary, CapacityQueueBlockedInfo, CapacityQueueControllerOptions, CapacityQueueProcessedInfo, CapacityQueueSnapshot, CapacityQueueVisitInfo, CapacityQueueWindowSnapshot, ComposedPhysicsControllers, DependencyGateController, DependencyGateOptions, DependencyGateSnapshot, PhysicsController, PhysicsControllerTickContext, ServiceLevelCaseInfo, ServiceLevelCaseState, ServiceLevelController, ServiceLevelControllerOptions, ServiceLevelSnapshot, ServiceResourceAssignment, ServiceResourceDefinition, ServiceResourcePoolController, ServiceResourcePoolOptions, ServiceResourcePoolSnapshot } from "../stream/physics/PhysicsControllers";
117
+ export { processChrome } from "./processChrome";
118
+ export type { ProcessChromeGroup, ProcessChromeLayout, ProcessChromeOptions, ProcessChromeStage } from "./processChrome";
119
+ export type { BodyGroupSpec, BodyGroupSpecOptions, ProcessMembraneDef, ProcessRegionBaseOptions, ProcessStageRegionOptions, ProcessStageDef, ProcessVolumeLayout, ProcessVolumeLayoutOptions, ProcessVolumeMembraneBand, ProcessVolumeShape, ProcessVolumeStageBand } from "./processPhysics";
120
+ export type { RegionCountBucket, RegionCountMap } from "./processAggregates";
121
+ export type { ProcessVolumePoint, ProcessVolumePolygon, ProcessVolumePolygonRole } from "./processVolumeGeometry";
122
+ export type { ProcessJourneyEntityState, ProcessJourneyLedger, ProcessJourneyRow, ProcessJourneyStage, ProcessJourneyUpdateOptions } from "./processJourney";
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Pure reference-envelope helpers for physics evidence traces.
3
+ *
4
+ * Physics motion does not provide its own baseline. These helpers align
5
+ * repeated or supplied scalar traces onto one clock, summarize their
6
+ * distribution, and compare a live trace with the resulting reference band.
7
+ */
8
+ export type PhysicsTraceInterpolation = "step" | "linear";
9
+ export type PhysicsTraceOutsideDomain = "omit" | "clamp";
10
+ export type PhysicsTraceAccessor<TSample> = string | ((sample: TSample, index: number, traceId: string) => unknown);
11
+ export interface PhysicsReferenceTrace<TSample = PhysicsScalarTraceSample> {
12
+ id: string;
13
+ samples: readonly TSample[];
14
+ }
15
+ export interface PhysicsScalarTraceSample {
16
+ time: number;
17
+ value: number;
18
+ }
19
+ export type PhysicsReferenceSampleGrid = readonly number[] | {
20
+ start: number;
21
+ end: number;
22
+ step: number;
23
+ };
24
+ export interface PhysicsReferenceEnvelopeOptions<TSample> {
25
+ runs: readonly PhysicsReferenceTrace<TSample>[];
26
+ sampleAt: PhysicsReferenceSampleGrid;
27
+ timeAccessor?: PhysicsTraceAccessor<TSample>;
28
+ valueAccessor?: PhysicsTraceAccessor<TSample>;
29
+ /** Quantiles use the R-7 linear estimator. Defaults to 0.1, 0.5, and 0.9. */
30
+ quantiles?: readonly number[];
31
+ interpolation?: PhysicsTraceInterpolation;
32
+ /** Whether values outside each run's authored domain are omitted or held. */
33
+ outsideDomain?: PhysicsTraceOutsideDomain;
34
+ }
35
+ export interface PhysicsReferenceEnvelopePoint {
36
+ time: number;
37
+ count: number;
38
+ min: number | null;
39
+ max: number | null;
40
+ median: number | null;
41
+ /** Keys are normalized decimal quantiles, for example `quantiles[0.9]`. */
42
+ quantiles: Partial<Record<number, number | null>>;
43
+ }
44
+ export interface PhysicsReferenceEnvelope {
45
+ points: PhysicsReferenceEnvelopePoint[];
46
+ quantiles: number[];
47
+ interpolation: PhysicsTraceInterpolation;
48
+ outsideDomain: PhysicsTraceOutsideDomain;
49
+ runCount: number;
50
+ }
51
+ export type PhysicsReferenceBandSelector = "min" | "median" | "max" | number;
52
+ export type PhysicsTraceComparisonStatus = "below" | "inside" | "above" | "unobserved";
53
+ export interface PhysicsTraceComparisonPoint {
54
+ time: number;
55
+ value: number | null;
56
+ lower: number | null;
57
+ upper: number | null;
58
+ status: PhysicsTraceComparisonStatus;
59
+ }
60
+ export interface PhysicsTraceComparisonOptions<TSample> {
61
+ timeAccessor?: PhysicsTraceAccessor<TSample>;
62
+ valueAccessor?: PhysicsTraceAccessor<TSample>;
63
+ /** Defaults to the envelope's interpolation. */
64
+ interpolation?: PhysicsTraceInterpolation;
65
+ /** Defaults to the envelope's outside-domain policy. */
66
+ outsideDomain?: PhysicsTraceOutsideDomain;
67
+ /** Defaults to the envelope's lowest quantile, then `min`. */
68
+ lower?: PhysicsReferenceBandSelector;
69
+ /** Defaults to the envelope's highest quantile, then `max`. */
70
+ upper?: PhysicsReferenceBandSelector;
71
+ /** Identifier supplied to function accessors. Defaults to `trace`. */
72
+ traceId?: string;
73
+ }
74
+ export interface PhysicsTraceComparison {
75
+ points: PhysicsTraceComparisonPoint[];
76
+ sampleCount: number;
77
+ observedSamples: number;
78
+ belowSamples: number;
79
+ insideSamples: number;
80
+ aboveSamples: number;
81
+ totalDuration: number;
82
+ observedDuration: number;
83
+ unobservedDuration: number;
84
+ belowDuration: number;
85
+ insideDuration: number;
86
+ aboveDuration: number;
87
+ peakExcess: number;
88
+ peakExcessAt: number | null;
89
+ peakDeficit: number;
90
+ peakDeficitAt: number | null;
91
+ }
92
+ /**
93
+ * Align irregular scalar traces to a common clock and derive a deterministic
94
+ * quantile envelope. Invalid samples are omitted; inputs are never mutated.
95
+ */
96
+ export declare function physicsReferenceEnvelope<TSample = PhysicsScalarTraceSample>(options: PhysicsReferenceEnvelopeOptions<TSample>): PhysicsReferenceEnvelope;
97
+ /**
98
+ * Compare one irregular trace with a reference envelope. Durations use
99
+ * left-held intervals for step traces and exact linear boundary crossings for
100
+ * linear traces. Equality with either band edge is inside the reference.
101
+ */
102
+ export declare function comparePhysicsTrace<TSample = PhysicsScalarTraceSample>(trace: readonly TSample[], envelope: PhysicsReferenceEnvelope, options?: PhysicsTraceComparisonOptions<TSample>): PhysicsTraceComparison;
@@ -0,0 +1,32 @@
1
+ /** Pure settled projections derived from physics events and body groups. */
2
+ import type { StreamPhysicsRegionEvent } from "../stream/physics/StreamPhysicsFrame";
3
+ import type { BodyGroupSpec } from "./processPhysics";
4
+ export interface RegionCountBucket {
5
+ id: string;
6
+ label?: string;
7
+ count: number;
8
+ bodyIds: string[];
9
+ }
10
+ export type RegionCountMap = Record<string, RegionCountBucket>;
11
+ /** Reduce region-enter events into per-region unique body counts. */
12
+ export declare function aggregateRegionCounts(previous: RegionCountMap, event: Pick<StreamPhysicsRegionEvent, "type" | "bodyId" | "region">): RegionCountMap;
13
+ export declare function regionCountsToProjectionRows(counts: RegionCountMap, order?: readonly string[]): Array<{
14
+ label: string;
15
+ value: number;
16
+ }>;
17
+ /**
18
+ * Group-completion ledger for all-members, any-member, and weighted-threshold
19
+ * stories. Pure: callers supply which member ids have been absorbed.
20
+ */
21
+ export declare function groupCompletionRows(groups: readonly BodyGroupSpec[], absorbedBodyIds: ReadonlySet<string> | readonly string[]): Array<{
22
+ id: string;
23
+ label: string;
24
+ mode: "allMembersAbsorbed" | "anyAbsorbed" | "threshold";
25
+ complete: boolean;
26
+ absorbed: number;
27
+ total: number;
28
+ absorbedValue: number;
29
+ totalValue: number;
30
+ threshold?: number;
31
+ missing: string[];
32
+ }>;
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Process-physics chrome kit — stage bays, capacity badges, absorb basins,
3
+ * feature sockets, and flow spines for ProcessFlow / custom process layouts.
4
+ *
5
+ * Theme via CSS vars (with solid fallbacks so chrome never goes blank):
6
+ * --semiotic-process-floor, --semiotic-process-lane, --semiotic-process-border
7
+ * --semiotic-process-text, --semiotic-process-muted
8
+ * --semiotic-success / warning / danger / info for semantic stage roles
9
+ */
10
+ import * as React from "react";
11
+ export interface ProcessChromeStage {
12
+ id: string;
13
+ label: string;
14
+ x0: number;
15
+ x1: number;
16
+ x: number;
17
+ width: number;
18
+ count?: number;
19
+ capacity?: number;
20
+ /** Reader-facing capacity badge; defaults to the numeric `cap` label. */
21
+ capacityLabel?: string;
22
+ /** Override stage badges without hiding capacity badges across the layout. */
23
+ showBadge?: boolean;
24
+ absorb?: boolean;
25
+ portalTarget?: string;
26
+ queueDepth?: number;
27
+ processed?: number;
28
+ }
29
+ export interface ProcessChromeGroup {
30
+ id: string;
31
+ label: string;
32
+ x: number;
33
+ y: number;
34
+ absorbed?: number;
35
+ total?: number;
36
+ complete?: boolean;
37
+ }
38
+ export interface ProcessChromeLayout {
39
+ width: number;
40
+ height: number;
41
+ left: number;
42
+ right: number;
43
+ topY: number;
44
+ bottomY: number;
45
+ midY: number;
46
+ stages: readonly ProcessChromeStage[];
47
+ groups?: readonly ProcessChromeGroup[];
48
+ }
49
+ export interface ProcessChromeOptions {
50
+ showFlowSpine?: boolean;
51
+ showStageCounts?: boolean;
52
+ showCapacityBadges?: boolean;
53
+ showGroupSockets?: boolean;
54
+ /** Fit stage labels to the stage band instead of drawing fixed-width pills. */
55
+ stageLabelMode?: "auto" | "full" | "compact" | "none";
56
+ /**
57
+ * When true, stage bays are stroke-only (transparent fill) so particles
58
+ * and paired charts remain visible through the gate geometry.
59
+ */
60
+ outlineStages?: boolean;
61
+ testId?: string;
62
+ }
63
+ /**
64
+ * SVG process chrome for overlays / backgroundGraphics.
65
+ * Pure presentational — call from ProcessFlowChart or PhysicsCustomChart.
66
+ */
67
+ export declare function processChrome(layout: ProcessChromeLayout, options?: ProcessChromeOptions): React.ReactElement;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Serializable stage-journey state derived from physics region events.
3
+ *
4
+ * Keep this reducer independent from a live physics runtime so authors can
5
+ * replay, compare, persist, and project the same event stream deterministically.
6
+ */
7
+ import type { StreamPhysicsRegionEvent } from "../stream/physics/StreamPhysicsFrame";
8
+ export interface ProcessJourneyStage {
9
+ id: string;
10
+ label?: string;
11
+ }
12
+ export interface ProcessJourneyEntityState {
13
+ id: string;
14
+ currentStageId?: string;
15
+ furthestStageId?: string;
16
+ furthestStageIndex: number;
17
+ visitedStageIds: string[];
18
+ visitsByStage: Record<string, number>;
19
+ firstEnteredAt: Record<string, number>;
20
+ lastEnteredAt: Record<string, number>;
21
+ regressionCount: number;
22
+ }
23
+ export interface ProcessJourneyLedger {
24
+ stages: ProcessJourneyStage[];
25
+ bodyIds: string[];
26
+ entities: Record<string, ProcessJourneyEntityState>;
27
+ }
28
+ type ProcessJourneyRegionEvent = Pick<StreamPhysicsRegionEvent, "bodyId" | "datum" | "region">;
29
+ export interface ProcessJourneyUpdateOptions {
30
+ entityId?: (event: ProcessJourneyRegionEvent) => string;
31
+ stageId?: (event: ProcessJourneyRegionEvent) => string | undefined;
32
+ }
33
+ export interface ProcessJourneyRow {
34
+ id: string;
35
+ label: string;
36
+ reached: number;
37
+ entered: number;
38
+ total: number;
39
+ conversion: number;
40
+ fromPrevious: number;
41
+ dropoff: number;
42
+ visits: number;
43
+ repeatVisits: number;
44
+ }
45
+ /** Create serializable journey state for a known or initially empty cohort. */
46
+ export declare function createProcessJourneyLedger(options: {
47
+ stages: readonly ProcessJourneyStage[];
48
+ bodyIds?: readonly string[];
49
+ }): ProcessJourneyLedger;
50
+ /** Reduce a stage-region enter into unique reach and visit-aware entity state. */
51
+ export declare function updateProcessJourney(previous: ProcessJourneyLedger, event: Pick<StreamPhysicsRegionEvent, "type" | "bodyId" | "datum" | "observation" | "region">, options?: ProcessJourneyUpdateOptions): ProcessJourneyLedger;
52
+ /** Convert a live journey ledger into stable stage reach and conversion rows. */
53
+ export declare function processJourneyRows(ledger: ProcessJourneyLedger): ProcessJourneyRow[];
54
+ export {};