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,145 @@
1
+ import type { Datum } from "./datumTypes";
2
+ import { type LifecycleBand, type LifecycleBandThresholds } from "../../realtime/lifecycleBands";
3
+ /** Explicit literal wrapper for channels whose values could be field names. */
4
+ export interface MotionEncodingConstant<TValue> {
5
+ constant: TValue;
6
+ }
7
+ /** A motion channel can read a field, calculate a value, or use a constant. */
8
+ export type MotionEncodingAccessor<TDatum, TValue> = keyof TDatum | ((datum: TDatum, index: number) => TValue) | MotionEncodingConstant<TValue>;
9
+ /** The clock that gives an arrival or age value meaning. */
10
+ export type MotionTimeBasis = "event" | "ingest" | "simulation" | "presentation" | "buffer-index";
11
+ /** Motion helpers do not convert units; related values must use the same unit. */
12
+ export type MotionTimeUnit = "milliseconds" | "seconds" | "frames" | "index";
13
+ /** Coordinate system in which placement or velocity values are expressed. */
14
+ export type MotionCoordinateSpace = "data" | "world" | "screen";
15
+ export interface MotionTimeEncoding<TDatum> {
16
+ /** Time at which the datum enters the represented system. */
17
+ arrival?: MotionEncodingAccessor<TDatum, number>;
18
+ basis?: MotionTimeBasis;
19
+ unit?: MotionTimeUnit;
20
+ }
21
+ export interface MotionPlacementEncoding<TDatum> {
22
+ x?: MotionEncodingAccessor<TDatum, number>;
23
+ y?: MotionEncodingAccessor<TDatum, number>;
24
+ lane?: MotionEncodingAccessor<TDatum, string | number>;
25
+ space?: MotionCoordinateSpace;
26
+ }
27
+ export interface MotionKinematicsEncoding<TDatum> {
28
+ velocityX?: MotionEncodingAccessor<TDatum, number>;
29
+ velocityY?: MotionEncodingAccessor<TDatum, number>;
30
+ space?: MotionCoordinateSpace;
31
+ }
32
+ export interface MotionProcessEncoding<TDatum> {
33
+ group?: MotionEncodingAccessor<TDatum, string | number>;
34
+ stage?: MotionEncodingAccessor<TDatum, string | number>;
35
+ target?: MotionEncodingAccessor<TDatum, string | number>;
36
+ work?: MotionEncodingAccessor<TDatum, number>;
37
+ }
38
+ export interface MotionAccessibleEncoding<TDatum> {
39
+ description?: MotionEncodingAccessor<TDatum, string>;
40
+ group?: MotionEncodingAccessor<TDatum, string>;
41
+ label?: MotionEncodingAccessor<TDatum, string>;
42
+ }
43
+ /** Runtime-neutral motion channels shared by streaming and physics adapters. */
44
+ export interface MotionEncoding<TDatum extends Datum = Datum> {
45
+ id: MotionEncodingAccessor<TDatum, string | number>;
46
+ time?: MotionTimeEncoding<TDatum>;
47
+ placement?: MotionPlacementEncoding<TDatum>;
48
+ kinematics?: MotionKinematicsEncoding<TDatum>;
49
+ process?: MotionProcessEncoding<TDatum>;
50
+ evidence?: Record<string, MotionEncodingAccessor<TDatum, unknown>>;
51
+ accessible?: MotionAccessibleEncoding<TDatum>;
52
+ }
53
+ export interface ResolvedMotionEncodingRow<TDatum extends Datum = Datum> {
54
+ id: string;
55
+ datum: TDatum;
56
+ time: {
57
+ arrival?: number;
58
+ basis?: MotionTimeBasis;
59
+ unit?: MotionTimeUnit;
60
+ };
61
+ placement: {
62
+ x?: number;
63
+ y?: number;
64
+ lane?: string | number;
65
+ space?: MotionCoordinateSpace;
66
+ };
67
+ kinematics: {
68
+ velocityX?: number;
69
+ velocityY?: number;
70
+ space?: MotionCoordinateSpace;
71
+ };
72
+ process: {
73
+ group?: string | number;
74
+ stage?: string | number;
75
+ target?: string | number;
76
+ work?: number;
77
+ };
78
+ evidence: Record<string, unknown>;
79
+ accessible: {
80
+ description?: string;
81
+ group?: string;
82
+ label: string;
83
+ };
84
+ }
85
+ export interface MotionEncodingCompilation<TDatum extends Datum = Datum> {
86
+ rows: ResolvedMotionEncodingRow<TDatum>[];
87
+ byId: Map<string, ResolvedMotionEncodingRow<TDatum>>;
88
+ }
89
+ export interface CompileMotionEncodingOptions<TDatum extends Datum = Datum> {
90
+ data: readonly TDatum[];
91
+ encoding: MotionEncoding<TDatum>;
92
+ }
93
+ /** Resolve one encoding accessor without attaching it to a specific runtime. */
94
+ export declare function resolveMotionAccessor<TDatum, TValue>(accessor: MotionEncodingAccessor<TDatum, TValue> | undefined, datum: TDatum, index: number): TValue | undefined;
95
+ /** Resolve runtime-neutral motion channels once while preserving source data. */
96
+ export declare function compileMotionEncoding<TDatum extends Datum = Datum>(options: CompileMotionEncodingOptions<TDatum>): MotionEncodingCompilation<TDatum>;
97
+ export interface ResolveMotionAgeOptions {
98
+ now: number;
99
+ arrival: number;
100
+ /** Uses the same unit as now and arrival. */
101
+ ttl: number;
102
+ thresholds?: LifecycleBandThresholds;
103
+ }
104
+ export interface ResolvedMotionAge {
105
+ age: number;
106
+ /** Unbounded age / ttl ratio. Negative and invalid ages resolve to zero. */
107
+ progress: number;
108
+ lifecycle: LifecycleBand;
109
+ }
110
+ /**
111
+ * Derive age, its unbounded ttl progress, and its named lifecycle band from
112
+ * values on a common clock — the one-call helper for authoring custom
113
+ * age-based encodings (see the Motion Encodings guide, which drives an "age +
114
+ * lifecycle" table from it). For band-only or ramp-only needs, reach for
115
+ * `bandFromAge` / `opacityFromAge` directly.
116
+ */
117
+ export declare function resolveMotionAge(options: ResolveMotionAgeOptions): ResolvedMotionAge;
118
+ export type MotionAgeOpacityType = "linear" | "exponential" | "step";
119
+ export interface MotionAgeOpacityOptions {
120
+ /** Age where zero is newest. */
121
+ age: number;
122
+ /** Oldest meaningful age in the same unit. */
123
+ extent: number;
124
+ type: MotionAgeOpacityType;
125
+ halfLife?: number;
126
+ threshold?: number;
127
+ minOpacity?: number;
128
+ }
129
+ /** Map an age to opacity without assuming wall, simulation, or index time. */
130
+ export declare function opacityFromAge(options: MotionAgeOpacityOptions): number;
131
+ export interface MotionPoint {
132
+ x: number;
133
+ y: number;
134
+ }
135
+ export interface ResolvedMotionVector {
136
+ velocityX: number;
137
+ velocityY: number;
138
+ speed: number;
139
+ /** atan2 angle in radians in the supplied coordinate space. */
140
+ direction: number;
141
+ }
142
+ /** Resolve cartesian velocity into speed and direction. */
143
+ export declare function resolveMotionVector(velocityX: number, velocityY: number): ResolvedMotionVector;
144
+ /** Derive velocity per elapsed unit between two positions. */
145
+ export declare function deriveMotionVector(previous: MotionPoint, current: MotionPoint, elapsed: number): ResolvedMotionVector;
@@ -1,21 +1,3 @@
1
- /**
2
- * radialGeometry — pure math helpers for radial chart authoring.
3
- *
4
- * The original consumer is `GaugeChart`, which needs to:
5
- * - Convert a sweep angle (degrees) into start-angle + radian
6
- * forms that align with the convention pieScene.ts uses
7
- * (0° = 12 o'clock, positive = clockwise, gap centered at the
8
- * 6 o'clock position).
9
- * - Map a value in `[min, max]` to its angle along the arc.
10
- * - Compute the arc's visible bounding box in unit-circle coords
11
- * so a container can fit the arc and pick a maximum radius.
12
- *
13
- * Custom radial chart authors using `XYCustomChart` or building a
14
- * bespoke radial layout can reach for the same primitives without
15
- * reimplementing the trigonometry. Surface intentionally tight —
16
- * each function is a few lines of math with a documented input
17
- * convention.
18
- */
19
1
  /** Result of `sweepToAngles`. All angles are in the
20
2
  * 12-o'clock-zero, clockwise-positive convention used by pieScene
21
3
  * and the underlying gauge implementation. */
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Responsive visualization rule grammar.
3
+ *
4
+ * This is deliberately chart-semantic, not CSS. A rule says "when this chart
5
+ * slot is narrow, transform the chart props this way" so agents, recipes,
6
+ * audits, and future HOC runtime wiring can reason about the mobile variant
7
+ * without executing a renderer.
8
+ */
9
+ export type ResponsiveOrientation = "portrait" | "landscape";
10
+ export interface ResponsiveRuleCondition {
11
+ minWidth?: number;
12
+ maxWidth?: number;
13
+ minHeight?: number;
14
+ maxHeight?: number;
15
+ minAspectRatio?: number;
16
+ maxAspectRatio?: number;
17
+ orientation?: ResponsiveOrientation;
18
+ }
19
+ export interface ResponsiveRuleContext {
20
+ width: number;
21
+ height?: number;
22
+ }
23
+ export interface ResponsiveRule<TProps extends Record<string, unknown> = Record<string, unknown>> {
24
+ id?: string;
25
+ description?: string;
26
+ /**
27
+ * Viewport/container condition. All supplied predicates must match.
28
+ */
29
+ when: ResponsiveRuleCondition;
30
+ /**
31
+ * Shallow prop transform to apply when the condition matches. Nested
32
+ * `margin`, `frameProps`, `mobileSemantics`, `style`, and `className` are
33
+ * merged by `resolveResponsiveRules`; other keys replace the base value.
34
+ */
35
+ transform: Partial<TProps> & Record<string, unknown>;
36
+ /**
37
+ * Higher priority applies later and wins on conflicts. Defaults to source
38
+ * order when omitted.
39
+ */
40
+ priority?: number;
41
+ }
42
+ export interface ResponsiveRuleMatch<TProps extends Record<string, unknown> = Record<string, unknown>> {
43
+ rule: ResponsiveRule<TProps>;
44
+ index: number;
45
+ }
46
+ export interface ResponsiveRuleResult<TProps extends Record<string, unknown> = Record<string, unknown>> {
47
+ props: TProps;
48
+ matches: ResponsiveRuleMatch<TProps>[];
49
+ }
50
+ export declare function responsiveRuleMatches(rule: ResponsiveRule, context: ResponsiveRuleContext): boolean;
51
+ /**
52
+ * Resolve matching responsive rules into a transformed prop object. Pure and
53
+ * SSR-safe. Runtime HOCs can call this with measured container dimensions;
54
+ * agents and audits can call it with target phone widths.
55
+ */
56
+ export declare function resolveResponsiveRules<TProps extends Record<string, unknown>>(props: TProps, context: ResponsiveRuleContext, rules?: ReadonlyArray<ResponsiveRule<TProps>> | undefined): ResponsiveRuleResult<TProps>;
@@ -0,0 +1,27 @@
1
+ import type { Datum } from "./datumTypes";
2
+ export interface SmartTooltipEntry {
3
+ key: string;
4
+ value: unknown;
5
+ }
6
+ export interface SmartTooltipResult {
7
+ /** The key the title came from, if any. */
8
+ titleKey?: string;
9
+ /** The display title (a name/label/title/id). */
10
+ title?: unknown;
11
+ /** Ordered rows to show beneath the title (type → value → rest). */
12
+ entries: SmartTooltipEntry[];
13
+ }
14
+ /**
15
+ * Choose a title + ordered, de-noised rows from an arbitrary datum. Pure.
16
+ *
17
+ * - Skips `_`/`__`-prefixed keys, `data`, positional/topology keys, and
18
+ * non-primitive values (nested objects/arrays).
19
+ * - Title: the first `name`/`label`/`title` field, else `id`, else the first
20
+ * string field. When a real name is used, `id` is dropped as redundant.
21
+ * - Rows: one type-family field, then one value-family field, then the rest in
22
+ * insertion order (capped at `maxEntries`).
23
+ */
24
+ export declare function smartTooltipEntries(raw: Datum | null | undefined, options?: {
25
+ maxEntries?: number;
26
+ skipPositional?: boolean;
27
+ }): SmartTooltipResult;
@@ -48,6 +48,27 @@ export interface ForecastConfig {
48
48
  trainOpacity?: number;
49
49
  /** Stroke opacity for the forecast line segment (0–1). Default: 1 */
50
50
  forecastOpacity?: number;
51
+ /**
52
+ * Ramp each forecast point's opacity by its uncertainty — wider
53
+ * prediction interval (longer horizon) renders fainter, fusing
54
+ * confidence into the encoding instead of a single flat opacity.
55
+ * `true` ramps across `[0.15, 1]`; pass `{ min, max }` to bound the
56
+ * range. Honored by `createSegmentLineStyle`; overrides
57
+ * `forecastOpacity` per point. Mutually exclusive with
58
+ * `confidenceAccessor` (which wins if both are set).
59
+ */
60
+ uncertaintyOpacity?: boolean | {
61
+ min?: number;
62
+ max?: number;
63
+ };
64
+ /**
65
+ * Externally-supplied per-point confidence in `[0, 1]` (field name or
66
+ * function). When set, each forecast point's opacity is interpolated
67
+ * across the `uncertaintyOpacity` range (or `[0.15, 1]`) by its
68
+ * confidence — higher confidence, more opaque. Use when the consumer's
69
+ * model emits a confidence rather than a prediction interval.
70
+ */
71
+ confidenceAccessor?: string | ((d: Datum) => number);
51
72
  /**
52
73
  * Training line stroke color.
53
74
  * - `"darken"`: auto-darken the line's own color by 50% (hex colors only —
@@ -97,6 +118,20 @@ export interface ForecastConfig {
97
118
  /** Internal segment marker added to each datum */
98
119
  export declare const SEGMENT_FIELD: "__forecastSegment";
99
120
  export type SegmentType = "training" | "training-base" | "observed" | "forecast";
121
+ /** Internal per-point opacity stamped by the uncertainty ramp. */
122
+ export declare const FORECAST_OPACITY_FIELD: "__forecastOpacity";
123
+ /**
124
+ * Stamp `__forecastOpacity` on forecast points so `createSegmentLineStyle`
125
+ * can fade each by its uncertainty. Two sources, confidence wins:
126
+ *
127
+ * - `confidenceAccessor` — opacity = lerp(min, max, confidence∈[0,1]).
128
+ * - `uncertaintyOpacity` — opacity ramped by prediction-interval width
129
+ * (narrowest → max, widest → min), normalized across the given points.
130
+ *
131
+ * Mutates the supplied point objects in place; no-op when neither source
132
+ * is configured. Pure otherwise (only reads via the passed accessors).
133
+ */
134
+ export declare function stampForecastOpacity(points: Datum[], config: ForecastConfig, getUpper: (d: Datum) => number | undefined, getLower: (d: Datum) => number | undefined): void;
100
135
  export declare function buildAnomalyAnnotations(config: AnomalyConfig): Datum[];
101
136
  export interface ForecastResult {
102
137
  processedData: Datum[];
@@ -2,7 +2,7 @@ import type { ReactNode } from "react";
2
2
  import type { Datum } from "./datumTypes";
3
3
  import { type TooltipProp } from "../../Tooltip/Tooltip";
4
4
  import type { HoverData } from "../../realtime/types";
5
- import type { HoverHighlightMode, LinkedHoverProp, SelectionConfig } from "./types";
5
+ import type { HoverHighlightMode, LinkedHoverProp, SelectionConfig, ResolvedMobileInteractionConfig } from "./types";
6
6
  import type { OnObservationCallback } from "../../store/ObservationStore";
7
7
  import type { AnimateProp } from "../../stream/pipelineTransitionUtils";
8
8
  import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
@@ -65,20 +65,29 @@ export declare function buildBaseMetadataProps(input: BaseMetadataProps): BaseMe
65
65
  * - `customClickBehavior` mirrors the click-driving subset
66
66
  * (`onObservation`, `onClick`, `linkedHover` for cross-chart
67
67
  * selection lock).
68
+ * - `forceHoverBehavior` / `forceClickBehavior` let composed or
69
+ * adapter charts (realtime, matrix cells, custom payload mappers)
70
+ * keep their chart-specific callback shape while sharing the same
71
+ * mobile predicates and touch-radius plumbing.
68
72
  *
69
73
  * Returning the props as a spreadable object means HOCs that don't
70
74
  * need either get an empty merge that adds nothing.
71
75
  */
72
76
  export declare function buildCustomBehaviorProps(input: {
73
77
  linkedHover?: LinkedHoverProp;
78
+ selection?: SelectionConfig;
74
79
  onObservation?: OnObservationCallback;
75
80
  onClick?: ((datum: Datum, position: {
76
81
  x: number;
77
82
  y: number;
78
83
  }) => void) | undefined;
84
+ hoverRadius?: number;
79
85
  hoverHighlight?: HoverHighlightMode;
86
+ forceHoverBehavior?: boolean;
87
+ forceClickBehavior?: boolean;
88
+ mobileInteraction?: ResolvedMobileInteractionConfig;
80
89
  customHoverBehavior: (d: Datum | null) => void;
81
- customClickBehavior: (d: Datum | null) => void;
90
+ customClickBehavior?: (d: Datum | null) => void;
82
91
  /**
83
92
  * Whether `linkedHover` participates in the click predicate. Most
84
93
  * XY / ordinal HOCs say yes — `linkedHover` cross-chart selection
@@ -91,6 +100,7 @@ export declare function buildCustomBehaviorProps(input: {
91
100
  }): {
92
101
  customHoverBehavior?: (d: Datum | null) => void;
93
102
  customClickBehavior?: (d: Datum | null) => void;
103
+ hoverRadius?: number;
94
104
  };
95
105
  /**
96
106
  * Resolve the `tooltipContent` prop for the frame.
@@ -0,0 +1,7 @@
1
+ import type { Datum } from "./datumTypes";
2
+ export declare function parseDateLikeString(value: string): number;
3
+ export declare function coerceDateLikeValue(value: unknown): number;
4
+ export declare function coerceTemporalStringRows(data: Datum[] | undefined, fieldName: string | undefined): {
5
+ data: Datum[] | undefined;
6
+ failed: boolean;
7
+ };
@@ -21,6 +21,8 @@ export interface TooltipFieldConfig {
21
21
  export declare function accessorName(acc: string | ((...args: any[]) => any)): string;
22
22
  export declare function formatVal(v: unknown): string;
23
23
  export declare function resolveValue(d: Datum, acc: string | ((d: Datum) => any)): unknown;
24
+ export { smartTooltipEntries } from "./smartTooltip";
25
+ export type { SmartTooltipEntry, SmartTooltipResult } from "./smartTooltip";
24
26
  /**
25
27
  * Build TooltipFieldConfig rows for a `band` prop config so the default
26
28
  * tooltip surfaces envelope values automatically. Reads from the
@@ -4,6 +4,8 @@ import type { OnObservationCallback } from "../../store/ObservationStore";
4
4
  import type { AnimateProp } from "../../stream/pipelineTransitionUtils";
5
5
  import type { Datum } from "./datumTypes";
6
6
  import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
7
+ import type { ResponsiveRule } from "./responsiveRules";
8
+ import type { MobileVisualizationContract } from "./auditMobileVisualization";
7
9
  /**
8
10
  * Selection consumption config — makes this chart react to a named selection
9
11
  */
@@ -44,7 +46,7 @@ export type LinkedBrushProp = string | {
44
46
  * Chart display mode — controls default chrome, size, and interaction.
45
47
  * User-provided props always override mode defaults.
46
48
  */
47
- export type ChartMode = "primary" | "context" | "sparkline";
49
+ export type ChartMode = "primary" | "context" | "sparkline" | "mobile";
48
50
  /**
49
51
  * Hover highlighting mode.
50
52
  * `true` and `"series"` both dim non-hovered series/categories; the string
@@ -52,6 +54,46 @@ export type ChartMode = "primary" | "context" | "sparkline";
52
54
  * more explicit per-series mode.
53
55
  */
54
56
  export type HoverHighlightMode = boolean | "series";
57
+ export type MobileClearSelectionBehavior = "backgroundTap" | "none";
58
+ export type MobileSnapBehavior = "nearestDatum" | "none";
59
+ export type MobileStandardControlKind = "brush" | "zoom" | "legend";
60
+ export type MobileStandardControlsMode = boolean | "all" | MobileStandardControlKind | MobileStandardControlKind[];
61
+ /**
62
+ * Touch-first interaction policy for phone-sized chart slots.
63
+ *
64
+ * This is intentionally shared by built-in charts, custom charts, audits, and
65
+ * generated/interoperable chart manifests so mobile behavior is not a
66
+ * second-class per-component escape hatch.
67
+ */
68
+ export interface MobileInteractionConfig {
69
+ /** Explicitly enable or disable mobile interaction for an object config. */
70
+ enabled?: boolean;
71
+ /** Convert tap/click on a datum into a persistent selection when possible. */
72
+ tapToSelect?: boolean;
73
+ /** Convert hover-linked detail into a tap-lockable state on touch devices. */
74
+ tapToLockTooltip?: boolean;
75
+ /** Clear the mobile interaction state when the frame reports a background tap. */
76
+ clearSelection?: MobileClearSelectionBehavior;
77
+ /** Comfortable touch target in CSS pixels. Defaults to 44 when mobile is active. */
78
+ targetSize?: number;
79
+ /** Hit-testing strategy for imprecise touch input. */
80
+ snap?: MobileSnapBehavior;
81
+ /** Preferred brush handle size in CSS pixels for mobile brush affordances. */
82
+ brushHandleSize?: number;
83
+ /** Signals that a brush/zoom/legend gesture has a standard-control alternative. */
84
+ standardControls?: MobileStandardControlsMode;
85
+ }
86
+ export type MobileInteractionProp = boolean | MobileInteractionConfig;
87
+ export interface ResolvedMobileInteractionConfig {
88
+ enabled: boolean;
89
+ tapToSelect: boolean;
90
+ tapToLockTooltip: boolean;
91
+ clearSelection: MobileClearSelectionBehavior;
92
+ targetSize: number;
93
+ snap: MobileSnapBehavior;
94
+ brushHandleSize: number;
95
+ standardControls: MobileStandardControlsMode;
96
+ }
55
97
  /**
56
98
  * Base props shared across all chart components
57
99
  */
@@ -72,6 +114,12 @@ export interface BaseChartProps {
72
114
  responsiveWidth?: boolean;
73
115
  /** Auto-match height to parent container (requires parent with explicit height). Default: false */
74
116
  responsiveHeight?: boolean;
117
+ /** Semantic responsive transformations keyed by measured chart slot, not CSS alone. */
118
+ responsiveRules?: ResponsiveRule[];
119
+ /** Phone/mobile contract consumed by audits, recipes, adapters, and agents. */
120
+ mobileSemantics?: MobileVisualizationContract;
121
+ /** Touch-first interaction policy for phone-sized chart slots. */
122
+ mobileInteraction?: MobileInteractionProp;
75
123
  /** CSS class name for the chart container */
76
124
  className?: string;
77
125
  /** Chart title displayed at the top */
@@ -1,7 +1,8 @@
1
1
  import type { Datum } from "./datumTypes";
2
2
  import { useChartLegendAndMargin, useLegendInteraction, DEFAULT_COLOR } from "./hooks";
3
3
  import type { LegendInteractionMode, LegendPosition } from "./hooks";
4
- import type { Accessor, SelectionConfig, LinkedHoverProp, HoverHighlightMode } from "./types";
4
+ import type { Accessor, SelectionConfig, LinkedHoverProp, HoverHighlightMode, MobileInteractionProp, ResolvedMobileInteractionConfig } from "./types";
5
+ import type { MobileVisualizationContract } from "./auditMobileVisualization";
5
6
  import type { OnObservationCallback } from "../../store/ObservationStore";
6
7
  import type { PartialMargin } from "../../types/marginType";
7
8
  import type { SelectionHookResult } from "./selectionUtils";
@@ -21,7 +22,7 @@ export interface ChartSetupInput {
21
22
  /** The color-by accessor (may be an "actual" colorBy derived from stackBy/groupBy/categoryAccessor) */
22
23
  colorBy: Accessor<string> | undefined;
23
24
  /** Color scheme name or custom array — undefined lets useColorScale consult the theme */
24
- colorScheme: string | string[] | undefined;
25
+ colorScheme: string | string[] | Record<string, string> | undefined;
25
26
  /** Legend interaction mode */
26
27
  legendInteraction: LegendInteractionMode | undefined;
27
28
  /** Legend position override */
@@ -58,12 +59,16 @@ export interface ChartSetupInput {
58
59
  }) => void;
59
60
  /** Dim non-hovered series on data mark hover */
60
61
  hoverHighlight?: HoverHighlightMode;
62
+ /** Touch-first interaction policy for phone-sized chart slots */
63
+ mobileInteraction?: MobileInteractionProp;
64
+ /** Mobile semantic contract for generated/audited/mobile-aware chart behavior */
65
+ mobileSemantics?: MobileVisualizationContract;
61
66
  /** Loading state */
62
67
  loading: boolean | undefined;
63
68
  /** Custom content rendered in place of the default skeleton while `loading` is true. */
64
69
  loadingContent?: ReactNode | false;
65
70
  /** Empty content override */
66
- emptyContent?: ReactNode;
71
+ emptyContent?: ReactNode | false;
67
72
  /** Resolved width from useChartMode */
68
73
  width: number;
69
74
  /** Resolved height from useChartMode */
@@ -95,6 +100,8 @@ export interface ChartSetupResult {
95
100
  customHoverBehavior: (d: Datum | null) => void;
96
101
  /** Custom click behavior callback for the frame */
97
102
  customClickBehavior: (d: Datum | null) => void;
103
+ /** Resolved touch-first policy for chart wrappers and stream-prop helpers */
104
+ mobileInteraction: ResolvedMobileInteractionConfig;
98
105
  /** Legend config (or undefined if no legend) */
99
106
  legend: ReturnType<typeof useChartLegendAndMargin>["legend"];
100
107
  /** Computed margin with legend-aware adjustments */
@@ -1,7 +1,9 @@
1
1
  import type { Ref, RefObject, ReactElement, ReactNode } from "react";
2
2
  import { useChartMode } from "./hooks";
3
3
  import { type ChartSetupResult } from "./useChartSetup";
4
- import type { ChartMode, SelectionConfig, LinkedHoverProp } from "./types";
4
+ import type { Accessor, ChartMode, SelectionConfig, LinkedHoverProp, MobileInteractionProp } from "./types";
5
+ import type { MobileVisualizationContract } from "./auditMobileVisualization";
6
+ import type { ResponsiveRule } from "./responsiveRules";
5
7
  import type { OnObservationCallback } from "../../store/ObservationStore";
6
8
  import { type PartialMargin, type MarginType } from "../../types/marginType";
7
9
  import type { Datum } from "./datumTypes";
@@ -17,7 +19,7 @@ interface ScaffoldOptions {
17
19
  /** Ref forwarded by the HOC. The hook binds the imperative handle internally. */
18
20
  imperativeRef: Ref<RealtimeFrameHandle> | undefined;
19
21
  /** Which `useFrameImperativeHandle` variant to bind. XY/ordinal frames share "xy". */
20
- imperativeVariant: "xy" | "network";
22
+ imperativeVariant: "xy" | "network" | "geo-points";
21
23
  /** Margin shorthand or sided form from the HOC's `margin` prop. */
22
24
  margin: PartialMargin | undefined;
23
25
  width?: number;
@@ -26,6 +28,9 @@ interface ScaffoldOptions {
26
28
  enableHover?: boolean;
27
29
  showLegend?: boolean;
28
30
  title?: string;
31
+ mobileInteraction?: MobileInteractionProp;
32
+ mobileSemantics?: MobileVisualizationContract;
33
+ responsiveRules?: ResponsiveRule[];
29
34
  mode?: ChartMode;
30
35
  xLabel?: string;
31
36
  yLabel?: string;
@@ -39,7 +44,7 @@ interface ScaffoldResult<TFrameHandle> {
39
44
  normalizedMargin: Partial<MarginType> | undefined;
40
45
  }
41
46
  /**
42
- * Scaffold shared by all three custom-layout HOCs: imperative-handle
47
+ * Scaffold shared by all four custom-layout HOCs: imperative-handle
43
48
  * binding, chart-mode resolution, margin normalization. Network HOCs
44
49
  * stop here; data-shaped HOCs layer `useChartSetup` on top via
45
50
  * `useCustomChartSetup`.
@@ -53,19 +58,23 @@ interface DataSetupOptions extends ScaffoldOptions {
53
58
  /** Whether the hover callback should unwrap the datum (ordinal/network = true, XY = false). */
54
59
  unwrapData: boolean;
55
60
  /** Color scheme threaded into useChartSetup's color resolution. */
56
- colorScheme?: string | string[];
61
+ colorScheme?: string | string[] | Record<string, string>;
62
+ /** Semantic color accessor for legend, linked-hover series mode, and frame color config. */
63
+ colorBy?: Accessor<string>;
57
64
  /** Pass-through chart-setup inputs. */
58
65
  selection?: SelectionConfig;
59
66
  linkedHover?: LinkedHoverProp;
60
67
  onObservation?: OnObservationCallback;
61
- onClick?: (datum: any, ev: {
68
+ onClick?: (datum: Datum, ev: {
62
69
  x: number;
63
70
  y: number;
64
71
  }) => void;
72
+ mobileInteraction?: MobileInteractionProp;
73
+ mobileSemantics?: MobileVisualizationContract;
65
74
  chartId?: string;
66
75
  loading?: boolean;
67
76
  loadingContent?: ReactNode | false;
68
- emptyContent?: ReactNode;
77
+ emptyContent?: ReactNode | false;
69
78
  }
70
79
  interface DataSetupResult<TFrameHandle> extends ScaffoldResult<TFrameHandle> {
71
80
  /** Sparse-filtered copy of the input data array. */
@@ -1,6 +1,7 @@
1
1
  import type { ReactNode, ReactElement } from "react";
2
2
  import type { Datum } from "./datumTypes";
3
- import type { Accessor, ChartAccessor, SelectionConfig, LinkedHoverProp } from "./types";
3
+ import type { Accessor, ChartAccessor, SelectionConfig, LinkedHoverProp, MobileInteractionProp, ResolvedMobileInteractionConfig } from "./types";
4
+ import type { MobileVisualizationContract } from "./auditMobileVisualization";
4
5
  import type { OnObservationCallback } from "../../store/ObservationStore";
5
6
  import type { PartialMargin, MarginType } from "../../types/marginType";
6
7
  import { useChartSelection, useChartLegendAndMargin } from "./hooks";
@@ -23,7 +24,7 @@ export interface NetworkChartSetupInput<TNode extends Datum = Datum, TEdge exten
23
24
  /** Edge target accessor (used by `inferNodesFromEdges`). */
24
25
  targetAccessor?: ChartAccessor<TEdge, string>;
25
26
  colorBy?: Accessor<string>;
26
- colorScheme?: string | string[];
27
+ colorScheme?: string | string[] | Record<string, string>;
27
28
  /** `undefined` defaults to "auto" (on when colorBy is set). */
28
29
  showLegend?: boolean;
29
30
  legendPosition?: LegendPosition;
@@ -35,6 +36,8 @@ export interface NetworkChartSetupInput<TNode extends Datum = Datum, TEdge exten
35
36
  x: number;
36
37
  y: number;
37
38
  }) => void;
39
+ mobileInteraction?: MobileInteractionProp;
40
+ mobileSemantics?: MobileVisualizationContract;
38
41
  /** Used by useChartSelection for chart-type-stamped observation events. */
39
42
  chartType: string;
40
43
  chartId?: string;
@@ -94,6 +97,7 @@ export interface NetworkChartSetupResult {
94
97
  legend: ReturnType<typeof useChartLegendAndMargin>["legend"];
95
98
  margin: MarginType;
96
99
  legendPosition: LegendPosition;
100
+ mobileInteraction: ResolvedMobileInteractionConfig;
97
101
  customHoverBehavior: ReturnType<typeof useChartSelection>["customHoverBehavior"];
98
102
  customClickBehavior: ReturnType<typeof useChartSelection>["customClickBehavior"];
99
103
  /**
@@ -12,7 +12,7 @@ export interface OrdinalPieceStyleOptions {
12
12
  /** Theme categorical palette (from useThemeCategorical). */
13
13
  themeCategorical: string[] | undefined;
14
14
  /** colorScheme prop — array or string scheme name. */
15
- colorScheme?: string | string[];
15
+ colorScheme?: string | string[] | Record<string, string>;
16
16
  /** Stable category-index map for default-fill cycling. */
17
17
  categoryIndexMap: Map<string, number>;
18
18
  /** User-supplied `frameProps.pieceStyle`. Accepts the looser
@@ -30,7 +30,7 @@ export declare function useStreamingLegend({ isPushMode, colorBy, colorScheme, s
30
30
  /** The color-by accessor (may be derived from stackBy/groupBy/categoryAccessor) */
31
31
  colorBy: Accessor<string> | undefined;
32
32
  /** Color scheme name or custom array — undefined lets useColorScale consult the theme */
33
- colorScheme: string | string[] | undefined;
33
+ colorScheme: string | string[] | Record<string, string> | undefined;
34
34
  /** Whether legend is requested */
35
35
  showLegend: boolean | undefined;
36
36
  /** Legend position */