semiotic 3.7.5 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. package/CLAUDE.md +54 -12
  2. package/README.md +121 -27
  3. package/agent-skill/semiotic-charts/SKILL.md +146 -0
  4. package/ai/cli.js +133 -45
  5. package/ai/componentMetadata.cjs +6 -1
  6. package/ai/dist/mcp-server.js +1651 -154
  7. package/ai/examples.md +174 -0
  8. package/ai/schema.json +2733 -536
  9. package/ai/surface-manifest.json +200 -0
  10. package/ai/system-prompt.md +18 -3
  11. package/dist/components/CategoryColors.d.ts +1 -1
  12. package/dist/components/ChartContainer.d.ts +91 -0
  13. package/dist/components/ChartGrid.d.ts +11 -1
  14. package/dist/components/CircularBrush.d.ts +61 -0
  15. package/dist/components/ContextLayout.d.ts +5 -1
  16. package/dist/components/DirectManipulationControl.d.ts +63 -0
  17. package/dist/components/LinkedCharts.d.ts +3 -1
  18. package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
  19. package/dist/components/MobileChartContainer.d.ts +51 -0
  20. package/dist/components/MobileStandardControls.d.ts +68 -0
  21. package/dist/components/SmallMultipleChart.d.ts +84 -0
  22. package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
  23. package/dist/components/ai/ChartRecipe.d.ts +16 -0
  24. package/dist/components/ai/IntentMark.d.ts +15 -0
  25. package/dist/components/ai/chartCapabilities.d.ts +8 -1
  26. package/dist/components/ai/chartCapabilityTypes.d.ts +26 -1
  27. package/dist/components/ai/chartClinic.d.ts +91 -0
  28. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  29. package/dist/components/ai/chartRecipes.d.ts +278 -0
  30. package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
  31. package/dist/components/ai/describeChart.d.ts +7 -0
  32. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  33. package/dist/components/ai/generativeChart.d.ts +28 -3
  34. package/dist/components/ai/intentManifest.d.ts +62 -0
  35. package/dist/components/ai/navigationTree.d.ts +3 -0
  36. package/dist/components/ai/observedSceneAudit.d.ts +72 -0
  37. package/dist/components/ai/readerGrounding.d.ts +83 -0
  38. package/dist/components/ai/recipeCapability.d.ts +8 -0
  39. package/dist/components/ai/recipeNavigation.d.ts +13 -0
  40. package/dist/components/ai/recipeSemantics.d.ts +11 -0
  41. package/dist/components/ai/repairChartConfig.d.ts +9 -0
  42. package/dist/components/ai/suggestCharts.d.ts +11 -1
  43. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  44. package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
  45. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  46. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  47. package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
  48. package/dist/components/charts/geo/FlowMap.d.ts +1 -1
  49. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
  50. package/dist/components/charts/geo/index.d.ts +2 -0
  51. package/dist/components/charts/index.d.ts +29 -1
  52. package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
  53. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  54. package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
  55. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  56. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  57. package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
  58. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  59. package/dist/components/charts/network/Treemap.d.ts +1 -1
  60. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  61. package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
  62. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  63. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  64. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  65. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  66. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
  67. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  68. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  69. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  70. package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
  71. package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
  72. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  73. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  74. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  75. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  76. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
  77. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  78. package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
  79. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  80. package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
  81. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  82. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  83. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  84. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  85. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
  86. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  87. package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
  88. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  89. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  90. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  91. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  92. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  93. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  94. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  95. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  96. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  97. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  98. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  99. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  100. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  101. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  102. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  103. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  104. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  105. package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
  106. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  107. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  108. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  109. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  110. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  111. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  112. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  113. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  114. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  115. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
  116. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  117. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  118. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  119. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  120. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  121. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  122. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  123. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  124. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  125. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  126. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  127. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  128. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  129. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  130. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  131. package/dist/components/charts/shared/colorUtils.d.ts +16 -1
  132. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
  133. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  134. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  135. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  136. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  137. package/dist/components/charts/shared/hooks.d.ts +28 -5
  138. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  139. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  140. package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
  141. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  142. package/dist/components/charts/shared/types.d.ts +49 -1
  143. package/dist/components/charts/shared/useChartSetup.d.ts +9 -2
  144. package/dist/components/charts/shared/useCustomChartSetup.d.ts +14 -5
  145. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  146. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
  147. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  148. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  149. package/dist/components/charts/shared/validationMap.d.ts +0 -11
  150. package/dist/components/charts/xy/AreaChart.d.ts +1 -1
  151. package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
  152. package/dist/components/charts/xy/LineChart.d.ts +1 -1
  153. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  154. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  155. package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
  156. package/dist/components/charts/xy/Scatterplot.d.ts +1 -1
  157. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  158. package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
  159. package/dist/components/controls/controlAudit.d.ts +24 -0
  160. package/dist/components/controls/controlContract.d.ts +57 -0
  161. package/dist/components/data/fromFlintChart.d.ts +74 -0
  162. package/dist/components/data/fromVegaLite.d.ts +27 -0
  163. package/dist/components/data/portability/index.d.ts +6 -3
  164. package/dist/components/data/portability/result.d.ts +52 -0
  165. package/dist/components/data/portability/spec.d.ts +31 -0
  166. package/dist/components/data/portability/vegaLite.d.ts +24 -6
  167. package/dist/components/export/chartConfig.d.ts +11 -0
  168. package/dist/components/realtime/types.d.ts +11 -0
  169. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  170. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  171. package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
  172. package/dist/components/recipes/cyclical.d.ts +39 -0
  173. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  174. package/dist/components/recipes/forceLayout.d.ts +48 -0
  175. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  176. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  177. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  178. package/dist/components/recipes/gofishIR.d.ts +178 -132
  179. package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
  180. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  181. package/dist/components/recipes/intervals.d.ts +80 -0
  182. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  183. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  184. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  185. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  186. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  187. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  188. package/dist/components/recipes/physics.d.ts +122 -0
  189. package/dist/components/recipes/physicsReference.d.ts +102 -0
  190. package/dist/components/recipes/processAggregates.d.ts +32 -0
  191. package/dist/components/recipes/processChrome.d.ts +67 -0
  192. package/dist/components/recipes/processJourney.d.ts +54 -0
  193. package/dist/components/recipes/processPhysics.d.ts +300 -0
  194. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  195. package/dist/components/recipes/radialCoords.d.ts +69 -0
  196. package/dist/components/recipes/random.d.ts +2 -0
  197. package/dist/components/recipes/recipeChrome.d.ts +91 -0
  198. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  199. package/dist/components/recipes/recipeLegend.d.ts +53 -1
  200. package/dist/components/recipes/recipeUtils.d.ts +52 -0
  201. package/dist/components/recipes/runs.d.ts +59 -0
  202. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  203. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  204. package/dist/components/recipes/unitize.d.ts +108 -0
  205. package/dist/components/recipes/vector.d.ts +28 -0
  206. package/dist/components/recipes/waffle.d.ts +43 -0
  207. package/dist/components/semiotic-ai-core.d.ts +47 -0
  208. package/dist/components/semiotic-ai.d.ts +50 -8
  209. package/dist/components/semiotic-controls.d.ts +18 -0
  210. package/dist/components/semiotic-experimental.d.ts +38 -9
  211. package/dist/components/semiotic-geo.d.ts +11 -0
  212. package/dist/components/semiotic-network.d.ts +11 -0
  213. package/dist/components/semiotic-ordinal.d.ts +8 -0
  214. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  215. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  216. package/dist/components/semiotic-physics.d.ts +56 -0
  217. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  218. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  219. package/dist/components/semiotic-realtime.d.ts +4 -30
  220. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  221. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  222. package/dist/components/semiotic-recipes.d.ts +4 -43
  223. package/dist/components/semiotic-server-edge.d.ts +8 -0
  224. package/dist/components/semiotic-server-node.d.ts +5 -0
  225. package/dist/components/semiotic-server.d.ts +2 -2
  226. package/dist/components/semiotic-themes-core.d.ts +53 -0
  227. package/dist/components/semiotic-themes-react.d.ts +4 -0
  228. package/dist/components/semiotic-themes.d.ts +6 -76
  229. package/dist/components/semiotic-utils-core.d.ts +46 -0
  230. package/dist/components/semiotic-utils-react.d.ts +5 -0
  231. package/dist/components/semiotic-utils.d.ts +3 -39
  232. package/dist/components/semiotic-xy.d.ts +8 -0
  233. package/dist/components/semiotic.d.ts +35 -7
  234. package/dist/components/server/animatedGif.d.ts +36 -0
  235. package/dist/components/server/renderEvidence.d.ts +1 -1
  236. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  237. package/dist/components/server/serverChartConfigShared.d.ts +17 -0
  238. package/dist/components/server/serverChartConfigs.d.ts +19 -9
  239. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  240. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  241. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  242. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  243. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  244. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  245. package/dist/components/server/staticGeo.d.ts +4 -0
  246. package/dist/components/server/staticLegend.d.ts +1 -1
  247. package/dist/components/server/staticNetwork.d.ts +8 -0
  248. package/dist/components/server/staticOrdinal.d.ts +11 -0
  249. package/dist/components/server/staticPhysics.d.ts +3 -0
  250. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  251. package/dist/components/server/staticXY.d.ts +4 -0
  252. package/dist/components/store/ObservationStore.d.ts +3 -2
  253. package/dist/components/store/themeSerialization.d.ts +32 -0
  254. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  255. package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
  256. package/dist/components/stream/FocusRing.d.ts +4 -2
  257. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  258. package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
  259. package/dist/components/stream/NetworkPipelineStore.d.ts +31 -26
  260. package/dist/components/stream/NetworkSVGOverlay.d.ts +4 -1
  261. package/dist/components/stream/OrdinalPipelineStore.d.ts +46 -2
  262. package/dist/components/stream/PipelineStore.d.ts +81 -170
  263. package/dist/components/stream/SceneGraph.d.ts +9 -1
  264. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  265. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  266. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  267. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  268. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  269. package/dist/components/stream/accessorUtils.d.ts +23 -10
  270. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  271. package/dist/components/stream/canvasBackground.d.ts +24 -0
  272. package/dist/components/stream/canvasSetup.d.ts +4 -1
  273. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  274. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  275. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  276. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  277. package/dist/components/stream/geoCartogram.d.ts +17 -0
  278. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  279. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  280. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  281. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  282. package/dist/components/stream/geoTypes.d.ts +56 -7
  283. package/dist/components/stream/glyphDef.d.ts +98 -0
  284. package/dist/components/stream/hitTarget.d.ts +170 -0
  285. package/dist/components/stream/hoverUtils.d.ts +3 -0
  286. package/dist/components/stream/keyboardNav.d.ts +4 -1
  287. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  288. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
  289. package/dist/components/stream/networkBezier.d.ts +10 -0
  290. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  291. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  292. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  293. package/dist/components/stream/networkFramePaint.d.ts +43 -0
  294. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  295. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  296. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  297. package/dist/components/stream/networkTypes.d.ts +76 -5
  298. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  299. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  300. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  301. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  302. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
  303. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  304. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  305. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  306. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  307. package/dist/components/stream/ordinalTypes.d.ts +40 -8
  308. package/dist/components/stream/paintNeeds.d.ts +31 -0
  309. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  310. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  311. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  312. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  313. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  314. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  315. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  316. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  317. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  318. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  319. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  320. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  321. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  322. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  323. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
  324. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  325. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
  326. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  327. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  328. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  329. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  330. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  331. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  332. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  333. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  334. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  335. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  336. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
  337. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  338. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  339. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  340. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  341. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
  342. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  343. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  344. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
  345. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  346. package/dist/components/stream/pipelineConfig.d.ts +177 -0
  347. package/dist/components/stream/pipelineDecay.d.ts +20 -2
  348. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  349. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  350. package/dist/components/stream/pipelinePulse.d.ts +16 -2
  351. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  352. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  353. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
  354. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  355. package/dist/components/stream/pipelineTransitions.d.ts +2 -0
  356. package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
  357. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  358. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  359. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  360. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
  361. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  362. package/dist/components/stream/types.d.ts +135 -7
  363. package/dist/components/stream/useFrame.d.ts +21 -2
  364. package/dist/components/stream/useHydration.d.ts +6 -0
  365. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  366. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  367. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  368. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  369. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  370. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  371. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  372. package/dist/components/stream/xySceneBuilders/types.d.ts +4 -4
  373. package/dist/controls.min.js +2 -0
  374. package/dist/controls.module.min.js +2 -0
  375. package/dist/forceLayoutWorker.js +1 -0
  376. package/dist/geo.min.js +1 -1
  377. package/dist/geo.module.min.js +1 -1
  378. package/dist/network.min.js +1 -1
  379. package/dist/network.module.min.js +1 -1
  380. package/dist/ordinal.min.js +1 -1
  381. package/dist/ordinal.module.min.js +1 -1
  382. package/dist/physics-matter.min.js +1 -0
  383. package/dist/physics-matter.module.min.js +1 -0
  384. package/dist/physics-rapier.min.js +1 -0
  385. package/dist/physics-rapier.module.min.js +1 -0
  386. package/dist/physics.min.js +2 -0
  387. package/dist/physics.module.min.js +2 -0
  388. package/dist/physicsWorker.js +1 -0
  389. package/dist/realtime.min.js +1 -1
  390. package/dist/realtime.module.min.js +1 -1
  391. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  392. package/dist/semiotic-ai-core.d.ts +47 -0
  393. package/dist/semiotic-ai-core.min.js +1 -0
  394. package/dist/semiotic-ai-core.module.min.js +1 -0
  395. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  396. package/dist/semiotic-ai.d.ts +50 -8
  397. package/dist/semiotic-ai.min.js +1 -1
  398. package/dist/semiotic-ai.module.min.js +1 -1
  399. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  400. package/dist/semiotic-controls.d.ts +18 -0
  401. package/dist/semiotic-data.min.js +1 -1
  402. package/dist/semiotic-data.module.min.js +1 -1
  403. package/dist/semiotic-experimental.d.ts +38 -9
  404. package/dist/semiotic-experimental.min.js +1 -1
  405. package/dist/semiotic-experimental.module.min.js +1 -1
  406. package/dist/semiotic-geo.d.ts +11 -0
  407. package/dist/semiotic-network.d.ts +11 -0
  408. package/dist/semiotic-ordinal.d.ts +8 -0
  409. package/dist/semiotic-physics-matter.d.ts +10 -0
  410. package/dist/semiotic-physics-rapier.d.ts +9 -0
  411. package/dist/semiotic-physics.d.ts +56 -0
  412. package/dist/semiotic-realtime-core.d.ts +34 -0
  413. package/dist/semiotic-realtime-core.min.js +1 -0
  414. package/dist/semiotic-realtime-core.module.min.js +1 -0
  415. package/dist/semiotic-realtime-react.d.ts +10 -0
  416. package/dist/semiotic-realtime-react.min.js +2 -0
  417. package/dist/semiotic-realtime-react.module.min.js +2 -0
  418. package/dist/semiotic-realtime.d.ts +4 -30
  419. package/dist/semiotic-recipes-core.d.ts +92 -0
  420. package/dist/semiotic-recipes-core.min.js +1 -0
  421. package/dist/semiotic-recipes-core.module.min.js +1 -0
  422. package/dist/semiotic-recipes-react.d.ts +7 -0
  423. package/dist/semiotic-recipes-react.min.js +2 -0
  424. package/dist/semiotic-recipes-react.module.min.js +2 -0
  425. package/dist/semiotic-recipes.d.ts +4 -43
  426. package/dist/semiotic-recipes.min.js +1 -1
  427. package/dist/semiotic-recipes.module.min.js +1 -1
  428. package/dist/semiotic-server-edge.d.ts +8 -0
  429. package/dist/semiotic-server-edge.min.js +1 -0
  430. package/dist/semiotic-server-edge.module.min.js +1 -0
  431. package/dist/semiotic-server-node.d.ts +5 -0
  432. package/dist/semiotic-server-node.min.js +1 -0
  433. package/dist/semiotic-server-node.module.min.js +1 -0
  434. package/dist/semiotic-server.d.ts +2 -2
  435. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  436. package/dist/semiotic-themes-core.d.ts +53 -0
  437. package/dist/semiotic-themes-core.min.js +1 -0
  438. package/dist/semiotic-themes-core.module.min.js +1 -0
  439. package/dist/semiotic-themes-react.d.ts +4 -0
  440. package/dist/semiotic-themes-react.min.js +2 -0
  441. package/dist/semiotic-themes-react.module.min.js +2 -0
  442. package/dist/semiotic-themes.d.ts +6 -76
  443. package/dist/semiotic-themes.min.js +1 -2
  444. package/dist/semiotic-themes.module.min.js +1 -2
  445. package/dist/semiotic-utils-core.d.ts +46 -0
  446. package/dist/semiotic-utils-core.min.js +1 -0
  447. package/dist/semiotic-utils-core.module.min.js +1 -0
  448. package/dist/semiotic-utils-react.d.ts +5 -0
  449. package/dist/semiotic-utils-react.min.js +2 -0
  450. package/dist/semiotic-utils-react.module.min.js +2 -0
  451. package/dist/semiotic-utils.d.ts +3 -39
  452. package/dist/semiotic-utils.min.js +1 -2
  453. package/dist/semiotic-utils.module.min.js +1 -2
  454. package/dist/semiotic-value.min.js +1 -1
  455. package/dist/semiotic-value.module.min.js +1 -1
  456. package/dist/semiotic-xy.d.ts +8 -0
  457. package/dist/semiotic.d.ts +35 -7
  458. package/dist/semiotic.min.js +1 -1
  459. package/dist/semiotic.module.min.js +1 -1
  460. package/dist/server.min.js +1 -1
  461. package/dist/server.module.min.js +1 -1
  462. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  463. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  464. package/dist/xy.min.js +1 -1
  465. package/dist/xy.module.min.js +1 -1
  466. package/package.json +239 -87
  467. package/spec/README.md +152 -0
  468. package/spec/bindings/README.md +35 -0
  469. package/spec/bindings/vega-lite.mjs +112 -0
  470. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  471. package/spec/v0.1/audience-profile.schema.json +67 -0
  472. package/spec/v0.1/chart-capability.schema.json +186 -0
  473. package/dist/components/recipes/gofish.d.ts +0 -207
  474. package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
  475. package/dist/components/recipes/gofishLambdas.d.ts +0 -145
  476. package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
  477. package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
  478. package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
  479. package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
  480. package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
  481. package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
@@ -0,0 +1,49 @@
1
+ import type { Datum } from "./datumTypes";
2
+ /**
3
+ * The slice of a chart's imperative handle this hook drives. Every Semiotic
4
+ * push-API handle (realtime + non-realtime HOCs) satisfies it structurally;
5
+ * each method is optional so the hook degrades gracefully on handles that
6
+ * only support a subset (e.g. append-only).
7
+ */
8
+ export interface SyncedPushHandle<T = Datum> {
9
+ push?: (datum: T) => unknown;
10
+ pushMany?: (data: T[]) => unknown;
11
+ update?: (id: string, updater: (datum: T) => T) => unknown;
12
+ remove?: (id: string | string[]) => unknown;
13
+ clear?: () => unknown;
14
+ }
15
+ /** An id accessor: a field name, or a function of the row (and its index). */
16
+ export type PushIdAccessor<T> = keyof T | ((datum: T, index: number) => string | number | null | undefined);
17
+ export interface SyncedPushDataOptions<T = Datum> {
18
+ /**
19
+ * Identifies a row so it can be updated/removed in place. A field name
20
+ * (`"id"`) or a function. Omit it and rows are keyed by index — fine for
21
+ * append-mostly streams, but reorders/removals then read positionally.
22
+ */
23
+ id?: PushIdAccessor<T>;
24
+ /**
25
+ * Clear the buffer and re-sync from scratch whenever this value changes.
26
+ * Use it for things that invalidate the whole series — a theme remount, a
27
+ * mode switch, a new data source. The handle identity changing (chart
28
+ * remount) always forces a reset too.
29
+ */
30
+ resetKey?: unknown;
31
+ }
32
+ /**
33
+ * Pure reconciliation: bring `handle`'s buffer from `previousById` to `rows`,
34
+ * issuing the minimal push/update/remove calls, and return the new id→row map.
35
+ *
36
+ * Exported for direct use and unit testing. The hook is a thin
37
+ * effect wrapper around this. Rows are matched by `getId`; a row whose
38
+ * reference changed is `update`d in place (or removed + re-pushed when the
39
+ * handle has no `update`).
40
+ */
41
+ export declare function syncPushBuffer<T = Datum>(handle: SyncedPushHandle<T>, previousById: Map<string, T>, rows: ReadonlyArray<T>, getId: ((datum: T, index: number) => string) | null): Map<string, T>;
42
+ /**
43
+ * Mirror a controlled React array into a push-API chart's buffer.
44
+ *
45
+ * @param ref The same ref you pass to the chart's `ref` prop.
46
+ * @param data The rows the chart should currently show.
47
+ * @param options `id` accessor and optional `resetKey`.
48
+ */
49
+ export declare function useSyncedPushData<T = Datum>(ref: React.RefObject<SyncedPushHandle<T> | null>, data: ReadonlyArray<T>, options?: SyncedPushDataOptions<T>): void;
@@ -1,13 +1,2 @@
1
- /**
2
- * Per-component prop specifications for validation.
3
- *
4
- * Pure data — one ComponentSpec entry per Semiotic HOC chart.
5
- * Shared prop fragments (commonProps, xyAxisProps, etc.) are composed
6
- * via spread to keep individual entries concise.
7
- *
8
- * Consumed by: validateProps.ts (validation engine), diagnoseConfig.ts,
9
- * chartConfig.ts. Schema/validation parity is locked by the
10
- * Chart Spec Registry (`check:chart-specs`).
11
- */
12
1
  import type { ComponentSpec } from "./validateProps";
13
2
  export declare const VALIDATION_MAP: Record<string, ComponentSpec>;
@@ -64,7 +64,7 @@ export interface AreaChartProps<TDatum extends Datum = Datum> extends BaseChartP
64
64
  * Color scheme for categorical data or custom colors array
65
65
  * @default "category10"
66
66
  */
67
- colorScheme?: string | string[];
67
+ colorScheme?: string | string[] | Record<string, string>;
68
68
  /**
69
69
  * Curve interpolation type
70
70
  * @default "monotoneX"
@@ -55,7 +55,7 @@ export interface BubbleChartProps<TDatum extends Datum = Datum> extends BaseChar
55
55
  * Color scheme for categorical data or custom colors array
56
56
  * @default "category10"
57
57
  */
58
- colorScheme?: string | string[];
58
+ colorScheme?: string | string[] | Record<string, string>;
59
59
  /**
60
60
  * Bubble opacity
61
61
  * @default 0.6
@@ -73,7 +73,7 @@ export interface LineChartProps<TDatum extends Datum = Datum> extends BaseChartP
73
73
  * Color scheme for categorical data or custom colors array
74
74
  * @default "category10"
75
75
  */
76
- colorScheme?: string | string[];
76
+ colorScheme?: string | string[] | Record<string, string>;
77
77
  /**
78
78
  * Curve interpolation type
79
79
  * @default "linear"
@@ -37,7 +37,7 @@ export interface MinimapChartProps<TDatum extends Datum = Datum> extends Omit<Ba
37
37
  /** Color-by field or function */
38
38
  colorBy?: ChartAccessor<TDatum, string>;
39
39
  /** Color scheme (default: "category10") */
40
- colorScheme?: string | string[];
40
+ colorScheme?: string | string[] | Record<string, string>;
41
41
  /** Curve type (default: "linear") */
42
42
  curve?: "linear" | "monotoneX" | "monotoneY" | "step" | "stepAfter" | "stepBefore" | "basis" | "cardinal" | "catmullRom";
43
43
  /** Line stroke width (default: 2) */
@@ -28,12 +28,12 @@ export interface MultiAxisLineChartProps<TDatum extends Datum = Datum> extends B
28
28
  /** Array of data points shared by both series */
29
29
  data?: TDatum[];
30
30
  /** Field name or function to access x values @default "x" */
31
- xAccessor?: ChartAccessor<TDatum, number>;
31
+ xAccessor?: ChartAccessor<TDatum, number | Date | string>;
32
32
  /** Series configuration — exactly 2 for dual-axis mode.
33
33
  * If not exactly 2, renders as a normal line chart with a console warning. */
34
34
  series: MultiAxisSeriesConfig<TDatum>[];
35
35
  /** Color scheme or custom colors array @default "category10" */
36
- colorScheme?: string | string[];
36
+ colorScheme?: string | string[] | Record<string, string>;
37
37
  /** Enable hover annotations @default true */
38
38
  enableHover?: boolean;
39
39
  /** Curve interpolation @default "monotoneX" */
@@ -69,7 +69,7 @@ export interface QuadrantChartProps<TDatum extends Datum = Datum> extends BaseCh
69
69
  /** Field name or function to determine point color */
70
70
  colorBy?: ChartAccessor<TDatum, string>;
71
71
  /** Color scheme for categorical data @default "category10" */
72
- colorScheme?: string | string[];
72
+ colorScheme?: string | string[] | Record<string, string>;
73
73
  /** Field name or function to determine point size */
74
74
  sizeBy?: ChartAccessor<TDatum, number>;
75
75
  /** Min and max radius for points @default [3, 15] */
@@ -25,7 +25,7 @@ export interface ScatterplotProps<TDatum extends Datum = Datum> extends BaseChar
25
25
  /** Field name or function to determine point color */
26
26
  colorBy?: ChartAccessor<TDatum, string>;
27
27
  /** Color scheme for categorical data or custom colors array @default "category10" */
28
- colorScheme?: string | string[];
28
+ colorScheme?: string | string[] | Record<string, string>;
29
29
  /** Field name or function to determine point size */
30
30
  sizeBy?: ChartAccessor<TDatum, number>;
31
31
  /** Min and max radius for points @default [3, 15] */
@@ -12,7 +12,7 @@ export interface ScatterplotMatrixProps<TDatum extends Datum = Datum> extends Ba
12
12
  /** Field or function to determine point color */
13
13
  colorBy?: ChartAccessor<TDatum, string>;
14
14
  /** Color scheme @default "category10" */
15
- colorScheme?: string | string[];
15
+ colorScheme?: string | string[] | Record<string, string>;
16
16
  /** Size of each cell in pixels @default 150 */
17
17
  cellSize?: number;
18
18
  /** Gap between cells in pixels @default 4 */
@@ -39,6 +39,16 @@ export interface ScatterplotMatrixProps<TDatum extends Datum = Datum> extends Ba
39
39
  showLegend?: boolean;
40
40
  /** Field or function to identify each data point in tooltips. Defaults to "Row {index}" */
41
41
  idAccessor?: string | ((d: TDatum) => string);
42
+ /**
43
+ * Called when a point in any cell is clicked. Receives the clicked row datum
44
+ * and its grid-relative pixel position `{ x, y }` — the same coordinate space
45
+ * as `onObservation`. Fires in hover mode (the default); in brush mode the
46
+ * drag-select overlay captures pointer events, so clicks are not delivered.
47
+ */
48
+ onClick?: (datum: TDatum, event: {
49
+ x: number;
50
+ y: number;
51
+ }) => void;
42
52
  }
43
53
  /**
44
54
  * ScatterplotMatrix (SPLOM) — multi-dimensional scatter visualization
@@ -21,7 +21,7 @@ export interface StackedAreaChartProps<TDatum extends Datum = Datum> extends Bas
21
21
  * Field name or function to access x values
22
22
  * @default "x"
23
23
  */
24
- xAccessor?: ChartAccessor<TDatum, number>;
24
+ xAccessor?: ChartAccessor<TDatum, number | Date | string>;
25
25
  /**
26
26
  * Field name or function to access y values
27
27
  * @default "y"
@@ -55,7 +55,7 @@ export interface StackedAreaChartProps<TDatum extends Datum = Datum> extends Bas
55
55
  * Color scheme for categorical data or custom colors array
56
56
  * @default "category10"
57
57
  */
58
- colorScheme?: string | string[];
58
+ colorScheme?: string | string[] | Record<string, string>;
59
59
  /**
60
60
  * Curve interpolation type
61
61
  * @default "monotoneX"
@@ -99,13 +99,16 @@ export interface StackedAreaChartProps<TDatum extends Datum = Datum> extends Bas
99
99
  * wiggle across series — best for high-cardinality series where
100
100
  * relative shape matters more than absolute values.
101
101
  * - `"silhouette"`: center the stack symmetrically around y=0.
102
+ * - `"diverging"`: series with **positive** y stack above 0; series with
103
+ * **negative** y stack below 0 (signed benefit / risk stacks). Pass
104
+ * negative values for risk layers — do not use absolute magnitudes.
102
105
  *
103
106
  * Mutually exclusive with `normalize` — when `normalize` is true,
104
107
  * baseline is forced to `"zero"`.
105
108
  *
106
109
  * @default "zero"
107
110
  */
108
- baseline?: "zero" | "wiggle" | "silhouette";
111
+ baseline?: "zero" | "wiggle" | "silhouette" | "diverging";
109
112
  /**
110
113
  * Stack order — controls which series sits at the top, middle, or
111
114
  * bottom of the stack. Pair with `baseline: "wiggle"` or
@@ -113,12 +116,14 @@ export interface StackedAreaChartProps<TDatum extends Datum = Datum> extends Bas
113
116
  *
114
117
  * - `"key"` (default): alphabetical by series key. Stable under
115
118
  * streaming (no re-shuffling on data eviction).
119
+ * - `"input"`: first-seen series order within the current data
120
+ * buffer/window; streaming eviction can change this order.
116
121
  * - `"insideOut"`: largest-total series in the middle, smaller series
117
122
  * wrapping outward. The classic d3 streamgraph aesthetic — gives
118
123
  * you a "central anchor" layer with everything else built off of it.
119
124
  * - `"asc"` / `"desc"`: by total ascending / descending.
120
125
  */
121
- stackOrder?: "key" | "insideOut" | "asc" | "desc";
126
+ stackOrder?: "key" | "input" | "insideOut" | "asc" | "desc";
122
127
  /**
123
128
  * Enable hover annotations
124
129
  * @default true
@@ -0,0 +1,24 @@
1
+ import { type VisualizationControlDefinition } from "./controlContract";
2
+ export type ControlAuditStatus = "pass" | "warn" | "fail";
3
+ export interface ControlAuditFinding {
4
+ id: string;
5
+ controlId?: string;
6
+ status: ControlAuditStatus;
7
+ message: string;
8
+ remediation?: string;
9
+ }
10
+ export interface ControlAuditResult {
11
+ ok: boolean;
12
+ findings: ControlAuditFinding[];
13
+ }
14
+ export interface AuditVisualizationControlsOptions {
15
+ controls?: ReadonlyArray<VisualizationControlDefinition>;
16
+ minimumTargetSize?: number;
17
+ }
18
+ /**
19
+ * Audit portable control declarations without requiring a mounted chart. It
20
+ * verifies the invariants an agent or recipe serializer can actually inspect:
21
+ * semantic type, controlled-state target, keyboard path, value text, and
22
+ * minimum target size.
23
+ */
24
+ export declare function auditVisualizationControls({ controls, minimumTargetSize, }: AuditVisualizationControlsOptions): ControlAuditResult;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Frame-neutral semantics shared by SVG, HTML, and declarative visualization
3
+ * controls. This module intentionally has no React, frame, or store imports so
4
+ * it can be included by the small `semiotic/controls` entry point.
5
+ */
6
+ export declare const VISUALIZATION_CONTROL_TYPES: readonly ["value", "threshold", "partition-boundary", "time-window", "range-boundary"];
7
+ export type VisualizationControlType = (typeof VISUALIZATION_CONTROL_TYPES)[number];
8
+ export type VisualizationControlValue = number | [number, number];
9
+ export type ControlObservationPhase = "control-start" | "control-change" | "control-end";
10
+ export type ControlInputSource = "pointer" | "keyboard" | "programmatic";
11
+ /** A machine-readable interaction emitted by a visualization control. */
12
+ export interface ControlObservation {
13
+ type: ControlObservationPhase;
14
+ controlType: VisualizationControlType;
15
+ value: VisualizationControlValue;
16
+ chartType: string;
17
+ timestamp: number;
18
+ controlId?: string;
19
+ chartId?: string;
20
+ source?: ControlInputSource;
21
+ }
22
+ export type ControlObservationCallback = (observation: ControlObservation) => void;
23
+ export interface ControlObservationAdapterOptions {
24
+ controlType: VisualizationControlType;
25
+ controlId?: string;
26
+ chartId?: string;
27
+ chartType?: string;
28
+ onObservation?: ControlObservationCallback;
29
+ }
30
+ /**
31
+ * Creates an adapter for a control implementation. Frame adapters can pass
32
+ * their existing `onObservation`, while standalone controls can omit it.
33
+ */
34
+ export declare function createControlObservationAdapter({ controlType, controlId, chartId, chartType, onObservation, }: ControlObservationAdapterOptions): (phase: ControlObservationPhase, value: VisualizationControlValue, source?: ControlInputSource) => void;
35
+ /**
36
+ * JSON-safe control metadata carried by portable recipes and agent-facing
37
+ * audits. `target` is the controlled state binding, not a pointer handler.
38
+ */
39
+ export interface VisualizationControlDefinition {
40
+ id: string;
41
+ type: VisualizationControlType;
42
+ target: string;
43
+ domain: readonly [number, number];
44
+ label: string;
45
+ valueText: string;
46
+ step?: number;
47
+ keyboard?: "slider" | "buttons" | "native-range";
48
+ alternatives?: readonly string[];
49
+ observations?: readonly ControlObservationPhase[];
50
+ minimumTargetSize?: number;
51
+ annotation?: {
52
+ /** The annotation state key that follows this control's value. */
53
+ target?: string;
54
+ /** A portable template, such as "Threshold: {value}". */
55
+ valueText?: string;
56
+ };
57
+ }
@@ -0,0 +1,74 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { ChartConfig } from "../export/chartConfig";
3
+ /**
4
+ * Flint Chart -> Semiotic translator.
5
+ *
6
+ * Flint's public request shape is intentionally small: inline or referenced
7
+ * rows, optional field semantics, and a chart_spec object with chart type,
8
+ * channel encodings, base size, canvas ceiling, and chart properties. This
9
+ * adapter consumes that request as an ecosystem boundary format and emits a
10
+ * Semiotic ChartConfig. It does not call Flint and does not attempt to compile
11
+ * Flint to backend-native specs.
12
+ *
13
+ * Scope (experimental): bar, grouped bar, stacked bar, line, area, scatter,
14
+ * heatmap, pie/donut, histogram, and boxplot with simple channel bindings.
15
+ */
16
+ export type FlintEncodingType = "quantitative" | "nominal" | "ordinal" | "temporal";
17
+ export type FlintAggregate = "count" | "sum" | "average" | "mean";
18
+ export interface FlintSemanticAnnotation {
19
+ semanticType?: string;
20
+ [key: string]: unknown;
21
+ }
22
+ export interface FlintChartEncoding {
23
+ field?: string;
24
+ type?: FlintEncodingType;
25
+ aggregate?: FlintAggregate;
26
+ sortOrder?: "ascending" | "descending";
27
+ sortBy?: string;
28
+ scheme?: string;
29
+ [key: string]: unknown;
30
+ }
31
+ export type FlintEncodingInput = FlintChartEncoding | string;
32
+ export type FlintRawEncodingValue = FlintEncodingInput | FlintEncodingInput[];
33
+ export interface FlintChartSize {
34
+ width: number;
35
+ height: number;
36
+ }
37
+ export interface FlintChartAssemblyInput {
38
+ data: {
39
+ values: Datum[];
40
+ url?: never;
41
+ } | {
42
+ url: string;
43
+ values?: never;
44
+ };
45
+ semantic_types?: Record<string, string | FlintSemanticAnnotation>;
46
+ chart_spec: {
47
+ chartType: string;
48
+ encodings: Record<string, FlintRawEncodingValue>;
49
+ baseSize?: FlintChartSize;
50
+ canvasSize?: FlintChartSize;
51
+ chartProperties?: Record<string, unknown>;
52
+ };
53
+ options?: Record<string, unknown>;
54
+ field_display_names?: Record<string, string>;
55
+ }
56
+ export interface FlintChartConfigMetadata {
57
+ chartType: string;
58
+ semanticTypes?: Record<string, string | FlintSemanticAnnotation>;
59
+ fieldDisplayNames?: Record<string, string>;
60
+ chartProperties?: Record<string, unknown>;
61
+ baseSize?: FlintChartSize;
62
+ canvasSize?: FlintChartSize;
63
+ dataUrl?: string;
64
+ options?: Record<string, unknown>;
65
+ unmappedEncodings?: Record<string, FlintRawEncodingValue>;
66
+ }
67
+ export type FlintChartConfig = ChartConfig & {
68
+ warnings?: string[];
69
+ flint: FlintChartConfigMetadata;
70
+ };
71
+ /**
72
+ * Convert a Flint ChartAssemblyInput into a Semiotic ChartConfig.
73
+ */
74
+ export declare function fromFlintChart(input: FlintChartAssemblyInput): FlintChartConfig;
@@ -6,6 +6,7 @@
6
6
  * with basic encodings. No layers, facets, selections, or complex transforms.
7
7
  */
8
8
  import type { ChartConfig } from "../export/chartConfig";
9
+ import type { PortabilityImportResult } from "./portability/result";
9
10
  export interface VegaLiteEncoding {
10
11
  field?: string;
11
12
  type?: "quantitative" | "nominal" | "ordinal" | "temporal";
@@ -43,6 +44,32 @@ export interface VegaLiteSpec {
43
44
  transform?: any[];
44
45
  [key: string]: any;
45
46
  }
47
+ /** Strictness for the typed, experimental Vega-Lite import result. */
48
+ export interface FromVegaLiteOptions {
49
+ /**
50
+ * Strict is the safe default: unsupported composition or marks return a
51
+ * typed refusal instead of a plausible fallback chart. `lossy` retains the
52
+ * legacy fallback behavior, but reports every known loss explicitly.
53
+ */
54
+ mode?: "strict" | "lossy";
55
+ }
56
+ /** Typed result for the experimental, loss-aware Vega-Lite importer. */
57
+ export type VegaLiteImportResult = PortabilityImportResult<ChartConfig>;
58
+ /**
59
+ * Recover the one base view emitted by attachIDIDAnnotations(). This is
60
+ * intentionally narrow: arbitrary Vega-Lite layer composition remains
61
+ * unsupported and must not be guessed as a chart configuration.
62
+ */
63
+ export declare function unwrapIDIDEnrichedVegaLiteSpec(spec: VegaLiteSpec): VegaLiteSpec;
46
64
  export declare function fromVegaLite(spec: VegaLiteSpec): ChartConfig & {
47
65
  warnings?: string[];
48
66
  };
67
+ /**
68
+ * Strict, loss-aware Vega-Lite import.
69
+ *
70
+ * `fromVegaLite()` remains the stable compatibility helper and therefore
71
+ * preserves its historical fallback behavior. New portability integrations
72
+ * should use this result API, whose default is to refuse unsupported semantics
73
+ * rather than return a chart that merely looks plausible.
74
+ */
75
+ export declare function fromVegaLiteResult(spec: VegaLiteSpec, options?: FromVegaLiteOptions): VegaLiteImportResult;
@@ -9,6 +9,9 @@
9
9
  * surface is proven against real consumers.
10
10
  */
11
11
  export { IDID_SPEC_VERSION, BUILTIN_INTENT_IDS, validatePortableCapability, validatePortableAudienceProfile, validatePortableAnnotation, } from "./spec";
12
- export type { BuiltInIntentId, PortableIntentId, PortableChartRubric, PortableChartVariant, PortableChartCapability, PortableReceptionModality, PortableAudienceTarget, PortableAudienceProfile, PortableAnnotationActorKind, PortableAnnotationSource, PortableAnnotationBasis, PortableAnnotationProvenance, PortableAnnotationFreshness, PortableAnnotationStatus, PortableAnnotationAnchor, PortableAnnotationLifecycle, PortableAnnotated, ValidationResult, } from "./spec";
13
- export { toVegaLite, attachIDID, readIDID, attachIDIDAnnotations, readIDIDAnnotations, } from "./vegaLite";
14
- export type { IDIDVegaLiteMeta } from "./vegaLite";
12
+ export type { BuiltInIntentId, PortableIntentId, PortableChartRubric, PortableChartVariant, PortableMobileInteractionCapability, PortableMobileLabelCapability, PortableMobileCustomCapability, PortableMobileCapability, PortableChartCapability, PortableReceptionModality, PortableAudienceTarget, PortableAudienceProfile, PortableAnnotationActorKind, PortableAnnotationSource, PortableAnnotationBasis, PortableAnnotationProvenance, PortableAnnotationFreshness, PortableAnnotationStatus, PortableAnnotationAnchor, PortableAnnotationLifecycle, PortableAnnotated, ValidationResult, } from "./spec";
13
+ export { toVegaLite, toVegaLiteResult, attachIDID, readIDID, attachIDIDAnnotations, readIDIDAnnotations, } from "./vegaLite";
14
+ export type { IDIDVegaLiteMeta, ToVegaLiteOptions, VegaLiteExportResult, } from "./vegaLite";
15
+ export { fromVegaLiteResult, unwrapIDIDEnrichedVegaLiteSpec, } from "../fromVegaLite";
16
+ export type { FromVegaLiteOptions, VegaLiteImportResult, } from "../fromVegaLite";
17
+ export type { PortabilityStatus, PortabilityDiagnosticSeverity, PortabilityDiagnostic, PortabilityLoss, PortabilityProvenance, PortabilityResult, PortabilityImportResult, PortabilityExportResult, } from "./result";
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Shared result vocabulary for experimental portability adapters.
3
+ *
4
+ * An adapter must make a supported translation, a known loss, and a refusal
5
+ * distinguishable to callers. Warnings attached to an otherwise plausible
6
+ * chart are not sufficient: another renderer cannot infer that it should not
7
+ * render an approximation.
8
+ */
9
+ /** Whether an adapter translated exactly, translated with declared loss, or refused. */
10
+ export type PortabilityStatus = "success" | "lossy" | "refused";
11
+ export type PortabilityDiagnosticSeverity = "warning" | "error";
12
+ /** A stable, machine-readable adapter diagnostic. */
13
+ export interface PortabilityDiagnostic {
14
+ code: string;
15
+ severity: PortabilityDiagnosticSeverity;
16
+ message: string;
17
+ path?: string;
18
+ }
19
+ /** A declared semantic loss for an explicitly lossy translation. */
20
+ export interface PortabilityLoss {
21
+ code: string;
22
+ message: string;
23
+ path?: string;
24
+ }
25
+ /**
26
+ * Enough information to identify an adapter operation without coupling this
27
+ * library-neutral result shape to a particular renderer or chart config.
28
+ */
29
+ export interface PortabilityProvenance {
30
+ adapter: string;
31
+ direction: "import" | "export";
32
+ sourceFormat: string;
33
+ targetFormat: string;
34
+ specVersion?: string;
35
+ /** Metadata that travelled with the source artifact, when it is serializable. */
36
+ metadata?: Record<string, unknown>;
37
+ }
38
+ /** Base result shared by adapters that import and export different artifact types. */
39
+ export interface PortabilityResult {
40
+ status: PortabilityStatus;
41
+ diagnostics: readonly PortabilityDiagnostic[];
42
+ lossReport: readonly PortabilityLoss[];
43
+ provenance: PortabilityProvenance;
44
+ }
45
+ /** Result shape for adapters that produce a Semiotic configuration. */
46
+ export interface PortabilityImportResult<TConfig> extends PortabilityResult {
47
+ config?: TConfig;
48
+ }
49
+ /** Result shape for adapters that produce a foreign artifact or spec. */
50
+ export interface PortabilityExportResult<TArtifact> extends PortabilityResult {
51
+ artifact?: TArtifact;
52
+ }
@@ -40,6 +40,35 @@ export interface PortableChartVariant {
40
40
  /** Implementation-specific props; opaque to the spec. */
41
41
  props?: Record<string, unknown>;
42
42
  }
43
+ export interface PortableMobileInteractionCapability {
44
+ primary?: string;
45
+ alternatives?: ReadonlyArray<string>;
46
+ hoverFallback?: string;
47
+ targetSize?: number;
48
+ }
49
+ export interface PortableMobileLabelCapability {
50
+ strategy?: string;
51
+ minFontSize?: number;
52
+ }
53
+ export interface PortableMobileCustomCapability {
54
+ dataBearingSceneNodes?: boolean;
55
+ stableIds?: boolean;
56
+ navigationGranularity?: string;
57
+ }
58
+ export interface PortableMobileCapability {
59
+ strategy?: string;
60
+ responsive?: boolean;
61
+ supportsResponsiveLayout?: boolean;
62
+ breakpoints?: ReadonlyArray<number>;
63
+ minViewportWidth?: number;
64
+ maxMarks?: number;
65
+ maxAnnotations?: number;
66
+ minimumHitTarget?: number;
67
+ summary?: boolean | string;
68
+ interaction?: PortableMobileInteractionCapability;
69
+ labels?: PortableMobileLabelCapability;
70
+ custom?: PortableMobileCustomCapability;
71
+ }
43
72
  export interface PortableChartCapability {
44
73
  /** Stable chart name (e.g. "BarChart"). */
45
74
  component: string;
@@ -53,6 +82,8 @@ export interface PortableChartCapability {
53
82
  variants?: ReadonlyArray<PortableChartVariant>;
54
83
  /** Static, audience-independent caveats. */
55
84
  caveats?: ReadonlyArray<string>;
85
+ /** Phone-specific design contract for mobile audits and responsive adapters. */
86
+ mobile?: PortableMobileCapability;
56
87
  tags?: ReadonlyArray<string>;
57
88
  }
58
89
  export type PortableReceptionModality = "visual" | "screen-reader" | "sonified" | "agent";
@@ -16,14 +16,32 @@
16
16
  import type { ChartConfig } from "../../export/chartConfig";
17
17
  import type { VegaLiteSpec } from "../fromVegaLite";
18
18
  import type { PortableAnnotated, PortableAudienceProfile, PortableChartCapability } from "./spec";
19
+ import type { PortabilityExportResult } from "./result";
20
+ /** Options for the strict, typed outbound Vega-Lite adapter. */
21
+ export interface ToVegaLiteOptions {
22
+ /**
23
+ * Allow a documented approximation. The default is false, so a caller never
24
+ * receives a visually plausible but semantically different Vega-Lite spec by
25
+ * accident.
26
+ */
27
+ allowLossy?: boolean;
28
+ }
29
+ /** Typed result for Vega-Lite export. A refused result deliberately has no spec. */
30
+ export interface VegaLiteExportResult extends PortabilityExportResult<VegaLiteSpec> {
31
+ spec?: VegaLiteSpec;
32
+ }
33
+ /**
34
+ * Translate a Semiotic ChartConfig into Vega-Lite through an explicit result.
35
+ * Unsupported components are refused by default; pass `allowLossy` only when
36
+ * the caller has chosen to accept the listed semantic loss.
37
+ */
38
+ export declare function toVegaLiteResult(config: ChartConfig, options?: ToVegaLiteOptions): VegaLiteExportResult;
19
39
  /**
20
- * Translate a Semiotic ChartConfig into a Vega-Lite spec. Covers the families
21
- * `fromVegaLite` covers, so the pair round-trips. Constructs unsupported by
22
- * Vega-Lite's single-view core surface a warning rather than a wrong spec.
40
+ * Convenience wrapper for the supported subset. Returns undefined on refusal
41
+ * rather than synthesizing a placeholder chart; use `toVegaLiteResult()` when
42
+ * a caller needs the structured diagnostic and loss report.
23
43
  */
24
- export declare function toVegaLite(config: ChartConfig): VegaLiteSpec & {
25
- warnings?: string[];
26
- };
44
+ export declare function toVegaLite(config: ChartConfig, options?: ToVegaLiteOptions): VegaLiteSpec | undefined;
27
45
  /** The metadata block that rides under `usermeta.idid`. */
28
46
  export interface IDIDVegaLiteMeta {
29
47
  specVersion: string;
@@ -11,6 +11,17 @@ export interface ChartConfig {
11
11
  createdAt: string;
12
12
  /** Optional serialized selection/brush state */
13
13
  selections?: SerializedSelections;
14
+ /** Present for portable/local recipe configs. */
15
+ recipeId?: string;
16
+ portable?: boolean;
17
+ reason?: string;
18
+ warnings?: string[];
19
+ manifest?: {
20
+ name: string;
21
+ intents: string[];
22
+ audience?: string[];
23
+ frameFamily: string;
24
+ };
14
25
  }
15
26
  export interface ToConfigOptions {
16
27
  /** Include data arrays in the config. Default: true */
@@ -205,6 +205,17 @@ export interface RealtimeFrameHandle {
205
205
  * export a chart-specific handle (e.g. `LikertChartHandle`) that
206
206
  * extends this interface and narrows `getScales()`. */
207
207
  getScales?(): unknown | null;
208
+ /** The most recent custom layout result (as returned by the chart's
209
+ * `layout(ctx)` function) — host readback so a page that needs the computed
210
+ * placement (stats, inspectors) doesn't re-run the layout function itself.
211
+ * Null before the first layout completes or when the chart has no custom
212
+ * layout. A failed retry can retain the prior result; use
213
+ * `getLayoutFailure()` to distinguish recovery. Typed as `unknown` at this shared boundary; the family frame
214
+ * handles narrow it to their `LayoutResult` shape. */
215
+ getCustomLayout?(): unknown | null;
216
+ /** Latest structured custom-layout failure. Family frame handles narrow this
217
+ * to `CustomLayoutFailureDiagnostic`; absent on frames without layouts. */
218
+ getLayoutFailure?(): unknown | null;
208
219
  }
209
220
  export interface RealtimeScales {
210
221
  time: ScaleLinear<number, number>;
@@ -51,6 +51,13 @@ export interface AnnotationLayoutConfig {
51
51
  responsive?: boolean | {
52
52
  minWidth?: number;
53
53
  };
54
+ /**
55
+ * Mobile annotation policy. This composes the existing responsive + density +
56
+ * progressive-disclosure passes into a phone-friendly default: keep the core
57
+ * notes persistent, collapse secondary notes, and prefer short/mobile copy
58
+ * when provided. Off by default.
59
+ */
60
+ mobile?: boolean | AnnotationMobileConfig;
54
61
  /**
55
62
  * M5 — cohesion mode (Rahman et al.'s "Cohesion"). `"blended"` lets notes
56
63
  * adopt the chart's visual language (mark colors / chart typography — the
@@ -69,6 +76,28 @@ export interface AnnotationLayoutConfig {
69
76
  audience?: AnnotationAudience;
70
77
  }
71
78
  export type AnnotationCohesion = "blended" | "layer";
79
+ export interface AnnotationMobileConfig {
80
+ /** Width at or below which mobile behavior activates. Default 480px. */
81
+ breakpoint?: number;
82
+ /** Plot-only, callout-list, or hybrid mobile note behavior. */
83
+ strategy?: "plot" | "callout-list" | "hybrid";
84
+ /** Max persistent notes at phone width. Default 2. */
85
+ maxAnnotations?: number;
86
+ /** Maximum notes expected to move into an external mobile callout list. */
87
+ maxCalloutItems?: number;
88
+ /** Minimum notes kept regardless of budget. Default 1. */
89
+ minVisible?: number;
90
+ /** Keep shed notes hidden/revealable rather than dropping them. Default true. */
91
+ progressiveDisclosure?: boolean;
92
+ /** Responsive breakpoint override. Defaults to `breakpoint`. */
93
+ responsive?: boolean | {
94
+ minWidth?: number;
95
+ };
96
+ /** Annotation cohesion to apply at phone width. */
97
+ cohesion?: AnnotationCohesion;
98
+ /** Prefer annotation.mobileText / shortText for label text. Default true. */
99
+ preferShortText?: boolean;
100
+ }
72
101
  /** Structural subset of `AudienceProfile` the annotation layer reads — anything
73
102
  * with a per-chart `familiarity` map satisfies it, so a real `AudienceProfile`
74
103
  * can be passed directly without coupling `recipes` to the `ai` module. */