semiotic 3.8.5 → 3.8.7

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 (277) hide show
  1. package/CLAUDE.md +37 -10
  2. package/README.md +83 -56
  3. package/ai/behaviorContracts.cjs +88 -3
  4. package/ai/componentMetadata.cjs +5 -10
  5. package/ai/dist/mcp-server.js +99 -10
  6. package/ai/examples.md +198 -9
  7. package/ai/schema.json +2002 -165
  8. package/ai/surface-manifest.json +14 -10
  9. package/ai/system-prompt.md +9 -3
  10. package/dist/{chunk-chartContainerDataAudit-74TLKIP6.module.min.js → chunk-chartContainerDataAudit-JDSVSKGM.module.min.js} +1 -1
  11. package/dist/chunk-chunk-2JGJ5GUG.module.min.js +1 -0
  12. package/dist/chunk-chunk-2YAZHXL4.module.min.js +2 -0
  13. package/dist/chunk-chunk-3NGIKFD6.module.min.js +1 -0
  14. package/dist/{chunk-chunk-G7WFWHAD.module.min.js → chunk-chunk-4ITOQRXM.module.min.js} +1 -1
  15. package/dist/chunk-chunk-5SD6BHVW.module.min.js +2 -0
  16. package/dist/chunk-chunk-6V5VQVCT.module.min.js +2 -0
  17. package/dist/chunk-chunk-7TTBHSAG.module.min.js +2 -0
  18. package/dist/chunk-chunk-7ZDJSYKI.module.min.js +2 -0
  19. package/dist/chunk-chunk-BGHPD3RA.module.min.js +1 -0
  20. package/dist/chunk-chunk-BMRZ2SPU.module.min.js +2 -0
  21. package/dist/chunk-chunk-BNGBEY7N.module.min.js +2 -0
  22. package/dist/chunk-chunk-C7APLVQD.module.min.js +2 -0
  23. package/dist/chunk-chunk-DGWFBOGB.module.min.js +1 -0
  24. package/dist/chunk-chunk-DIVE2DRA.module.min.js +2 -0
  25. package/dist/chunk-chunk-FBUNUIPV.module.min.js +2 -0
  26. package/dist/chunk-chunk-FQPKOAIH.module.min.js +2 -0
  27. package/dist/chunk-chunk-FRO4TRXK.module.min.js +2 -0
  28. package/dist/chunk-chunk-G7QVPZUD.module.min.js +2 -0
  29. package/dist/chunk-chunk-GBPYV4FP.module.min.js +2 -0
  30. package/dist/chunk-chunk-GU2EJIDJ.module.min.js +2 -0
  31. package/dist/chunk-chunk-J5QD4RAM.module.min.js +2 -0
  32. package/dist/{chunk-chunk-LJLS6DY7.module.min.js → chunk-chunk-JWXLNZSM.module.min.js} +1 -1
  33. package/dist/chunk-chunk-KXAFCCDB.module.min.js +2 -0
  34. package/dist/chunk-chunk-LG7YKJAK.module.min.js +2 -0
  35. package/dist/{chunk-chunk-I36PJ4OC.module.min.js → chunk-chunk-LVHDZAT3.module.min.js} +1 -1
  36. package/dist/chunk-chunk-LWITSR2O.module.min.js +2 -0
  37. package/dist/chunk-chunk-MX35T6RX.module.min.js +2 -0
  38. package/dist/chunk-chunk-NH4MEAKP.module.min.js +2 -0
  39. package/dist/chunk-chunk-NJETWX42.module.min.js +2 -0
  40. package/dist/chunk-chunk-NW25WGLS.module.min.js +2 -0
  41. package/dist/{chunk-chunk-TMWIZL3K.module.min.js → chunk-chunk-OI7R7EJB.module.min.js} +1 -1
  42. package/dist/chunk-chunk-ONMLEXHR.module.min.js +2 -0
  43. package/dist/chunk-chunk-OY66GCE6.module.min.js +1 -0
  44. package/dist/chunk-chunk-PZFT457G.module.min.js +1 -0
  45. package/dist/chunk-chunk-Q3WW6JGR.module.min.js +1 -0
  46. package/dist/chunk-chunk-Q6XKQTOQ.module.min.js +1 -0
  47. package/dist/chunk-chunk-RJRM2E6P.module.min.js +1 -0
  48. package/dist/chunk-chunk-RPL7WYXI.module.min.js +1 -0
  49. package/dist/chunk-chunk-SV4XAZ3Q.module.min.js +1 -0
  50. package/dist/chunk-chunk-TSCFL235.module.min.js +1 -0
  51. package/dist/chunk-chunk-UOQRPGPK.module.min.js +2 -0
  52. package/dist/chunk-chunk-V3OAKG32.module.min.js +1 -0
  53. package/dist/chunk-chunk-WLOIUMWG.module.min.js +2 -0
  54. package/dist/chunk-chunk-XEGXX4F7.module.min.js +1 -0
  55. package/dist/chunk-chunk-XFRBLXYM.module.min.js +1 -0
  56. package/dist/chunk-chunk-Z2AJERX5.module.min.js +2 -0
  57. package/dist/chunk-chunk-ZXYDYAB7.module.min.js +2 -0
  58. package/dist/components/ai/SemioticVACPBridge.d.ts +22 -0
  59. package/dist/components/ai/chartCapabilities.d.ts +5 -3
  60. package/dist/components/ai/conversationArc.d.ts +2 -176
  61. package/dist/components/ai/conversationArcTypes.d.ts +202 -0
  62. package/dist/components/ai/readerGrounding.d.ts +12 -0
  63. package/dist/components/ai/vacpAdapter.d.ts +13 -0
  64. package/dist/components/ai/vacpAdapterActions.d.ts +2 -0
  65. package/dist/components/ai/vacpAdapterModel.d.ts +7 -0
  66. package/dist/components/ai/vacpAdapterRuntime.d.ts +26 -0
  67. package/dist/components/ai/vacpAdapterState.d.ts +3 -0
  68. package/dist/components/ai/vacpAdapterTypes.d.ts +169 -0
  69. package/dist/components/ai/vacpTypes.d.ts +160 -0
  70. package/dist/components/charts/custom/XYCustomChart.d.ts +3 -0
  71. package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
  72. package/dist/components/charts/index.d.ts +7 -4
  73. package/dist/components/charts/ordinal/BarChart.d.ts +7 -14
  74. package/dist/components/charts/ordinal/GaugeChart.d.ts +3 -0
  75. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +3 -0
  76. package/dist/components/charts/ordinal/StackedBarChart.d.ts +3 -0
  77. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +4 -14
  78. package/dist/components/charts/physics/ChainReactionChart.capability.d.ts +9 -0
  79. package/dist/components/charts/physics/ChainReactionChart.d.ts +29 -0
  80. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +1 -1
  81. package/dist/components/charts/physics/EventDropChart.d.ts +7 -2
  82. package/dist/components/charts/physics/GaltonBoardChart.d.ts +1 -1
  83. package/dist/components/charts/physics/{PhysicsPileChart.capability.d.ts → PacketFlowChart.capability.d.ts} +1 -1
  84. package/dist/components/charts/physics/{PhysicalFlowChart.d.ts → PacketFlowChart.d.ts} +22 -6
  85. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +1 -1
  86. package/dist/components/charts/physics/ProcessFlowChart.d.ts +7 -4
  87. package/dist/components/charts/physics/{PhysicalFlowChart.capability.d.ts → UnitPileChart.capability.d.ts} +1 -1
  88. package/dist/components/charts/physics/{PhysicsPileChart.d.ts → UnitPileChart.d.ts} +19 -6
  89. package/dist/components/charts/physics/crucibleChartProps.d.ts +1 -1
  90. package/dist/components/charts/physics/crucibleChartUtils.d.ts +9 -0
  91. package/dist/components/charts/physics/gauntletChartProps.d.ts +6 -1
  92. package/dist/components/charts/physics/gauntletTerminal.d.ts +61 -0
  93. package/dist/components/charts/physics/packetFlowSemantics.d.ts +6 -0
  94. package/dist/components/charts/physics/physicsHocUtils.d.ts +45 -2
  95. package/dist/components/charts/shared/auditAccessibilityStyles.d.ts +9 -0
  96. package/dist/components/charts/shared/chartSpecCore.d.ts +2 -4
  97. package/dist/components/charts/shared/gaugeGradient.d.ts +4 -8
  98. package/dist/components/charts/shared/gradient.d.ts +35 -0
  99. package/dist/components/charts/shared/hatchFill.d.ts +3 -10
  100. package/dist/components/charts/shared/hooks.d.ts +2 -50
  101. package/dist/components/charts/shared/knownChartComponents.d.ts +1 -1
  102. package/dist/components/charts/shared/streamPropsHelpers.d.ts +1 -2
  103. package/dist/components/charts/shared/useChartLegend.d.ts +65 -0
  104. package/dist/components/charts/shared/useChartSetup.d.ts +12 -0
  105. package/dist/components/charts/shared/useCustomChartSetup.d.ts +6 -1
  106. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +1 -0
  107. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  108. package/dist/components/charts/xy/AreaChart.d.ts +25 -42
  109. package/dist/components/charts/xy/BumpChart.capability.d.ts +11 -0
  110. package/dist/components/charts/xy/BumpChart.d.ts +161 -0
  111. package/dist/components/charts/xy/DifferenceChart.d.ts +3 -10
  112. package/dist/components/charts/xy/Heatmap.d.ts +3 -0
  113. package/dist/components/charts/xy/LineChart.d.ts +6 -8
  114. package/dist/components/data/portability/capabilityBinding.d.ts +41 -0
  115. package/dist/components/data/portability/index.d.ts +2 -0
  116. package/dist/components/geometry/bumpRibbonGeometry.d.ts +36 -0
  117. package/dist/components/legendLayout.d.ts +75 -1
  118. package/dist/components/recipes/geographicDotGrid.d.ts +82 -0
  119. package/dist/components/recipes/geographicGrid.d.ts +100 -0
  120. package/dist/components/recipes/physics.d.ts +2 -0
  121. package/dist/components/recipes/physicsStageGeography.d.ts +137 -0
  122. package/dist/components/semiotic-ai.d.ts +6 -4
  123. package/dist/components/semiotic-experimental-vacp.d.ts +11 -0
  124. package/dist/components/semiotic-experimental.d.ts +6 -3
  125. package/dist/components/semiotic-geo.d.ts +5 -0
  126. package/dist/components/semiotic-network.d.ts +1 -0
  127. package/dist/components/semiotic-ordinal.d.ts +2 -0
  128. package/dist/components/semiotic-physics.d.ts +10 -6
  129. package/dist/components/semiotic-realtime-core.d.ts +1 -0
  130. package/dist/components/semiotic-recipes-core.d.ts +6 -1
  131. package/dist/components/semiotic-server-edge.d.ts +1 -1
  132. package/dist/components/semiotic-server.d.ts +1 -1
  133. package/dist/components/semiotic-xy.d.ts +4 -0
  134. package/dist/components/semiotic.d.ts +4 -4
  135. package/dist/components/server/renderEvidence.d.ts +1 -1
  136. package/dist/components/server/renderToStaticSVG.d.ts +2 -1
  137. package/dist/components/server/serverChartConfigHeatmap.d.ts +6 -0
  138. package/dist/components/server/serverChartConfigNetworkStyles.d.ts +12 -0
  139. package/dist/components/server/serverChartConfigShared.d.ts +16 -0
  140. package/dist/components/server/serverChartConfigs.d.ts +3 -2
  141. package/dist/components/server/serverChartConfigsPhysics.d.ts +2 -2
  142. package/dist/components/server/serverChartConfigsXY.d.ts +1 -1
  143. package/dist/components/server/staticLegend.d.ts +10 -2
  144. package/dist/components/server/staticSVGChrome.d.ts +14 -6
  145. package/dist/components/server/staticValue.d.ts +8 -0
  146. package/dist/components/stream/GeoSVGOverlay.d.ts +4 -10
  147. package/dist/components/stream/NetworkSVGOverlay.d.ts +2 -6
  148. package/dist/components/stream/OrdinalSVGOverlay.d.ts +2 -6
  149. package/dist/components/stream/SVGOverlay.d.ts +2 -6
  150. package/dist/components/stream/StalenessBadge.d.ts +2 -6
  151. package/dist/components/stream/geoPipelineConfig.d.ts +10 -0
  152. package/dist/components/stream/geoTypes.d.ts +3 -6
  153. package/dist/components/stream/legendRenderer.d.ts +10 -6
  154. package/dist/components/stream/ordinalTypes.d.ts +7 -31
  155. package/dist/components/stream/physics/PhysicsEvidence.d.ts +37 -0
  156. package/dist/components/stream/physics/PhysicsKernel.d.ts +1 -0
  157. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +9 -0
  158. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +2 -6
  159. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +5 -0
  160. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +2 -6
  161. package/dist/components/stream/physics/physicsFramePipelineConfig.d.ts +19 -0
  162. package/dist/components/stream/physics/physicsPipelineSettle.d.ts +52 -0
  163. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +23 -0
  164. package/dist/components/stream/pipelineConfig.d.ts +7 -15
  165. package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +9 -69
  166. package/dist/components/stream/renderers/cornerRadii.d.ts +2 -9
  167. package/dist/components/stream/renderers/thresholdLineSegments.d.ts +12 -0
  168. package/dist/components/stream/sceneToSVGShared.d.ts +3 -5
  169. package/dist/components/stream/types.d.ts +34 -56
  170. package/dist/components/stream/xySceneBuilders/areaGradient.d.ts +4 -20
  171. package/dist/components/stream/xySceneBuilders/types.d.ts +6 -6
  172. package/dist/components/types/legendTypes.d.ts +31 -6
  173. package/dist/controls.min.js +1 -1
  174. package/dist/controls.module.min.js +1 -1
  175. package/dist/geo.min.js +1 -1
  176. package/dist/geo.module.min.js +1 -1
  177. package/dist/network.min.js +1 -1
  178. package/dist/network.module.min.js +1 -1
  179. package/dist/ordinal.min.js +1 -1
  180. package/dist/ordinal.module.min.js +1 -1
  181. package/dist/physics.min.js +1 -1
  182. package/dist/physics.module.min.js +1 -1
  183. package/dist/physicsWorker.js +1 -1
  184. package/dist/realtime.min.js +1 -1
  185. package/dist/realtime.module.min.js +1 -1
  186. package/dist/semiotic-ai-core.min.js +1 -1
  187. package/dist/semiotic-ai-core.module.min.js +1 -1
  188. package/dist/semiotic-ai.d.ts +6 -4
  189. package/dist/semiotic-ai.min.js +1 -1
  190. package/dist/semiotic-ai.module.min.js +1 -1
  191. package/dist/semiotic-data.module.min.js +1 -1
  192. package/dist/semiotic-experimental-vacp.d.ts +11 -0
  193. package/dist/semiotic-experimental-vacp.min.js +1 -0
  194. package/dist/semiotic-experimental-vacp.module.min.js +1 -0
  195. package/dist/semiotic-experimental.d.ts +6 -3
  196. package/dist/semiotic-experimental.min.js +2 -1
  197. package/dist/semiotic-experimental.module.min.js +2 -1
  198. package/dist/semiotic-geo.d.ts +5 -0
  199. package/dist/semiotic-network.d.ts +1 -0
  200. package/dist/semiotic-ordinal.d.ts +2 -0
  201. package/dist/semiotic-physics.d.ts +10 -6
  202. package/dist/semiotic-realtime-core.d.ts +1 -0
  203. package/dist/semiotic-realtime-core.min.js +1 -1
  204. package/dist/semiotic-realtime-core.module.min.js +1 -1
  205. package/dist/semiotic-recipes-core.d.ts +6 -1
  206. package/dist/semiotic-recipes-core.min.js +1 -1
  207. package/dist/semiotic-recipes-core.module.min.js +1 -1
  208. package/dist/semiotic-recipes.min.js +1 -1
  209. package/dist/semiotic-recipes.module.min.js +1 -1
  210. package/dist/semiotic-server-edge.d.ts +1 -1
  211. package/dist/semiotic-server-edge.min.js +1 -1
  212. package/dist/semiotic-server-edge.module.min.js +1 -1
  213. package/dist/semiotic-server-node.min.js +1 -1
  214. package/dist/semiotic-server-node.module.min.js +1 -1
  215. package/dist/semiotic-server.d.ts +1 -1
  216. package/dist/semiotic-utils-core.min.js +1 -1
  217. package/dist/semiotic-utils-core.module.min.js +1 -1
  218. package/dist/semiotic-utils.min.js +1 -1
  219. package/dist/semiotic-utils.module.min.js +1 -1
  220. package/dist/semiotic-xy.d.ts +4 -0
  221. package/dist/semiotic.d.ts +4 -4
  222. package/dist/semiotic.min.js +1 -1
  223. package/dist/semiotic.module.min.js +1 -1
  224. package/dist/server.min.js +1 -1
  225. package/dist/server.module.min.js +1 -1
  226. package/dist/xy.min.js +1 -1
  227. package/dist/xy.module.min.js +1 -1
  228. package/package.json +18 -2
  229. package/spec/README.md +94 -2
  230. package/spec/bindings/README.md +14 -3
  231. package/spec/v0.1/examples/annotation-provenance-reviewed-revision.json +27 -0
  232. package/spec/v0.1/examples/annotation-provenance-watcher-threshold.json +21 -0
  233. package/spec/v0.1/examples/audience-profile-executive-review.json +24 -0
  234. package/spec/v0.1/examples/audience-profile-incident-operators.json +42 -0
  235. package/spec/v0.1/examples/chart-capability-bar-comparison.json +48 -0
  236. package/spec/v0.1/examples/chart-capability-service-flow.json +54 -0
  237. package/dist/chunk-chunk-4AANPFOX.module.min.js +0 -2
  238. package/dist/chunk-chunk-5I3UZV4Q.module.min.js +0 -2
  239. package/dist/chunk-chunk-5RKXZQ2P.module.min.js +0 -1
  240. package/dist/chunk-chunk-74CCPVXB.module.min.js +0 -1
  241. package/dist/chunk-chunk-7ALTGHK6.module.min.js +0 -1
  242. package/dist/chunk-chunk-ANYDWOZF.module.min.js +0 -1
  243. package/dist/chunk-chunk-AVBI6GDT.module.min.js +0 -1
  244. package/dist/chunk-chunk-BANTPINB.module.min.js +0 -2
  245. package/dist/chunk-chunk-C4YA6TDR.module.min.js +0 -1
  246. package/dist/chunk-chunk-C57LR3YG.module.min.js +0 -1
  247. package/dist/chunk-chunk-CKMD5NV3.module.min.js +0 -2
  248. package/dist/chunk-chunk-CO5KQMGH.module.min.js +0 -1
  249. package/dist/chunk-chunk-CWQ5YIHX.module.min.js +0 -2
  250. package/dist/chunk-chunk-E6TXX6MI.module.min.js +0 -1
  251. package/dist/chunk-chunk-GMQ5AYTD.module.min.js +0 -1
  252. package/dist/chunk-chunk-JCG72SGW.module.min.js +0 -2
  253. package/dist/chunk-chunk-K3DMEW22.module.min.js +0 -1
  254. package/dist/chunk-chunk-KT2VAZMZ.module.min.js +0 -1
  255. package/dist/chunk-chunk-L6EA5V3G.module.min.js +0 -2
  256. package/dist/chunk-chunk-LJPCLYSC.module.min.js +0 -2
  257. package/dist/chunk-chunk-LRIFN2HK.module.min.js +0 -1
  258. package/dist/chunk-chunk-N5DDKCCF.module.min.js +0 -1
  259. package/dist/chunk-chunk-NEVE562N.module.min.js +0 -1
  260. package/dist/chunk-chunk-NLO44TOS.module.min.js +0 -2
  261. package/dist/chunk-chunk-PZJ2SBLL.module.min.js +0 -2
  262. package/dist/chunk-chunk-QSQVBIJA.module.min.js +0 -1
  263. package/dist/chunk-chunk-QUJ6TTLY.module.min.js +0 -1
  264. package/dist/chunk-chunk-RBIDBUT4.module.min.js +0 -2
  265. package/dist/chunk-chunk-RCF52Z42.module.min.js +0 -2
  266. package/dist/chunk-chunk-RFLAG356.module.min.js +0 -1
  267. package/dist/chunk-chunk-RPU4IZAV.module.min.js +0 -2
  268. package/dist/chunk-chunk-SKMBCFIL.module.min.js +0 -2
  269. package/dist/chunk-chunk-TAE7W424.module.min.js +0 -2
  270. package/dist/chunk-chunk-TUBMTZMU.module.min.js +0 -2
  271. package/dist/chunk-chunk-UFFEXJQY.module.min.js +0 -1
  272. package/dist/chunk-chunk-XSCHTS4D.module.min.js +0 -2
  273. package/dist/chunk-chunk-XXWSHGPL.module.min.js +0 -2
  274. package/dist/chunk-chunk-ZOAQDIJO.module.min.js +0 -1
  275. package/dist/chunk-chunk-ZXIXAPRE.module.min.js +0 -2
  276. package/dist/chunk-statisticalOverlays-QGDLRUHX.module.min.js +0 -1
  277. package/dist/chunk-statisticalOverlays-T77OKLDY.module.min.js +0 -1
@@ -0,0 +1,169 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { SerializedSelections } from "../export/selectionSerializer";
3
+ import type { ChartObservation } from "../store/ObservationStore";
4
+ import type { AudienceProfile } from "./audienceProfile";
5
+ import type { NavTreeNode } from "./navigationTree";
6
+ import type { ChartReaderGrounding, ChartReaderGroundingOptions } from "./readerGrounding";
7
+ import type { VacpActionDescriptor, VacpCapabilitiesRequest, VacpCapabilitiesSnapshot, VacpEdge, VacpNode, VacpRef, VacpStateRequest, VacpStateSnapshot, VacpStateUpdate, VacpWindowBridge } from "./vacpTypes";
8
+ export declare const SEMIOTIC_VACP_SET_POINT_SELECTION_ACTION: "semiotic.set_point_selection";
9
+ export declare const SEMIOTIC_VACP_SET_INTERVAL_SELECTION_ACTION: "semiotic.set_interval_selection";
10
+ export declare const SEMIOTIC_VACP_CLEAR_SELECTION_ACTION: "semiotic.clear_selection";
11
+ export declare const SEMIOTIC_VACP_ACTIVATE_NAVIGATION_ACTION: "semiotic.activate_navigation_node";
12
+ export declare const SEMIOTIC_VACP_INSPECT_DATA_ACTION: "semiotic.inspect_data";
13
+ export type SemioticVACPSelectionMode = "point" | "interval" | "both";
14
+ export interface SemioticVACPSelectionBinding {
15
+ /** Named LinkedCharts selection exposed as one stable VACP Selection node. */
16
+ name: string;
17
+ /** Fields an agent may set. Values outside this allowlist are rejected. */
18
+ fields: string[];
19
+ /** Which semantic mutations are valid. Default "both". */
20
+ mode?: SemioticVACPSelectionMode;
21
+ /** Stable clause owner used for agent-written selection state. */
22
+ clientId?: string;
23
+ }
24
+ export interface SemioticVACPNavigationBinding {
25
+ tree: NavTreeNode;
26
+ /**
27
+ * Durable datum fields used to identify leaves. Procedural NavTreeNode ids
28
+ * are never used as VACP identity.
29
+ */
30
+ matchFields: string[];
31
+ /** Current procedural tree id, when the tree is controlled. */
32
+ activeId?: string;
33
+ /** Enables the validated semantic navigation action. */
34
+ onActiveChange?: (node: NavTreeNode) => void;
35
+ }
36
+ export interface SemioticVACPChart {
37
+ /** Durable identity within this bridge; independent of render order. */
38
+ chartId: string;
39
+ component: string;
40
+ props: Datum;
41
+ title?: string;
42
+ description?: string;
43
+ audience?: AudienceProfile;
44
+ /**
45
+ * Reader-grounding presentation settings. The bridge's internal grounding
46
+ * pass caps navigation structure at one representative leaf per branch.
47
+ */
48
+ grounding?: Omit<ChartReaderGroundingOptions, "audience">;
49
+ selections?: SemioticVACPSelectionBinding[];
50
+ navigation?: SemioticVACPNavigationBinding;
51
+ }
52
+ export interface SemioticVACPSelectionActions {
53
+ setPointSelection?: (selectionName: string, clientId: string, fields: Record<string, unknown[]>) => void | Promise<void>;
54
+ setIntervalSelection?: (selectionName: string, clientId: string, fields: Record<string, [number, number]>) => void | Promise<void>;
55
+ clearSelection?: (selectionName: string) => void | Promise<void>;
56
+ }
57
+ export interface SemioticVACPCustomAction {
58
+ descriptor: VacpActionDescriptor;
59
+ available?: () => boolean;
60
+ validate?: (params: unknown) => void | string;
61
+ execute: (params: unknown) => unknown | Promise<unknown>;
62
+ }
63
+ export interface SemioticVACPDataAccess {
64
+ /** Include bounded `semiotic.inspect_data`. Raw rows are off by default. */
65
+ sample?: boolean;
66
+ /** Maximum rows returned from one inspect call. Default 50. */
67
+ maxSampleRows?: number;
68
+ /** Maximum rows scanned for schema summaries. Default 5000. */
69
+ maxSchemaRows?: number;
70
+ }
71
+ export interface CreateSemioticVACPBridgeOptions {
72
+ appId: string;
73
+ viewId?: string;
74
+ title?: string;
75
+ /** Static charts or a live getter used on every protocol read/action. */
76
+ charts: readonly SemioticVACPChart[] | (() => readonly SemioticVACPChart[]);
77
+ /** JSON-safe snapshot of named LinkedCharts selections. */
78
+ getSelections?: () => SerializedSelections;
79
+ /** Live observation buffer; the latest event per chart becomes VACP state. */
80
+ getObservations?: () => readonly ChartObservation[];
81
+ selectionActions?: SemioticVACPSelectionActions;
82
+ dataAccess?: SemioticVACPDataAccess;
83
+ actions?: readonly SemioticVACPCustomAction[] | (() => readonly SemioticVACPCustomAction[]);
84
+ /** Test/instrumentation clock. */
85
+ now?: () => Date | number | string;
86
+ /** Retained full snapshots available as delta baselines. Default 64. */
87
+ stateCacheSize?: number;
88
+ }
89
+ export interface SemioticVACPRefs {
90
+ app: VacpRef;
91
+ view: VacpRef;
92
+ visualization: (chartId: string) => VacpRef;
93
+ config: (chartId: string) => VacpRef;
94
+ data: (chartId: string, collection?: string) => VacpRef;
95
+ selection: (name: string) => VacpRef;
96
+ navigation: (chartId: string) => VacpRef;
97
+ observation: (chartId: string) => VacpRef;
98
+ }
99
+ export interface SemioticVACPBridge extends VacpWindowBridge {
100
+ readonly refs: SemioticVACPRefs;
101
+ getCapabilities(request?: VacpCapabilitiesRequest): VacpCapabilitiesSnapshot;
102
+ getState(): Promise<VacpStateSnapshot>;
103
+ getState(request: VacpStateRequest): Promise<VacpStateUpdate>;
104
+ }
105
+ export interface InstallSemioticVACPBridgeOptions {
106
+ /** Default browser `window`; inject a record for tests or non-window hosts. */
107
+ target?: Record<string, unknown>;
108
+ /** Default `__vacp`. */
109
+ globalKey?: string;
110
+ }
111
+ export interface SemioticVACPBridgeInstallation {
112
+ installed: boolean;
113
+ globalKey: string;
114
+ bridge: SemioticVACPBridge;
115
+ reason?: string;
116
+ /** Delete the global only while this exact bridge still owns it. */
117
+ cleanup: () => boolean;
118
+ }
119
+ export interface DataHandleModel {
120
+ ref: VacpRef;
121
+ chartId: string;
122
+ collection: string;
123
+ rows: readonly unknown[];
124
+ }
125
+ export interface SelectionModel {
126
+ ref: VacpRef;
127
+ name: string;
128
+ fields: string[];
129
+ modes: Set<"point" | "interval">;
130
+ clientId: string;
131
+ chartRefs: VacpRef[];
132
+ }
133
+ export interface NavigationIndex {
134
+ valid: boolean;
135
+ diagnostic?: string;
136
+ byKey: Map<string, NavTreeNode>;
137
+ matchFields: string[];
138
+ targetRef: (match: Record<string, unknown>) => VacpRef;
139
+ }
140
+ export interface NavigationModel {
141
+ ref: VacpRef;
142
+ chartRef: VacpRef;
143
+ chartId: string;
144
+ binding: SemioticVACPNavigationBinding;
145
+ index: NavigationIndex;
146
+ }
147
+ export interface ChartModel {
148
+ chart: SemioticVACPChart;
149
+ ref: VacpRef;
150
+ configRef: VacpRef;
151
+ grounding: ChartReaderGrounding;
152
+ config: Record<string, unknown>;
153
+ dataHandles: DataHandleModel[];
154
+ navigation?: NavigationModel;
155
+ }
156
+ export interface RuntimeAction {
157
+ descriptor: VacpActionDescriptor;
158
+ execute: (params: unknown) => unknown | Promise<unknown>;
159
+ }
160
+ export interface RuntimeModelBase {
161
+ charts: ChartModel[];
162
+ selections: SelectionModel[];
163
+ dataHandles: DataHandleModel[];
164
+ nodes: VacpNode[];
165
+ edges: VacpEdge[];
166
+ }
167
+ export interface RuntimeModel extends RuntimeModelBase {
168
+ actions: RuntimeAction[];
169
+ }
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Structural VACP 0.1.0 types.
3
+ *
4
+ * VACP's protocol packages are not currently published, so the experimental
5
+ * Semiotic bridge depends only on the documented JSON contract. Keep this file
6
+ * structural and dependency-free so a consumer can replace these types with
7
+ * the canonical package once it becomes public.
8
+ *
9
+ * @see https://github.com/ETH-IVIA-Lab/VACP/blob/main/docs/reference/tool-contract.md
10
+ */
11
+ export declare const VACP_SCHEMA_VERSION: "0.1.0";
12
+ export type VacpSchemaVersion = typeof VACP_SCHEMA_VERSION;
13
+ export type VacpRef = `vacp://${string}`;
14
+ export type VacpLayer = "ConfigLayer" | "ViewLayer" | "VisualizationLayer" | "DataLayer" | "InteractionFeedbackLayer";
15
+ export type VacpNodeKind = "App" | "View" | "Visualization" | "Mark" | "EncodingChannel" | "EncodedField" | "Legend" | "Axis" | "Selection" | "Param" | "Widget" | "DataHandle" | "InteractionTarget";
16
+ export type VacpEdgeKind = "contains" | "controls" | "derivedFrom" | "targets";
17
+ export interface VacpNode {
18
+ ref: VacpRef;
19
+ kind: VacpNodeKind;
20
+ layer: VacpLayer;
21
+ title?: string;
22
+ description?: string;
23
+ data?: Record<string, unknown>;
24
+ }
25
+ export interface VacpEdge {
26
+ from: VacpRef;
27
+ to: VacpRef;
28
+ kind: VacpEdgeKind;
29
+ }
30
+ export interface VacpActionDescriptor {
31
+ name: string;
32
+ title?: string;
33
+ description: string;
34
+ parameters?: Record<string, unknown>;
35
+ targetRef?: VacpRef;
36
+ }
37
+ export interface VacpGraph {
38
+ version: VacpSchemaVersion;
39
+ nodes: VacpNode[];
40
+ edges: VacpEdge[];
41
+ actions: VacpActionDescriptor[];
42
+ }
43
+ export interface VacpCapabilitiesSnapshot {
44
+ version: VacpSchemaVersion;
45
+ createdAt: string;
46
+ graph: VacpGraph;
47
+ }
48
+ export interface VacpCapabilitiesRequest {
49
+ refs?: VacpRef[];
50
+ prefixes?: VacpRef[];
51
+ kinds?: VacpNodeKind[];
52
+ layers?: VacpLayer[];
53
+ includeActions?: boolean;
54
+ includeEdges?: boolean;
55
+ includeNodeData?: boolean;
56
+ }
57
+ export interface VacpStateSnapshot {
58
+ version: VacpSchemaVersion;
59
+ createdAt: string;
60
+ state: Record<VacpRef, unknown>;
61
+ summary?: Record<VacpRef, unknown>;
62
+ }
63
+ export type VacpStateRequestMode = "auto" | "full" | "delta";
64
+ export interface VacpStateRequest {
65
+ mode?: VacpStateRequestMode;
66
+ since?: string;
67
+ refs?: VacpRef[];
68
+ includeSummary?: boolean;
69
+ }
70
+ export interface VacpStateDeltaPayload {
71
+ changed: Record<VacpRef, unknown>;
72
+ removed: VacpRef[];
73
+ summaryChanged?: Record<VacpRef, unknown>;
74
+ summaryRemoved?: VacpRef[];
75
+ }
76
+ export type VacpStateUpdate = {
77
+ version: VacpSchemaVersion;
78
+ createdAt: string;
79
+ mode: "full";
80
+ token: string;
81
+ scope?: {
82
+ refs?: VacpRef[];
83
+ };
84
+ snapshot: VacpStateSnapshot;
85
+ } | {
86
+ version: VacpSchemaVersion;
87
+ createdAt: string;
88
+ mode: "delta";
89
+ token: string;
90
+ baseToken: string;
91
+ scope?: {
92
+ refs?: VacpRef[];
93
+ };
94
+ delta: VacpStateDeltaPayload;
95
+ };
96
+ export interface VacpActionCall {
97
+ callId: string;
98
+ name: string;
99
+ params?: unknown;
100
+ }
101
+ export type VacpActionResult = {
102
+ callId: string;
103
+ ok: true;
104
+ result?: unknown;
105
+ } | {
106
+ callId: string;
107
+ ok: false;
108
+ error: {
109
+ message: string;
110
+ details?: unknown;
111
+ };
112
+ };
113
+ export interface VacpWindowBridge {
114
+ version: VacpSchemaVersion;
115
+ getCapabilities(request?: VacpCapabilitiesRequest): Promise<VacpCapabilitiesSnapshot> | VacpCapabilitiesSnapshot;
116
+ getState(): Promise<VacpStateSnapshot>;
117
+ getState(request: VacpStateRequest): Promise<VacpStateUpdate>;
118
+ execute(call: VacpActionCall): Promise<VacpActionResult>;
119
+ }
120
+ export declare const VACP_DATA_SCHEMA_ACTION: "vacp.data_schema";
121
+ export type VacpDataSchemaDetail = "columns" | "full";
122
+ export interface VacpDataSchemaParams {
123
+ handleRef: VacpRef;
124
+ detail?: VacpDataSchemaDetail;
125
+ sampleRows?: number;
126
+ }
127
+ export interface VacpDataSchemaColumn {
128
+ name: string;
129
+ type: string;
130
+ notNull?: boolean;
131
+ primaryKey?: boolean;
132
+ }
133
+ export interface VacpDataSchemaNumericSummary {
134
+ min: number | null;
135
+ max: number | null;
136
+ avg: number | null;
137
+ unitHint?: "epoch_ms" | "epoch_s" | null;
138
+ minIso?: string | null;
139
+ maxIso?: string | null;
140
+ }
141
+ export interface VacpDataSchemaTemporalSummary {
142
+ minIso: string | null;
143
+ maxIso: string | null;
144
+ minEpochMs: number | null;
145
+ maxEpochMs: number | null;
146
+ }
147
+ export interface VacpDataSchemaResult {
148
+ handleRef: VacpRef;
149
+ detail: VacpDataSchemaDetail;
150
+ table: string | null;
151
+ rowCount: number | null;
152
+ columns: VacpDataSchemaColumn[];
153
+ numeric?: Record<string, VacpDataSchemaNumericSummary>;
154
+ temporal?: Record<string, VacpDataSchemaTemporalSummary>;
155
+ categoricalTopValues?: Record<string, Array<{
156
+ value: string;
157
+ n: number;
158
+ }>>;
159
+ sampledRows?: number | null;
160
+ }
@@ -7,6 +7,7 @@ import type { BaseChartProps, AxisConfig, ChartAccessor } from "../shared/types"
7
7
  import type { TooltipProp } from "../../Tooltip/Tooltip";
8
8
  import type { ChartRecipe } from "../../ai/chartRecipes";
9
9
  import type { LegendValue } from "../../types/legendTypes";
10
+ import type { LegendInteractionMode, LegendPosition } from "../shared/useChartLegend";
10
11
  export interface XYCustomChartProps<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> extends BaseChartProps, AxisConfig {
11
12
  /** Data passed through to LayoutContext.data. */
12
13
  data?: TDatum[];
@@ -34,6 +35,8 @@ export interface XYCustomChartProps<TDatum extends Datum = Datum, TConfig extend
34
35
  showLegend?: boolean;
35
36
  /** Additional legend content. Categorical groups follow the inferred colorBy legend. */
36
37
  legend?: LegendValue;
38
+ legendInteraction?: LegendInteractionMode;
39
+ legendPosition?: LegendPosition;
37
40
  annotations?: Datum[];
38
41
  /** Field or function that declares the semantic category used for custom-layout color. */
39
42
  colorBy?: ChartAccessor<TDatum, string>;
@@ -25,7 +25,7 @@ export interface DistanceCartogramProps<TDatum extends Datum = Datum> extends Ba
25
25
  center: string;
26
26
  /** Cost/distance accessor — numeric field or function */
27
27
  costAccessor: string | ((d: Datum) => number);
28
- /** Interpolation between geographic (0) and cartogram (1) @default 1 */
28
+ /** Interpolation between geographic (0) and cartogram (1), clamped to [0, 1]. @default 1 */
29
29
  strength?: number;
30
30
  /** Line rendering mode @default "straight" */
31
31
  lineMode?: "straight" | "fractional";
@@ -12,8 +12,11 @@ export { ConnectedScatterplot } from "./xy/ConnectedScatterplot";
12
12
  export type { ConnectedScatterplotProps } from "./xy/ConnectedScatterplot";
13
13
  export { LineChart } from "./xy/LineChart";
14
14
  export type { LineChartProps } from "./xy/LineChart";
15
+ export { BumpChart, rankBumpData } from "./xy/BumpChart";
16
+ export type { BumpChartProps, RankedBumpData, RankedBumpDatum, RankBumpDataOptions, } from "./xy/BumpChart";
15
17
  export { AreaChart } from "./xy/AreaChart";
16
18
  export type { AreaChartProps, SemanticGradientStop } from "./xy/AreaChart";
19
+ export type { GradientConfig, GradientStop, SemanticGradientInput, } from "./shared/gradient";
17
20
  export { DifferenceChart } from "./xy/DifferenceChart";
18
21
  export type { DifferenceChartProps } from "./xy/DifferenceChart";
19
22
  export { StackedAreaChart } from "./xy/StackedAreaChart";
@@ -100,8 +103,8 @@ export { GaltonBoardChart } from "./physics/GaltonBoardChart";
100
103
  export type { GaltonBoardChartProps, GaltonBoardReferenceLine } from "./physics/GaltonBoardChart";
101
104
  export { EventDropChart } from "./physics/EventDropChart";
102
105
  export type { EventDropChartProps } from "./physics/EventDropChart";
103
- export { PhysicsPileChart } from "./physics/PhysicsPileChart";
104
- export type { PhysicsPileChartProps } from "./physics/PhysicsPileChart";
106
+ export { UnitPileChart, PhysicsPileChart } from "./physics/UnitPileChart";
107
+ export type { UnitPileChartProps, PhysicsPileChartProps } from "./physics/UnitPileChart";
105
108
  export { CollisionSwarmChart } from "./physics/CollisionSwarmChart";
106
109
  export type { CollisionSwarmChartProps } from "./physics/CollisionSwarmChart";
107
110
  export * from "./physics/CrucibleChart";
@@ -117,8 +120,8 @@ export type { BodyGroupSpec, BodyGroupSpecOptions, ProcessMembraneDef, ProcessRe
117
120
  export type { RegionCountBucket, RegionCountMap } from "../recipes/processAggregates";
118
121
  export type { ProcessVolumePoint, ProcessVolumePolygon, ProcessVolumePolygonRole } from "../recipes/processVolumeGeometry";
119
122
  export type { ProcessJourneyEntityState, ProcessJourneyLedger, ProcessJourneyRow, ProcessJourneyStage, ProcessJourneyUpdateOptions } from "../recipes/processJourney";
120
- export { PhysicalFlowChart } from "./physics/PhysicalFlowChart";
121
- export type { PhysicalFlowChartProps } from "./physics/PhysicalFlowChart";
123
+ export { PacketFlowChart, PhysicalFlowChart } from "./physics/PacketFlowChart";
124
+ export type { PacketFlowChartProps, PhysicalFlowChartProps } from "./physics/PacketFlowChart";
122
125
  export { ProcessFlowChart } from "./physics/ProcessFlowChart";
123
126
  export type { ProcessFlowChartProps, ProcessFlowProjectionMetadata, ProcessFlowStageDef } from "./physics/ProcessFlowChart";
124
127
  export { PhysicsCustomChart } from "./physics/PhysicsCustomChart";
@@ -7,6 +7,7 @@ import { type TooltipProp } from "../../Tooltip/Tooltip";
7
7
  import type { RealtimeFrameHandle } from "../../realtime/types";
8
8
  import { type StyleRule } from "../shared/styleRules";
9
9
  import { type RegressionProp } from "../shared/regressionUtils";
10
+ import { type GradientInput } from "../shared/gradient";
10
11
  /**
11
12
  * BarChart component props
12
13
  */
@@ -64,24 +65,16 @@ export interface BarChartProps<TDatum extends Datum = Datum> extends BaseChartPr
64
65
  /** Rounded top corner radius in pixels. Only the end away from the baseline is rounded. */
65
66
  roundedTop?: number;
66
67
  /**
67
- * Gradient fill from the bar's tip (opposite the baseline) toward its base.
68
- * - `true` default opacity fade (80% 5% of the resolved fill color).
69
- * - `{ topOpacity, bottomOpacity }` — explicit opacity stops on the resolved fill.
70
- * - `{ colorStops: [{offset, color}, ...] }` — arbitrary multi-color gradient.
71
- *
68
+ * Gradient fill from the bar's tip (offset 0) toward its base (offset 1).
69
+ * Stops can set `color`, `opacity`, or both. Omit a stop color to inherit
70
+ * the resolved bar color.
71
+ * @example
72
+ * `{ stops: [{ offset: 0, opacity: 0.8 }, { offset: 1, opacity: 0.05 }] }`
72
73
  * Direction follows the bar's orientation (vertical/horizontal) and sign
73
74
  * (positive/negative bars). Same API as `AreaChart.gradientFill`.
74
75
  * @default false
75
76
  */
76
- gradientFill?: boolean | {
77
- topOpacity: number;
78
- bottomOpacity: number;
79
- } | {
80
- colorStops: Array<{
81
- offset: number;
82
- color: string;
83
- }>;
84
- };
77
+ gradientFill?: GradientInput;
85
78
  /**
86
79
  * Declarative, threshold-aware bar styling. An ordered list of
87
80
  * `{ when, style }` rules; every rule whose condition matches a bar
@@ -25,6 +25,9 @@ export interface GaugeChartProps extends BaseChartProps {
25
25
  /**
26
26
  * Arc-length gradient for the gauge band.
27
27
  *
28
+ * Offset 0 is the sweep start and offset 1 is the sweep end. Stops can set
29
+ * `color`, `opacity`, or both.
30
+ *
28
31
  * The gradient is sampled along the visible filled arc from sweep start
29
32
  * toward the current value. If `fillZones` is false, the entire arc uses
30
33
  * the gradient. If `fillZones` is true, the unfilled remainder stays on
@@ -6,6 +6,7 @@ import type { BaseChartProps, ChartAccessor, CategoryFormatFn } from "../shared/
6
6
  import { type TooltipProp } from "../../Tooltip/Tooltip";
7
7
  import { type StyleRule } from "../shared/styleRules";
8
8
  import type { RealtimeFrameHandle } from "../../realtime/types";
9
+ import { type GradientInput } from "../shared/gradient";
9
10
  export interface GroupedBarChartProps<TDatum extends Datum = Datum> extends BaseChartProps {
10
11
  data?: TDatum[];
11
12
  categoryAccessor?: ChartAccessor<TDatum, string>;
@@ -22,6 +23,8 @@ export interface GroupedBarChartProps<TDatum extends Datum = Datum> extends Base
22
23
  barPadding?: number;
23
24
  /** Rounded corner radius on bar ends (away from baseline). */
24
25
  roundedTop?: number;
26
+ /** Tip-to-base bar gradient using `{ stops: [{ offset, color?, opacity? }] }`. */
27
+ gradientFill?: GradientInput;
25
28
  /**
26
29
  * Declarative, threshold-aware bar styling. Ordered `{ when, style }`
27
30
  * rules; the last applicable rule wins per property. `when` accepts a
@@ -6,6 +6,7 @@ import type { BaseChartProps, ChartAccessor, CategoryFormatFn } from "../shared/
6
6
  import { type TooltipProp } from "../../Tooltip/Tooltip";
7
7
  import type { RealtimeFrameHandle } from "../../realtime/types";
8
8
  import { type StyleRule } from "../shared/styleRules";
9
+ import { type GradientInput } from "../shared/gradient";
9
10
  export interface StackedBarChartProps<TDatum extends Datum = Datum> extends BaseChartProps {
10
11
  data?: TDatum[];
11
12
  categoryAccessor?: ChartAccessor<TDatum, string>;
@@ -23,6 +24,8 @@ export interface StackedBarChartProps<TDatum extends Datum = Datum> extends Base
23
24
  barPadding?: number;
24
25
  /** Rounded top corner radius. Only the topmost stacked segment gets rounded. */
25
26
  roundedTop?: number;
27
+ /** Tip-to-base segment gradient using `{ stops: [{ offset, color?, opacity? }] }`. */
28
+ gradientFill?: GradientInput;
26
29
  /**
27
30
  * Declarative, threshold-aware segment styling. Ordered `{ when, style }`
28
31
  * rules; the last applicable rule wins per property. `when` accepts a
@@ -5,6 +5,7 @@ import type { LegendInteractionMode } from "../shared/hooks";
5
5
  import type { BaseChartProps, ChartAccessor, CategoryFormatFn } from "../shared/types";
6
6
  import { type TooltipProp } from "../../Tooltip/Tooltip";
7
7
  import type { RealtimeFrameHandle } from "../../realtime/types";
8
+ import { type GradientInput } from "../shared/gradient";
8
9
  export interface SwimlaneChartProps<TDatum extends Datum = Datum> extends BaseChartProps {
9
10
  /** Data array. Omit for push API mode. */
10
11
  data?: TDatum[];
@@ -61,20 +62,9 @@ export interface SwimlaneChartProps<TDatum extends Datum = Datum> extends BaseCh
61
62
  rTickValues?: number[];
62
63
  /** Align first value tick label to start, last to end. Prevents clipping at chart edges. */
63
64
  tickLabelEdgeAlign?: boolean;
64
- /** Gradient fill for swimlane segments. `true` uses tip→base opacity ramp;
65
- * pass `{ topOpacity, bottomOpacity }` for a uniform alpha gradient or
66
- * `{ colorStops }` for a multi-stop color ramp. Same shape as
67
- * BarChart.gradientFill / AreaChart.gradientFill. The gradient runs along
68
- * the lane's growth direction (left→right horizontal, bottom→top vertical). */
69
- gradientFill?: boolean | {
70
- topOpacity: number;
71
- bottomOpacity: number;
72
- } | {
73
- colorStops: Array<{
74
- offset: number;
75
- color: string;
76
- }>;
77
- };
65
+ /** Gradient fill along the lane's growth direction. Offset 0 is the tip
66
+ * and offset 1 is the base. Stops can set `color`, `opacity`, or both. */
67
+ gradientFill?: GradientInput;
78
68
  /** Lane "track" fill — a rect drawn behind each lane spanning the full
79
69
  * value-axis range, sized to the lane's bandwidth. Lets budget/progress
80
70
  * lanes read as filled vs. empty. Pass a color string (CSS vars
@@ -0,0 +1,9 @@
1
+ import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
+ /**
3
+ * ChainReactionChart is intentionally known to the AI surface but never selected
4
+ * from a flat data profile. The chart's whole claim is about a specific
5
+ * dependency topology — which task waits on which — and a profiler cannot
6
+ * responsibly invent edges. A dependency chart with the wrong edges is worse
7
+ * than no chart, so the graph must be authored.
8
+ */
9
+ export declare const ChainReactionChartCapability: ChartCapability;
@@ -2,6 +2,35 @@ import * as React from "react";
2
2
  import type { Datum } from "../shared/datumTypes";
3
3
  import type { ChainReactionChartHandle, ChainReactionChartProps } from "./chainReactionTypes";
4
4
  export type * from "./chainReactionTypes";
5
+ /**
6
+ * Physics-backed dependency chart whose settled reading exposes task state and each blocker's downstream reach.
7
+ *
8
+ * @example
9
+ * <ChainReactionChart
10
+ * data={[
11
+ * { id: "brief", label: "Brief", lane: "Product", dependsOn: [], status: "done" },
12
+ * { id: "release", label: "Release", lane: "Product", dependsOn: ["brief"], status: "waiting" }
13
+ * ]}
14
+ * taskIDAccessor="id"
15
+ * labelAccessor="label"
16
+ * laneAccessor="lane"
17
+ * dependencyAccessor="dependsOn"
18
+ * statusAccessor="status"
19
+ * />
20
+ *
21
+ * @example
22
+ * <ChainReactionChart
23
+ * data={releaseTasks}
24
+ * taskIDAccessor="id"
25
+ * labelAccessor="title"
26
+ * laneAccessor="workstream"
27
+ * dependencyAccessor="prerequisites"
28
+ * completionTimeAccessor="completedAt"
29
+ * mode="replay"
30
+ * controls
31
+ * insight="blocker-amplification"
32
+ * />
33
+ */
5
34
  export declare const ChainReactionChart: {
6
35
  <TDatum extends Datum = Datum>(props: ChainReactionChartProps<TDatum> & React.RefAttributes<ChainReactionChartHandle>): React.ReactElement | null;
7
36
  displayName?: string;
@@ -4,7 +4,7 @@ import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
4
  import type { StyleRule } from "../shared/styleRules";
5
5
  import { type PhysicsFrameHandle } from "./physicsHocHandle";
6
6
  import { type PhysicsHocFrameProps, type PhysicsRerunMS, type PhysicsSharedChartProps, type TooltipProp } from "./physicsHocUtils";
7
- export interface CollisionSwarmChartProps<TDatum extends Datum = Datum> extends Omit<BaseChartProps, "margin">, PhysicsSharedChartProps {
7
+ export interface CollisionSwarmChartProps<TDatum extends Datum = Datum> extends Omit<BaseChartProps, "margin" | "selection">, PhysicsSharedChartProps {
8
8
  data?: TDatum[];
9
9
  size?: [number, number];
10
10
  xAccessor?: ChartAccessor<TDatum, number>;
@@ -4,8 +4,8 @@ import type { BaseChartProps, ChartAccessor } from "../shared/types";
4
4
  import { type EventDropWindowOptions } from "./physicsChartUtils";
5
5
  import type { StyleRule } from "../shared/styleRules";
6
6
  import { type PhysicsFrameHandle } from "./physicsHocHandle";
7
- import { type PhysicsHocFrameProps, type PhysicsSharedChartProps, type TooltipProp } from "./physicsHocUtils";
8
- export interface EventDropChartProps<TDatum extends Datum = Datum> extends Omit<BaseChartProps, "margin">, PhysicsSharedChartProps {
7
+ import { type PhysicsHocFrameProps, type PhysicsRerunMS, type PhysicsSharedChartProps, type TooltipProp } from "./physicsHocUtils";
8
+ export interface EventDropChartProps<TDatum extends Datum = Datum> extends Omit<BaseChartProps, "margin" | "selection">, PhysicsSharedChartProps {
9
9
  data?: TDatum[];
10
10
  size?: [number, number];
11
11
  timeAccessor?: ChartAccessor<TDatum, number>;
@@ -28,6 +28,11 @@ export interface EventDropChartProps<TDatum extends Datum = Datum> extends Omit<
28
28
  timeScale?: number;
29
29
  showProjection?: boolean;
30
30
  tooltip?: TooltipProp;
31
+ /**
32
+ * Replay the seeded simulation this many milliseconds after it settles.
33
+ * Omit or pass `null` for a single run; `0` replays on the next timer turn.
34
+ */
35
+ rerunMS?: PhysicsRerunMS;
31
36
  paused?: boolean;
32
37
  frameProps?: PhysicsHocFrameProps<"config">;
33
38
  }
@@ -14,7 +14,7 @@ export interface GaltonBoardReferenceLine {
14
14
  strokeWidth?: number;
15
15
  labelPosition?: "top" | "bottom";
16
16
  }
17
- export interface GaltonBoardChartProps<TDatum extends Datum = Datum> extends Omit<BaseChartProps, "margin" | "mode">, PhysicsSharedChartProps {
17
+ export interface GaltonBoardChartProps<TDatum extends Datum = Datum> extends Omit<BaseChartProps, "margin" | "mode" | "selection">, PhysicsSharedChartProps {
18
18
  data?: TDatum[];
19
19
  size?: [number, number];
20
20
  valueAccessor?: ChartAccessor<TDatum, number>;
@@ -1,2 +1,2 @@
1
1
  import type { ChartCapability } from "../../ai/chartCapabilityTypes";
2
- export declare const PhysicsPileChartCapability: ChartCapability;
2
+ export declare const PacketFlowChartCapability: ChartCapability;