@tetrascience-npm/tetrascience-react-ui 0.7.0-beta.108.1 → 0.7.0-beta.128.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 (439) hide show
  1. package/README.md +2 -2
  2. package/dist/components/ai/chain-of-thought.cjs +1 -1
  3. package/dist/components/ai/chain-of-thought.cjs.map +1 -1
  4. package/dist/components/ai/chain-of-thought.js +1 -1
  5. package/dist/components/ai/chain-of-thought.js.map +1 -1
  6. package/dist/components/ai/confirmation.cjs +1 -1
  7. package/dist/components/ai/confirmation.cjs.map +1 -1
  8. package/dist/components/ai/confirmation.js +1 -1
  9. package/dist/components/ai/confirmation.js.map +1 -1
  10. package/dist/components/ai/context.cjs +1 -1
  11. package/dist/components/ai/context.cjs.map +1 -1
  12. package/dist/components/ai/context.js +36 -35
  13. package/dist/components/ai/context.js.map +1 -1
  14. package/dist/components/ai/message.cjs +1 -1
  15. package/dist/components/ai/message.cjs.map +1 -1
  16. package/dist/components/ai/message.js +68 -68
  17. package/dist/components/ai/message.js.map +1 -1
  18. package/dist/components/ai/prompt-input.cjs +1 -1
  19. package/dist/components/ai/prompt-input.cjs.map +1 -1
  20. package/dist/components/ai/prompt-input.js +4 -2
  21. package/dist/components/ai/prompt-input.js.map +1 -1
  22. package/dist/components/ai/queue.cjs +1 -1
  23. package/dist/components/ai/queue.cjs.map +1 -1
  24. package/dist/components/ai/queue.js +9 -9
  25. package/dist/components/ai/queue.js.map +1 -1
  26. package/dist/components/ai/reasoning.cjs +1 -1
  27. package/dist/components/ai/reasoning.cjs.map +1 -1
  28. package/dist/components/ai/reasoning.js +67 -67
  29. package/dist/components/ai/reasoning.js.map +1 -1
  30. package/dist/components/ai/stream-status.cjs +1 -1
  31. package/dist/components/ai/stream-status.cjs.map +1 -1
  32. package/dist/components/ai/stream-status.js +41 -39
  33. package/dist/components/ai/stream-status.js.map +1 -1
  34. package/dist/components/ai/streamdown-code-plugin.cjs +2 -0
  35. package/dist/components/ai/streamdown-code-plugin.cjs.map +1 -0
  36. package/dist/components/ai/streamdown-code-plugin.js +42 -0
  37. package/dist/components/ai/streamdown-code-plugin.js.map +1 -0
  38. package/dist/components/ai/streamdown-plugins.cjs +2 -0
  39. package/dist/components/ai/streamdown-plugins.cjs.map +1 -0
  40. package/dist/components/ai/streamdown-plugins.js +14 -0
  41. package/dist/components/ai/streamdown-plugins.js.map +1 -0
  42. package/dist/components/ai/task.cjs +1 -1
  43. package/dist/components/ai/task.cjs.map +1 -1
  44. package/dist/components/ai/task.js +18 -11
  45. package/dist/components/ai/task.js.map +1 -1
  46. package/dist/components/ai/tool.cjs +1 -1
  47. package/dist/components/ai/tool.cjs.map +1 -1
  48. package/dist/components/ai/tool.js +51 -55
  49. package/dist/components/ai/tool.js.map +1 -1
  50. package/dist/components/ai/use-streamdown-plugins.cjs +2 -0
  51. package/dist/components/ai/use-streamdown-plugins.cjs.map +1 -0
  52. package/dist/components/ai/use-streamdown-plugins.js +25 -0
  53. package/dist/components/ai/use-streamdown-plugins.js.map +1 -0
  54. package/dist/components/charts/AreaPlot/AreaPlot.cjs +2 -0
  55. package/dist/components/charts/AreaPlot/AreaPlot.cjs.map +1 -0
  56. package/dist/components/charts/AreaPlot/AreaPlot.js +270 -0
  57. package/dist/components/charts/AreaPlot/AreaPlot.js.map +1 -0
  58. package/dist/components/charts/BarChart/BarChart.cjs +2 -0
  59. package/dist/components/charts/BarChart/BarChart.cjs.map +1 -0
  60. package/dist/components/charts/BarChart/BarChart.js +219 -0
  61. package/dist/components/charts/BarChart/BarChart.js.map +1 -0
  62. package/dist/components/charts/BoxPlot/BoxPlot.cjs +2 -0
  63. package/dist/components/charts/BoxPlot/BoxPlot.cjs.map +1 -0
  64. package/dist/components/charts/{Boxplot/Boxplot.js → BoxPlot/BoxPlot.js} +78 -79
  65. package/dist/components/charts/BoxPlot/BoxPlot.js.map +1 -0
  66. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +1 -1
  67. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -1
  68. package/dist/components/charts/ChartTooltip/ChartTooltip.js +22 -22
  69. package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -1
  70. package/dist/components/charts/Chromatogram/Chromatogram.cjs +1 -1
  71. package/dist/components/charts/Chromatogram/Chromatogram.cjs.map +1 -1
  72. package/dist/components/charts/Chromatogram/Chromatogram.js +232 -170
  73. package/dist/components/charts/Chromatogram/Chromatogram.js.map +1 -1
  74. package/dist/components/charts/Chromatogram/annotations.cjs +2 -0
  75. package/dist/components/charts/Chromatogram/annotations.cjs.map +1 -0
  76. package/dist/components/charts/Chromatogram/annotations.js +137 -0
  77. package/dist/components/charts/Chromatogram/annotations.js.map +1 -0
  78. package/dist/components/charts/Chromatogram/boundaryMarkers.cjs.map +1 -0
  79. package/dist/components/charts/Chromatogram/boundaryMarkers.js.map +1 -0
  80. package/dist/components/charts/Chromatogram/constants.cjs.map +1 -0
  81. package/dist/components/charts/Chromatogram/constants.js.map +1 -0
  82. package/dist/components/charts/Chromatogram/dataProcessing.cjs.map +1 -0
  83. package/dist/components/charts/Chromatogram/dataProcessing.js.map +1 -0
  84. package/dist/components/charts/Chromatogram/peakDetection.cjs.map +1 -0
  85. package/dist/components/charts/Chromatogram/peakDetection.js.map +1 -0
  86. package/dist/components/charts/Chromatogram/plotBuilder.cjs +2 -0
  87. package/dist/components/charts/Chromatogram/plotBuilder.cjs.map +1 -0
  88. package/dist/components/charts/Chromatogram/plotBuilder.js +216 -0
  89. package/dist/components/charts/Chromatogram/plotBuilder.js.map +1 -0
  90. package/dist/components/charts/Chromatogram/regionOverlays.cjs.map +1 -0
  91. package/dist/components/charts/Chromatogram/regionOverlays.js.map +1 -0
  92. package/dist/components/charts/Electropherogram/Electropherogram.cjs +2 -0
  93. package/dist/components/charts/Electropherogram/Electropherogram.cjs.map +1 -0
  94. package/dist/components/charts/Electropherogram/Electropherogram.js +180 -0
  95. package/dist/components/charts/Electropherogram/Electropherogram.js.map +1 -0
  96. package/dist/components/charts/Histogram/Histogram.cjs +1 -1
  97. package/dist/components/charts/Histogram/Histogram.cjs.map +1 -1
  98. package/dist/components/charts/Histogram/Histogram.js +107 -108
  99. package/dist/components/charts/Histogram/Histogram.js.map +1 -1
  100. package/dist/components/charts/LinePlot/LinePlot.cjs +2 -0
  101. package/dist/components/charts/LinePlot/LinePlot.cjs.map +1 -0
  102. package/dist/components/charts/LinePlot/LinePlot.js +224 -0
  103. package/dist/components/charts/LinePlot/LinePlot.js.map +1 -0
  104. package/dist/components/charts/PieChart/PieChart.cjs +1 -1
  105. package/dist/components/charts/PieChart/PieChart.cjs.map +1 -1
  106. package/dist/components/charts/PieChart/PieChart.js +62 -61
  107. package/dist/components/charts/PieChart/PieChart.js.map +1 -1
  108. package/dist/components/charts/PlateMap/PlateMap.cjs +1 -1
  109. package/dist/components/charts/PlateMap/PlateMap.cjs.map +1 -1
  110. package/dist/components/charts/PlateMap/PlateMap.js +246 -242
  111. package/dist/components/charts/PlateMap/PlateMap.js.map +1 -1
  112. package/dist/components/charts/ScatterPlot/ScatterPlot.cjs +2 -0
  113. package/dist/components/charts/ScatterPlot/ScatterPlot.cjs.map +1 -0
  114. package/dist/components/charts/ScatterPlot/ScatterPlot.js +252 -0
  115. package/dist/components/charts/ScatterPlot/ScatterPlot.js.map +1 -0
  116. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs +2 -0
  117. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs.map +1 -0
  118. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.js +215 -0
  119. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.js.map +1 -0
  120. package/dist/components/charts/ScatterPlotInteractive/constants.cjs +2 -0
  121. package/dist/components/charts/ScatterPlotInteractive/constants.cjs.map +1 -0
  122. package/dist/components/charts/ScatterPlotInteractive/constants.js +38 -0
  123. package/dist/components/charts/ScatterPlotInteractive/constants.js.map +1 -0
  124. package/dist/components/charts/ScatterPlotInteractive/utils.cjs +2 -0
  125. package/dist/components/charts/ScatterPlotInteractive/utils.cjs.map +1 -0
  126. package/dist/components/charts/ScatterPlotInteractive/utils.js +261 -0
  127. package/dist/components/charts/ScatterPlotInteractive/utils.js.map +1 -0
  128. package/dist/components/charts/StackedChromatogram/StackedChromatogram.cjs +2 -0
  129. package/dist/components/charts/StackedChromatogram/StackedChromatogram.cjs.map +1 -0
  130. package/dist/components/charts/StackedChromatogram/StackedChromatogram.js +40 -0
  131. package/dist/components/charts/StackedChromatogram/StackedChromatogram.js.map +1 -0
  132. package/dist/components/charts/StackedChromatogram/transforms.cjs.map +1 -0
  133. package/dist/components/charts/StackedChromatogram/transforms.js.map +1 -0
  134. package/dist/components/charts/plotly-loader.cjs +2 -0
  135. package/dist/components/charts/plotly-loader.cjs.map +1 -0
  136. package/dist/components/charts/plotly-loader.js +22 -0
  137. package/dist/components/charts/plotly-loader.js.map +1 -0
  138. package/dist/components/composed/AssistantLayout/AssistantLayout.cjs +2 -0
  139. package/dist/components/composed/AssistantLayout/AssistantLayout.cjs.map +1 -0
  140. package/dist/components/composed/AssistantLayout/AssistantLayout.js +142 -0
  141. package/dist/components/composed/AssistantLayout/AssistantLayout.js.map +1 -0
  142. package/dist/components/composed/AssistantLayout/dockLayout.cjs +2 -0
  143. package/dist/components/composed/AssistantLayout/dockLayout.cjs.map +1 -0
  144. package/dist/components/composed/AssistantLayout/dockLayout.js +10 -0
  145. package/dist/components/composed/AssistantLayout/dockLayout.js.map +1 -0
  146. package/dist/components/composed/Chat/Chat.cjs +1 -1
  147. package/dist/components/composed/Chat/Chat.cjs.map +1 -1
  148. package/dist/components/composed/Chat/Chat.js +23 -23
  149. package/dist/components/composed/Chat/Chat.js.map +1 -1
  150. package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs +1 -1
  151. package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs.map +1 -1
  152. package/dist/components/composed/ConfirmDialog/ConfirmDialog.js +33 -29
  153. package/dist/components/composed/ConfirmDialog/ConfirmDialog.js.map +1 -1
  154. package/dist/components/composed/DataAppShell/CollapseButton.cjs +2 -0
  155. package/dist/components/composed/DataAppShell/CollapseButton.cjs.map +1 -0
  156. package/dist/components/composed/DataAppShell/CollapseButton.js +42 -0
  157. package/dist/components/composed/DataAppShell/CollapseButton.js.map +1 -0
  158. package/dist/components/composed/DataAppShell/DataAppShell.cjs +1 -1
  159. package/dist/components/composed/DataAppShell/DataAppShell.cjs.map +1 -1
  160. package/dist/components/composed/DataAppShell/DataAppShell.js +349 -313
  161. package/dist/components/composed/DataAppShell/DataAppShell.js.map +1 -1
  162. package/dist/components/composed/DataAppShell/PrimaryNav.cjs +2 -0
  163. package/dist/components/composed/DataAppShell/PrimaryNav.cjs.map +1 -0
  164. package/dist/components/composed/DataAppShell/PrimaryNav.js +268 -0
  165. package/dist/components/composed/DataAppShell/PrimaryNav.js.map +1 -0
  166. package/dist/components/composed/DataAppShell/RightPanel.cjs +2 -0
  167. package/dist/components/composed/DataAppShell/RightPanel.cjs.map +1 -0
  168. package/dist/components/composed/DataAppShell/RightPanel.js +282 -0
  169. package/dist/components/composed/DataAppShell/RightPanel.js.map +1 -0
  170. package/dist/components/composed/DataAppShell/SecondaryNav.cjs +2 -0
  171. package/dist/components/composed/DataAppShell/SecondaryNav.cjs.map +1 -0
  172. package/dist/components/composed/DataAppShell/SecondaryNav.js +364 -0
  173. package/dist/components/composed/DataAppShell/SecondaryNav.js.map +1 -0
  174. package/dist/components/composed/DataAppShell/ShellContext.cjs +2 -0
  175. package/dist/components/composed/DataAppShell/ShellContext.cjs.map +1 -0
  176. package/dist/components/composed/DataAppShell/ShellContext.js +23 -0
  177. package/dist/components/composed/DataAppShell/ShellContext.js.map +1 -0
  178. package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs +2 -0
  179. package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs.map +1 -0
  180. package/dist/components/composed/MoleculeStructure/MoleculeStructure.js +87 -0
  181. package/dist/components/composed/MoleculeStructure/MoleculeStructure.js.map +1 -0
  182. package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs +2 -0
  183. package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs.map +1 -0
  184. package/dist/components/composed/MoleculeStructure/rdkit-loader.js +89 -0
  185. package/dist/components/composed/MoleculeStructure/rdkit-loader.js.map +1 -0
  186. package/dist/components/composed/MoleculeStructure/use-rdkit.cjs +2 -0
  187. package/dist/components/composed/MoleculeStructure/use-rdkit.cjs.map +1 -0
  188. package/dist/components/composed/MoleculeStructure/use-rdkit.js +19 -0
  189. package/dist/components/composed/MoleculeStructure/use-rdkit.js.map +1 -0
  190. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs +1 -1
  191. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs.map +1 -1
  192. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js +17 -17
  193. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js.map +1 -1
  194. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs +1 -1
  195. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs.map +1 -1
  196. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js +33 -33
  197. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js.map +1 -1
  198. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs +1 -1
  199. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs.map +1 -1
  200. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js +7 -7
  201. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js.map +1 -1
  202. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs +1 -1
  203. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs.map +1 -1
  204. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js +1 -1
  205. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js.map +1 -1
  206. package/dist/components/composed/PlateMapEditor/WellLegend.cjs +1 -1
  207. package/dist/components/composed/PlateMapEditor/WellLegend.cjs.map +1 -1
  208. package/dist/components/composed/PlateMapEditor/WellLegend.js +24 -12
  209. package/dist/components/composed/PlateMapEditor/WellLegend.js.map +1 -1
  210. package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs +1 -1
  211. package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs.map +1 -1
  212. package/dist/components/composed/PlateMapEditor/WellManifestTable.js +1 -1
  213. package/dist/components/composed/PlateMapEditor/WellManifestTable.js.map +1 -1
  214. package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs +1 -1
  215. package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs.map +1 -1
  216. package/dist/components/composed/TdpSearch/components/DefaultFilters.js +3 -3
  217. package/dist/components/composed/TdpSearch/components/DefaultFilters.js.map +1 -1
  218. package/dist/components/composed/TopBar/TopBar.cjs +2 -0
  219. package/dist/components/composed/TopBar/TopBar.cjs.map +1 -0
  220. package/dist/components/composed/TopBar/TopBar.js +56 -0
  221. package/dist/components/composed/TopBar/TopBar.js.map +1 -0
  222. package/dist/components/composed/UserMenu/UserMenu.cjs +2 -0
  223. package/dist/components/composed/UserMenu/UserMenu.cjs.map +1 -0
  224. package/dist/components/composed/UserMenu/UserMenu.js +99 -0
  225. package/dist/components/composed/UserMenu/UserMenu.js.map +1 -0
  226. package/dist/components/composed/tdp-link.cjs +1 -1
  227. package/dist/components/composed/tdp-link.cjs.map +1 -1
  228. package/dist/components/composed/tdp-link.js +5 -5
  229. package/dist/components/composed/tdp-link.js.map +1 -1
  230. package/dist/components/ui/alert.cjs +1 -1
  231. package/dist/components/ui/alert.cjs.map +1 -1
  232. package/dist/components/ui/alert.js +12 -12
  233. package/dist/components/ui/alert.js.map +1 -1
  234. package/dist/components/ui/badge.cjs +1 -1
  235. package/dist/components/ui/badge.cjs.map +1 -1
  236. package/dist/components/ui/badge.js +14 -14
  237. package/dist/components/ui/badge.js.map +1 -1
  238. package/dist/components/ui/banner.cjs +1 -1
  239. package/dist/components/ui/banner.cjs.map +1 -1
  240. package/dist/components/ui/banner.js +17 -17
  241. package/dist/components/ui/banner.js.map +1 -1
  242. package/dist/components/ui/button.cjs +1 -1
  243. package/dist/components/ui/button.cjs.map +1 -1
  244. package/dist/components/ui/button.js +16 -16
  245. package/dist/components/ui/button.js.map +1 -1
  246. package/dist/components/ui/calendar.cjs +1 -1
  247. package/dist/components/ui/calendar.cjs.map +1 -1
  248. package/dist/components/ui/calendar.js +3 -3
  249. package/dist/components/ui/calendar.js.map +1 -1
  250. package/dist/components/ui/code-block.cjs +3 -3
  251. package/dist/components/ui/code-block.cjs.map +1 -1
  252. package/dist/components/ui/code-block.js +136 -118
  253. package/dist/components/ui/code-block.js.map +1 -1
  254. package/dist/components/ui/code-editor.cjs +1 -1
  255. package/dist/components/ui/code-editor.cjs.map +1 -1
  256. package/dist/components/ui/code-editor.js +14 -12
  257. package/dist/components/ui/code-editor.js.map +1 -1
  258. package/dist/components/ui/combobox.cjs +1 -1
  259. package/dist/components/ui/combobox.cjs.map +1 -1
  260. package/dist/components/ui/combobox.js +33 -29
  261. package/dist/components/ui/combobox.js.map +1 -1
  262. package/dist/components/ui/command.cjs +1 -1
  263. package/dist/components/ui/command.cjs.map +1 -1
  264. package/dist/components/ui/command.js +81 -77
  265. package/dist/components/ui/command.js.map +1 -1
  266. package/dist/components/ui/context-menu.cjs +1 -1
  267. package/dist/components/ui/context-menu.cjs.map +1 -1
  268. package/dist/components/ui/context-menu.js +13 -13
  269. package/dist/components/ui/context-menu.js.map +1 -1
  270. package/dist/components/ui/data-table/data-table-column-toggle.cjs +1 -1
  271. package/dist/components/ui/data-table/data-table-column-toggle.cjs.map +1 -1
  272. package/dist/components/ui/data-table/data-table-column-toggle.js +70 -62
  273. package/dist/components/ui/data-table/data-table-column-toggle.js.map +1 -1
  274. package/dist/components/ui/data-table/data-table-filter.cjs +1 -1
  275. package/dist/components/ui/data-table/data-table-filter.cjs.map +1 -1
  276. package/dist/components/ui/data-table/data-table-filter.js +24 -23
  277. package/dist/components/ui/data-table/data-table-filter.js.map +1 -1
  278. package/dist/components/ui/data-table/data-table-group.cjs +1 -1
  279. package/dist/components/ui/data-table/data-table-group.cjs.map +1 -1
  280. package/dist/components/ui/data-table/data-table-group.js +17 -16
  281. package/dist/components/ui/data-table/data-table-group.js.map +1 -1
  282. package/dist/components/ui/data-table/data-table-pagination.cjs +1 -1
  283. package/dist/components/ui/data-table/data-table-pagination.cjs.map +1 -1
  284. package/dist/components/ui/data-table/data-table-pagination.js +15 -15
  285. package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
  286. package/dist/components/ui/data-table/data-table.cjs +1 -1
  287. package/dist/components/ui/data-table/data-table.cjs.map +1 -1
  288. package/dist/components/ui/data-table/data-table.js +191 -190
  289. package/dist/components/ui/data-table/data-table.js.map +1 -1
  290. package/dist/components/ui/dialog.cjs +1 -1
  291. package/dist/components/ui/dialog.cjs.map +1 -1
  292. package/dist/components/ui/dialog.js +1 -1
  293. package/dist/components/ui/dialog.js.map +1 -1
  294. package/dist/components/ui/dropdown-menu.cjs +1 -1
  295. package/dist/components/ui/dropdown-menu.cjs.map +1 -1
  296. package/dist/components/ui/dropdown-menu.js +12 -4
  297. package/dist/components/ui/dropdown-menu.js.map +1 -1
  298. package/dist/components/ui/hover-card.cjs +1 -1
  299. package/dist/components/ui/hover-card.cjs.map +1 -1
  300. package/dist/components/ui/hover-card.js +3 -3
  301. package/dist/components/ui/hover-card.js.map +1 -1
  302. package/dist/components/ui/item.cjs +1 -1
  303. package/dist/components/ui/item.cjs.map +1 -1
  304. package/dist/components/ui/item.js +44 -36
  305. package/dist/components/ui/item.js.map +1 -1
  306. package/dist/components/ui/menubar.cjs +1 -1
  307. package/dist/components/ui/menubar.cjs.map +1 -1
  308. package/dist/components/ui/menubar.js +2 -2
  309. package/dist/components/ui/menubar.js.map +1 -1
  310. package/dist/components/ui/navigation-menu.cjs +1 -1
  311. package/dist/components/ui/navigation-menu.cjs.map +1 -1
  312. package/dist/components/ui/navigation-menu.js +1 -1
  313. package/dist/components/ui/navigation-menu.js.map +1 -1
  314. package/dist/components/ui/popover.cjs +1 -1
  315. package/dist/components/ui/popover.cjs.map +1 -1
  316. package/dist/components/ui/popover.js +1 -1
  317. package/dist/components/ui/popover.js.map +1 -1
  318. package/dist/components/ui/scroll-area.cjs +1 -1
  319. package/dist/components/ui/scroll-area.cjs.map +1 -1
  320. package/dist/components/ui/scroll-area.js +1 -0
  321. package/dist/components/ui/scroll-area.js.map +1 -1
  322. package/dist/components/ui/select.cjs +1 -1
  323. package/dist/components/ui/select.cjs.map +1 -1
  324. package/dist/components/ui/select.js +1 -1
  325. package/dist/components/ui/select.js.map +1 -1
  326. package/dist/components/ui/sheet.cjs +1 -1
  327. package/dist/components/ui/sheet.cjs.map +1 -1
  328. package/dist/components/ui/sheet.js +5 -5
  329. package/dist/components/ui/sheet.js.map +1 -1
  330. package/dist/components/ui/sidebar.cjs +1 -1
  331. package/dist/components/ui/sidebar.cjs.map +1 -1
  332. package/dist/components/ui/sidebar.js +2 -2
  333. package/dist/components/ui/sidebar.js.map +1 -1
  334. package/dist/components/ui/slider.cjs +1 -1
  335. package/dist/components/ui/slider.cjs.map +1 -1
  336. package/dist/components/ui/slider.js +10 -9
  337. package/dist/components/ui/slider.js.map +1 -1
  338. package/dist/components/ui/sonner.cjs +1 -1
  339. package/dist/components/ui/sonner.cjs.map +1 -1
  340. package/dist/components/ui/sonner.js +25 -10
  341. package/dist/components/ui/sonner.js.map +1 -1
  342. package/dist/components/ui/table.cjs +1 -1
  343. package/dist/components/ui/table.cjs.map +1 -1
  344. package/dist/components/ui/table.js +1 -0
  345. package/dist/components/ui/table.js.map +1 -1
  346. package/dist/components/ui/tabs.cjs +1 -1
  347. package/dist/components/ui/tabs.cjs.map +1 -1
  348. package/dist/components/ui/tabs.js +18 -18
  349. package/dist/components/ui/tabs.js.map +1 -1
  350. package/dist/components/ui/tetra-molecule-icon.cjs +2 -0
  351. package/dist/components/ui/tetra-molecule-icon.cjs.map +1 -0
  352. package/dist/components/ui/tetra-molecule-icon.js +49 -0
  353. package/dist/components/ui/tetra-molecule-icon.js.map +1 -0
  354. package/dist/components/ui/toggle-group.cjs +1 -1
  355. package/dist/components/ui/toggle-group.cjs.map +1 -1
  356. package/dist/components/ui/toggle-group.js +35 -31
  357. package/dist/components/ui/toggle-group.js.map +1 -1
  358. package/dist/hooks/use-plotly-theme.cjs +1 -1
  359. package/dist/hooks/use-plotly-theme.cjs.map +1 -1
  360. package/dist/hooks/use-plotly-theme.js +4 -3
  361. package/dist/hooks/use-plotly-theme.js.map +1 -1
  362. package/dist/index.cjs +1 -1
  363. package/dist/index.css +1 -1
  364. package/dist/index.d.ts +1073 -136
  365. package/dist/index.js +698 -647
  366. package/dist/index.js.map +1 -1
  367. package/dist/index.tailwind.css +1 -1
  368. package/dist/lib/shiki.cjs +2 -0
  369. package/dist/lib/shiki.cjs.map +1 -0
  370. package/dist/lib/shiki.js +72 -0
  371. package/dist/lib/shiki.js.map +1 -0
  372. package/package.json +23 -12
  373. package/dist/components/charts/AreaGraph/AreaGraph.cjs +0 -2
  374. package/dist/components/charts/AreaGraph/AreaGraph.cjs.map +0 -1
  375. package/dist/components/charts/AreaGraph/AreaGraph.js +0 -271
  376. package/dist/components/charts/AreaGraph/AreaGraph.js.map +0 -1
  377. package/dist/components/charts/BarGraph/BarGraph.cjs +0 -2
  378. package/dist/components/charts/BarGraph/BarGraph.cjs.map +0 -1
  379. package/dist/components/charts/BarGraph/BarGraph.js +0 -220
  380. package/dist/components/charts/BarGraph/BarGraph.js.map +0 -1
  381. package/dist/components/charts/Boxplot/Boxplot.cjs +0 -2
  382. package/dist/components/charts/Boxplot/Boxplot.cjs.map +0 -1
  383. package/dist/components/charts/Boxplot/Boxplot.js.map +0 -1
  384. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs +0 -2
  385. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs.map +0 -1
  386. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js +0 -241
  387. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js.map +0 -1
  388. package/dist/components/charts/ChromatogramChart/annotations.cjs +0 -2
  389. package/dist/components/charts/ChromatogramChart/annotations.cjs.map +0 -1
  390. package/dist/components/charts/ChromatogramChart/annotations.js +0 -136
  391. package/dist/components/charts/ChromatogramChart/annotations.js.map +0 -1
  392. package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs.map +0 -1
  393. package/dist/components/charts/ChromatogramChart/boundaryMarkers.js.map +0 -1
  394. package/dist/components/charts/ChromatogramChart/constants.cjs.map +0 -1
  395. package/dist/components/charts/ChromatogramChart/constants.js.map +0 -1
  396. package/dist/components/charts/ChromatogramChart/dataProcessing.cjs.map +0 -1
  397. package/dist/components/charts/ChromatogramChart/dataProcessing.js.map +0 -1
  398. package/dist/components/charts/ChromatogramChart/peakDetection.cjs.map +0 -1
  399. package/dist/components/charts/ChromatogramChart/peakDetection.js.map +0 -1
  400. package/dist/components/charts/ChromatogramChart/plotBuilder.cjs +0 -2
  401. package/dist/components/charts/ChromatogramChart/plotBuilder.cjs.map +0 -1
  402. package/dist/components/charts/ChromatogramChart/plotBuilder.js +0 -207
  403. package/dist/components/charts/ChromatogramChart/plotBuilder.js.map +0 -1
  404. package/dist/components/charts/ChromatogramChart/regionOverlays.cjs.map +0 -1
  405. package/dist/components/charts/ChromatogramChart/regionOverlays.js.map +0 -1
  406. package/dist/components/charts/DotPlot/DotPlot.cjs +0 -2
  407. package/dist/components/charts/DotPlot/DotPlot.cjs.map +0 -1
  408. package/dist/components/charts/DotPlot/DotPlot.js +0 -208
  409. package/dist/components/charts/DotPlot/DotPlot.js.map +0 -1
  410. package/dist/components/charts/Heatmap/Heatmap.cjs +0 -2
  411. package/dist/components/charts/Heatmap/Heatmap.cjs.map +0 -1
  412. package/dist/components/charts/Heatmap/Heatmap.js +0 -67
  413. package/dist/components/charts/Heatmap/Heatmap.js.map +0 -1
  414. package/dist/components/charts/LineGraph/LineGraph.cjs +0 -2
  415. package/dist/components/charts/LineGraph/LineGraph.cjs.map +0 -1
  416. package/dist/components/charts/LineGraph/LineGraph.js +0 -225
  417. package/dist/components/charts/LineGraph/LineGraph.js.map +0 -1
  418. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs +0 -2
  419. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs.map +0 -1
  420. package/dist/components/charts/ScatterGraph/ScatterGraph.js +0 -234
  421. package/dist/components/charts/ScatterGraph/ScatterGraph.js.map +0 -1
  422. package/dist/components/charts/StackedChromatogramChart/StackedChromatogramChart.cjs +0 -2
  423. package/dist/components/charts/StackedChromatogramChart/StackedChromatogramChart.cjs.map +0 -1
  424. package/dist/components/charts/StackedChromatogramChart/StackedChromatogramChart.js +0 -40
  425. package/dist/components/charts/StackedChromatogramChart/StackedChromatogramChart.js.map +0 -1
  426. package/dist/components/charts/StackedChromatogramChart/transforms.cjs.map +0 -1
  427. package/dist/components/charts/StackedChromatogramChart/transforms.js.map +0 -1
  428. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/boundaryMarkers.cjs +0 -0
  429. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/boundaryMarkers.js +0 -0
  430. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/constants.cjs +0 -0
  431. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/constants.js +0 -0
  432. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/dataProcessing.cjs +0 -0
  433. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/dataProcessing.js +0 -0
  434. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/peakDetection.cjs +0 -0
  435. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/peakDetection.js +0 -0
  436. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/regionOverlays.cjs +0 -0
  437. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/regionOverlays.js +0 -0
  438. /package/dist/components/charts/{StackedChromatogramChart → StackedChromatogram}/transforms.cjs +0 -0
  439. /package/dist/components/charts/{StackedChromatogramChart → StackedChromatogram}/transforms.js +0 -0
package/dist/index.d.ts CHANGED
@@ -31,8 +31,10 @@ import { JSX } from 'react/jsx-runtime';
31
31
  import { JSXElementConstructor } from 'react';
32
32
  import { Label as Label_2 } from 'radix-ui';
33
33
  import { LanguageModelUsage } from 'ai';
34
+ import { LanguageRegistration } from 'shiki/core';
34
35
  import { Locale } from 'react-day-picker';
35
36
  import { LucideIcon } from 'lucide-react';
37
+ import { LucideProps } from 'lucide-react';
36
38
  import { MemoExoticComponent } from 'react';
37
39
  import { Menubar as Menubar_2 } from 'radix-ui';
38
40
  import { MouseEvent as MouseEvent_2 } from 'react';
@@ -42,6 +44,7 @@ import { PaginationState } from '@tanstack/react-table';
42
44
  import { Popover as Popover_2 } from 'radix-ui';
43
45
  import { PropsWithChildren } from 'react';
44
46
  import { RadioGroup as RadioGroup_2 } from 'radix-ui';
47
+ import { RDKitModule } from '@rdkit/rdkit';
45
48
  import * as React_2 from 'react';
46
49
  import { ReactElement } from 'react';
47
50
  import { ReactNode } from 'react';
@@ -132,9 +135,9 @@ export declare interface AreaDataSeries {
132
135
  fill?: "tozeroy" | "tonexty" | "toself";
133
136
  }
134
137
 
135
- export declare const AreaGraph: default_2.FC<AreaGraphProps>;
138
+ export declare const AreaPlot: default_2.FC<AreaPlotProps>;
136
139
 
137
- export declare interface AreaGraphProps {
140
+ export declare interface AreaPlotProps {
138
141
  dataSeries: AreaDataSeries[];
139
142
  /**
140
143
  * Fixed width in pixels. When omitted, the chart fills its container and
@@ -148,7 +151,7 @@ export declare interface AreaGraphProps {
148
151
  height?: number;
149
152
  xRange?: [number, number];
150
153
  yRange?: [number, number];
151
- variant?: AreaGraphVariant;
154
+ variant?: AreaPlotVariant;
152
155
  xTitle?: string;
153
156
  yTitle?: string;
154
157
  title?: string;
@@ -161,10 +164,79 @@ export declare interface AreaGraphProps {
161
164
  xTickText?: string[];
162
165
  }
163
166
 
164
- export declare type AreaGraphVariant = "normal" | "stacked";
167
+ export declare type AreaPlotVariant = "normal" | "stacked";
165
168
 
166
169
  export declare function AspectRatio({ ...props }: React.ComponentProps<typeof AspectRatio_2.Root>): JSX.Element;
167
170
 
171
+ /** Where the AI Assistant panel docks relative to the main content. */
172
+ export declare type AssistantDock = "left" | "right" | "bottom";
173
+
174
+ /**
175
+ * Segmented control of dock icons. Clicking an inactive icon docks + shows the
176
+ * assistant there; clicking the active icon again hides it.
177
+ */
178
+ export declare function AssistantDockControls({ label, className }: AssistantDockControlsProps): JSX.Element;
179
+
180
+ export declare interface AssistantDockControlsProps {
181
+ /** Label shown before the icons. Pass `null` to hide it. */
182
+ label?: React_2.ReactNode;
183
+ className?: string;
184
+ }
185
+
186
+ /**
187
+ * Docks the assistant left / right / bottom of the main content and resizes it
188
+ * with the design-system `Resizable` (react-resizable-panels). Must be rendered
189
+ * inside an `AssistantLayoutProvider`; pair with `AssistantDockControls`.
190
+ *
191
+ * The group is keyed by `dock`, so changing dock remounts the panels. The
192
+ * assistant panel is therefore re-created on redock (its transient state is not
193
+ * preserved across a dock change) — a deliberate trade-off for using the shared
194
+ * resizable primitive rather than a bespoke splitter.
195
+ */
196
+ export declare function AssistantLayout({ assistant, children, minSize, maxSize, className, assistantClassName, contentClassName, }: AssistantLayoutProps): JSX.Element;
197
+
198
+ declare interface AssistantLayoutContextValue {
199
+ /** Where the assistant docks. Persisted. */
200
+ dock: AssistantDock;
201
+ setDock: (dock: AssistantDock) => void;
202
+ /** Assistant size as a percentage of the layout along the dock axis. Persisted. */
203
+ size: number;
204
+ setSize: (size: number) => void;
205
+ /** Whether the assistant is shown. In-memory by default (resets to visible on reload). */
206
+ visible: boolean;
207
+ setVisible: (visible: boolean) => void;
208
+ }
209
+
210
+ export declare interface AssistantLayoutProps {
211
+ /** The AI Assistant panel content (e.g. a `<Chat />`). */
212
+ assistant: React_2.ReactNode;
213
+ /** The main content; fills the remaining space (and the whole body when the assistant is hidden). */
214
+ children: React_2.ReactNode;
215
+ /** Min assistant size as a percentage of the layout. */
216
+ minSize?: number;
217
+ /** Max assistant size as a percentage of the layout. */
218
+ maxSize?: number;
219
+ className?: string;
220
+ assistantClassName?: string;
221
+ contentClassName?: string;
222
+ }
223
+
224
+ export declare function AssistantLayoutProvider({ children, storageKey, defaultDock, defaultSize, defaultVisible, persist, }: AssistantLayoutProviderProps): JSX.Element;
225
+
226
+ export declare interface AssistantLayoutProviderProps {
227
+ children: React_2.ReactNode;
228
+ /** localStorage key prefix for the persisted dock + size. */
229
+ storageKey?: string;
230
+ /** Default dock when nothing is persisted. */
231
+ defaultDock?: AssistantDock;
232
+ /** Default assistant size as a percentage (1–99) of the layout. */
233
+ defaultSize?: number;
234
+ /** Whether the assistant starts visible. */
235
+ defaultVisible?: boolean;
236
+ /** Persist dock + size to localStorage. Defaults to `true`. */
237
+ persist?: boolean;
238
+ }
239
+
168
240
  export declare const Attachment: ({ data, onRemove, className, children, ...props }: AttachmentProps) => JSX.Element;
169
241
 
170
242
  declare interface AttachmentContextValue {
@@ -285,6 +357,22 @@ export declare function AvatarGroupCount({ className, ...props }: React_2.Compon
285
357
 
286
358
  export declare function AvatarImage({ className, ...props }: React_2.ComponentProps<typeof Avatar_2.Image>): JSX.Element;
287
359
 
360
+ /**
361
+ * Axis configuration
362
+ */
363
+ export declare interface AxisConfig {
364
+ /** Axis label */
365
+ title?: string;
366
+ /** Scale type (linear or log) */
367
+ scale?: ScaleType;
368
+ /** Fixed axis range [min, max] */
369
+ range?: [number, number];
370
+ /** Auto-range with optional padding percentage (0-1) */
371
+ autoRange?: boolean;
372
+ /** Padding percentage for auto-range (default: 0.1 = 10%) */
373
+ autoRangePadding?: number;
374
+ }
375
+
288
376
  export declare function Badge({ className, variant, asChild, ...props }: React_2.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
289
377
  asChild?: boolean;
290
378
  }): JSX.Element;
@@ -305,22 +393,9 @@ export declare const bannerVariants: (props?: ({
305
393
  variant?: "destructive" | "info" | "positive" | "warning" | null | undefined;
306
394
  } & ClassProp) | undefined) => string;
307
395
 
308
- export declare interface BarDataSeries {
309
- x: number[];
310
- y: number[];
311
- name: string;
312
- /** Optional color override (auto-assigned from CHART_COLORS if not provided) */
313
- color?: string;
314
- error_y?: {
315
- type: "data";
316
- array: number[];
317
- visible: boolean;
318
- };
319
- }
320
-
321
- export declare const BarGraph: default_2.FC<BarGraphProps>;
396
+ export declare const BarChart: default_2.FC<BarChartProps>;
322
397
 
323
- export declare interface BarGraphProps {
398
+ export declare interface BarChartProps {
324
399
  dataSeries: BarDataSeries[];
325
400
  /**
326
401
  * Fixed width in pixels. When omitted, the chart fills its container and
@@ -334,7 +409,7 @@ export declare interface BarGraphProps {
334
409
  height?: number;
335
410
  xRange?: [number, number];
336
411
  yRange?: [number, number];
337
- variant?: BarGraphVariant;
412
+ variant?: BarChartVariant;
338
413
  xTitle?: string;
339
414
  yTitle?: string;
340
415
  title?: string;
@@ -348,7 +423,20 @@ export declare interface BarGraphProps {
348
423
  xTickText?: string[];
349
424
  }
350
425
 
351
- export declare type BarGraphVariant = "group" | "stack" | "overlay";
426
+ export declare type BarChartVariant = "group" | "stack" | "overlay";
427
+
428
+ export declare interface BarDataSeries {
429
+ x: number[];
430
+ y: number[];
431
+ name: string;
432
+ /** Optional color override (auto-assigned from CHART_COLORS if not provided) */
433
+ color?: string;
434
+ error_y?: {
435
+ type: "data";
436
+ array: number[];
437
+ visible: boolean;
438
+ };
439
+ }
352
440
 
353
441
  /**
354
442
  * Baseline correction method
@@ -378,9 +466,9 @@ export declare interface BoxDataSeries {
378
466
  pointpos?: number;
379
467
  }
380
468
 
381
- export declare const Boxplot: default_2.FC<BoxplotProps>;
469
+ export declare const BoxPlot: default_2.FC<BoxPlotProps>;
382
470
 
383
- export declare interface BoxplotProps {
471
+ export declare interface BoxPlotProps {
384
472
  dataSeries: BoxDataSeries[];
385
473
  /**
386
474
  * Fixed width in pixels. When omitted, the chart fills its container and
@@ -456,7 +544,7 @@ export declare const buttonGroupVariants: (props?: ({
456
544
 
457
545
  export declare const buttonVariants: (props?: ({
458
546
  variant?: "link" | "default" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
459
- size?: "default" | "sm" | "icon" | "xs" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
547
+ size?: "default" | "sm" | "xs" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
460
548
  } & ClassProp) | undefined) => string;
461
549
 
462
550
  export declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, locale, formatters, components, ...props }: React_2.ComponentProps<typeof DayPicker> & {
@@ -747,14 +835,19 @@ export declare interface ChatSource {
747
835
 
748
836
  export declare function Checkbox({ className, ...props }: React_2.ComponentProps<typeof Checkbox_2.Root>): JSX.Element;
749
837
 
750
- export declare const Chromatogram: default_2.FC<ChromatogramProps>;
838
+ declare const CHEVRONS: {
839
+ readonly left: React_2.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React_2.RefAttributes<SVGSVGElement>>;
840
+ readonly right: React_2.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React_2.RefAttributes<SVGSVGElement>>;
841
+ readonly up: React_2.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React_2.RefAttributes<SVGSVGElement>>;
842
+ readonly down: React_2.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React_2.RefAttributes<SVGSVGElement>>;
843
+ };
751
844
 
752
- export declare const ChromatogramChart: default_2.FC<ChromatogramChartProps>;
845
+ export declare const Chromatogram: default_2.FC<ChromatogramProps>;
753
846
 
754
847
  /**
755
- * Props for ChromatogramChart component
848
+ * Props for Chromatogram component
756
849
  */
757
- export declare interface ChromatogramChartProps {
850
+ export declare interface ChromatogramProps {
758
851
  /** Array of data series to display */
759
852
  series: ChromatogramSeries[];
760
853
  /** Chart width in pixels */
@@ -848,19 +941,8 @@ export declare interface ChromatogramChartProps {
848
941
  titleTopMargin?: number;
849
942
  }
850
943
 
851
- export declare interface ChromatogramProps {
852
- data?: PeakData[];
853
- width?: number;
854
- height?: number;
855
- positionInterval?: number;
856
- colorA?: string;
857
- colorT?: string;
858
- colorG?: string;
859
- colorC?: string;
860
- }
861
-
862
944
  /**
863
- * Type definitions for ChromatogramChart component
945
+ * Type definitions for Chromatogram component
864
946
  */
865
947
  /**
866
948
  * Data series for chromatogram visualization
@@ -954,6 +1036,34 @@ export declare function CollapsibleContent({ ...props }: React.ComponentProps<ty
954
1036
 
955
1037
  export declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof Collapsible_2.CollapsibleTrigger>): JSX.Element;
956
1038
 
1039
+ /**
1040
+ * Color mapping configuration
1041
+ */
1042
+ export declare interface ColorMapping {
1043
+ /** Type of mapping: data-driven or static */
1044
+ type: "static" | "continuous" | "categorical";
1045
+ /** Static color value (for type: "static") */
1046
+ value?: string;
1047
+ /** Data field to map (for type: "continuous" | "categorical") */
1048
+ field?: string;
1049
+ /** Color scale for continuous mapping */
1050
+ colorScale?: string | Array<[number, string]>;
1051
+ /** Discrete colors for categorical mapping */
1052
+ categoryColors?: Record<string, string>;
1053
+ /** Min/max values for continuous mapping (auto-calculated if not provided) */
1054
+ min?: number;
1055
+ max?: number;
1056
+ }
1057
+
1058
+ /**
1059
+ * Default colors for the scatter plot. Background, grid, and axis colors
1060
+ * come from the active theme via `usePlotlyTheme`.
1061
+ */
1062
+ export declare const COLORS: {
1063
+ primary: string;
1064
+ selected: string;
1065
+ };
1066
+
957
1067
  /**
958
1068
  * Color scale definition for the heatmap visualization mode.
959
1069
  *
@@ -1019,7 +1129,7 @@ export declare function CommandDialog({ title, description, children, className,
1019
1129
  showCloseButton?: boolean;
1020
1130
  }): JSX.Element;
1021
1131
 
1022
- export declare function CommandEmpty({ className, ...props }: React_2.ComponentProps<typeof Command_2.Empty>): JSX.Element;
1132
+ export declare function CommandEmpty({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element | null;
1023
1133
 
1024
1134
  export declare function CommandGroup({ className, ...props }: React_2.ComponentProps<typeof Command_2.Group>): JSX.Element;
1025
1135
 
@@ -1064,6 +1174,24 @@ declare interface CommonTdpSearchProps {
1064
1174
  renderResults?: (props: TdpResultsRenderProps) => default_2.ReactNode;
1065
1175
  }
1066
1176
 
1177
+ /**
1178
+ * Set process-wide defaults for how RDKit is loaded. Call once, before the
1179
+ * first molecule renders — typically at app startup. Later calls are ignored
1180
+ * once loading has begun.
1181
+ *
1182
+ * Bundled apps should set `wasmSrc` — see the module doc above for why.
1183
+ *
1184
+ * @example
1185
+ * ```ts
1186
+ * // Serve the WASM yourself (e.g. copied into /public) — no CDN, air-gapped.
1187
+ * configureRDKit({ wasmSrc: "/assets/RDKit_minimal.wasm" })
1188
+ * // …or resolve it from the installed package via your bundler (Vite):
1189
+ * import wasmSrc from "@rdkit/rdkit/dist/RDKit_minimal.wasm?url"
1190
+ * configureRDKit({ wasmSrc })
1191
+ * ```
1192
+ */
1193
+ export declare function configureRDKit(config: RDKitLoaderConfig): void;
1194
+
1067
1195
  export declare const Confirmation: ({ className, approval, state, children, ...props }: ConfirmationProps) => JSX.Element | null;
1068
1196
 
1069
1197
  export declare const ConfirmationAccepted: ({ children }: {
@@ -1257,7 +1385,65 @@ export declare interface CostBreakdown {
1257
1385
  cache?: number;
1258
1386
  }
1259
1387
 
1260
- export declare function DataAppShell({ appName, appFullName, appIcon, version, navGroups, onAppNameClick, backToPlatformPath, onBackToPlatform, userMenu, breadcrumbs, onHelpClick, headerActions, sidebarPanel, showNavRail, children, className, }: DataAppShellProps): JSX.Element;
1388
+ export declare function DataAppShell({ appName, appFullName, appIcon, version, navGroups, onAppNameClick, backToPlatformPath, onBackToPlatform, userMenu, breadcrumbs, headerLeft, headerCenter, headerActions, navVariant, primaryNav, sidebarPanel, secondaryBar, rightPanel, showNavRail, showTopBar, collapsed: collapsedProp, defaultCollapsed, onCollapsedChange, hideNavOnCollapse, autoCollapse, children, className, }: DataAppShellProps): JSX.Element;
1389
+
1390
+ export declare interface DataAppShellContextValue {
1391
+ /** Which axis the primary nav renders on. */
1392
+ navVariant: DataAppShellNavVariant;
1393
+ /** The shell's single collapse state — primary + secondary collapse together. */
1394
+ collapsed: boolean;
1395
+ /** Flip the shell collapse state (no-op when the shell is not collapsible). */
1396
+ setCollapsed: (collapsed: boolean) => void;
1397
+ /** When true, collapsing hides the primary rail so one icon rail remains. */
1398
+ hideNavOnCollapse: boolean;
1399
+ }
1400
+
1401
+ export declare type DataAppShellNavVariant = "vertical" | "horizontal";
1402
+
1403
+ /**
1404
+ * The Data App Shell's nav engine — one `navGroups` model rendered in three
1405
+ * placements via `variant`:
1406
+ *
1407
+ * - **rail** — vertical icon-only (48px rail); labels via tooltip, user slot at the bottom
1408
+ * - **sidebar** — vertical icon + label with group headers, user slot at the bottom
1409
+ * - **top** — horizontal bar; user/actions slot on the right
1410
+ *
1411
+ * Active state is either controlled via `activeKey` or per-page `isActive`.
1412
+ * Width/background chrome is owned by the container (the shell's rail wrapper,
1413
+ * a Sheet, or a TopBar) — this component is layout-neutral.
1414
+ */
1415
+ export declare function DataAppShellPrimaryNav({ variant, navGroups, activeKey, onSelect, header, user, actions, renderItem, className, ...props }: DataAppShellPrimaryNavProps): JSX.Element;
1416
+
1417
+ export declare const dataAppShellPrimaryNavItemVariants: (props?: ({
1418
+ variant?: "top" | "rail" | "sidebar" | null | undefined;
1419
+ active?: boolean | null | undefined;
1420
+ } & ClassProp) | undefined) => string;
1421
+
1422
+ export declare interface DataAppShellPrimaryNavProps extends Omit<React_2.ComponentProps<"nav">, "children" | "onSelect">, VariantProps<typeof dataAppShellPrimaryNavVariants> {
1423
+ /** Navigation groups; each group contains one or more pages */
1424
+ navGroups: NavGroup[];
1425
+ /** Controlled active page id — takes precedence over per-page `isActive` */
1426
+ activeKey?: string;
1427
+ /** Called with the selected page id after the page's own `onClick` */
1428
+ onSelect?: (key: string, page: NavPage) => void;
1429
+ /** Slot above the items in `rail`/`sidebar`, left of the items in `top` (e.g. app logo) */
1430
+ header?: React_2.ReactNode;
1431
+ /** User slot (e.g. `<UserMenu/>`) — bottom in `rail`/`sidebar`, right in `top` */
1432
+ user?: React_2.ReactNode;
1433
+ /** Action slot rendered alongside `user` */
1434
+ actions?: React_2.ReactNode;
1435
+ /** Escape hatch — full control over an item's rendering */
1436
+ renderItem?: (page: NavPage, state: {
1437
+ active: boolean;
1438
+ variant: DataAppShellPrimaryNavVariant;
1439
+ }) => React_2.ReactNode;
1440
+ }
1441
+
1442
+ export declare type DataAppShellPrimaryNavVariant = "rail" | "sidebar" | "top";
1443
+
1444
+ export declare const dataAppShellPrimaryNavVariants: (props?: ({
1445
+ variant?: "top" | "rail" | "sidebar" | null | undefined;
1446
+ } & ClassProp) | undefined) => string;
1261
1447
 
1262
1448
  export declare interface DataAppShellProps {
1263
1449
  /** Application name/abbreviation shown in the logo button */
@@ -1280,20 +1466,195 @@ export declare interface DataAppShellProps {
1280
1466
  userMenu?: React_2.ReactNode;
1281
1467
  /** Breadcrumb items from root to current page */
1282
1468
  breadcrumbs?: BreadcrumbItemConfig[];
1283
- /** Callback when the help button is clicked; omit to hide the button */
1284
- onHelpClick?: () => void;
1469
+ /** Slot rendered after the breadcrumbs in the top bar's left group
1470
+ * (e.g. a collapsed horizontal workflow's step dropdown) */
1471
+ headerLeft?: React_2.ReactNode;
1472
+ /** Center "context" slot in the top bar (e.g. a version / status selector) */
1473
+ headerCenter?: React_2.ReactNode;
1285
1474
  /** Slot for right-side actions in the top nav (e.g. data count pills, next button) */
1286
1475
  headerActions?: React_2.ReactNode;
1287
- /** Slot rendered between the icon rail and the content (e.g. WorkflowPanel) */
1476
+ /** Primary nav axis `vertical` (sidebar/rail, default) or `horizontal` (top nav row) */
1477
+ navVariant?: DataAppShellNavVariant;
1478
+ /**
1479
+ * Vertical primary nav presentation:
1480
+ * - `rail` (default) — permanent 48px icon-only rail.
1481
+ * - `sidebar` — collapsible 220px sidebar with labels; its brand-row chevron
1482
+ * collapses it to an icon rail (with an expand chevron under the logo),
1483
+ * driven by the shell's `collapsed` state.
1484
+ */
1485
+ primaryNav?: "rail" | "sidebar";
1486
+ /** Slot rendered between the primary nav and the content (e.g. a vertical `DataAppShellSecondaryNav`) */
1288
1487
  sidebarPanel?: React_2.ReactNode;
1289
- /** Show the desktop icon nav rail. Set false to reclaim width when the panel is collapsed. */
1488
+ /** Full-width zone between the top bar and the content row (e.g. a horizontal `DataAppShellSecondaryNav`) */
1489
+ secondaryBar?: React_2.ReactNode;
1490
+ /** Slot rendered after the content (e.g. a DataAppShellRightPanel) — its FAB anchors to the content row */
1491
+ rightPanel?: React_2.ReactNode;
1492
+ /** Show the primary nav zone. Set false to hide it entirely. */
1290
1493
  showNavRail?: boolean;
1494
+ /** Show the top bar zone. Set false to hide it entirely. */
1495
+ showTopBar?: boolean;
1496
+ /** Controlled collapse state — drives the secondary zone (via ShellContext)
1497
+ * and, with `hideNavOnCollapse`, the primary rail */
1498
+ collapsed?: boolean;
1499
+ /** Uncontrolled initial collapse state */
1500
+ defaultCollapsed?: boolean;
1501
+ /** Called whenever the shell collapse state flips */
1502
+ onCollapsedChange?: (collapsed: boolean) => void;
1503
+ /** Collapsing also hides the primary rail, leaving one icon rail (the secondary
1504
+ * nav) with an expand affordance — or a floating expand button if there is none. */
1505
+ hideNavOnCollapse?: boolean;
1506
+ /** Media query that auto-collapses the shell while it matches.
1507
+ * Pass `false` to disable. Defaults to `"(max-width: 1023px)"`. */
1508
+ autoCollapse?: string | false;
1291
1509
  /** Main content area */
1292
1510
  children: React_2.ReactNode;
1293
1511
  /** Additional className for the root container */
1294
1512
  className?: string;
1295
1513
  }
1296
1514
 
1515
+ /**
1516
+ * Right-hand panel for the Data App Shell (SW-2117), in two variants:
1517
+ *
1518
+ * - `docked` (default) — rendered in normal flow as a flex sibling of the main
1519
+ * content, so opening/resizing pushes main narrower. Width is drag-resizable
1520
+ * and persisted per `id`.
1521
+ * - `overlay` — reuses the design-system `Sheet` (`side="right"`): slides in
1522
+ * over the content with a scrim and does not reflow main.
1523
+ *
1524
+ * In both variants a floating FAB trigger re-opens the panel while it is
1525
+ * closed, and the body is a plain slot — a chat, history list, inspector, ….
1526
+ * Pass it to the shell's `rightPanel` slot, or place it after the main content
1527
+ * inside a `relative` flex row:
1528
+ *
1529
+ * ```tsx
1530
+ * <div className="relative flex flex-1 min-h-0">
1531
+ * <main className="flex-1 min-w-0">…</main>
1532
+ * <DataAppShellRightPanel id="chat" open={open} onOpenChange={setOpen} title="Chat">
1533
+ * …
1534
+ * </DataAppShellRightPanel>
1535
+ * </div>
1536
+ * ```
1537
+ */
1538
+ export declare function DataAppShellRightPanel({ id, open, onOpenChange, variant, resizable, defaultWidth, minWidth, maxWidth, persist, title, icon, headerActions, showTrigger, triggerIcon, triggerLabel, triggerRef, children, className, ref, ...props }: DataAppShellRightPanelProps): JSX.Element | null;
1539
+
1540
+ export declare interface DataAppShellRightPanelProps extends Omit<React_2.ComponentProps<"aside">, "id" | "title"> {
1541
+ /** Unique panel id — keys the persisted width in localStorage. */
1542
+ id: string;
1543
+ /** Whether the panel is shown or collapsed to the FAB trigger. */
1544
+ open: boolean;
1545
+ /** Called with the next open state (close button, Esc, scrim click, FAB). */
1546
+ onOpenChange?: (open: boolean) => void;
1547
+ /**
1548
+ * `docked` (default) — in-flow flex sibling: opening/resizing pushes main narrower.
1549
+ * `overlay` — reuses the design-system `Sheet`: slides in over content with a scrim, no reflow.
1550
+ */
1551
+ variant?: DataAppShellRightPanelVariant;
1552
+ /** Show the drag handle and allow resizing. Defaults to `true`. Docked only — the overlay has a fixed width. */
1553
+ resizable?: boolean;
1554
+ /** Width in px when nothing is persisted yet. */
1555
+ defaultWidth?: number;
1556
+ /** Minimum width in px the panel can be resized to. */
1557
+ minWidth?: number;
1558
+ /** Maximum width in px the panel can be resized to. */
1559
+ maxWidth?: number;
1560
+ /** Persist the width to localStorage. Defaults to `true`. */
1561
+ persist?: boolean;
1562
+ /** Header title. The header row also carries the close button. */
1563
+ title?: React_2.ReactNode;
1564
+ /** Optional element rendered before the title (e.g. an app icon). */
1565
+ icon?: React_2.ReactNode;
1566
+ /** Extra elements rendered in the header, before the close button. */
1567
+ headerActions?: React_2.ReactNode;
1568
+ /** Render the floating FAB trigger while closed. Defaults to `true`. Set
1569
+ * `false` when the trigger lives elsewhere (e.g. an `icon`-variant
1570
+ * `DataAppShellRightPanelTrigger` in the shell's `headerActions`). */
1571
+ showTrigger?: boolean;
1572
+ /** Icon inside the FAB trigger. Defaults to a panel-open icon. */
1573
+ triggerIcon?: React_2.ReactNode;
1574
+ /** Accessible label for the FAB trigger. */
1575
+ triggerLabel?: string;
1576
+ /** Ref to an external trigger (e.g. a top-bar icon trigger) that receives
1577
+ * focus when the panel closes and `showTrigger` is `false`. */
1578
+ triggerRef?: React_2.RefObject<HTMLButtonElement | null>;
1579
+ /** Panel content — any React node (a chat, history list, inspector, …). */
1580
+ children?: React_2.ReactNode;
1581
+ }
1582
+
1583
+ /**
1584
+ * Trigger for a `DataAppShellRightPanel`, in two variants:
1585
+ *
1586
+ * - `fab` (default) — floating action button; what the panel auto-renders
1587
+ * while closed. Positioned `absolute` — place inside a `relative` container
1588
+ * (normally the shell's content area).
1589
+ * - `icon` — ghost icon button sized like the shell's top-bar actions. Place
1590
+ * it in the shell's `headerActions`, set `showTrigger={false}` on the panel,
1591
+ * and pass the same ref to the panel's `triggerRef` so focus returns here
1592
+ * when the panel closes.
1593
+ *
1594
+ * With `asChild` the trigger renders no element of its own and instead merges
1595
+ * onto its child — any clickable element (a link, menu item, custom button)
1596
+ * can act as the trigger.
1597
+ */
1598
+ export declare function DataAppShellRightPanelTrigger({ className, variant, size, asChild, children, ...props }: DataAppShellRightPanelTriggerProps): JSX.Element;
1599
+
1600
+ export declare interface DataAppShellRightPanelTriggerProps extends React_2.ComponentProps<"button">, VariantProps<typeof dataAppShellRightPanelTriggerVariants> {
1601
+ /** Merge the trigger styling/props onto the child element instead of
1602
+ * rendering a `<button>` — makes anything clickable a panel trigger. */
1603
+ asChild?: boolean;
1604
+ }
1605
+
1606
+ export declare const dataAppShellRightPanelTriggerVariants: (props?: ({
1607
+ variant?: "icon" | "fab" | null | undefined;
1608
+ size?: "default" | "lg" | null | undefined;
1609
+ } & ClassProp) | undefined) => string;
1610
+
1611
+ export declare type DataAppShellRightPanelVariant = "docked" | "overlay";
1612
+
1613
+ /**
1614
+ * The Data App Shell's secondary (per-page/step) nav — one `steps` model
1615
+ * rendered on either axis via `orientation`:
1616
+ *
1617
+ * - **vertical** — collapsible left panel; collapses to an icon-only rail
1618
+ * with tooltips and a ▸ expand toggle
1619
+ * - **horizontal** — wizard/stepper row above the main content
1620
+ *
1621
+ * Step status (`done` / `active` / `todo`) is derived linearly from
1622
+ * `activeKey`, or set explicitly per step. Supports one level of nesting.
1623
+ */
1624
+ export declare function DataAppShellSecondaryNav({ orientation, steps, activeKey, onSelect, title, collapsible, collapsed, defaultCollapsed, onCollapsedChange, className, ...props }: DataAppShellSecondaryNavProps): JSX.Element;
1625
+
1626
+ export declare const dataAppShellSecondaryNavItemVariants: (props?: ({
1627
+ orientation?: "horizontal" | "vertical" | "rail" | null | undefined;
1628
+ status?: "done" | "active" | "todo" | null | undefined;
1629
+ } & ClassProp) | undefined) => string;
1630
+
1631
+ export declare type DataAppShellSecondaryNavOrientation = "vertical" | "horizontal";
1632
+
1633
+ export declare interface DataAppShellSecondaryNavProps extends Omit<React_2.ComponentProps<"nav">, "onSelect" | "title">, VariantProps<typeof dataAppShellSecondaryNavVariants> {
1634
+ /** Step entries; one level of nesting via `steps` on a step */
1635
+ steps: NavStep[];
1636
+ /** Controlled active step id — steps before it derive `done`, after it `todo` */
1637
+ activeKey?: string;
1638
+ /** Called with the selected step id after the step resolves as enabled */
1639
+ onSelect?: (key: string, step: NavStep) => void;
1640
+ /** Panel title shown in the vertical header (e.g. "Steps") */
1641
+ title?: React_2.ReactNode;
1642
+ /** Renders the collapse toggle. Vertical collapses to an icon rail;
1643
+ * horizontal collapses to a compact step dropdown. */
1644
+ collapsible?: boolean;
1645
+ /** Controlled collapsed state. When omitted inside a `DataAppShell`, the
1646
+ * shell's single collapse state drives it (one toggle for all zones). */
1647
+ collapsed?: boolean;
1648
+ /** Uncontrolled initial collapsed state */
1649
+ defaultCollapsed?: boolean;
1650
+ /** Called when the collapse toggle flips the state */
1651
+ onCollapsedChange?: (collapsed: boolean) => void;
1652
+ }
1653
+
1654
+ export declare const dataAppShellSecondaryNavVariants: (props?: ({
1655
+ orientation?: "horizontal" | "vertical" | null | undefined;
1656
+ } & ClassProp) | undefined) => string;
1657
+
1297
1658
  export declare function DataTable<TData, TValue>({ columns, data, toolbar, enableSorting, enableColumnVisibility, children, columnOrder: controlledColumnOrder, onColumnOrderChange, columnVisibility: controlledColumnVisibility, onColumnVisibilityChange, columnLabels: controlledColumnLabels, onColumnLabelChange, enablePagination, defaultPageSize, pagination: controlledPagination, onPaginationChange, enableColumnReorder, enableFiltering, filters: controlledFilters, onFiltersChange, filterConfig, manualFiltering, enableGrouping, grouping: controlledGrouping, onGroupingChange, groupConfig, density, className, variant, containerClassName, truncate, }: DataTableProps<TData, TValue>): JSX.Element;
1298
1659
 
1299
1660
  export declare function DataTableColumnToggle({ className }: DataTableColumnToggleProps): JSX.Element | null;
@@ -1368,6 +1729,28 @@ export declare interface DataTableProps<TData, TValue> {
1368
1729
  truncate?: boolean;
1369
1730
  }
1370
1731
 
1732
+ /**
1733
+ * Default category colors (cycle through these)
1734
+ */
1735
+ export declare const DEFAULT_CATEGORY_COLORS: readonly [string, string, string, string, string, string, string, string, string, string, string, string];
1736
+
1737
+ /**
1738
+ * Default color scale for continuous color mapping (CVD-friendly diverging ramp)
1739
+ */
1740
+ export declare const DEFAULT_COLOR_SCALE: Array<[number, string]>;
1741
+
1742
+ /**
1743
+ * Default sizes
1744
+ */
1745
+ export declare const DEFAULT_MARKER_SIZE = 8;
1746
+
1747
+ /**
1748
+ * Default downsampling configuration
1749
+ */
1750
+ export declare const DEFAULT_MAX_POINTS = 5000;
1751
+
1752
+ export declare const DEFAULT_SIZE_RANGE: [number, number];
1753
+
1371
1754
  export declare function Dialog({ ...props }: React_2.ComponentProps<typeof Dialog_2.Root>): JSX.Element;
1372
1755
 
1373
1756
  export declare function DialogBody({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
@@ -1402,39 +1785,34 @@ declare type DismissibleProps = {
1402
1785
  onDismiss?: never;
1403
1786
  };
1404
1787
 
1405
- export declare const DotPlot: default_2.FC<DotPlotProps>;
1406
-
1407
- export declare interface DotPlotDataSeries {
1408
- x: number[];
1409
- y: number[];
1410
- name: string;
1411
- color?: string;
1412
- symbol?: MarkerSymbol_2;
1413
- size?: number;
1788
+ export declare interface DockPanels {
1789
+ /** Resizable group orientation for this dock. */
1790
+ orientation: "horizontal" | "vertical";
1791
+ /** Whether the assistant panel renders before the content panel. */
1792
+ assistantFirst: boolean;
1414
1793
  }
1415
1794
 
1416
- export declare type DotPlotProps = {
1417
- dataSeries: DotPlotDataSeries | DotPlotDataSeries[];
1418
- /**
1419
- * Fixed width in pixels. When omitted, the chart fills its container and
1420
- * tracks the container's width via a `ResizeObserver`.
1421
- */
1422
- width?: number;
1423
- /**
1424
- * Fixed height in pixels. When omitted, the chart fills its container and
1425
- * tracks the container's height via a `ResizeObserver`.
1426
- */
1427
- height?: number;
1428
- title?: string;
1429
- xTitle?: string;
1430
- yTitle?: string;
1431
- variant?: DotPlotVariant;
1432
- markerSize?: number;
1433
- };
1795
+ /**
1796
+ * Maps a dock position to the resizable group's orientation and panel order.
1797
+ * - left → horizontal, assistant first [assistant | content]
1798
+ * - right → horizontal, content first [content | assistant]
1799
+ * - bottom vertical, content first [content / assistant]
1800
+ */
1801
+ export declare function dockPanels(dock: AssistantDock): DockPanels;
1434
1802
 
1435
- export declare type DotPlotVariant = "default" | "stacked";
1803
+ /**
1804
+ * Downsampling configuration for performance optimization
1805
+ */
1806
+ export declare interface DownsamplingConfig {
1807
+ /** Enable downsampling */
1808
+ enabled: boolean;
1809
+ /** Target number of points to display */
1810
+ maxPoints?: number;
1811
+ /** Downsampling strategy */
1812
+ strategy?: "lttb";
1813
+ }
1436
1814
 
1437
- export declare function DropdownMenu({ ...props }: React_2.ComponentProps<typeof DropdownMenu_2.Root>): JSX.Element;
1815
+ export declare function DropdownMenu({ modal, ...props }: React_2.ComponentProps<typeof DropdownMenu_2.Root>): JSX.Element;
1438
1816
 
1439
1817
  export declare function DropdownMenuCheckboxItem({ className, children, checked, inset, ...props }: React_2.ComponentProps<typeof DropdownMenu_2.CheckboxItem> & {
1440
1818
  inset?: boolean;
@@ -1475,6 +1853,19 @@ export declare function DropdownMenuSubTrigger({ className, inset, children, ...
1475
1853
 
1476
1854
  export declare function DropdownMenuTrigger({ ...props }: React_2.ComponentProps<typeof DropdownMenu_2.Trigger>): JSX.Element;
1477
1855
 
1856
+ export declare const Electropherogram: default_2.FC<ElectropherogramProps>;
1857
+
1858
+ export declare interface ElectropherogramProps {
1859
+ data?: PeakData[];
1860
+ width?: number;
1861
+ height?: number;
1862
+ positionInterval?: number;
1863
+ colorA?: string;
1864
+ colorT?: string;
1865
+ colorG?: string;
1866
+ colorC?: string;
1867
+ }
1868
+
1478
1869
  export declare function EmptyState({ variant, title, description, icon, action, className, ...props }: EmptyStateProps): JSX.Element;
1479
1870
 
1480
1871
  export declare interface EmptyStateProps extends React_2.ComponentProps<"div"> {
@@ -1547,12 +1938,18 @@ export declare interface FormSectionProps extends React_2.ComponentProps<"div">
1547
1938
 
1548
1939
  export declare const getAttachmentLabel: (data: AttachmentData) => string;
1549
1940
 
1941
+ /** Derives up to two uppercase initials from a full name. */
1942
+ export declare function getInitials(name: string): string;
1943
+
1550
1944
  export declare const getMediaCategory: (data: AttachmentData) => AttachmentMediaCategory;
1551
1945
 
1552
1946
  export declare function getPlateMapScopedWellId(plateBarcode: string, wellId: WellId): WellId;
1553
1947
 
1554
1948
  export declare const getStatusBadge: (status: ToolPart["state"]) => JSX.Element;
1555
1949
 
1950
+ /** Canonical ids of every language the slim highlighter can load. */
1951
+ export declare function getSupportedCodeBlockLanguages(): string[];
1952
+
1556
1953
  /**
1557
1954
  * TDP Navigation Utilities
1558
1955
  *
@@ -1583,43 +1980,6 @@ export declare interface GroupColumnConfig {
1583
1980
  label?: string;
1584
1981
  }
1585
1982
 
1586
- export declare const Heatmap: default_2.FC<HeatmapProps>;
1587
-
1588
- /**
1589
- * Props for the Heatmap component
1590
- * @deprecated Use PlateMap component instead. Heatmap is now a wrapper around PlateMap for backward compatibility.
1591
- */
1592
- export declare interface HeatmapProps {
1593
- /** 2D array of numeric values */
1594
- data?: number[][];
1595
- /** Custom x-axis labels (column labels) */
1596
- xLabels?: string[] | number[];
1597
- /** Custom y-axis labels (row labels) */
1598
- yLabels?: string[] | number[];
1599
- /** Chart title */
1600
- title?: string;
1601
- /** X-axis title */
1602
- xTitle?: string;
1603
- /** Y-axis title */
1604
- yTitle?: string;
1605
- /** Color scale - string name or array of [position, color] pairs */
1606
- colorscale?: string | Array<[number, string]>;
1607
- /** Chart width in pixels */
1608
- width?: number;
1609
- /** Chart height in pixels */
1610
- height?: number;
1611
- /** Show color scale legend */
1612
- showScale?: boolean;
1613
- /** Number of decimal places for values */
1614
- precision?: number;
1615
- /** Minimum value for color scale */
1616
- zmin?: number;
1617
- /** Maximum value for color scale */
1618
- zmax?: number;
1619
- /** Value unit suffix */
1620
- valueUnit?: string;
1621
- }
1622
-
1623
1983
  export declare const highlightCode: (code: string, language: BundledLanguage, callback?: (result: TokenizedCode) => void) => TokenizedCode | null;
1624
1984
 
1625
1985
  export declare const Histogram: default_2.FC<HistogramProps>;
@@ -1767,7 +2127,7 @@ export declare function ItemDescription({ className, ...props }: React_2.Compone
1767
2127
 
1768
2128
  export declare function ItemFooter({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
1769
2129
 
1770
- export declare function ItemGroup({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
2130
+ export declare function ItemGroup({ className, children, ...props }: React_2.ComponentProps<"div">): JSX.Element;
1771
2131
 
1772
2132
  export declare function ItemHeader({ className, ...props }: React_2.ComponentProps<"div">): JSX.Element;
1773
2133
 
@@ -1792,6 +2152,10 @@ export declare function KbdGroup({ className, ...props }: React.ComponentProps<"
1792
2152
 
1793
2153
  export declare function Label({ className, ...props }: React_2.ComponentProps<typeof Label_2.Root>): JSX.Element;
1794
2154
 
2155
+ declare type LanguageLoader = () => Promise<{
2156
+ default: LanguageRegistration[];
2157
+ }>;
2158
+
1795
2159
  /**
1796
2160
  * Configuration for auto-generated layers when using WellData with `values`.
1797
2161
  *
@@ -1891,9 +2255,9 @@ export declare interface LineDataSeries {
1891
2255
  };
1892
2256
  }
1893
2257
 
1894
- export declare const LineGraph: default_2.FC<LineGraphProps>;
2258
+ export declare const LinePlot: default_2.FC<LinePlotProps>;
1895
2259
 
1896
- export declare type LineGraphProps = {
2260
+ export declare type LinePlotProps = {
1897
2261
  dataSeries: LineDataSeries[];
1898
2262
  /**
1899
2263
  * Fixed width in pixels. When omitted, the chart fills its container and
@@ -1907,7 +2271,7 @@ export declare type LineGraphProps = {
1907
2271
  height?: number;
1908
2272
  xRange?: [number, number];
1909
2273
  yRange?: [number, number];
1910
- variant?: LineGraphVariant;
2274
+ variant?: LinePlotVariant;
1911
2275
  xTitle?: string;
1912
2276
  yTitle?: string;
1913
2277
  title?: string;
@@ -1920,7 +2284,17 @@ export declare type LineGraphProps = {
1920
2284
  xTickText?: string[];
1921
2285
  };
1922
2286
 
1923
- export declare type LineGraphVariant = "lines" | "lines+markers" | "lines+markers+error_bars";
2287
+ export declare type LinePlotVariant = "lines" | "lines+markers" | "lines+markers+error_bars";
2288
+
2289
+ /**
2290
+ * Load and initialise the RDKit module, memoised so the WASM is fetched and
2291
+ * compiled only once per page. Safe to call from many components concurrently;
2292
+ * they all await the same promise.
2293
+ *
2294
+ * @throws if run outside a browser, if `@rdkit/rdkit` isn't installed, or if
2295
+ * the WASM cannot be loaded.
2296
+ */
2297
+ export declare function loadRDKit(): Promise<RDKitModule>;
1924
2298
 
1925
2299
  export declare const LocalReferencedSourcesContext: Context_2<ReferencedSourcesContext | null>;
1926
2300
 
@@ -1937,6 +2311,11 @@ export declare interface ManifestFilterPopoverProps {
1937
2311
  className?: string;
1938
2312
  }
1939
2313
 
2314
+ /**
2315
+ * Marker shape for scatter points
2316
+ */
2317
+ export declare type MarkerShape = "circle" | "square" | "diamond" | "cross" | "x" | "triangle-up" | "triangle-down" | "star";
2318
+
1940
2319
  export declare type MarkerSymbol = "circle" | "circle-open" | "circle-dot" | "circle-open-dot" | "square" | "square-open" | "square-dot" | "square-open-dot" | "diamond" | "diamond-open" | "diamond-dot" | "diamond-open-dot" | "cross" | "cross-open" | "cross-dot" | "cross-open-dot" | "x" | "x-open" | "x-dot" | "x-open-dot" | "triangle-up" | "triangle-up-open" | "triangle-up-dot" | "triangle-up-open-dot" | "triangle-down" | "triangle-down-open" | "triangle-down-dot" | "triangle-down-open-dot" | "triangle-left" | "triangle-left-open" | "triangle-left-dot" | "triangle-left-open-dot" | "triangle-right" | "triangle-right-open" | "triangle-right-dot" | "triangle-right-open-dot" | "triangle-ne" | "triangle-ne-open" | "triangle-ne-dot" | "triangle-ne-open-dot" | "triangle-se" | "triangle-se-open" | "triangle-se-dot" | "triangle-se-open-dot" | "triangle-sw" | "triangle-sw-open" | "triangle-sw-dot" | "triangle-sw-open-dot" | "triangle-nw" | "triangle-nw-open" | "triangle-nw-dot" | "triangle-nw-open-dot" | "pentagon" | "pentagon-open" | "pentagon-dot" | "pentagon-open-dot" | "hexagon" | "hexagon-open" | "hexagon-dot" | "hexagon-open-dot" | "hexagon2" | "hexagon2-open" | "hexagon2-dot" | "hexagon2-open-dot" | "octagon" | "octagon-open" | "octagon-dot" | "octagon-open-dot" | "star" | "star-open" | "star-dot" | "star-open-dot" | "hexagram" | "hexagram-open" | "hexagram-dot" | "hexagram-open-dot" | "star-triangle-up" | "star-triangle-up-open" | "star-triangle-up-dot" | "star-triangle-up-open-dot" | "star-triangle-down" | "star-triangle-down-open" | "star-triangle-down-dot" | "star-triangle-down-open-dot" | "star-square" | "star-square-open" | "star-square-dot" | "star-square-open-dot" | "star-diamond" | "star-diamond-open" | "star-diamond-dot" | "star-diamond-open-dot" | "diamond-tall" | "diamond-tall-open" | "diamond-tall-dot" | "diamond-tall-open-dot" | "diamond-wide" | "diamond-wide-open" | "diamond-wide-dot" | "diamond-wide-open-dot" | "hourglass" | "hourglass-open" | "bowtie" | "bowtie-open" | "circle-cross" | "circle-cross-open" | "circle-x" | "circle-x-open" | "square-cross" | "square-cross-open" | "square-x" | "square-x-open" | "diamond-cross" | "diamond-cross-open" | "diamond-x" | "diamond-x-open" | "cross-thin" | "cross-thin-open" | "x-thin" | "x-thin-open" | "asterisk" | "asterisk-open" | "hash" | "hash-open" | "hash-dot" | "hash-open-dot" | "y-up" | "y-up-open" | "y-down" | "y-down-open" | "y-left" | "y-left-open" | "y-right" | "y-right-open" | "line-ew" | "line-ew-open" | "line-ns" | "line-ns-open" | "line-ne" | "line-ne-open" | "line-nw" | "line-nw-open" | "arrow" | "arrow-open" | "arrow-wide" | "arrow-wide-open";
1941
2320
 
1942
2321
  declare type MarkerSymbol_2 = "circle" | "square" | "diamond" | "triangle-up" | "triangle-down" | "star";
@@ -2102,8 +2481,80 @@ export declare const ModelSelectorTrigger: (props: ModelSelectorTriggerProps) =>
2102
2481
 
2103
2482
  export declare type ModelSelectorTriggerProps = ComponentProps<typeof DialogTrigger>;
2104
2483
 
2484
+ /**
2485
+ * Core cheminformatics primitive: render a 2D chemical structure from a SMILES
2486
+ * string. RDKit's WASM module is loaded lazily on first mount (see
2487
+ * {@link loadRDKit}), so pages that never render a molecule pay nothing for it.
2488
+ *
2489
+ * The output is a vector SVG that fills this component's box — size it with
2490
+ * `className` (e.g. `className="size-32"`). Invalid SMILES render a fallback
2491
+ * rather than throwing.
2492
+ *
2493
+ * @example
2494
+ * ```tsx
2495
+ * <MoleculeStructure smiles="CC(=O)Oc1ccccc1C(=O)O" className="size-40" />
2496
+ * ```
2497
+ */
2498
+ export declare function MoleculeStructure({ smiles, label, dark, alt, drawOptions, loadingContent, errorContent, onError, className, ...props }: MoleculeStructureProps): JSX.Element;
2499
+
2500
+ export declare interface MoleculeStructureProps extends Omit<React_2.ComponentProps<"div">, "children" | "onError"> {
2501
+ /** SMILES string to render as a 2D structure. */
2502
+ smiles: string;
2503
+ /** Optional caption drawn beneath the structure by RDKit. */
2504
+ label?: string;
2505
+ /**
2506
+ * Force dark/light drawing colours. Defaults to following the active theme
2507
+ * (the `.dark` class on the document root).
2508
+ */
2509
+ dark?: boolean;
2510
+ /**
2511
+ * Accessible label for the structure. Defaults to the SMILES string.
2512
+ * Rendered as the SVG group's `aria-label` and the wrapper's title.
2513
+ */
2514
+ alt?: string;
2515
+ /**
2516
+ * Extra RDKit MolDraw2D options. Pass a stable (memoised or module-level)
2517
+ * reference — a new object each render re-parses the SMILES through RDKit.
2518
+ */
2519
+ drawOptions?: Record<string, unknown>;
2520
+ /** Rendered while the WASM module and structure are being prepared. */
2521
+ loadingContent?: React_2.ReactNode;
2522
+ /** Rendered when the SMILES is invalid or RDKit fails to load. */
2523
+ errorContent?: React_2.ReactNode;
2524
+ /** Called once when the SMILES cannot be parsed into a valid molecule. */
2525
+ onError?: (smiles: string) => void;
2526
+ }
2527
+
2528
+ /** Drawing options for {@link moleculeToSvg}. */
2529
+ export declare interface MoleculeSvgOptions {
2530
+ /** Rendered width in pixels. @default 250 */
2531
+ width?: number;
2532
+ /** Rendered height in pixels. @default 200 */
2533
+ height?: number;
2534
+ /** Lighten carbons/bonds so the structure is legible on dark surfaces. */
2535
+ dark?: boolean;
2536
+ /** Optional caption drawn beneath the structure by RDKit. */
2537
+ legend?: string;
2538
+ /**
2539
+ * Extra RDKit MolDraw2D options, merged last. See
2540
+ * https://www.rdkitjs.com/#drawing-molecules-all-options
2541
+ */
2542
+ drawOptions?: Record<string, unknown>;
2543
+ }
2544
+
2545
+ /**
2546
+ * Render a SMILES string to an SVG string using an initialised RDKit module.
2547
+ * Returns `null` when the SMILES cannot be parsed. Frees the underlying C++
2548
+ * molecule before returning, so callers never need to.
2549
+ *
2550
+ * Synchronous by design so it can feed render callbacks that must return a
2551
+ * string (e.g. the interactive scatter's `tooltip.content`) — load RDKit ahead
2552
+ * of time with {@link loadRDKit} or {@link useRDKit}, then call this.
2553
+ */
2554
+ export declare function moleculeToSvg(rdkit: RDKitModule, smiles: string, options?: MoleculeSvgOptions): string | null;
2555
+
2105
2556
  export declare interface NavGroup {
2106
- /** Optional group label shown as a section header in expanded nav */
2557
+ /** Optional group label shown as a section header in the `sidebar` variant */
2107
2558
  label?: string;
2108
2559
  /** Page entries in this group */
2109
2560
  pages: NavPage[];
@@ -2148,12 +2599,35 @@ export declare interface NavPage {
2148
2599
  label: string;
2149
2600
  /** Lucide icon or custom React SVG component */
2150
2601
  icon?: LucideIcon | React_2.FC<React_2.SVGProps<SVGSVGElement>>;
2151
- /** Whether this page is currently active */
2602
+ /** Optional count/status badge overlaid on the icon in `rail`, inline in `sidebar`/`top` */
2603
+ badge?: React_2.ReactNode;
2604
+ /** Whether this page is currently active (ignored when `activeKey` is set on the nav) */
2152
2605
  isActive?: boolean;
2153
2606
  /** Click handler */
2154
2607
  onClick?: () => void;
2155
2608
  }
2156
2609
 
2610
+ export declare interface NavStep {
2611
+ /** Unique identifier */
2612
+ id: string;
2613
+ /** Display label */
2614
+ label: string;
2615
+ /** Lucide icon or custom React SVG component */
2616
+ icon?: LucideIcon | React_2.FC<React_2.SVGProps<SVGSVGElement>>;
2617
+ /** Optional count/status badge */
2618
+ badge?: React_2.ReactNode;
2619
+ /** Explicit status — overrides the linear derivation from `activeKey` */
2620
+ status?: NavStepStatus;
2621
+ /** Disables the step */
2622
+ disabled?: boolean;
2623
+ /** Tooltip/title text explaining why the step is disabled */
2624
+ disabledReason?: string;
2625
+ /** One level of nesting — child steps rendered indented under this step */
2626
+ steps?: NavStep[];
2627
+ }
2628
+
2629
+ export declare type NavStepStatus = "done" | "active" | "todo";
2630
+
2157
2631
  export declare function parsePos(id: WellId, dims: PlateDimensions): {
2158
2632
  row: number;
2159
2633
  col: number;
@@ -2239,7 +2713,7 @@ export declare interface PeakDetectionOptions {
2239
2713
  /**
2240
2714
  * Payload delivered to onPeakClick and onPeakHover callbacks.
2241
2715
  */
2242
- declare interface PeakSelectEvent {
2716
+ export declare interface PeakSelectEvent {
2243
2717
  /** The resolved peak ID (matches id field on PeakAnnotation) */
2244
2718
  id: string;
2245
2719
  /** The annotation object for this peak */
@@ -2263,7 +2737,7 @@ declare interface PeakSelectEvent {
2263
2737
  * unselected.opacity 0.4 (applied when any other peak is selected)
2264
2738
  * hoverLineWidthMultiplier 1.67 (1.5 px → ~2.5 px)
2265
2739
  */
2266
- declare interface PeakSelectionAppearance {
2740
+ export declare interface PeakSelectionAppearance {
2267
2741
  selected?: {
2268
2742
  borderColor?: string;
2269
2743
  backgroundColor?: string;
@@ -2875,6 +3349,24 @@ export declare interface PlateZoomControlProps {
2875
3349
  className?: string;
2876
3350
  }
2877
3351
 
3352
+ /**
3353
+ * Constants for plot layout
3354
+ */
3355
+ export declare const PLOT_CONSTANTS: {
3356
+ MARGIN_LEFT: number;
3357
+ MARGIN_RIGHT: number;
3358
+ MARGIN_TOP: number;
3359
+ MARGIN_BOTTOM: number;
3360
+ TITLE_FONT_SIZE: number;
3361
+ AXIS_TITLE_FONT_SIZE: number;
3362
+ AXIS_TICK_FONT_SIZE: number;
3363
+ LEGEND_FONT_SIZE: number;
3364
+ FONT_FAMILY: string;
3365
+ GRID_WIDTH: number;
3366
+ AXIS_LINE_WIDTH: number;
3367
+ AUTO_RANGE_PADDING: number;
3368
+ };
3369
+
2878
3370
  export declare function Popover({ ...props }: React_2.ComponentProps<typeof Popover_2.Root>): JSX.Element;
2879
3371
 
2880
3372
  export declare function PopoverAnchor({ ...props }: React_2.ComponentProps<typeof Popover_2.Anchor>): JSX.Element;
@@ -3285,6 +3777,61 @@ export declare function RadioGroup({ className, ...props }: React_2.ComponentPro
3285
3777
 
3286
3778
  export declare function RadioGroupItem({ className, ...props }: React_2.ComponentProps<typeof RadioGroup_2.Item>): JSX.Element;
3287
3779
 
3780
+ /**
3781
+ * Loader for the RDKit.js WebAssembly module.
3782
+ *
3783
+ * RDKit ships a ~6.6 MB `.wasm` blob, so it must never be part of the main
3784
+ * bundle. It is loaded lazily, once per page, the first time a molecule
3785
+ * actually needs rendering.
3786
+ *
3787
+ * **Air-gapped by default, no CDN.** The loader dynamically imports the
3788
+ * `@rdkit/rdkit` package the consumer has installed — nothing is fetched from a
3789
+ * public CDN. Molecule rendering is opt-in: `@rdkit/rdkit` is an optional
3790
+ * peer dependency, so a consumer that never renders a structure needn't install
3791
+ * it, and one that does simply adds it to their own dependencies.
3792
+ *
3793
+ * **Bundled apps should set `wasmSrc`.** Without it, RDKit resolves
3794
+ * `RDKit_minimal.wasm` relative to the glue script, which a bundler (Vite,
3795
+ * webpack, …) usually does not emit next to the output — so the fetch 404s at
3796
+ * runtime and the first molecule silently fails to load. Copy the WASM into a
3797
+ * served path (or resolve it via your bundler, e.g. Vite's `?url`) and pass it
3798
+ * to {@link configureRDKit} once at startup. Alternatively hand the loader a
3799
+ * module you initialised yourself (`instance`).
3800
+ *
3801
+ * @see https://www.rdkitjs.com
3802
+ */
3803
+ /** The `initRDKitModule` factory exported by `@rdkit/rdkit`. */
3804
+ declare type RDKitFactory = (options?: {
3805
+ locateFile?: () => string;
3806
+ print?: (msg: string) => void;
3807
+ printErr?: (msg: string) => void;
3808
+ }) => Promise<RDKitModule>;
3809
+
3810
+ /** Options controlling how the RDKit module is located and loaded. */
3811
+ export declare interface RDKitLoaderConfig {
3812
+ /**
3813
+ * URL of the `RDKit_minimal.wasm` binary, passed to RDKit as `locateFile`.
3814
+ * Set this when your bundler doesn't serve the WASM next to the glue script
3815
+ * (e.g. copy it into your app's public dir and point here). When omitted,
3816
+ * RDKit's own default resolution is used.
3817
+ */
3818
+ wasmSrc?: string;
3819
+ /**
3820
+ * A module already initialised by the consumer (e.g. shared with other parts
3821
+ * of the app). When provided, no import or network work is done.
3822
+ */
3823
+ instance?: RDKitModule;
3824
+ /**
3825
+ * Override how the `initRDKitModule` factory is obtained. Defaults to
3826
+ * `import("@rdkit/rdkit")`. Provide this only for unusual setups (custom
3827
+ * bundler resolution, a vendored copy, etc.).
3828
+ */
3829
+ importFactory?: () => Promise<RDKitFactory>;
3830
+ }
3831
+
3832
+ /** Lifecycle of the lazily-loaded RDKit module. */
3833
+ export declare type RDKitStatus = "loading" | "ready" | "error";
3834
+
3288
3835
  export declare const Reasoning: MemoExoticComponent<({ className, isStreaming, open, defaultOpen, onOpenChange, duration: durationProp, children, ...props }: ReasoningProps) => JSX.Element>;
3289
3836
 
3290
3837
  export declare const ReasoningContent: MemoExoticComponent<({ className, children, ...props }: ReasoningContentProps) => JSX.Element>;
@@ -3325,6 +3872,18 @@ export declare interface ReferencedSourcesContext {
3325
3872
  clear: () => void;
3326
3873
  }
3327
3874
 
3875
+ /**
3876
+ * Register an additional grammar for `CodeBlock`/`MessageResponse` code
3877
+ * highlighting, e.g.:
3878
+ *
3879
+ * ```ts
3880
+ * registerCodeBlockLanguage("rust", () => import("@shikijs/langs/rust"), ["rs"]);
3881
+ * ```
3882
+ *
3883
+ * The loader stays a dynamic import, so added grammars are also code-split.
3884
+ */
3885
+ export declare function registerCodeBlockLanguage(language: string, loader: LanguageLoader, aliases?: string[]): void;
3886
+
3328
3887
  /**
3329
3888
  * Resize handle between two panels.
3330
3889
  *
@@ -3378,24 +3937,141 @@ export declare interface RichListItemProps extends Omit<React_2.ComponentProps<t
3378
3937
  /** Letter for a row index. Supports A-Z then AA-ZZ for 1536-format plates. */
3379
3938
  export declare function rowLabel(row: number): string;
3380
3939
 
3381
- export declare interface ScatterDataPoint {
3382
- x: number;
3383
- y: number;
3384
- additionalInfo?: Record<string, string | number>;
3385
- }
3940
+ /**
3941
+ * Scale type for axes
3942
+ */
3943
+ export declare type ScaleType = "linear" | "log";
3386
3944
 
3387
- export declare interface ScatterDataSeries {
3945
+ export declare const ScatterPlot: default_2.FC<ScatterPlotProps>;
3946
+
3947
+ export declare interface ScatterPlotDataSeries {
3388
3948
  x: number[];
3389
3949
  y: number[];
3390
3950
  name: string;
3391
3951
  /** Optional color override (auto-assigned from CHART_COLORS if not provided) */
3392
3952
  color?: string;
3953
+ /** Optional marker symbol override (auto-assigned in the `stacked` variant) */
3954
+ symbol?: MarkerSymbol_2;
3955
+ /** Optional per-series marker size override (falls back to `markerSize`) */
3956
+ size?: number;
3393
3957
  }
3394
3958
 
3395
- export declare const ScatterGraph: default_2.FC<ScatterGraphProps>;
3959
+ /**
3960
+ * ScatterPlotInteractive component for visualizing scatter plot data with advanced interactions.
3961
+ *
3962
+ * **Features:**
3963
+ * - Data-driven and static styling (color, shape, size)
3964
+ * - Interactive selection (click, box, lasso)
3965
+ * - Keyboard modifiers for click-selection modes (Shift/Ctrl)
3966
+ * - Customizable tooltips with rich content support
3967
+ * - Axis customization (ranges, log/linear scales)
3968
+ * - Performance optimizations for large datasets
3969
+ * - Selection propagation via callbacks
3970
+ *
3971
+ * **Selection Modes (click selection only):**
3972
+ * - Default click: Replace selection
3973
+ * - Shift + click: Add to selection
3974
+ * - Ctrl/Cmd + click: Remove from selection
3975
+ * - Shift + Ctrl + click: Toggle selection
3976
+ *
3977
+ * Box/lasso selection always replaces the current selection because
3978
+ * Plotly does not expose the original keyboard event for drag operations.
3979
+ */
3980
+ export declare const ScatterPlotInteractive: default_2.FC<ScatterPlotInteractiveProps>;
3981
+
3982
+ /**
3983
+ * Props for ScatterPlotInteractive component
3984
+ */
3985
+ export declare interface ScatterPlotInteractiveProps {
3986
+ /**
3987
+ * Array of data points to plot
3988
+ */
3989
+ data: ScatterPoint[];
3990
+ /**
3991
+ * Chart title
3992
+ */
3993
+ title?: string;
3994
+ /**
3995
+ * X-axis configuration
3996
+ */
3997
+ xAxis?: AxisConfig;
3998
+ /**
3999
+ * Y-axis configuration
4000
+ */
4001
+ yAxis?: AxisConfig;
4002
+ /**
4003
+ * Color mapping configuration
4004
+ */
4005
+ colorMapping?: ColorMapping;
4006
+ /**
4007
+ * Shape mapping configuration
4008
+ */
4009
+ shapeMapping?: ShapeMapping;
4010
+ /**
4011
+ * Size mapping configuration
4012
+ */
4013
+ sizeMapping?: SizeMapping;
4014
+ /**
4015
+ * Tooltip configuration
4016
+ */
4017
+ tooltip?: TooltipConfig;
4018
+ /**
4019
+ * Enable click selection
4020
+ * @default true
4021
+ */
4022
+ enableClickSelection?: boolean;
4023
+ /**
4024
+ * Enable box selection (drag to select rectangular region)
4025
+ * @default true
4026
+ */
4027
+ enableBoxSelection?: boolean;
4028
+ /**
4029
+ * Enable lasso selection (freeform selection)
4030
+ * @default true
4031
+ */
4032
+ enableLassoSelection?: boolean;
4033
+ /**
4034
+ * Controlled selection state.
4035
+ * If provided, component operates in controlled mode.
4036
+ */
4037
+ selectedIds?: Set<string | number>;
4038
+ /**
4039
+ * Callback when selection changes
4040
+ */
4041
+ onSelectionChange?: (selectedIds: Set<string | number>, mode: SelectionMode_2) => void;
4042
+ /**
4043
+ * Callback when a point is clicked
4044
+ */
4045
+ onPointClick?: (point: ScatterPoint, event: MouseEvent) => void;
4046
+ /**
4047
+ * Downsampling configuration for large datasets
4048
+ */
4049
+ downsampling?: DownsamplingConfig;
4050
+ /**
4051
+ * Chart width in pixels
4052
+ * @default 800
4053
+ */
4054
+ width?: number;
4055
+ /**
4056
+ * Chart height in pixels
4057
+ * @default 600
4058
+ */
4059
+ height?: number;
4060
+ /**
4061
+ * Show the continuous color-scale bar when using a continuous `colorMapping`.
4062
+ * Has no effect for categorical or static mappings.
4063
+ * @default true
4064
+ */
4065
+ showColorBar?: boolean;
4066
+ /**
4067
+ * Custom CSS class name
4068
+ */
4069
+ className?: string;
4070
+ }
3396
4071
 
3397
- export declare interface ScatterGraphProps {
3398
- dataSeries: ScatterDataSeries[];
4072
+ export declare interface ScatterPlotProps {
4073
+ /** One or more data series to plot */
4074
+ dataSeries: ScatterPlotDataSeries | ScatterPlotDataSeries[];
3399
4075
  /**
3400
4076
  * Fixed width in pixels. When omitted, the chart fills its container and
3401
4077
  * tracks the container's width via a `ResizeObserver`.
@@ -3411,6 +4087,31 @@ export declare interface ScatterGraphProps {
3411
4087
  xTitle?: string;
3412
4088
  yTitle?: string;
3413
4089
  title?: string;
4090
+ /**
4091
+ * `default` renders every series as circles; `stacked` cycles through
4092
+ * distinct marker symbols per series so overlapping series stay legible.
4093
+ */
4094
+ variant?: ScatterPlotVariant;
4095
+ /** Default marker size in pixels (per-series `size` takes precedence) */
4096
+ markerSize?: number;
4097
+ }
4098
+
4099
+ export declare type ScatterPlotVariant = "default" | "stacked";
4100
+
4101
+ /**
4102
+ * A single data point in the scatter plot
4103
+ */
4104
+ export declare interface ScatterPoint {
4105
+ /** Unique identifier for the point */
4106
+ id: string | number;
4107
+ /** X-axis value */
4108
+ x: number;
4109
+ /** Y-axis value */
4110
+ y: number;
4111
+ /** Optional label for the point */
4112
+ label?: string;
4113
+ /** Additional metadata for tooltips and styling */
4114
+ metadata?: Record<string, unknown>;
3414
4115
  }
3415
4116
 
3416
4117
  export declare function ScrollArea({ className, children, ...props }: React_2.ComponentProps<typeof ScrollArea_2.Root>): JSX.Element;
@@ -3430,6 +4131,41 @@ export declare function SelectContent({ className, children, position, align, ..
3430
4131
 
3431
4132
  export declare function SelectGroup({ className, ...props }: React_2.ComponentProps<typeof Select_2.Group>): JSX.Element;
3432
4133
 
4134
+ /**
4135
+ * Selection mode keyboard modifiers
4136
+ */
4137
+ export declare const SELECTION_MODIFIERS: {
4138
+ readonly ADD: "shiftKey";
4139
+ readonly REMOVE: "ctrlKey";
4140
+ readonly TOGGLE: "both";
4141
+ };
4142
+
4143
+ /**
4144
+ * Data format for selection propagation between components
4145
+ */
4146
+ export declare interface SelectionEvent {
4147
+ /** Array of selected point IDs */
4148
+ selectedIds: Set<string | number>;
4149
+ /** Selection mode used */
4150
+ mode: SelectionMode_2;
4151
+ /** Source component identifier (optional) */
4152
+ source?: string;
4153
+ }
4154
+
4155
+ /**
4156
+ * Selection mode for interactive selection
4157
+ */
4158
+ declare type SelectionMode_2 = "replace" | "add" | "remove" | "toggle";
4159
+ export { SelectionMode_2 as SelectionMode }
4160
+
4161
+ /**
4162
+ * Selection state
4163
+ */
4164
+ export declare interface SelectionState {
4165
+ /** Array of selected point IDs */
4166
+ selectedIds: Set<string | number>;
4167
+ }
4168
+
3433
4169
  export declare function SelectItem({ className, children, ...props }: React_2.ComponentProps<typeof Select_2.Item>): JSX.Element;
3434
4170
 
3435
4171
  export declare function SelectLabel({ className, ...props }: React_2.ComponentProps<typeof Select_2.Label>): JSX.Element;
@@ -3458,6 +4194,20 @@ export declare function Separator({ className, orientation, decorative, ...props
3458
4194
  */
3459
4195
  export declare const seriesColor: (index: number, explicit?: string | null) => string;
3460
4196
 
4197
+ /**
4198
+ * Shape mapping configuration
4199
+ */
4200
+ export declare interface ShapeMapping {
4201
+ /** Type of mapping: data-driven or static */
4202
+ type: "static" | "categorical";
4203
+ /** Static shape value (for type: "static") */
4204
+ value?: MarkerShape;
4205
+ /** Data field to map (for type: "categorical") */
4206
+ field?: string;
4207
+ /** Shape mapping for categorical values */
4208
+ categoryShapes?: Record<string, MarkerShape>;
4209
+ }
4210
+
3461
4211
  export declare function Sheet({ ...props }: React_2.ComponentProps<typeof Dialog_2.Root>): JSX.Element;
3462
4212
 
3463
4213
  export declare function SheetClose({ ...props }: React_2.ComponentProps<typeof Dialog_2.Close>): JSX.Element;
@@ -3477,6 +4227,22 @@ export declare function SheetTitle({ className, ...props }: React_2.ComponentPro
3477
4227
 
3478
4228
  export declare function SheetTrigger({ ...props }: React_2.ComponentProps<typeof Dialog_2.Trigger>): JSX.Element;
3479
4229
 
4230
+ /**
4231
+ * The shell's shared collapse/expand affordance — a small outlined square with
4232
+ * a chevron, placed in a zone's header row when expanded and at the top of the
4233
+ * collapsed rail. One component so every zone's trigger looks identical.
4234
+ */
4235
+ export declare function ShellCollapseButton({ direction, label, tooltipSide, className, ...props }: ShellCollapseButtonProps): JSX.Element;
4236
+
4237
+ export declare interface ShellCollapseButtonProps extends Omit<React_2.ComponentProps<typeof Button>, "children"> {
4238
+ /** Chevron direction the button points at. */
4239
+ direction: keyof typeof CHEVRONS;
4240
+ /** Accessible name + tooltip text (e.g. "Collapse navigation"). */
4241
+ label: string;
4242
+ /** Tooltip side. Defaults to `right` (rail/sidebar placements). */
4243
+ tooltipSide?: "top" | "right" | "bottom" | "left";
4244
+ }
4245
+
3480
4246
  export declare const Shimmer: MemoExoticComponent<({ children, as: Component, className, duration, spread, gradient, }: TextShimmerProps) => JSX.Element>;
3481
4247
 
3482
4248
  export declare function Sidebar({ side, variant, collapsible, className, children, dir, ...props }: React_2.ComponentProps<"div"> & {
@@ -3565,6 +4331,25 @@ export declare function SidebarSeparator({ className, ...props }: React_2.Compon
3565
4331
 
3566
4332
  export declare function SidebarTrigger({ className, onClick, ...props }: React_2.ComponentProps<typeof Button>): JSX.Element;
3567
4333
 
4334
+ /**
4335
+ * Size mapping configuration
4336
+ */
4337
+ export declare interface SizeMapping {
4338
+ /** Type of mapping: data-driven or static */
4339
+ type: "static" | "continuous" | "categorical";
4340
+ /** Static size value (for type: "static") */
4341
+ value?: number;
4342
+ /** Data field to map (for type: "continuous" | "categorical") */
4343
+ field?: string;
4344
+ /** Size range for continuous mapping */
4345
+ sizeRange?: [number, number];
4346
+ /** Discrete sizes for categorical mapping */
4347
+ categorySizes?: Record<string, number>;
4348
+ /** Min/max values for continuous mapping (auto-calculated if not provided) */
4349
+ min?: number;
4350
+ max?: number;
4351
+ }
4352
+
3568
4353
  export declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): JSX.Element;
3569
4354
 
3570
4355
  export declare function Slider({ className, defaultValue, value, min, max, ...props }: React_2.ComponentProps<typeof Slider_2.Root>): JSX.Element;
@@ -3607,9 +4392,9 @@ export declare const spinnerVariants: (props?: ({
3607
4392
  size?: "default" | "sm" | "lg" | "md" | null | undefined;
3608
4393
  } & ClassProp) | undefined) => string;
3609
4394
 
3610
- export declare function StackedChromatogramChart({ series, stackingMode, stackOffset, stackingOrder, annotations, ...restProps }: StackedChromatogramChartProps): JSX.Element;
4395
+ export declare function StackedChromatogram({ series, stackingMode, stackOffset, stackingOrder, annotations, ...restProps }: StackedChromatogramProps): JSX.Element;
3611
4396
 
3612
- export declare interface StackedChromatogramChartProps extends Omit<ChromatogramChartProps, "series" | "annotations" | "yRange"> {
4397
+ export declare interface StackedChromatogramProps extends Omit<ChromatogramProps, "series" | "annotations" | "yRange"> {
3613
4398
  /** Array of data series to display */
3614
4399
  series: ChromatogramSeries[];
3615
4400
  /** Stacking mode: 'overlay' (default) or 'stack' */
@@ -3649,12 +4434,21 @@ export declare interface StatCardProps extends React_2.ComponentProps<"div"> {
3649
4434
 
3650
4435
  export declare type StatCardTrend = "up" | "down" | "neutral";
3651
4436
 
3652
- /** Built-in Lucide spinner icons that pair well with ts-spin-pulse animation. */
4437
+ /**
4438
+ * Built-in spinner icons.
4439
+ *
4440
+ * The Lucide spinners pair with the flat `ts-spin-pulse` animation; the
4441
+ * `tetra` variant is the Tetra-branded "TetraSpin" — the official TetraScience
4442
+ * molecule logo filled with the brand blue gradient, rotating 360° with the
4443
+ * gradient held fixed so its nodes shimmer, echoing the `:tetraspin3d:` gif for
4444
+ * a sense of brand identity while an agent is thinking.
4445
+ */
3653
4446
  export declare const STREAM_STATUS_ICONS: {
3654
4447
  readonly loader: JSX.Element;
3655
4448
  readonly "loader-circle": JSX.Element;
3656
4449
  readonly "loader-pinwheel": JSX.Element;
3657
4450
  readonly "disc-3": JSX.Element;
4451
+ readonly tetra: JSX.Element;
3658
4452
  };
3659
4453
 
3660
4454
  export declare const StreamStatus: MemoExoticComponent<({ startTime, isStreaming, state: stateProp, showIndicator, tokenCount, tokenLabel, icon, iconVariant, className, }: StreamStatusProps) => JSX.Element>;
@@ -3697,10 +4491,12 @@ export declare interface StreamStatusProps {
3697
4491
  */
3698
4492
  icon?: ReactNode;
3699
4493
  /**
3700
- * Convenience shorthand to pick a built-in Lucide spinner.
3701
- * Ignored when `icon` is also provided.
4494
+ * Convenience shorthand to pick a built-in spinner.
4495
+ * Ignored when `icon` is also provided. Defaults to `"tetra"`.
3702
4496
  *
3703
- * Options: `"loader"` | `"loader-circle"` | `"loader-pinwheel"` | `"disc-3"`
4497
+ * Options: `"loader"` | `"loader-circle"` | `"loader-pinwheel"` | `"disc-3"` | `"tetra"`.
4498
+ * The default `"tetra"` variant renders the official TetraScience molecule
4499
+ * logo with a fixed brand-blue gradient. Pass `icon={null}` to render no icon.
3704
4500
  */
3705
4501
  iconVariant?: StreamStatusIconVariant;
3706
4502
  className?: string;
@@ -4013,6 +4809,16 @@ export declare interface TemplateOption {
4013
4809
  disabled?: boolean;
4014
4810
  }
4015
4811
 
4812
+ /**
4813
+ * The official TetraScience "molecule" brand mark — the four-node symbol from
4814
+ * the TetraScience logo, filled with the brand blue gradient.
4815
+ */
4816
+ export declare const TetraMoleculeIcon: React_2.ForwardRefExoticComponent<Omit<TetraMoleculeIconProps, "ref"> & React_2.RefAttributes<SVGSVGElement>>;
4817
+
4818
+ export declare interface TetraMoleculeIconProps extends React_2.SVGProps<SVGSVGElement> {
4819
+ size?: number | string;
4820
+ }
4821
+
4016
4822
  export declare const TetraScienceIcon: React_2.ForwardRefExoticComponent<Omit<TetraScienceIconProps, "ref"> & React_2.RefAttributes<SVGSVGElement>>;
4017
4823
 
4018
4824
  export declare interface TetraScienceIconProps extends React_2.SVGProps<SVGSVGElement> {
@@ -4105,6 +4911,24 @@ export declare type ToolProps = ComponentProps<typeof Collapsible> & {
4105
4911
 
4106
4912
  export declare function Tooltip({ ...props }: React_2.ComponentProps<typeof Tooltip_2.Root>): JSX.Element;
4107
4913
 
4914
+ /**
4915
+ * Tooltip configuration
4916
+ */
4917
+ export declare interface TooltipConfig {
4918
+ /** Enable/disable tooltips */
4919
+ enabled?: boolean;
4920
+ /** Custom tooltip content function. Lines are separated with `<br>`. */
4921
+ content?: (point: ScatterPoint) => string;
4922
+ /** Fields to display in default tooltip */
4923
+ fields?: string[];
4924
+ /**
4925
+ * Use Plotly's built-in hover labels instead of the theme-styled
4926
+ * HTML tooltip rendered by the component.
4927
+ * @default false
4928
+ */
4929
+ native?: boolean;
4930
+ }
4931
+
4108
4932
  export declare function TooltipContent({ className, sideOffset, children, ...props }: React_2.ComponentProps<typeof Tooltip_2.Content>): JSX.Element;
4109
4933
 
4110
4934
  export declare function TooltipProvider({ delayDuration, ...props }: React_2.ComponentProps<typeof Tooltip_2.Provider>): JSX.Element;
@@ -4129,6 +4953,31 @@ declare type ToolUIPartApproval = {
4129
4953
  reason?: string;
4130
4954
  } | undefined;
4131
4955
 
4956
+ /**
4957
+ * Sticky application header with three slots — left / center / right.
4958
+ *
4959
+ * - **left** is typically a breadcrumb, but any node can be slotted in.
4960
+ * - **center** is an optional "context" slot (e.g. a version/status selector).
4961
+ * - **right** holds actions, a help affordance, a `UserMenu`, etc.
4962
+ */
4963
+ export declare function TopBar({ left, center, right, sticky, className, ...props }: TopBarProps): JSX.Element;
4964
+
4965
+ export declare interface TopBarProps extends Omit<React_2.ComponentProps<"div">, "children">, VariantProps<typeof topBarVariants> {
4966
+ /** Left slot — typically a breadcrumb. */
4967
+ left?: React_2.ReactNode;
4968
+ /**
4969
+ * Center "context" slot — e.g. a version/status selector. Only rendered when
4970
+ * provided; keeps the left/right columns balanced when present.
4971
+ */
4972
+ center?: React_2.ReactNode;
4973
+ /** Right slot — actions, help, user menu, etc. */
4974
+ right?: React_2.ReactNode;
4975
+ }
4976
+
4977
+ export declare const topBarVariants: (props?: ({
4978
+ sticky?: boolean | null | undefined;
4979
+ } & ClassProp) | undefined) => string;
4980
+
4132
4981
  /**
4133
4982
  * Convert a color ramp (e.g. `CHART_SEQUENTIAL.blue`, `CHART_DIVERGING.blueOrange`)
4134
4983
  * into Plotly's colorscale format: evenly spaced [position, color] stops.
@@ -4148,6 +4997,8 @@ export declare function triagePlateMapCsvFile(file: File, options?: PlateMapCsvT
4148
4997
  /** TetraScience brand gradient — Light Blue 300 → Purple 500 → Violet Marble */
4149
4998
  export declare const TS_SHIMMER_GRADIENT = "linear-gradient(90deg, #549DFF, #8243BA, #9665F4)";
4150
4999
 
5000
+ export declare function useAssistantLayout(): AssistantLayoutContextValue;
5001
+
4151
5002
  export declare const useAttachmentContext: () => AttachmentContextValue;
4152
5003
 
4153
5004
  export declare const useAttachmentsContext: () => AttachmentsContextValue;
@@ -4199,8 +5050,14 @@ export declare interface UseChartTooltipOptions {
4199
5050
 
4200
5051
  export declare function useComboboxAnchor(): React_2.RefObject<HTMLDivElement | null>;
4201
5052
 
5053
+ /** Shell layout state; throws outside a `DataAppShell`. */
5054
+ export declare function useDataAppShell(): DataAppShellContextValue;
5055
+
4202
5056
  export declare function useDataTable<TData = unknown>(): TableContextValue<TData>;
4203
5057
 
5058
+ /** Shell layout state, or `null` when rendered outside a `DataAppShell`. */
5059
+ export declare function useOptionalDataAppShell(): DataAppShellContextValue | null;
5060
+
4204
5061
  export declare const usePromptInputAttachments: () => AttachmentsContext;
4205
5062
 
4206
5063
  export declare const usePromptInputController: () => PromptInputControllerProps;
@@ -4209,8 +5066,88 @@ export declare const usePromptInputReferencedSources: () => ReferencedSourcesCon
4209
5066
 
4210
5067
  export declare const useProviderAttachments: () => AttachmentsContext;
4211
5068
 
5069
+ /**
5070
+ * Lazily load the RDKit WASM module and track its status. The module is a
5071
+ * page-wide singleton, so mounting many molecule components triggers only one
5072
+ * download.
5073
+ *
5074
+ * Use this when you need RDKit available synchronously inside a callback — for
5075
+ * example feeding the interactive scatter's `tooltip.content`, which must
5076
+ * return a string. For a single structure, prefer the `MoleculeStructure`
5077
+ * component, which wraps this hook.
5078
+ *
5079
+ * @example
5080
+ * ```tsx
5081
+ * const { rdkit, status } = useRDKit()
5082
+ * // ...
5083
+ * content: (point) =>
5084
+ * rdkit ? moleculeToSvg(rdkit, point.meta.smiles) ?? "" : "Loading…"
5085
+ * ```
5086
+ */
5087
+ export declare function useRDKit(): UseRDKitResult;
5088
+
5089
+ export declare interface UseRDKitResult {
5090
+ /** The initialised module, or `null` until it is ready. */
5091
+ rdkit: RDKitModule | null;
5092
+ status: RDKitStatus;
5093
+ /** The load failure, if `status` is `"error"`. */
5094
+ error: Error | null;
5095
+ }
5096
+
4212
5097
  export declare const useReasoning: () => ReasoningContextValue;
4213
5098
 
5099
+ /**
5100
+ * User account affordance — an avatar (initials or image) that opens a dropdown
5101
+ * menu. A composition over the `Avatar` + `DropdownMenu` primitives.
5102
+ *
5103
+ * Focus trap, keyboard navigation, and Esc-to-close are handled by the
5104
+ * underlying Radix `DropdownMenu`.
5105
+ */
5106
+ export declare function UserMenu({ name, subtitle, avatarSrc, initials, groups, variant, side, align, className, }: UserMenuProps): JSX.Element;
5107
+
5108
+ export declare interface UserMenuGroup {
5109
+ /** Items in this group; groups are separated by a divider */
5110
+ items: UserMenuItem[];
5111
+ }
5112
+
5113
+ export declare interface UserMenuItem {
5114
+ /** Unique identifier */
5115
+ id: string;
5116
+ /** Display label */
5117
+ label: string;
5118
+ /** Optional leading icon */
5119
+ icon?: LucideIcon | React_2.FC<React_2.SVGProps<SVGSVGElement>>;
5120
+ /** Click handler */
5121
+ onClick?: () => void;
5122
+ /** Disables the item */
5123
+ disabled?: boolean;
5124
+ /** Visual variant — `destructive` for sign-out / delete actions */
5125
+ variant?: "default" | "destructive";
5126
+ }
5127
+
5128
+ export declare interface UserMenuProps extends VariantProps<typeof userMenuTriggerVariants> {
5129
+ /** User's full name — used for the menu header and derived initials */
5130
+ name: string;
5131
+ /** Secondary line shown under the name (e.g. email or role) */
5132
+ subtitle?: string;
5133
+ /** Avatar image URL; falls back to initials when absent or on load error */
5134
+ avatarSrc?: string;
5135
+ /** Explicit initials override; otherwise derived from `name` */
5136
+ initials?: string;
5137
+ /** Menu item groups; each group is separated by a divider */
5138
+ groups?: UserMenuGroup[];
5139
+ /** Which side of the trigger the dropdown opens on */
5140
+ side?: "top" | "right" | "bottom" | "left";
5141
+ /** Alignment of the dropdown relative to the trigger */
5142
+ align?: "start" | "center" | "end";
5143
+ /** Additional className for the trigger button */
5144
+ className?: string;
5145
+ }
5146
+
5147
+ export declare const userMenuTriggerVariants: (props?: ({
5148
+ variant?: "avatar" | "detailed" | null | undefined;
5149
+ } & ClassProp) | undefined) => string;
5150
+
4214
5151
  export declare function useSearch(config: UseSearchConfig): UseSearchResult;
4215
5152
 
4216
5153
  export declare type UseSearchConfig = {