semiotic 3.7.5 → 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 (481) hide show
  1. package/CLAUDE.md +54 -12
  2. package/README.md +121 -27
  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 +2733 -536
  9. package/ai/surface-manifest.json +200 -0
  10. package/ai/system-prompt.md +18 -3
  11. package/dist/components/CategoryColors.d.ts +1 -1
  12. package/dist/components/ChartContainer.d.ts +91 -0
  13. package/dist/components/ChartGrid.d.ts +11 -1
  14. package/dist/components/CircularBrush.d.ts +61 -0
  15. package/dist/components/ContextLayout.d.ts +5 -1
  16. package/dist/components/DirectManipulationControl.d.ts +63 -0
  17. package/dist/components/LinkedCharts.d.ts +3 -1
  18. package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
  19. package/dist/components/MobileChartContainer.d.ts +51 -0
  20. package/dist/components/MobileStandardControls.d.ts +68 -0
  21. package/dist/components/SmallMultipleChart.d.ts +84 -0
  22. package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
  23. package/dist/components/ai/ChartRecipe.d.ts +16 -0
  24. package/dist/components/ai/IntentMark.d.ts +15 -0
  25. package/dist/components/ai/chartCapabilities.d.ts +8 -1
  26. package/dist/components/ai/chartCapabilityTypes.d.ts +26 -1
  27. package/dist/components/ai/chartClinic.d.ts +91 -0
  28. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  29. package/dist/components/ai/chartRecipes.d.ts +278 -0
  30. package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
  31. package/dist/components/ai/describeChart.d.ts +7 -0
  32. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  33. package/dist/components/ai/generativeChart.d.ts +28 -3
  34. package/dist/components/ai/intentManifest.d.ts +62 -0
  35. package/dist/components/ai/navigationTree.d.ts +3 -0
  36. package/dist/components/ai/observedSceneAudit.d.ts +72 -0
  37. package/dist/components/ai/readerGrounding.d.ts +83 -0
  38. package/dist/components/ai/recipeCapability.d.ts +8 -0
  39. package/dist/components/ai/recipeNavigation.d.ts +13 -0
  40. package/dist/components/ai/recipeSemantics.d.ts +11 -0
  41. package/dist/components/ai/repairChartConfig.d.ts +9 -0
  42. package/dist/components/ai/suggestCharts.d.ts +11 -1
  43. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  44. package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
  45. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  46. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  47. package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
  48. package/dist/components/charts/geo/FlowMap.d.ts +1 -1
  49. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
  50. package/dist/components/charts/geo/index.d.ts +2 -0
  51. package/dist/components/charts/index.d.ts +29 -1
  52. package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
  53. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  54. package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
  55. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  56. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  57. package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
  58. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  59. package/dist/components/charts/network/Treemap.d.ts +1 -1
  60. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  61. package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
  62. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  63. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  64. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  65. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  66. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
  67. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  68. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  69. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  70. package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
  71. package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
  72. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  73. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  74. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  75. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  76. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
  77. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  78. package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
  79. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  80. package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
  81. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  82. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  83. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  84. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  85. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
  86. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  87. package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
  88. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  89. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  90. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  91. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  92. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  93. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  94. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  95. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  96. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  97. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  98. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  99. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  100. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  101. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  102. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  103. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  104. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  105. package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
  106. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  107. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  108. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  109. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  110. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  111. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  112. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  113. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  114. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  115. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
  116. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  117. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  118. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  119. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  120. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  121. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  122. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  123. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  124. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  125. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  126. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  127. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  128. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  129. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  130. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  131. package/dist/components/charts/shared/colorUtils.d.ts +16 -1
  132. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
  133. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  134. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  135. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  136. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  137. package/dist/components/charts/shared/hooks.d.ts +28 -5
  138. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  139. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  140. package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
  141. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  142. package/dist/components/charts/shared/types.d.ts +49 -1
  143. package/dist/components/charts/shared/useChartSetup.d.ts +9 -2
  144. package/dist/components/charts/shared/useCustomChartSetup.d.ts +14 -5
  145. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  146. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
  147. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  148. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  149. package/dist/components/charts/shared/validationMap.d.ts +0 -11
  150. package/dist/components/charts/xy/AreaChart.d.ts +1 -1
  151. package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
  152. package/dist/components/charts/xy/LineChart.d.ts +1 -1
  153. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  154. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  155. package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
  156. package/dist/components/charts/xy/Scatterplot.d.ts +1 -1
  157. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  158. package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
  159. package/dist/components/controls/controlAudit.d.ts +24 -0
  160. package/dist/components/controls/controlContract.d.ts +57 -0
  161. package/dist/components/data/fromFlintChart.d.ts +74 -0
  162. package/dist/components/data/fromVegaLite.d.ts +27 -0
  163. package/dist/components/data/portability/index.d.ts +6 -3
  164. package/dist/components/data/portability/result.d.ts +52 -0
  165. package/dist/components/data/portability/spec.d.ts +31 -0
  166. package/dist/components/data/portability/vegaLite.d.ts +24 -6
  167. package/dist/components/export/chartConfig.d.ts +11 -0
  168. package/dist/components/realtime/types.d.ts +11 -0
  169. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  170. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  171. package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
  172. package/dist/components/recipes/cyclical.d.ts +39 -0
  173. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  174. package/dist/components/recipes/forceLayout.d.ts +48 -0
  175. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  176. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  177. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  178. package/dist/components/recipes/gofishIR.d.ts +178 -132
  179. package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
  180. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  181. package/dist/components/recipes/intervals.d.ts +80 -0
  182. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  183. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  184. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  185. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  186. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  187. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  188. package/dist/components/recipes/physics.d.ts +122 -0
  189. package/dist/components/recipes/physicsReference.d.ts +102 -0
  190. package/dist/components/recipes/processAggregates.d.ts +32 -0
  191. package/dist/components/recipes/processChrome.d.ts +67 -0
  192. package/dist/components/recipes/processJourney.d.ts +54 -0
  193. package/dist/components/recipes/processPhysics.d.ts +300 -0
  194. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  195. package/dist/components/recipes/radialCoords.d.ts +69 -0
  196. package/dist/components/recipes/random.d.ts +2 -0
  197. package/dist/components/recipes/recipeChrome.d.ts +91 -0
  198. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  199. package/dist/components/recipes/recipeLegend.d.ts +53 -1
  200. package/dist/components/recipes/recipeUtils.d.ts +52 -0
  201. package/dist/components/recipes/runs.d.ts +59 -0
  202. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  203. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  204. package/dist/components/recipes/unitize.d.ts +108 -0
  205. package/dist/components/recipes/vector.d.ts +28 -0
  206. package/dist/components/recipes/waffle.d.ts +43 -0
  207. package/dist/components/semiotic-ai-core.d.ts +47 -0
  208. package/dist/components/semiotic-ai.d.ts +50 -8
  209. package/dist/components/semiotic-controls.d.ts +18 -0
  210. package/dist/components/semiotic-experimental.d.ts +38 -9
  211. package/dist/components/semiotic-geo.d.ts +11 -0
  212. package/dist/components/semiotic-network.d.ts +11 -0
  213. package/dist/components/semiotic-ordinal.d.ts +8 -0
  214. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  215. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  216. package/dist/components/semiotic-physics.d.ts +56 -0
  217. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  218. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  219. package/dist/components/semiotic-realtime.d.ts +4 -30
  220. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  221. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  222. package/dist/components/semiotic-recipes.d.ts +4 -43
  223. package/dist/components/semiotic-server-edge.d.ts +8 -0
  224. package/dist/components/semiotic-server-node.d.ts +5 -0
  225. package/dist/components/semiotic-server.d.ts +2 -2
  226. package/dist/components/semiotic-themes-core.d.ts +53 -0
  227. package/dist/components/semiotic-themes-react.d.ts +4 -0
  228. package/dist/components/semiotic-themes.d.ts +6 -76
  229. package/dist/components/semiotic-utils-core.d.ts +46 -0
  230. package/dist/components/semiotic-utils-react.d.ts +5 -0
  231. package/dist/components/semiotic-utils.d.ts +3 -39
  232. package/dist/components/semiotic-xy.d.ts +8 -0
  233. package/dist/components/semiotic.d.ts +35 -7
  234. package/dist/components/server/animatedGif.d.ts +36 -0
  235. package/dist/components/server/renderEvidence.d.ts +1 -1
  236. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  237. package/dist/components/server/serverChartConfigShared.d.ts +17 -0
  238. package/dist/components/server/serverChartConfigs.d.ts +19 -9
  239. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  240. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  241. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  242. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  243. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  244. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  245. package/dist/components/server/staticGeo.d.ts +4 -0
  246. package/dist/components/server/staticLegend.d.ts +1 -1
  247. package/dist/components/server/staticNetwork.d.ts +8 -0
  248. package/dist/components/server/staticOrdinal.d.ts +11 -0
  249. package/dist/components/server/staticPhysics.d.ts +3 -0
  250. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  251. package/dist/components/server/staticXY.d.ts +4 -0
  252. package/dist/components/store/ObservationStore.d.ts +3 -2
  253. package/dist/components/store/themeSerialization.d.ts +32 -0
  254. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  255. package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
  256. package/dist/components/stream/FocusRing.d.ts +4 -2
  257. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  258. package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
  259. package/dist/components/stream/NetworkPipelineStore.d.ts +31 -26
  260. package/dist/components/stream/NetworkSVGOverlay.d.ts +4 -1
  261. package/dist/components/stream/OrdinalPipelineStore.d.ts +46 -2
  262. package/dist/components/stream/PipelineStore.d.ts +81 -170
  263. package/dist/components/stream/SceneGraph.d.ts +9 -1
  264. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  265. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  266. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  267. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  268. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  269. package/dist/components/stream/accessorUtils.d.ts +23 -10
  270. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  271. package/dist/components/stream/canvasBackground.d.ts +24 -0
  272. package/dist/components/stream/canvasSetup.d.ts +4 -1
  273. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  274. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  275. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  276. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  277. package/dist/components/stream/geoCartogram.d.ts +17 -0
  278. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  279. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  280. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  281. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  282. package/dist/components/stream/geoTypes.d.ts +56 -7
  283. package/dist/components/stream/glyphDef.d.ts +98 -0
  284. package/dist/components/stream/hitTarget.d.ts +170 -0
  285. package/dist/components/stream/hoverUtils.d.ts +3 -0
  286. package/dist/components/stream/keyboardNav.d.ts +4 -1
  287. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  288. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
  289. package/dist/components/stream/networkBezier.d.ts +10 -0
  290. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  291. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  292. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  293. package/dist/components/stream/networkFramePaint.d.ts +43 -0
  294. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  295. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  296. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  297. package/dist/components/stream/networkTypes.d.ts +76 -5
  298. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  299. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  300. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  301. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  302. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
  303. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  304. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  305. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  306. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  307. package/dist/components/stream/ordinalTypes.d.ts +40 -8
  308. package/dist/components/stream/paintNeeds.d.ts +31 -0
  309. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  310. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  311. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  312. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  313. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  314. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  315. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  316. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  317. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  318. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  319. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  320. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  321. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  322. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  323. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
  324. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  325. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
  326. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  327. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  328. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  329. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  330. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  331. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  332. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  333. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  334. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  335. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  336. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
  337. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  338. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  339. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  340. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  341. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
  342. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  343. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  344. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
  345. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  346. package/dist/components/stream/pipelineConfig.d.ts +177 -0
  347. package/dist/components/stream/pipelineDecay.d.ts +20 -2
  348. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  349. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  350. package/dist/components/stream/pipelinePulse.d.ts +16 -2
  351. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  352. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  353. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
  354. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  355. package/dist/components/stream/pipelineTransitions.d.ts +2 -0
  356. package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
  357. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  358. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  359. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  360. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
  361. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  362. package/dist/components/stream/types.d.ts +135 -7
  363. package/dist/components/stream/useFrame.d.ts +21 -2
  364. package/dist/components/stream/useHydration.d.ts +6 -0
  365. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  366. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  367. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  368. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  369. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  370. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  371. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  372. package/dist/components/stream/xySceneBuilders/types.d.ts +4 -4
  373. package/dist/controls.min.js +2 -0
  374. package/dist/controls.module.min.js +2 -0
  375. package/dist/forceLayoutWorker.js +1 -0
  376. package/dist/geo.min.js +1 -1
  377. package/dist/geo.module.min.js +1 -1
  378. package/dist/network.min.js +1 -1
  379. package/dist/network.module.min.js +1 -1
  380. package/dist/ordinal.min.js +1 -1
  381. package/dist/ordinal.module.min.js +1 -1
  382. package/dist/physics-matter.min.js +1 -0
  383. package/dist/physics-matter.module.min.js +1 -0
  384. package/dist/physics-rapier.min.js +1 -0
  385. package/dist/physics-rapier.module.min.js +1 -0
  386. package/dist/physics.min.js +2 -0
  387. package/dist/physics.module.min.js +2 -0
  388. package/dist/physicsWorker.js +1 -0
  389. package/dist/realtime.min.js +1 -1
  390. package/dist/realtime.module.min.js +1 -1
  391. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  392. package/dist/semiotic-ai-core.d.ts +47 -0
  393. package/dist/semiotic-ai-core.min.js +1 -0
  394. package/dist/semiotic-ai-core.module.min.js +1 -0
  395. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  396. package/dist/semiotic-ai.d.ts +50 -8
  397. package/dist/semiotic-ai.min.js +1 -1
  398. package/dist/semiotic-ai.module.min.js +1 -1
  399. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  400. package/dist/semiotic-controls.d.ts +18 -0
  401. package/dist/semiotic-data.min.js +1 -1
  402. package/dist/semiotic-data.module.min.js +1 -1
  403. package/dist/semiotic-experimental.d.ts +38 -9
  404. package/dist/semiotic-experimental.min.js +1 -1
  405. package/dist/semiotic-experimental.module.min.js +1 -1
  406. package/dist/semiotic-geo.d.ts +11 -0
  407. package/dist/semiotic-network.d.ts +11 -0
  408. package/dist/semiotic-ordinal.d.ts +8 -0
  409. package/dist/semiotic-physics-matter.d.ts +10 -0
  410. package/dist/semiotic-physics-rapier.d.ts +9 -0
  411. package/dist/semiotic-physics.d.ts +56 -0
  412. package/dist/semiotic-realtime-core.d.ts +34 -0
  413. package/dist/semiotic-realtime-core.min.js +1 -0
  414. package/dist/semiotic-realtime-core.module.min.js +1 -0
  415. package/dist/semiotic-realtime-react.d.ts +10 -0
  416. package/dist/semiotic-realtime-react.min.js +2 -0
  417. package/dist/semiotic-realtime-react.module.min.js +2 -0
  418. package/dist/semiotic-realtime.d.ts +4 -30
  419. package/dist/semiotic-recipes-core.d.ts +92 -0
  420. package/dist/semiotic-recipes-core.min.js +1 -0
  421. package/dist/semiotic-recipes-core.module.min.js +1 -0
  422. package/dist/semiotic-recipes-react.d.ts +7 -0
  423. package/dist/semiotic-recipes-react.min.js +2 -0
  424. package/dist/semiotic-recipes-react.module.min.js +2 -0
  425. package/dist/semiotic-recipes.d.ts +4 -43
  426. package/dist/semiotic-recipes.min.js +1 -1
  427. package/dist/semiotic-recipes.module.min.js +1 -1
  428. package/dist/semiotic-server-edge.d.ts +8 -0
  429. package/dist/semiotic-server-edge.min.js +1 -0
  430. package/dist/semiotic-server-edge.module.min.js +1 -0
  431. package/dist/semiotic-server-node.d.ts +5 -0
  432. package/dist/semiotic-server-node.min.js +1 -0
  433. package/dist/semiotic-server-node.module.min.js +1 -0
  434. package/dist/semiotic-server.d.ts +2 -2
  435. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  436. package/dist/semiotic-themes-core.d.ts +53 -0
  437. package/dist/semiotic-themes-core.min.js +1 -0
  438. package/dist/semiotic-themes-core.module.min.js +1 -0
  439. package/dist/semiotic-themes-react.d.ts +4 -0
  440. package/dist/semiotic-themes-react.min.js +2 -0
  441. package/dist/semiotic-themes-react.module.min.js +2 -0
  442. package/dist/semiotic-themes.d.ts +6 -76
  443. package/dist/semiotic-themes.min.js +1 -2
  444. package/dist/semiotic-themes.module.min.js +1 -2
  445. package/dist/semiotic-utils-core.d.ts +46 -0
  446. package/dist/semiotic-utils-core.min.js +1 -0
  447. package/dist/semiotic-utils-core.module.min.js +1 -0
  448. package/dist/semiotic-utils-react.d.ts +5 -0
  449. package/dist/semiotic-utils-react.min.js +2 -0
  450. package/dist/semiotic-utils-react.module.min.js +2 -0
  451. package/dist/semiotic-utils.d.ts +3 -39
  452. package/dist/semiotic-utils.min.js +1 -2
  453. package/dist/semiotic-utils.module.min.js +1 -2
  454. package/dist/semiotic-value.min.js +1 -1
  455. package/dist/semiotic-value.module.min.js +1 -1
  456. package/dist/semiotic-xy.d.ts +8 -0
  457. package/dist/semiotic.d.ts +35 -7
  458. package/dist/semiotic.min.js +1 -1
  459. package/dist/semiotic.module.min.js +1 -1
  460. package/dist/server.min.js +1 -1
  461. package/dist/server.module.min.js +1 -1
  462. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  463. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  464. package/dist/xy.min.js +1 -1
  465. package/dist/xy.module.min.js +1 -1
  466. package/package.json +239 -87
  467. package/spec/README.md +152 -0
  468. package/spec/bindings/README.md +35 -0
  469. package/spec/bindings/vega-lite.mjs +112 -0
  470. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  471. package/spec/v0.1/audience-profile.schema.json +67 -0
  472. package/spec/v0.1/chart-capability.schema.json +186 -0
  473. package/dist/components/recipes/gofish.d.ts +0 -207
  474. package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
  475. package/dist/components/recipes/gofishLambdas.d.ts +0 -145
  476. package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
  477. package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
  478. package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
  479. package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
  480. package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
  481. package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
@@ -0,0 +1,142 @@
1
+ import type { Datum } from "../shared/datumTypes";
2
+ import type { MotionCoordinateSpace, MotionEncodingAccessor, MotionEncodingConstant, MotionKinematicsEncoding, MotionPlacementEncoding, MotionProcessEncoding, MotionTimeBasis, MotionTimeEncoding, MotionTimeUnit, ResolvedMotionEncodingRow } from "../shared/motionEncoding";
3
+ import type { Style } from "../../stream/types";
4
+ import type { PhysicsBodyShape, PhysicsBodyState } from "../../stream/physics/PhysicsKernel";
5
+ import type { PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
6
+ import type { PhysicsSemanticItem } from "../../stream/physics/StreamPhysicsFrame";
7
+ import type { PhysicsCustomLayout, PhysicsCustomLayoutContext, PhysicsCustomLayoutResult } from "./PhysicsCustomChart";
8
+ /** Explicit literal wrapper for channels whose values could also be field names. */
9
+ export type PhysicsEncodingConstant<TValue> = MotionEncodingConstant<TValue>;
10
+ /**
11
+ * A data channel can read a field, calculate a value, or provide an explicit
12
+ * constant. Constants use a wrapper so string values are never confused with
13
+ * field names.
14
+ */
15
+ export type PhysicsEncodingAccessor<TDatum, TValue> = MotionEncodingAccessor<TDatum, TValue>;
16
+ export interface PhysicsAppearanceEncoding<TDatum> {
17
+ color?: PhysicsEncodingAccessor<TDatum, string>;
18
+ opacity?: PhysicsEncodingAccessor<TDatum, number>;
19
+ shape?: PhysicsEncodingAccessor<TDatum, PhysicsBodyShape>;
20
+ size?: PhysicsEncodingAccessor<TDatum, number>;
21
+ stroke?: PhysicsEncodingAccessor<TDatum, string>;
22
+ strokeWidth?: PhysicsEncodingAccessor<TDatum, number>;
23
+ }
24
+ export type PhysicsPlacementEncoding<TDatum> = MotionPlacementEncoding<TDatum>;
25
+ export interface PhysicsTimeEncoding<TDatum> extends MotionTimeEncoding<TDatum> {
26
+ /** Simulated time at which the body enters the world. */
27
+ spawnAt?: PhysicsEncodingAccessor<TDatum, number>;
28
+ }
29
+ export type PhysicsKinematicsEncoding<TDatum> = MotionKinematicsEncoding<TDatum>;
30
+ /**
31
+ * Causal simulation channels. Unlike appearance channels, these values change
32
+ * behavior and should be paired with visible or settled evidence when they
33
+ * carry analytical meaning.
34
+ */
35
+ export interface PhysicsDynamicsEncoding<TDatum> {
36
+ bodyCollisions?: PhysicsEncodingAccessor<TDatum, boolean>;
37
+ friction?: PhysicsEncodingAccessor<TDatum, number>;
38
+ mass?: PhysicsEncodingAccessor<TDatum, number>;
39
+ restitution?: PhysicsEncodingAccessor<TDatum, number>;
40
+ }
41
+ export type PhysicsProcessEncoding<TDatum> = MotionProcessEncoding<TDatum>;
42
+ export interface PhysicsAccessibleEncoding<TDatum> {
43
+ description?: PhysicsEncodingAccessor<TDatum, string>;
44
+ group?: PhysicsEncodingAccessor<TDatum, string>;
45
+ label?: PhysicsEncodingAccessor<TDatum, string>;
46
+ }
47
+ /**
48
+ * Grammar-of-graphics bridge for physics-backed charts. Visual channels remain
49
+ * separate from causal dynamics and from process/evidence channels so motion
50
+ * does not silently become an unexplained quantitative encoding.
51
+ */
52
+ export interface PhysicsEncoding<TDatum extends Datum = Datum> {
53
+ id: PhysicsEncodingAccessor<TDatum, string | number>;
54
+ appearance?: PhysicsAppearanceEncoding<TDatum>;
55
+ placement?: PhysicsPlacementEncoding<TDatum>;
56
+ time?: PhysicsTimeEncoding<TDatum>;
57
+ kinematics?: PhysicsKinematicsEncoding<TDatum>;
58
+ dynamics?: PhysicsDynamicsEncoding<TDatum>;
59
+ process?: PhysicsProcessEncoding<TDatum>;
60
+ /** Named analytical values retained on resolved rows for projections. */
61
+ evidence?: Record<string, PhysicsEncodingAccessor<TDatum, unknown>>;
62
+ accessible?: PhysicsAccessibleEncoding<TDatum>;
63
+ }
64
+ export interface PhysicsEncodingDefaults {
65
+ color?: string;
66
+ mass?: number;
67
+ opacity?: number;
68
+ shape?: PhysicsBodyShape;
69
+ size?: number;
70
+ stroke?: string;
71
+ strokeWidth?: number;
72
+ x?: number;
73
+ y?: number;
74
+ }
75
+ /**
76
+ * A resolved physics row is a resolved motion row (the shared neutral channels
77
+ * — kinematics, process, evidence, accessible) plus the physics-only channels:
78
+ * appearance, causal dynamics, a scaled/required placement, spawn timing, and
79
+ * the queued body spawn. Physics is literally a superset of motion.
80
+ */
81
+ export interface ResolvedPhysicsEncodingRow<TDatum extends Datum = Datum> extends Omit<ResolvedMotionEncodingRow<TDatum>, "placement" | "time"> {
82
+ appearance: {
83
+ color?: string;
84
+ opacity?: number;
85
+ shape: PhysicsBodyShape;
86
+ size: number;
87
+ stroke?: string;
88
+ strokeWidth?: number;
89
+ };
90
+ placement: {
91
+ x: number;
92
+ y: number;
93
+ lane?: string | number;
94
+ space?: MotionCoordinateSpace;
95
+ };
96
+ time: {
97
+ arrival?: number;
98
+ spawnAt?: number;
99
+ basis?: MotionTimeBasis;
100
+ unit?: MotionTimeUnit;
101
+ };
102
+ dynamics: {
103
+ bodyCollisions?: boolean;
104
+ friction?: number;
105
+ mass: number;
106
+ restitution?: number;
107
+ };
108
+ spawn: PhysicsQueuedSpawn;
109
+ }
110
+ export interface PhysicsEncodingCompilation<TDatum extends Datum = Datum> {
111
+ rows: ResolvedPhysicsEncodingRow<TDatum>[];
112
+ byId: Map<string, ResolvedPhysicsEncodingRow<TDatum>>;
113
+ spawns: PhysicsQueuedSpawn[];
114
+ semanticItems: PhysicsSemanticItem[];
115
+ /**
116
+ * Per-body style lookup. Always the function form (the compiler resolves one
117
+ * style per id up front); assignable to `StreamPhysicsFrameProps["bodyStyle"]`.
118
+ */
119
+ bodyStyle: (body: PhysicsBodyState) => Style;
120
+ }
121
+ export interface CompilePhysicsEncodingOptions<TDatum extends Datum = Datum> {
122
+ data: readonly TDatum[];
123
+ encoding: PhysicsEncoding<TDatum>;
124
+ defaults?: PhysicsEncodingDefaults;
125
+ scales?: {
126
+ x?: (value: number) => number;
127
+ y?: (value: number) => number;
128
+ };
129
+ }
130
+ /** Resolve row accessors once into worker-safe body spawns and chart metadata. */
131
+ export declare function compilePhysicsEncoding<TDatum extends Datum = Datum>(options: CompilePhysicsEncodingOptions<TDatum>): PhysicsEncodingCompilation<TDatum>;
132
+ export type PhysicsEncodingLayoutExtension = Omit<PhysicsCustomLayoutResult, "bodies" | "initialSpawns" | "bodyStyle" | "semanticItems"> & {
133
+ semanticItems?: PhysicsSemanticItem[];
134
+ };
135
+ export interface CreatePhysicsEncodingLayoutOptions<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> {
136
+ encoding: PhysicsEncoding<TDatum>;
137
+ defaults?: PhysicsEncodingDefaults;
138
+ /** Add constraints, regions, controllers, world config, and overlays. */
139
+ extend?: (context: PhysicsCustomLayoutContext<TDatum, TConfig>, compilation: PhysicsEncodingCompilation<TDatum>) => PhysicsEncodingLayoutExtension | undefined;
140
+ }
141
+ /** Build a PhysicsCustomChart layout from declarative data encodings. */
142
+ export declare function createPhysicsEncodingLayout<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>>(options: CreatePhysicsEncodingLayoutOptions<TDatum, TConfig>): PhysicsCustomLayout<TDatum, TConfig>;
@@ -0,0 +1,53 @@
1
+ import type { Ref, RefObject } from "react";
2
+ import type { Datum } from "../shared/datumTypes";
3
+ import type { RealtimeFrameHandle } from "../../realtime/types";
4
+ import type { StreamPhysicsFrameHandle } from "../../stream/physics/StreamPhysicsFrame";
5
+ import type { StreamPhysicsPopOptions } from "../../stream/physics/physicsBodyCanvas";
6
+ import type { PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
7
+ /**
8
+ * The imperative handle every physics HOC exposes: the shared realtime
9
+ * push/remove/update surface plus the physics-only `popBodies` — a
10
+ * body-removal "pop" burst (expanding ring + sparks) played by the frame.
11
+ * The exit-emphasis counterpart to realtime `pulse`; returns the ids of the
12
+ * bodies actually removed.
13
+ */
14
+ export interface PhysicsFrameHandle extends RealtimeFrameHandle {
15
+ popBodies(ids: string[], options?: StreamPhysicsPopOptions): string[];
16
+ }
17
+ export interface PhysicsDatumSpawnResult {
18
+ datumId: string;
19
+ spawns: PhysicsQueuedSpawn[];
20
+ }
21
+ export interface UsePhysicsHocHandleOptions {
22
+ frameRef: RefObject<StreamPhysicsFrameHandle | null>;
23
+ /**
24
+ * Turn one user row into one or more physics body spawns. Called for
25
+ * push / pushMany / update — never for initial static layout (that path
26
+ * uses the HOC's `initialSpawns`).
27
+ */
28
+ spawnDatum: (datum: Datum, index: number) => PhysicsDatumSpawnResult;
29
+ /**
30
+ * Optional seed so remove/update work on static initial rows without a
31
+ * prior push. Map each seed row to its body ids (defaults: single body
32
+ * whose id equals the datum id).
33
+ */
34
+ seedRows?: readonly Datum[];
35
+ /**
36
+ * Resolve a stable row id for seed/push tracking. Defaults to
37
+ * `String(datum.id ?? index)`.
38
+ */
39
+ idAccessor?: string | ((datum: Datum, index: number) => string);
40
+ /**
41
+ * Resolve body ids for a seed row. Defaults to matching `seedSpawns`
42
+ * (and unitized `rowId-*` ids), else `[rowId]`.
43
+ */
44
+ bodyIdsForSeed?: (datum: Datum, rowId: string, index: number) => string[];
45
+ /**
46
+ * Initial layout spawns — used to resolve multi-body seed rows (pile
47
+ * unitization, physical-flow packets) for remove/update.
48
+ */
49
+ seedSpawns?: readonly PhysicsQueuedSpawn[];
50
+ }
51
+ /** Body ids belonging to a seed row (handles unitized `id-0`, `id-1`, …). */
52
+ export declare function bodyIdsForSeedRow(rowId: string, spawns: readonly PhysicsQueuedSpawn[] | undefined): string[];
53
+ export declare function usePhysicsHocHandle(ref: Ref<PhysicsFrameHandle> | undefined, options: UsePhysicsHocHandleOptions): void;
@@ -0,0 +1,128 @@
1
+ import * as React from "react";
2
+ import type { FrameGraphicsProp } from "../../stream/useFrame";
3
+ import type { PhysicsSemanticItem, StreamPhysicsFrameProps } from "../../stream/physics/StreamPhysicsFrame";
4
+ import { type TooltipProp } from "../../Tooltip/Tooltip";
5
+ import type { Datum } from "../shared/datumTypes";
6
+ import type { BaseChartProps, ChartMode } from "../shared/types";
7
+ import { type ChartModeResult } from "../shared/hooks";
8
+ export type PhysicsHocFrameProps<TOmitted extends keyof StreamPhysicsFrameProps = never> = Partial<Omit<StreamPhysicsFrameProps, "initialSpawns" | "initialSpawnPacing" | "size" | TOmitted>>;
9
+ /**
10
+ * Chrome / AI / annotation contracts HOCs forward to StreamPhysicsFrame.
11
+ * Compose with `BaseChartProps` on every physics HOC.
12
+ */
13
+ export type PhysicsSharedChartProps = {
14
+ annotations?: StreamPhysicsFrameProps["annotations"];
15
+ autoPlaceAnnotations?: StreamPhysicsFrameProps["autoPlaceAnnotations"];
16
+ background?: StreamPhysicsFrameProps["background"];
17
+ legend?: StreamPhysicsFrameProps["legend"];
18
+ legendPosition?: StreamPhysicsFrameProps["legendPosition"];
19
+ legendLayout?: StreamPhysicsFrameProps["legendLayout"];
20
+ svgAnnotationRules?: StreamPhysicsFrameProps["svgAnnotationRules"];
21
+ };
22
+ /** Galton / pile sampling mode (orthogonal to ChartMode display modes). */
23
+ export type PhysicsSimulationMode = "sample" | "mechanical";
24
+ /**
25
+ * Split ChartMode (`primary`/`context`/`sparkline`/`mobile`) from the
26
+ * Galton/pile `sample`/`mechanical` simulation mode. Accepts legacy
27
+ * `mode="mechanical"` as simulationMode for back-compat.
28
+ */
29
+ export declare function resolvePhysicsModes(options: {
30
+ mode?: ChartMode | PhysicsSimulationMode;
31
+ simulationMode?: PhysicsSimulationMode;
32
+ }): {
33
+ chartMode: ChartMode | undefined;
34
+ simulationMode: PhysicsSimulationMode;
35
+ };
36
+ /** Physics fills its box; only compact ChartModes get non-zero chrome padding. */
37
+ export declare function physicsMarginForMode(compactMode: boolean, mode?: ChartMode): {
38
+ top: number;
39
+ right: number;
40
+ bottom: number;
41
+ left: number;
42
+ };
43
+ export declare function resolvePhysicsChartSize(size: [number, number] | undefined, width: number | undefined, height: number | undefined, fallback: [number, number]): [number, number];
44
+ export type PhysicsChartModeProps = {
45
+ width?: number;
46
+ height?: number;
47
+ title?: string;
48
+ description?: string;
49
+ summary?: string;
50
+ accessibleTable?: boolean;
51
+ /** Frame-level hover; HOCs may pass via tooltip or frameProps. */
52
+ enableHover?: boolean;
53
+ mobileInteraction?: BaseChartProps["mobileInteraction"];
54
+ mobileSemantics?: BaseChartProps["mobileSemantics"];
55
+ responsiveRules?: BaseChartProps["responsiveRules"];
56
+ mode?: ChartMode | PhysicsSimulationMode;
57
+ simulationMode?: PhysicsSimulationMode;
58
+ size?: [number, number];
59
+ showProjection?: boolean;
60
+ showChrome?: boolean;
61
+ tooltip?: TooltipProp;
62
+ className?: string;
63
+ };
64
+ export interface PhysicsChartModeResult {
65
+ chartMode: ChartMode | undefined;
66
+ simulationMode: PhysicsSimulationMode;
67
+ resolved: ChartModeResult;
68
+ chartSize: [number, number];
69
+ margin: {
70
+ top: number;
71
+ right: number;
72
+ bottom: number;
73
+ left: number;
74
+ };
75
+ showProjection: boolean;
76
+ showChrome: boolean;
77
+ enableHover: boolean;
78
+ title: string | undefined;
79
+ description: string | undefined;
80
+ summary: string | undefined;
81
+ accessibleTable: boolean | undefined;
82
+ className: string | undefined;
83
+ compactMode: boolean;
84
+ mobileInteraction: ChartModeResult["mobileInteraction"];
85
+ mobileSemantics: ChartModeResult["mobileSemantics"];
86
+ }
87
+ /**
88
+ * ChartMode + size + compact chrome defaults for every physics HOC.
89
+ * Primary physics sizes stay family-specific (`primaryFallback`); mode only
90
+ * overrides when width/height/size are unset.
91
+ */
92
+ export declare function usePhysicsChartMode(props: PhysicsChartModeProps, primaryFallback: [number, number], options?: {
93
+ hasSimulationMode?: boolean;
94
+ }): PhysicsChartModeResult;
95
+ export declare function renderPhysicsChartState<TDatum extends Datum>(options: {
96
+ data?: TDatum[] | null;
97
+ emptyContent?: BaseChartProps["emptyContent"];
98
+ loading?: BaseChartProps["loading"];
99
+ loadingContent?: BaseChartProps["loadingContent"];
100
+ size: [number, number];
101
+ }): React.ReactElement | null;
102
+ export declare function renderPhysicsFrame(componentName: string, size: [number, number], children: React.ReactNode): React.ReactElement;
103
+ export declare function composePhysicsFrameGraphics(first: FrameGraphicsProp | undefined, second: FrameGraphicsProp | undefined): FrameGraphicsProp | undefined;
104
+ export declare function resolvePhysicsTooltipProps(tooltip: TooltipProp | undefined, frameProps?: Partial<StreamPhysicsFrameProps>): Pick<StreamPhysicsFrameProps, "enableHover" | "tooltipContent">;
105
+ /**
106
+ * HOC → StreamPhysicsFrame shared Semiotic contracts: a11y, observation,
107
+ * click, chrome (title/legend/annotations), primitive styling, emphasis.
108
+ * Prefer HOC props; frameProps fill gaps.
109
+ */
110
+ export declare function resolvePhysicsFrameSharedProps(props: Pick<BaseChartProps, "accessibleTable" | "chartId" | "className" | "color" | "description" | "emphasis" | "hoverRadius" | "onClick" | "onObservation" | "opacity" | "stroke" | "strokeWidth" | "summary" | "title"> & {
111
+ annotations?: StreamPhysicsFrameProps["annotations"];
112
+ autoPlaceAnnotations?: StreamPhysicsFrameProps["autoPlaceAnnotations"];
113
+ background?: StreamPhysicsFrameProps["background"];
114
+ legend?: StreamPhysicsFrameProps["legend"];
115
+ legendPosition?: StreamPhysicsFrameProps["legendPosition"];
116
+ legendLayout?: StreamPhysicsFrameProps["legendLayout"];
117
+ svgAnnotationRules?: StreamPhysicsFrameProps["svgAnnotationRules"];
118
+ }, frameProps: Partial<StreamPhysicsFrameProps> | undefined, semanticItems?: PhysicsSemanticItem[], modeExtras?: {
119
+ chartMode?: ChartMode;
120
+ className?: string;
121
+ title?: string;
122
+ description?: string;
123
+ summary?: string;
124
+ accessibleTable?: boolean;
125
+ enableHover?: boolean;
126
+ margin?: StreamPhysicsFrameProps["margin"];
127
+ }): Partial<StreamPhysicsFrameProps>;
128
+ export type { TooltipProp };
@@ -0,0 +1,41 @@
1
+ import type { Datum } from "../shared/datumTypes";
2
+ import type { ChartAccessor } from "../shared/types";
3
+ import { type PhysicsChartLayout } from "./physicsChartShared";
4
+ export interface PhysicsPileMechanicalSampleOptions {
5
+ categories?: readonly string[];
6
+ count?: number;
7
+ idPrefix?: string;
8
+ seed?: number;
9
+ unitValue?: number;
10
+ }
11
+ export interface PhysicsPileOptions<TDatum extends Datum = Datum> {
12
+ data: readonly TDatum[];
13
+ categoryAccessor: ChartAccessor<TDatum, string>;
14
+ valueAccessor?: ChartAccessor<TDatum, number>;
15
+ unitValue: number;
16
+ ballRadius: number;
17
+ seed: number;
18
+ size: [number, number];
19
+ }
20
+ export declare function generatePhysicsPileMechanicalSamples(options?: PhysicsPileMechanicalSampleOptions): Datum[];
21
+ export interface PileTubeGeometry {
22
+ laneWidth: number;
23
+ tubeWidth: number;
24
+ ballDiameter: number;
25
+ perRow: number;
26
+ centerX: (index: number) => number;
27
+ pileHeight: (count: number) => number;
28
+ }
29
+ /**
30
+ * Column geometry shared by the pile builder and its projection overlay so the
31
+ * ghost bar's height is exactly the fill target the stacked units rise to reach.
32
+ * Units drop into a narrow tube (a few balls wide) so their count reads as
33
+ * height — a bar chart assembled from falling units, not a spreading heap.
34
+ */
35
+ export declare function pileTubeGeometry(plot: {
36
+ x: number;
37
+ y: number;
38
+ width: number;
39
+ height: number;
40
+ }, categoryCount: number, ballRadius: number): PileTubeGeometry;
41
+ export declare function buildPhysicsPile<TDatum extends Datum>(options: PhysicsPileOptions<TDatum>): PhysicsChartLayout;
@@ -0,0 +1,38 @@
1
+ import type { PhysicsColliderBodyFilter, PhysicsColliderSpec, PhysicsColliderShape } from "../../stream/physics/PhysicsKernel";
2
+ import type { PhysicsSemanticItem, StreamPhysicsRegionEffect, StreamPhysicsRegionKind } from "../../stream/physics/StreamPhysicsFrame";
3
+ import type { Datum } from "../shared/datumTypes";
4
+ export interface PhysicsProcessStage {
5
+ id: string;
6
+ label?: string;
7
+ description?: string;
8
+ kind?: StreamPhysicsRegionKind | string;
9
+ x?: number;
10
+ y?: number;
11
+ width?: number;
12
+ height?: number;
13
+ }
14
+ export interface PhysicsProcessBodyGroup<TDatum extends Datum = Datum> {
15
+ id: string;
16
+ label?: string;
17
+ description?: string;
18
+ group?: string;
19
+ bodyIds?: readonly string[];
20
+ datum?: TDatum;
21
+ state?: string;
22
+ x?: number;
23
+ y?: number;
24
+ width?: number;
25
+ height?: number;
26
+ semanticItem?: false | Partial<PhysicsSemanticItem>;
27
+ }
28
+ export interface PhysicsProcessBoundaryOptions {
29
+ id?: string;
30
+ bodyFilter?: PhysicsColliderBodyFilter;
31
+ friction?: number;
32
+ restitution?: number;
33
+ thickness?: number;
34
+ }
35
+ export declare function physicsProcessBoundaryColliders(shape: PhysicsColliderShape, options?: PhysicsProcessBoundaryOptions): PhysicsColliderSpec[];
36
+ export declare function physicsProcessRegionSemanticItem(region: StreamPhysicsRegionEffect): PhysicsSemanticItem | null;
37
+ export declare function physicsProcessStageSemanticItems(stages: readonly PhysicsProcessStage[]): PhysicsSemanticItem[];
38
+ export declare function physicsProcessGroupSemanticItems<TDatum extends Datum>(groups: readonly PhysicsProcessBodyGroup<TDatum>[]): PhysicsSemanticItem[];
@@ -0,0 +1,97 @@
1
+ import type { Datum } from "../shared/datumTypes";
2
+ import type { ChartAccessor } from "../shared/types";
3
+ import type { StreamPhysicsRegionEffect } from "../../stream/physics/StreamPhysicsTypes";
4
+ import { groupCompletionRows, type BodyGroupSpec, type ProcessVolumeLayout } from "../../recipes/processPhysics";
5
+ import { type PhysicsChartArea, type PhysicsChartLayout } from "./physicsChartShared";
6
+ export interface ProcessFlowStageDef {
7
+ id: string;
8
+ label?: string;
9
+ description?: string;
10
+ /** Relative width share along the route. */
11
+ share?: number;
12
+ /**
13
+ * Continuous forward force while bodies overlap the stage.
14
+ * Number form is `{ x: force, y: 0 }`.
15
+ */
16
+ force?: number | {
17
+ x?: number;
18
+ y?: number;
19
+ };
20
+ damping?: number;
21
+ /**
22
+ * Capacitated processing stand-in: throughput metadata + force/damping.
23
+ * Full queue DES is ProcessFlow controller territory later.
24
+ */
25
+ capacity?: {
26
+ unitsPerSecond: number;
27
+ /** Datum field used as work-units (stamped into attributes only for now). */
28
+ unitAccessor?: string;
29
+ };
30
+ /**
31
+ * Raise drag with a pressure scalar (or occupancy when provided at build time).
32
+ */
33
+ pressure?: boolean | {
34
+ pressure?: number;
35
+ occupancy?: number;
36
+ baseDamping?: number;
37
+ dampingPerUnit?: number;
38
+ energyPerUnit?: number;
39
+ };
40
+ /** Rework / bounce portal toward another stage id. */
41
+ portal?: {
42
+ targetStageId: string;
43
+ force?: {
44
+ x?: number;
45
+ y?: number;
46
+ };
47
+ };
48
+ /** Absorbing sink (completion / merge). */
49
+ absorb?: boolean;
50
+ kind?: StreamPhysicsRegionEffect["kind"];
51
+ }
52
+ export interface ProcessFlowPhysicsOptions<TDatum extends Datum = Datum> {
53
+ data: readonly TDatum[];
54
+ stages: readonly ProcessFlowStageDef[];
55
+ size: [number, number];
56
+ idAccessor?: ChartAccessor<TDatum, string>;
57
+ stageAccessor?: ChartAccessor<TDatum, string>;
58
+ groupBy?: ChartAccessor<TDatum, string>;
59
+ groupLabelAccessor?: ChartAccessor<TDatum, string>;
60
+ workAccessor?: ChartAccessor<TDatum, number>;
61
+ radiusAccessor?: ChartAccessor<TDatum, number>;
62
+ ballRadius?: number;
63
+ seed?: number;
64
+ /** Horizontal process lane (default). */
65
+ route?: "horizontal";
66
+ groupCompletion?: "allAbsorbed" | "none";
67
+ /** Optional column x for feature/group anchors (plot-relative fraction 0–1). */
68
+ groupAnchorAlong?: number;
69
+ springStiffness?: number;
70
+ springDamping?: number;
71
+ gravityX?: number;
72
+ gravityY?: number;
73
+ settle?: boolean;
74
+ }
75
+ export interface ProcessFlowProjectionMetadata {
76
+ kind: "process-flow";
77
+ plot: PhysicsChartArea["plot"];
78
+ volume: ProcessVolumeLayout;
79
+ stages: Array<{
80
+ id: string;
81
+ label: string;
82
+ x: number;
83
+ width: number;
84
+ count: number;
85
+ capacity?: number;
86
+ absorb?: boolean;
87
+ portalTarget?: string;
88
+ }>;
89
+ groups: BodyGroupSpec[];
90
+ groupCompletion: ReturnType<typeof groupCompletionRows>;
91
+ regionEffects: StreamPhysicsRegionEffect[];
92
+ }
93
+ /**
94
+ * Build a capacitated multi-body process lane: stage regions, optional feature
95
+ * body-groups, springs toward stage centers, and a settled stage-count projection.
96
+ */
97
+ export declare function buildProcessFlowPhysics<TDatum extends Datum>(options: ProcessFlowPhysicsOptions<TDatum>): PhysicsChartLayout;
@@ -3,13 +3,21 @@ import type { ArrowOfTime, WindowMode, HoverAnnotationConfig, HoverData, Annotat
3
3
  import type { RealtimeFrameHandle } from "../../realtime/types";
4
4
  import type { ReactNode } from "react";
5
5
  import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
6
- import type { ChartMode, ChartAccessor, SelectionConfig } from "../shared/types";
6
+ import type { ChartMode, ChartAccessor, SelectionConfig, MobileInteractionProp } from "../shared/types";
7
7
  import type { OnObservationCallback } from "../../store/ObservationStore";
8
8
  import type { Datum } from "../shared/datumTypes";
9
9
  import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
10
+ import type { MobileVisualizationContract } from "../shared/auditMobileVisualization";
11
+ import type { ResponsiveRule } from "../shared/responsiveRules";
10
12
  export interface RealtimeHeatmapProps<TDatum extends Datum = Datum> {
11
13
  /** Display mode: "primary" (full chrome), "context" (compact), "sparkline" (inline) */
12
14
  mode?: ChartMode;
15
+ /** Semantic responsive transformations applied before chart-mode defaults. */
16
+ responsiveRules?: ResponsiveRule[];
17
+ /** Phone/mobile contract consumed by audits, recipes, adapters, and agents. */
18
+ mobileSemantics?: MobileVisualizationContract;
19
+ /** Touch-first interaction policy for phone-sized chart slots. */
20
+ mobileInteraction?: MobileInteractionProp;
13
21
  /** Chart dimensions as [width, height] */
14
22
  size?: [number, number];
15
23
  /** Chart width (alternative to size) */
@@ -3,14 +3,22 @@ import type { ArrowOfTime, WindowMode, HoverAnnotationConfig, HoverData, Annotat
3
3
  import type { RealtimeFrameHandle } from "../../realtime/types";
4
4
  import type { ReactNode } from "react";
5
5
  import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
6
- import type { ChartMode, ChartAccessor, SelectionConfig } from "../shared/types";
6
+ import type { ChartMode, ChartAccessor, SelectionConfig, MobileInteractionProp } from "../shared/types";
7
7
  import type { OnObservationCallback } from "../../store/ObservationStore";
8
8
  import type { Datum } from "../shared/datumTypes";
9
9
  import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
10
+ import type { MobileVisualizationContract } from "../shared/auditMobileVisualization";
11
+ import type { ResponsiveRule } from "../shared/responsiveRules";
10
12
  export type RealtimeHistogramDirection = "up" | "down";
11
13
  export interface RealtimeHistogramProps<TDatum extends Datum = Datum> {
12
14
  /** Display mode: "primary" (full chrome), "context" (compact), "sparkline" (inline) */
13
15
  mode?: ChartMode;
16
+ /** Semantic responsive transformations applied before chart-mode defaults. */
17
+ responsiveRules?: ResponsiveRule[];
18
+ /** Phone/mobile contract consumed by audits, recipes, adapters, and agents. */
19
+ mobileSemantics?: MobileVisualizationContract;
20
+ /** Touch-first interaction policy for phone-sized chart slots. */
21
+ mobileInteraction?: MobileInteractionProp;
14
22
  /** Time interval for binning */
15
23
  binSize: number;
16
24
  /** Chart dimensions as [width, height] */
@@ -3,15 +3,23 @@ import type { ArrowOfTime, WindowMode, HoverAnnotationConfig, HoverData, Annotat
3
3
  import type { RealtimeFrameHandle } from "../../realtime/types";
4
4
  import type { ReactNode } from "react";
5
5
  import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
6
- import type { ChartMode, ChartAccessor, SelectionConfig } from "../shared/types";
6
+ import type { ChartMode, ChartAccessor, SelectionConfig, MobileInteractionProp } from "../shared/types";
7
7
  import type { OnObservationCallback } from "../../store/ObservationStore";
8
8
  import type { Datum } from "../shared/datumTypes";
9
9
  import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
10
+ import type { MobileVisualizationContract } from "../shared/auditMobileVisualization";
11
+ import type { ResponsiveRule } from "../shared/responsiveRules";
10
12
  import { type AggregateConfig } from "./aggregate";
11
13
  import { type EventTimeConfig } from "./eventTime";
12
14
  export interface RealtimeLineChartProps<TDatum extends Datum = Datum> {
13
15
  /** Display mode: "primary" (full chrome), "context" (compact), "sparkline" (inline) */
14
16
  mode?: ChartMode;
17
+ /** Semantic responsive transformations applied before chart-mode defaults. */
18
+ responsiveRules?: ResponsiveRule[];
19
+ /** Phone/mobile contract consumed by audits, recipes, adapters, and agents. */
20
+ mobileSemantics?: MobileVisualizationContract;
21
+ /** Touch-first interaction policy for phone-sized chart slots. */
22
+ mobileInteraction?: MobileInteractionProp;
15
23
  /** Chart dimensions as [width, height] */
16
24
  size?: [number, number];
17
25
  /** Chart width (alternative to size) */
@@ -1,15 +1,23 @@
1
1
  import * as React from "react";
2
- import type { ArrowOfTime, WindowMode, HoverAnnotationConfig, HoverData, AnnotationContext } from "../../stream/types";
2
+ import type { ArrowOfTime, WindowMode, Style, HoverAnnotationConfig, HoverData, AnnotationContext } from "../../stream/types";
3
3
  import type { RealtimeFrameHandle } from "../../realtime/types";
4
4
  import type { ReactNode } from "react";
5
5
  import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
6
- import type { ChartMode, ChartAccessor, SelectionConfig } from "../shared/types";
6
+ import type { ChartMode, ChartAccessor, SelectionConfig, MobileInteractionProp } from "../shared/types";
7
7
  import type { OnObservationCallback } from "../../store/ObservationStore";
8
8
  import type { Datum } from "../shared/datumTypes";
9
9
  import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
10
+ import type { MobileVisualizationContract } from "../shared/auditMobileVisualization";
11
+ import type { ResponsiveRule } from "../shared/responsiveRules";
10
12
  export interface RealtimeSwarmChartProps<TDatum extends Datum = Datum> {
11
13
  /** Display mode: "primary" (full chrome), "context" (compact), "sparkline" (inline) */
12
14
  mode?: ChartMode;
15
+ /** Semantic responsive transformations applied before chart-mode defaults. */
16
+ responsiveRules?: ResponsiveRule[];
17
+ /** Phone/mobile contract consumed by audits, recipes, adapters, and agents. */
18
+ mobileSemantics?: MobileVisualizationContract;
19
+ /** Touch-first interaction policy for phone-sized chart slots. */
20
+ mobileInteraction?: MobileInteractionProp;
13
21
  /** Chart dimensions as [width, height] */
14
22
  size?: [number, number];
15
23
  /** Chart width (alternative to size) */
@@ -43,6 +51,8 @@ export interface RealtimeSwarmChartProps<TDatum extends Datum = Datum> {
43
51
  timeExtent?: [number, number];
44
52
  /** Fixed value domain */
45
53
  valueExtent?: [number, number];
54
+ /** Value-axis scale. "symlog" supports signed values while compressing large magnitudes. */
55
+ yScaleType?: "linear" | "log" | "symlog";
46
56
  /** Extent padding factor */
47
57
  extentPadding?: number;
48
58
  /** Category accessor for color-coding dots */
@@ -59,6 +69,10 @@ export interface RealtimeSwarmChartProps<TDatum extends Datum = Datum> {
59
69
  stroke?: string;
60
70
  /** Dot stroke width */
61
71
  strokeWidth?: number;
72
+ /** Per-datum dot style. Returned values override the top-level dot primitives and category color. */
73
+ pointStyle?: (datum: TDatum) => Style & {
74
+ r?: number;
75
+ };
62
76
  /** Show canvas-drawn axes */
63
77
  showAxes?: boolean;
64
78
  /** Background fill color */
@@ -3,13 +3,21 @@ import type { ArrowOfTime, WindowMode, HoverAnnotationConfig, HoverData, Annotat
3
3
  import type { RealtimeFrameHandle } from "../../realtime/types";
4
4
  import type { ReactNode } from "react";
5
5
  import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
6
- import type { ChartMode, ChartAccessor, SelectionConfig } from "../shared/types";
6
+ import type { ChartMode, ChartAccessor, SelectionConfig, MobileInteractionProp } from "../shared/types";
7
7
  import type { OnObservationCallback } from "../../store/ObservationStore";
8
8
  import type { Datum } from "../shared/datumTypes";
9
9
  import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
10
+ import type { MobileVisualizationContract } from "../shared/auditMobileVisualization";
11
+ import type { ResponsiveRule } from "../shared/responsiveRules";
10
12
  export interface RealtimeWaterfallChartProps<TDatum extends Datum = Datum> {
11
13
  /** Display mode: "primary" (full chrome), "context" (compact), "sparkline" (inline) */
12
14
  mode?: ChartMode;
15
+ /** Semantic responsive transformations applied before chart-mode defaults. */
16
+ responsiveRules?: ResponsiveRule[];
17
+ /** Phone/mobile contract consumed by audits, recipes, adapters, and agents. */
18
+ mobileSemantics?: MobileVisualizationContract;
19
+ /** Touch-first interaction policy for phone-sized chart slots. */
20
+ mobileInteraction?: MobileInteractionProp;
13
21
  /** Chart dimensions as [width, height] */
14
22
  size?: [number, number];
15
23
  /** Chart width (alternative to size) */