@tetrascience-npm/tetrascience-react-ui 0.7.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1241) hide show
  1. package/README.md +58 -4
  2. package/dist/ai/attachments.cjs +2 -0
  3. package/dist/ai/attachments.cjs.map +1 -0
  4. package/dist/ai/attachments.js +224 -0
  5. package/dist/ai/attachments.js.map +1 -0
  6. package/dist/ai/chain-of-thought.cjs +2 -0
  7. package/dist/ai/chain-of-thought.cjs.map +1 -0
  8. package/dist/ai/chain-of-thought.js +145 -0
  9. package/dist/ai/chain-of-thought.js.map +1 -0
  10. package/dist/ai/confirmation.cjs +2 -0
  11. package/dist/ai/confirmation.cjs.map +1 -0
  12. package/dist/ai/confirmation.js +109 -0
  13. package/dist/ai/confirmation.js.map +1 -0
  14. package/dist/ai/context.cjs +2 -0
  15. package/dist/ai/context.cjs.map +1 -0
  16. package/dist/ai/context.js +267 -0
  17. package/dist/ai/context.js.map +1 -0
  18. package/dist/ai/conversation.cjs +4 -0
  19. package/dist/ai/conversation.cjs.map +1 -0
  20. package/dist/ai/conversation.js +108 -0
  21. package/dist/ai/conversation.js.map +1 -0
  22. package/dist/ai/inline-citation.cjs +2 -0
  23. package/dist/ai/inline-citation.cjs.map +1 -0
  24. package/dist/ai/inline-citation.js +182 -0
  25. package/dist/ai/inline-citation.js.map +1 -0
  26. package/dist/ai/message.cjs +2 -0
  27. package/dist/ai/message.cjs.map +1 -0
  28. package/dist/ai/message.js +237 -0
  29. package/dist/ai/message.js.map +1 -0
  30. package/dist/ai/model-selector.cjs +2 -0
  31. package/dist/ai/model-selector.cjs.map +1 -0
  32. package/dist/ai/model-selector.js +77 -0
  33. package/dist/ai/model-selector.js.map +1 -0
  34. package/dist/ai/prompt-input.cjs +2 -0
  35. package/dist/ai/prompt-input.cjs.map +1 -0
  36. package/dist/ai/prompt-input.js +776 -0
  37. package/dist/ai/prompt-input.js.map +1 -0
  38. package/dist/ai/queue.cjs +2 -0
  39. package/dist/ai/queue.cjs.map +1 -0
  40. package/dist/ai/queue.js +209 -0
  41. package/dist/ai/queue.js.map +1 -0
  42. package/dist/ai/reasoning.cjs +2 -0
  43. package/dist/ai/reasoning.cjs.map +1 -0
  44. package/dist/ai/reasoning.js +129 -0
  45. package/dist/ai/reasoning.js.map +1 -0
  46. package/dist/ai/shimmer.cjs +2 -0
  47. package/dist/ai/shimmer.cjs.map +1 -0
  48. package/dist/ai/shimmer.js +49 -0
  49. package/dist/ai/shimmer.js.map +1 -0
  50. package/dist/ai/sources.cjs +2 -0
  51. package/dist/ai/sources.cjs.map +1 -0
  52. package/dist/ai/sources.js +54 -0
  53. package/dist/ai/sources.js.map +1 -0
  54. package/dist/ai/speech-input.cjs +2 -0
  55. package/dist/ai/speech-input.cjs.map +1 -0
  56. package/dist/ai/speech-input.js +123 -0
  57. package/dist/ai/speech-input.js.map +1 -0
  58. package/dist/ai/stream-status.cjs +2 -0
  59. package/dist/ai/stream-status.cjs.map +1 -0
  60. package/dist/ai/stream-status.js +108 -0
  61. package/dist/ai/stream-status.js.map +1 -0
  62. package/dist/ai/suggestion.cjs +2 -0
  63. package/dist/ai/suggestion.cjs.map +1 -0
  64. package/dist/ai/suggestion.js +38 -0
  65. package/dist/ai/suggestion.js.map +1 -0
  66. package/dist/ai/task.cjs +2 -0
  67. package/dist/ai/task.cjs.map +1 -0
  68. package/dist/ai/task.js +101 -0
  69. package/dist/ai/task.js.map +1 -0
  70. package/dist/ai/tool.cjs +2 -0
  71. package/dist/ai/tool.cjs.map +1 -0
  72. package/dist/ai/tool.js +139 -0
  73. package/dist/ai/tool.js.map +1 -0
  74. package/dist/charts/AreaPlot.cjs +2 -0
  75. package/dist/charts/AreaPlot.cjs.map +1 -0
  76. package/dist/charts/AreaPlot.js +5 -0
  77. package/dist/charts/AreaPlot.js.map +1 -0
  78. package/dist/charts/BarChart.cjs +2 -0
  79. package/dist/charts/BarChart.cjs.map +1 -0
  80. package/dist/charts/BarChart.js +5 -0
  81. package/dist/charts/BarChart.js.map +1 -0
  82. package/dist/charts/BoxPlot.cjs +2 -0
  83. package/dist/charts/BoxPlot.cjs.map +1 -0
  84. package/dist/charts/BoxPlot.js +5 -0
  85. package/dist/charts/BoxPlot.js.map +1 -0
  86. package/dist/charts/ChartTooltip.cjs +2 -0
  87. package/dist/charts/ChartTooltip.cjs.map +1 -0
  88. package/dist/charts/ChartTooltip.js +8 -0
  89. package/dist/charts/ChartTooltip.js.map +1 -0
  90. package/dist/charts/Chromatogram.cjs +2 -0
  91. package/dist/charts/Chromatogram.cjs.map +1 -0
  92. package/dist/charts/Chromatogram.js +5 -0
  93. package/dist/charts/Chromatogram.js.map +1 -0
  94. package/dist/charts/Electropherogram.cjs +2 -0
  95. package/dist/charts/Electropherogram.cjs.map +1 -0
  96. package/dist/charts/Electropherogram.js +5 -0
  97. package/dist/charts/Electropherogram.js.map +1 -0
  98. package/dist/charts/Histogram.cjs +2 -0
  99. package/dist/charts/Histogram.cjs.map +1 -0
  100. package/dist/charts/Histogram.js +5 -0
  101. package/dist/charts/Histogram.js.map +1 -0
  102. package/dist/charts/LinePlot.cjs +2 -0
  103. package/dist/charts/LinePlot.cjs.map +1 -0
  104. package/dist/charts/LinePlot.js +5 -0
  105. package/dist/charts/LinePlot.js.map +1 -0
  106. package/dist/charts/PieChart.cjs +2 -0
  107. package/dist/charts/PieChart.cjs.map +1 -0
  108. package/dist/charts/PieChart.js +5 -0
  109. package/dist/charts/PieChart.js.map +1 -0
  110. package/dist/charts/PlateMap.cjs +2 -0
  111. package/dist/charts/PlateMap.cjs.map +1 -0
  112. package/dist/charts/PlateMap.js +5 -0
  113. package/dist/charts/PlateMap.js.map +1 -0
  114. package/dist/charts/ScatterPlot.cjs +2 -0
  115. package/dist/charts/ScatterPlot.cjs.map +1 -0
  116. package/dist/charts/ScatterPlot.js +5 -0
  117. package/dist/charts/ScatterPlot.js.map +1 -0
  118. package/dist/charts/ScatterPlotInteractive.cjs +2 -0
  119. package/dist/charts/ScatterPlotInteractive.cjs.map +1 -0
  120. package/dist/charts/ScatterPlotInteractive.js +14 -0
  121. package/dist/charts/ScatterPlotInteractive.js.map +1 -0
  122. package/dist/charts/StackedChromatogram.cjs +2 -0
  123. package/dist/charts/StackedChromatogram.cjs.map +1 -0
  124. package/dist/charts/StackedChromatogram.js +7 -0
  125. package/dist/charts/StackedChromatogram.js.map +1 -0
  126. package/dist/components/ai/attachments.d.ts +54 -0
  127. package/dist/components/ai/chain-of-thought.d.ts +56 -0
  128. package/dist/components/ai/confirmation.d.ts +47 -0
  129. package/dist/components/ai/context.d.ts +40 -0
  130. package/dist/components/ai/conversation.d.ts +23 -0
  131. package/dist/components/ai/inline-citation.d.ts +38 -0
  132. package/dist/components/ai/message.d.ts +37 -0
  133. package/dist/components/ai/model-selector.d.ts +36 -0
  134. package/dist/components/ai/prompt-input.d.ts +158 -0
  135. package/dist/components/ai/queue.d.ts +72 -0
  136. package/dist/components/ai/reasoning.d.ts +26 -0
  137. package/dist/components/ai/shimmer.d.ts +17 -0
  138. package/dist/components/ai/sources.d.ts +12 -0
  139. package/dist/components/ai/speech-input.d.ts +54 -0
  140. package/dist/components/ai/stream-status.d.ts +66 -0
  141. package/dist/components/ai/streamdown-code-plugin.cjs +2 -0
  142. package/dist/components/ai/streamdown-code-plugin.cjs.map +1 -0
  143. package/dist/components/ai/streamdown-code-plugin.d.ts +2 -0
  144. package/dist/components/ai/streamdown-code-plugin.js +42 -0
  145. package/dist/components/ai/streamdown-code-plugin.js.map +1 -0
  146. package/dist/components/ai/streamdown-plugins.cjs +2 -0
  147. package/dist/components/ai/streamdown-plugins.cjs.map +1 -0
  148. package/dist/components/ai/streamdown-plugins.d.ts +2 -0
  149. package/dist/components/ai/streamdown-plugins.js +14 -0
  150. package/dist/components/ai/streamdown-plugins.js.map +1 -0
  151. package/dist/components/ai/suggestion.d.ts +9 -0
  152. package/dist/components/ai/task.d.ts +16 -0
  153. package/dist/components/ai/tool.d.ts +33 -0
  154. package/dist/components/ai/use-streamdown-plugins.cjs +2 -0
  155. package/dist/components/ai/use-streamdown-plugins.cjs.map +1 -0
  156. package/dist/components/ai/use-streamdown-plugins.d.ts +8 -0
  157. package/dist/components/ai/use-streamdown-plugins.js +25 -0
  158. package/dist/components/ai/use-streamdown-plugins.js.map +1 -0
  159. package/dist/components/charts/AreaPlot/AreaPlot.cjs +2 -0
  160. package/dist/components/charts/AreaPlot/AreaPlot.cjs.map +1 -0
  161. package/dist/components/charts/AreaPlot/AreaPlot.d.ts +39 -0
  162. package/dist/components/charts/AreaPlot/AreaPlot.js +270 -0
  163. package/dist/components/charts/AreaPlot/AreaPlot.js.map +1 -0
  164. package/dist/components/charts/AreaPlot/index.d.ts +2 -0
  165. package/dist/components/charts/BarChart/BarChart.cjs +2 -0
  166. package/dist/components/charts/BarChart/BarChart.cjs.map +1 -0
  167. package/dist/components/charts/BarChart/BarChart.d.ts +44 -0
  168. package/dist/components/charts/BarChart/BarChart.js +219 -0
  169. package/dist/components/charts/BarChart/BarChart.js.map +1 -0
  170. package/dist/components/charts/BarChart/index.d.ts +2 -0
  171. package/dist/components/charts/BoxPlot/BoxPlot.cjs +2 -0
  172. package/dist/components/charts/BoxPlot/BoxPlot.cjs.map +1 -0
  173. package/dist/components/charts/BoxPlot/BoxPlot.d.ts +33 -0
  174. package/dist/components/charts/BoxPlot/BoxPlot.js +208 -0
  175. package/dist/components/charts/BoxPlot/BoxPlot.js.map +1 -0
  176. package/dist/components/charts/BoxPlot/index.d.ts +2 -0
  177. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +1 -1
  178. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -1
  179. package/dist/components/charts/ChartTooltip/ChartTooltip.d.ts +71 -0
  180. package/dist/components/charts/ChartTooltip/ChartTooltip.js +22 -22
  181. package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -1
  182. package/dist/components/charts/ChartTooltip/index.d.ts +2 -0
  183. package/dist/components/charts/ChartTooltip/lines.d.ts +54 -0
  184. package/dist/components/charts/Chromatogram/Chromatogram.cjs +1 -1
  185. package/dist/components/charts/Chromatogram/Chromatogram.cjs.map +1 -1
  186. package/dist/components/charts/Chromatogram/Chromatogram.d.ts +5 -0
  187. package/dist/components/charts/Chromatogram/Chromatogram.js +232 -170
  188. package/dist/components/charts/Chromatogram/Chromatogram.js.map +1 -1
  189. package/dist/components/charts/Chromatogram/annotations.cjs +2 -0
  190. package/dist/components/charts/Chromatogram/annotations.cjs.map +1 -0
  191. package/dist/components/charts/Chromatogram/annotations.d.ts +50 -0
  192. package/dist/components/charts/Chromatogram/annotations.js +137 -0
  193. package/dist/components/charts/Chromatogram/annotations.js.map +1 -0
  194. package/dist/components/charts/Chromatogram/boundaryMarkers.cjs +2 -0
  195. package/dist/components/charts/Chromatogram/boundaryMarkers.cjs.map +1 -0
  196. package/dist/components/charts/Chromatogram/boundaryMarkers.d.ts +14 -0
  197. package/dist/components/charts/Chromatogram/boundaryMarkers.js +34 -0
  198. package/dist/components/charts/Chromatogram/boundaryMarkers.js.map +1 -0
  199. package/dist/components/charts/Chromatogram/constants.cjs +2 -0
  200. package/dist/components/charts/Chromatogram/constants.cjs.map +1 -0
  201. package/dist/components/charts/Chromatogram/constants.d.ts +46 -0
  202. package/dist/components/charts/Chromatogram/constants.js +36 -0
  203. package/dist/components/charts/Chromatogram/constants.js.map +1 -0
  204. package/dist/components/charts/Chromatogram/dataProcessing.cjs +2 -0
  205. package/dist/components/charts/Chromatogram/dataProcessing.cjs.map +1 -0
  206. package/dist/components/charts/Chromatogram/dataProcessing.d.ts +49 -0
  207. package/dist/components/charts/Chromatogram/dataProcessing.js +90 -0
  208. package/dist/components/charts/Chromatogram/dataProcessing.js.map +1 -0
  209. package/dist/components/charts/Chromatogram/index.d.ts +2 -0
  210. package/dist/components/charts/Chromatogram/peakDetection.cjs.map +1 -0
  211. package/dist/components/charts/Chromatogram/peakDetection.d.ts +33 -0
  212. package/dist/components/charts/Chromatogram/peakDetection.js.map +1 -0
  213. package/dist/components/charts/Chromatogram/plotBuilder.cjs +2 -0
  214. package/dist/components/charts/Chromatogram/plotBuilder.cjs.map +1 -0
  215. package/dist/components/charts/Chromatogram/plotBuilder.d.ts +58 -0
  216. package/dist/components/charts/Chromatogram/plotBuilder.js +216 -0
  217. package/dist/components/charts/Chromatogram/plotBuilder.js.map +1 -0
  218. package/dist/components/charts/Chromatogram/regionOverlays.cjs +2 -0
  219. package/dist/components/charts/Chromatogram/regionOverlays.cjs.map +1 -0
  220. package/dist/components/charts/Chromatogram/regionOverlays.d.ts +9 -0
  221. package/dist/components/charts/Chromatogram/regionOverlays.js +26 -0
  222. package/dist/components/charts/Chromatogram/regionOverlays.js.map +1 -0
  223. package/dist/components/charts/Chromatogram/types.d.ts +258 -0
  224. package/dist/components/charts/Electropherogram/Electropherogram.cjs +2 -0
  225. package/dist/components/charts/Electropherogram/Electropherogram.cjs.map +1 -0
  226. package/dist/components/charts/Electropherogram/Electropherogram.d.ts +22 -0
  227. package/dist/components/charts/Electropherogram/Electropherogram.js +180 -0
  228. package/dist/components/charts/Electropherogram/Electropherogram.js.map +1 -0
  229. package/dist/components/charts/Electropherogram/index.d.ts +2 -0
  230. package/dist/components/charts/Histogram/Histogram.cjs +1 -1
  231. package/dist/components/charts/Histogram/Histogram.cjs.map +1 -1
  232. package/dist/components/charts/Histogram/Histogram.d.ts +36 -0
  233. package/dist/components/charts/Histogram/Histogram.js +107 -108
  234. package/dist/components/charts/Histogram/Histogram.js.map +1 -1
  235. package/dist/components/charts/Histogram/index.d.ts +2 -0
  236. package/dist/components/charts/LinePlot/LinePlot.cjs +2 -0
  237. package/dist/components/charts/LinePlot/LinePlot.cjs.map +1 -0
  238. package/dist/components/charts/LinePlot/LinePlot.d.ts +45 -0
  239. package/dist/components/charts/LinePlot/LinePlot.js +224 -0
  240. package/dist/components/charts/LinePlot/LinePlot.js.map +1 -0
  241. package/dist/components/charts/LinePlot/index.d.ts +2 -0
  242. package/dist/components/charts/PieChart/PieChart.cjs +1 -1
  243. package/dist/components/charts/PieChart/PieChart.cjs.map +1 -1
  244. package/dist/components/charts/PieChart/PieChart.d.ts +20 -0
  245. package/dist/components/charts/PieChart/PieChart.js +62 -61
  246. package/dist/components/charts/PieChart/PieChart.js.map +1 -1
  247. package/dist/components/charts/PieChart/index.d.ts +2 -0
  248. package/dist/components/charts/PlateMap/PlateMap.cjs +1 -1
  249. package/dist/components/charts/PlateMap/PlateMap.cjs.map +1 -1
  250. package/dist/components/charts/PlateMap/PlateMap.d.ts +29 -0
  251. package/dist/components/charts/PlateMap/PlateMap.js +246 -242
  252. package/dist/components/charts/PlateMap/PlateMap.js.map +1 -1
  253. package/dist/components/charts/PlateMap/constants.d.ts +75 -0
  254. package/dist/components/charts/PlateMap/index.d.ts +2 -0
  255. package/dist/components/charts/PlateMap/types.d.ts +322 -0
  256. package/dist/components/charts/PlateMap/utils.d.ts +133 -0
  257. package/dist/components/charts/ScatterPlot/ScatterPlot.cjs +2 -0
  258. package/dist/components/charts/ScatterPlot/ScatterPlot.cjs.map +1 -0
  259. package/dist/components/charts/ScatterPlot/ScatterPlot.d.ts +43 -0
  260. package/dist/components/charts/ScatterPlot/ScatterPlot.js +252 -0
  261. package/dist/components/charts/ScatterPlot/ScatterPlot.js.map +1 -0
  262. package/dist/components/charts/ScatterPlot/index.d.ts +2 -0
  263. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs +2 -0
  264. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.cjs.map +1 -0
  265. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.d.ts +25 -0
  266. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.js +215 -0
  267. package/dist/components/charts/ScatterPlotInteractive/ScatterPlotInteractive.js.map +1 -0
  268. package/dist/components/charts/ScatterPlotInteractive/constants.cjs +2 -0
  269. package/dist/components/charts/ScatterPlotInteractive/constants.cjs.map +1 -0
  270. package/dist/components/charts/ScatterPlotInteractive/constants.d.ts +50 -0
  271. package/dist/components/charts/ScatterPlotInteractive/constants.js +38 -0
  272. package/dist/components/charts/ScatterPlotInteractive/constants.js.map +1 -0
  273. package/dist/components/charts/ScatterPlotInteractive/index.d.ts +3 -0
  274. package/dist/components/charts/ScatterPlotInteractive/types.d.ts +226 -0
  275. package/dist/components/charts/ScatterPlotInteractive/utils.cjs +2 -0
  276. package/dist/components/charts/ScatterPlotInteractive/utils.cjs.map +1 -0
  277. package/dist/components/charts/ScatterPlotInteractive/utils.d.ts +72 -0
  278. package/dist/components/charts/ScatterPlotInteractive/utils.js +261 -0
  279. package/dist/components/charts/ScatterPlotInteractive/utils.js.map +1 -0
  280. package/dist/components/charts/StackedChromatogram/StackedChromatogram.cjs +2 -0
  281. package/dist/components/charts/StackedChromatogram/StackedChromatogram.cjs.map +1 -0
  282. package/dist/components/charts/StackedChromatogram/StackedChromatogram.d.ts +3 -0
  283. package/dist/components/charts/StackedChromatogram/StackedChromatogram.js +40 -0
  284. package/dist/components/charts/StackedChromatogram/StackedChromatogram.js.map +1 -0
  285. package/dist/components/charts/StackedChromatogram/index.d.ts +3 -0
  286. package/dist/components/charts/StackedChromatogram/transforms.cjs +2 -0
  287. package/dist/components/charts/StackedChromatogram/transforms.cjs.map +1 -0
  288. package/dist/components/charts/StackedChromatogram/transforms.d.ts +9 -0
  289. package/dist/components/charts/StackedChromatogram/transforms.js +31 -0
  290. package/dist/components/charts/StackedChromatogram/transforms.js.map +1 -0
  291. package/dist/components/charts/StackedChromatogram/types.d.ts +26 -0
  292. package/dist/components/charts/plotly-loader.cjs +2 -0
  293. package/dist/components/charts/plotly-loader.cjs.map +1 -0
  294. package/dist/components/charts/plotly-loader.d.ts +29 -0
  295. package/dist/components/charts/plotly-loader.js +22 -0
  296. package/dist/components/charts/plotly-loader.js.map +1 -0
  297. package/dist/components/composed/AssistantLayout/AssistantLayout.cjs +2 -0
  298. package/dist/components/composed/AssistantLayout/AssistantLayout.cjs.map +1 -0
  299. package/dist/components/composed/AssistantLayout/AssistantLayout.d.ts +63 -0
  300. package/dist/components/composed/AssistantLayout/AssistantLayout.js +142 -0
  301. package/dist/components/composed/AssistantLayout/AssistantLayout.js.map +1 -0
  302. package/dist/components/composed/AssistantLayout/dockLayout.cjs +2 -0
  303. package/dist/components/composed/AssistantLayout/dockLayout.cjs.map +1 -0
  304. package/dist/components/composed/AssistantLayout/dockLayout.d.ts +15 -0
  305. package/dist/components/composed/AssistantLayout/dockLayout.js +10 -0
  306. package/dist/components/composed/AssistantLayout/dockLayout.js.map +1 -0
  307. package/dist/components/composed/AssistantLayout/index.d.ts +3 -0
  308. package/dist/components/composed/Chat/Chat.cjs +1 -1
  309. package/dist/components/composed/Chat/Chat.cjs.map +1 -1
  310. package/dist/components/composed/Chat/Chat.d.ts +35 -0
  311. package/dist/components/composed/Chat/Chat.js +28 -28
  312. package/dist/components/composed/Chat/Chat.js.map +1 -1
  313. package/dist/components/composed/Chat/index.d.ts +2 -0
  314. package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs +1 -1
  315. package/dist/components/composed/ConfirmDialog/ConfirmDialog.cjs.map +1 -1
  316. package/dist/components/composed/ConfirmDialog/ConfirmDialog.d.ts +23 -0
  317. package/dist/components/composed/ConfirmDialog/ConfirmDialog.js +33 -29
  318. package/dist/components/composed/ConfirmDialog/ConfirmDialog.js.map +1 -1
  319. package/dist/components/composed/ConfirmDialog/index.d.ts +1 -0
  320. package/dist/components/composed/DataAppShell/CollapseButton.cjs +2 -0
  321. package/dist/components/composed/DataAppShell/CollapseButton.cjs.map +1 -0
  322. package/dist/components/composed/DataAppShell/CollapseButton.d.ts +23 -0
  323. package/dist/components/composed/DataAppShell/CollapseButton.js +42 -0
  324. package/dist/components/composed/DataAppShell/CollapseButton.js.map +1 -0
  325. package/dist/components/composed/DataAppShell/DataAppShell.cjs +1 -1
  326. package/dist/components/composed/DataAppShell/DataAppShell.cjs.map +1 -1
  327. package/dist/components/composed/DataAppShell/DataAppShell.d.ts +88 -0
  328. package/dist/components/composed/DataAppShell/DataAppShell.js +350 -328
  329. package/dist/components/composed/DataAppShell/DataAppShell.js.map +1 -1
  330. package/dist/components/composed/DataAppShell/PrimaryNav.cjs +2 -0
  331. package/dist/components/composed/DataAppShell/PrimaryNav.cjs.map +1 -0
  332. package/dist/components/composed/DataAppShell/PrimaryNav.d.ts +64 -0
  333. package/dist/components/composed/DataAppShell/PrimaryNav.js +268 -0
  334. package/dist/components/composed/DataAppShell/PrimaryNav.js.map +1 -0
  335. package/dist/components/composed/DataAppShell/RightPanel.cjs +2 -0
  336. package/dist/components/composed/DataAppShell/RightPanel.cjs.map +1 -0
  337. package/dist/components/composed/DataAppShell/RightPanel.d.ts +95 -0
  338. package/dist/components/composed/DataAppShell/RightPanel.js +282 -0
  339. package/dist/components/composed/DataAppShell/RightPanel.js.map +1 -0
  340. package/dist/components/composed/DataAppShell/SecondaryNav.cjs +2 -0
  341. package/dist/components/composed/DataAppShell/SecondaryNav.cjs.map +1 -0
  342. package/dist/components/composed/DataAppShell/SecondaryNav.d.ts +63 -0
  343. package/dist/components/composed/DataAppShell/SecondaryNav.js +364 -0
  344. package/dist/components/composed/DataAppShell/SecondaryNav.js.map +1 -0
  345. package/dist/components/composed/DataAppShell/ShellContext.cjs +2 -0
  346. package/dist/components/composed/DataAppShell/ShellContext.cjs.map +1 -0
  347. package/dist/components/composed/DataAppShell/ShellContext.d.ts +20 -0
  348. package/dist/components/composed/DataAppShell/ShellContext.js +23 -0
  349. package/dist/components/composed/DataAppShell/ShellContext.js.map +1 -0
  350. package/dist/components/composed/DataAppShell/index.d.ts +12 -0
  351. package/dist/components/composed/EmptyState/EmptyState.d.ts +12 -0
  352. package/dist/components/composed/EmptyState/index.d.ts +2 -0
  353. package/dist/components/composed/FormPatterns/FormSection.cjs +1 -1
  354. package/dist/components/composed/FormPatterns/FormSection.cjs.map +1 -1
  355. package/dist/components/composed/FormPatterns/FormSection.d.ts +7 -0
  356. package/dist/components/composed/FormPatterns/FormSection.js +2 -2
  357. package/dist/components/composed/FormPatterns/index.d.ts +1 -0
  358. package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs +2 -0
  359. package/dist/components/composed/MoleculeStructure/MoleculeStructure.cjs.map +1 -0
  360. package/dist/components/composed/MoleculeStructure/MoleculeStructure.d.ts +43 -0
  361. package/dist/components/composed/MoleculeStructure/MoleculeStructure.js +87 -0
  362. package/dist/components/composed/MoleculeStructure/MoleculeStructure.js.map +1 -0
  363. package/dist/components/composed/MoleculeStructure/index.d.ts +3 -0
  364. package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs +2 -0
  365. package/dist/components/composed/MoleculeStructure/rdkit-loader.cjs.map +1 -0
  366. package/dist/components/composed/MoleculeStructure/rdkit-loader.d.ts +104 -0
  367. package/dist/components/composed/MoleculeStructure/rdkit-loader.js +89 -0
  368. package/dist/components/composed/MoleculeStructure/rdkit-loader.js.map +1 -0
  369. package/dist/components/composed/MoleculeStructure/use-rdkit.cjs +2 -0
  370. package/dist/components/composed/MoleculeStructure/use-rdkit.cjs.map +1 -0
  371. package/dist/components/composed/MoleculeStructure/use-rdkit.d.ts +29 -0
  372. package/dist/components/composed/MoleculeStructure/use-rdkit.js +19 -0
  373. package/dist/components/composed/MoleculeStructure/use-rdkit.js.map +1 -0
  374. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs +1 -1
  375. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs.map +1 -1
  376. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.d.ts +12 -0
  377. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js +21 -21
  378. package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js.map +1 -1
  379. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs +1 -1
  380. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs.map +1 -1
  381. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.d.ts +22 -0
  382. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js +34 -34
  383. package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js.map +1 -1
  384. package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs +1 -1
  385. package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs.map +1 -1
  386. package/dist/components/composed/PlateMapEditor/PlateMapEditor.d.ts +106 -0
  387. package/dist/components/composed/PlateMapEditor/PlateMapEditor.js +2 -2
  388. package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs +1 -1
  389. package/dist/components/composed/PlateMapEditor/PlateMapForm.cjs.map +1 -1
  390. package/dist/components/composed/PlateMapEditor/PlateMapForm.d.ts +30 -0
  391. package/dist/components/composed/PlateMapEditor/PlateMapForm.js +1 -1
  392. package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs +1 -1
  393. package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs.map +1 -1
  394. package/dist/components/composed/PlateMapEditor/PlateMapGrid.d.ts +64 -0
  395. package/dist/components/composed/PlateMapEditor/PlateMapGrid.js +1 -1
  396. package/dist/components/composed/PlateMapEditor/PlateMapManifest.d.ts +29 -0
  397. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs +1 -1
  398. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs.map +1 -1
  399. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.d.ts +19 -0
  400. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js +11 -11
  401. package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js.map +1 -1
  402. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs +1 -1
  403. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs.map +1 -1
  404. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.d.ts +73 -0
  405. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js +1 -1
  406. package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js.map +1 -1
  407. package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs +1 -1
  408. package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs.map +1 -1
  409. package/dist/components/composed/PlateMapEditor/PlateZoomControl.d.ts +12 -0
  410. package/dist/components/composed/PlateMapEditor/PlateZoomControl.js +2 -2
  411. package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs +1 -1
  412. package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs.map +1 -1
  413. package/dist/components/composed/PlateMapEditor/TemplateIOPanel.d.ts +13 -0
  414. package/dist/components/composed/PlateMapEditor/TemplateIOPanel.js +4 -4
  415. package/dist/components/composed/PlateMapEditor/WellLegend.cjs +1 -1
  416. package/dist/components/composed/PlateMapEditor/WellLegend.cjs.map +1 -1
  417. package/dist/components/composed/PlateMapEditor/WellLegend.d.ts +21 -0
  418. package/dist/components/composed/PlateMapEditor/WellLegend.js +24 -12
  419. package/dist/components/composed/PlateMapEditor/WellLegend.js.map +1 -1
  420. package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs +1 -1
  421. package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs.map +1 -1
  422. package/dist/components/composed/PlateMapEditor/WellManifestTable.d.ts +46 -0
  423. package/dist/components/composed/PlateMapEditor/WellManifestTable.js +10 -10
  424. package/dist/components/composed/PlateMapEditor/WellManifestTable.js.map +1 -1
  425. package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs +1 -1
  426. package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs.map +1 -1
  427. package/dist/components/composed/PlateMapEditor/WellMetadataForm.d.ts +17 -0
  428. package/dist/components/composed/PlateMapEditor/WellMetadataForm.js +7 -7
  429. package/dist/components/composed/PlateMapEditor/autoFill.d.ts +26 -0
  430. package/dist/components/composed/PlateMapEditor/csvPlateTriage.d.ts +4 -0
  431. package/dist/components/composed/PlateMapEditor/helpers.d.ts +2 -0
  432. package/dist/components/composed/PlateMapEditor/index.d.ts +31 -0
  433. package/dist/components/composed/PlateMapEditor/types.d.ts +137 -0
  434. package/dist/components/composed/PlateMapEditor/wellGrid.d.ts +12 -0
  435. package/dist/components/composed/ProcessFlow/ProcessFlow.d.ts +32 -0
  436. package/dist/components/composed/ProcessFlow/ProcessFlow.utils.d.ts +86 -0
  437. package/dist/components/composed/ProcessFlow/index.d.ts +1 -0
  438. package/dist/components/composed/RichListItem/RichListItem.cjs +1 -1
  439. package/dist/components/composed/RichListItem/RichListItem.cjs.map +1 -1
  440. package/dist/components/composed/RichListItem/RichListItem.d.ts +22 -0
  441. package/dist/components/composed/RichListItem/RichListItem.js +2 -2
  442. package/dist/components/composed/RichListItem/index.d.ts +2 -0
  443. package/dist/components/composed/StatCard/StatCard.cjs +1 -1
  444. package/dist/components/composed/StatCard/StatCard.cjs.map +1 -1
  445. package/dist/components/composed/StatCard/StatCard.d.ts +11 -0
  446. package/dist/components/composed/StatCard/StatCard.js +1 -1
  447. package/dist/components/composed/StatCard/index.d.ts +1 -0
  448. package/dist/components/composed/TdpSearch/TdpSearch.cjs +1 -1
  449. package/dist/components/composed/TdpSearch/TdpSearch.cjs.map +1 -1
  450. package/dist/components/composed/TdpSearch/TdpSearch.d.ts +21 -0
  451. package/dist/components/composed/TdpSearch/TdpSearch.js +14 -13
  452. package/dist/components/composed/TdpSearch/TdpSearch.mocks.d.ts +5 -0
  453. package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs +1 -1
  454. package/dist/components/composed/TdpSearch/components/DefaultFilters.cjs.map +1 -1
  455. package/dist/components/composed/TdpSearch/components/DefaultFilters.d.ts +3 -0
  456. package/dist/components/composed/TdpSearch/components/DefaultFilters.js +4 -4
  457. package/dist/components/composed/TdpSearch/components/DefaultFilters.js.map +1 -1
  458. package/dist/components/composed/TdpSearch/components/DefaultResults.cjs +1 -1
  459. package/dist/components/composed/TdpSearch/components/DefaultResults.cjs.map +1 -1
  460. package/dist/components/composed/TdpSearch/components/DefaultResults.d.ts +3 -0
  461. package/dist/components/composed/TdpSearch/components/DefaultResults.js +2 -2
  462. package/dist/components/composed/TdpSearch/components/DefaultSearchBar.cjs +1 -1
  463. package/dist/components/composed/TdpSearch/components/DefaultSearchBar.cjs.map +1 -1
  464. package/dist/components/composed/TdpSearch/components/DefaultSearchBar.d.ts +3 -0
  465. package/dist/components/composed/TdpSearch/components/DefaultSearchBar.js +2 -2
  466. package/dist/components/composed/TdpSearch/constants.d.ts +3 -0
  467. package/dist/components/composed/TdpSearch/hooks/useSearch.d.ts +2 -0
  468. package/dist/components/composed/TdpSearch/hooks/useTdpCredentials.d.ts +14 -0
  469. package/dist/components/composed/TdpSearch/index.d.ts +3 -0
  470. package/dist/components/composed/TdpSearch/types.d.ts +128 -0
  471. package/dist/components/composed/TdpSearch/utils.d.ts +3 -0
  472. package/dist/components/composed/TopBar/TopBar.cjs +2 -0
  473. package/dist/components/composed/TopBar/TopBar.cjs.map +1 -0
  474. package/dist/components/composed/TopBar/TopBar.d.ts +25 -0
  475. package/dist/components/composed/TopBar/TopBar.js +56 -0
  476. package/dist/components/composed/TopBar/TopBar.js.map +1 -0
  477. package/dist/components/composed/TopBar/index.d.ts +2 -0
  478. package/dist/components/composed/UserMenu/UserMenu.cjs +2 -0
  479. package/dist/components/composed/UserMenu/UserMenu.cjs.map +1 -0
  480. package/dist/components/composed/UserMenu/UserMenu.d.ts +53 -0
  481. package/dist/components/composed/UserMenu/UserMenu.js +99 -0
  482. package/dist/components/composed/UserMenu/UserMenu.js.map +1 -0
  483. package/dist/components/composed/UserMenu/index.d.ts +2 -0
  484. package/dist/components/composed/tdp-link.d.ts +110 -0
  485. package/dist/components/composed/tdp-url.d.ts +68 -0
  486. package/dist/components/ui/accordion.d.ts +7 -0
  487. package/dist/components/ui/alert-dialog.d.ts +18 -0
  488. package/dist/components/ui/alert.d.ts +10 -0
  489. package/dist/components/ui/aspect-ratio.d.ts +3 -0
  490. package/dist/components/ui/avatar.d.ts +11 -0
  491. package/dist/components/ui/badge.d.ts +9 -0
  492. package/dist/components/ui/banner.d.ts +19 -0
  493. package/dist/components/ui/breadcrumb.d.ts +11 -0
  494. package/dist/components/ui/button-group.d.ts +11 -0
  495. package/dist/components/ui/button.d.ts +10 -0
  496. package/dist/components/ui/calendar.d.ts +10 -0
  497. package/dist/components/ui/card.d.ts +11 -0
  498. package/dist/components/ui/carousel.d.ts +28 -0
  499. package/dist/components/ui/checkbox.d.ts +4 -0
  500. package/dist/components/ui/code-block.d.ts +45 -0
  501. package/dist/components/ui/code-editor.d.ts +18 -0
  502. package/dist/components/ui/collapsible.d.ts +5 -0
  503. package/dist/components/ui/combobox.d.ts +24 -0
  504. package/dist/components/ui/command.d.ts +18 -0
  505. package/dist/components/ui/context-menu.d.ts +31 -0
  506. package/dist/components/ui/data-table/data-table-column-toggle.cjs +1 -1
  507. package/dist/components/ui/data-table/data-table-column-toggle.cjs.map +1 -1
  508. package/dist/components/ui/data-table/data-table-column-toggle.d.ts +6 -0
  509. package/dist/components/ui/data-table/data-table-column-toggle.js +71 -63
  510. package/dist/components/ui/data-table/data-table-column-toggle.js.map +1 -1
  511. package/dist/components/ui/data-table/data-table-filter.cjs +1 -1
  512. package/dist/components/ui/data-table/data-table-filter.cjs.map +1 -1
  513. package/dist/components/ui/data-table/data-table-filter.d.ts +9 -0
  514. package/dist/components/ui/data-table/data-table-filter.js +26 -25
  515. package/dist/components/ui/data-table/data-table-filter.js.map +1 -1
  516. package/dist/components/ui/data-table/data-table-group.cjs +1 -1
  517. package/dist/components/ui/data-table/data-table-group.cjs.map +1 -1
  518. package/dist/components/ui/data-table/data-table-group.d.ts +9 -0
  519. package/dist/components/ui/data-table/data-table-group.js +18 -17
  520. package/dist/components/ui/data-table/data-table-group.js.map +1 -1
  521. package/dist/components/ui/data-table/data-table-pagination.cjs +1 -1
  522. package/dist/components/ui/data-table/data-table-pagination.cjs.map +1 -1
  523. package/dist/components/ui/data-table/data-table-pagination.d.ts +7 -0
  524. package/dist/components/ui/data-table/data-table-pagination.js +16 -16
  525. package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
  526. package/dist/components/ui/data-table/data-table.cjs +1 -1
  527. package/dist/components/ui/data-table/data-table.cjs.map +1 -1
  528. package/dist/components/ui/data-table/data-table.d.ts +82 -0
  529. package/dist/components/ui/data-table/data-table.js +191 -190
  530. package/dist/components/ui/data-table/data-table.js.map +1 -1
  531. package/dist/components/ui/data-table/index.d.ts +5 -0
  532. package/dist/components/ui/dialog.d.ts +18 -0
  533. package/dist/components/ui/dropdown-menu.d.ts +29 -0
  534. package/dist/components/ui/field.d.ts +24 -0
  535. package/dist/components/ui/hover-card.d.ts +6 -0
  536. package/dist/components/ui/input-group.d.ts +16 -0
  537. package/dist/components/ui/input.d.ts +3 -0
  538. package/dist/components/ui/item.d.ts +23 -0
  539. package/dist/components/ui/kbd.d.ts +3 -0
  540. package/dist/components/ui/label.d.ts +4 -0
  541. package/dist/components/ui/menubar.d.ts +30 -0
  542. package/dist/components/ui/navigation-menu.d.ts +14 -0
  543. package/dist/components/ui/popover.d.ts +7 -0
  544. package/dist/components/ui/progress.d.ts +4 -0
  545. package/dist/components/ui/radio-group.d.ts +5 -0
  546. package/dist/components/ui/resizable.d.ts +25 -0
  547. package/dist/components/ui/scroll-area.d.ts +5 -0
  548. package/dist/components/ui/select.d.ts +15 -0
  549. package/dist/components/ui/separator.d.ts +4 -0
  550. package/dist/components/ui/sheet.d.ts +14 -0
  551. package/dist/components/ui/sidebar.d.ts +69 -0
  552. package/dist/components/ui/skeleton.d.ts +2 -0
  553. package/dist/components/ui/slider.d.ts +4 -0
  554. package/dist/components/ui/snippet.d.ts +18 -0
  555. package/dist/components/ui/sonner.d.ts +3 -0
  556. package/dist/components/ui/spinner.d.ts +6 -0
  557. package/dist/components/ui/switch.d.ts +6 -0
  558. package/dist/components/ui/table.d.ts +22 -0
  559. package/dist/components/ui/tabs.d.ts +11 -0
  560. package/dist/components/ui/tetra-molecule-icon.d.ts +11 -0
  561. package/dist/components/ui/tetrascience-icon.d.ts +7 -0
  562. package/dist/components/ui/textarea.d.ts +3 -0
  563. package/dist/components/ui/toggle-group.d.ts +10 -0
  564. package/dist/components/ui/toggle.d.ts +9 -0
  565. package/dist/components/ui/tooltip.d.ts +7 -0
  566. package/dist/composed/AssistantLayout.cjs +2 -0
  567. package/dist/composed/AssistantLayout.cjs.map +1 -0
  568. package/dist/composed/AssistantLayout.js +10 -0
  569. package/dist/composed/AssistantLayout.js.map +1 -0
  570. package/dist/composed/Chat.cjs +2 -0
  571. package/dist/composed/Chat.cjs.map +1 -0
  572. package/dist/composed/Chat.js +5 -0
  573. package/dist/composed/Chat.js.map +1 -0
  574. package/dist/composed/ConfirmDialog.cjs +2 -0
  575. package/dist/composed/ConfirmDialog.cjs.map +1 -0
  576. package/dist/composed/ConfirmDialog.js +5 -0
  577. package/dist/composed/ConfirmDialog.js.map +1 -0
  578. package/dist/composed/DataAppShell.cjs +2 -0
  579. package/dist/composed/DataAppShell.cjs.map +1 -0
  580. package/dist/composed/DataAppShell.js +22 -0
  581. package/dist/composed/DataAppShell.js.map +1 -0
  582. package/dist/composed/EmptyState.cjs +2 -0
  583. package/dist/composed/EmptyState.cjs.map +1 -0
  584. package/dist/composed/EmptyState.js +5 -0
  585. package/dist/composed/EmptyState.js.map +1 -0
  586. package/dist/composed/FormPatterns.cjs +2 -0
  587. package/dist/composed/FormPatterns.cjs.map +1 -0
  588. package/dist/composed/FormPatterns.js +5 -0
  589. package/dist/composed/FormPatterns.js.map +1 -0
  590. package/dist/composed/MoleculeStructure.cjs +2 -0
  591. package/dist/composed/MoleculeStructure.cjs.map +1 -0
  592. package/dist/composed/MoleculeStructure.js +11 -0
  593. package/dist/composed/MoleculeStructure.js.map +1 -0
  594. package/dist/composed/PlateMapEditor.cjs +2 -0
  595. package/dist/composed/PlateMapEditor.cjs.map +1 -0
  596. package/dist/composed/PlateMapEditor.js +45 -0
  597. package/dist/composed/PlateMapEditor.js.map +1 -0
  598. package/dist/composed/ProcessFlow.cjs +2 -0
  599. package/dist/composed/ProcessFlow.cjs.map +1 -0
  600. package/dist/composed/ProcessFlow.js +7 -0
  601. package/dist/composed/ProcessFlow.js.map +1 -0
  602. package/dist/composed/RichListItem.cjs +2 -0
  603. package/dist/composed/RichListItem.cjs.map +1 -0
  604. package/dist/composed/RichListItem.js +6 -0
  605. package/dist/composed/RichListItem.js.map +1 -0
  606. package/dist/composed/StatCard.cjs +2 -0
  607. package/dist/composed/StatCard.cjs.map +1 -0
  608. package/dist/composed/StatCard.js +5 -0
  609. package/dist/composed/StatCard.js.map +1 -0
  610. package/dist/composed/TdpSearch.cjs +2 -0
  611. package/dist/composed/TdpSearch.cjs.map +1 -0
  612. package/dist/composed/TdpSearch.js +8 -0
  613. package/dist/composed/TdpSearch.js.map +1 -0
  614. package/dist/composed/TopBar.cjs +2 -0
  615. package/dist/composed/TopBar.cjs.map +1 -0
  616. package/dist/composed/TopBar.js +6 -0
  617. package/dist/composed/TopBar.js.map +1 -0
  618. package/dist/composed/UserMenu.cjs +2 -0
  619. package/dist/composed/UserMenu.cjs.map +1 -0
  620. package/dist/composed/UserMenu.js +7 -0
  621. package/dist/composed/UserMenu.js.map +1 -0
  622. package/dist/composed/tdp-link.cjs +2 -0
  623. package/dist/composed/tdp-link.cjs.map +1 -0
  624. package/dist/composed/tdp-link.js +84 -0
  625. package/dist/composed/tdp-link.js.map +1 -0
  626. package/dist/composed/tdp-url.cjs.map +1 -0
  627. package/dist/composed/tdp-url.js.map +1 -0
  628. package/dist/hooks/use-code-editor-theme.d.ts +34 -0
  629. package/dist/hooks/use-element-size.d.ts +25 -0
  630. package/dist/hooks/use-is-dark.d.ts +12 -0
  631. package/dist/hooks/use-mobile.d.ts +1 -0
  632. package/dist/hooks/use-plotly-theme.cjs +1 -1
  633. package/dist/hooks/use-plotly-theme.cjs.map +1 -1
  634. package/dist/hooks/use-plotly-theme.d.ts +49 -0
  635. package/dist/hooks/use-plotly-theme.js +4 -3
  636. package/dist/hooks/use-plotly-theme.js.map +1 -1
  637. package/dist/index.cjs +1 -1
  638. package/dist/index.css +1 -1
  639. package/dist/index.d.ts +102 -4404
  640. package/dist/index.js +698 -659
  641. package/dist/index.js.map +1 -1
  642. package/dist/index.tailwind.css +1 -1
  643. package/dist/jest-setup.cjs +4 -0
  644. package/dist/jest-setup.cjs.map +1 -0
  645. package/dist/jest-setup.d.ts +106 -0
  646. package/dist/jest-setup.js +218 -0
  647. package/dist/jest-setup.js.map +1 -0
  648. package/dist/lib/shiki.cjs +2 -0
  649. package/dist/lib/shiki.cjs.map +1 -0
  650. package/dist/lib/shiki.d.ts +32 -0
  651. package/dist/lib/shiki.js +72 -0
  652. package/dist/lib/shiki.js.map +1 -0
  653. package/dist/lib/utils.d.ts +2 -0
  654. package/dist/server/auth/JwtTokenManager.cjs +1 -1
  655. package/dist/server/auth/JwtTokenManager.cjs.map +1 -1
  656. package/dist/server/auth/JwtTokenManager.d.ts +113 -0
  657. package/dist/server/auth/JwtTokenManager.js +44 -21
  658. package/dist/server/auth/JwtTokenManager.js.map +1 -1
  659. package/dist/server/auth/index.d.ts +5 -0
  660. package/dist/server/index.d.ts +8 -0
  661. package/dist/server/providers/AthenaProvider.cjs +1 -1
  662. package/dist/server/providers/AthenaProvider.cjs.map +1 -1
  663. package/dist/server/providers/AthenaProvider.d.ts +75 -0
  664. package/dist/server/providers/DatabricksProvider.cjs +1 -1
  665. package/dist/server/providers/DatabricksProvider.cjs.map +1 -1
  666. package/dist/server/providers/DatabricksProvider.d.ts +38 -0
  667. package/dist/server/providers/SnowflakeProvider.cjs +1 -1
  668. package/dist/server/providers/SnowflakeProvider.cjs.map +1 -1
  669. package/dist/server/providers/SnowflakeProvider.d.ts +36 -0
  670. package/dist/server/providers/buildProvider.d.ts +39 -0
  671. package/dist/server/providers/entries/athena.d.ts +24 -0
  672. package/dist/server/providers/entries/databricks.d.ts +25 -0
  673. package/dist/server/providers/entries/snowflake.d.ts +25 -0
  674. package/dist/server/providers/exceptions.d.ts +36 -0
  675. package/dist/server/providers/getProviderConfigurations.d.ts +45 -0
  676. package/dist/server/providers/index.d.ts +31 -0
  677. package/dist/server/providers/providerDiscovery.d.ts +81 -0
  678. package/dist/server/providers/types.d.ts +145 -0
  679. package/dist/server/search/TdpSearchManager.d.ts +40 -0
  680. package/dist/server/search/index.d.ts +5 -0
  681. package/dist/server.d.ts +17 -540
  682. package/dist/ui/accordion.cjs +2 -0
  683. package/dist/ui/accordion.cjs.map +1 -0
  684. package/dist/ui/accordion.js +83 -0
  685. package/dist/ui/accordion.js.map +1 -0
  686. package/dist/ui/alert-dialog.cjs +2 -0
  687. package/dist/ui/alert-dialog.cjs.map +1 -0
  688. package/dist/ui/alert-dialog.js +181 -0
  689. package/dist/ui/alert-dialog.js.map +1 -0
  690. package/dist/ui/alert.cjs +2 -0
  691. package/dist/ui/alert.cjs.map +1 -0
  692. package/dist/ui/alert.js +81 -0
  693. package/dist/ui/alert.js.map +1 -0
  694. package/dist/ui/aspect-ratio.cjs.map +1 -0
  695. package/dist/ui/aspect-ratio.js.map +1 -0
  696. package/dist/ui/avatar.cjs +2 -0
  697. package/dist/ui/avatar.cjs.map +1 -0
  698. package/dist/ui/avatar.js +107 -0
  699. package/dist/ui/avatar.js.map +1 -0
  700. package/dist/ui/badge.cjs +2 -0
  701. package/dist/ui/badge.cjs.map +1 -0
  702. package/dist/ui/badge.js +47 -0
  703. package/dist/ui/badge.js.map +1 -0
  704. package/dist/ui/banner.cjs +2 -0
  705. package/dist/ui/banner.cjs.map +1 -0
  706. package/dist/ui/banner.js +80 -0
  707. package/dist/ui/banner.js.map +1 -0
  708. package/dist/ui/breadcrumb.cjs +2 -0
  709. package/dist/ui/breadcrumb.cjs.map +1 -0
  710. package/dist/ui/breadcrumb.js +118 -0
  711. package/dist/ui/breadcrumb.js.map +1 -0
  712. package/dist/ui/button-group.cjs +2 -0
  713. package/dist/ui/button-group.cjs.map +1 -0
  714. package/dist/ui/button-group.js +77 -0
  715. package/dist/ui/button-group.js.map +1 -0
  716. package/dist/ui/button.cjs +2 -0
  717. package/dist/ui/button.cjs.map +1 -0
  718. package/dist/ui/button.js +57 -0
  719. package/dist/ui/button.js.map +1 -0
  720. package/dist/ui/calendar.cjs +2 -0
  721. package/dist/ui/calendar.cjs.map +1 -0
  722. package/dist/ui/calendar.js +174 -0
  723. package/dist/ui/calendar.js.map +1 -0
  724. package/dist/ui/card.cjs +2 -0
  725. package/dist/ui/card.cjs.map +1 -0
  726. package/dist/ui/card.js +102 -0
  727. package/dist/ui/card.js.map +1 -0
  728. package/dist/ui/carousel.cjs +2 -0
  729. package/dist/ui/carousel.cjs.map +1 -0
  730. package/dist/ui/carousel.js +179 -0
  731. package/dist/ui/carousel.js.map +1 -0
  732. package/dist/ui/checkbox.cjs +2 -0
  733. package/dist/ui/checkbox.cjs.map +1 -0
  734. package/dist/ui/checkbox.js +35 -0
  735. package/dist/ui/checkbox.js.map +1 -0
  736. package/dist/ui/code-block.cjs +4 -0
  737. package/dist/ui/code-block.cjs.map +1 -0
  738. package/dist/ui/code-block.js +324 -0
  739. package/dist/ui/code-block.js.map +1 -0
  740. package/dist/ui/code-editor.cjs +2 -0
  741. package/dist/ui/code-editor.cjs.map +1 -0
  742. package/dist/ui/code-editor.js +106 -0
  743. package/dist/ui/code-editor.js.map +1 -0
  744. package/dist/ui/collapsible.cjs.map +1 -0
  745. package/dist/ui/collapsible.js.map +1 -0
  746. package/dist/ui/combobox.cjs +2 -0
  747. package/dist/ui/combobox.cjs.map +1 -0
  748. package/dist/ui/combobox.js +285 -0
  749. package/dist/ui/combobox.js.map +1 -0
  750. package/dist/ui/command.cjs +2 -0
  751. package/dist/ui/command.cjs.map +1 -0
  752. package/dist/ui/command.js +178 -0
  753. package/dist/ui/command.js.map +1 -0
  754. package/dist/ui/context-menu.cjs +2 -0
  755. package/dist/ui/context-menu.cjs.map +1 -0
  756. package/dist/ui/context-menu.js +236 -0
  757. package/dist/ui/context-menu.js.map +1 -0
  758. package/dist/ui/data-table.cjs +2 -0
  759. package/dist/ui/data-table.cjs.map +1 -0
  760. package/dist/ui/data-table.js +16 -0
  761. package/dist/ui/data-table.js.map +1 -0
  762. package/dist/ui/dialog.cjs +2 -0
  763. package/dist/ui/dialog.cjs.map +1 -0
  764. package/dist/ui/dialog.js +165 -0
  765. package/dist/ui/dialog.js.map +1 -0
  766. package/dist/ui/dropdown-menu.cjs +2 -0
  767. package/dist/ui/dropdown-menu.cjs.map +1 -0
  768. package/dist/ui/dropdown-menu.js +260 -0
  769. package/dist/ui/dropdown-menu.js.map +1 -0
  770. package/dist/ui/field.cjs +2 -0
  771. package/dist/ui/field.cjs.map +1 -0
  772. package/dist/ui/field.js +210 -0
  773. package/dist/ui/field.js.map +1 -0
  774. package/dist/ui/hover-card.cjs +2 -0
  775. package/dist/ui/hover-card.cjs.map +1 -0
  776. package/dist/ui/hover-card.js +39 -0
  777. package/dist/ui/hover-card.js.map +1 -0
  778. package/dist/ui/input-group.cjs +2 -0
  779. package/dist/ui/input-group.cjs.map +1 -0
  780. package/dist/ui/input-group.js +145 -0
  781. package/dist/ui/input-group.js.map +1 -0
  782. package/dist/ui/input.cjs +2 -0
  783. package/dist/ui/input.cjs.map +1 -0
  784. package/dist/ui/input.js +20 -0
  785. package/dist/ui/input.js.map +1 -0
  786. package/dist/ui/item.cjs +2 -0
  787. package/dist/ui/item.cjs.map +1 -0
  788. package/dist/ui/item.js +199 -0
  789. package/dist/ui/item.js.map +1 -0
  790. package/dist/ui/kbd.cjs +2 -0
  791. package/dist/ui/kbd.cjs.map +1 -0
  792. package/dist/ui/kbd.js +30 -0
  793. package/dist/ui/kbd.js.map +1 -0
  794. package/dist/ui/label.cjs +2 -0
  795. package/dist/ui/label.cjs.map +1 -0
  796. package/dist/ui/label.js +23 -0
  797. package/dist/ui/label.js.map +1 -0
  798. package/dist/ui/menubar.cjs +2 -0
  799. package/dist/ui/menubar.cjs.map +1 -0
  800. package/dist/ui/menubar.js +256 -0
  801. package/dist/ui/menubar.js.map +1 -0
  802. package/dist/ui/navigation-menu.cjs +2 -0
  803. package/dist/ui/navigation-menu.cjs.map +1 -0
  804. package/dist/ui/navigation-menu.js +164 -0
  805. package/dist/ui/navigation-menu.js.map +1 -0
  806. package/dist/ui/popover.cjs +2 -0
  807. package/dist/ui/popover.cjs.map +1 -0
  808. package/dist/ui/popover.js +45 -0
  809. package/dist/ui/popover.js.map +1 -0
  810. package/dist/ui/radio-group.cjs +2 -0
  811. package/dist/ui/radio-group.cjs.map +1 -0
  812. package/dist/ui/radio-group.js +45 -0
  813. package/dist/ui/radio-group.js.map +1 -0
  814. package/dist/ui/resizable.cjs +2 -0
  815. package/dist/ui/resizable.cjs.map +1 -0
  816. package/dist/ui/resizable.js +58 -0
  817. package/dist/ui/resizable.js.map +1 -0
  818. package/dist/ui/scroll-area.cjs +2 -0
  819. package/dist/ui/scroll-area.cjs.map +1 -0
  820. package/dist/ui/scroll-area.js +61 -0
  821. package/dist/ui/scroll-area.js.map +1 -0
  822. package/dist/ui/select.cjs +2 -0
  823. package/dist/ui/select.cjs.map +1 -0
  824. package/dist/ui/select.js +184 -0
  825. package/dist/ui/select.js.map +1 -0
  826. package/dist/ui/separator.cjs +2 -0
  827. package/dist/ui/separator.cjs.map +1 -0
  828. package/dist/ui/separator.js +27 -0
  829. package/dist/ui/separator.js.map +1 -0
  830. package/dist/ui/sheet.cjs +2 -0
  831. package/dist/ui/sheet.cjs.map +1 -0
  832. package/dist/ui/sheet.js +137 -0
  833. package/dist/ui/sheet.js.map +1 -0
  834. package/dist/ui/sidebar.cjs +2 -0
  835. package/dist/ui/sidebar.cjs.map +1 -0
  836. package/dist/ui/sidebar.js +579 -0
  837. package/dist/ui/sidebar.js.map +1 -0
  838. package/dist/ui/skeleton.cjs +2 -0
  839. package/dist/ui/skeleton.cjs.map +1 -0
  840. package/dist/ui/skeleton.js +24 -0
  841. package/dist/ui/skeleton.js.map +1 -0
  842. package/dist/ui/slider.cjs +2 -0
  843. package/dist/ui/slider.cjs.map +1 -0
  844. package/dist/ui/slider.js +61 -0
  845. package/dist/ui/slider.js.map +1 -0
  846. package/dist/ui/sonner.cjs +2 -0
  847. package/dist/ui/sonner.cjs.map +1 -0
  848. package/dist/ui/sonner.js +52 -0
  849. package/dist/ui/sonner.js.map +1 -0
  850. package/dist/ui/spinner.cjs +2 -0
  851. package/dist/ui/spinner.cjs.map +1 -0
  852. package/dist/ui/spinner.js +39 -0
  853. package/dist/ui/spinner.js.map +1 -0
  854. package/dist/ui/switch.cjs +2 -0
  855. package/dist/ui/switch.cjs.map +1 -0
  856. package/dist/ui/switch.js +32 -0
  857. package/dist/ui/switch.js.map +1 -0
  858. package/dist/ui/table.cjs +2 -0
  859. package/dist/ui/table.cjs.map +1 -0
  860. package/dist/ui/table.js +153 -0
  861. package/dist/ui/table.js.map +1 -0
  862. package/dist/ui/tabs.cjs +2 -0
  863. package/dist/ui/tabs.cjs.map +1 -0
  864. package/dist/ui/tabs.js +92 -0
  865. package/dist/ui/tabs.js.map +1 -0
  866. package/dist/ui/tetra-molecule-icon.cjs +2 -0
  867. package/dist/ui/tetra-molecule-icon.cjs.map +1 -0
  868. package/dist/ui/tetra-molecule-icon.js +50 -0
  869. package/dist/ui/tetra-molecule-icon.js.map +1 -0
  870. package/dist/ui/tetrascience-icon.cjs +2 -0
  871. package/dist/ui/tetrascience-icon.cjs.map +1 -0
  872. package/dist/ui/tetrascience-icon.js +47 -0
  873. package/dist/ui/tetrascience-icon.js.map +1 -0
  874. package/dist/ui/textarea.cjs +2 -0
  875. package/dist/ui/textarea.cjs.map +1 -0
  876. package/dist/ui/textarea.js +19 -0
  877. package/dist/ui/textarea.js.map +1 -0
  878. package/dist/ui/toggle-group.cjs +2 -0
  879. package/dist/ui/toggle-group.cjs.map +1 -0
  880. package/dist/ui/toggle-group.js +81 -0
  881. package/dist/ui/toggle-group.js.map +1 -0
  882. package/dist/ui/toggle.cjs +2 -0
  883. package/dist/ui/toggle.cjs.map +1 -0
  884. package/dist/ui/toggle.js +44 -0
  885. package/dist/ui/toggle.js.map +1 -0
  886. package/dist/ui/tooltip.cjs +2 -0
  887. package/dist/ui/tooltip.cjs.map +1 -0
  888. package/dist/ui/tooltip.js +56 -0
  889. package/dist/ui/tooltip.js.map +1 -0
  890. package/dist/utils/colors.d.ts +50 -0
  891. package/package.json +137 -24
  892. package/dist/athena.d.ts +0 -167
  893. package/dist/components/ai/attachments.cjs +0 -2
  894. package/dist/components/ai/attachments.cjs.map +0 -1
  895. package/dist/components/ai/attachments.js +0 -224
  896. package/dist/components/ai/attachments.js.map +0 -1
  897. package/dist/components/ai/chain-of-thought.cjs +0 -2
  898. package/dist/components/ai/chain-of-thought.cjs.map +0 -1
  899. package/dist/components/ai/chain-of-thought.js +0 -145
  900. package/dist/components/ai/chain-of-thought.js.map +0 -1
  901. package/dist/components/ai/confirmation.cjs +0 -2
  902. package/dist/components/ai/confirmation.cjs.map +0 -1
  903. package/dist/components/ai/confirmation.js +0 -109
  904. package/dist/components/ai/confirmation.js.map +0 -1
  905. package/dist/components/ai/context.cjs +0 -2
  906. package/dist/components/ai/context.cjs.map +0 -1
  907. package/dist/components/ai/context.js +0 -266
  908. package/dist/components/ai/context.js.map +0 -1
  909. package/dist/components/ai/conversation.cjs +0 -4
  910. package/dist/components/ai/conversation.cjs.map +0 -1
  911. package/dist/components/ai/conversation.js +0 -108
  912. package/dist/components/ai/conversation.js.map +0 -1
  913. package/dist/components/ai/inline-citation.cjs +0 -2
  914. package/dist/components/ai/inline-citation.cjs.map +0 -1
  915. package/dist/components/ai/inline-citation.js +0 -182
  916. package/dist/components/ai/inline-citation.js.map +0 -1
  917. package/dist/components/ai/message.cjs +0 -2
  918. package/dist/components/ai/message.cjs.map +0 -1
  919. package/dist/components/ai/message.js +0 -237
  920. package/dist/components/ai/message.js.map +0 -1
  921. package/dist/components/ai/model-selector.cjs +0 -2
  922. package/dist/components/ai/model-selector.cjs.map +0 -1
  923. package/dist/components/ai/model-selector.js +0 -77
  924. package/dist/components/ai/model-selector.js.map +0 -1
  925. package/dist/components/ai/prompt-input.cjs +0 -2
  926. package/dist/components/ai/prompt-input.cjs.map +0 -1
  927. package/dist/components/ai/prompt-input.js +0 -774
  928. package/dist/components/ai/prompt-input.js.map +0 -1
  929. package/dist/components/ai/queue.cjs +0 -2
  930. package/dist/components/ai/queue.cjs.map +0 -1
  931. package/dist/components/ai/queue.js +0 -209
  932. package/dist/components/ai/queue.js.map +0 -1
  933. package/dist/components/ai/reasoning.cjs +0 -2
  934. package/dist/components/ai/reasoning.cjs.map +0 -1
  935. package/dist/components/ai/reasoning.js +0 -129
  936. package/dist/components/ai/reasoning.js.map +0 -1
  937. package/dist/components/ai/shimmer.cjs +0 -2
  938. package/dist/components/ai/shimmer.cjs.map +0 -1
  939. package/dist/components/ai/shimmer.js +0 -49
  940. package/dist/components/ai/shimmer.js.map +0 -1
  941. package/dist/components/ai/sources.cjs +0 -2
  942. package/dist/components/ai/sources.cjs.map +0 -1
  943. package/dist/components/ai/sources.js +0 -54
  944. package/dist/components/ai/sources.js.map +0 -1
  945. package/dist/components/ai/speech-input.cjs +0 -2
  946. package/dist/components/ai/speech-input.cjs.map +0 -1
  947. package/dist/components/ai/speech-input.js +0 -123
  948. package/dist/components/ai/speech-input.js.map +0 -1
  949. package/dist/components/ai/stream-status.cjs +0 -2
  950. package/dist/components/ai/stream-status.cjs.map +0 -1
  951. package/dist/components/ai/stream-status.js +0 -106
  952. package/dist/components/ai/stream-status.js.map +0 -1
  953. package/dist/components/ai/suggestion.cjs +0 -2
  954. package/dist/components/ai/suggestion.cjs.map +0 -1
  955. package/dist/components/ai/suggestion.js +0 -38
  956. package/dist/components/ai/suggestion.js.map +0 -1
  957. package/dist/components/ai/task.cjs +0 -2
  958. package/dist/components/ai/task.cjs.map +0 -1
  959. package/dist/components/ai/task.js +0 -94
  960. package/dist/components/ai/task.js.map +0 -1
  961. package/dist/components/ai/tool.cjs +0 -2
  962. package/dist/components/ai/tool.cjs.map +0 -1
  963. package/dist/components/ai/tool.js +0 -143
  964. package/dist/components/ai/tool.js.map +0 -1
  965. package/dist/components/charts/AreaGraph/AreaGraph.cjs +0 -2
  966. package/dist/components/charts/AreaGraph/AreaGraph.cjs.map +0 -1
  967. package/dist/components/charts/AreaGraph/AreaGraph.js +0 -271
  968. package/dist/components/charts/AreaGraph/AreaGraph.js.map +0 -1
  969. package/dist/components/charts/BarGraph/BarGraph.cjs +0 -2
  970. package/dist/components/charts/BarGraph/BarGraph.cjs.map +0 -1
  971. package/dist/components/charts/BarGraph/BarGraph.js +0 -220
  972. package/dist/components/charts/BarGraph/BarGraph.js.map +0 -1
  973. package/dist/components/charts/Boxplot/Boxplot.cjs +0 -2
  974. package/dist/components/charts/Boxplot/Boxplot.cjs.map +0 -1
  975. package/dist/components/charts/Boxplot/Boxplot.js +0 -209
  976. package/dist/components/charts/Boxplot/Boxplot.js.map +0 -1
  977. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs +0 -2
  978. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs.map +0 -1
  979. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js +0 -227
  980. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js.map +0 -1
  981. package/dist/components/charts/ChromatogramChart/annotations.cjs +0 -2
  982. package/dist/components/charts/ChromatogramChart/annotations.cjs.map +0 -1
  983. package/dist/components/charts/ChromatogramChart/annotations.js +0 -73
  984. package/dist/components/charts/ChromatogramChart/annotations.js.map +0 -1
  985. package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs +0 -2
  986. package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs.map +0 -1
  987. package/dist/components/charts/ChromatogramChart/boundaryMarkers.js +0 -34
  988. package/dist/components/charts/ChromatogramChart/boundaryMarkers.js.map +0 -1
  989. package/dist/components/charts/ChromatogramChart/constants.cjs +0 -2
  990. package/dist/components/charts/ChromatogramChart/constants.cjs.map +0 -1
  991. package/dist/components/charts/ChromatogramChart/constants.js +0 -30
  992. package/dist/components/charts/ChromatogramChart/constants.js.map +0 -1
  993. package/dist/components/charts/ChromatogramChart/dataProcessing.cjs +0 -2
  994. package/dist/components/charts/ChromatogramChart/dataProcessing.cjs.map +0 -1
  995. package/dist/components/charts/ChromatogramChart/dataProcessing.js +0 -79
  996. package/dist/components/charts/ChromatogramChart/dataProcessing.js.map +0 -1
  997. package/dist/components/charts/ChromatogramChart/peakDetection.cjs.map +0 -1
  998. package/dist/components/charts/ChromatogramChart/peakDetection.js.map +0 -1
  999. package/dist/components/charts/DotPlot/DotPlot.cjs +0 -2
  1000. package/dist/components/charts/DotPlot/DotPlot.cjs.map +0 -1
  1001. package/dist/components/charts/DotPlot/DotPlot.js +0 -208
  1002. package/dist/components/charts/DotPlot/DotPlot.js.map +0 -1
  1003. package/dist/components/charts/Heatmap/Heatmap.cjs +0 -2
  1004. package/dist/components/charts/Heatmap/Heatmap.cjs.map +0 -1
  1005. package/dist/components/charts/Heatmap/Heatmap.js +0 -67
  1006. package/dist/components/charts/Heatmap/Heatmap.js.map +0 -1
  1007. package/dist/components/charts/LineGraph/LineGraph.cjs +0 -2
  1008. package/dist/components/charts/LineGraph/LineGraph.cjs.map +0 -1
  1009. package/dist/components/charts/LineGraph/LineGraph.js +0 -225
  1010. package/dist/components/charts/LineGraph/LineGraph.js.map +0 -1
  1011. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs +0 -2
  1012. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs.map +0 -1
  1013. package/dist/components/charts/ScatterGraph/ScatterGraph.js +0 -234
  1014. package/dist/components/charts/ScatterGraph/ScatterGraph.js.map +0 -1
  1015. package/dist/components/composed/tdp-link.cjs +0 -2
  1016. package/dist/components/composed/tdp-link.cjs.map +0 -1
  1017. package/dist/components/composed/tdp-link.js +0 -84
  1018. package/dist/components/composed/tdp-link.js.map +0 -1
  1019. package/dist/components/composed/tdp-url.cjs.map +0 -1
  1020. package/dist/components/composed/tdp-url.js.map +0 -1
  1021. package/dist/components/ui/accordion.cjs +0 -2
  1022. package/dist/components/ui/accordion.cjs.map +0 -1
  1023. package/dist/components/ui/accordion.js +0 -83
  1024. package/dist/components/ui/accordion.js.map +0 -1
  1025. package/dist/components/ui/alert-dialog.cjs +0 -2
  1026. package/dist/components/ui/alert-dialog.cjs.map +0 -1
  1027. package/dist/components/ui/alert-dialog.js +0 -181
  1028. package/dist/components/ui/alert-dialog.js.map +0 -1
  1029. package/dist/components/ui/alert.cjs +0 -2
  1030. package/dist/components/ui/alert.cjs.map +0 -1
  1031. package/dist/components/ui/alert.js +0 -81
  1032. package/dist/components/ui/alert.js.map +0 -1
  1033. package/dist/components/ui/aspect-ratio.cjs.map +0 -1
  1034. package/dist/components/ui/aspect-ratio.js.map +0 -1
  1035. package/dist/components/ui/avatar.cjs +0 -2
  1036. package/dist/components/ui/avatar.cjs.map +0 -1
  1037. package/dist/components/ui/avatar.js +0 -107
  1038. package/dist/components/ui/avatar.js.map +0 -1
  1039. package/dist/components/ui/badge.cjs +0 -2
  1040. package/dist/components/ui/badge.cjs.map +0 -1
  1041. package/dist/components/ui/badge.js +0 -47
  1042. package/dist/components/ui/badge.js.map +0 -1
  1043. package/dist/components/ui/banner.cjs +0 -2
  1044. package/dist/components/ui/banner.cjs.map +0 -1
  1045. package/dist/components/ui/banner.js +0 -80
  1046. package/dist/components/ui/banner.js.map +0 -1
  1047. package/dist/components/ui/breadcrumb.cjs +0 -2
  1048. package/dist/components/ui/breadcrumb.cjs.map +0 -1
  1049. package/dist/components/ui/breadcrumb.js +0 -118
  1050. package/dist/components/ui/breadcrumb.js.map +0 -1
  1051. package/dist/components/ui/button-group.cjs +0 -2
  1052. package/dist/components/ui/button-group.cjs.map +0 -1
  1053. package/dist/components/ui/button-group.js +0 -77
  1054. package/dist/components/ui/button-group.js.map +0 -1
  1055. package/dist/components/ui/button.cjs +0 -2
  1056. package/dist/components/ui/button.cjs.map +0 -1
  1057. package/dist/components/ui/button.js +0 -57
  1058. package/dist/components/ui/button.js.map +0 -1
  1059. package/dist/components/ui/calendar.cjs +0 -2
  1060. package/dist/components/ui/calendar.cjs.map +0 -1
  1061. package/dist/components/ui/calendar.js +0 -174
  1062. package/dist/components/ui/calendar.js.map +0 -1
  1063. package/dist/components/ui/card.cjs +0 -2
  1064. package/dist/components/ui/card.cjs.map +0 -1
  1065. package/dist/components/ui/card.js +0 -102
  1066. package/dist/components/ui/card.js.map +0 -1
  1067. package/dist/components/ui/carousel.cjs +0 -2
  1068. package/dist/components/ui/carousel.cjs.map +0 -1
  1069. package/dist/components/ui/carousel.js +0 -179
  1070. package/dist/components/ui/carousel.js.map +0 -1
  1071. package/dist/components/ui/checkbox.cjs +0 -2
  1072. package/dist/components/ui/checkbox.cjs.map +0 -1
  1073. package/dist/components/ui/checkbox.js +0 -35
  1074. package/dist/components/ui/checkbox.js.map +0 -1
  1075. package/dist/components/ui/code-block.cjs +0 -4
  1076. package/dist/components/ui/code-block.cjs.map +0 -1
  1077. package/dist/components/ui/code-block.js +0 -306
  1078. package/dist/components/ui/code-block.js.map +0 -1
  1079. package/dist/components/ui/code-editor.cjs +0 -2
  1080. package/dist/components/ui/code-editor.cjs.map +0 -1
  1081. package/dist/components/ui/code-editor.js +0 -103
  1082. package/dist/components/ui/code-editor.js.map +0 -1
  1083. package/dist/components/ui/collapsible.cjs.map +0 -1
  1084. package/dist/components/ui/collapsible.js.map +0 -1
  1085. package/dist/components/ui/combobox.cjs +0 -2
  1086. package/dist/components/ui/combobox.cjs.map +0 -1
  1087. package/dist/components/ui/combobox.js +0 -281
  1088. package/dist/components/ui/combobox.js.map +0 -1
  1089. package/dist/components/ui/command.cjs +0 -2
  1090. package/dist/components/ui/command.cjs.map +0 -1
  1091. package/dist/components/ui/command.js +0 -174
  1092. package/dist/components/ui/command.js.map +0 -1
  1093. package/dist/components/ui/context-menu.cjs +0 -2
  1094. package/dist/components/ui/context-menu.cjs.map +0 -1
  1095. package/dist/components/ui/context-menu.js +0 -236
  1096. package/dist/components/ui/context-menu.js.map +0 -1
  1097. package/dist/components/ui/dialog.cjs +0 -2
  1098. package/dist/components/ui/dialog.cjs.map +0 -1
  1099. package/dist/components/ui/dialog.js +0 -165
  1100. package/dist/components/ui/dialog.js.map +0 -1
  1101. package/dist/components/ui/drawer.cjs +0 -2
  1102. package/dist/components/ui/drawer.cjs.map +0 -1
  1103. package/dist/components/ui/drawer.js +0 -125
  1104. package/dist/components/ui/drawer.js.map +0 -1
  1105. package/dist/components/ui/dropdown-menu.cjs +0 -2
  1106. package/dist/components/ui/dropdown-menu.cjs.map +0 -1
  1107. package/dist/components/ui/dropdown-menu.js +0 -252
  1108. package/dist/components/ui/dropdown-menu.js.map +0 -1
  1109. package/dist/components/ui/field.cjs +0 -2
  1110. package/dist/components/ui/field.cjs.map +0 -1
  1111. package/dist/components/ui/field.js +0 -210
  1112. package/dist/components/ui/field.js.map +0 -1
  1113. package/dist/components/ui/hover-card.cjs +0 -2
  1114. package/dist/components/ui/hover-card.cjs.map +0 -1
  1115. package/dist/components/ui/hover-card.js +0 -39
  1116. package/dist/components/ui/hover-card.js.map +0 -1
  1117. package/dist/components/ui/input-group.cjs +0 -2
  1118. package/dist/components/ui/input-group.cjs.map +0 -1
  1119. package/dist/components/ui/input-group.js +0 -145
  1120. package/dist/components/ui/input-group.js.map +0 -1
  1121. package/dist/components/ui/input-otp.cjs +0 -2
  1122. package/dist/components/ui/input-otp.cjs.map +0 -1
  1123. package/dist/components/ui/input-otp.js +0 -82
  1124. package/dist/components/ui/input-otp.js.map +0 -1
  1125. package/dist/components/ui/input.cjs +0 -2
  1126. package/dist/components/ui/input.cjs.map +0 -1
  1127. package/dist/components/ui/input.js +0 -20
  1128. package/dist/components/ui/input.js.map +0 -1
  1129. package/dist/components/ui/item.cjs +0 -2
  1130. package/dist/components/ui/item.cjs.map +0 -1
  1131. package/dist/components/ui/item.js +0 -191
  1132. package/dist/components/ui/item.js.map +0 -1
  1133. package/dist/components/ui/kbd.cjs +0 -2
  1134. package/dist/components/ui/kbd.cjs.map +0 -1
  1135. package/dist/components/ui/kbd.js +0 -30
  1136. package/dist/components/ui/kbd.js.map +0 -1
  1137. package/dist/components/ui/label.cjs +0 -2
  1138. package/dist/components/ui/label.cjs.map +0 -1
  1139. package/dist/components/ui/label.js +0 -23
  1140. package/dist/components/ui/label.js.map +0 -1
  1141. package/dist/components/ui/menubar.cjs +0 -2
  1142. package/dist/components/ui/menubar.cjs.map +0 -1
  1143. package/dist/components/ui/menubar.js +0 -256
  1144. package/dist/components/ui/menubar.js.map +0 -1
  1145. package/dist/components/ui/navigation-menu.cjs +0 -2
  1146. package/dist/components/ui/navigation-menu.cjs.map +0 -1
  1147. package/dist/components/ui/navigation-menu.js +0 -164
  1148. package/dist/components/ui/navigation-menu.js.map +0 -1
  1149. package/dist/components/ui/popover.cjs +0 -2
  1150. package/dist/components/ui/popover.cjs.map +0 -1
  1151. package/dist/components/ui/popover.js +0 -45
  1152. package/dist/components/ui/popover.js.map +0 -1
  1153. package/dist/components/ui/radio-group.cjs +0 -2
  1154. package/dist/components/ui/radio-group.cjs.map +0 -1
  1155. package/dist/components/ui/radio-group.js +0 -45
  1156. package/dist/components/ui/radio-group.js.map +0 -1
  1157. package/dist/components/ui/resizable.cjs +0 -2
  1158. package/dist/components/ui/resizable.cjs.map +0 -1
  1159. package/dist/components/ui/resizable.js +0 -58
  1160. package/dist/components/ui/resizable.js.map +0 -1
  1161. package/dist/components/ui/scroll-area.cjs +0 -2
  1162. package/dist/components/ui/scroll-area.cjs.map +0 -1
  1163. package/dist/components/ui/scroll-area.js +0 -60
  1164. package/dist/components/ui/scroll-area.js.map +0 -1
  1165. package/dist/components/ui/select.cjs +0 -2
  1166. package/dist/components/ui/select.cjs.map +0 -1
  1167. package/dist/components/ui/select.js +0 -184
  1168. package/dist/components/ui/select.js.map +0 -1
  1169. package/dist/components/ui/separator.cjs +0 -2
  1170. package/dist/components/ui/separator.cjs.map +0 -1
  1171. package/dist/components/ui/separator.js +0 -27
  1172. package/dist/components/ui/separator.js.map +0 -1
  1173. package/dist/components/ui/sheet.cjs +0 -2
  1174. package/dist/components/ui/sheet.cjs.map +0 -1
  1175. package/dist/components/ui/sheet.js +0 -137
  1176. package/dist/components/ui/sheet.js.map +0 -1
  1177. package/dist/components/ui/sidebar.cjs +0 -2
  1178. package/dist/components/ui/sidebar.cjs.map +0 -1
  1179. package/dist/components/ui/sidebar.js +0 -579
  1180. package/dist/components/ui/sidebar.js.map +0 -1
  1181. package/dist/components/ui/skeleton.cjs +0 -2
  1182. package/dist/components/ui/skeleton.cjs.map +0 -1
  1183. package/dist/components/ui/skeleton.js +0 -24
  1184. package/dist/components/ui/skeleton.js.map +0 -1
  1185. package/dist/components/ui/slider.cjs +0 -2
  1186. package/dist/components/ui/slider.cjs.map +0 -1
  1187. package/dist/components/ui/slider.js +0 -60
  1188. package/dist/components/ui/slider.js.map +0 -1
  1189. package/dist/components/ui/sonner.cjs +0 -2
  1190. package/dist/components/ui/sonner.cjs.map +0 -1
  1191. package/dist/components/ui/sonner.js +0 -37
  1192. package/dist/components/ui/sonner.js.map +0 -1
  1193. package/dist/components/ui/spinner.cjs +0 -2
  1194. package/dist/components/ui/spinner.cjs.map +0 -1
  1195. package/dist/components/ui/spinner.js +0 -39
  1196. package/dist/components/ui/spinner.js.map +0 -1
  1197. package/dist/components/ui/switch.cjs +0 -2
  1198. package/dist/components/ui/switch.cjs.map +0 -1
  1199. package/dist/components/ui/switch.js +0 -32
  1200. package/dist/components/ui/switch.js.map +0 -1
  1201. package/dist/components/ui/table.cjs +0 -2
  1202. package/dist/components/ui/table.cjs.map +0 -1
  1203. package/dist/components/ui/table.js +0 -152
  1204. package/dist/components/ui/table.js.map +0 -1
  1205. package/dist/components/ui/tabs.cjs +0 -2
  1206. package/dist/components/ui/tabs.cjs.map +0 -1
  1207. package/dist/components/ui/tabs.js +0 -92
  1208. package/dist/components/ui/tabs.js.map +0 -1
  1209. package/dist/components/ui/tetrascience-icon.cjs +0 -2
  1210. package/dist/components/ui/tetrascience-icon.cjs.map +0 -1
  1211. package/dist/components/ui/tetrascience-icon.js +0 -46
  1212. package/dist/components/ui/tetrascience-icon.js.map +0 -1
  1213. package/dist/components/ui/textarea.cjs +0 -2
  1214. package/dist/components/ui/textarea.cjs.map +0 -1
  1215. package/dist/components/ui/textarea.js +0 -19
  1216. package/dist/components/ui/textarea.js.map +0 -1
  1217. package/dist/components/ui/toggle-group.cjs +0 -2
  1218. package/dist/components/ui/toggle-group.cjs.map +0 -1
  1219. package/dist/components/ui/toggle-group.js +0 -77
  1220. package/dist/components/ui/toggle-group.js.map +0 -1
  1221. package/dist/components/ui/toggle.cjs +0 -2
  1222. package/dist/components/ui/toggle.cjs.map +0 -1
  1223. package/dist/components/ui/toggle.js +0 -44
  1224. package/dist/components/ui/toggle.js.map +0 -1
  1225. package/dist/components/ui/tooltip.cjs +0 -2
  1226. package/dist/components/ui/tooltip.cjs.map +0 -1
  1227. package/dist/components/ui/tooltip.js +0 -56
  1228. package/dist/components/ui/tooltip.js.map +0 -1
  1229. package/dist/databricks.d.ts +0 -129
  1230. package/dist/providers/athena.d.ts +0 -9
  1231. package/dist/providers/databricks.d.ts +0 -9
  1232. package/dist/providers/snowflake.d.ts +0 -9
  1233. package/dist/snowflake.d.ts +0 -125
  1234. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/peakDetection.cjs +0 -0
  1235. /package/dist/components/charts/{ChromatogramChart → Chromatogram}/peakDetection.js +0 -0
  1236. /package/dist/{components/composed → composed}/tdp-url.cjs +0 -0
  1237. /package/dist/{components/composed → composed}/tdp-url.js +0 -0
  1238. /package/dist/{components/ui → ui}/aspect-ratio.cjs +0 -0
  1239. /package/dist/{components/ui → ui}/aspect-ratio.js +0 -0
  1240. /package/dist/{components/ui → ui}/collapsible.cjs +0 -0
  1241. /package/dist/{components/ui → ui}/collapsible.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-of-thought.js","sources":["../../src/components/ai/chain-of-thought.tsx"],"sourcesContent":["import { Brain, ChevronUpIcon, ImageIcon, SearchIcon } from \"lucide-react\";\n\nimport type { ComponentProps, ReactNode } from \"react\";\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\";\nimport { cn } from \"@/lib/utils\";\n\n// ---------------------------------------------------------------------------\n// ChainOfThought (root)\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtProps = ComponentProps<typeof Collapsible>;\n\nexport const ChainOfThought = ({\n className,\n defaultOpen = true,\n ...props\n}: ChainOfThoughtProps) => (\n <Collapsible\n className={cn(\"overflow-hidden rounded-lg text-sm\", className)}\n defaultOpen={defaultOpen}\n {...props}\n />\n);\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtTrigger\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {\n title?: string;\n icon?: ReactNode;\n /** When true, renders a subtle animated dot next to the title. */\n isStreaming?: boolean;\n};\n\nexport const ChainOfThoughtTrigger = ({\n className,\n children,\n title = \"Chain of Thought\",\n icon,\n isStreaming = false,\n ...props\n}: ChainOfThoughtTriggerProps) => (\n <CollapsibleTrigger\n className={cn(\n \"group flex w-full items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground\",\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n {icon ?? <Brain className=\"size-4 text-muted-foreground\" />}\n <span className=\"flex-1 text-left items-center gap-2\">\n {title}\n {isStreaming && (\n <span className=\"size-1.5 animate-pulse rounded-full bg-primary\" />\n )}\n </span>\n <ChevronUpIcon\n className=\"size-4 text-muted-foreground opacity-0 transition-all group-focus-visible:opacity-100 group-hover:opacity-100 group-data-[state=open]:opacity-100 group-data-[state=closed]:rotate-180\"\n data-slot=\"collapsible-chevron\"\n />\n </>\n )}\n </CollapsibleTrigger>\n);\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtContent\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const ChainOfThoughtContent = ({\n className,\n ...props\n}: ChainOfThoughtContentProps) => (\n <CollapsibleContent\n className={cn(\n \"flex flex-col gap-2.5 pb-4 pt-3\",\n \"data-[state=closed]:animate-out data-[state=open]:animate-in\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:slide-out-to-top-1 data-[state=open]:slide-in-from-top-1\",\n className\n )}\n {...props}\n />\n);\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtStep\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtStepVariant = \"bullet\" | \"search\" | \"image\";\n\nexport type ChainOfThoughtStepProps = ComponentProps<\"div\"> & {\n /**\n * Visual prefix for the step.\n * - `\"bullet\"` — small dot (default, plain reasoning text)\n * - `\"search\"` — magnifying-glass (web search / tool call)\n * - `\"image\"` — image icon (image fetch / vision step)\n * - ReactNode — custom icon\n */\n variant?: ChainOfThoughtStepVariant | ReactNode;\n};\n\nconst STEP_ICONS: Record<ChainOfThoughtStepVariant, ReactNode> = {\n bullet: (\n <span className=\"mt-[7px] ml-1 size-1.5 shrink-0 rounded-full bg-muted-foreground/50\" />\n ),\n search: <SearchIcon className=\"mt-0.5 w-[18px] size-3.5 shrink-0 text-muted-foreground\" />,\n image: <ImageIcon className=\"mt-0.5 size-3.5 shrink-0 text-muted-foreground\" />,\n};\n\nexport const ChainOfThoughtStep = ({\n variant = \"bullet\",\n className,\n children,\n ...props\n}: ChainOfThoughtStepProps) => {\n const icon =\n typeof variant === \"string\"\n ? STEP_ICONS[variant as ChainOfThoughtStepVariant]\n : variant;\n\n return (\n <div\n className={cn(\"flex items-start gap-2 text-muted-foreground\", className)}\n {...props}\n >\n <span className=\"flex shrink-0\">{icon}</span>\n <span className=\"min-w-0 flex-1 leading-relaxed\">{children}</span>\n </div>\n );\n};\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtSources — inline chip group with left bar\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtSourcesProps = ComponentProps<\"div\">;\n\nexport const ChainOfThoughtSources = ({\n className,\n ...props\n}: ChainOfThoughtSourcesProps) => (\n <div\n className={cn(\n \"ml-[6px] flex flex-wrap gap-1.5 border-l-2 border-muted-foreground/20 py-0.5 pl-3\",\n className\n )}\n {...props}\n />\n);\n\nexport type ChainOfThoughtSourceProps = ComponentProps<\"a\">;\n\nexport const ChainOfThoughtSource = ({\n className,\n children,\n ...props\n}: ChainOfThoughtSourceProps) => (\n <a\n className={cn(\n \"inline-flex items-center rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 text-xs text-muted-foreground transition-colors\",\n props.href && \"cursor-pointer hover:bg-accent hover:text-accent-foreground\",\n className\n )}\n rel=\"noreferrer\"\n target=\"_blank\"\n {...props}\n >\n {children}\n </a>\n);\n\n// ---------------------------------------------------------------------------\n// ChainOfThoughtImage — inline image with optional caption\n// ---------------------------------------------------------------------------\n\nexport type ChainOfThoughtImageProps = ComponentProps<\"figure\"> & {\n src: string;\n alt?: string;\n caption?: string;\n};\n\nexport const ChainOfThoughtImage = ({\n src,\n alt = \"\",\n caption,\n className,\n ...props\n}: ChainOfThoughtImageProps) => (\n <figure\n className={cn(\"ml-[22px] overflow-hidden rounded-lg border\", className)}\n {...props}\n >\n <img alt={alt} className=\"max-h-64 w-full object-cover\" src={src} />\n {caption && (\n <figcaption className=\"border-t px-3 py-2 text-xs italic text-muted-foreground\">\n {caption}\n </figcaption>\n )}\n </figure>\n);\n\nChainOfThought.displayName = \"ChainOfThought\";\nChainOfThoughtTrigger.displayName = \"ChainOfThoughtTrigger\";\nChainOfThoughtContent.displayName = \"ChainOfThoughtContent\";\nChainOfThoughtStep.displayName = \"ChainOfThoughtStep\";\nChainOfThoughtSources.displayName = \"ChainOfThoughtSources\";\nChainOfThoughtSource.displayName = \"ChainOfThoughtSource\";\nChainOfThoughtImage.displayName = \"ChainOfThoughtImage\";\n"],"names":["ChainOfThought","className","defaultOpen","props","jsx","Collapsible","cn","ChainOfThoughtTrigger","children","title","icon","isStreaming","CollapsibleTrigger","jsxs","Fragment","Brain","ChevronUpIcon","ChainOfThoughtContent","CollapsibleContent","STEP_ICONS","SearchIcon","ImageIcon","ChainOfThoughtStep","variant","ChainOfThoughtSources","ChainOfThoughtSource","ChainOfThoughtImage","src","alt","caption"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),l=require("motion/react"),r=require("react"),b=require("../ui/button.cjs"),j=require("../ui/code-block.cjs"),v=require("../ui/kbd.cjs"),i=require("../lib/utils.cjs"),d=r.createContext(null),a=()=>{const e=r.useContext(d);if(!e)throw new Error("Confirmation components must be used within Confirmation");return e},g=1500,h=({className:e,approval:n,state:t,children:m,...c})=>{const f=r.useMemo(()=>({approval:n,state:t}),[n,t]),[p,C]=r.useState(!0),u=n?.approved===!0&&(t==="approval-responded"||t==="output-available"||t==="output-denied");if(r.useEffect(()=>{if(u){const s=setTimeout(()=>C(!1),g);return()=>clearTimeout(s)}},[u]),!n||t==="input-streaming"||t==="input-available")return null;const x=Object.fromEntries(Object.entries(c).filter(([s])=>s.startsWith("data-")||s.startsWith("aria-")));return o.jsx(d.Provider,{value:f,children:o.jsx(l.AnimatePresence,{children:p&&o.jsx(l.motion.div,{...x,className:i.cn("flex flex-col gap-4 rounded-xl border bg-card p-5 shadow-elevation-3",e),exit:{opacity:0,scale:.96},id:c.id,style:c.style,transition:{duration:.5,ease:"easeOut"},children:m})})})},q=({className:e,children:n,...t})=>o.jsx("h3",{className:i.cn("font-semibold text-base text-foreground",e),...t,children:n}),A=({className:e,children:n,...t})=>o.jsx(j.CodeBlock,{className:i.cn(e),...t,language:"bash",code:n?.toString()??""}),y=({children:e})=>{const{state:n}=a();return n!=="approval-requested"?null:o.jsx(o.Fragment,{children:e})},E=({children:e})=>{const{approval:n,state:t}=a();return!n?.approved||t!=="approval-responded"&&t!=="output-denied"&&t!=="output-available"?null:o.jsx(o.Fragment,{children:e})},N=({children:e})=>{const{approval:n,state:t}=a();return n?.approved!==!1||t!=="approval-responded"&&t!=="output-denied"&&t!=="output-available"?null:o.jsx(o.Fragment,{children:e})},R=({className:e,...n})=>{const{state:t}=a();return t!=="approval-requested"?null:o.jsx("div",{className:i.cn("flex items-center justify-between gap-2",e),...n})},S=({className:e,size:n="sm",...t})=>o.jsx(b.Button,{className:i.cn("gap-1.5",e),size:n,type:"button",...t}),T=({className:e,...n})=>o.jsx(v.Kbd,{className:i.cn("ml-0.5",e),...n});exports.Confirmation=h;exports.ConfirmationAccepted=E;exports.ConfirmationAction=S;exports.ConfirmationActions=R;exports.ConfirmationCode=A;exports.ConfirmationRejected=N;exports.ConfirmationRequest=y;exports.ConfirmationShortcut=T;exports.ConfirmationTitle=q;
2
+ //# sourceMappingURL=confirmation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation.cjs","sources":["../../src/components/ai/confirmation.tsx"],"sourcesContent":["import { AnimatePresence, motion } from \"motion/react\";\nimport { createContext, useContext, useEffect, useMemo, useState } from \"react\";\n\n\nimport type { ToolUIPart } from \"ai\";\nimport type { ComponentProps, PropsWithChildren, ReactNode } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { CodeBlock } from \"@/components/ui/code-block\";\nimport { Kbd } from \"@/components/ui/kbd\";\nimport { cn } from \"@/lib/utils\";\n\n\ntype ToolUIPartApproval =\n | { id: string; approved?: never; reason?: never }\n | { id: string; approved: boolean; reason?: string }\n | { id: string; approved: true; reason?: string }\n | { id: string; approved: false; reason?: string }\n | undefined;\n\ninterface ConfirmationContextValue {\n approval: ToolUIPartApproval;\n state: ToolUIPart[\"state\"];\n}\n\nconst ConfirmationContext = createContext<ConfirmationContextValue | null>(null);\n\nconst useConfirmation = () => {\n const context = useContext(ConfirmationContext);\n if (!context) {\n throw new Error(\"Confirmation components must be used within Confirmation\");\n }\n return context;\n};\n\n// ---------------------------------------------------------------------------\n// Confirmation (root)\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationProps = ComponentProps<\"div\"> & {\n approval?: ToolUIPartApproval;\n state: ToolUIPart[\"state\"];\n};\n\nconst ACCEPTED_HIDE_DELAY = 1500;\n\nexport const Confirmation = ({\n className,\n approval,\n state,\n children,\n ...props\n}: ConfirmationProps) => {\n const contextValue = useMemo(() => ({ approval, state }), [approval, state]);\n const [visible, setVisible] = useState(true);\n\n const isAccepted =\n approval?.approved === true &&\n (state === \"approval-responded\" ||\n state === \"output-available\" ||\n state === \"output-denied\");\n\n useEffect(() => {\n if (isAccepted) {\n const timer = setTimeout(() => setVisible(false), ACCEPTED_HIDE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isAccepted]);\n\n if (!approval || state === \"input-streaming\" || state === \"input-available\") {\n return null;\n }\n\n // Pass through data-* and aria-* only; drop event handlers to avoid\n // onDrag type conflict between React and framer-motion.\n const passthroughProps = Object.fromEntries(\n Object.entries(props).filter(([k]) => k.startsWith(\"data-\") || k.startsWith(\"aria-\"))\n );\n\n return (\n <ConfirmationContext.Provider value={contextValue}>\n <AnimatePresence>\n {visible && (\n <motion.div\n {...passthroughProps}\n className={cn(\n \"flex flex-col gap-4 rounded-xl border bg-card p-5 shadow-elevation-3\",\n className\n )}\n exit={{ opacity: 0, scale: 0.96 }}\n id={props.id}\n style={props.style}\n transition={{ duration: 0.5, ease: \"easeOut\" }}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n </ConfirmationContext.Provider>\n );\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationTitle\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationTitleProps = PropsWithChildren<ComponentProps<\"h3\">>;\n\nexport const ConfirmationTitle = ({\n className,\n children,\n ...props\n}: ConfirmationTitleProps) => (\n <h3\n className={cn(\"font-semibold text-base text-foreground\", className)}\n {...props}\n >\n {children}\n </h3>\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationCode — monospace command/code block\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationCodeProps = ComponentProps<typeof CodeBlock>;\n\nexport const ConfirmationCode = ({\n className,\n children,\n ...props\n}: ConfirmationCodeProps) => (\n <CodeBlock className={cn(className)} {...props} language=\"bash\" code={children?.toString() ?? ''} />\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationRequest / Accepted / Rejected — conditional renderers\n// ---------------------------------------------------------------------------\n\nexport const ConfirmationRequest = ({ children }: { children?: ReactNode }) => {\n const { state } = useConfirmation();\n if (state !== \"approval-requested\") return null;\n return <>{children}</>;\n};\n\nexport const ConfirmationAccepted = ({ children }: { children?: ReactNode }) => {\n const { approval, state } = useConfirmation();\n if (\n !approval?.approved ||\n (state !== \"approval-responded\" &&\n state !== \"output-denied\" &&\n state !== \"output-available\")\n ) {\n return null;\n }\n return <>{children}</>;\n};\n\nexport const ConfirmationRejected = ({ children }: { children?: ReactNode }) => {\n const { approval, state } = useConfirmation();\n if (\n approval?.approved !== false ||\n (state !== \"approval-responded\" &&\n state !== \"output-denied\" &&\n state !== \"output-available\")\n ) {\n return null;\n }\n return <>{children}</>;\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationActions — deny left, allow buttons right\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationActionsProps = ComponentProps<\"div\">;\n\nexport const ConfirmationActions = ({\n className,\n ...props\n}: ConfirmationActionsProps) => {\n const { state } = useConfirmation();\n if (state !== \"approval-requested\") return null;\n return (\n <div\n className={cn(\"flex items-center justify-between gap-2\", className)}\n {...props}\n />\n );\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationAction — individual button\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationActionProps = ComponentProps<typeof Button>;\n\nexport const ConfirmationAction = ({\n className,\n size = \"sm\",\n ...props\n}: ConfirmationActionProps) => (\n <Button\n className={cn(\"gap-1.5\", className)}\n size={size}\n type=\"button\"\n {...props}\n />\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationShortcut — keyboard shortcut label inside a button\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationShortcutProps = ComponentProps<typeof Kbd>;\n\nexport const ConfirmationShortcut = ({\n className,\n ...props\n}: ConfirmationShortcutProps) => (\n <Kbd className={cn(\"ml-0.5\", className)} {...props} />\n);\n"],"names":["ConfirmationContext","createContext","useConfirmation","context","useContext","ACCEPTED_HIDE_DELAY","Confirmation","className","approval","state","children","props","contextValue","useMemo","visible","setVisible","useState","isAccepted","useEffect","timer","passthroughProps","k","jsx","AnimatePresence","motion","cn","ConfirmationTitle","ConfirmationCode","CodeBlock","ConfirmationRequest","ConfirmationAccepted","ConfirmationRejected","ConfirmationActions","ConfirmationAction","size","Button","ConfirmationShortcut","Kbd"],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { jsx as n, Fragment as u } from "react/jsx-runtime";
2
+ import { AnimatePresence as b, motion as v } from "motion/react";
3
+ import { createContext as x, useMemo as h, useState as g, useEffect as A, useContext as E } from "react";
4
+ import { Button as N } from "../ui/button.js";
5
+ import { CodeBlock as j } from "../ui/code-block.js";
6
+ import { Kbd as w } from "../ui/kbd.js";
7
+ import { cn as r } from "../lib/utils.js";
8
+ const l = x(null), a = () => {
9
+ const e = E(l);
10
+ if (!e)
11
+ throw new Error("Confirmation components must be used within Confirmation");
12
+ return e;
13
+ }, y = 1500, R = ({
14
+ className: e,
15
+ approval: o,
16
+ state: t,
17
+ children: m,
18
+ ...s
19
+ }) => {
20
+ const d = h(() => ({ approval: o, state: t }), [o, t]), [p, f] = g(!0), c = o?.approved === !0 && (t === "approval-responded" || t === "output-available" || t === "output-denied");
21
+ if (A(() => {
22
+ if (c) {
23
+ const i = setTimeout(() => f(!1), y);
24
+ return () => clearTimeout(i);
25
+ }
26
+ }, [c]), !o || t === "input-streaming" || t === "input-available")
27
+ return null;
28
+ const C = Object.fromEntries(
29
+ Object.entries(s).filter(([i]) => i.startsWith("data-") || i.startsWith("aria-"))
30
+ );
31
+ return /* @__PURE__ */ n(l.Provider, { value: d, children: /* @__PURE__ */ n(b, { children: p && /* @__PURE__ */ n(
32
+ v.div,
33
+ {
34
+ ...C,
35
+ className: r(
36
+ "flex flex-col gap-4 rounded-xl border bg-card p-5 shadow-elevation-3",
37
+ e
38
+ ),
39
+ exit: { opacity: 0, scale: 0.96 },
40
+ id: s.id,
41
+ style: s.style,
42
+ transition: { duration: 0.5, ease: "easeOut" },
43
+ children: m
44
+ }
45
+ ) }) });
46
+ }, V = ({
47
+ className: e,
48
+ children: o,
49
+ ...t
50
+ }) => /* @__PURE__ */ n(
51
+ "h3",
52
+ {
53
+ className: r("font-semibold text-base text-foreground", e),
54
+ ...t,
55
+ children: o
56
+ }
57
+ ), W = ({
58
+ className: e,
59
+ children: o,
60
+ ...t
61
+ }) => /* @__PURE__ */ n(j, { className: r(e), ...t, language: "bash", code: o?.toString() ?? "" }), _ = ({ children: e }) => {
62
+ const { state: o } = a();
63
+ return o !== "approval-requested" ? null : /* @__PURE__ */ n(u, { children: e });
64
+ }, F = ({ children: e }) => {
65
+ const { approval: o, state: t } = a();
66
+ return !o?.approved || t !== "approval-responded" && t !== "output-denied" && t !== "output-available" ? null : /* @__PURE__ */ n(u, { children: e });
67
+ }, H = ({ children: e }) => {
68
+ const { approval: o, state: t } = a();
69
+ return o?.approved !== !1 || t !== "approval-responded" && t !== "output-denied" && t !== "output-available" ? null : /* @__PURE__ */ n(u, { children: e });
70
+ }, I = ({
71
+ className: e,
72
+ ...o
73
+ }) => {
74
+ const { state: t } = a();
75
+ return t !== "approval-requested" ? null : /* @__PURE__ */ n(
76
+ "div",
77
+ {
78
+ className: r("flex items-center justify-between gap-2", e),
79
+ ...o
80
+ }
81
+ );
82
+ }, K = ({
83
+ className: e,
84
+ size: o = "sm",
85
+ ...t
86
+ }) => /* @__PURE__ */ n(
87
+ N,
88
+ {
89
+ className: r("gap-1.5", e),
90
+ size: o,
91
+ type: "button",
92
+ ...t
93
+ }
94
+ ), L = ({
95
+ className: e,
96
+ ...o
97
+ }) => /* @__PURE__ */ n(w, { className: r("ml-0.5", e), ...o });
98
+ export {
99
+ R as Confirmation,
100
+ F as ConfirmationAccepted,
101
+ K as ConfirmationAction,
102
+ I as ConfirmationActions,
103
+ W as ConfirmationCode,
104
+ H as ConfirmationRejected,
105
+ _ as ConfirmationRequest,
106
+ L as ConfirmationShortcut,
107
+ V as ConfirmationTitle
108
+ };
109
+ //# sourceMappingURL=confirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation.js","sources":["../../src/components/ai/confirmation.tsx"],"sourcesContent":["import { AnimatePresence, motion } from \"motion/react\";\nimport { createContext, useContext, useEffect, useMemo, useState } from \"react\";\n\n\nimport type { ToolUIPart } from \"ai\";\nimport type { ComponentProps, PropsWithChildren, ReactNode } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { CodeBlock } from \"@/components/ui/code-block\";\nimport { Kbd } from \"@/components/ui/kbd\";\nimport { cn } from \"@/lib/utils\";\n\n\ntype ToolUIPartApproval =\n | { id: string; approved?: never; reason?: never }\n | { id: string; approved: boolean; reason?: string }\n | { id: string; approved: true; reason?: string }\n | { id: string; approved: false; reason?: string }\n | undefined;\n\ninterface ConfirmationContextValue {\n approval: ToolUIPartApproval;\n state: ToolUIPart[\"state\"];\n}\n\nconst ConfirmationContext = createContext<ConfirmationContextValue | null>(null);\n\nconst useConfirmation = () => {\n const context = useContext(ConfirmationContext);\n if (!context) {\n throw new Error(\"Confirmation components must be used within Confirmation\");\n }\n return context;\n};\n\n// ---------------------------------------------------------------------------\n// Confirmation (root)\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationProps = ComponentProps<\"div\"> & {\n approval?: ToolUIPartApproval;\n state: ToolUIPart[\"state\"];\n};\n\nconst ACCEPTED_HIDE_DELAY = 1500;\n\nexport const Confirmation = ({\n className,\n approval,\n state,\n children,\n ...props\n}: ConfirmationProps) => {\n const contextValue = useMemo(() => ({ approval, state }), [approval, state]);\n const [visible, setVisible] = useState(true);\n\n const isAccepted =\n approval?.approved === true &&\n (state === \"approval-responded\" ||\n state === \"output-available\" ||\n state === \"output-denied\");\n\n useEffect(() => {\n if (isAccepted) {\n const timer = setTimeout(() => setVisible(false), ACCEPTED_HIDE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isAccepted]);\n\n if (!approval || state === \"input-streaming\" || state === \"input-available\") {\n return null;\n }\n\n // Pass through data-* and aria-* only; drop event handlers to avoid\n // onDrag type conflict between React and framer-motion.\n const passthroughProps = Object.fromEntries(\n Object.entries(props).filter(([k]) => k.startsWith(\"data-\") || k.startsWith(\"aria-\"))\n );\n\n return (\n <ConfirmationContext.Provider value={contextValue}>\n <AnimatePresence>\n {visible && (\n <motion.div\n {...passthroughProps}\n className={cn(\n \"flex flex-col gap-4 rounded-xl border bg-card p-5 shadow-elevation-3\",\n className\n )}\n exit={{ opacity: 0, scale: 0.96 }}\n id={props.id}\n style={props.style}\n transition={{ duration: 0.5, ease: \"easeOut\" }}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n </ConfirmationContext.Provider>\n );\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationTitle\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationTitleProps = PropsWithChildren<ComponentProps<\"h3\">>;\n\nexport const ConfirmationTitle = ({\n className,\n children,\n ...props\n}: ConfirmationTitleProps) => (\n <h3\n className={cn(\"font-semibold text-base text-foreground\", className)}\n {...props}\n >\n {children}\n </h3>\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationCode — monospace command/code block\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationCodeProps = ComponentProps<typeof CodeBlock>;\n\nexport const ConfirmationCode = ({\n className,\n children,\n ...props\n}: ConfirmationCodeProps) => (\n <CodeBlock className={cn(className)} {...props} language=\"bash\" code={children?.toString() ?? ''} />\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationRequest / Accepted / Rejected — conditional renderers\n// ---------------------------------------------------------------------------\n\nexport const ConfirmationRequest = ({ children }: { children?: ReactNode }) => {\n const { state } = useConfirmation();\n if (state !== \"approval-requested\") return null;\n return <>{children}</>;\n};\n\nexport const ConfirmationAccepted = ({ children }: { children?: ReactNode }) => {\n const { approval, state } = useConfirmation();\n if (\n !approval?.approved ||\n (state !== \"approval-responded\" &&\n state !== \"output-denied\" &&\n state !== \"output-available\")\n ) {\n return null;\n }\n return <>{children}</>;\n};\n\nexport const ConfirmationRejected = ({ children }: { children?: ReactNode }) => {\n const { approval, state } = useConfirmation();\n if (\n approval?.approved !== false ||\n (state !== \"approval-responded\" &&\n state !== \"output-denied\" &&\n state !== \"output-available\")\n ) {\n return null;\n }\n return <>{children}</>;\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationActions — deny left, allow buttons right\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationActionsProps = ComponentProps<\"div\">;\n\nexport const ConfirmationActions = ({\n className,\n ...props\n}: ConfirmationActionsProps) => {\n const { state } = useConfirmation();\n if (state !== \"approval-requested\") return null;\n return (\n <div\n className={cn(\"flex items-center justify-between gap-2\", className)}\n {...props}\n />\n );\n};\n\n// ---------------------------------------------------------------------------\n// ConfirmationAction — individual button\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationActionProps = ComponentProps<typeof Button>;\n\nexport const ConfirmationAction = ({\n className,\n size = \"sm\",\n ...props\n}: ConfirmationActionProps) => (\n <Button\n className={cn(\"gap-1.5\", className)}\n size={size}\n type=\"button\"\n {...props}\n />\n);\n\n// ---------------------------------------------------------------------------\n// ConfirmationShortcut — keyboard shortcut label inside a button\n// ---------------------------------------------------------------------------\n\nexport type ConfirmationShortcutProps = ComponentProps<typeof Kbd>;\n\nexport const ConfirmationShortcut = ({\n className,\n ...props\n}: ConfirmationShortcutProps) => (\n <Kbd className={cn(\"ml-0.5\", className)} {...props} />\n);\n"],"names":["ConfirmationContext","createContext","useConfirmation","context","useContext","ACCEPTED_HIDE_DELAY","Confirmation","className","approval","state","children","props","contextValue","useMemo","visible","setVisible","useState","isAccepted","useEffect","timer","passthroughProps","k","jsx","AnimatePresence","motion","cn","ConfirmationTitle","ConfirmationCode","CodeBlock","ConfirmationRequest","ConfirmationAccepted","ConfirmationRejected","ConfirmationActions","ConfirmationAction","size","Button","ConfirmationShortcut","Kbd"],"mappings":";;;;;;;AAyBA,MAAMA,IAAsBC,EAA+C,IAAI,GAEzEC,IAAkB,MAAM;AAC5B,QAAMC,IAAUC,EAAWJ,CAAmB;AAC9C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,0DAA0D;AAE5E,SAAOA;AACT,GAWME,IAAsB,MAEfC,IAAe,CAAC;AAAA,EAC3B,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAAyB;AACvB,QAAMC,IAAeC,EAAQ,OAAO,EAAE,UAAAL,GAAU,OAAAC,MAAU,CAACD,GAAUC,CAAK,CAAC,GACrE,CAACK,GAASC,CAAU,IAAIC,EAAS,EAAI,GAErCC,IACJT,GAAU,aAAa,OACtBC,MAAU,wBACTA,MAAU,sBACVA,MAAU;AASd,MAPAS,EAAU,MAAM;AACd,QAAID,GAAY;AACd,YAAME,IAAQ,WAAW,MAAMJ,EAAW,EAAK,GAAGV,CAAmB;AACrE,aAAO,MAAM,aAAac,CAAK;AAAA,IACjC;AAAA,EACF,GAAG,CAACF,CAAU,CAAC,GAEX,CAACT,KAAYC,MAAU,qBAAqBA,MAAU;AACxD,WAAO;AAKT,QAAMW,IAAmB,OAAO;AAAA,IAC9B,OAAO,QAAQT,CAAK,EAAE,OAAO,CAAC,CAACU,CAAC,MAAMA,EAAE,WAAW,OAAO,KAAKA,EAAE,WAAW,OAAO,CAAC;AAAA,EAAA;AAGtF,SACE,gBAAAC,EAACtB,EAAoB,UAApB,EAA6B,OAAOY,GACnC,UAAA,gBAAAU,EAACC,KACE,UAAAT,KACC,gBAAAQ;AAAA,IAACE,EAAO;AAAA,IAAP;AAAA,MACE,GAAGJ;AAAA,MACJ,WAAWK;AAAA,QACT;AAAA,QACAlB;AAAA,MAAA;AAAA,MAEF,MAAM,EAAE,SAAS,GAAG,OAAO,KAAA;AAAA,MAC3B,IAAII,EAAM;AAAA,MACV,OAAOA,EAAM;AAAA,MACb,YAAY,EAAE,UAAU,KAAK,MAAM,UAAA;AAAA,MAElC,UAAAD;AAAA,IAAA;AAAA,EAAA,GAGP,EAAA,CACF;AAEJ,GAQagB,IAAoB,CAAC;AAAA,EAChC,WAAAnB;AAAA,EACA,UAAAG;AAAA,EACA,GAAGC;AACL,MACE,gBAAAW;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWG,EAAG,2CAA2ClB,CAAS;AAAA,IACjE,GAAGI;AAAA,IAEH,UAAAD;AAAA,EAAA;AACH,GASWiB,IAAmB,CAAC;AAAA,EAC/B,WAAApB;AAAA,EACA,UAAAG;AAAA,EACA,GAAGC;AACL,MACE,gBAAAW,EAACM,GAAA,EAAU,WAAWH,EAAGlB,CAAS,GAAI,GAAGI,GAAO,UAAS,QAAO,MAAMD,GAAU,SAAA,KAAc,GAAA,CAAI,GAOvFmB,IAAsB,CAAC,EAAE,UAAAnB,QAAyC;AAC7E,QAAM,EAAE,OAAAD,EAAA,IAAUP,EAAA;AAClB,SAAIO,MAAU,uBAA6B,8BACjC,UAAAC,GAAS;AACrB,GAEaoB,IAAuB,CAAC,EAAE,UAAApB,QAAyC;AAC9E,QAAM,EAAE,UAAAF,GAAU,OAAAC,EAAA,IAAUP,EAAA;AAC5B,SACE,CAACM,GAAU,YACVC,MAAU,wBACTA,MAAU,mBACVA,MAAU,qBAEL,8BAEC,UAAAC,GAAS;AACrB,GAEaqB,IAAuB,CAAC,EAAE,UAAArB,QAAyC;AAC9E,QAAM,EAAE,UAAAF,GAAU,OAAAC,EAAA,IAAUP,EAAA;AAC5B,SACEM,GAAU,aAAa,MACtBC,MAAU,wBACTA,MAAU,mBACVA,MAAU,qBAEL,8BAEC,UAAAC,GAAS;AACrB,GAQasB,IAAsB,CAAC;AAAA,EAClC,WAAAzB;AAAA,EACA,GAAGI;AACL,MAAgC;AAC9B,QAAM,EAAE,OAAAF,EAAA,IAAUP,EAAA;AAClB,SAAIO,MAAU,uBAA6B,OAEzC,gBAAAa;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWG,EAAG,2CAA2ClB,CAAS;AAAA,MACjE,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV,GAQasB,IAAqB,CAAC;AAAA,EACjC,WAAA1B;AAAA,EACA,MAAA2B,IAAO;AAAA,EACP,GAAGvB;AACL,MACE,gBAAAW;AAAA,EAACa;AAAA,EAAA;AAAA,IACC,WAAWV,EAAG,WAAWlB,CAAS;AAAA,IAClC,MAAA2B;AAAA,IACA,MAAK;AAAA,IACJ,GAAGvB;AAAA,EAAA;AACN,GASWyB,IAAuB,CAAC;AAAA,EACnC,WAAA7B;AAAA,EACA,GAAGI;AACL,MACE,gBAAAW,EAACe,KAAI,WAAWZ,EAAG,UAAUlB,CAAS,GAAI,GAAGI,EAAA,CAAO;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),f=require("react"),b=require("../ui/button.cjs"),p=require("../ui/hover-card.cjs"),k=require("../components/ui/progress.cjs"),i=require("../lib/utils.cjs"),S=100,g=10,h=24,l=12,j=2,U=.75,I=.9,T=e=>e>=I?"danger":e>=U?"warning":"normal",C={normal:"text-muted-foreground",warning:"text-warning",danger:"text-destructive"},O={normal:"",warning:"[&_[data-slot=progress-indicator]]:bg-warning",danger:"[&_[data-slot=progress-indicator]]:bg-destructive"},N=new Intl.NumberFormat("en-US",{currency:"USD",style:"currency"}),x=e=>e===void 0?void 0:N.format(e),w=f.createContext(null),u=()=>{const e=f.useContext(w);if(!e)throw new Error("Context components must be used within Context");return e},R=({usedTokens:e,maxTokens:n,usage:s,cost:o,...c})=>{const r=f.useMemo(()=>({cost:o,maxTokens:n,usage:s,usedTokens:e}),[o,n,s,e]);return t.jsx(w.Provider,{value:r,children:t.jsx(p.HoverCard,{closeDelay:0,openDelay:0,...c})})},_=()=>{const{usedTokens:e,maxTokens:n}=u(),s=2*Math.PI*g,o=e/n,c=s*(1-o);return t.jsxs("svg",{"aria-label":"Model context usage",height:"20",role:"img",style:{color:"currentcolor"},viewBox:`0 0 ${h} ${h}`,width:"20",children:[t.jsx("circle",{cx:l,cy:l,fill:"none",opacity:"0.25",r:g,stroke:"currentColor",strokeWidth:j}),t.jsx("circle",{cx:l,cy:l,fill:"none",opacity:"0.7",r:g,stroke:"currentColor",strokeDasharray:`${s} ${s}`,strokeDashoffset:c,strokeLinecap:"round",strokeWidth:j,style:{transform:"rotate(-90deg)",transformOrigin:"center"}})]})},D=({children:e,showPercentage:n=!1,...s})=>{const{usedTokens:o,maxTokens:c}=u(),r=o/c,a=T(r),m=new Intl.NumberFormat("en-US",{maximumFractionDigits:1,style:"percent"}).format(r);return t.jsx(p.HoverCardTrigger,{asChild:!0,children:e??t.jsxs(b.Button,{type:"button",variant:"ghost",...s,children:[n?t.jsx("span",{className:i.cn("font-medium",C[a]),children:m}):null,t.jsx("span",{className:C[a],children:t.jsx(_,{})})]})})},F=({className:e,...n})=>t.jsx(p.HoverCardContent,{className:i.cn("min-w-60 divide-y overflow-hidden p-0",e),...n}),E=({children:e,className:n,...s})=>{const{usedTokens:o,maxTokens:c}=u(),r=o/c,a=T(r),m=new Intl.NumberFormat("en-US",{maximumFractionDigits:1,style:"percent"}).format(r),y=new Intl.NumberFormat("en-US",{notation:"compact"}).format(o),v=new Intl.NumberFormat("en-US",{notation:"compact"}).format(c);return t.jsx("div",{className:i.cn("w-full space-y-2 p-3",n),...s,children:e??t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center justify-between gap-3 text-xs",children:[t.jsx("p",{className:i.cn(C[a]),children:m}),t.jsxs("p",{className:"font-mono text-muted-foreground",children:[y," / ",v]})]}),t.jsx("div",{className:"space-y-2",children:t.jsx(k.Progress,{"aria-label":"Context window usage",className:i.cn("bg-muted",O[a]),value:r*S})})]})})},P=({children:e,className:n,...s})=>t.jsx("div",{className:i.cn("w-full p-3",n),...s,children:e}),H=({children:e,className:n,...s})=>{const{cost:o}=u(),c=o?.total===void 0?"—":N.format(o.total);return t.jsx("div",{className:i.cn("flex w-full items-center justify-between gap-3 bg-muted/50 p-3 text-xs",n),...s,children:e??t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"text-muted-foreground",children:"Total cost"}),t.jsx("span",{children:c})]})})},d=({tokens:e,costText:n})=>t.jsxs("span",{children:[e===void 0?"—":new Intl.NumberFormat("en-US",{notation:"compact"}).format(e),n?t.jsxs("span",{className:"ml-2 text-muted-foreground",children:["• ",n]}):null]}),A=({className:e,children:n,...s})=>{const{usage:o,cost:c}=u(),r=o?.inputTokens??0;if(n)return n;if(!r)return null;const a=x(c?.input);return t.jsxs("div",{className:i.cn("flex items-center justify-between text-xs",e),...s,children:[t.jsx("span",{className:"text-muted-foreground",children:"Input"}),t.jsx(d,{costText:a,tokens:r})]})},q=({className:e,children:n,...s})=>{const{usage:o,cost:c}=u(),r=o?.outputTokens??0;if(n)return n;if(!r)return null;const a=x(c?.output);return t.jsxs("div",{className:i.cn("flex items-center justify-between text-xs",e),...s,children:[t.jsx("span",{className:"text-muted-foreground",children:"Output"}),t.jsx(d,{costText:a,tokens:r})]})},M=({className:e,children:n,...s})=>{const{usage:o,cost:c}=u(),r=o?.reasoningTokens??0;if(n)return n;if(!r)return null;const a=x(c?.reasoning);return t.jsxs("div",{className:i.cn("flex items-center justify-between text-xs",e),...s,children:[t.jsx("span",{className:"text-muted-foreground",children:"Reasoning"}),t.jsx(d,{costText:a,tokens:r})]})},W=({className:e,children:n,...s})=>{const{usage:o,cost:c}=u(),r=o?.cachedInputTokens??0;if(n)return n;if(!r)return null;const a=x(c?.cache);return t.jsxs("div",{className:i.cn("flex items-center justify-between text-xs",e),...s,children:[t.jsx("span",{className:"text-muted-foreground",children:"Cache"}),t.jsx(d,{costText:a,tokens:r})]})};exports.Context=R;exports.ContextCacheUsage=W;exports.ContextContent=F;exports.ContextContentBody=P;exports.ContextContentFooter=H;exports.ContextContentHeader=E;exports.ContextInputUsage=A;exports.ContextOutputUsage=q;exports.ContextReasoningUsage=M;exports.ContextTrigger=D;
2
+ //# sourceMappingURL=context.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.cjs","sources":["../../src/components/ai/context.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\n\nimport type { LanguageModelUsage } from \"ai\";\nimport type { ComponentProps } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"@/components/ui/hover-card\";\nimport { Progress } from \"@/components/ui/progress\";\nimport { cn } from \"@/lib/utils\";\n\n\nconst PERCENT_MAX = 100;\nconst ICON_RADIUS = 10;\nconst ICON_VIEWBOX = 24;\nconst ICON_CENTER = 12;\nconst ICON_STROKE_WIDTH = 2;\nconst WARN_THRESHOLD = 0.75;\nconst DANGER_THRESHOLD = 0.9;\n\ntype UsageStatus = \"normal\" | \"warning\" | \"danger\";\n\nconst getUsageStatus = (pct: number): UsageStatus => {\n if (pct >= DANGER_THRESHOLD) return \"danger\";\n if (pct >= WARN_THRESHOLD) return \"warning\";\n return \"normal\";\n};\n\nconst STATUS_TEXT: Record<UsageStatus, string> = {\n normal: \"text-muted-foreground\",\n warning: \"text-warning\",\n danger: \"text-destructive\",\n};\n\nconst STATUS_PROGRESS: Record<UsageStatus, string> = {\n normal: \"\",\n warning: \"[&_[data-slot=progress-indicator]]:bg-warning\",\n danger: \"[&_[data-slot=progress-indicator]]:bg-destructive\",\n};\n\nconst USD_FORMAT = new Intl.NumberFormat(\"en-US\", {\n currency: \"USD\",\n style: \"currency\",\n});\n\nconst formatUSD = (value: number | undefined): string | undefined =>\n value === undefined ? undefined : USD_FORMAT.format(value);\n\nexport interface CostBreakdown {\n total?: number;\n input?: number;\n output?: number;\n reasoning?: number;\n cache?: number;\n}\n\ninterface ContextSchema {\n usedTokens: number;\n maxTokens: number;\n usage?: LanguageModelUsage;\n cost?: CostBreakdown;\n}\n\nconst ContextContext = createContext<ContextSchema | null>(null);\n\nconst useContextValue = () => {\n const context = useContext(ContextContext);\n\n if (!context) {\n throw new Error(\"Context components must be used within Context\");\n }\n\n return context;\n};\n\nexport type ContextProps = ComponentProps<typeof HoverCard> & ContextSchema;\n\nexport const Context = ({\n usedTokens,\n maxTokens,\n usage,\n cost,\n ...props\n}: ContextProps) => {\n const contextValue = useMemo(\n () => ({ cost, maxTokens, usage, usedTokens }),\n [cost, maxTokens, usage, usedTokens]\n );\n\n return (\n <ContextContext.Provider value={contextValue}>\n <HoverCard closeDelay={0} openDelay={0} {...props} />\n </ContextContext.Provider>\n );\n};\n\nconst ContextIcon = () => {\n const { usedTokens, maxTokens } = useContextValue();\n const circumference = 2 * Math.PI * ICON_RADIUS;\n const usedPercent = usedTokens / maxTokens;\n const dashOffset = circumference * (1 - usedPercent);\n\n return (\n <svg\n aria-label=\"Model context usage\"\n height=\"20\"\n role=\"img\"\n style={{ color: \"currentcolor\" }}\n viewBox={`0 0 ${ICON_VIEWBOX} ${ICON_VIEWBOX}`}\n width=\"20\"\n >\n <circle\n cx={ICON_CENTER}\n cy={ICON_CENTER}\n fill=\"none\"\n opacity=\"0.25\"\n r={ICON_RADIUS}\n stroke=\"currentColor\"\n strokeWidth={ICON_STROKE_WIDTH}\n />\n <circle\n cx={ICON_CENTER}\n cy={ICON_CENTER}\n fill=\"none\"\n opacity=\"0.7\"\n r={ICON_RADIUS}\n stroke=\"currentColor\"\n strokeDasharray={`${circumference} ${circumference}`}\n strokeDashoffset={dashOffset}\n strokeLinecap=\"round\"\n strokeWidth={ICON_STROKE_WIDTH}\n style={{ transform: \"rotate(-90deg)\", transformOrigin: \"center\" }}\n />\n </svg>\n );\n};\n\nexport type ContextTriggerProps = ComponentProps<typeof Button> & {\n showPercentage?: boolean;\n};\n\nexport const ContextTrigger = ({\n children,\n showPercentage = false,\n ...props\n}: ContextTriggerProps) => {\n const { usedTokens, maxTokens } = useContextValue();\n const usedPercent = usedTokens / maxTokens;\n const status = getUsageStatus(usedPercent);\n const renderedPercent = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 1,\n style: \"percent\",\n }).format(usedPercent);\n\n return (\n <HoverCardTrigger asChild>\n {children ?? (\n <Button type=\"button\" variant=\"ghost\" {...props}>\n {showPercentage ? (\n <span className={cn(\"font-medium\", STATUS_TEXT[status])}>\n {renderedPercent}\n </span>\n ) : null}\n <span className={STATUS_TEXT[status]}>\n <ContextIcon />\n </span>\n </Button>\n )}\n </HoverCardTrigger>\n );\n};\n\nexport type ContextContentProps = ComponentProps<typeof HoverCardContent>;\n\nexport const ContextContent = ({\n className,\n ...props\n}: ContextContentProps) => (\n <HoverCardContent\n className={cn(\"min-w-60 divide-y overflow-hidden p-0\", className)}\n {...props}\n />\n);\n\nexport type ContextContentHeaderProps = ComponentProps<\"div\">;\n\nexport const ContextContentHeader = ({\n children,\n className,\n ...props\n}: ContextContentHeaderProps) => {\n const { usedTokens, maxTokens } = useContextValue();\n const usedPercent = usedTokens / maxTokens;\n const status = getUsageStatus(usedPercent);\n const displayPct = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 1,\n style: \"percent\",\n }).format(usedPercent);\n const used = new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(usedTokens);\n const total = new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(maxTokens);\n\n return (\n <div className={cn(\"w-full space-y-2 p-3\", className)} {...props}>\n {children ?? (\n <>\n <div className=\"flex items-center justify-between gap-3 text-xs\">\n <p className={cn(STATUS_TEXT[status])}>{displayPct}</p>\n <p className=\"font-mono text-muted-foreground\">\n {used} / {total}\n </p>\n </div>\n <div className=\"space-y-2\">\n <Progress\n aria-label=\"Context window usage\"\n className={cn(\"bg-muted\", STATUS_PROGRESS[status])}\n value={usedPercent * PERCENT_MAX}\n />\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport type ContextContentBodyProps = ComponentProps<\"div\">;\n\nexport const ContextContentBody = ({\n children,\n className,\n ...props\n}: ContextContentBodyProps) => (\n <div className={cn(\"w-full p-3\", className)} {...props}>\n {children}\n </div>\n);\n\nexport type ContextContentFooterProps = ComponentProps<\"div\">;\n\nexport const ContextContentFooter = ({\n children,\n className,\n ...props\n}: ContextContentFooterProps) => {\n const { cost } = useContextValue();\n const totalCost = cost?.total === undefined ? \"—\" : USD_FORMAT.format(cost.total);\n\n return (\n <div\n className={cn(\n \"flex w-full items-center justify-between gap-3 bg-muted/50 p-3 text-xs\",\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n <span className=\"text-muted-foreground\">Total cost</span>\n <span>{totalCost}</span>\n </>\n )}\n </div>\n );\n};\n\nconst TokensWithCost = ({\n tokens,\n costText,\n}: {\n tokens?: number;\n costText?: string;\n}) => (\n <span>\n {tokens === undefined\n ? \"—\"\n : new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(tokens)}\n {costText ? (\n <span className=\"ml-2 text-muted-foreground\">• {costText}</span>\n ) : null}\n </span>\n);\n\nexport type ContextInputUsageProps = ComponentProps<\"div\">;\n\nexport const ContextInputUsage = ({\n className,\n children,\n ...props\n}: ContextInputUsageProps) => {\n const { usage, cost } = useContextValue();\n const inputTokens = usage?.inputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!inputTokens) {\n return null;\n }\n\n const inputCostText = formatUSD(cost?.input);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Input</span>\n <TokensWithCost costText={inputCostText} tokens={inputTokens} />\n </div>\n );\n};\n\nexport type ContextOutputUsageProps = ComponentProps<\"div\">;\n\nexport const ContextOutputUsage = ({\n className,\n children,\n ...props\n}: ContextOutputUsageProps) => {\n const { usage, cost } = useContextValue();\n const outputTokens = usage?.outputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!outputTokens) {\n return null;\n }\n\n const outputCostText = formatUSD(cost?.output);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Output</span>\n <TokensWithCost costText={outputCostText} tokens={outputTokens} />\n </div>\n );\n};\n\nexport type ContextReasoningUsageProps = ComponentProps<\"div\">;\n\nexport const ContextReasoningUsage = ({\n className,\n children,\n ...props\n}: ContextReasoningUsageProps) => {\n const { usage, cost } = useContextValue();\n const reasoningTokens = usage?.reasoningTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!reasoningTokens) {\n return null;\n }\n\n const reasoningCostText = formatUSD(cost?.reasoning);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Reasoning</span>\n <TokensWithCost costText={reasoningCostText} tokens={reasoningTokens} />\n </div>\n );\n};\n\nexport type ContextCacheUsageProps = ComponentProps<\"div\">;\n\nexport const ContextCacheUsage = ({\n className,\n children,\n ...props\n}: ContextCacheUsageProps) => {\n const { usage, cost } = useContextValue();\n const cacheTokens = usage?.cachedInputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!cacheTokens) {\n return null;\n }\n\n const cacheCostText = formatUSD(cost?.cache);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Cache</span>\n <TokensWithCost costText={cacheCostText} tokens={cacheTokens} />\n </div>\n );\n};\n"],"names":["PERCENT_MAX","ICON_RADIUS","ICON_VIEWBOX","ICON_CENTER","ICON_STROKE_WIDTH","WARN_THRESHOLD","DANGER_THRESHOLD","getUsageStatus","pct","STATUS_TEXT","STATUS_PROGRESS","USD_FORMAT","formatUSD","value","ContextContext","createContext","useContextValue","context","useContext","Context","usedTokens","maxTokens","usage","cost","props","contextValue","useMemo","jsx","HoverCard","ContextIcon","circumference","usedPercent","dashOffset","jsxs","ContextTrigger","children","showPercentage","status","renderedPercent","HoverCardTrigger","Button","cn","ContextContent","className","HoverCardContent","ContextContentHeader","displayPct","used","total","Fragment","Progress","ContextContentBody","ContextContentFooter","totalCost","TokensWithCost","tokens","costText","ContextInputUsage","inputTokens","inputCostText","ContextOutputUsage","outputTokens","outputCostText","ContextReasoningUsage","reasoningTokens","reasoningCostText","ContextCacheUsage","cacheTokens","cacheCostText"],"mappings":"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"}
@@ -0,0 +1,267 @@
1
+ import { jsx as n, jsxs as i, Fragment as T } from "react/jsx-runtime";
2
+ import { createContext as b, useMemo as S, useContext as I } from "react";
3
+ import { Button as U } from "../ui/button.js";
4
+ import { HoverCard as D, HoverCardContent as O, HoverCardTrigger as R } from "../ui/hover-card.js";
5
+ import { Progress as _ } from "../components/ui/progress.js";
6
+ import { cn as l } from "../lib/utils.js";
7
+ const E = 100, g = 10, C = 24, m = 12, h = 2, F = 0.75, P = 0.9, N = (t) => t >= P ? "danger" : t >= F ? "warning" : "normal", p = {
8
+ normal: "text-muted-foreground",
9
+ warning: "text-warning",
10
+ danger: "text-destructive"
11
+ }, H = {
12
+ normal: "",
13
+ warning: "[&_[data-slot=progress-indicator]]:bg-warning",
14
+ danger: "[&_[data-slot=progress-indicator]]:bg-destructive"
15
+ }, w = new Intl.NumberFormat("en-US", {
16
+ currency: "USD",
17
+ style: "currency"
18
+ }), d = (t) => t === void 0 ? void 0 : w.format(t), y = b(null), u = () => {
19
+ const t = I(y);
20
+ if (!t)
21
+ throw new Error("Context components must be used within Context");
22
+ return t;
23
+ }, V = ({
24
+ usedTokens: t,
25
+ maxTokens: e,
26
+ usage: o,
27
+ cost: s,
28
+ ...c
29
+ }) => {
30
+ const r = S(
31
+ () => ({ cost: s, maxTokens: e, usage: o, usedTokens: t }),
32
+ [s, e, o, t]
33
+ );
34
+ return /* @__PURE__ */ n(y.Provider, { value: r, children: /* @__PURE__ */ n(D, { closeDelay: 0, openDelay: 0, ...c }) });
35
+ }, j = () => {
36
+ const { usedTokens: t, maxTokens: e } = u(), o = 2 * Math.PI * g, s = t / e, c = o * (1 - s);
37
+ return /* @__PURE__ */ i(
38
+ "svg",
39
+ {
40
+ "aria-label": "Model context usage",
41
+ height: "20",
42
+ role: "img",
43
+ style: { color: "currentcolor" },
44
+ viewBox: `0 0 ${C} ${C}`,
45
+ width: "20",
46
+ children: [
47
+ /* @__PURE__ */ n(
48
+ "circle",
49
+ {
50
+ cx: m,
51
+ cy: m,
52
+ fill: "none",
53
+ opacity: "0.25",
54
+ r: g,
55
+ stroke: "currentColor",
56
+ strokeWidth: h
57
+ }
58
+ ),
59
+ /* @__PURE__ */ n(
60
+ "circle",
61
+ {
62
+ cx: m,
63
+ cy: m,
64
+ fill: "none",
65
+ opacity: "0.7",
66
+ r: g,
67
+ stroke: "currentColor",
68
+ strokeDasharray: `${o} ${o}`,
69
+ strokeDashoffset: c,
70
+ strokeLinecap: "round",
71
+ strokeWidth: h,
72
+ style: { transform: "rotate(-90deg)", transformOrigin: "center" }
73
+ }
74
+ )
75
+ ]
76
+ }
77
+ );
78
+ }, X = ({
79
+ children: t,
80
+ showPercentage: e = !1,
81
+ ...o
82
+ }) => {
83
+ const { usedTokens: s, maxTokens: c } = u(), r = s / c, a = N(r), f = new Intl.NumberFormat("en-US", {
84
+ maximumFractionDigits: 1,
85
+ style: "percent"
86
+ }).format(r);
87
+ return /* @__PURE__ */ n(R, { asChild: !0, children: t ?? /* @__PURE__ */ i(U, { type: "button", variant: "ghost", ...o, children: [
88
+ e ? /* @__PURE__ */ n("span", { className: l("font-medium", p[a]), children: f }) : null,
89
+ /* @__PURE__ */ n("span", { className: p[a], children: /* @__PURE__ */ n(j, {}) })
90
+ ] }) });
91
+ }, G = ({
92
+ className: t,
93
+ ...e
94
+ }) => /* @__PURE__ */ n(
95
+ O,
96
+ {
97
+ className: l("min-w-60 divide-y overflow-hidden p-0", t),
98
+ ...e
99
+ }
100
+ ), K = ({
101
+ children: t,
102
+ className: e,
103
+ ...o
104
+ }) => {
105
+ const { usedTokens: s, maxTokens: c } = u(), r = s / c, a = N(r), f = new Intl.NumberFormat("en-US", {
106
+ maximumFractionDigits: 1,
107
+ style: "percent"
108
+ }).format(r), v = new Intl.NumberFormat("en-US", {
109
+ notation: "compact"
110
+ }).format(s), k = new Intl.NumberFormat("en-US", {
111
+ notation: "compact"
112
+ }).format(c);
113
+ return /* @__PURE__ */ n("div", { className: l("w-full space-y-2 p-3", e), ...o, children: t ?? /* @__PURE__ */ i(T, { children: [
114
+ /* @__PURE__ */ i("div", { className: "flex items-center justify-between gap-3 text-xs", children: [
115
+ /* @__PURE__ */ n("p", { className: l(p[a]), children: f }),
116
+ /* @__PURE__ */ i("p", { className: "font-mono text-muted-foreground", children: [
117
+ v,
118
+ " / ",
119
+ k
120
+ ] })
121
+ ] }),
122
+ /* @__PURE__ */ n("div", { className: "space-y-2", children: /* @__PURE__ */ n(
123
+ _,
124
+ {
125
+ "aria-label": "Context window usage",
126
+ className: l("bg-muted", H[a]),
127
+ value: r * E
128
+ }
129
+ ) })
130
+ ] }) });
131
+ }, q = ({
132
+ children: t,
133
+ className: e,
134
+ ...o
135
+ }) => /* @__PURE__ */ n("div", { className: l("w-full p-3", e), ...o, children: t }), z = ({
136
+ children: t,
137
+ className: e,
138
+ ...o
139
+ }) => {
140
+ const { cost: s } = u(), c = s?.total === void 0 ? "—" : w.format(s.total);
141
+ return /* @__PURE__ */ n(
142
+ "div",
143
+ {
144
+ className: l(
145
+ "flex w-full items-center justify-between gap-3 bg-muted/50 p-3 text-xs",
146
+ e
147
+ ),
148
+ ...o,
149
+ children: t ?? /* @__PURE__ */ i(T, { children: [
150
+ /* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Total cost" }),
151
+ /* @__PURE__ */ n("span", { children: c })
152
+ ] })
153
+ }
154
+ );
155
+ }, x = ({
156
+ tokens: t,
157
+ costText: e
158
+ }) => /* @__PURE__ */ i("span", { children: [
159
+ t === void 0 ? "—" : new Intl.NumberFormat("en-US", {
160
+ notation: "compact"
161
+ }).format(t),
162
+ e ? /* @__PURE__ */ i("span", { className: "ml-2 text-muted-foreground", children: [
163
+ "• ",
164
+ e
165
+ ] }) : null
166
+ ] }), J = ({
167
+ className: t,
168
+ children: e,
169
+ ...o
170
+ }) => {
171
+ const { usage: s, cost: c } = u(), r = s?.inputTokens ?? 0;
172
+ if (e)
173
+ return e;
174
+ if (!r)
175
+ return null;
176
+ const a = d(c?.input);
177
+ return /* @__PURE__ */ i(
178
+ "div",
179
+ {
180
+ className: l("flex items-center justify-between text-xs", t),
181
+ ...o,
182
+ children: [
183
+ /* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Input" }),
184
+ /* @__PURE__ */ n(x, { costText: a, tokens: r })
185
+ ]
186
+ }
187
+ );
188
+ }, Q = ({
189
+ className: t,
190
+ children: e,
191
+ ...o
192
+ }) => {
193
+ const { usage: s, cost: c } = u(), r = s?.outputTokens ?? 0;
194
+ if (e)
195
+ return e;
196
+ if (!r)
197
+ return null;
198
+ const a = d(c?.output);
199
+ return /* @__PURE__ */ i(
200
+ "div",
201
+ {
202
+ className: l("flex items-center justify-between text-xs", t),
203
+ ...o,
204
+ children: [
205
+ /* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Output" }),
206
+ /* @__PURE__ */ n(x, { costText: a, tokens: r })
207
+ ]
208
+ }
209
+ );
210
+ }, Y = ({
211
+ className: t,
212
+ children: e,
213
+ ...o
214
+ }) => {
215
+ const { usage: s, cost: c } = u(), r = s?.reasoningTokens ?? 0;
216
+ if (e)
217
+ return e;
218
+ if (!r)
219
+ return null;
220
+ const a = d(c?.reasoning);
221
+ return /* @__PURE__ */ i(
222
+ "div",
223
+ {
224
+ className: l("flex items-center justify-between text-xs", t),
225
+ ...o,
226
+ children: [
227
+ /* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Reasoning" }),
228
+ /* @__PURE__ */ n(x, { costText: a, tokens: r })
229
+ ]
230
+ }
231
+ );
232
+ }, Z = ({
233
+ className: t,
234
+ children: e,
235
+ ...o
236
+ }) => {
237
+ const { usage: s, cost: c } = u(), r = s?.cachedInputTokens ?? 0;
238
+ if (e)
239
+ return e;
240
+ if (!r)
241
+ return null;
242
+ const a = d(c?.cache);
243
+ return /* @__PURE__ */ i(
244
+ "div",
245
+ {
246
+ className: l("flex items-center justify-between text-xs", t),
247
+ ...o,
248
+ children: [
249
+ /* @__PURE__ */ n("span", { className: "text-muted-foreground", children: "Cache" }),
250
+ /* @__PURE__ */ n(x, { costText: a, tokens: r })
251
+ ]
252
+ }
253
+ );
254
+ };
255
+ export {
256
+ V as Context,
257
+ Z as ContextCacheUsage,
258
+ G as ContextContent,
259
+ q as ContextContentBody,
260
+ z as ContextContentFooter,
261
+ K as ContextContentHeader,
262
+ J as ContextInputUsage,
263
+ Q as ContextOutputUsage,
264
+ Y as ContextReasoningUsage,
265
+ X as ContextTrigger
266
+ };
267
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../src/components/ai/context.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\n\nimport type { LanguageModelUsage } from \"ai\";\nimport type { ComponentProps } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"@/components/ui/hover-card\";\nimport { Progress } from \"@/components/ui/progress\";\nimport { cn } from \"@/lib/utils\";\n\n\nconst PERCENT_MAX = 100;\nconst ICON_RADIUS = 10;\nconst ICON_VIEWBOX = 24;\nconst ICON_CENTER = 12;\nconst ICON_STROKE_WIDTH = 2;\nconst WARN_THRESHOLD = 0.75;\nconst DANGER_THRESHOLD = 0.9;\n\ntype UsageStatus = \"normal\" | \"warning\" | \"danger\";\n\nconst getUsageStatus = (pct: number): UsageStatus => {\n if (pct >= DANGER_THRESHOLD) return \"danger\";\n if (pct >= WARN_THRESHOLD) return \"warning\";\n return \"normal\";\n};\n\nconst STATUS_TEXT: Record<UsageStatus, string> = {\n normal: \"text-muted-foreground\",\n warning: \"text-warning\",\n danger: \"text-destructive\",\n};\n\nconst STATUS_PROGRESS: Record<UsageStatus, string> = {\n normal: \"\",\n warning: \"[&_[data-slot=progress-indicator]]:bg-warning\",\n danger: \"[&_[data-slot=progress-indicator]]:bg-destructive\",\n};\n\nconst USD_FORMAT = new Intl.NumberFormat(\"en-US\", {\n currency: \"USD\",\n style: \"currency\",\n});\n\nconst formatUSD = (value: number | undefined): string | undefined =>\n value === undefined ? undefined : USD_FORMAT.format(value);\n\nexport interface CostBreakdown {\n total?: number;\n input?: number;\n output?: number;\n reasoning?: number;\n cache?: number;\n}\n\ninterface ContextSchema {\n usedTokens: number;\n maxTokens: number;\n usage?: LanguageModelUsage;\n cost?: CostBreakdown;\n}\n\nconst ContextContext = createContext<ContextSchema | null>(null);\n\nconst useContextValue = () => {\n const context = useContext(ContextContext);\n\n if (!context) {\n throw new Error(\"Context components must be used within Context\");\n }\n\n return context;\n};\n\nexport type ContextProps = ComponentProps<typeof HoverCard> & ContextSchema;\n\nexport const Context = ({\n usedTokens,\n maxTokens,\n usage,\n cost,\n ...props\n}: ContextProps) => {\n const contextValue = useMemo(\n () => ({ cost, maxTokens, usage, usedTokens }),\n [cost, maxTokens, usage, usedTokens]\n );\n\n return (\n <ContextContext.Provider value={contextValue}>\n <HoverCard closeDelay={0} openDelay={0} {...props} />\n </ContextContext.Provider>\n );\n};\n\nconst ContextIcon = () => {\n const { usedTokens, maxTokens } = useContextValue();\n const circumference = 2 * Math.PI * ICON_RADIUS;\n const usedPercent = usedTokens / maxTokens;\n const dashOffset = circumference * (1 - usedPercent);\n\n return (\n <svg\n aria-label=\"Model context usage\"\n height=\"20\"\n role=\"img\"\n style={{ color: \"currentcolor\" }}\n viewBox={`0 0 ${ICON_VIEWBOX} ${ICON_VIEWBOX}`}\n width=\"20\"\n >\n <circle\n cx={ICON_CENTER}\n cy={ICON_CENTER}\n fill=\"none\"\n opacity=\"0.25\"\n r={ICON_RADIUS}\n stroke=\"currentColor\"\n strokeWidth={ICON_STROKE_WIDTH}\n />\n <circle\n cx={ICON_CENTER}\n cy={ICON_CENTER}\n fill=\"none\"\n opacity=\"0.7\"\n r={ICON_RADIUS}\n stroke=\"currentColor\"\n strokeDasharray={`${circumference} ${circumference}`}\n strokeDashoffset={dashOffset}\n strokeLinecap=\"round\"\n strokeWidth={ICON_STROKE_WIDTH}\n style={{ transform: \"rotate(-90deg)\", transformOrigin: \"center\" }}\n />\n </svg>\n );\n};\n\nexport type ContextTriggerProps = ComponentProps<typeof Button> & {\n showPercentage?: boolean;\n};\n\nexport const ContextTrigger = ({\n children,\n showPercentage = false,\n ...props\n}: ContextTriggerProps) => {\n const { usedTokens, maxTokens } = useContextValue();\n const usedPercent = usedTokens / maxTokens;\n const status = getUsageStatus(usedPercent);\n const renderedPercent = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 1,\n style: \"percent\",\n }).format(usedPercent);\n\n return (\n <HoverCardTrigger asChild>\n {children ?? (\n <Button type=\"button\" variant=\"ghost\" {...props}>\n {showPercentage ? (\n <span className={cn(\"font-medium\", STATUS_TEXT[status])}>\n {renderedPercent}\n </span>\n ) : null}\n <span className={STATUS_TEXT[status]}>\n <ContextIcon />\n </span>\n </Button>\n )}\n </HoverCardTrigger>\n );\n};\n\nexport type ContextContentProps = ComponentProps<typeof HoverCardContent>;\n\nexport const ContextContent = ({\n className,\n ...props\n}: ContextContentProps) => (\n <HoverCardContent\n className={cn(\"min-w-60 divide-y overflow-hidden p-0\", className)}\n {...props}\n />\n);\n\nexport type ContextContentHeaderProps = ComponentProps<\"div\">;\n\nexport const ContextContentHeader = ({\n children,\n className,\n ...props\n}: ContextContentHeaderProps) => {\n const { usedTokens, maxTokens } = useContextValue();\n const usedPercent = usedTokens / maxTokens;\n const status = getUsageStatus(usedPercent);\n const displayPct = new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 1,\n style: \"percent\",\n }).format(usedPercent);\n const used = new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(usedTokens);\n const total = new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(maxTokens);\n\n return (\n <div className={cn(\"w-full space-y-2 p-3\", className)} {...props}>\n {children ?? (\n <>\n <div className=\"flex items-center justify-between gap-3 text-xs\">\n <p className={cn(STATUS_TEXT[status])}>{displayPct}</p>\n <p className=\"font-mono text-muted-foreground\">\n {used} / {total}\n </p>\n </div>\n <div className=\"space-y-2\">\n <Progress\n aria-label=\"Context window usage\"\n className={cn(\"bg-muted\", STATUS_PROGRESS[status])}\n value={usedPercent * PERCENT_MAX}\n />\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport type ContextContentBodyProps = ComponentProps<\"div\">;\n\nexport const ContextContentBody = ({\n children,\n className,\n ...props\n}: ContextContentBodyProps) => (\n <div className={cn(\"w-full p-3\", className)} {...props}>\n {children}\n </div>\n);\n\nexport type ContextContentFooterProps = ComponentProps<\"div\">;\n\nexport const ContextContentFooter = ({\n children,\n className,\n ...props\n}: ContextContentFooterProps) => {\n const { cost } = useContextValue();\n const totalCost = cost?.total === undefined ? \"—\" : USD_FORMAT.format(cost.total);\n\n return (\n <div\n className={cn(\n \"flex w-full items-center justify-between gap-3 bg-muted/50 p-3 text-xs\",\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n <span className=\"text-muted-foreground\">Total cost</span>\n <span>{totalCost}</span>\n </>\n )}\n </div>\n );\n};\n\nconst TokensWithCost = ({\n tokens,\n costText,\n}: {\n tokens?: number;\n costText?: string;\n}) => (\n <span>\n {tokens === undefined\n ? \"—\"\n : new Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n }).format(tokens)}\n {costText ? (\n <span className=\"ml-2 text-muted-foreground\">• {costText}</span>\n ) : null}\n </span>\n);\n\nexport type ContextInputUsageProps = ComponentProps<\"div\">;\n\nexport const ContextInputUsage = ({\n className,\n children,\n ...props\n}: ContextInputUsageProps) => {\n const { usage, cost } = useContextValue();\n const inputTokens = usage?.inputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!inputTokens) {\n return null;\n }\n\n const inputCostText = formatUSD(cost?.input);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Input</span>\n <TokensWithCost costText={inputCostText} tokens={inputTokens} />\n </div>\n );\n};\n\nexport type ContextOutputUsageProps = ComponentProps<\"div\">;\n\nexport const ContextOutputUsage = ({\n className,\n children,\n ...props\n}: ContextOutputUsageProps) => {\n const { usage, cost } = useContextValue();\n const outputTokens = usage?.outputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!outputTokens) {\n return null;\n }\n\n const outputCostText = formatUSD(cost?.output);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Output</span>\n <TokensWithCost costText={outputCostText} tokens={outputTokens} />\n </div>\n );\n};\n\nexport type ContextReasoningUsageProps = ComponentProps<\"div\">;\n\nexport const ContextReasoningUsage = ({\n className,\n children,\n ...props\n}: ContextReasoningUsageProps) => {\n const { usage, cost } = useContextValue();\n const reasoningTokens = usage?.reasoningTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!reasoningTokens) {\n return null;\n }\n\n const reasoningCostText = formatUSD(cost?.reasoning);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Reasoning</span>\n <TokensWithCost costText={reasoningCostText} tokens={reasoningTokens} />\n </div>\n );\n};\n\nexport type ContextCacheUsageProps = ComponentProps<\"div\">;\n\nexport const ContextCacheUsage = ({\n className,\n children,\n ...props\n}: ContextCacheUsageProps) => {\n const { usage, cost } = useContextValue();\n const cacheTokens = usage?.cachedInputTokens ?? 0;\n\n if (children) {\n return children;\n }\n\n if (!cacheTokens) {\n return null;\n }\n\n const cacheCostText = formatUSD(cost?.cache);\n\n return (\n <div\n className={cn(\"flex items-center justify-between text-xs\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Cache</span>\n <TokensWithCost costText={cacheCostText} tokens={cacheTokens} />\n </div>\n );\n};\n"],"names":["PERCENT_MAX","ICON_RADIUS","ICON_VIEWBOX","ICON_CENTER","ICON_STROKE_WIDTH","WARN_THRESHOLD","DANGER_THRESHOLD","getUsageStatus","pct","STATUS_TEXT","STATUS_PROGRESS","USD_FORMAT","formatUSD","value","ContextContext","createContext","useContextValue","context","useContext","Context","usedTokens","maxTokens","usage","cost","props","contextValue","useMemo","jsx","HoverCard","ContextIcon","circumference","usedPercent","dashOffset","jsxs","ContextTrigger","children","showPercentage","status","renderedPercent","HoverCardTrigger","Button","cn","ContextContent","className","HoverCardContent","ContextContentHeader","displayPct","used","total","Fragment","Progress","ContextContentBody","ContextContentFooter","totalCost","TokensWithCost","tokens","costText","ContextInputUsage","inputTokens","inputCostText","ContextOutputUsage","outputTokens","outputCostText","ContextReasoningUsage","reasoningTokens","reasoningCostText","ContextCacheUsage","cacheTokens","cacheCostText"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),u=require("lucide-react"),m=require("react"),i=require("use-stick-to-bottom"),x=require("../ui/button.cjs"),c=require("../lib/utils.cjs"),j=({className:e,...t})=>o.jsx(i.StickToBottom,{className:c.cn("relative flex-1 overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...t}),C=({className:e,...t})=>o.jsx(i.StickToBottom.Content,{className:c.cn("flex flex-col gap-8 p-4",e),...t}),g=({className:e,title:t="No messages yet",description:n="Start a conversation to see messages here",icon:s,children:r,...l})=>o.jsx("div",{className:c.cn("flex size-full flex-col items-center justify-center gap-3 p-8 text-center",e),...l,children:r??o.jsxs(o.Fragment,{children:[s&&o.jsx("div",{className:"text-muted-foreground",children:s}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h3",{className:"font-medium text-sm",children:t}),n&&o.jsx("p",{className:"text-muted-foreground text-sm",children:n})]})]})}),f=({className:e,...t})=>{const{isAtBottom:n,scrollToBottom:s}=i.useStickToBottomContext(),r=m.useCallback(()=>{s()},[s]);return!n&&o.jsx(x.Button,{className:c.cn("absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full dark:bg-background dark:hover:bg-accent",e),onClick:r,size:"icon",type:"button",variant:"outline",...t,children:o.jsx(u.ArrowDownIcon,{className:"size-4"})})},w=e=>e.parts.filter(t=>t.type==="text").map(t=>t.text).join(""),b=e=>`**${e.role.charAt(0).toUpperCase()+e.role.slice(1)}:** ${w(e)}`,v=(e,t=b)=>e.map((n,s)=>t(n,s)).join(`
2
+
3
+ `),y=({messages:e,filename:t="conversation.md",formatMessage:n=b,className:s,children:r,...l})=>{const k=m.useCallback(()=>{const h=v(e,n),p=new Blob([h],{type:"text/markdown"}),d=URL.createObjectURL(p),a=document.createElement("a");a.href=d,a.download=t,document.body.append(a),a.click(),a.remove(),URL.revokeObjectURL(d)},[e,t,n]);return o.jsx(x.Button,{className:c.cn("absolute top-4 right-4 rounded-full dark:bg-background dark:hover:bg-accent",s),onClick:k,size:"icon",type:"button",variant:"outline",...l,children:r??o.jsx(u.DownloadIcon,{className:"size-4"})})};exports.Conversation=j;exports.ConversationContent=C;exports.ConversationDownload=y;exports.ConversationEmptyState=g;exports.ConversationScrollButton=f;exports.messagesToMarkdown=v;
4
+ //# sourceMappingURL=conversation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.cjs","sources":["../../src/components/ai/conversation.tsx"],"sourcesContent":["import { ArrowDownIcon, DownloadIcon } from \"lucide-react\";\nimport { useCallback } from \"react\";\nimport { StickToBottom, useStickToBottomContext } from \"use-stick-to-bottom\";\n\nimport type { UIMessage } from \"ai\";\nimport type { ComponentProps } from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ConversationProps = ComponentProps<typeof StickToBottom>;\n\nexport const Conversation = ({ className, ...props }: ConversationProps) => (\n <StickToBottom\n className={cn(\"relative flex-1 overflow-y-hidden\", className)}\n initial=\"smooth\"\n resize=\"smooth\"\n role=\"log\"\n {...props}\n />\n);\n\nexport type ConversationContentProps = ComponentProps<\n typeof StickToBottom.Content\n>;\n\nexport const ConversationContent = ({\n className,\n ...props\n}: ConversationContentProps) => (\n <StickToBottom.Content\n className={cn(\"flex flex-col gap-8 p-4\", className)}\n {...props}\n />\n);\n\nexport type ConversationEmptyStateProps = ComponentProps<\"div\"> & {\n title?: string;\n description?: string;\n icon?: React.ReactNode;\n};\n\nexport const ConversationEmptyState = ({\n className,\n title = \"No messages yet\",\n description = \"Start a conversation to see messages here\",\n icon,\n children,\n ...props\n}: ConversationEmptyStateProps) => (\n <div\n className={cn(\n \"flex size-full flex-col items-center justify-center gap-3 p-8 text-center\",\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n {icon && <div className=\"text-muted-foreground\">{icon}</div>}\n <div className=\"space-y-1\">\n <h3 className=\"font-medium text-sm\">{title}</h3>\n {description && (\n <p className=\"text-muted-foreground text-sm\">{description}</p>\n )}\n </div>\n </>\n )}\n </div>\n);\n\nexport type ConversationScrollButtonProps = ComponentProps<typeof Button>;\n\nexport const ConversationScrollButton = ({\n className,\n ...props\n}: ConversationScrollButtonProps) => {\n const { isAtBottom, scrollToBottom } = useStickToBottomContext();\n\n const handleScrollToBottom = useCallback(() => {\n scrollToBottom();\n }, [scrollToBottom]);\n\n return (\n !isAtBottom && (\n <Button\n className={cn(\n \"absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full dark:bg-background dark:hover:bg-accent\",\n className\n )}\n onClick={handleScrollToBottom}\n size=\"icon\"\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n <ArrowDownIcon className=\"size-4\" />\n </Button>\n )\n );\n};\n\nconst getMessageText = (message: UIMessage): string =>\n message.parts\n .filter((part) => part.type === \"text\")\n .map((part) => part.text)\n .join(\"\");\n\nexport type ConversationDownloadProps = Omit<\n ComponentProps<typeof Button>,\n \"onClick\"\n> & {\n messages: UIMessage[];\n filename?: string;\n formatMessage?: (message: UIMessage, index: number) => string;\n};\n\nconst defaultFormatMessage = (message: UIMessage): string => {\n const roleLabel =\n message.role.charAt(0).toUpperCase() + message.role.slice(1);\n return `**${roleLabel}:** ${getMessageText(message)}`;\n};\n\nexport const messagesToMarkdown = (\n messages: UIMessage[],\n formatMessage: (\n message: UIMessage,\n index: number\n ) => string = defaultFormatMessage\n): string => messages.map((msg, i) => formatMessage(msg, i)).join(\"\\n\\n\");\n\nexport const ConversationDownload = ({\n messages,\n filename = \"conversation.md\",\n formatMessage = defaultFormatMessage,\n className,\n children,\n ...props\n}: ConversationDownloadProps) => {\n const handleDownload = useCallback(() => {\n const markdown = messagesToMarkdown(messages, formatMessage);\n const blob = new Blob([markdown], { type: \"text/markdown\" });\n const url = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = url;\n link.download = filename;\n document.body.append(link);\n link.click();\n link.remove();\n URL.revokeObjectURL(url);\n }, [messages, filename, formatMessage]);\n\n return (\n <Button\n className={cn(\n \"absolute top-4 right-4 rounded-full dark:bg-background dark:hover:bg-accent\",\n className\n )}\n onClick={handleDownload}\n size=\"icon\"\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n {children ?? <DownloadIcon className=\"size-4\" />}\n </Button>\n );\n};\n"],"names":["Conversation","className","props","jsx","StickToBottom","cn","ConversationContent","ConversationEmptyState","title","description","icon","children","jsxs","Fragment","ConversationScrollButton","isAtBottom","scrollToBottom","useStickToBottomContext","handleScrollToBottom","useCallback","Button","ArrowDownIcon","getMessageText","message","part","defaultFormatMessage","messagesToMarkdown","messages","formatMessage","msg","i","ConversationDownload","filename","handleDownload","markdown","blob","url","link","DownloadIcon"],"mappings":"+PAYaA,EAAe,CAAC,CAAE,UAAAC,EAAW,GAAGC,KAC3CC,EAAAA,IAACC,EAAAA,cAAA,CACC,UAAWC,EAAAA,GAAG,oCAAqCJ,CAAS,EAC5D,QAAQ,SACR,OAAO,SACP,KAAK,MACJ,GAAGC,CAAA,CACN,EAOWI,EAAsB,CAAC,CAClC,UAAAL,EACA,GAAGC,CACL,IACEC,EAAAA,IAACC,EAAAA,cAAc,QAAd,CACC,UAAWC,EAAAA,GAAG,0BAA2BJ,CAAS,EACjD,GAAGC,CAAA,CACN,EASWK,EAAyB,CAAC,CACrC,UAAAN,EACA,MAAAO,EAAQ,kBACR,YAAAC,EAAc,4CACd,KAAAC,EACA,SAAAC,EACA,GAAGT,CACL,IACEC,EAAAA,IAAC,MAAA,CACC,UAAWE,EAAAA,GACT,4EACAJ,CAAA,EAED,GAAGC,EAEH,YACCU,EAAAA,KAAAC,EAAAA,SAAA,CACG,SAAA,CAAAH,GAAQP,EAAAA,IAAC,MAAA,CAAI,UAAU,wBAAyB,SAAAO,EAAK,EACtDE,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAT,EAAAA,IAAC,KAAA,CAAG,UAAU,sBAAuB,SAAAK,EAAM,EAC1CC,GACCN,EAAAA,IAAC,IAAA,CAAE,UAAU,gCAAiC,SAAAM,CAAA,CAAY,CAAA,CAAA,CAE9D,CAAA,CAAA,CACF,CAAA,CAEJ,EAKWK,EAA2B,CAAC,CACvC,UAAAb,EACA,GAAGC,CACL,IAAqC,CACnC,KAAM,CAAE,WAAAa,EAAY,eAAAC,CAAA,EAAmBC,0BAAA,EAEjCC,EAAuBC,EAAAA,YAAY,IAAM,CAC7CH,EAAA,CACF,EAAG,CAACA,CAAc,CAAC,EAEnB,MACE,CAACD,GACCZ,EAAAA,IAACiB,EAAAA,OAAA,CACC,UAAWf,EAAAA,GACT,uGACAJ,CAAA,EAEF,QAASiB,EACT,KAAK,OACL,KAAK,SACL,QAAQ,UACP,GAAGhB,EAEJ,SAAAC,EAAAA,IAACkB,EAAAA,cAAA,CAAc,UAAU,QAAA,CAAS,CAAA,CAAA,CAI1C,EAEMC,EAAkBC,GACtBA,EAAQ,MACL,OAAQC,GAASA,EAAK,OAAS,MAAM,EACrC,IAAKA,GAASA,EAAK,IAAI,EACvB,KAAK,EAAE,EAWNC,EAAwBF,GAGrB,KADLA,EAAQ,KAAK,OAAO,CAAC,EAAE,YAAA,EAAgBA,EAAQ,KAAK,MAAM,CAAC,CACxC,OAAOD,EAAeC,CAAO,CAAC,GAGxCG,EAAqB,CAChCC,EACAC,EAGcH,IACHE,EAAS,IAAI,CAACE,EAAKC,IAAMF,EAAcC,EAAKC,CAAC,CAAC,EAAE,KAAK;AAAA;AAAA,CAAM,EAE3DC,EAAuB,CAAC,CACnC,SAAAJ,EACA,SAAAK,EAAW,kBACX,cAAAJ,EAAgBH,EAChB,UAAAxB,EACA,SAAAU,EACA,GAAGT,CACL,IAAiC,CAC/B,MAAM+B,EAAiBd,EAAAA,YAAY,IAAM,CACvC,MAAMe,EAAWR,EAAmBC,EAAUC,CAAa,EACrDO,EAAO,IAAI,KAAK,CAACD,CAAQ,EAAG,CAAE,KAAM,gBAAiB,EACrDE,EAAM,IAAI,gBAAgBD,CAAI,EAC9BE,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,KAAOD,EACZC,EAAK,SAAWL,EAChB,SAAS,KAAK,OAAOK,CAAI,EACzBA,EAAK,MAAA,EACLA,EAAK,OAAA,EACL,IAAI,gBAAgBD,CAAG,CACzB,EAAG,CAACT,EAAUK,EAAUJ,CAAa,CAAC,EAEtC,OACEzB,EAAAA,IAACiB,EAAAA,OAAA,CACC,UAAWf,EAAAA,GACT,8EACAJ,CAAA,EAEF,QAASgC,EACT,KAAK,OACL,KAAK,SACL,QAAQ,UACP,GAAG/B,EAEH,SAAAS,GAAYR,EAAAA,IAACmC,EAAAA,aAAA,CAAa,UAAU,QAAA,CAAS,CAAA,CAAA,CAGpD"}