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,38 @@
1
+ import type { GofishDisplayListDocument } from "./gofishIR";
2
+ import { gofishDisplayListExamples as generatedExamples } from "./gofishDisplayListFixtures.generated";
3
+ /**
4
+ * Canonical GoFish **DisplayList** documents for the adapter gallery.
5
+ *
6
+ * Most are *real* baked render-IR documents — the output of `gofish-graphics`'
7
+ * `toDisplayList({ w, h })` layout pass — generated by
8
+ * `scripts/gen-gofish-fixtures.ts` and checked in so the adapter tests and the
9
+ * `/interoperability/gofish` page stay deterministic and never depend on the
10
+ * GoFish nightly at runtime. Each stands in for what a host gets by calling
11
+ * `await spec.toDisplayList({ w, h })`.
12
+ *
13
+ * The one exception is **boba**, which is *hand-written* (`gofishBobaHandwritten.ts`,
14
+ * no `gofish-graphics` at all) — the counter-proof that the DisplayList is an
15
+ * open, host-emittable format, not something only GoFish can produce.
16
+ *
17
+ * Regenerate the baked set after a GoFish bump with:
18
+ * `node --experimental-strip-types scripts/gen-gofish-fixtures.ts --write`
19
+ */
20
+ export declare const flowerIR: GofishDisplayListDocument;
21
+ export declare const polarribbonIR: GofishDisplayListDocument;
22
+ export declare const treemapIR: GofishDisplayListDocument;
23
+ export declare const bottleIR: GofishDisplayListDocument;
24
+ export declare const bobaIR: GofishDisplayListDocument;
25
+ export declare const pythonIR: GofishDisplayListDocument;
26
+ export interface GofishIRExample {
27
+ /** Generated keys (derived so new baked fixtures never drift this) plus the hand-written `boba`. */
28
+ key: (typeof generatedExamples)[number]["key"] | "boba";
29
+ label: string;
30
+ doc: GofishDisplayListDocument;
31
+ /** A one-line note on what the document demonstrates. */
32
+ blurb: string;
33
+ /** The upstream example this mirrors. */
34
+ source: string;
35
+ /** True for the hand-emitted document (no GoFish bake). */
36
+ handWritten?: boolean;
37
+ }
38
+ export declare const gofishIRExamples: readonly GofishIRExample[];
@@ -0,0 +1,87 @@
1
+ import type { OrdinalCustomLayout } from "../stream/ordinalCustomLayout";
2
+ import type { Datum } from "../charts/shared/datumTypes";
3
+ /**
4
+ * `intervalLanesLayout` — a Gantt / swimlane timeline as an `OrdinalCustomChart`
5
+ * layout. Each ordinal **lane** holds events that occupy a `[start, end]` span on
6
+ * a shared time axis; concurrent events within a lane are packed into stacked
7
+ * sub-tracks ({@link packIntervals}). The recipe emits one real, hit-tested,
8
+ * theme-colored rect per event (so every bar inherits keyboard nav, tooltips,
9
+ * selection, and transitions) and draws lane labels, optional period bands, and
10
+ * a time axis in `overlays`.
11
+ *
12
+ * Sibling to `flextreeLayout` / `dagreLayout`. The complement to a
13
+ * concurrency line — see {@link activeCountOverDomain}.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * import { OrdinalCustomChart } from "semiotic/ordinal"
18
+ * import { intervalLanesLayout } from "semiotic/recipes"
19
+ *
20
+ * <OrdinalCustomChart
21
+ * data={wars}
22
+ * layout={intervalLanesLayout}
23
+ * categoryAccessor="sphere"
24
+ * valueAccessor="startYear"
25
+ * oExtent={SPHERES}
26
+ * layoutConfig={{
27
+ * laneAccessor: "sphere", startAccessor: "startYear", endAccessor: "endYear",
28
+ * domain: [1775, 2015], unit: 1, color: (d, lane) => COLORS[lane],
29
+ * axisTicks: [1800, 1850, 1900, 1950, 2000],
30
+ * }}
31
+ * width={900} height={620}
32
+ * />
33
+ * ```
34
+ */
35
+ export interface IntervalLanesConfig<T = Datum> {
36
+ /** Which lane each record belongs to. */
37
+ laneAccessor: string | ((d: T) => string);
38
+ /** Interval start, in the same units as `domain`. */
39
+ startAccessor: string | ((d: T) => number);
40
+ /** Interval end, in the same units as `domain`. */
41
+ endAccessor: string | ((d: T) => number);
42
+ /** `[min, max]` of the time axis. */
43
+ domain: [number, number];
44
+ /** Lane order. @default the chart's `o` scale domain (its `oExtent`), else the
45
+ * distinct lane values in first-seen order. */
46
+ lanes?: string[];
47
+ /** Per-record fill. @default `ctx.resolveColor(lane)`. */
48
+ color?: (d: T, lane: string) => string;
49
+ /** Stable id per record → bar transition identity. @default none */
50
+ idAccessor?: string | ((d: T) => string);
51
+ /** Extend each bar this many domain units past `end`, so inclusive whole-unit
52
+ * intervals (e.g. years) fill their final unit. @default 0 */
53
+ unit?: number;
54
+ /** Vertical gap between stacked sub-tracks, px. @default 1.5 */
55
+ barGap?: number;
56
+ /** Minimum rendered interval width, px. Keeps zero- and short-duration
57
+ * events visible and hoverable on long domains. @default 2 */
58
+ minBarWidth?: number;
59
+ /** @default 3.5 */
60
+ minBarHeight?: number;
61
+ /** @default 10 */
62
+ maxBarHeight?: number;
63
+ /** Vertical padding inside each lane, px. @default 7 */
64
+ lanePadding?: number;
65
+ /** Bar corner radius, px. @default 2 */
66
+ cornerRadius?: number;
67
+ /** Reserve this many px at the bottom (for a caller-drawn strip, e.g. a
68
+ * concurrency line). Lanes fill the remaining height. @default 0 */
69
+ bottomInset?: number;
70
+ /** Draw a label to the left of each lane. @default true */
71
+ showLaneLabels?: boolean;
72
+ /** Gap between the plot's left edge and lane labels, px. @default 12 */
73
+ laneLabelGap?: number;
74
+ /** Alternating background period bands across the full plot height. */
75
+ periods?: Array<{
76
+ start: number;
77
+ end: number;
78
+ name?: string;
79
+ }>;
80
+ /** Draw a top time axis with gridlines. @default true */
81
+ showAxis?: boolean;
82
+ /** Explicit axis tick values. @default ~7 evenly-spaced across `domain`. */
83
+ axisTicks?: number[];
84
+ /** Format axis tick labels. @default `String` */
85
+ tickFormat?: (v: number) => string;
86
+ }
87
+ export declare const intervalLanesLayout: OrdinalCustomLayout<IntervalLanesConfig>;
@@ -0,0 +1,80 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ /**
3
+ * Interval (Gantt/timeline) packing + temporal-density helpers — the generic
4
+ * geometry behind any "events that overlap in time" view. A swimlane/Gantt
5
+ * layout packs concurrent intervals into sub-tracks; its natural companion is a
6
+ * concurrency line counting how many intervals are active over the domain.
7
+ *
8
+ * Pure / SSR-safe. Accessors may be a field name or a function.
9
+ */
10
+ type Accessor<T> = string | ((item: T) => number);
11
+ export interface PackedInterval<T> {
12
+ /** The original item. */
13
+ item: T;
14
+ /** Zero-based sub-track index the greedy packer assigned. Concurrent
15
+ * intervals get distinct tracks; non-overlapping intervals reuse a track. */
16
+ track: number;
17
+ }
18
+ export interface PackIntervalsResult<T> {
19
+ /** Each input item paired with its assigned sub-track. Input order preserved
20
+ * unless `sort` is left on (the default), which sorts by start ascending. */
21
+ packed: PackedInterval<T>[];
22
+ /** Number of sub-tracks used — the lane needs this many rows. */
23
+ trackCount: number;
24
+ }
25
+ export interface PackIntervalsOptions<T> {
26
+ /** Interval start accessor. @default `"start"` */
27
+ start?: Accessor<T>;
28
+ /** Interval end accessor. @default `"end"` */
29
+ end?: Accessor<T>;
30
+ /** Sort by start ascending (then longest-first) before packing — the stable,
31
+ * gap-minimizing order. Set `false` if the input is already ordered and you
32
+ * want that order preserved. @default true */
33
+ sort?: boolean;
34
+ }
35
+ /**
36
+ * Greedy interval packing: assign each interval to the first sub-track whose
37
+ * last interval has already ended, otherwise open a new track. The textbook
38
+ * Gantt/swimlane packer. O(n·tracks).
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const { packed, trackCount } = packIntervals(wars, { start: "startTime", end: "endTime" })
43
+ * // bar y = laneTop + track * (barHeight + gap)
44
+ * ```
45
+ */
46
+ export declare function packIntervals<T = Datum>(items: readonly T[], options?: PackIntervalsOptions<T>): PackIntervalsResult<T>;
47
+ export interface ActiveCount {
48
+ /** Domain position (e.g. a year). */
49
+ value: number;
50
+ /** Number of intervals active at this position. */
51
+ count: number;
52
+ }
53
+ export interface ActiveCountOptions<T> {
54
+ /** Interval start accessor. @default `"start"` */
55
+ start?: Accessor<T>;
56
+ /** Interval end accessor. @default `"end"` */
57
+ end?: Accessor<T>;
58
+ /** `[min, max]` domain to sample across (inclusive of both ends). */
59
+ domain: [number, number];
60
+ /** Sample spacing. @default 1 */
61
+ step?: number;
62
+ /** Count an interval active at position `v` when `start <= v <= end`
63
+ * (`"closed"`, the default — natural for whole-unit intervals like years),
64
+ * or when `start <= v < end` (`"half-open"`). @default "closed" */
65
+ bounds?: "closed" | "half-open";
66
+ }
67
+ /**
68
+ * Count how many intervals are active at each sampled position across a domain —
69
+ * the concurrency series you draw as a step line beneath packed interval lanes.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * const counts = activeCountOverDomain(wars, {
74
+ * start: "startYear", end: "endYear", domain: [1775, 2015],
75
+ * })
76
+ * // → [{ value: 1775, count: 1 }, { value: 1776, count: 2 }, ...]
77
+ * ```
78
+ */
79
+ export declare function activeCountOverDomain<T = Datum>(items: readonly T[], options: ActiveCountOptions<T>): ActiveCount[];
80
+ export {};
@@ -0,0 +1,88 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { GeoCustomLayout } from "../stream/geoCustomLayout";
3
+ export type LandmarkKind = "city" | "culture" | "monument" | "faith" | "nature" | "knowledge" | "defense" | "arena" | "transport";
4
+ export type IsometricTerrainKind = "land" | "ocean" | "forest" | "grassland" | "cropland" | "wetland" | "urban" | "scrub" | "bare" | "snow";
5
+ export interface IsometricTerrainCell {
6
+ kind: IsometricTerrainKind;
7
+ /** Fraction of the geographic cell covered by this terrain, from 0 to 1. */
8
+ coverage?: number;
9
+ /** Optional per-cell color override. */
10
+ fill?: string;
11
+ }
12
+ export interface IsometricLandmarkConfig {
13
+ /** Geographic center represented by the middle grid cell. */
14
+ center: {
15
+ lon: number;
16
+ lat: number;
17
+ };
18
+ /** Datum id forced into the middle cell. */
19
+ centerId?: string;
20
+ /** Odd number of rows/columns. @default 5 */
21
+ gridSize?: number;
22
+ /** Half-width of the local square represented by the board. @default 75 */
23
+ gridRadiusKm?: number;
24
+ /** Isometric tile dimensions in pixels. @default 80×40 */
25
+ tileWidth?: number;
26
+ tileHeight?: number;
27
+ /** Source-data accessors. */
28
+ idAccessor?: string | ((d: Datum) => string);
29
+ nameAccessor?: string | ((d: Datum) => string);
30
+ longitudeAccessor?: string | ((d: Datum) => number);
31
+ latitudeAccessor?: string | ((d: Datum) => number);
32
+ kindAccessor?: string | ((d: Datum) => LandmarkKind);
33
+ /** Lower values win when live and fallback candidates share a cell. */
34
+ candidatePriorityAccessor?: string | ((d: Datum) => number);
35
+ /** Optional replacement sprite URLs. Transparent PNGs work best. */
36
+ sprites?: Partial<Record<LandmarkKind, string>>;
37
+ /** Rendered resource sprite size. @default 32 */
38
+ resourceSpriteSize?: number;
39
+ /** Rendered major-city sprite size. @default 64 */
40
+ citySpriteSize?: number;
41
+ /** Civ-style terrain palette. */
42
+ terrainColors?: string[];
43
+ /** Geographic terrain classification keyed by `tile-{row}-{column}`. */
44
+ terrainByCell?: Record<string, IsometricTerrainKind | IsometricTerrainCell>;
45
+ /** Civ-style colors used for classified terrain cells. */
46
+ terrainPalette?: Partial<Record<IsometricTerrainKind, string>>;
47
+ tileStroke?: string;
48
+ showCityLabel?: boolean;
49
+ }
50
+ export interface IsometricLandmarkTile {
51
+ id: string;
52
+ row: number;
53
+ column: number;
54
+ centerXKm: number;
55
+ centerYKm: number;
56
+ terrainIndex: number;
57
+ landmark: (Datum & {
58
+ id: string;
59
+ name: string;
60
+ kind: LandmarkKind;
61
+ lon: number;
62
+ lat: number;
63
+ distanceKm: number;
64
+ }) | null;
65
+ /** All candidates assigned to the cell, with the displayed landmark first. */
66
+ landmarks: Array<Datum & {
67
+ id: string;
68
+ name: string;
69
+ kind: LandmarkKind;
70
+ lon: number;
71
+ lat: number;
72
+ distanceKm: number;
73
+ }>;
74
+ }
75
+ export declare const DEFAULT_ISOMETRIC_SPRITE_SIZES: {
76
+ readonly resource: 32;
77
+ readonly city: 64;
78
+ };
79
+ /**
80
+ * Quantize geographic landmarks into an odd square grid and choose one
81
+ * representative per cell. Selection balances proximity to the cell center
82
+ * with category reuse so a dense class does not consume the whole board.
83
+ */
84
+ export declare function selectIsometricLandmarks(points: Datum[], config: IsometricLandmarkConfig): IsometricLandmarkTile[];
85
+ /**
86
+ * Isometric landmark board for `GeoCustomChart`.
87
+ */
88
+ export declare const isometricLandmarkLayout: GeoCustomLayout<IsometricLandmarkConfig>;
@@ -0,0 +1,17 @@
1
+ import type { GlyphDef } from "../stream/glyphDef";
2
+ export declare const isotypeInk = "#334155";
3
+ export declare const isotypePaper = "#f8fafc";
4
+ export declare const isotypeGhost = "#cbd5e1";
5
+ export declare const isotypeServerGlyph: GlyphDef;
6
+ export declare const isotypeChipGlyph: GlyphDef;
7
+ export declare const isotypeBoltGlyph: GlyphDef;
8
+ export declare const isotypeBusGlyph: GlyphDef;
9
+ export declare const isotypePersonPath = "M 9.12,3.34 C 8.28,3.29 7.44,3.40 6.64,3.69 4.17,3.63 1.97,5.37 0.91,7.51 -1.32,11.80 2.55,17.76 8.19,16.55 11.62,16.13 15.55,14.04 16.17,10.33 16.38,6.53 12.77,3.52 9.12,3.34 Z M 9.35,19.86 C 8.89,19.84 8.41,19.92 7.92,20.11 5.12,21.55 3.72,24.68 2.79,27.54 2.32,29.86 0.87,32.04 1.36,34.49 1.63,37.60 8.04,38.95 8.04,38.95 8.04,38.95 14.67,39.65 16.50,36.33 17.16,31.95 16.34,27.23 14.01,23.42 13.07,21.69 11.36,19.92 9.35,19.86 Z";
10
+ export declare const isotypePersonGlyph: GlyphDef;
11
+ export declare const isotypeNetworkGlyphs: {
12
+ readonly server: GlyphDef;
13
+ readonly chip: GlyphDef;
14
+ readonly bolt: GlyphDef;
15
+ readonly bus: GlyphDef;
16
+ readonly person: GlyphDef;
17
+ };
@@ -0,0 +1,44 @@
1
+ import type { NetworkCustomLayout } from "../stream/networkCustomLayout";
2
+ /**
3
+ * Layered flowchart layout for the Mermaid adapter (and any pre-layered DAG).
4
+ *
5
+ * A Mermaid flowchart is a directed acyclic graph, not a force graph — so it
6
+ * should render as a *layered diagram* with shape-appropriate node glyphs,
7
+ * directional arrows, and edge labels, the way Mermaid draws it. This recipe
8
+ * does exactly that from the `layer`/`row` coordinates `fromMermaid` already
9
+ * computes (longest-path layering), so it needs **no layout engine and no new
10
+ * dependency**. It ships in `semiotic/recipes`, so it tree-shakes — you only
11
+ * pull it in if you use it.
12
+ *
13
+ * For large or dense graphs where crossing-minimization matters, run a real
14
+ * Sugiyama layouter (the BYO `dagre` recipe, or `d3-dag`) to assign
15
+ * `layer`/`row`, then render with this layout — the rendering and the
16
+ * positioning are deliberately separate concerns.
17
+ *
18
+ * Pure, SSR-safe: hit-testable rects are emitted as scene nodes; all visual
19
+ * chrome (shape glyphs, labels, edges, arrowheads, edge labels) is an SVG
20
+ * `overlays` group painted on top, in plot-relative coordinates.
21
+ */
22
+ export type MermaidDirection = "TD" | "TB" | "BT" | "LR" | "RL";
23
+ export interface MermaidDagConfig {
24
+ /** Flow direction. TD/TB top-down, BT bottom-up, LR left-right, RL right-left. @default "TD" */
25
+ direction?: MermaidDirection;
26
+ /** Glyph width / height in px (shrunk to fit). @default 150 / 46 */
27
+ nodeWidth?: number;
28
+ nodeHeight?: number;
29
+ /** Node field accessors. @default "layer" / "row" / "label" / "shape" */
30
+ layerAccessor?: string;
31
+ rowAccessor?: string;
32
+ labelAccessor?: string;
33
+ shapeAccessor?: string;
34
+ /** Edge label field. @default "label" */
35
+ edgeLabelAccessor?: string;
36
+ /** Colors (CSS vars by default so they follow the theme). */
37
+ nodeFill?: string;
38
+ nodeStroke?: string;
39
+ textColor?: string;
40
+ edgeColor?: string;
41
+ /** Stroke for decision (diamond) glyphs. */
42
+ accentColor?: string;
43
+ }
44
+ export declare const mermaidDagLayout: NetworkCustomLayout<MermaidDagConfig>;
@@ -0,0 +1,48 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ export type MobileAnnotationStrategyMode = "plot" | "callout-list" | "hybrid";
3
+ export interface MobileAnnotationStrategyConfig {
4
+ /** Activate the strategy explicitly. When omitted, width/breakpoint decides. */
5
+ active?: boolean;
6
+ /** Measured plot/container width in CSS pixels. */
7
+ width?: number;
8
+ /** Width at or below which the strategy activates. Default 480. */
9
+ breakpoint?: number;
10
+ /** Plot-only, list-only, or hybrid visible-plus-list behavior. Default "hybrid". */
11
+ strategy?: MobileAnnotationStrategyMode;
12
+ /** Maximum persistent note annotations left in the plot. Alias: maxAnnotations. */
13
+ maxPlotAnnotations?: number;
14
+ maxAnnotations?: number;
15
+ /** Minimum number of note annotations kept in the plot. Default 1. */
16
+ minPlotAnnotations?: number;
17
+ minVisible?: number;
18
+ /** Maximum callout-list items. Default 6. */
19
+ maxCalloutItems?: number;
20
+ /** Keep primary/emergency notes in the plot before lower-priority notes. Default true. */
21
+ preservePrimary?: boolean;
22
+ /** Prefer mobileText/shortText over full label. Default true. */
23
+ preferShortText?: boolean;
24
+ /** Field or function used as an explicit priority score. */
25
+ priorityAccessor?: string | ((annotation: Datum, index: number) => number | undefined);
26
+ /** Optional filter for annotations that should move into the callout list. */
27
+ calloutFilter?: (annotation: Datum, index: number) => boolean;
28
+ }
29
+ export interface MobileAnnotationCalloutItem {
30
+ id: string;
31
+ label: string;
32
+ shortLabel?: string;
33
+ pointId?: string | number;
34
+ emphasis?: string;
35
+ source?: string;
36
+ priority: number;
37
+ annotation: Datum;
38
+ }
39
+ export interface MobileAnnotationStrategyResult {
40
+ active: boolean;
41
+ strategy: MobileAnnotationStrategyMode;
42
+ budget: number;
43
+ visible: Datum[];
44
+ deferred: Datum[];
45
+ calloutList: MobileAnnotationCalloutItem[];
46
+ hidden: Datum[];
47
+ }
48
+ export declare function mobileAnnotationStrategy(annotations: readonly Datum[] | undefined, config?: MobileAnnotationStrategyConfig): MobileAnnotationStrategyResult;
@@ -0,0 +1,59 @@
1
+ import type { ResponsiveRule } from "../charts/shared/responsiveRules";
2
+ import type { MobileInteractionConfig, MobileSnapBehavior, MobileStandardControlsMode } from "../charts/shared/types";
3
+ import type { MobileVisualizationContract } from "../charts/shared/auditMobileVisualization";
4
+ export type MobileChartFamily = "line" | "area" | "ordinal" | "scatter" | "network" | "geo" | "small-multiple";
5
+ export interface MobileChartFamilyRecipeOptions {
6
+ breakpoint?: number;
7
+ targetSize?: number;
8
+ mode?: "mobile" | false;
9
+ density?: "comfortable" | "compact" | "dense";
10
+ transformProfile?: "overview" | "compare" | "inspect";
11
+ keepAxes?: boolean;
12
+ showLegend?: boolean;
13
+ directLabel?: boolean;
14
+ maxAnnotations?: number;
15
+ maxCalloutItems?: number;
16
+ chartHeight?: number;
17
+ mobileColumns?: number;
18
+ tabletColumns?: number;
19
+ snap?: MobileSnapBehavior;
20
+ standardControls?: MobileStandardControlsMode;
21
+ summary?: string;
22
+ }
23
+ export interface MobileChartFamilyRecipe {
24
+ family: MobileChartFamily;
25
+ props: Record<string, unknown>;
26
+ responsiveRules: ResponsiveRule<Record<string, unknown>>[];
27
+ mobileInteraction: MobileInteractionConfig;
28
+ mobileSemantics: MobileVisualizationContract;
29
+ }
30
+ export declare function mobileLineChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
31
+ export declare function mobileAreaChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
32
+ export declare function mobileOrdinalChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
33
+ export declare function mobileScatterplotRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
34
+ export declare function mobileNetworkChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
35
+ export declare function mobileGeoChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
36
+ export declare function mobileSmallMultipleRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
37
+ export declare function mobileChartFamilyRecipe(family: MobileChartFamily, options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
38
+ export interface MobileBrushAlternativeOptions {
39
+ targetSize?: number;
40
+ controls?: Array<"range-inputs" | "chip-filter" | "clear" | "stepper">;
41
+ summary?: string;
42
+ }
43
+ export declare function mobileBrushAlternatives(options?: MobileBrushAlternativeOptions): {
44
+ mobileInteraction: {
45
+ enabled: boolean;
46
+ targetSize: number;
47
+ tapToSelect: boolean;
48
+ tapToLockTooltip: boolean;
49
+ standardControls: "brush";
50
+ };
51
+ mobileSemantics: {
52
+ interaction: {
53
+ primary: "filter";
54
+ alternatives: ("clear" | "range-inputs" | "chip-filter" | "stepper")[];
55
+ summary: string;
56
+ };
57
+ };
58
+ controls: ("clear" | "range-inputs" | "chip-filter" | "stepper")[];
59
+ };
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Network-analysis kit — pure graph algorithms for network visualizations.
3
+ *
4
+ * These are the primitives most network charts end up hand-rolling: adjacency,
5
+ * breadth-first distances, shortest paths, ego networks, degree / betweenness /
6
+ * closeness centrality, clustering coefficient, and the "spatial problem"
7
+ * detector (nodes drawn closer than their graph distance warrants). They pair
8
+ * naturally with `ForceDirectedGraph`, `NetworkCustomChart`, and the layout
9
+ * recipes: size nodes by centrality, highlight an ego network on hover, trace a
10
+ * shortest path, or diagnose a misleading layout.
11
+ *
12
+ * All functions are pure and dependency-free. Edges are treated as undirected.
13
+ */
14
+ export interface GraphNode {
15
+ id: string;
16
+ }
17
+ export interface GraphEdge {
18
+ source: string;
19
+ target: string;
20
+ value?: number;
21
+ }
22
+ export interface Point {
23
+ x: number;
24
+ y: number;
25
+ }
26
+ /** Build an undirected adjacency map: node id → set of neighbor ids. */
27
+ export declare function buildAdjacency(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Map<string, Set<string>>;
28
+ /**
29
+ * Build a **directed** adjacency map: node id → set of successor ids, following
30
+ * `source → target` only. The directed sibling of {@link buildAdjacency}, for
31
+ * DAG / flow / dependency graphs where edge direction carries meaning.
32
+ */
33
+ export declare function buildDirectedAdjacency(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Map<string, Set<string>>;
34
+ /**
35
+ * The set of nodes reachable from `start` by following the adjacency (BFS).
36
+ * Works on either an undirected ({@link buildAdjacency}) or directed
37
+ * ({@link buildDirectedAdjacency}) adjacency map.
38
+ *
39
+ * `start` itself is excluded unless it is reachable via a cycle, or
40
+ * `includeStart` is set — so on a DAG this is exactly the descendant set, and
41
+ * on a cyclic graph a node that can reach itself is reported as such.
42
+ */
43
+ export declare function reachableFrom(adjacency: Map<string, Set<string>>, start: string, options?: {
44
+ includeStart?: boolean;
45
+ }): Set<string>;
46
+ /** Degree (neighbor count) per node id. */
47
+ export declare function degree(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Record<string, number>;
48
+ /** Breadth-first hop distance from `start` to every reachable node. */
49
+ export declare function bfsDistances(adjacency: Map<string, Set<string>>, start: string): Record<string, number>;
50
+ /**
51
+ * Unweighted shortest path between two node ids (BFS). Returns the path as an
52
+ * ordered list of ids (inclusive of both ends), or `[]` if unreachable.
53
+ */
54
+ export declare function shortestPath(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>, source: string, target: string): string[];
55
+ /**
56
+ * The ego network of a node: itself plus every node within `depth` hops.
57
+ * Returns the set of member ids (use it to highlight neighbors on hover).
58
+ */
59
+ export declare function egoNetwork(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>, id: string, depth?: number): Set<string>;
60
+ /**
61
+ * Betweenness centrality (Brandes' algorithm, unweighted, undirected). Higher
62
+ * scores mark bridge nodes that many shortest paths pass through. Raw scores;
63
+ * wrap with {@link normalizeScores} for a 0–1 encoding (e.g. node size).
64
+ */
65
+ export declare function betweenness(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Record<string, number>;
66
+ /**
67
+ * Closeness centrality: the inverse of the mean shortest-path distance to all
68
+ * reachable nodes. Higher = more central. Raw scores; see {@link normalizeScores}.
69
+ */
70
+ export declare function closeness(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Record<string, number>;
71
+ /**
72
+ * Local clustering coefficient per node (0–1): the fraction of a node's
73
+ * neighbor pairs that are themselves connected.
74
+ */
75
+ export declare function clustering(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Record<string, number>;
76
+ /** Rescale a score map to 0–1 by its maximum (for size/opacity encodings). */
77
+ export declare function normalizeScores(scores: Record<string, number>): Record<string, number>;
78
+ export interface ProximityProblemOptions {
79
+ /** Minimum graph-hop distance for a pair to count as "far". @default 4 */
80
+ minHops?: number;
81
+ /** Starting screen-distance threshold (in the units of `positions`). @default 0.08 */
82
+ startThreshold?: number;
83
+ /** Cap the threshold search at this distance before relaxing `minHops`. @default 0.2 */
84
+ maxThreshold?: number;
85
+ }
86
+ export interface ProximityProblemResult {
87
+ /** Ids drawn misleadingly close given their graph distance. */
88
+ problemIds: Set<string>;
89
+ /** The screen-distance threshold at which offenders were found. */
90
+ threshold: number;
91
+ /** The graph-hop distance used. */
92
+ minHops: number;
93
+ }
94
+ /**
95
+ * The "spatial problem": find nodes drawn near each other on screen yet far
96
+ * apart (or disconnected) in the graph — proximity pretending to be kinship,
97
+ * the classic force-layout lie. `positions` is a map of node id → screen point
98
+ * (any consistent coordinate space; distances are compared in those units).
99
+ * The search escalates the distance threshold, then relaxes `minHops`, until at
100
+ * least one offending pair is found.
101
+ */
102
+ export declare function proximityProblem(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>, positions: Record<string, Point>, options?: ProximityProblemOptions): ProximityProblemResult;
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Deterministic, physics-free network layouts — the classic static forms that
3
+ * predate (and often out-read) the force-directed hairball: the arc diagram,
4
+ * the adjacency matrix, and the circular layout.
5
+ *
6
+ * These are composable positioner / structure helpers (not full scene layouts):
7
+ * they return normalized positions or a matrix structure that you render inside
8
+ * a `NetworkCustomChart` layout, so you keep full control of styling. Pure and
9
+ * dependency-free.
10
+ */
11
+ import type { GraphNode, GraphEdge, Point } from "./networkAnalysis";
12
+ /**
13
+ * Order node ids by community/group then descending degree, so related nodes sit
14
+ * together and hubs lead — the ordering that makes arc diagrams and adjacency
15
+ * matrices legible. Pass `groupAccessor` to read the grouping field (default
16
+ * `"group"`); nodes without one are ordered by degree alone.
17
+ */
18
+ export declare function orderByGroupDegree<N extends GraphNode>(nodes: ReadonlyArray<N>, edges: ReadonlyArray<GraphEdge>, groupAccessor?: keyof N | ((n: N) => number | string)): string[];
19
+ export interface ArcLayoutOptions {
20
+ /** Baseline y position in [0, 1]. @default 0.62 */
21
+ baseline?: number;
22
+ /** Horizontal inset kept clear at each end, in [0, 0.5). @default 0.06 */
23
+ inset?: number;
24
+ }
25
+ /**
26
+ * Arc diagram: lay the ordered ids out along a horizontal baseline. Draw each
27
+ * edge as an arc with {@link arcPath}. Returns id → {x, y} in [0, 1].
28
+ */
29
+ export declare function arcLayout(ids: ReadonlyArray<string>, options?: ArcLayoutOptions): Record<string, Point>;
30
+ /**
31
+ * An SVG path string for an arc between two points that share a baseline (as in
32
+ * an arc diagram). The arc bows away from the baseline by `heightRatio` of the
33
+ * span. Coordinates are whatever space you pass (typically already projected
34
+ * into the plot).
35
+ */
36
+ export declare function arcPath(a: Point, b: Point, heightRatio?: number): string;
37
+ export interface CircularLayoutOptions {
38
+ /** Ring radius in [0, 0.5]. @default 0.42 */
39
+ radius?: number;
40
+ /** Center point in [0, 1]. @default { x: 0.5, y: 0.5 } */
41
+ center?: Point;
42
+ /** Start angle in radians (0 = up). @default 0 */
43
+ startAngle?: number;
44
+ }
45
+ /**
46
+ * Circular layout: place the ordered ids evenly around a ring. Position carries
47
+ * no meaning (edges cross the interior) — offered mainly as a labeled, stable
48
+ * arrangement. Returns id → {x, y} in [0, 1].
49
+ */
50
+ export declare function circularLayout(ids: ReadonlyArray<string>, options?: CircularLayoutOptions): Record<string, Point>;
51
+ export interface MatrixCell {
52
+ /** Row index (into the ordered id list). */
53
+ row: number;
54
+ /** Column index. */
55
+ col: number;
56
+ source: string;
57
+ target: string;
58
+ /** Summed edge value between the pair (defaults to 1 per edge). */
59
+ value: number;
60
+ }
61
+ export interface AdjacencyMatrix {
62
+ /** The ordered ids used for rows and columns. */
63
+ order: string[];
64
+ /** One cell per connected (i, j) pair, both triangles (symmetric). */
65
+ cells: MatrixCell[];
66
+ /** Number of rows/columns (`order.length`). */
67
+ size: number;
68
+ /** Maximum cell value (for opacity/intensity encoding). */
69
+ maxValue: number;
70
+ }
71
+ export interface AdjacencyMatrixOptions {
72
+ /** Explicit row/column order; defaults to {@link orderByGroupDegree}. */
73
+ order?: ReadonlyArray<string>;
74
+ /** Group accessor used when computing the default order. @default "group" */
75
+ groupAccessor?: keyof GraphNode | ((n: GraphNode) => number | string);
76
+ }
77
+ /**
78
+ * Adjacency matrix structure: every connection becomes a filled cell, so nothing
79
+ * overlaps and dense graphs stay legible. Returns the ordered ids plus the cell
80
+ * list; render each cell at `(col, row)` in your layout. Symmetric (both
81
+ * triangles filled); the diagonal is omitted.
82
+ */
83
+ export declare function adjacencyMatrix(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>, options?: AdjacencyMatrixOptions): AdjacencyMatrix;