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,27 @@
1
+ import type { Datum } from "../shared/datumTypes";
2
+ import type { ChartAccessor } from "../shared/types";
3
+ import { type PhysicsChartArea, type PhysicsChartLayout } from "./physicsChartShared";
4
+ export interface CollisionSwarmPhysicsOptions<TDatum extends Datum = Datum> {
5
+ data: readonly TDatum[];
6
+ xAccessor: ChartAccessor<TDatum, number>;
7
+ groupAccessor?: ChartAccessor<TDatum, string>;
8
+ radiusAccessor?: ChartAccessor<TDatum, number>;
9
+ pointRadius: number;
10
+ seed: number;
11
+ size: [number, number];
12
+ xExtent?: [number, number];
13
+ collisionIterations?: number;
14
+ settle?: boolean;
15
+ }
16
+ export interface CollisionSwarmProjectionMetadata {
17
+ kind: "collision-swarm";
18
+ xExtent: [number, number];
19
+ xRange: [number, number];
20
+ groups: Array<{
21
+ label: string;
22
+ y: number;
23
+ count: number;
24
+ }>;
25
+ plot: PhysicsChartArea["plot"];
26
+ }
27
+ export declare function buildCollisionSwarmPhysics<TDatum extends Datum>(options: CollisionSwarmPhysicsOptions<TDatum>): PhysicsChartLayout;
@@ -0,0 +1,188 @@
1
+ import type { Datum } from "../shared/datumTypes";
2
+ export type DependencyAccessor<TDatum, TValue> = keyof TDatum | ((datum: TDatum, index: number) => TValue);
3
+ export type DependencyTaskStatus = "done" | "in-progress" | "blocked" | "waiting";
4
+ export interface DependencyMachineAccessors<TDatum extends Datum = Datum> {
5
+ taskIDAccessor: DependencyAccessor<TDatum, string | number>;
6
+ labelAccessor: DependencyAccessor<TDatum, string>;
7
+ laneAccessor: DependencyAccessor<TDatum, string>;
8
+ dependencyAccessor: DependencyAccessor<TDatum, readonly (string | number)[]>;
9
+ startAccessor?: DependencyAccessor<TDatum, number | Date | undefined>;
10
+ endAccessor?: DependencyAccessor<TDatum, number | Date | undefined>;
11
+ progressAccessor?: DependencyAccessor<TDatum, number | undefined>;
12
+ statusAccessor?: DependencyAccessor<TDatum, DependencyTaskStatus | undefined>;
13
+ completionTimeAccessor?: DependencyAccessor<TDatum, number | Date | undefined>;
14
+ blockerAccessor?: DependencyAccessor<TDatum, string | undefined>;
15
+ milestoneAccessor?: DependencyAccessor<TDatum, boolean | undefined>;
16
+ }
17
+ export interface CompileDependencyMachineOptions<TDatum extends Datum = Datum> extends DependencyMachineAccessors<TDatum> {
18
+ data: readonly TDatum[];
19
+ /** Defaults to first-seen lane order. */
20
+ laneOrder?: readonly string[];
21
+ }
22
+ export type DependencyMachineDiagnosticCode = "duplicate-task-id" | "missing-dependency" | "cycle";
23
+ export interface DependencyMachineDiagnostic {
24
+ code: DependencyMachineDiagnosticCode;
25
+ message: string;
26
+ taskIDs: string[];
27
+ }
28
+ export interface DependencyMachineNode<TDatum extends Datum = Datum> {
29
+ id: string;
30
+ label: string;
31
+ lane: string;
32
+ laneIndex: number;
33
+ level: number;
34
+ index: number;
35
+ datum: TDatum;
36
+ dependencyIDs: string[];
37
+ incomingEdgeIDs: string[];
38
+ outgoingEdgeIDs: string[];
39
+ socketIDs: string[];
40
+ start?: number | Date;
41
+ end?: number | Date;
42
+ progress: number;
43
+ status: DependencyTaskStatus;
44
+ completionTime?: number | Date;
45
+ blockerReason?: string;
46
+ milestone: boolean;
47
+ }
48
+ export interface DependencyMachineEdge {
49
+ id: string;
50
+ sourceID: string;
51
+ targetID: string;
52
+ sourceIndex: number;
53
+ targetIndex: number;
54
+ socketID: string;
55
+ socketIndex: number;
56
+ }
57
+ export interface DependencyMachine<TDatum extends Datum = Datum> {
58
+ nodes: DependencyMachineNode<TDatum>[];
59
+ edges: DependencyMachineEdge[];
60
+ byID: Map<string, DependencyMachineNode<TDatum>>;
61
+ incoming: Map<string, DependencyMachineEdge[]>;
62
+ outgoing: Map<string, DependencyMachineEdge[]>;
63
+ lanes: string[];
64
+ maxLevel: number;
65
+ diagnostics: DependencyMachineDiagnostic[];
66
+ valid: boolean;
67
+ }
68
+ export interface DependencyPoint {
69
+ x: number;
70
+ y: number;
71
+ }
72
+ export interface DependencyTrackDimensions {
73
+ width: number;
74
+ height: number;
75
+ paddingX?: number;
76
+ paddingTop?: number;
77
+ paddingBottom?: number;
78
+ }
79
+ export interface DependencyTrackOptions {
80
+ taskWidth?: number;
81
+ taskHeight?: number;
82
+ gutterCount?: number;
83
+ socketRadius?: number;
84
+ }
85
+ export interface DependencyTaskPlacement extends DependencyPoint {
86
+ taskID: string;
87
+ lane: string;
88
+ laneIndex: number;
89
+ level: number;
90
+ width: number;
91
+ height: number;
92
+ }
93
+ export interface DependencySocketPlacement extends DependencyPoint {
94
+ id: string;
95
+ edgeID: string;
96
+ taskID: string;
97
+ index: number;
98
+ radius: number;
99
+ }
100
+ export interface DependencyTrackRoute {
101
+ edgeID: string;
102
+ sourceID: string;
103
+ targetID: string;
104
+ socketID: string;
105
+ points: DependencyPoint[];
106
+ }
107
+ export interface DependencyTrackLayout {
108
+ tasks: DependencyTaskPlacement[];
109
+ sockets: DependencySocketPlacement[];
110
+ routes: DependencyTrackRoute[];
111
+ taskByID: Map<string, DependencyTaskPlacement>;
112
+ socketByID: Map<string, DependencySocketPlacement>;
113
+ routeByEdgeID: Map<string, DependencyTrackRoute>;
114
+ }
115
+ export interface LogicalJoinSnapshot {
116
+ taskID: string;
117
+ mode: "all";
118
+ incomingEdgeIDs: string[];
119
+ deliveredEdgeIDs: string[];
120
+ satisfied: boolean;
121
+ }
122
+ export interface LogicalJoin {
123
+ taskID: string;
124
+ mode: "all";
125
+ incomingEdgeIDs: readonly string[];
126
+ deliver: (edgeID: string) => boolean;
127
+ reset: (deliveredEdgeIDs?: Iterable<string>) => void;
128
+ isSatisfied: () => boolean;
129
+ getSnapshot: () => LogicalJoinSnapshot;
130
+ }
131
+ export type DependencyReplayEvent = {
132
+ type: "task-completed";
133
+ taskID: string;
134
+ at: number | Date;
135
+ } | {
136
+ type: "task-blocked";
137
+ taskID: string;
138
+ reason: string;
139
+ at: number | Date;
140
+ } | {
141
+ type: "task-unblocked";
142
+ taskID: string;
143
+ at: number | Date;
144
+ } | {
145
+ type: "dependency-delivered";
146
+ edgeID: string;
147
+ at: number | Date;
148
+ } | {
149
+ type: "task-armed";
150
+ taskID: string;
151
+ at: number | Date;
152
+ };
153
+ export type DependencyReplayClock = number | Date | {
154
+ currentTime: number | Date;
155
+ };
156
+ export interface DependencyReplayState {
157
+ currentTime: number;
158
+ appliedEvents: DependencyReplayEvent[];
159
+ completedTaskIDs: Set<string>;
160
+ blockedByTaskID: Map<string, string>;
161
+ deliveredEdgeIDs: Set<string>;
162
+ armedTaskIDs: Set<string>;
163
+ }
164
+ export interface BlockerAmplification {
165
+ blockerID: string;
166
+ downstreamTaskCount: number;
167
+ affectedLaneCount: number;
168
+ downstreamTaskIDs: string[];
169
+ affectedLanes: string[];
170
+ }
171
+ export interface BlockerAmplificationOptions<TDatum extends Datum = Datum> {
172
+ completedTaskIDs?: Iterable<string>;
173
+ isComplete?: (node: DependencyMachineNode<TDatum>) => boolean;
174
+ }
175
+ /**
176
+ * Compile task records into deterministic directed-DAG structure. Invalid
177
+ * graphs are returned with explicit diagnostics so a chart can render a useful
178
+ * failure state rather than silently inventing dependency order.
179
+ */
180
+ export declare function compileDependencyMachine<TDatum extends Datum = Datum>(options: CompileDependencyMachineOptions<TDatum>): DependencyMachine<TDatum>;
181
+ /** Resolve task tiles, receiving sockets, and shared point-based track routes. */
182
+ export declare function routeDependencyTracks<TDatum extends Datum = Datum>(machine: DependencyMachine<TDatum>, dimensions: DependencyTrackDimensions, options?: DependencyTrackOptions): DependencyTrackLayout;
183
+ /** Stateful exact logical join. Physics contacts may call `deliver`; they never define the rule. */
184
+ export declare function createLogicalJoin(taskID: string, incomingEdgeIDs: readonly string[], mode?: "all"): LogicalJoin;
185
+ /** Deterministically fold recorded process events through a supplied clock. */
186
+ export declare function replayStateTransitions(events: readonly DependencyReplayEvent[], clock: DependencyReplayClock): DependencyReplayState;
187
+ /** Directed unfinished-descendant reach, deliberately not a critical-path claim. */
188
+ export declare function calculateBlockerAmplification<TDatum extends Datum = Datum>(machine: DependencyMachine<TDatum>, blockerID: string, options?: BlockerAmplificationOptions<TDatum>): BlockerAmplification;
@@ -0,0 +1,64 @@
1
+ import type { Datum } from "../shared/datumTypes";
2
+ import type { ChartAccessor } from "../shared/types";
3
+ import { type PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
4
+ import { type PhysicsChartArea, type PhysicsChartLayout } from "./physicsChartShared";
5
+ export interface EventDropWindowOptions {
6
+ size: number;
7
+ gapPolicy?: "drop" | "keep";
8
+ }
9
+ export interface EventDropPlotRegion {
10
+ x: number;
11
+ y: number;
12
+ width: number;
13
+ height: number;
14
+ }
15
+ export interface EventDropLidSegment {
16
+ id: string;
17
+ windowIndex?: number;
18
+ x1: number;
19
+ y1: number;
20
+ x2: number;
21
+ y2: number;
22
+ }
23
+ export interface EventDropProjectionMetadata {
24
+ kind: "event-drop";
25
+ closedWindowCount: number;
26
+ gutter: EventDropPlotRegion;
27
+ lateCount: number;
28
+ lidSegments: EventDropLidSegment[];
29
+ plot: PhysicsChartArea["plot"];
30
+ windowPlot: EventDropPlotRegion;
31
+ watermarkValue: number;
32
+ windowCount: number;
33
+ windowSize: number;
34
+ windowStart: number;
35
+ }
36
+ export interface EventDropPhysicsOptions<TDatum extends Datum = Datum> {
37
+ data: readonly TDatum[];
38
+ timeAccessor: ChartAccessor<TDatum, number>;
39
+ arrivalAccessor: ChartAccessor<TDatum, number>;
40
+ windows: EventDropWindowOptions;
41
+ watermark?: {
42
+ delay?: number;
43
+ value?: number;
44
+ } | ((latestEventTime: number) => number);
45
+ ballRadius: number;
46
+ seed: number;
47
+ size: [number, number];
48
+ timeExtent?: [number, number];
49
+ timeScale?: number;
50
+ }
51
+ export declare function buildEventDropPhysics<TDatum extends Datum>(options: EventDropPhysicsOptions<TDatum>): PhysicsChartLayout;
52
+ /**
53
+ * Place a single event onto an already-mounted EventDropChart using the live
54
+ * board's domain (window layout + current watermark) so a pushed arrival drops
55
+ * over its true event-time x instead of the center of a one-event mini-domain.
56
+ * Closed-window lids then decide whether physics sends it to the gutter.
57
+ * Returns null when the datum carries no finite event time. Omits `spawnAt` so
58
+ * the store drops it now.
59
+ */
60
+ export declare function placeEventDropSpawn<TDatum extends Datum>(datum: TDatum, index: number, metadata: EventDropProjectionMetadata, options: {
61
+ timeAccessor: ChartAccessor<TDatum, number>;
62
+ arrivalAccessor: ChartAccessor<TDatum, number>;
63
+ ballRadius: number;
64
+ }): PhysicsQueuedSpawn | null;
@@ -0,0 +1,28 @@
1
+ import type { Datum } from "../shared/datumTypes";
2
+ import type { ChartAccessor } from "../shared/types";
3
+ import { type PhysicsChartArea, type PhysicsChartLayout } from "./physicsChartShared";
4
+ export interface GaltonBoardPhysicsOptions<TDatum extends Datum = Datum> {
5
+ data: readonly TDatum[];
6
+ valueAccessor: ChartAccessor<TDatum, number>;
7
+ bins: number;
8
+ ballRadius: number;
9
+ seed: number;
10
+ size: [number, number];
11
+ valueExtent?: [number, number];
12
+ }
13
+ export interface GaltonBoardProjectionMetadata {
14
+ kind: "galton-board";
15
+ bins: number;
16
+ plot: PhysicsChartArea["plot"];
17
+ valueExtent: [number, number];
18
+ }
19
+ export interface GaltonMechanicalSampleOptions {
20
+ bins: number;
21
+ count?: number;
22
+ pegRows?: number;
23
+ branchProbability?: number;
24
+ seed?: number;
25
+ idPrefix?: string;
26
+ }
27
+ export declare function generateGaltonMechanicalSamples(options: GaltonMechanicalSampleOptions): Datum[];
28
+ export declare function buildGaltonBoardPhysics<TDatum extends Datum>(options: GaltonBoardPhysicsOptions<TDatum>): PhysicsChartLayout;
@@ -0,0 +1,67 @@
1
+ /**
2
+ * GauntletChart public props (HOC surface).
3
+ */
4
+ import type { StreamPhysicsFrameProps } from "../../stream/physics/StreamPhysicsFrame";
5
+ import type { CapacityQueueSnapshot } from "../../stream/physics/PhysicsControllers";
6
+ import type { PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
7
+ import type { Datum } from "../shared/datumTypes";
8
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
9
+ import type { PhysicsProcessBodyGroup } from "./physicsProcessPrimitives";
10
+ import type { PhysicsHocFrameProps, PhysicsSharedChartProps, TooltipProp } from "./physicsHocUtils";
11
+ import type { GauntletEvent, GauntletGate, GauntletLayout, GauntletProjectPlacement, GauntletProjectState, GauntletPropertyDefinition } from "./gauntletTypes";
12
+ export interface GauntletChartProps<TDatum extends Datum = Datum> extends Omit<BaseChartProps, "margin">, PhysicsSharedChartProps {
13
+ data?: TDatum[];
14
+ size?: [number, number];
15
+ idAccessor?: ChartAccessor<TDatum, string>;
16
+ labelAccessor?: ChartAccessor<TDatum, string>;
17
+ positiveAccessor?: ChartAccessor<TDatum, readonly string[]>;
18
+ negativeAccessor?: ChartAccessor<TDatum, readonly string[]>;
19
+ /** Simulation second when each project's local gate timeline begins. */
20
+ startTimeAccessor?: ChartAccessor<TDatum, number>;
21
+ metricsAccessor?: ChartAccessor<TDatum, Record<string, number>>;
22
+ initialViability?: ChartAccessor<TDatum, number>;
23
+ positiveProperties?: readonly GauntletPropertyDefinition[];
24
+ negativeProperties: readonly GauntletPropertyDefinition[];
25
+ bodyGroups?: readonly PhysicsProcessBodyGroup<TDatum>[] | ((projects: readonly GauntletProjectState<TDatum>[], layout: GauntletLayout) => readonly PhysicsProcessBodyGroup<TDatum>[]);
26
+ coreBody?: (project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout, placement: Required<GauntletProjectPlacement>) => Partial<PhysicsQueuedSpawn>;
27
+ gates?: readonly GauntletGate[];
28
+ events?: readonly GauntletEvent[] | ((project: GauntletProjectState<TDatum>, layout: GauntletLayout) => readonly GauntletEvent[]);
29
+ crashOffset?: number;
30
+ /** Draw the crash line but optionally disable live crash-line termination. */
31
+ crashDetection?: boolean;
32
+ emptyContent?: BaseChartProps["emptyContent"];
33
+ frameProps?: PhysicsHocFrameProps<"bodyForces">;
34
+ initialSpawnPacing?: StreamPhysicsFrameProps["initialSpawnPacing"];
35
+ loading?: BaseChartProps["loading"];
36
+ loadingContent?: BaseChartProps["loadingContent"];
37
+ onStateChange?: (states: GauntletProjectState<TDatum>[]) => void;
38
+ /** Live snapshots for gates declaring shared FIFO capacity. */
39
+ onCapacityChange?: (snapshots: CapacityQueueSnapshot[]) => void;
40
+ outcome?: (project: GauntletProjectState<TDatum>, context: {
41
+ layout: GauntletLayout;
42
+ negativeProperties: Map<string, GauntletPropertyDefinition>;
43
+ positiveProperties: Map<string, GauntletPropertyDefinition>;
44
+ }) => string;
45
+ paused?: boolean;
46
+ projectPlacement?: (project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout) => Partial<GauntletProjectPlacement>;
47
+ showChrome?: boolean;
48
+ /**
49
+ * Settled-projection strip: project viability bars and outcome labels so the
50
+ * chart remains readable without tracking body motion.
51
+ */
52
+ showProjection?: boolean;
53
+ showTethers?: boolean;
54
+ /**
55
+ * Core-body vertical force model.
56
+ * - "route": default authored route plus lift/drag burden.
57
+ * - "net": vertical drift follows summed positive vs negative property
58
+ * weight, leaving the crash line to decide physical failure.
59
+ */
60
+ coreForceMode?: "route" | "net";
61
+ terminalBehavior?: "outcome" | "hold-last";
62
+ tooltip?: TooltipProp;
63
+ viability?: (project: GauntletProjectState<TDatum>, context: {
64
+ negativeProperties: Map<string, GauntletPropertyDefinition>;
65
+ positiveProperties: Map<string, GauntletPropertyDefinition>;
66
+ }) => number;
67
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Gauntlet canvas paint + SVG chrome / projection overlay.
3
+ */
4
+ import * as React from "react";
5
+ import type { Datum } from "../shared/datumTypes";
6
+ import type { Style } from "../../stream/types";
7
+ import type { PhysicsBodyState } from "../../stream/physics/PhysicsKernel";
8
+ import type { PhysicsHoverData } from "../../stream/physics/StreamPhysicsFrame";
9
+ import type { PhysicsSemanticItem } from "../../stream/physics/StreamPhysicsTypes";
10
+ import { type GauntletLayout, type GauntletProjectState } from "./gauntletPhysics";
11
+ export declare function defaultGauntletTooltipContent(hover: PhysicsHoverData): React.ReactNode;
12
+ export declare function drawGauntletBody(ctx: CanvasRenderingContext2D, body: PhysicsBodyState, style: Style): void;
13
+ export declare function resolveCanvasColor(ctx: CanvasRenderingContext2D, value: Style[keyof Style] | undefined, fallback: string): string;
14
+ export declare function drawTethers(ctx: CanvasRenderingContext2D, bodies: PhysicsBodyState[]): void;
15
+ export declare function GauntletChrome({ layout, states }: {
16
+ layout: GauntletLayout;
17
+ states: readonly GauntletProjectState[];
18
+ }): React.JSX.Element;
19
+ export declare function gauntletSemanticItem(body: PhysicsBodyState): false | {
20
+ label: string;
21
+ group: string;
22
+ description: string;
23
+ };
24
+ export declare function gauntletProjectionRows<TDatum extends Datum>(states: readonly GauntletProjectState<TDatum>[]): Array<{
25
+ label: string;
26
+ value: number;
27
+ outcome: string;
28
+ }>;
29
+ export declare function gauntletProjectionSemanticItems<TDatum extends Datum>(states: readonly GauntletProjectState<TDatum>[], layout: GauntletLayout): PhysicsSemanticItem[];
30
+ export declare function GauntletProjectionOverlay<TDatum extends Datum>({ states, layout }: {
31
+ states: readonly GauntletProjectState<TDatum>[];
32
+ layout: GauntletLayout;
33
+ }): React.JSX.Element | null;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Gauntlet React-facing controller glue: builds the imperative ref handle,
3
+ * the per-gate capacity controllers, and the per-tick crash/event-application
4
+ * pass. Plain functions (no hooks) called from inside GauntletChart's
5
+ * existing useImperativeHandle/useMemo/useCallback — refs and memoized
6
+ * callbacks are passed in explicitly instead of closed over, so identity and
7
+ * dependency-array semantics are unchanged from before extraction.
8
+ */
9
+ import type { Datum } from "../shared/datumTypes";
10
+ import type { PhysicsFrameHandle } from "./physicsHocHandle";
11
+ import { type CapacityQueueSnapshot, type PhysicsController } from "../../stream/physics/PhysicsControllers";
12
+ import type { PhysicsPipelineControlSurface, PhysicsPipelineTickResult } from "../../stream/physics/PhysicsPipelineStore";
13
+ import type { StreamPhysicsFrameHandle } from "../../stream/physics/StreamPhysicsFrame";
14
+ import { type GauntletCoreBodyFn, type GauntletEffect, type GauntletEvent, type GauntletLayout, type GauntletProjectPlacementFn, type GauntletProjectState, type GauntletPropertyDefinition, type GauntletViabilityFn } from "./gauntletPhysics";
15
+ export declare function capacitySnapshotsEqual(a: readonly CapacityQueueSnapshot[], b: readonly CapacityQueueSnapshot[]): boolean;
16
+ /** Build one capacity-queue controller per gate that declares `capacity`. */
17
+ export declare function buildGauntletCapacityControllers<TDatum extends Datum>(options: {
18
+ dataKey: string;
19
+ gates: GauntletLayout["gates"];
20
+ statesRef: {
21
+ current: readonly GauntletProjectState<TDatum>[];
22
+ };
23
+ processedGateVisitsRef: {
24
+ current: Map<string, number>;
25
+ };
26
+ }): PhysicsController[];
27
+ /** Build the `ref.current` imperative API (push/pushMany/remove/update/clear/...). */
28
+ export declare function buildGauntletImperativeHandle<TDatum extends Datum>(deps: {
29
+ statesRef: {
30
+ current: GauntletProjectState<TDatum>[];
31
+ };
32
+ setStates: (states: GauntletProjectState<TDatum>[]) => void;
33
+ elapsedRef: {
34
+ current: number;
35
+ };
36
+ frameRef: {
37
+ current: StreamPhysicsFrameHandle | null;
38
+ };
39
+ layout: GauntletLayout;
40
+ projectPlacement: GauntletProjectPlacementFn<TDatum> | undefined;
41
+ positiveById: Map<string, GauntletPropertyDefinition>;
42
+ negativeById: Map<string, GauntletPropertyDefinition>;
43
+ coreBody: GauntletCoreBodyFn<TDatum> | undefined;
44
+ createState: (datum: TDatum, index: number, defaultStartedAt?: number) => GauntletProjectState<TDatum>;
45
+ }): PhysicsFrameHandle;
46
+ /** Per-tick crash detection + due-event application, driving `updateProjectState`. */
47
+ export declare function runGauntletTick<TDatum extends Datum>(result: PhysicsPipelineTickResult, controls: PhysicsPipelineControlSurface, deps: {
48
+ frameProps: {
49
+ onTick?: (result: PhysicsPipelineTickResult, controls: PhysicsPipelineControlSurface) => void;
50
+ };
51
+ elapsedRef: {
52
+ current: number;
53
+ };
54
+ statesRef: {
55
+ current: readonly GauntletProjectState<TDatum>[];
56
+ };
57
+ crashDetection: boolean;
58
+ layout: GauntletLayout;
59
+ projectEvents: (project: GauntletProjectState<TDatum>) => readonly GauntletEvent[];
60
+ gateById: Map<string, GauntletLayout["gates"][number]>;
61
+ capacityEventReady: (project: GauntletProjectState<TDatum>, event: GauntletEvent, timeline: readonly GauntletEvent[]) => boolean;
62
+ addBodiesForEffect: (project: GauntletProjectState<TDatum>, effect: GauntletEffect, controls: PhysicsPipelineControlSurface) => void;
63
+ updateProjectState: (projectId: string, updater: (project: GauntletProjectState<TDatum>) => GauntletProjectState<TDatum>) => void;
64
+ viability: GauntletViabilityFn<TDatum> | undefined;
65
+ positiveById: Map<string, GauntletPropertyDefinition>;
66
+ negativeById: Map<string, GauntletPropertyDefinition>;
67
+ outcome: ((project: GauntletProjectState<TDatum>, context: {
68
+ layout: GauntletLayout;
69
+ negativeProperties: Map<string, GauntletPropertyDefinition>;
70
+ positiveProperties: Map<string, GauntletPropertyDefinition>;
71
+ }) => string) | undefined;
72
+ reportCapacity: () => void;
73
+ }): void;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Pure Gauntlet gate-effect helpers (no React): resolving which attached
3
+ * properties an effect pops, planning bounded property work, and applying
4
+ * an effect to project state.
5
+ */
6
+ import type { Datum } from "../shared/datumTypes";
7
+ import type { GauntletEffect, GauntletEvent, GauntletEventContext, GauntletEventLogItem, GauntletNegativeReplacementOptions, GauntletPopSpec, GauntletProjectState, GauntletPropertyWorkPlan, GauntletPropertyWorkPlanOptions } from "./gauntletTypes";
8
+ export declare function expandIds(input: readonly string[] | Record<string, number> | undefined): string[];
9
+ export declare function isReadonlyStringArray(value: GauntletPopSpec | undefined): value is readonly string[];
10
+ export declare function resolvePopSpecIds(attachedIds: readonly string[], popSpec: GauntletPopSpec | undefined): string[];
11
+ export declare function resolvePopPositiveIds<TDatum extends Datum>(project: GauntletProjectState<TDatum>, effect: GauntletEffect): string[];
12
+ /**
13
+ * Select attached property occurrences without exceeding a bounded work
14
+ * budget. Selection is deterministic: property priority, then attachment
15
+ * order. Expensive occurrences are skipped so later affordable work can fit.
16
+ */
17
+ export declare function planGauntletPropertyWork(options: GauntletPropertyWorkPlanOptions): GauntletPropertyWorkPlan;
18
+ /** Build one add/pop effect for an occurrence-preserving replacement. */
19
+ export declare function replaceGauntletNegative<TDatum extends Datum>(project: GauntletProjectState<TDatum>, options: GauntletNegativeReplacementOptions): GauntletEffect;
20
+ /**
21
+ * Resolve which negative property instances to detach. Returns body indices
22
+ * into `project.negativeIds` so multi-instance loads keep stable body ids.
23
+ */
24
+ export declare function resolvePopNegativeEntries<TDatum extends Datum>(project: GauntletProjectState<TDatum>, effect: GauntletEffect): Array<{
25
+ propertyId: string;
26
+ index: number;
27
+ }>;
28
+ /**
29
+ * Pure project-state transition for a single gate effect. Exported so unit
30
+ * tests can cover popPositive / popNegative / add* without driving the
31
+ * full physics tick loop.
32
+ */
33
+ export declare function applyGauntletEffect<TDatum extends Datum>(project: GauntletProjectState<TDatum>, effect: GauntletEffect, context: GauntletEventContext<TDatum>): GauntletProjectState<TDatum>;
34
+ export declare function eventLogItem(event: GauntletEvent, effects: readonly GauntletEffect[]): GauntletEventLogItem;
35
+ /** Append one semantic event exactly once, even when render ticks outpace state commits. */
36
+ export declare function recordGauntletEvent<TDatum extends Datum>(project: GauntletProjectState<TDatum>, logItem: GauntletEventLogItem): GauntletProjectState<TDatum>;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Pure Gauntlet physics helpers (no React).
3
+ * Types: `./gauntletTypes`.
4
+ */
5
+ import type { Datum } from "../shared/datumTypes";
6
+ import type { ChartAccessor } from "../shared/types";
7
+ import type { PhysicsPipelineConfig, PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
8
+ import { type GauntletAccessors, type GauntletCoreBodyFn, type GauntletGate, type GauntletLayout, type GauntletProjectPlacement, type GauntletProjectPlacementFn, type GauntletProjectState, type GauntletPropertyDefinition, type GauntletViabilityFn } from "./gauntletTypes";
9
+ export { CORE_KIND, POSITIVE_KIND, NEGATIVE_KIND } from "./gauntletTypes";
10
+ export type { GauntletAccessors, GauntletBodyDatum, GauntletCoreBodyFn, GauntletEffect, GauntletEvent, GauntletEventContext, GauntletEventLogItem, GauntletGate, GauntletLayout, GauntletNegativeReplacementOptions, GauntletPopSpec, GauntletProjectPlacement, GauntletProjectPlacementFn, GauntletProjectState, GauntletPropertyDefinition, GauntletPropertyForceContext, GauntletPropertyWorkPlan, GauntletPropertyWorkPlanOptions, GauntletViabilityFn } from "./gauntletTypes";
11
+ export declare const DEFAULT_WIDTH = 900;
12
+ export declare const DEFAULT_HEIGHT = 520;
13
+ export declare function gauntletWallColliders(layout: Pick<GauntletLayout, "width" | "floorY">): NonNullable<PhysicsPipelineConfig["colliders"]>;
14
+ export declare function readAccessor<TDatum extends Datum, TValue>(datum: TDatum, index: number, accessor: ChartAccessor<TDatum, TValue> | undefined, fallback: TValue): TValue;
15
+ export declare function propertyLabel(property: GauntletPropertyDefinition | undefined): string;
16
+ export declare function projectCoreId(projectId: string): string;
17
+ export declare function projectPositiveId(projectId: string, propertyId: string): string;
18
+ export declare function projectNegativeId(projectId: string, propertyId: string, index: number): string;
19
+ /** Interior of the collider box (matches wall segments in the frame config). */
20
+ export declare const GAUNTLET_WALL: {
21
+ readonly left: 28;
22
+ readonly top: 76;
23
+ readonly rightInset: 30;
24
+ readonly thickness: 8;
25
+ };
26
+ /**
27
+ * Keep body centers inside the playable gauntlet corridor so satellite
28
+ * property particles never spawn or settle outside the left/right walls
29
+ * (the "stuck on the left" regression for Homes on Main Street).
30
+ */
31
+ export declare function clampGauntletPoint(x: number, y: number, radius: number, layout: Pick<GauntletLayout, "width" | "floorY">): {
32
+ x: number;
33
+ y: number;
34
+ };
35
+ export declare function buildLayout(size: [number, number], gates: readonly GauntletGate[] | undefined, crashOffset: number): GauntletLayout;
36
+ export declare function defaultPlacement(layout: GauntletLayout): Required<GauntletProjectPlacement>;
37
+ export declare function resolvePlacement<TDatum extends Datum>(project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout, projectPlacement: GauntletProjectPlacementFn<TDatum> | undefined): Required<GauntletProjectPlacement>;
38
+ export declare function featureSlot(ids: readonly string[], id: string): {
39
+ angle: number;
40
+ index: number;
41
+ radius: number;
42
+ };
43
+ export declare function defaultViability<TDatum extends Datum>(project: GauntletProjectState<TDatum>, positiveProperties: Map<string, GauntletPropertyDefinition>, negativeProperties: Map<string, GauntletPropertyDefinition>): number;
44
+ export declare function createInitialState<TDatum extends Datum>(datum: TDatum, index: number, props: GauntletAccessors<TDatum>, positiveProperties: readonly GauntletPropertyDefinition[], negativeProperties: Map<string, GauntletPropertyDefinition>): GauntletProjectState<TDatum>;
45
+ export declare function buildProjectSpawns<TDatum extends Datum>(project: GauntletProjectState<TDatum>, projectIndex: number, layout: GauntletLayout, placement: Required<GauntletProjectPlacement>, positiveProperties: Map<string, GauntletPropertyDefinition>, negativeProperties: Map<string, GauntletPropertyDefinition>, coreBody?: GauntletCoreBodyFn<TDatum>): PhysicsQueuedSpawn[];
46
+ /**
47
+ * Pure Gauntlet world builder for SSR / renderChart. Materializes project
48
+ * cores + property satellites once without React state or gate animation.
49
+ */
50
+ export declare function buildGauntletPhysics<TDatum extends Datum = Datum>(options: {
51
+ data?: readonly TDatum[];
52
+ size?: [number, number];
53
+ gates?: readonly GauntletGate[];
54
+ positiveProperties?: readonly GauntletPropertyDefinition[];
55
+ negativeProperties?: readonly GauntletPropertyDefinition[];
56
+ crashOffset?: number;
57
+ idAccessor?: ChartAccessor<TDatum, string>;
58
+ positiveAccessor?: ChartAccessor<TDatum, readonly string[]>;
59
+ negativeAccessor?: ChartAccessor<TDatum, readonly string[]>;
60
+ metricsAccessor?: ChartAccessor<TDatum, Record<string, number>>;
61
+ initialViability?: ChartAccessor<TDatum, number>;
62
+ startTimeAccessor?: ChartAccessor<TDatum, number>;
63
+ projectPlacement?: GauntletProjectPlacementFn<TDatum>;
64
+ coreBody?: GauntletCoreBodyFn<TDatum>;
65
+ viability?: GauntletViabilityFn<TDatum>;
66
+ }): {
67
+ config: NonNullable<import("../../stream/physics/PhysicsPipelineStore").PhysicsPipelineConfig>;
68
+ initialSpawns: PhysicsQueuedSpawn[];
69
+ layout: GauntletLayout;
70
+ };
71
+ export declare function buildNegativeSpawn<TDatum extends Datum>(project: GauntletProjectState<TDatum>, property: GauntletPropertyDefinition, index: number, x: number, y: number, layout: Pick<GauntletLayout, "width" | "floorY">, spawnAt?: number): PhysicsQueuedSpawn;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Gauntlet per-frame body force + tick helpers (no React).
3
+ */
4
+ import type { PhysicsBodyState } from "../../stream/physics/PhysicsKernel";
5
+ import type { PhysicsPipelineControlSurface } from "../../stream/physics/PhysicsPipelineStore";
6
+ import type { Datum } from "../shared/datumTypes";
7
+ import { type GauntletCoreBodyFn, type GauntletEffect, type GauntletEvent, type GauntletLayout, type GauntletProjectPlacement, type GauntletProjectPlacementFn, type GauntletProjectState, type GauntletPropertyDefinition } from "./gauntletPhysics";
8
+ export declare function computeGauntletBodyForce<TDatum extends Datum>(options: {
9
+ body: PhysicsBodyState;
10
+ bodies: readonly PhysicsBodyState[];
11
+ layout: GauntletLayout;
12
+ states: readonly GauntletProjectState<TDatum>[];
13
+ projectPlacement: GauntletProjectPlacementFn<TDatum> | undefined;
14
+ positiveById: Map<string, GauntletPropertyDefinition>;
15
+ negativeById: Map<string, GauntletPropertyDefinition>;
16
+ projectEvents: (project: GauntletProjectState<TDatum>) => readonly GauntletEvent[];
17
+ gateById: Map<string, GauntletLayout["gates"][number]>;
18
+ coreForceMode: "route" | "net";
19
+ terminalBehavior: "outcome" | "hold-last";
20
+ elapsed: number;
21
+ }): {
22
+ x: number;
23
+ y: number;
24
+ } | null;
25
+ export declare function spawnBodiesForGauntletEffect<TDatum extends Datum>(options: {
26
+ project: GauntletProjectState<TDatum>;
27
+ effect: GauntletEffect;
28
+ controls: PhysicsPipelineControlSurface;
29
+ layout: GauntletLayout;
30
+ positiveById: Map<string, GauntletPropertyDefinition>;
31
+ negativeById: Map<string, GauntletPropertyDefinition>;
32
+ coreBody?: GauntletCoreBodyFn<TDatum>;
33
+ popBodies: (ids: string[], options?: {
34
+ color?: string;
35
+ durationMs?: number;
36
+ radius?: number;
37
+ }) => unknown;
38
+ }): void;
39
+ export declare function projectRouteTarget<TDatum extends Datum>(elapsed: number, project: GauntletProjectState<TDatum>, layout: GauntletLayout, placement: Required<GauntletProjectPlacement>, events: readonly GauntletEvent[], gateById: Map<string, GauntletLayout["gates"][number]>, terminalBehavior: "outcome" | "hold-last"): {
40
+ x: number;
41
+ y: number;
42
+ };