semiotic 3.7.5 → 3.8.1

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 (575) hide show
  1. package/CLAUDE.md +63 -18
  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 +1741 -163
  7. package/ai/examples.md +174 -0
  8. package/ai/schema.json +2733 -536
  9. package/ai/surface-manifest.json +201 -0
  10. package/ai/system-prompt.md +20 -4
  11. package/dist/__tests__/scenarios/mcpProtocolTypes.d.ts +20 -0
  12. package/dist/components/AccessibleNavTree.d.ts +7 -1
  13. package/dist/components/CategoryColors.d.ts +1 -1
  14. package/dist/components/ChartContainer.d.ts +91 -0
  15. package/dist/components/ChartGrid.d.ts +11 -1
  16. package/dist/components/CircularBrush.d.ts +61 -0
  17. package/dist/components/ContextLayout.d.ts +5 -1
  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 +26 -1
  29. package/dist/components/ai/chartClinic.d.ts +91 -0
  30. package/dist/components/ai/chartClinicMetadata.generated.d.ts +15 -0
  31. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  32. package/dist/components/ai/chartRecipes.d.ts +278 -0
  33. package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
  34. package/dist/components/ai/describeChart.d.ts +7 -0
  35. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  36. package/dist/components/ai/generativeChart.d.ts +28 -3
  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/ai/useNavigationSync.d.ts +17 -2
  47. package/dist/components/chartContainerMobile.d.ts +9 -0
  48. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  49. package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
  50. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  51. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  52. package/dist/components/charts/geo/ChoroplethMap.d.ts +19 -2
  53. package/dist/components/charts/geo/DistanceCartogram.d.ts +15 -3
  54. package/dist/components/charts/geo/FlowMap.d.ts +11 -7
  55. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +15 -3
  56. package/dist/components/charts/geo/index.d.ts +2 -0
  57. package/dist/components/charts/index.d.ts +35 -1
  58. package/dist/components/charts/network/ChordDiagram.d.ts +10 -2
  59. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  60. package/dist/components/charts/network/ForceDirectedGraph.d.ts +26 -5
  61. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  62. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  63. package/dist/components/charts/network/SankeyDiagram.d.ts +10 -2
  64. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  65. package/dist/components/charts/network/Treemap.d.ts +1 -1
  66. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  67. package/dist/components/charts/ordinal/BarChart.d.ts +22 -1
  68. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  69. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  70. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  71. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  72. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +12 -1
  73. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  74. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  75. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  76. package/dist/components/charts/ordinal/StackedBarChart.d.ts +12 -1
  77. package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
  78. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  79. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  80. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  81. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  82. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +54 -0
  83. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  84. package/dist/components/charts/physics/EventDropChart.d.ts +60 -0
  85. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  86. package/dist/components/charts/physics/GaltonBoardChart.d.ts +74 -0
  87. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  88. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  89. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  90. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  91. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +99 -0
  92. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  93. package/dist/components/charts/physics/PhysicsPileChart.d.ts +60 -0
  94. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  95. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  96. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  97. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  98. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  99. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  100. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  101. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  102. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  103. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  104. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  105. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  106. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  107. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  108. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  109. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  110. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  111. package/dist/components/charts/physics/physicsChartShared.d.ts +57 -0
  112. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  113. package/dist/components/charts/physics/physicsCustomLayout.d.ts +32 -0
  114. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  115. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  116. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  117. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  118. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  119. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  120. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  121. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  122. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
  123. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  124. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  125. package/dist/components/charts/shared/AnnotationLabel.d.ts +88 -0
  126. package/dist/components/charts/shared/annotationActivation.d.ts +35 -0
  127. package/dist/components/charts/shared/annotationLabelLayout.d.ts +5 -0
  128. package/dist/components/charts/shared/annotationRules.d.ts +2 -1
  129. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  130. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  131. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  132. package/dist/components/charts/shared/chartSelectionUtils.d.ts +4 -0
  133. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  134. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  135. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  136. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  137. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  138. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  139. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  140. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  141. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  142. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  143. package/dist/components/charts/shared/colorUtils.d.ts +16 -1
  144. package/dist/components/charts/shared/datumTypes.d.ts +2 -0
  145. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +6 -0
  146. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  147. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  148. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  149. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  150. package/dist/components/charts/shared/formatUtils.d.ts +3 -3
  151. package/dist/components/charts/shared/hatchFill.d.ts +87 -0
  152. package/dist/components/charts/shared/hooks.d.ts +34 -10
  153. package/dist/components/charts/shared/knownChartComponents.d.ts +9 -0
  154. package/dist/components/charts/shared/leastSquaresRegression.d.ts +16 -0
  155. package/dist/components/charts/shared/mergeShapeStyle.d.ts +3 -2
  156. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  157. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  158. package/dist/components/charts/shared/semanticInteractions.d.ts +42 -0
  159. package/dist/components/charts/shared/sparseArray.d.ts +1 -1
  160. package/dist/components/charts/shared/streamPropsHelpers.d.ts +17 -5
  161. package/dist/components/charts/shared/styleRules.d.ts +205 -0
  162. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  163. package/dist/components/charts/shared/tooltipUtils.d.ts +22 -9
  164. package/dist/components/charts/shared/types.d.ts +58 -7
  165. package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +16 -2
  166. package/dist/components/charts/shared/useChartSetup.d.ts +11 -4
  167. package/dist/components/charts/shared/useCustomChartSetup.d.ts +17 -5
  168. package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -2
  169. package/dist/components/charts/shared/useLikertAggregation.d.ts +4 -4
  170. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  171. package/dist/components/charts/shared/useOrdinalBrush.d.ts +2 -1
  172. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +25 -2
  173. package/dist/components/charts/shared/useStreamingLegend.d.ts +2 -2
  174. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  175. package/dist/components/charts/shared/useXYLineStyle.d.ts +10 -0
  176. package/dist/components/charts/shared/useXYPointStyle.d.ts +19 -1
  177. package/dist/components/charts/shared/validateChartData.d.ts +7 -5
  178. package/dist/components/charts/shared/validationMap.d.ts +7 -9
  179. package/dist/components/charts/shared/validationMap.generated.d.ts +6 -0
  180. package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
  181. package/dist/components/charts/value/targetPresentation.d.ts +22 -0
  182. package/dist/components/charts/value/types.d.ts +5 -6
  183. package/dist/components/charts/xy/AreaChart.d.ts +9 -1
  184. package/dist/components/charts/xy/BubbleChart.d.ts +10 -1
  185. package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -0
  186. package/dist/components/charts/xy/DifferenceChart.d.ts +1 -52
  187. package/dist/components/charts/xy/Heatmap.d.ts +2 -2
  188. package/dist/components/charts/xy/LineChart.d.ts +12 -1
  189. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  190. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  191. package/dist/components/charts/xy/QuadrantChart.d.ts +8 -1
  192. package/dist/components/charts/xy/Scatterplot.d.ts +11 -1
  193. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  194. package/dist/components/charts/xy/StackedAreaChart.d.ts +16 -4
  195. package/dist/components/charts/xy/differenceSegments.d.ts +49 -0
  196. package/dist/components/charts/xy/scatterplotMatrixInteractionTypes.d.ts +12 -0
  197. package/dist/components/controls/SentenceFilter.d.ts +97 -0
  198. package/dist/components/controls/controlAudit.d.ts +24 -0
  199. package/dist/components/controls/controlContract.d.ts +57 -0
  200. package/dist/components/data/fromFlintChart.d.ts +74 -0
  201. package/dist/components/data/fromVegaLite.d.ts +46 -9
  202. package/dist/components/data/portability/index.d.ts +6 -3
  203. package/dist/components/data/portability/result.d.ts +52 -0
  204. package/dist/components/data/portability/spec.d.ts +31 -0
  205. package/dist/components/data/portability/vegaLite.d.ts +24 -6
  206. package/dist/components/export/chartConfig.d.ts +11 -0
  207. package/dist/components/realtime/types.d.ts +11 -0
  208. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  209. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  210. package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
  211. package/dist/components/recipes/cyclical.d.ts +39 -0
  212. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  213. package/dist/components/recipes/forceLayout.d.ts +48 -0
  214. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  215. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  216. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  217. package/dist/components/recipes/gofishIR.d.ts +178 -132
  218. package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
  219. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  220. package/dist/components/recipes/intervals.d.ts +80 -0
  221. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  222. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  223. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  224. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  225. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  226. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  227. package/dist/components/recipes/physics.d.ts +122 -0
  228. package/dist/components/recipes/physicsReference.d.ts +102 -0
  229. package/dist/components/recipes/processAggregates.d.ts +32 -0
  230. package/dist/components/recipes/processChrome.d.ts +67 -0
  231. package/dist/components/recipes/processJourney.d.ts +54 -0
  232. package/dist/components/recipes/processPhysics.d.ts +300 -0
  233. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  234. package/dist/components/recipes/radialCoords.d.ts +69 -0
  235. package/dist/components/recipes/random.d.ts +2 -0
  236. package/dist/components/recipes/recipeChrome.d.ts +91 -0
  237. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  238. package/dist/components/recipes/recipeLegend.d.ts +53 -1
  239. package/dist/components/recipes/recipeUtils.d.ts +52 -0
  240. package/dist/components/recipes/runs.d.ts +59 -0
  241. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  242. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  243. package/dist/components/recipes/unitize.d.ts +108 -0
  244. package/dist/components/recipes/vector.d.ts +28 -0
  245. package/dist/components/recipes/waffle.d.ts +43 -0
  246. package/dist/components/rough/createRoughRenderMode.d.ts +46 -0
  247. package/dist/components/semiotic-ai-core.d.ts +47 -0
  248. package/dist/components/semiotic-ai.d.ts +53 -9
  249. package/dist/components/semiotic-controls.d.ts +20 -0
  250. package/dist/components/semiotic-experimental.d.ts +38 -9
  251. package/dist/components/semiotic-geo.d.ts +15 -0
  252. package/dist/components/semiotic-network.d.ts +15 -0
  253. package/dist/components/semiotic-ordinal.d.ts +14 -0
  254. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  255. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  256. package/dist/components/semiotic-physics.d.ts +60 -0
  257. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  258. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  259. package/dist/components/semiotic-realtime.d.ts +4 -30
  260. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  261. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  262. package/dist/components/semiotic-recipes.d.ts +4 -43
  263. package/dist/components/semiotic-rough.d.ts +4 -0
  264. package/dist/components/semiotic-server-edge.d.ts +8 -0
  265. package/dist/components/semiotic-server-node.d.ts +5 -0
  266. package/dist/components/semiotic-server.d.ts +2 -2
  267. package/dist/components/semiotic-themes-core.d.ts +53 -0
  268. package/dist/components/semiotic-themes-react.d.ts +4 -0
  269. package/dist/components/semiotic-themes.d.ts +6 -76
  270. package/dist/components/semiotic-utils-core.d.ts +50 -0
  271. package/dist/components/semiotic-utils-react.d.ts +5 -0
  272. package/dist/components/semiotic-utils.d.ts +3 -39
  273. package/dist/components/semiotic-xy.d.ts +12 -0
  274. package/dist/components/semiotic.d.ts +44 -8
  275. package/dist/components/server/animatedGif.d.ts +36 -0
  276. package/dist/components/server/optionalImageTypes.d.ts +37 -0
  277. package/dist/components/server/renderEvidence.d.ts +1 -1
  278. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  279. package/dist/components/server/serverChartConfigShared.d.ts +21 -0
  280. package/dist/components/server/serverChartConfigs.d.ts +22 -12
  281. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  282. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  283. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  284. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  285. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  286. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  287. package/dist/components/server/staticAnnotations.d.ts +6 -3
  288. package/dist/components/server/staticGeo.d.ts +4 -0
  289. package/dist/components/server/staticLegend.d.ts +2 -2
  290. package/dist/components/server/staticNetwork.d.ts +8 -0
  291. package/dist/components/server/staticOrdinal.d.ts +11 -0
  292. package/dist/components/server/staticPhysics.d.ts +3 -0
  293. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  294. package/dist/components/server/staticXY.d.ts +4 -0
  295. package/dist/components/store/ObservationStore.d.ts +23 -2
  296. package/dist/components/store/themeSerialization.d.ts +32 -0
  297. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  298. package/dist/components/stream/AccessibleDataTable.d.ts +7 -23
  299. package/dist/components/stream/AriaLiveTooltip.d.ts +9 -0
  300. package/dist/components/stream/CanvasHitTester.d.ts +4 -4
  301. package/dist/components/stream/DataSourceAdapter.d.ts +1 -1
  302. package/dist/components/stream/FocusRing.d.ts +4 -2
  303. package/dist/components/stream/FrameRuntime.d.ts +57 -0
  304. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  305. package/dist/components/stream/GeoParticlePool.d.ts +1 -1
  306. package/dist/components/stream/GeoPipelineStore.d.ts +62 -3
  307. package/dist/components/stream/GeoSVGOverlay.d.ts +64 -0
  308. package/dist/components/stream/NetworkCanvasHitTester.d.ts +2 -1
  309. package/dist/components/stream/NetworkPipelineStore.d.ts +44 -36
  310. package/dist/components/stream/NetworkSSRFrame.d.ts +17 -0
  311. package/dist/components/stream/NetworkSVGOverlay.d.ts +10 -1
  312. package/dist/components/stream/OrdinalCanvasHitTester.d.ts +2 -2
  313. package/dist/components/stream/OrdinalPipelineStore.d.ts +55 -11
  314. package/dist/components/stream/OrdinalSVGOverlay.d.ts +9 -1
  315. package/dist/components/stream/OrdinalStyleResolver.d.ts +12 -0
  316. package/dist/components/stream/ParticlePool.d.ts +1 -1
  317. package/dist/components/stream/PipelineStore.d.ts +81 -174
  318. package/dist/components/stream/SVGOverlay.d.ts +6 -0
  319. package/dist/components/stream/SceneGraph.d.ts +12 -4
  320. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  321. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  322. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  323. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  324. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  325. package/dist/components/stream/accessorUtils.d.ts +25 -12
  326. package/dist/components/stream/annotationAccessorResolver.d.ts +2 -2
  327. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  328. package/dist/components/stream/canvasBackground.d.ts +24 -0
  329. package/dist/components/stream/canvasSetup.d.ts +4 -1
  330. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  331. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  332. package/dist/components/stream/frameGraphics.d.ts +4 -0
  333. package/dist/components/stream/frameKeyboardNavigation.d.ts +45 -0
  334. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  335. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  336. package/dist/components/stream/geoCartogram.d.ts +17 -0
  337. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  338. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  339. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  340. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  341. package/dist/components/stream/geoPipelineUpdateResults.d.ts +34 -0
  342. package/dist/components/stream/geoSceneBuilder.d.ts +16 -0
  343. package/dist/components/stream/geoTypes.d.ts +97 -15
  344. package/dist/components/stream/glyphDef.d.ts +98 -0
  345. package/dist/components/stream/hitTarget.d.ts +170 -0
  346. package/dist/components/stream/hitTestUtils.d.ts +2 -2
  347. package/dist/components/stream/hoverUtils.d.ts +7 -2
  348. package/dist/components/stream/keyboardNav.d.ts +4 -1
  349. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  350. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +58 -0
  351. package/dist/components/stream/layouts/hierarchyUtils.d.ts +2 -2
  352. package/dist/components/stream/networkBezier.d.ts +10 -0
  353. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  354. package/dist/components/stream/networkCustomLayoutRunner.d.ts +23 -0
  355. package/dist/components/stream/networkCustomRestyle.d.ts +15 -0
  356. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  357. package/dist/components/stream/networkFrameAnimation.d.ts +7 -0
  358. package/dist/components/stream/networkFrameHandleTypes.d.ts +39 -0
  359. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  360. package/dist/components/stream/networkFrameObservations.d.ts +15 -0
  361. package/dist/components/stream/networkFramePaint.d.ts +52 -0
  362. package/dist/components/stream/networkInteractionTypes.d.ts +26 -0
  363. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  364. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  365. package/dist/components/stream/networkPipelineUpdateResults.d.ts +38 -0
  366. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  367. package/dist/components/stream/networkTypes.d.ts +103 -51
  368. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  369. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  370. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  371. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  372. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +31 -0
  373. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  374. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  375. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  376. package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -2
  377. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  378. package/dist/components/stream/ordinalTypes.d.ts +68 -9
  379. package/dist/components/stream/paintNeeds.d.ts +31 -0
  380. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  381. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  382. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  383. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  384. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  385. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  386. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  387. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  388. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  389. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  390. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  391. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  392. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  393. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  394. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +86 -0
  395. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  396. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +78 -0
  397. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  398. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  399. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  400. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  401. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  402. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  403. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  404. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  405. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  406. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  407. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +317 -0
  408. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  409. package/dist/components/stream/physics/physicsFrameObservations.d.ts +19 -0
  410. package/dist/components/stream/physics/physicsFrameSetup.d.ts +4 -0
  411. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  412. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  413. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  414. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +27 -0
  415. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  416. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  417. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +18 -0
  418. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  419. package/dist/components/stream/pipelineConfig.d.ts +179 -0
  420. package/dist/components/stream/pipelineDecay.d.ts +21 -3
  421. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  422. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  423. package/dist/components/stream/pipelinePulse.d.ts +17 -3
  424. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  425. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  426. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +33 -0
  427. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  428. package/dist/components/stream/pipelineTransitions.d.ts +3 -1
  429. package/dist/components/stream/pipelineUpdateContract.d.ts +69 -0
  430. package/dist/components/stream/pipelineUpdateStore.d.ts +21 -0
  431. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  432. package/dist/components/stream/renderBackend.d.ts +27 -0
  433. package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +15 -1
  434. package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +3 -2
  435. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  436. package/dist/components/stream/renderers/networkParticleRenderer.d.ts +1 -1
  437. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  438. package/dist/components/stream/sceneRenderBackendTypes.d.ts +28 -0
  439. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +45 -0
  440. package/dist/components/stream/streamSemanticTypes.d.ts +16 -0
  441. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  442. package/dist/components/stream/streamThemeTypes.d.ts +14 -0
  443. package/dist/components/stream/svgOverlayUtils.d.ts +10 -0
  444. package/dist/components/stream/test-utils/frameScheduler.d.ts +12 -0
  445. package/dist/components/stream/test-utils/revisionConsumption.d.ts +13 -0
  446. package/dist/components/stream/titleLayout.d.ts +31 -0
  447. package/dist/components/stream/types.d.ts +165 -72
  448. package/dist/components/stream/useCanvasFrameHost.d.ts +71 -0
  449. package/dist/components/stream/useFrame.d.ts +44 -2
  450. package/dist/components/stream/useHydration.d.ts +6 -0
  451. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  452. package/dist/components/stream/useSemanticFrameInteractions.d.ts +22 -0
  453. package/dist/components/stream/useUpdateResultSnapshot.d.ts +7 -0
  454. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  455. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  456. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  457. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  458. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  459. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  460. package/dist/components/stream/xyFrameAxisTypes.d.ts +50 -0
  461. package/dist/components/stream/xySceneBuilders/types.d.ts +10 -9
  462. package/dist/controls.min.js +2 -0
  463. package/dist/controls.module.min.js +2 -0
  464. package/dist/forceLayoutWorker.js +1 -0
  465. package/dist/geo.min.js +1 -1
  466. package/dist/geo.module.min.js +1 -1
  467. package/dist/network.min.js +1 -1
  468. package/dist/network.module.min.js +1 -1
  469. package/dist/ordinal.min.js +1 -1
  470. package/dist/ordinal.module.min.js +1 -1
  471. package/dist/physics-matter.min.js +1 -0
  472. package/dist/physics-matter.module.min.js +1 -0
  473. package/dist/physics-rapier.min.js +1 -0
  474. package/dist/physics-rapier.module.min.js +1 -0
  475. package/dist/physics.min.js +2 -0
  476. package/dist/physics.module.min.js +2 -0
  477. package/dist/physicsWorker.js +1 -0
  478. package/dist/realtime.min.js +1 -1
  479. package/dist/realtime.module.min.js +1 -1
  480. package/dist/rough.min.js +1 -0
  481. package/dist/rough.module.min.js +1 -0
  482. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  483. package/dist/semiotic-ai-core.d.ts +47 -0
  484. package/dist/semiotic-ai-core.min.js +1 -0
  485. package/dist/semiotic-ai-core.module.min.js +1 -0
  486. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  487. package/dist/semiotic-ai.d.ts +53 -9
  488. package/dist/semiotic-ai.min.js +1 -1
  489. package/dist/semiotic-ai.module.min.js +1 -1
  490. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  491. package/dist/semiotic-controls.d.ts +20 -0
  492. package/dist/semiotic-data.min.js +1 -1
  493. package/dist/semiotic-data.module.min.js +1 -1
  494. package/dist/semiotic-experimental.d.ts +38 -9
  495. package/dist/semiotic-experimental.min.js +1 -1
  496. package/dist/semiotic-experimental.module.min.js +1 -1
  497. package/dist/semiotic-geo.d.ts +15 -0
  498. package/dist/semiotic-network.d.ts +15 -0
  499. package/dist/semiotic-ordinal.d.ts +14 -0
  500. package/dist/semiotic-physics-matter.d.ts +10 -0
  501. package/dist/semiotic-physics-rapier.d.ts +9 -0
  502. package/dist/semiotic-physics.d.ts +60 -0
  503. package/dist/semiotic-realtime-core.d.ts +34 -0
  504. package/dist/semiotic-realtime-core.min.js +1 -0
  505. package/dist/semiotic-realtime-core.module.min.js +1 -0
  506. package/dist/semiotic-realtime-react.d.ts +10 -0
  507. package/dist/semiotic-realtime-react.min.js +2 -0
  508. package/dist/semiotic-realtime-react.module.min.js +2 -0
  509. package/dist/semiotic-realtime.d.ts +4 -30
  510. package/dist/semiotic-recipes-core.d.ts +92 -0
  511. package/dist/semiotic-recipes-core.min.js +1 -0
  512. package/dist/semiotic-recipes-core.module.min.js +1 -0
  513. package/dist/semiotic-recipes-react.d.ts +7 -0
  514. package/dist/semiotic-recipes-react.min.js +2 -0
  515. package/dist/semiotic-recipes-react.module.min.js +2 -0
  516. package/dist/semiotic-recipes.d.ts +4 -43
  517. package/dist/semiotic-recipes.min.js +1 -1
  518. package/dist/semiotic-recipes.module.min.js +1 -1
  519. package/dist/semiotic-rough.d.ts +4 -0
  520. package/dist/semiotic-server-edge.d.ts +8 -0
  521. package/dist/semiotic-server-edge.min.js +1 -0
  522. package/dist/semiotic-server-edge.module.min.js +1 -0
  523. package/dist/semiotic-server-node.d.ts +5 -0
  524. package/dist/semiotic-server-node.min.js +1 -0
  525. package/dist/semiotic-server-node.module.min.js +1 -0
  526. package/dist/semiotic-server.d.ts +2 -2
  527. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  528. package/dist/semiotic-themes-core.d.ts +53 -0
  529. package/dist/semiotic-themes-core.min.js +1 -0
  530. package/dist/semiotic-themes-core.module.min.js +1 -0
  531. package/dist/semiotic-themes-react.d.ts +4 -0
  532. package/dist/semiotic-themes-react.min.js +2 -0
  533. package/dist/semiotic-themes-react.module.min.js +2 -0
  534. package/dist/semiotic-themes.d.ts +6 -76
  535. package/dist/semiotic-themes.min.js +1 -2
  536. package/dist/semiotic-themes.module.min.js +1 -2
  537. package/dist/semiotic-utils-core.d.ts +50 -0
  538. package/dist/semiotic-utils-core.min.js +1 -0
  539. package/dist/semiotic-utils-core.module.min.js +1 -0
  540. package/dist/semiotic-utils-react.d.ts +5 -0
  541. package/dist/semiotic-utils-react.min.js +2 -0
  542. package/dist/semiotic-utils-react.module.min.js +2 -0
  543. package/dist/semiotic-utils.d.ts +3 -39
  544. package/dist/semiotic-utils.min.js +1 -2
  545. package/dist/semiotic-utils.module.min.js +1 -2
  546. package/dist/semiotic-value.min.js +1 -1
  547. package/dist/semiotic-value.module.min.js +1 -1
  548. package/dist/semiotic-xy.d.ts +12 -0
  549. package/dist/semiotic.d.ts +44 -8
  550. package/dist/semiotic.min.js +1 -1
  551. package/dist/semiotic.module.min.js +1 -1
  552. package/dist/server.min.js +1 -1
  553. package/dist/server.module.min.js +1 -1
  554. package/dist/test-utils/capturedFrameProps.d.ts +67 -0
  555. package/dist/test-utils/frameMock.d.ts +12 -9
  556. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  557. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  558. package/dist/xy.min.js +1 -1
  559. package/dist/xy.module.min.js +1 -1
  560. package/package.json +259 -88
  561. package/spec/README.md +152 -0
  562. package/spec/bindings/README.md +35 -0
  563. package/spec/bindings/vega-lite.mjs +112 -0
  564. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  565. package/spec/v0.1/audience-profile.schema.json +67 -0
  566. package/spec/v0.1/chart-capability.schema.json +186 -0
  567. package/dist/components/recipes/gofish.d.ts +0 -207
  568. package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
  569. package/dist/components/recipes/gofishLambdas.d.ts +0 -145
  570. package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
  571. package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
  572. package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
  573. package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
  574. package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
  575. package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
@@ -1,16 +1,11 @@
1
1
  import type { Datum } from "./datumTypes";
2
- export interface Diagnosis {
3
- severity: "error" | "warning";
4
- code: string;
5
- message: string;
6
- fix: string;
7
- }
8
- export interface DiagnosisResult {
9
- ok: boolean;
10
- diagnoses: Diagnosis[];
11
- }
12
- /** WCAG contrast ratio between two hex colors. Exported for reuse by the
13
- * accessibility audit (auditAccessibility.ts) — single source of truth for the
14
- * contrast math. Returns null if either color isn't a parseable hex. */
15
- export declare function contrastRatio(hex1: string, hex2: string): number | null;
2
+ import type { DiagnosisResult } from "./diagnoseTypes";
3
+ export { contrastRatio } from "./colorContrast";
4
+ export type { Diagnosis, DiagnosisResult } from "./diagnoseTypes";
5
+ /**
6
+ * Run anti-pattern diagnostics on a Semiotic chart configuration.
7
+ *
8
+ * Returns actionable diagnoses with severity, code, message, and fix instruction.
9
+ * Runs validateProps internally — validation errors are included as diagnoses.
10
+ */
16
11
  export declare function diagnoseConfig(componentName: string, props: Datum): DiagnosisResult;
@@ -0,0 +1,9 @@
1
+ import type { Datum } from "./datumTypes";
2
+ import type { Diagnosis } from "./diagnoseTypes";
3
+ export declare function checkInvertedAxis(_component: string, props: Datum, out: Diagnosis[]): void;
4
+ export declare function checkDualAxisUnlabeled(component: string, props: Datum, out: Diagnosis[]): void;
5
+ export declare function checkCherryPickedWindow(component: string, props: Datum, out: Diagnosis[]): void;
6
+ export declare function checkPartToWholeNegative(component: string, props: Datum, out: Diagnosis[]): void;
7
+ export declare function checkNonPassingCurve(component: string, props: Datum, out: Diagnosis[]): void;
8
+ export declare function checkExtremeAspectRatio(component: string, props: Datum, out: Diagnosis[]): void;
9
+ export declare function checkPieTooManySlices(component: string, props: Datum, out: Diagnosis[]): void;
@@ -0,0 +1,3 @@
1
+ import type { Datum } from "./datumTypes";
2
+ import type { Diagnosis } from "./diagnoseTypes";
3
+ export declare function checkPhysicsConfig(component: string, props: Datum, out: Diagnosis[]): void;
@@ -0,0 +1,10 @@
1
+ export interface Diagnosis {
2
+ severity: "error" | "warning";
3
+ code: string;
4
+ message: string;
5
+ fix: string;
6
+ }
7
+ export interface DiagnosisResult {
8
+ ok: boolean;
9
+ diagnoses: Diagnosis[];
10
+ }
@@ -58,7 +58,7 @@ export declare function formatAxis(type?: "number" | "date" | "percent" | "curre
58
58
  * )
59
59
  * ```
60
60
  */
61
- export declare function createTooltip(fields: string[], formatters?: Record<string, (v: any) => string>, labels?: Record<string, string>): (d: Datum) => React.JSX.Element;
61
+ export declare function createTooltip(fields: string[], formatters?: Record<string, (value: string | number | Date) => string>, labels?: Record<string, string>): (d: Datum) => React.JSX.Element;
62
62
  /**
63
63
  * Formats large numbers with K/M/B suffixes
64
64
  *
@@ -85,7 +85,7 @@ export declare function formatLargeNumber(value: number, decimals?: number): str
85
85
  *
86
86
  * Used as the default axis tickFormat when no explicit format is provided.
87
87
  */
88
- export declare function smartTickFormat(value: any): string;
88
+ export declare function smartTickFormat(value: string | number | Date | null | undefined): string;
89
89
  type TimeGranularity = "seconds" | "minutes" | "hours" | "days" | "months" | "years";
90
90
  /**
91
91
  * Creates a hierarchical time axis formatter.
@@ -112,7 +112,7 @@ type TimeGranularity = "seconds" | "minutes" | "hours" | "days" | "months" | "ye
112
112
  * <LineChart data={ts} xFormat={adaptiveTimeTicks("minutes")} />
113
113
  * ```
114
114
  */
115
- export declare function adaptiveTimeTicks(granularity?: TimeGranularity): (value: any, index?: number, allTicks?: number[]) => string;
115
+ export declare function adaptiveTimeTicks(granularity?: TimeGranularity): (value: string | number | Date, index?: number, allTicks?: number[]) => string;
116
116
  /**
117
117
  * Truncates text to specified length with ellipsis
118
118
  *
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Declarative hatch-fill descriptor — a single value that renders as a
3
+ * diagonal-line pattern on BOTH rendering backends.
4
+ *
5
+ * The library historically had two disjoint hatch primitives: a canvas
6
+ * `createHatchPattern` (→ `CanvasPattern`) and an SVG `<pattern>` builder
7
+ * (`hatchFill` recipe / `createSVGHatchPattern`). A caller had to know
8
+ * which medium they were painting into and hand-produce the right thing —
9
+ * which is why a `CanvasPattern` returned from a `pieceStyle` silently
10
+ * collapses to a solid color in SSR (`svgFill` drops non-string fills).
11
+ *
12
+ * `HatchFill` closes that gap: it is a plain, serializable descriptor that
13
+ * can be set directly as `style.fill`. The canvas renderer resolves it to a
14
+ * `CanvasPattern` (`resolveHatchCanvasPattern`); the SVG serializer resolves
15
+ * it to a `<pattern>` def + `url(#id)` (`hatchPatternDef` / `hatchFillId`).
16
+ * One declaration, both mediums — so a bar hatched via a style rule looks
17
+ * identical whether it is drawn to canvas in the browser or serialized to
18
+ * SVG on the server.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <BarChart
23
+ * styleRules={[
24
+ * { when: { gt: 10 }, style: { fill: { type: "hatch", background: "#ffd166", stroke: "#e0a92a" } } },
25
+ * ]}
26
+ * />
27
+ * ```
28
+ */
29
+ import * as React from "react";
30
+ /**
31
+ * A declarative diagonal-hatch fill. Assign it anywhere a `style.fill`
32
+ * is accepted (`pieceStyle`, `styleRules`, annotation region `fill`).
33
+ * Backend-agnostic: resolved to a `CanvasPattern` for canvas and an SVG
34
+ * `<pattern>` for SSR / the SVG overlay.
35
+ */
36
+ export interface HatchFill {
37
+ /** Discriminator — marks this fill as a hatch descriptor. */
38
+ type: "hatch";
39
+ /** Tile background color painted under the lines. @default "transparent" */
40
+ background?: string;
41
+ /** Color of the diagonal lines. @default "#000" */
42
+ stroke?: string;
43
+ /** Width of the diagonal lines in px. @default 1.5 */
44
+ lineWidth?: number;
45
+ /** Spacing between lines in px. @default 6 */
46
+ spacing?: number;
47
+ /** Angle of the lines in degrees (0 = horizontal, 45 = diagonal). @default 45 */
48
+ angle?: number;
49
+ /** Opacity applied to the hatch lines (SVG `<line>` stroke opacity). @default 1 */
50
+ lineOpacity?: number;
51
+ }
52
+ /** Type guard — is a resolved `style.fill` a `HatchFill` descriptor? */
53
+ export declare function isHatchFill(fill: unknown): fill is HatchFill;
54
+ /**
55
+ * Stable, content-derived key for a hatch descriptor. Used to cache canvas
56
+ * patterns and to mint deterministic SVG `<pattern>` ids so identical
57
+ * descriptors dedupe rather than proliferate.
58
+ */
59
+ export declare function hatchFillKey(h: HatchFill): string;
60
+ /** Deterministic, SVG-id-safe identifier for a hatch descriptor. */
61
+ export declare function hatchFillId(prefix: string, h: HatchFill): string;
62
+ /**
63
+ * Resolve a `HatchFill` descriptor to a `CanvasPattern` for the given
64
+ * context. Cached by descriptor content + DPR. Returns `null` only when
65
+ * the environment can't create a pattern (SSR/test) — callers fall back
66
+ * to the descriptor's `background` color.
67
+ */
68
+ export declare function resolveHatchCanvasPattern(h: HatchFill, ctx: CanvasRenderingContext2D): CanvasPattern | null;
69
+ /**
70
+ * Render a `HatchFill` descriptor as an SVG `<pattern>` element.
71
+ * Place the returned element inside `<defs>` (or anywhere valid) and set
72
+ * `fill="url(#id)"` on the target shape. Mirrors the canvas tile exactly:
73
+ * parallel lines rotated by `angle` so the two backends read identically.
74
+ */
75
+ export declare function hatchPatternDef(h: HatchFill, id: string): React.ReactElement;
76
+ /**
77
+ * Resolve a `style.fill` for an SVG shape. Returns the paint string to use
78
+ * plus, when the fill is a `HatchFill`, the `<pattern>` def to inject.
79
+ *
80
+ * @param fill the raw `style.fill` (string color, `HatchFill`, or `CanvasPattern`)
81
+ * @param idBase prefix for the generated pattern id (should be node-unique-ish)
82
+ * @param fallback solid color used when `fill` is null/undefined or a raw CanvasPattern
83
+ */
84
+ export declare function resolveSvgFill(fill: string | HatchFill | CanvasPattern | null | undefined, idBase: string, fallback?: string): {
85
+ fill: string;
86
+ def?: React.ReactElement;
87
+ };
@@ -1,14 +1,26 @@
1
1
  import { createLegend } from "./legendUtils";
2
2
  import type { SelectionHookResult } from "./selectionUtils";
3
3
  import type { OnObservationCallback } from "../../store/ObservationStore";
4
- import type { Accessor, SelectionConfig, LinkedHoverProp, ChartMode, HoverHighlightMode } from "./types";
4
+ import type { Accessor, SelectionConfig, LinkedHoverProp, ChartMode, HoverHighlightMode, MobileInteractionProp, ResolvedMobileInteractionConfig } from "./types";
5
5
  import type { MarginType, PartialMargin } from "../../types/marginType";
6
6
  import type { TransitionConfig } from "../../stream/types";
7
7
  import type { Datum } from "./datumTypes";
8
+ import type { MobileVisualizationContract } from "./auditMobileVisualization";
9
+ import type { ResponsiveRule } from "./responsiveRules";
10
+ import type { SemanticClickBehavior, SemanticHoverBehavior } from "./semanticInteractions";
8
11
  /**
9
12
  * Default fill color used when no colorBy is specified
10
13
  */
11
14
  export declare const DEFAULT_COLOR = "#007bff";
15
+ export declare const MOBILE_INTERACTION_TARGET_SIZE = 44;
16
+ export declare const MOBILE_INTERACTION_MIN_HIT_RADIUS = 24;
17
+ export declare const MOBILE_INTERACTION_DEFAULTS: ResolvedMobileInteractionConfig;
18
+ export declare const DISABLED_MOBILE_INTERACTION: ResolvedMobileInteractionConfig;
19
+ export declare function resolveMobileInteraction(input: MobileInteractionProp | undefined, context?: {
20
+ mode?: ChartMode;
21
+ width?: number;
22
+ mobileSemantics?: MobileVisualizationContract;
23
+ }): ResolvedMobileInteractionConfig;
12
24
  /**
13
25
  * Returns the theme's categorical palette, or undefined if no ThemeProvider or
14
26
  * the palette is empty. Safe to call outside a ThemeProvider (returns undefined).
@@ -30,18 +42,18 @@ export declare function useThemeDiverging(): string | undefined;
30
42
  * Priority: color prop > theme categorical > colorScheme > DEFAULT_COLOR.
31
43
  * When a palette is available, cycles through colors by category name.
32
44
  */
33
- export declare function resolveDefaultFill(color: string | undefined, themeCategorical: string[] | undefined, colorScheme: string | string[] | undefined, category: string | undefined, categoryIndexMap: Map<string, number>): string;
45
+ export declare function resolveDefaultFill(color: string | undefined, themeCategorical: string[] | undefined, colorScheme: string | string[] | Record<string, string> | undefined, category: string | undefined, categoryIndexMap: Map<string, number>): string;
34
46
  /**
35
47
  * Resolve an accessor (string key or function) into a function.
36
48
  * Used across chart components to normalize `valueAccessor`, `categoryAccessor`, etc.
37
49
  */
38
- export declare function resolveAccessor<T = any>(accessor: string | ((d: Datum, i?: number) => T)): (d: Datum) => T;
50
+ export declare function resolveAccessor<T = string | number | boolean | Date | Datum | null | undefined>(accessor: string | ((d: Datum, i?: number) => T)): (d: Datum) => T;
39
51
  /**
40
52
  * Hook to create a color scale from data and colorBy configuration.
41
53
  * Returns undefined when colorBy is absent or data is empty (push API mode).
42
54
  * Supports both string and function accessors for colorBy.
43
55
  */
44
- export declare function useColorScale(data: Array<Datum>, colorBy: string | ((d: any, i?: number) => any) | undefined, colorScheme?: string | string[]): ((v: string) => string) | undefined;
56
+ export declare function useColorScale(data: Array<Datum>, colorBy: string | ((d: Datum, i?: number) => string | number) | undefined, colorScheme?: string | string[] | Record<string, string>): ((v: string) => string) | undefined;
45
57
  /**
46
58
  * Hook to sort data by a value accessor.
47
59
  * Used by BarChart and DotPlot.
@@ -64,7 +76,7 @@ export declare function useSortedData(data: Array<Datum>, sort: boolean | "asc"
64
76
  * @param unwrapData - Deprecated / no-op. Hover data is always unwrapped
65
77
  * (stream frames wrap the raw datum in { data, time, value, x, y }).
66
78
  */
67
- export declare function useChartSelection({ selection, linkedHover, fallbackFields, unwrapData: _unwrapData, onObservation, chartType, chartId, onClick, hoverHighlight, colorByField, }: {
79
+ export declare function useChartSelection({ selection, linkedHover, fallbackFields, unwrapData: _unwrapData, onObservation, chartType, chartId, onClick, hoverHighlight, colorByField, mobileInteraction, }: {
68
80
  selection?: SelectionConfig;
69
81
  linkedHover?: LinkedHoverProp;
70
82
  fallbackFields?: string[];
@@ -72,17 +84,18 @@ export declare function useChartSelection({ selection, linkedHover, fallbackFiel
72
84
  onObservation?: OnObservationCallback;
73
85
  chartType?: string;
74
86
  chartId?: string;
75
- onClick?: (datum: any, event: {
87
+ onClick?: (datum: Datum, event: {
76
88
  x: number;
77
89
  y: number;
78
90
  }) => void;
79
91
  hoverHighlight?: HoverHighlightMode;
80
92
  colorByField?: string;
93
+ mobileInteraction?: ResolvedMobileInteractionConfig;
81
94
  }): {
82
95
  activeSelectionHook: SelectionHookResult | null;
83
96
  hoverSelectionHook: SelectionHookResult | null;
84
- customHoverBehavior: (d: Datum | null) => void;
85
- customClickBehavior: (d: Datum | null) => void;
97
+ customHoverBehavior: SemanticHoverBehavior;
98
+ customClickBehavior: SemanticClickBehavior;
86
99
  /** Stable ID for this chart instance, used to suppress linked crosshair on source chart */
87
100
  crosshairSourceId: string;
88
101
  };
@@ -160,9 +173,16 @@ interface ChartModeInput {
160
173
  categoryLabel?: string;
161
174
  valueLabel?: string;
162
175
  /** When truthy, enableHover is forced true regardless of mode (LinkedCharts needs hover) */
163
- linkedHover?: any;
176
+ linkedHover?: LinkedHoverProp;
177
+ /** Optional mobile interaction policy surfaced through useChartMode for custom wrappers. */
178
+ mobileInteraction?: MobileInteractionProp;
179
+ /** Optional mobile semantic contract surfaced through useChartMode for custom wrappers. */
180
+ mobileSemantics?: MobileVisualizationContract;
181
+ /** Semantic responsive transformations resolved before mode defaults. */
182
+ responsiveRules?: ResponsiveRule[];
164
183
  }
165
- interface ChartModeResult {
184
+ /** Result of {@link useChartMode} — exported so declaration emit can name it. */
185
+ export interface ChartModeResult {
166
186
  width: number;
167
187
  height: number;
168
188
  showAxes: boolean;
@@ -186,6 +206,10 @@ interface ChartModeResult {
186
206
  };
187
207
  /** True when mode is context or sparkline — the "hide interactive chrome" union. */
188
208
  compactMode: boolean;
209
+ /** Resolved touch-first behavior for mobile-capable wrappers. */
210
+ mobileInteraction: ResolvedMobileInteractionConfig;
211
+ /** Mobile semantic contract after matching responsive rules are applied. */
212
+ mobileSemantics: MobileVisualizationContract | undefined;
189
213
  }
190
214
  /**
191
215
  * Resolve chart display mode into concrete prop defaults.
@@ -0,0 +1,9 @@
1
+ /**
2
+ * AUTO-GENERATED from chartSpecs.ts by scripts/regenerate-schema.ts.
3
+ * Do not edit by hand; run `npm run docs:chart-specs:schema`.
4
+ *
5
+ * This compact registry is intentionally separate from validation metadata:
6
+ * config serialization only needs chart-name membership.
7
+ */
8
+ export declare const KNOWN_CHART_COMPONENTS: readonly ["BarChart", "StackedBarChart", "GroupedBarChart", "SwarmPlot", "BoxPlot", "Histogram", "ViolinPlot", "RidgelinePlot", "DotPlot", "PieChart", "DonutChart", "GaugeChart", "FunnelChart", "SwimlaneChart", "LikertChart", "LineChart", "AreaChart", "DifferenceChart", "StackedAreaChart", "Scatterplot", "BubbleChart", "Heatmap", "QuadrantChart", "MultiAxisLineChart", "CandlestickChart", "ConnectedScatterplot", "ScatterplotMatrix", "MinimapChart", "ForceDirectedGraph", "SankeyDiagram", "ProcessSankey", "ChordDiagram", "TreeDiagram", "Treemap", "CirclePack", "OrbitDiagram", "ChoroplethMap", "ProportionalSymbolMap", "FlowMap", "DistanceCartogram", "RealtimeLineChart", "RealtimeHistogram", "TemporalHistogram", "RealtimeSwarmChart", "RealtimeWaterfallChart", "RealtimeHeatmap", "GaltonBoardChart", "EventDropChart", "PhysicsPileChart", "CollisionSwarmChart", "GauntletChart", "ProcessFlowChart", "PhysicalFlowChart", "BigNumber"];
9
+ export declare function isKnownChartComponent(componentName: string): boolean;
@@ -0,0 +1,16 @@
1
+ export type RegressionPoint = [number, number];
2
+ export interface LeastSquaresResult {
3
+ points: RegressionPoint[];
4
+ /**
5
+ * Linear: `[slope, intercept]`. Polynomial: highest power first, matching
6
+ * the historical `regression` package result consumed by annotations.
7
+ */
8
+ equation: number[];
9
+ }
10
+ /** Fit a two-parameter least-squares line with two-decimal output rounding. */
11
+ export declare function linearRegression(data: ReadonlyArray<readonly [number, number | null]>): LeastSquaresResult;
12
+ /**
13
+ * Fit an order-N polynomial using normal equations. Coefficients and predicted
14
+ * points use the former dependency's two-decimal rounding and equation order.
15
+ */
16
+ export declare function polynomialRegression(data: ReadonlyArray<readonly [number, number | null]>, order?: number): LeastSquaresResult;
@@ -27,7 +27,8 @@ export interface PrimitiveStyleOverrides {
27
27
  strokeWidth?: number;
28
28
  opacity?: number;
29
29
  }
30
- type StyleFnArg = (...args: any[]) => Datum;
30
+ type StyleArgument = Datum | string | number | boolean | Date | null | undefined;
31
+ type StyleFn<TArgs extends StyleArgument[]> = (...args: TArgs) => Datum;
31
32
  /** Returns true when at least one override key has a non-undefined value. */
32
33
  export declare function hasPrimitiveOverrides(overrides: PrimitiveStyleOverrides): boolean;
33
34
  /**
@@ -39,5 +40,5 @@ export declare function hasPrimitiveOverrides(overrides: PrimitiveStyleOverrides
39
40
  * keeps the memoization-stable identity path hot for the common case
40
41
  * where a designer has set nothing.
41
42
  */
42
- export declare function mergeShapeStyle<F extends StyleFnArg>(styleFn: F | undefined, overrides: PrimitiveStyleOverrides): F;
43
+ export declare function mergeShapeStyle<TArgs extends StyleArgument[] = []>(styleFn: StyleFn<TArgs> | undefined, overrides: PrimitiveStyleOverrides): StyleFn<TArgs>;
43
44
  export {};
@@ -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;
@@ -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,42 @@
1
+ import type { Datum } from "./datumTypes";
2
+ import type { KeyboardEvent as ReactKeyboardEvent } from "react";
3
+ import type { OnObservationCallback, ObservationInputType } from "../../store/ObservationStore";
4
+ /** Extra context supplied by Stream Frames to their existing behavior hooks. */
5
+ export interface SemanticInteractionContext {
6
+ type: "focus" | "activate";
7
+ inputType: ObservationInputType;
8
+ }
9
+ export type SemanticHoverBehavior<T = Datum> = (datum: T | null, context?: SemanticInteractionContext) => void;
10
+ export type SemanticClickBehavior<T = Datum> = (datum: T | null, context?: SemanticInteractionContext) => void;
11
+ export declare function observationInputType(pointerType?: string): "pointer" | "touch";
12
+ /**
13
+ * Stream Frame keyboard navigation lives on a focusable chart wrapper. Let
14
+ * native controls rendered inside that wrapper (notably widget annotations)
15
+ * handle their own keys before the chart consumes Enter, Space, or arrows.
16
+ */
17
+ export declare function isInteractiveKeyboardTarget(event: Pick<ReactKeyboardEvent, "target" | "currentTarget">): boolean;
18
+ /**
19
+ * Emit the legacy hover event and its semantic focus companion when present.
20
+ * Keeping both makes the semantic vocabulary additive for existing consumers.
21
+ */
22
+ export declare function emitHoverObservations(options: {
23
+ onObservation?: OnObservationCallback;
24
+ datum: Datum | null;
25
+ x?: number;
26
+ y?: number;
27
+ chartType: string;
28
+ chartId?: string;
29
+ context?: SemanticInteractionContext;
30
+ timestamp?: number;
31
+ }): void;
32
+ /** Emit the legacy click event and its semantic activation companion. */
33
+ export declare function emitClickObservations(options: {
34
+ onObservation?: OnObservationCallback;
35
+ datum: Datum | null;
36
+ x?: number;
37
+ y?: number;
38
+ chartType: string;
39
+ chartId?: string;
40
+ context?: SemanticInteractionContext;
41
+ timestamp?: number;
42
+ }): void;
@@ -24,4 +24,4 @@
24
24
  * mutation throws in strict mode rather than corrupting later reads.
25
25
  */
26
26
  export declare const EMPTY_ARRAY: readonly unknown[];
27
- export declare function filterSparseArray<T>(input: readonly T[] | undefined | null): T[];
27
+ export declare function filterSparseArray<T extends object>(input: readonly (T | null | undefined)[] | undefined | null): T[];
@@ -1,8 +1,9 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { Datum } from "./datumTypes";
3
+ import type { SemanticClickBehavior, SemanticHoverBehavior } from "./semanticInteractions";
3
4
  import { type TooltipProp } from "../../Tooltip/Tooltip";
4
5
  import type { HoverData } from "../../realtime/types";
5
- import type { HoverHighlightMode, LinkedHoverProp, SelectionConfig } from "./types";
6
+ import type { HoverHighlightMode, LinkedHoverProp, SelectionConfig, ResolvedMobileInteractionConfig } from "./types";
6
7
  import type { OnObservationCallback } from "../../store/ObservationStore";
7
8
  import type { AnimateProp } from "../../stream/pipelineTransitionUtils";
8
9
  import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
@@ -65,20 +66,29 @@ export declare function buildBaseMetadataProps(input: BaseMetadataProps): BaseMe
65
66
  * - `customClickBehavior` mirrors the click-driving subset
66
67
  * (`onObservation`, `onClick`, `linkedHover` for cross-chart
67
68
  * selection lock).
69
+ * - `forceHoverBehavior` / `forceClickBehavior` let composed or
70
+ * adapter charts (realtime, matrix cells, custom payload mappers)
71
+ * keep their chart-specific callback shape while sharing the same
72
+ * mobile predicates and touch-radius plumbing.
68
73
  *
69
74
  * Returning the props as a spreadable object means HOCs that don't
70
75
  * need either get an empty merge that adds nothing.
71
76
  */
72
77
  export declare function buildCustomBehaviorProps(input: {
73
78
  linkedHover?: LinkedHoverProp;
79
+ selection?: SelectionConfig;
74
80
  onObservation?: OnObservationCallback;
75
81
  onClick?: ((datum: Datum, position: {
76
82
  x: number;
77
83
  y: number;
78
84
  }) => void) | undefined;
85
+ hoverRadius?: number;
79
86
  hoverHighlight?: HoverHighlightMode;
80
- customHoverBehavior: (d: Datum | null) => void;
81
- customClickBehavior: (d: Datum | null) => void;
87
+ forceHoverBehavior?: boolean;
88
+ forceClickBehavior?: boolean;
89
+ mobileInteraction?: ResolvedMobileInteractionConfig;
90
+ customHoverBehavior: SemanticHoverBehavior;
91
+ customClickBehavior?: SemanticClickBehavior;
82
92
  /**
83
93
  * Whether `linkedHover` participates in the click predicate. Most
84
94
  * XY / ordinal HOCs say yes — `linkedHover` cross-chart selection
@@ -89,8 +99,10 @@ export declare function buildCustomBehaviorProps(input: {
89
99
  */
90
100
  linkedHoverInClickPredicate?: boolean;
91
101
  }): {
92
- customHoverBehavior?: (d: Datum | null) => void;
93
- customClickBehavior?: (d: Datum | null) => void;
102
+ customHoverBehavior?: SemanticHoverBehavior;
103
+ customClickBehavior?: SemanticClickBehavior;
104
+ annotationObservationCallback?: OnObservationCallback;
105
+ hoverRadius?: number;
94
106
  };
95
107
  /**
96
108
  * Resolve the `tooltipContent` prop for the frame.