@adea-ai/ui 0.140.0 → 0.142.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 (455) hide show
  1. package/dist/components/composites/appearance-editor/appearance-editor.js +2 -2
  2. package/dist/components/composites/appearance-editor/appearance-editor.js.map +1 -1
  3. package/dist/components/composites/catalog-browser/catalog-browser-group.js +1 -1
  4. package/dist/components/composites/chain-of-thought/chain-of-thought.d.ts +56 -0
  5. package/dist/components/composites/chain-of-thought/chain-of-thought.d.ts.map +1 -0
  6. package/dist/components/composites/chain-of-thought/chain-of-thought.js +117 -0
  7. package/dist/components/composites/chain-of-thought/chain-of-thought.js.map +1 -0
  8. package/dist/components/composites/chain-of-thought/index.d.ts +2 -0
  9. package/dist/components/composites/chain-of-thought/index.d.ts.map +1 -0
  10. package/dist/components/composites/chain-of-thought/index.js +2 -0
  11. package/dist/components/composites/chat/chat.d.ts +67 -0
  12. package/dist/components/composites/chat/chat.d.ts.map +1 -0
  13. package/dist/components/composites/chat/chat.js +179 -0
  14. package/dist/components/composites/chat/chat.js.map +1 -0
  15. package/dist/components/composites/chat/index.d.ts +2 -0
  16. package/dist/components/composites/chat/index.d.ts.map +1 -0
  17. package/dist/components/composites/chat/index.js +2 -0
  18. package/dist/components/composites/checkpoint/checkpoint-model.d.ts +34 -0
  19. package/dist/components/composites/checkpoint/checkpoint-model.d.ts.map +1 -0
  20. package/dist/components/composites/checkpoint/checkpoint-model.js +48 -0
  21. package/dist/components/composites/checkpoint/checkpoint-model.js.map +1 -0
  22. package/dist/components/composites/checkpoint/checkpoint.d.ts +48 -0
  23. package/dist/components/composites/checkpoint/checkpoint.d.ts.map +1 -0
  24. package/dist/components/composites/checkpoint/checkpoint.js +160 -0
  25. package/dist/components/composites/checkpoint/checkpoint.js.map +1 -0
  26. package/dist/components/composites/checkpoint/index.d.ts +3 -0
  27. package/dist/components/composites/checkpoint/index.d.ts.map +1 -0
  28. package/dist/components/composites/checkpoint/index.js +3 -0
  29. package/dist/components/composites/confirmation/confirmation-model.d.ts +45 -0
  30. package/dist/components/composites/confirmation/confirmation-model.d.ts.map +1 -0
  31. package/dist/components/composites/confirmation/confirmation-model.js +51 -0
  32. package/dist/components/composites/confirmation/confirmation-model.js.map +1 -0
  33. package/dist/components/composites/confirmation/confirmation.d.ts +72 -0
  34. package/dist/components/composites/confirmation/confirmation.d.ts.map +1 -0
  35. package/dist/components/composites/confirmation/confirmation.js +300 -0
  36. package/dist/components/composites/confirmation/confirmation.js.map +1 -0
  37. package/dist/components/composites/confirmation/index.d.ts +3 -0
  38. package/dist/components/composites/confirmation/index.d.ts.map +1 -0
  39. package/dist/components/composites/confirmation/index.js +3 -0
  40. package/dist/components/composites/context/context-model.d.ts +69 -0
  41. package/dist/components/composites/context/context-model.d.ts.map +1 -0
  42. package/dist/components/composites/context/context-model.js +122 -0
  43. package/dist/components/composites/context/context-model.js.map +1 -0
  44. package/dist/components/composites/context/context.d.ts +38 -0
  45. package/dist/components/composites/context/context.d.ts.map +1 -0
  46. package/dist/components/composites/context/context.js +234 -0
  47. package/dist/components/composites/context/context.js.map +1 -0
  48. package/dist/components/composites/context/index.d.ts +3 -0
  49. package/dist/components/composites/context/index.d.ts.map +1 -0
  50. package/dist/components/composites/context/index.js +3 -0
  51. package/dist/components/composites/file-tree/build-file-tree.d.ts +138 -0
  52. package/dist/components/composites/file-tree/build-file-tree.d.ts.map +1 -0
  53. package/dist/components/composites/file-tree/build-file-tree.js +325 -0
  54. package/dist/components/composites/file-tree/build-file-tree.js.map +1 -0
  55. package/dist/components/composites/file-tree/file-tree.d.ts +74 -0
  56. package/dist/components/composites/file-tree/file-tree.d.ts.map +1 -0
  57. package/dist/components/composites/file-tree/file-tree.js +389 -0
  58. package/dist/components/composites/file-tree/file-tree.js.map +1 -0
  59. package/dist/components/composites/file-tree/index.d.ts +3 -0
  60. package/dist/components/composites/file-tree/index.d.ts.map +1 -0
  61. package/dist/components/composites/file-tree/index.js +3 -0
  62. package/dist/components/composites/inline-citation/citation.d.ts +37 -0
  63. package/dist/components/composites/inline-citation/citation.d.ts.map +1 -0
  64. package/dist/components/composites/inline-citation/citation.js +52 -0
  65. package/dist/components/composites/inline-citation/citation.js.map +1 -0
  66. package/dist/components/composites/inline-citation/index.d.ts +3 -0
  67. package/dist/components/composites/inline-citation/index.d.ts.map +1 -0
  68. package/dist/components/composites/inline-citation/index.js +3 -0
  69. package/dist/components/composites/inline-citation/inline-citation.d.ts +64 -0
  70. package/dist/components/composites/inline-citation/inline-citation.d.ts.map +1 -0
  71. package/dist/components/composites/inline-citation/inline-citation.js +272 -0
  72. package/dist/components/composites/inline-citation/inline-citation.js.map +1 -0
  73. package/dist/components/composites/message-scroller/index.d.ts +3 -0
  74. package/dist/components/composites/message-scroller/index.d.ts.map +1 -0
  75. package/dist/components/composites/message-scroller/index.js +3 -0
  76. package/dist/components/composites/message-scroller/message-scroller.d.ts +55 -0
  77. package/dist/components/composites/message-scroller/message-scroller.d.ts.map +1 -0
  78. package/dist/components/composites/message-scroller/message-scroller.js +201 -0
  79. package/dist/components/composites/message-scroller/message-scroller.js.map +1 -0
  80. package/dist/components/composites/message-scroller/scroll-anchor.d.ts +66 -0
  81. package/dist/components/composites/message-scroller/scroll-anchor.d.ts.map +1 -0
  82. package/dist/components/composites/message-scroller/scroll-anchor.js +122 -0
  83. package/dist/components/composites/message-scroller/scroll-anchor.js.map +1 -0
  84. package/dist/components/composites/model-selector/index.d.ts +3 -0
  85. package/dist/components/composites/model-selector/index.d.ts.map +1 -0
  86. package/dist/components/composites/model-selector/index.js +3 -0
  87. package/dist/components/composites/model-selector/model-selector.d.ts +55 -0
  88. package/dist/components/composites/model-selector/model-selector.d.ts.map +1 -0
  89. package/dist/components/composites/model-selector/model-selector.js +490 -0
  90. package/dist/components/composites/model-selector/model-selector.js.map +1 -0
  91. package/dist/components/composites/model-selector/models.d.ts +51 -0
  92. package/dist/components/composites/model-selector/models.d.ts.map +1 -0
  93. package/dist/components/composites/model-selector/models.js +71 -0
  94. package/dist/components/composites/model-selector/models.js.map +1 -0
  95. package/dist/components/composites/plan/index.d.ts +2 -0
  96. package/dist/components/composites/plan/index.d.ts.map +1 -0
  97. package/dist/components/composites/plan/index.js +2 -0
  98. package/dist/components/composites/plan/plan.d.ts +61 -0
  99. package/dist/components/composites/plan/plan.d.ts.map +1 -0
  100. package/dist/components/composites/plan/plan.js +130 -0
  101. package/dist/components/composites/plan/plan.js.map +1 -0
  102. package/dist/components/composites/queue/index.d.ts +2 -0
  103. package/dist/components/composites/queue/index.d.ts.map +1 -0
  104. package/dist/components/composites/queue/index.js +2 -0
  105. package/dist/components/composites/queue/queue.d.ts +77 -0
  106. package/dist/components/composites/queue/queue.d.ts.map +1 -0
  107. package/dist/components/composites/queue/queue.js +271 -0
  108. package/dist/components/composites/queue/queue.js.map +1 -0
  109. package/dist/components/composites/reasoning/index.d.ts +2 -0
  110. package/dist/components/composites/reasoning/index.d.ts.map +1 -0
  111. package/dist/components/composites/reasoning/index.js +2 -0
  112. package/dist/components/composites/reasoning/reasoning.d.ts +62 -0
  113. package/dist/components/composites/reasoning/reasoning.d.ts.map +1 -0
  114. package/dist/components/composites/reasoning/reasoning.js +156 -0
  115. package/dist/components/composites/reasoning/reasoning.js.map +1 -0
  116. package/dist/components/composites/sources/index.d.ts +3 -0
  117. package/dist/components/composites/sources/index.d.ts.map +1 -0
  118. package/dist/components/composites/sources/index.js +3 -0
  119. package/dist/components/composites/sources/source.d.ts +46 -0
  120. package/dist/components/composites/sources/source.d.ts.map +1 -0
  121. package/dist/components/composites/sources/source.js +74 -0
  122. package/dist/components/composites/sources/source.js.map +1 -0
  123. package/dist/components/composites/sources/sources.d.ts +45 -0
  124. package/dist/components/composites/sources/sources.d.ts.map +1 -0
  125. package/dist/components/composites/sources/sources.js +175 -0
  126. package/dist/components/composites/sources/sources.js.map +1 -0
  127. package/dist/components/composites/stack-trace/index.d.ts +3 -0
  128. package/dist/components/composites/stack-trace/index.d.ts.map +1 -0
  129. package/dist/components/composites/stack-trace/index.js +3 -0
  130. package/dist/components/composites/stack-trace/parse-stack-trace.d.ts +118 -0
  131. package/dist/components/composites/stack-trace/parse-stack-trace.d.ts.map +1 -0
  132. package/dist/components/composites/stack-trace/parse-stack-trace.js +376 -0
  133. package/dist/components/composites/stack-trace/parse-stack-trace.js.map +1 -0
  134. package/dist/components/composites/stack-trace/stack-trace.d.ts +63 -0
  135. package/dist/components/composites/stack-trace/stack-trace.d.ts.map +1 -0
  136. package/dist/components/composites/stack-trace/stack-trace.js +491 -0
  137. package/dist/components/composites/stack-trace/stack-trace.js.map +1 -0
  138. package/dist/components/composites/subagent/index.d.ts +2 -0
  139. package/dist/components/composites/subagent/index.d.ts.map +1 -0
  140. package/dist/components/composites/subagent/index.js +2 -0
  141. package/dist/components/composites/subagent/subagent.d.ts +55 -0
  142. package/dist/components/composites/subagent/subagent.d.ts.map +1 -0
  143. package/dist/components/composites/subagent/subagent.js +138 -0
  144. package/dist/components/composites/subagent/subagent.js.map +1 -0
  145. package/dist/components/composites/suggestion/index.d.ts +2 -0
  146. package/dist/components/composites/suggestion/index.d.ts.map +1 -0
  147. package/dist/components/composites/suggestion/index.js +2 -0
  148. package/dist/components/composites/suggestion/suggestion.d.ts +37 -0
  149. package/dist/components/composites/suggestion/suggestion.d.ts.map +1 -0
  150. package/dist/components/composites/suggestion/suggestion.js +100 -0
  151. package/dist/components/composites/suggestion/suggestion.js.map +1 -0
  152. package/dist/components/composites/task/index.d.ts +2 -0
  153. package/dist/components/composites/task/index.d.ts.map +1 -0
  154. package/dist/components/composites/task/index.js +2 -0
  155. package/dist/components/composites/task/task.d.ts +96 -0
  156. package/dist/components/composites/task/task.d.ts.map +1 -0
  157. package/dist/components/composites/task/task.js +311 -0
  158. package/dist/components/composites/task/task.js.map +1 -0
  159. package/dist/components/composites/terminal/ansi.d.ts +101 -0
  160. package/dist/components/composites/terminal/ansi.d.ts.map +1 -0
  161. package/dist/components/composites/terminal/ansi.js +544 -0
  162. package/dist/components/composites/terminal/ansi.js.map +1 -0
  163. package/dist/components/composites/terminal/index.d.ts +4 -0
  164. package/dist/components/composites/terminal/index.d.ts.map +1 -0
  165. package/dist/components/composites/terminal/index.js +4 -0
  166. package/dist/components/composites/terminal/terminal-model.d.ts +63 -0
  167. package/dist/components/composites/terminal/terminal-model.d.ts.map +1 -0
  168. package/dist/components/composites/terminal/terminal-model.js +69 -0
  169. package/dist/components/composites/terminal/terminal-model.js.map +1 -0
  170. package/dist/components/composites/terminal/terminal.d.ts +88 -0
  171. package/dist/components/composites/terminal/terminal.d.ts.map +1 -0
  172. package/dist/components/composites/terminal/terminal.js +500 -0
  173. package/dist/components/composites/terminal/terminal.js.map +1 -0
  174. package/dist/components/composites/test-results/index.d.ts +3 -0
  175. package/dist/components/composites/test-results/index.d.ts.map +1 -0
  176. package/dist/components/composites/test-results/index.js +3 -0
  177. package/dist/components/composites/test-results/test-results-model.d.ts +154 -0
  178. package/dist/components/composites/test-results/test-results-model.d.ts.map +1 -0
  179. package/dist/components/composites/test-results/test-results-model.js +252 -0
  180. package/dist/components/composites/test-results/test-results-model.js.map +1 -0
  181. package/dist/components/composites/test-results/test-results.d.ts +60 -0
  182. package/dist/components/composites/test-results/test-results.d.ts.map +1 -0
  183. package/dist/components/composites/test-results/test-results.js +631 -0
  184. package/dist/components/composites/test-results/test-results.js.map +1 -0
  185. package/dist/components/composites/tool/format-tool-value.d.ts +37 -0
  186. package/dist/components/composites/tool/format-tool-value.d.ts.map +1 -0
  187. package/dist/components/composites/tool/format-tool-value.js +135 -0
  188. package/dist/components/composites/tool/format-tool-value.js.map +1 -0
  189. package/dist/components/composites/tool/index.d.ts +3 -0
  190. package/dist/components/composites/tool/index.d.ts.map +1 -0
  191. package/dist/components/composites/tool/index.js +3 -0
  192. package/dist/components/composites/tool/tool.d.ts +69 -0
  193. package/dist/components/composites/tool/tool.d.ts.map +1 -0
  194. package/dist/components/composites/tool/tool.js +214 -0
  195. package/dist/components/composites/tool/tool.js.map +1 -0
  196. package/dist/components/composites/update-dialog/update-dialog.js +1 -1
  197. package/dist/components/conversation/conversation-surface.d.ts +7 -0
  198. package/dist/components/conversation/conversation-surface.d.ts.map +1 -1
  199. package/dist/components/conversation/conversation-surface.js +2 -0
  200. package/dist/components/conversation/conversation-surface.js.map +1 -1
  201. package/dist/components/conversation/scroll-follow-core.d.ts +24 -0
  202. package/dist/components/conversation/scroll-follow-core.d.ts.map +1 -1
  203. package/dist/components/conversation/scroll-follow-core.js +23 -1
  204. package/dist/components/conversation/scroll-follow-core.js.map +1 -1
  205. package/dist/components/conversation/scroll-follow.d.ts +3 -0
  206. package/dist/components/conversation/scroll-follow.d.ts.map +1 -1
  207. package/dist/components/conversation/scroll-follow.js +80 -1
  208. package/dist/components/conversation/scroll-follow.js.map +1 -1
  209. package/dist/components/ui/attachment/attachment.d.ts +58 -0
  210. package/dist/components/ui/attachment/attachment.d.ts.map +1 -0
  211. package/dist/components/ui/attachment/attachment.js +279 -0
  212. package/dist/components/ui/attachment/attachment.js.map +1 -0
  213. package/dist/components/ui/attachment/index.d.ts +2 -0
  214. package/dist/components/ui/attachment/index.d.ts.map +1 -0
  215. package/dist/components/ui/attachment/index.js +2 -0
  216. package/dist/components/ui/badge/badge.d.ts +1 -1
  217. package/dist/components/ui/bubble/bubble.d.ts +33 -0
  218. package/dist/components/ui/bubble/bubble.d.ts.map +1 -0
  219. package/dist/components/ui/bubble/bubble.js +95 -0
  220. package/dist/components/ui/bubble/bubble.js.map +1 -0
  221. package/dist/components/ui/bubble/index.d.ts +2 -0
  222. package/dist/components/ui/bubble/index.d.ts.map +1 -0
  223. package/dist/components/ui/bubble/index.js +2 -0
  224. package/dist/components/ui/button/button.d.ts +1 -1
  225. package/dist/components/ui/code-block/code-block.d.ts +56 -3
  226. package/dist/components/ui/code-block/code-block.d.ts.map +1 -1
  227. package/dist/components/ui/code-block/code-block.js +231 -50
  228. package/dist/components/ui/code-block/code-block.js.map +1 -1
  229. package/dist/components/ui/code-block/index.d.ts +1 -1
  230. package/dist/components/ui/code-block/index.d.ts.map +1 -1
  231. package/dist/components/ui/code-block/index.js +2 -2
  232. package/dist/components/ui/field/number-field.d.ts +21 -4
  233. package/dist/components/ui/field/number-field.d.ts.map +1 -1
  234. package/dist/components/ui/field/number-field.js +22 -11
  235. package/dist/components/ui/field/number-field.js.map +1 -1
  236. package/dist/components/ui/marker/index.d.ts +2 -0
  237. package/dist/components/ui/marker/index.d.ts.map +1 -0
  238. package/dist/components/ui/marker/index.js +2 -0
  239. package/dist/components/ui/marker/marker.d.ts +35 -0
  240. package/dist/components/ui/marker/marker.d.ts.map +1 -0
  241. package/dist/components/ui/marker/marker.js +123 -0
  242. package/dist/components/ui/marker/marker.js.map +1 -0
  243. package/dist/components/ui/message/cite-ranges.d.ts +42 -0
  244. package/dist/components/ui/message/cite-ranges.d.ts.map +1 -0
  245. package/dist/components/ui/message/cite-ranges.js +105 -0
  246. package/dist/components/ui/message/cite-ranges.js.map +1 -0
  247. package/dist/components/ui/message/index.d.ts +4 -0
  248. package/dist/components/ui/message/index.d.ts.map +1 -0
  249. package/dist/components/ui/message/index.js +4 -0
  250. package/dist/components/ui/message/message.d.ts +95 -0
  251. package/dist/components/ui/message/message.d.ts.map +1 -0
  252. package/dist/components/ui/message/message.js +443 -0
  253. package/dist/components/ui/message/message.js.map +1 -0
  254. package/dist/components/ui/message/parse-message-text.d.ts +93 -0
  255. package/dist/components/ui/message/parse-message-text.d.ts.map +1 -0
  256. package/dist/components/ui/message/parse-message-text.js +365 -0
  257. package/dist/components/ui/message/parse-message-text.js.map +1 -0
  258. package/dist/components/ui/questionnaire/index.d.ts +2 -0
  259. package/dist/components/ui/questionnaire/index.d.ts.map +1 -0
  260. package/dist/components/ui/questionnaire/index.js +2 -0
  261. package/dist/components/ui/questionnaire/questionnaire.d.ts +83 -0
  262. package/dist/components/ui/questionnaire/questionnaire.d.ts.map +1 -0
  263. package/dist/components/ui/questionnaire/questionnaire.js +470 -0
  264. package/dist/components/ui/questionnaire/questionnaire.js.map +1 -0
  265. package/dist/components/ui/status-chip/status-chip.d.ts +1 -1
  266. package/dist/components/ui/switch/switch.js +11 -11
  267. package/dist/components/ui/switch/switch.js.map +1 -1
  268. package/dist/components/ui/trace/index.d.ts +2 -0
  269. package/dist/components/ui/trace/index.d.ts.map +1 -0
  270. package/dist/components/ui/trace/index.js +2 -0
  271. package/dist/components/ui/trace/trace.d.ts +72 -0
  272. package/dist/components/ui/trace/trace.d.ts.map +1 -0
  273. package/dist/components/ui/trace/trace.js +340 -0
  274. package/dist/components/ui/trace/trace.js.map +1 -0
  275. package/dist/index.d.ts +26 -0
  276. package/dist/index.d.ts.map +1 -1
  277. package/dist/index.js +46 -5
  278. package/dist/r/attachment.json +25 -0
  279. package/dist/r/bubble.json +22 -0
  280. package/dist/r/chain-of-thought.json +26 -0
  281. package/dist/r/chat.json +24 -0
  282. package/dist/r/checkpoint.json +35 -0
  283. package/dist/r/confirmation.json +34 -0
  284. package/dist/r/context.json +33 -0
  285. package/dist/r/file-tree.json +32 -0
  286. package/dist/r/inline-citation.json +35 -0
  287. package/dist/r/marker.json +22 -0
  288. package/dist/r/message-scroller.json +31 -0
  289. package/dist/r/message.json +33 -0
  290. package/dist/r/model-selector.json +34 -0
  291. package/dist/r/plan.json +26 -0
  292. package/dist/r/questionnaire.json +28 -0
  293. package/dist/r/queue.json +26 -0
  294. package/dist/r/reasoning.json +26 -0
  295. package/dist/r/registry.json +811 -52
  296. package/dist/r/sources.json +32 -0
  297. package/dist/r/src/components/composites/chain-of-thought/chain-of-thought.tsx +141 -0
  298. package/dist/r/src/components/composites/chain-of-thought/index.ts +11 -0
  299. package/dist/r/src/components/composites/chat/chat.tsx +190 -0
  300. package/dist/r/src/components/composites/chat/index.ts +11 -0
  301. package/dist/r/src/components/composites/checkpoint/checkpoint-model.ts +71 -0
  302. package/dist/r/src/components/composites/checkpoint/checkpoint.tsx +214 -0
  303. package/dist/r/src/components/composites/checkpoint/index.ts +8 -0
  304. package/dist/r/src/components/composites/confirmation/confirmation-model.ts +83 -0
  305. package/dist/r/src/components/composites/confirmation/confirmation.tsx +311 -0
  306. package/dist/r/src/components/composites/confirmation/index.ts +9 -0
  307. package/dist/r/src/components/composites/context/context-model.ts +168 -0
  308. package/dist/r/src/components/composites/context/context.tsx +187 -0
  309. package/dist/r/src/components/composites/context/index.ts +18 -0
  310. package/dist/r/src/components/composites/file-tree/build-file-tree.ts +456 -0
  311. package/dist/r/src/components/composites/file-tree/file-tree.tsx +405 -0
  312. package/dist/r/src/components/composites/file-tree/index.ts +25 -0
  313. package/dist/r/src/components/composites/inline-citation/citation.ts +78 -0
  314. package/dist/r/src/components/composites/inline-citation/index.ts +9 -0
  315. package/dist/r/src/components/composites/inline-citation/inline-citation.tsx +285 -0
  316. package/dist/r/src/components/composites/message-scroller/index.ts +2 -0
  317. package/dist/r/src/components/composites/message-scroller/message-scroller.tsx +301 -0
  318. package/dist/r/src/components/composites/message-scroller/scroll-anchor.ts +170 -0
  319. package/dist/r/src/components/composites/model-selector/index.ts +14 -0
  320. package/dist/r/src/components/composites/model-selector/model-selector.tsx +420 -0
  321. package/dist/r/src/components/composites/model-selector/models.ts +103 -0
  322. package/dist/r/src/components/composites/plan/index.ts +1 -0
  323. package/dist/r/src/components/composites/plan/plan.tsx +155 -0
  324. package/dist/r/src/components/composites/queue/index.ts +10 -0
  325. package/dist/r/src/components/composites/queue/queue.tsx +264 -0
  326. package/dist/r/src/components/composites/reasoning/index.ts +1 -0
  327. package/dist/r/src/components/composites/reasoning/reasoning.tsx +176 -0
  328. package/dist/r/src/components/composites/sources/index.ts +11 -0
  329. package/dist/r/src/components/composites/sources/source.ts +116 -0
  330. package/dist/r/src/components/composites/sources/sources.tsx +163 -0
  331. package/dist/r/src/components/composites/stack-trace/index.ts +19 -0
  332. package/dist/r/src/components/composites/stack-trace/parse-stack-trace.ts +507 -0
  333. package/dist/r/src/components/composites/stack-trace/stack-trace.tsx +395 -0
  334. package/dist/r/src/components/composites/subagent/index.ts +1 -0
  335. package/dist/r/src/components/composites/subagent/subagent.tsx +159 -0
  336. package/dist/r/src/components/composites/suggestion/index.ts +1 -0
  337. package/dist/r/src/components/composites/suggestion/suggestion.tsx +140 -0
  338. package/dist/r/src/components/composites/task/index.ts +14 -0
  339. package/dist/r/src/components/composites/task/task.tsx +317 -0
  340. package/dist/r/src/components/composites/terminal/ansi.ts +674 -0
  341. package/dist/r/src/components/composites/terminal/index.ts +20 -0
  342. package/dist/r/src/components/composites/terminal/terminal-model.ts +111 -0
  343. package/dist/r/src/components/composites/terminal/terminal.tsx +574 -0
  344. package/dist/r/src/components/composites/test-results/index.ts +20 -0
  345. package/dist/r/src/components/composites/test-results/test-results-model.ts +368 -0
  346. package/dist/r/src/components/composites/test-results/test-results.tsx +586 -0
  347. package/dist/r/src/components/composites/tool/format-tool-value.ts +221 -0
  348. package/dist/r/src/components/composites/tool/index.ts +2 -0
  349. package/dist/r/src/components/composites/tool/tool.tsx +228 -0
  350. package/dist/r/src/components/conversation/conversation-surface.tsx +9 -0
  351. package/dist/r/src/components/conversation/scroll-follow-core.ts +31 -0
  352. package/dist/r/src/components/conversation/scroll-follow.ts +92 -0
  353. package/dist/r/src/components/ui/attachment/attachment.tsx +282 -0
  354. package/dist/r/src/components/ui/attachment/index.ts +10 -0
  355. package/dist/r/src/components/ui/bubble/bubble.tsx +86 -0
  356. package/dist/r/src/components/ui/bubble/index.ts +1 -0
  357. package/dist/r/src/components/ui/code-block/code-block.tsx +256 -26
  358. package/dist/r/src/components/ui/code-block/index.ts +9 -1
  359. package/dist/r/src/components/ui/field/number-field.tsx +51 -14
  360. package/dist/r/src/components/ui/marker/index.ts +1 -0
  361. package/dist/r/src/components/ui/marker/marker.tsx +90 -0
  362. package/dist/r/src/components/ui/message/cite-ranges.ts +144 -0
  363. package/dist/r/src/components/ui/message/index.ts +23 -0
  364. package/dist/r/src/components/ui/message/message.tsx +434 -0
  365. package/dist/r/src/components/ui/message/parse-message-text.ts +450 -0
  366. package/dist/r/src/components/ui/questionnaire/index.ts +10 -0
  367. package/dist/r/src/components/ui/questionnaire/questionnaire.tsx +446 -0
  368. package/dist/r/src/components/ui/trace/index.ts +9 -0
  369. package/dist/r/src/components/ui/trace/trace.tsx +334 -0
  370. package/dist/r/src/styles/base.css +34 -0
  371. package/dist/r/stack-trace.json +32 -0
  372. package/dist/r/subagent.json +27 -0
  373. package/dist/r/suggestion.json +24 -0
  374. package/dist/r/task.json +28 -0
  375. package/dist/r/terminal.json +35 -0
  376. package/dist/r/test-results.json +33 -0
  377. package/dist/r/tool.json +31 -0
  378. package/dist/r/trace.json +25 -0
  379. package/package.json +6 -3
  380. package/registry.json +811 -52
  381. package/src/components/composites/chain-of-thought/chain-of-thought.tsx +141 -0
  382. package/src/components/composites/chain-of-thought/index.ts +11 -0
  383. package/src/components/composites/chat/chat.tsx +190 -0
  384. package/src/components/composites/chat/index.ts +11 -0
  385. package/src/components/composites/checkpoint/checkpoint-model.ts +71 -0
  386. package/src/components/composites/checkpoint/checkpoint.tsx +214 -0
  387. package/src/components/composites/checkpoint/index.ts +8 -0
  388. package/src/components/composites/confirmation/confirmation-model.ts +83 -0
  389. package/src/components/composites/confirmation/confirmation.tsx +311 -0
  390. package/src/components/composites/confirmation/index.ts +9 -0
  391. package/src/components/composites/context/context-model.ts +168 -0
  392. package/src/components/composites/context/context.tsx +187 -0
  393. package/src/components/composites/context/index.ts +18 -0
  394. package/src/components/composites/file-tree/build-file-tree.ts +456 -0
  395. package/src/components/composites/file-tree/file-tree.tsx +405 -0
  396. package/src/components/composites/file-tree/index.ts +25 -0
  397. package/src/components/composites/inline-citation/citation.ts +78 -0
  398. package/src/components/composites/inline-citation/index.ts +9 -0
  399. package/src/components/composites/inline-citation/inline-citation.tsx +285 -0
  400. package/src/components/composites/message-scroller/index.ts +2 -0
  401. package/src/components/composites/message-scroller/message-scroller.tsx +301 -0
  402. package/src/components/composites/message-scroller/scroll-anchor.ts +170 -0
  403. package/src/components/composites/model-selector/index.ts +14 -0
  404. package/src/components/composites/model-selector/model-selector.tsx +420 -0
  405. package/src/components/composites/model-selector/models.ts +103 -0
  406. package/src/components/composites/plan/index.ts +1 -0
  407. package/src/components/composites/plan/plan.tsx +155 -0
  408. package/src/components/composites/queue/index.ts +10 -0
  409. package/src/components/composites/queue/queue.tsx +264 -0
  410. package/src/components/composites/reasoning/index.ts +1 -0
  411. package/src/components/composites/reasoning/reasoning.tsx +176 -0
  412. package/src/components/composites/sources/index.ts +11 -0
  413. package/src/components/composites/sources/source.ts +116 -0
  414. package/src/components/composites/sources/sources.tsx +163 -0
  415. package/src/components/composites/stack-trace/index.ts +19 -0
  416. package/src/components/composites/stack-trace/parse-stack-trace.ts +507 -0
  417. package/src/components/composites/stack-trace/stack-trace.tsx +395 -0
  418. package/src/components/composites/subagent/index.ts +1 -0
  419. package/src/components/composites/subagent/subagent.tsx +159 -0
  420. package/src/components/composites/suggestion/index.ts +1 -0
  421. package/src/components/composites/suggestion/suggestion.tsx +140 -0
  422. package/src/components/composites/task/index.ts +14 -0
  423. package/src/components/composites/task/task.tsx +317 -0
  424. package/src/components/composites/terminal/ansi.ts +674 -0
  425. package/src/components/composites/terminal/index.ts +20 -0
  426. package/src/components/composites/terminal/terminal-model.ts +111 -0
  427. package/src/components/composites/terminal/terminal.tsx +574 -0
  428. package/src/components/composites/test-results/index.ts +20 -0
  429. package/src/components/composites/test-results/test-results-model.ts +368 -0
  430. package/src/components/composites/test-results/test-results.tsx +586 -0
  431. package/src/components/composites/tool/format-tool-value.ts +221 -0
  432. package/src/components/composites/tool/index.ts +2 -0
  433. package/src/components/composites/tool/tool.tsx +228 -0
  434. package/src/components/conversation/conversation-surface.tsx +9 -0
  435. package/src/components/conversation/scroll-follow-core.ts +31 -0
  436. package/src/components/conversation/scroll-follow.ts +92 -0
  437. package/src/components/ui/attachment/attachment.tsx +282 -0
  438. package/src/components/ui/attachment/index.ts +10 -0
  439. package/src/components/ui/bubble/bubble.tsx +86 -0
  440. package/src/components/ui/bubble/index.ts +1 -0
  441. package/src/components/ui/code-block/code-block.tsx +256 -26
  442. package/src/components/ui/code-block/index.ts +9 -1
  443. package/src/components/ui/field/number-field.tsx +51 -14
  444. package/src/components/ui/marker/index.ts +1 -0
  445. package/src/components/ui/marker/marker.tsx +90 -0
  446. package/src/components/ui/message/cite-ranges.ts +144 -0
  447. package/src/components/ui/message/index.ts +23 -0
  448. package/src/components/ui/message/message.tsx +434 -0
  449. package/src/components/ui/message/parse-message-text.ts +450 -0
  450. package/src/components/ui/questionnaire/index.ts +10 -0
  451. package/src/components/ui/questionnaire/questionnaire.tsx +446 -0
  452. package/src/components/ui/trace/index.ts +9 -0
  453. package/src/components/ui/trace/trace.tsx +334 -0
  454. package/src/index.ts +26 -0
  455. package/src/styles/base.css +34 -0
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","names":["Switch","KobalteSwitch","ComponentProps","JSX","splitProps","useFormFieldControl","cn","SwitchProps","Omit","inputId","controlClass","thumbClass","labelClass","descriptionClass","label","Element","description","children","props","local","rest","field","id","_$createComponent","_$mergeProps","undefined","title","class","Input","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-errormessage","aria-busy","Control","Thumb","_$memo","_el$","_tmpl$","_$insert","_c$","Label","_c$2","Description","SwitchLabel","SwitchDescription","Switch","_$createComponent","KobalteSwitch","_$mergeProps","_$memo"],"sources":["../../../../src/components/ui/switch/switch.tsx"],"sourcesContent":["import { Switch as KobalteSwitch } from '@kobalte/core/switch'\nimport type { ComponentProps, JSX } from 'solid-js'\nimport { splitProps } from 'solid-js'\nimport { useFormFieldControl } from '#lib/form-field'\nimport { cn } from '#lib/utils'\n\n/**\n * Switch.\n *\n * For a setting that takes effect the moment it is flipped. The distinction\n * from Checkbox is behaviour, not looks: a switch applies immediately and\n * belongs in a settings row, while a checkbox is a value the user is still\n * composing and is applied when a form is submitted. A switch inside an unsaved\n * form is the mistake this split exists to prevent.\n *\n * `Switch.Input` renders a real hidden checkbox, so the control is\n * form-native, keyboard-operable, and its `aria-checked` follows the state the\n * user sees.\n */\nexport type SwitchProps = Omit<ComponentProps<typeof KobalteSwitch>, 'children'> & {\n /** ID for the hidden native switch input; useful with an external label. */\n inputId?: string\n controlClass?: string\n thumbClass?: string\n labelClass?: string\n descriptionClass?: string\n label?: JSX.Element\n description?: JSX.Element\n /**\n * Replaces the control and label. Omit it to get the default control beside\n * `label` and `description`; supply it to compose the parts yourself.\n */\n children?: JSX.Element\n}\n\nexport function Switch(props: SwitchProps) {\n const [local, rest] = splitProps(props, [\n 'class',\n 'controlClass',\n 'thumbClass',\n 'labelClass',\n 'descriptionClass',\n 'children',\n 'label',\n 'description',\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-invalid',\n 'aria-errormessage',\n 'aria-busy',\n 'id',\n 'inputId',\n 'title',\n ])\n const field = useFormFieldControl('control', {\n id: local.inputId ?? local.id,\n 'aria-label': local['aria-label'],\n 'aria-labelledby': local['aria-labelledby'],\n 'aria-describedby': local['aria-describedby'],\n 'aria-invalid': local['aria-invalid'],\n 'aria-errormessage': local['aria-errormessage'],\n })\n\n return (\n <KobalteSwitch\n data-slot=\"switch\"\n id={field ? undefined : local.id}\n title={local.title}\n class={cn('group/switch flex items-center gap-2.5', local.class)}\n {...rest}\n >\n {/* The name belongs on the input; see Checkbox for why. */}\n <KobalteSwitch.Input\n id={field?.id ?? local.inputId}\n aria-label={local['aria-label']}\n aria-labelledby={field?.['aria-labelledby'] ?? local['aria-labelledby']}\n aria-describedby={field?.['aria-describedby'] ?? local['aria-describedby']}\n aria-invalid={field?.['aria-invalid'] ?? local['aria-invalid']}\n aria-errormessage={field?.['aria-errormessage'] ?? local['aria-errormessage']}\n aria-busy={local['aria-busy']}\n title={local.title}\n />\n <KobalteSwitch.Control\n class={cn(\n 'bg-input inline-flex h-5 w-9 shrink-0 items-center rounded-full border border-transparent',\n 'transition-colors ease-out outline-none',\n 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',\n 'data-[checked]:bg-primary',\n 'data-[invalid]:border-destructive',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50',\n local.controlClass\n )}\n >\n <KobalteSwitch.Thumb\n class={cn(\n 'bg-background pointer-events-none block size-4 rounded-full shadow-xs',\n 'transition-transform ease-out',\n 'data-[checked]:translate-x-4',\n local.thumbClass\n )}\n />\n </KobalteSwitch.Control>\n {local.children ??\n (local.label || local.description ? (\n <div class=\"grid gap-0.5\">\n {local.label ? (\n <KobalteSwitch.Label class={cn('text-sm leading-none font-medium', local.labelClass)}>\n {local.label}\n </KobalteSwitch.Label>\n ) : null}\n {local.description ? (\n <KobalteSwitch.Description\n class={cn('text-muted-foreground text-sm', local.descriptionClass)}\n >\n {local.description}\n </KobalteSwitch.Description>\n ) : null}\n </div>\n ) : null)}\n </KobalteSwitch>\n )\n}\n\n/**\n * The switch's own label. Valid only inside a `<Switch>`: it is Kobalte's label\n * for that root's control, and outside one there is nothing to associate with.\n * A label drawn *beside* a switch — a settings row with the control trailing —\n * is plain text, and the switch takes an `aria-label` instead.\n */\nexport function SwitchLabel(props: ComponentProps<typeof KobalteSwitch.Label>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteSwitch.Label class={cn('text-sm leading-none font-medium', local.class)} {...rest} />\n )\n}\n\nexport function SwitchDescription(props: ComponentProps<typeof KobalteSwitch.Description>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteSwitch.Description class={cn('text-muted-foreground text-sm', local.class)} {...rest} />\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"switch.js","names":["Switch","KobalteSwitch","ComponentProps","JSX","splitProps","useFormFieldControl","cn","SwitchProps","Omit","inputId","controlClass","thumbClass","labelClass","descriptionClass","label","Element","description","children","props","local","rest","field","id","_$createComponent","_$mergeProps","undefined","title","class","Input","aria-label","aria-labelledby","aria-describedby","aria-invalid","aria-errormessage","aria-busy","Control","Thumb","_$memo","_el$","_tmpl$","_$insert","_c$","Label","_c$2","Description","SwitchLabel","SwitchDescription","Switch","_$createComponent","KobalteSwitch","_$mergeProps","_$memo"],"sources":["../../../../src/components/ui/switch/switch.tsx"],"sourcesContent":["import { Switch as KobalteSwitch } from '@kobalte/core/switch'\nimport type { ComponentProps, JSX } from 'solid-js'\nimport { splitProps } from 'solid-js'\nimport { useFormFieldControl } from '#lib/form-field'\nimport { cn } from '#lib/utils'\n\n/**\n * Switch.\n *\n * For a setting that takes effect the moment it is flipped. The distinction\n * from Checkbox is behaviour, not looks: a switch applies immediately and\n * belongs in a settings row, while a checkbox is a value the user is still\n * composing and is applied when a form is submitted. A switch inside an unsaved\n * form is the mistake this split exists to prevent.\n *\n * `Switch.Input` renders a real hidden checkbox, so the control is\n * form-native, keyboard-operable, and its `aria-checked` follows the state the\n * user sees.\n */\nexport type SwitchProps = Omit<ComponentProps<typeof KobalteSwitch>, 'children'> & {\n /** ID for the hidden native switch input; useful with an external label. */\n inputId?: string\n controlClass?: string\n thumbClass?: string\n labelClass?: string\n descriptionClass?: string\n label?: JSX.Element\n description?: JSX.Element\n /**\n * Replaces the control and label. Omit it to get the default control beside\n * `label` and `description`; supply it to compose the parts yourself.\n */\n children?: JSX.Element\n}\n\nexport function Switch(props: SwitchProps) {\n const [local, rest] = splitProps(props, [\n 'class',\n 'controlClass',\n 'thumbClass',\n 'labelClass',\n 'descriptionClass',\n 'children',\n 'label',\n 'description',\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-invalid',\n 'aria-errormessage',\n 'aria-busy',\n 'id',\n 'inputId',\n 'title',\n ])\n const field = useFormFieldControl('control', {\n id: local.inputId ?? local.id,\n 'aria-label': local['aria-label'],\n 'aria-labelledby': local['aria-labelledby'],\n 'aria-describedby': local['aria-describedby'],\n 'aria-invalid': local['aria-invalid'],\n 'aria-errormessage': local['aria-errormessage'],\n })\n\n return (\n <KobalteSwitch\n data-slot=\"switch\"\n id={field ? undefined : local.id}\n title={local.title}\n class={cn('group/switch flex items-center gap-2.5', local.class)}\n {...rest}\n >\n {/* The name belongs on the input; see Checkbox for why. */}\n <KobalteSwitch.Input\n id={field?.id ?? local.inputId}\n aria-label={local['aria-label']}\n aria-labelledby={field?.['aria-labelledby'] ?? local['aria-labelledby']}\n aria-describedby={field?.['aria-describedby'] ?? local['aria-describedby']}\n aria-invalid={field?.['aria-invalid'] ?? local['aria-invalid']}\n aria-errormessage={field?.['aria-errormessage'] ?? local['aria-errormessage']}\n aria-busy={local['aria-busy']}\n title={local.title}\n />\n <KobalteSwitch.Control\n class={cn(\n 'bg-input inline-flex h-5 w-9 shrink-0 items-center rounded-full border border-transparent',\n 'transition-colors ease-out outline-none',\n 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',\n 'data-[checked]:bg-primary',\n 'data-[invalid]:border-destructive',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50',\n local.controlClass\n )}\n >\n <KobalteSwitch.Thumb\n class={cn(\n 'bg-background pointer-events-none block size-4 rounded-full shadow-xs',\n 'transition-transform ease-out',\n 'data-[checked]:translate-x-4',\n local.thumbClass\n )}\n />\n </KobalteSwitch.Control>\n {local.children ??\n (local.label || local.description ? (\n <div class=\"grid gap-0.5\">\n {local.label ? (\n <KobalteSwitch.Label class={cn('text-sm leading-none font-medium', local.labelClass)}>\n {local.label}\n </KobalteSwitch.Label>\n ) : null}\n {local.description ? (\n <KobalteSwitch.Description\n class={cn('text-muted-foreground text-sm', local.descriptionClass)}\n >\n {local.description}\n </KobalteSwitch.Description>\n ) : null}\n </div>\n ) : null)}\n </KobalteSwitch>\n )\n}\n\n/**\n * The switch's own label. Valid only inside a `<Switch>`: it is Kobalte's label\n * for that root's control, and outside one there is nothing to associate with.\n * A label drawn *beside* a switch — a settings row with the control trailing —\n * is plain text, and the switch takes an `aria-label` instead.\n */\nexport function SwitchLabel(props: ComponentProps<typeof KobalteSwitch.Label>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteSwitch.Label class={cn('text-sm leading-none font-medium', local.class)} {...rest} />\n )\n}\n\nexport function SwitchDescription(props: ComponentProps<typeof KobalteSwitch.Description>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteSwitch.Description class={cn('text-muted-foreground text-sm', local.class)} {...rest} />\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { Trace, TraceDetail, TraceLine, TRACE_STATUS_LABELS, type TraceLineProps, type TraceProps, type TraceStatus, } from './trace';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/trace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { TRACE_STATUS_LABELS, Trace, TraceDetail, TraceLine } from "./trace.js";
2
+ export { TRACE_STATUS_LABELS, Trace, TraceDetail, TraceLine };
@@ -0,0 +1,72 @@
1
+ import { type ComponentProps, type JSX } from 'solid-js';
2
+ /**
3
+ * Trace.
4
+ *
5
+ * A list of lines, one per thing an agent did. Reasoning, a tool call, a source
6
+ * it read, a plan step and a whole subagent run all share one shape — *something
7
+ * the agent did, and what happened* — so they share one row: a leading mark, a
8
+ * title, an optional description, a status and, when there is more to say, a
9
+ * disclosure. A transcript built from this reads as one quiet column of activity
10
+ * under the answer instead of a stack of competing cards.
11
+ *
12
+ * ## One row, three behaviours
13
+ *
14
+ * - **Children** make the line expandable. The trigger is a real button with
15
+ * `aria-expanded`, so keyboard and screen-reader users get the disclosure for
16
+ * free. Children can themselves be a `Trace`, which is how a summary expands
17
+ * into steps and a step into its output.
18
+ * - **`href`** makes the line a link — a source, a file, a run page.
19
+ * - **`onSelect`** makes the line a button that opens something *else* (a dialog,
20
+ * sheet, drawer or popover owned by the caller). The line says so with
21
+ * `aria-haspopup`; the surface itself is not this component's business.
22
+ * - None of the three: a static line. It is not focusable, because a control that
23
+ * does nothing is a tab stop with no purpose.
24
+ *
25
+ * ## Status is a claim, so it is optional
26
+ *
27
+ * `status` is rendered only when the caller has it. A line without one makes no
28
+ * statement about success, which matters for runtime events whose lifecycle the
29
+ * producer has not told us: showing a tick on an event that merely *arrived* is
30
+ * a small lie that accumulates. `running` shimmers the title and spins the mark,
31
+ * both of which stop under reduced motion; `error` and `cancelled` change the
32
+ * mark's shape as well as its colour; every status is also spoken (`sr-only`),
33
+ * because a coloured dot alone fails anyone who cannot see it.
34
+ */
35
+ export type TraceStatus = 'pending' | 'running' | 'success' | 'error' | 'cancelled';
36
+ /** The words spoken for each status. Override per line for another language. */
37
+ export declare const TRACE_STATUS_LABELS: Readonly<Record<TraceStatus, string>>;
38
+ export type TraceProps = ComponentProps<'ul'> & {
39
+ /** Tighter rows, for output nested inside another line. */
40
+ size?: 'default' | 'sm';
41
+ };
42
+ export declare function Trace(props: TraceProps): JSX.Element;
43
+ export type TraceLineProps = Omit<ComponentProps<'li'>, 'title' | 'onSelect'> & {
44
+ title: JSX.Element;
45
+ description?: JSX.Element;
46
+ /** The line's own glyph. A `running`, `error`, `pending` or `cancelled` status replaces it. */
47
+ icon?: JSX.Element;
48
+ status?: TraceStatus;
49
+ /** Spoken in place of the default status word. */
50
+ statusLabel?: string;
51
+ /** Trailing text: a duration, a count, a file size. */
52
+ meta?: JSX.Element;
53
+ open?: boolean;
54
+ defaultOpen?: boolean;
55
+ onOpenChange?: (open: boolean) => void;
56
+ /** Make the line a link. Mutually exclusive with children and `onSelect`. */
57
+ href?: string;
58
+ /** Make the line open a surface the caller owns. */
59
+ onSelect?: () => void;
60
+ /** Which kind of surface `onSelect` opens, for assistive technology. */
61
+ selectHaspopup?: 'dialog' | 'menu' | 'true';
62
+ /** Details. Their presence makes the line expandable. */
63
+ children?: JSX.Element;
64
+ };
65
+ export declare function TraceLine(props: TraceLineProps): JSX.Element;
66
+ /**
67
+ * Free-form detail inside an expanded line: an input, an output, a paragraph. It
68
+ * is a plain block with the type scale already set, so a caller does not restyle
69
+ * a line's children to make a paragraph fit.
70
+ */
71
+ export declare function TraceDetail(props: ComponentProps<'div'>): JSX.Element;
72
+ //# sourceMappingURL=trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/trace/trace.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAgC,KAAK,cAAc,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAA;AAGtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;AAEnF,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAMrE,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG;IAC9C,2DAA2D;IAC3D,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CACxB,CAAA;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,eActC;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,GAAG;IAC9E,KAAK,EAAE,GAAG,CAAC,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACzB,+FAA+F;IAC/F,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uDAAuD;IACvD,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,wEAAwE;IACxE,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;IAC3C,yDAAyD;IACzD,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB,CAAA;AA+GD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,eAwG9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,eAWvD"}
@@ -0,0 +1,340 @@
1
+ import { cn } from "../../../lib/utils.js";
2
+ import { className, createComponent, delegateEvents, effect, insert, memo, mergeProps, setAttribute, spread, template } from "solid-js/web";
3
+ import { Check, ChevronRight, CircleAlert, CircleDashed, CircleSlash, Dot, ExternalLink, LoaderCircle } from "lucide-solid";
4
+ import { Show, createMemo, splitProps } from "solid-js";
5
+ import { Collapsible } from "@kobalte/core/collapsible";
6
+ //#region src/components/ui/trace/trace.tsx
7
+ var _tmpl$ = /*#__PURE__*/ template(`<ul role=list data-slot=trace>`);
8
+ var _tmpl$2 = /*#__PURE__*/ template(`<span data-slot=trace-mark aria-hidden=true>`);
9
+ var _tmpl$3 = /*#__PURE__*/ template(`<span data-slot=trace-description class="min-w-0 truncate text-xs text-muted-foreground">`);
10
+ var _tmpl$4 = /*#__PURE__*/ template(`<span class="flex min-w-0 flex-1 items-baseline gap-2"><span data-slot=trace-title>`);
11
+ var _tmpl$5 = /*#__PURE__*/ template(`<span data-slot=trace-meta class="shrink-0 text-xs text-muted-foreground tabular-nums">`);
12
+ var _tmpl$6 = /*#__PURE__*/ template(`<span class=sr-only>`);
13
+ var _tmpl$7 = /*#__PURE__*/ template(`<div class="ms-[0.6875rem] mt-0.5 mb-1 flex min-w-0 flex-col gap-1 border-s border-border ps-3">`);
14
+ var _tmpl$8 = /*#__PURE__*/ template(`<li data-slot=trace-line>`);
15
+ var _tmpl$9 = /*#__PURE__*/ template(`<a target=_blank rel="noreferrer noopener">`);
16
+ var _tmpl$0 = /*#__PURE__*/ template(`<button type=button>`);
17
+ var _tmpl$1 = /*#__PURE__*/ template(`<div class="flex min-h-control-xs w-full min-w-0 items-center gap-2 rounded-md px-1.5 py-0.5 text-start outline-none">`);
18
+ var _tmpl$10 = /*#__PURE__*/ template(`<div data-slot=trace-detail>`);
19
+ /** The words spoken for each status. Override per line for another language. */
20
+ var TRACE_STATUS_LABELS = {
21
+ pending: "Pending",
22
+ running: "Running",
23
+ success: "Completed",
24
+ error: "Failed",
25
+ cancelled: "Cancelled"
26
+ };
27
+ function Trace(props) {
28
+ const [local, rest] = splitProps(props, [
29
+ "class",
30
+ "size",
31
+ "children"
32
+ ]);
33
+ return (() => {
34
+ var _el$ = _tmpl$();
35
+ spread(_el$, mergeProps({
36
+ get ["data-size"]() {
37
+ return local.size ?? "default";
38
+ },
39
+ get ["class"]() {
40
+ return cn("m-0 flex min-w-0 list-none flex-col gap-px p-0", local.class);
41
+ }
42
+ }, rest), false, true);
43
+ insert(_el$, () => local.children);
44
+ return _el$;
45
+ })();
46
+ }
47
+ function StatusMark(props) {
48
+ return (() => {
49
+ var _el$2 = _tmpl$2();
50
+ insert(_el$2, createComponent(Show, {
51
+ get when() {
52
+ return props.status === "running";
53
+ },
54
+ get fallback() {
55
+ return createComponent(Show, {
56
+ get when() {
57
+ return props.status === "error";
58
+ },
59
+ get fallback() {
60
+ return createComponent(Show, {
61
+ get when() {
62
+ return props.status === "cancelled";
63
+ },
64
+ get fallback() {
65
+ return createComponent(Show, {
66
+ get when() {
67
+ return props.status === "pending";
68
+ },
69
+ get fallback() {
70
+ return props.icon ?? (props.completed ? createComponent(Check, {}) : createComponent(Dot, {}));
71
+ },
72
+ get children() {
73
+ return createComponent(CircleDashed, {});
74
+ }
75
+ });
76
+ },
77
+ get children() {
78
+ return createComponent(CircleSlash, {});
79
+ }
80
+ });
81
+ },
82
+ get children() {
83
+ return createComponent(CircleAlert, {});
84
+ }
85
+ });
86
+ },
87
+ get children() {
88
+ return createComponent(LoaderCircle, { "class": "motion-safe:animate-spin" });
89
+ }
90
+ }));
91
+ effect(() => className(_el$2, cn("grid size-4 shrink-0 place-items-center [&_svg]:size-3.5", {
92
+ "text-muted-foreground": props.status !== "error" && props.status !== "running",
93
+ "text-destructive": props.status === "error",
94
+ "text-info": props.status === "running"
95
+ })));
96
+ return _el$2;
97
+ })();
98
+ }
99
+ /**
100
+ * Whether the status takes over the mark. A completed line keeps its own glyph
101
+ * (the tool, the file) because "done" is the default expectation and a column of
102
+ * identical ticks says nothing; the states that need noticing replace it.
103
+ */
104
+ function statusOwnsMark(status) {
105
+ return status === "running" || status === "error" || status === "pending" || status === "cancelled";
106
+ }
107
+ function LineHead(props) {
108
+ return [
109
+ createComponent(StatusMark, {
110
+ get status() {
111
+ return memo(() => !!statusOwnsMark(props.status))() ? props.status : void 0;
112
+ },
113
+ get icon() {
114
+ return props.icon;
115
+ },
116
+ get completed() {
117
+ return props.status === "success";
118
+ }
119
+ }),
120
+ (() => {
121
+ var _el$3 = _tmpl$4(), _el$4 = _el$3.firstChild;
122
+ insert(_el$4, () => props.title);
123
+ insert(_el$3, createComponent(Show, {
124
+ get when() {
125
+ return props.description;
126
+ },
127
+ get children() {
128
+ var _el$5 = _tmpl$3();
129
+ insert(_el$5, () => props.description);
130
+ return _el$5;
131
+ }
132
+ }), null);
133
+ effect(() => className(_el$4, cn("truncate text-sm", {
134
+ "text-shimmer": props.status === "running",
135
+ "text-destructive": props.status === "error",
136
+ "text-muted-foreground": props.status !== "running" && props.status !== "error"
137
+ })));
138
+ return _el$3;
139
+ })(),
140
+ createComponent(Show, {
141
+ get when() {
142
+ return props.status;
143
+ },
144
+ children: (status) => (() => {
145
+ var _el$7 = _tmpl$6();
146
+ insert(_el$7, () => props.statusLabel ?? TRACE_STATUS_LABELS[status()]);
147
+ return _el$7;
148
+ })()
149
+ }),
150
+ createComponent(Show, {
151
+ get when() {
152
+ return props.meta;
153
+ },
154
+ get children() {
155
+ var _el$6 = _tmpl$5();
156
+ insert(_el$6, () => props.meta);
157
+ return _el$6;
158
+ }
159
+ }),
160
+ memo(() => props.trailing)
161
+ ];
162
+ }
163
+ var lineClass = "flex min-h-control-xs w-full min-w-0 items-center gap-2 rounded-md px-1.5 py-0.5 text-start outline-none";
164
+ var interactiveClass = "cursor-pointer transition-colors ease-out hover:bg-muted/60 focus-visible:ring-3 focus-visible:ring-primary-subtle focus-visible:border-ring";
165
+ function TraceLine(props) {
166
+ const [local, rest] = splitProps(props, [
167
+ "class",
168
+ "title",
169
+ "description",
170
+ "icon",
171
+ "status",
172
+ "statusLabel",
173
+ "meta",
174
+ "open",
175
+ "defaultOpen",
176
+ "onOpenChange",
177
+ "href",
178
+ "onSelect",
179
+ "selectHaspopup",
180
+ "children"
181
+ ]);
182
+ const content = createMemo(() => local.children);
183
+ const head = (trailing) => createComponent(LineHead, {
184
+ get title() {
185
+ return local.title;
186
+ },
187
+ get description() {
188
+ return local.description;
189
+ },
190
+ get icon() {
191
+ return local.icon;
192
+ },
193
+ get status() {
194
+ return local.status;
195
+ },
196
+ get statusLabel() {
197
+ return local.statusLabel;
198
+ },
199
+ get meta() {
200
+ return local.meta;
201
+ },
202
+ trailing
203
+ });
204
+ return (() => {
205
+ var _el$8 = _tmpl$8();
206
+ spread(_el$8, mergeProps({
207
+ get ["data-status"]() {
208
+ return local.status;
209
+ },
210
+ get ["aria-busy"]() {
211
+ return local.status === "running" || void 0;
212
+ },
213
+ get ["class"]() {
214
+ return cn("min-w-0", local.class);
215
+ }
216
+ }, rest), false, true);
217
+ insert(_el$8, createComponent(Show, {
218
+ get when() {
219
+ return local.href === void 0;
220
+ },
221
+ get fallback() {
222
+ return (() => {
223
+ var _el$0 = _tmpl$9();
224
+ insert(_el$0, () => head(createComponent(ExternalLink, {
225
+ "aria-hidden": "true",
226
+ "class": "size-3 shrink-0 text-muted-foreground"
227
+ })));
228
+ effect((_p$) => {
229
+ var _v$ = local.href, _v$2 = cn(lineClass, interactiveClass);
230
+ _v$ !== _p$.e && setAttribute(_el$0, "href", _p$.e = _v$);
231
+ _v$2 !== _p$.t && className(_el$0, _p$.t = _v$2);
232
+ return _p$;
233
+ }, {
234
+ e: void 0,
235
+ t: void 0
236
+ });
237
+ return _el$0;
238
+ })();
239
+ },
240
+ get children() {
241
+ return createComponent(Show, {
242
+ get when() {
243
+ return local.onSelect === void 0;
244
+ },
245
+ get fallback() {
246
+ return (() => {
247
+ var _el$1 = _tmpl$0();
248
+ _el$1.$$click = () => local.onSelect?.();
249
+ insert(_el$1, () => head(createComponent(ChevronRight, {
250
+ "aria-hidden": "true",
251
+ "class": "size-3.5 shrink-0 text-muted-foreground"
252
+ })));
253
+ effect((_p$) => {
254
+ var _v$3 = local.selectHaspopup ?? "dialog", _v$4 = cn(lineClass, interactiveClass);
255
+ _v$3 !== _p$.e && setAttribute(_el$1, "aria-haspopup", _p$.e = _v$3);
256
+ _v$4 !== _p$.t && className(_el$1, _p$.t = _v$4);
257
+ return _p$;
258
+ }, {
259
+ e: void 0,
260
+ t: void 0
261
+ });
262
+ return _el$1;
263
+ })();
264
+ },
265
+ get children() {
266
+ return createComponent(Show, {
267
+ get when() {
268
+ return content();
269
+ },
270
+ get fallback() {
271
+ return (() => {
272
+ var _el$10 = _tmpl$1();
273
+ insert(_el$10, head);
274
+ return _el$10;
275
+ })();
276
+ },
277
+ get children() {
278
+ return createComponent(Collapsible, {
279
+ get open() {
280
+ return local.open;
281
+ },
282
+ get defaultOpen() {
283
+ return local.defaultOpen;
284
+ },
285
+ get onOpenChange() {
286
+ return local.onOpenChange;
287
+ },
288
+ "class": "group/trace",
289
+ get children() {
290
+ return [createComponent(Collapsible.Trigger, {
291
+ get ["class"]() {
292
+ return cn(lineClass, interactiveClass);
293
+ },
294
+ get children() {
295
+ return head(createComponent(ChevronRight, {
296
+ "aria-hidden": "true",
297
+ "class": "size-3.5 shrink-0 text-muted-foreground transition-transform ease-out group-data-[expanded]/trace:rotate-90"
298
+ }));
299
+ }
300
+ }), createComponent(Collapsible.Content, {
301
+ "data-slot": "trace-content",
302
+ "class": "overflow-hidden data-[expanded]:animate-in data-[expanded]:fade-in-0",
303
+ get children() {
304
+ var _el$9 = _tmpl$7();
305
+ insert(_el$9, content);
306
+ return _el$9;
307
+ }
308
+ })];
309
+ }
310
+ });
311
+ }
312
+ });
313
+ }
314
+ });
315
+ }
316
+ }));
317
+ return _el$8;
318
+ })();
319
+ }
320
+ /**
321
+ * Free-form detail inside an expanded line: an input, an output, a paragraph. It
322
+ * is a plain block with the type scale already set, so a caller does not restyle
323
+ * a line's children to make a paragraph fit.
324
+ */
325
+ function TraceDetail(props) {
326
+ const [local, rest] = splitProps(props, ["class", "children"]);
327
+ return (() => {
328
+ var _el$11 = _tmpl$10();
329
+ spread(_el$11, mergeProps({ get ["class"]() {
330
+ return cn("min-w-0 text-xs leading-5 text-muted-foreground", local.class);
331
+ } }, rest), false, true);
332
+ insert(_el$11, () => local.children);
333
+ return _el$11;
334
+ })();
335
+ }
336
+ delegateEvents(["click"]);
337
+ //#endregion
338
+ export { TRACE_STATUS_LABELS, Trace, TraceDetail, TraceLine };
339
+
340
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","names":["Collapsible","KobalteCollapsible","Check","ChevronRight","CircleAlert","CircleDashed","CircleSlash","Dot","ExternalLink","LoaderCircle","createMemo","Show","splitProps","ComponentProps","JSX","cn","TraceStatus","TRACE_STATUS_LABELS","Readonly","Record","pending","running","success","error","cancelled","TraceProps","size","Trace","props","local","rest","_el$","_tmpl$","_$spread","_$mergeProps","data-size","class","_$insert","children","TraceLineProps","Omit","title","Element","description","icon","status","statusLabel","meta","open","defaultOpen","onOpenChange","href","onSelect","selectHaspopup","StatusMark","completed","_el$2","_tmpl$2","_$createComponent","when","fallback","_$effect","_$className","statusOwnsMark","LineHead","trailing","_$memo","undefined","_el$3","_tmpl$4","_el$4","firstChild","_el$5","_tmpl$3","_el$7","_tmpl$6","_el$6","_tmpl$5","lineClass","interactiveClass","TraceLine","content","head","_el$8","_tmpl$8","data-status","aria-busy","_el$0","_tmpl$9","_p$","_v$","_v$2","e","_$setAttribute","t","_el$1","_tmpl$0","$$click","_v$3","_v$4","_el$10","_tmpl$1","Trigger","Content","_el$9","_tmpl$7","TraceDetail","_el$11","_tmpl$10","_$delegateEvents","_$mergeProps","_$createComponent","_$className","_$memo","_$setAttribute","KobalteCollapsible","_$delegateEvents"],"sources":["../../../../src/components/ui/trace/trace.tsx"],"sourcesContent":["import { Collapsible as KobalteCollapsible } from '@kobalte/core/collapsible'\nimport {\n Check,\n ChevronRight,\n CircleAlert,\n CircleDashed,\n CircleSlash,\n Dot,\n ExternalLink,\n LoaderCircle,\n} from 'lucide-solid'\nimport { createMemo, Show, splitProps, type ComponentProps, type JSX } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * Trace.\n *\n * A list of lines, one per thing an agent did. Reasoning, a tool call, a source\n * it read, a plan step and a whole subagent run all share one shape — *something\n * the agent did, and what happened* — so they share one row: a leading mark, a\n * title, an optional description, a status and, when there is more to say, a\n * disclosure. A transcript built from this reads as one quiet column of activity\n * under the answer instead of a stack of competing cards.\n *\n * ## One row, three behaviours\n *\n * - **Children** make the line expandable. The trigger is a real button with\n * `aria-expanded`, so keyboard and screen-reader users get the disclosure for\n * free. Children can themselves be a `Trace`, which is how a summary expands\n * into steps and a step into its output.\n * - **`href`** makes the line a link — a source, a file, a run page.\n * - **`onSelect`** makes the line a button that opens something *else* (a dialog,\n * sheet, drawer or popover owned by the caller). The line says so with\n * `aria-haspopup`; the surface itself is not this component's business.\n * - None of the three: a static line. It is not focusable, because a control that\n * does nothing is a tab stop with no purpose.\n *\n * ## Status is a claim, so it is optional\n *\n * `status` is rendered only when the caller has it. A line without one makes no\n * statement about success, which matters for runtime events whose lifecycle the\n * producer has not told us: showing a tick on an event that merely *arrived* is\n * a small lie that accumulates. `running` shimmers the title and spins the mark,\n * both of which stop under reduced motion; `error` and `cancelled` change the\n * mark's shape as well as its colour; every status is also spoken (`sr-only`),\n * because a coloured dot alone fails anyone who cannot see it.\n */\nexport type TraceStatus = 'pending' | 'running' | 'success' | 'error' | 'cancelled'\n\n/** The words spoken for each status. Override per line for another language. */\nexport const TRACE_STATUS_LABELS: Readonly<Record<TraceStatus, string>> = {\n pending: 'Pending',\n running: 'Running',\n success: 'Completed',\n error: 'Failed',\n cancelled: 'Cancelled',\n}\n\nexport type TraceProps = ComponentProps<'ul'> & {\n /** Tighter rows, for output nested inside another line. */\n size?: 'default' | 'sm'\n}\n\nexport function Trace(props: TraceProps) {\n const [local, rest] = splitProps(props, ['class', 'size', 'children'])\n return (\n // `role=\"list\"` restores list semantics that `list-none` strips in WebKit.\n <ul\n role=\"list\"\n data-slot=\"trace\"\n data-size={local.size ?? 'default'}\n class={cn('m-0 flex min-w-0 list-none flex-col gap-px p-0', local.class)}\n {...rest}\n >\n {local.children}\n </ul>\n )\n}\n\nexport type TraceLineProps = Omit<ComponentProps<'li'>, 'title' | 'onSelect'> & {\n title: JSX.Element\n description?: JSX.Element\n /** The line's own glyph. A `running`, `error`, `pending` or `cancelled` status replaces it. */\n icon?: JSX.Element\n status?: TraceStatus\n /** Spoken in place of the default status word. */\n statusLabel?: string\n /** Trailing text: a duration, a count, a file size. */\n meta?: JSX.Element\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n /** Make the line a link. Mutually exclusive with children and `onSelect`. */\n href?: string\n /** Make the line open a surface the caller owns. */\n onSelect?: () => void\n /** Which kind of surface `onSelect` opens, for assistive technology. */\n selectHaspopup?: 'dialog' | 'menu' | 'true'\n /** Details. Their presence makes the line expandable. */\n children?: JSX.Element\n}\n\nfunction StatusMark(props: { status?: TraceStatus; icon?: JSX.Element; completed?: boolean }) {\n return (\n <span\n data-slot=\"trace-mark\"\n aria-hidden=\"true\"\n class={cn('grid size-4 shrink-0 place-items-center [&_svg]:size-3.5', {\n 'text-muted-foreground': props.status !== 'error' && props.status !== 'running',\n 'text-destructive': props.status === 'error',\n 'text-info': props.status === 'running',\n })}\n >\n <Show\n when={props.status === 'running'}\n fallback={\n <Show\n when={props.status === 'error'}\n fallback={\n <Show\n when={props.status === 'cancelled'}\n fallback={\n <Show\n when={props.status === 'pending'}\n fallback={props.icon ?? (props.completed ? <Check /> : <Dot />)}\n >\n <CircleDashed />\n </Show>\n }\n >\n <CircleSlash />\n </Show>\n }\n >\n <CircleAlert />\n </Show>\n }\n >\n <LoaderCircle class=\"motion-safe:animate-spin\" />\n </Show>\n </span>\n )\n}\n\n/**\n * Whether the status takes over the mark. A completed line keeps its own glyph\n * (the tool, the file) because \"done\" is the default expectation and a column of\n * identical ticks says nothing; the states that need noticing replace it.\n */\nfunction statusOwnsMark(status: TraceStatus | undefined): boolean {\n return (\n status === 'running' || status === 'error' || status === 'pending' || status === 'cancelled'\n )\n}\n\nfunction LineHead(props: {\n title: JSX.Element\n description?: JSX.Element\n icon?: JSX.Element\n status?: TraceStatus\n statusLabel?: string\n meta?: JSX.Element\n trailing?: JSX.Element\n}) {\n return (\n <>\n <StatusMark\n status={statusOwnsMark(props.status) ? props.status : undefined}\n icon={props.icon}\n completed={props.status === 'success'}\n />\n <span class=\"flex min-w-0 flex-1 items-baseline gap-2\">\n <span\n data-slot=\"trace-title\"\n class={cn('truncate text-sm', {\n 'text-shimmer': props.status === 'running',\n 'text-destructive': props.status === 'error',\n 'text-muted-foreground': props.status !== 'running' && props.status !== 'error',\n })}\n >\n {props.title}\n </span>\n <Show when={props.description}>\n <span\n data-slot=\"trace-description\"\n class=\"min-w-0 truncate text-xs text-muted-foreground\"\n >\n {props.description}\n </span>\n </Show>\n </span>\n <Show when={props.status}>\n {(status) => (\n <span class=\"sr-only\">{props.statusLabel ?? TRACE_STATUS_LABELS[status()]}</span>\n )}\n </Show>\n <Show when={props.meta}>\n <span data-slot=\"trace-meta\" class=\"shrink-0 text-xs text-muted-foreground tabular-nums\">\n {props.meta}\n </span>\n </Show>\n {props.trailing}\n </>\n )\n}\n\nconst lineClass =\n 'flex min-h-control-xs w-full min-w-0 items-center gap-2 rounded-md px-1.5 py-0.5 text-start outline-none'\nconst interactiveClass =\n 'cursor-pointer transition-colors ease-out hover:bg-muted/60 focus-visible:ring-3 focus-visible:ring-primary-subtle focus-visible:border-ring'\n\nexport function TraceLine(props: TraceLineProps) {\n const [local, rest] = splitProps(props, [\n 'class',\n 'title',\n 'description',\n 'icon',\n 'status',\n 'statusLabel',\n 'meta',\n 'open',\n 'defaultOpen',\n 'onOpenChange',\n 'href',\n 'onSelect',\n 'selectHaspopup',\n 'children',\n ])\n // Read once. `local.children` is a getter that builds the subtree each time it\n // is read, so testing it in `when` and then placing it built every nested line\n // twice, and a chain of lines nested n deep built 2^n of them. It is not resolved\n // (`children()`), so a body that renders nothing yet, such as a `Show` that is\n // closed, still makes the line a disclosure.\n const content = createMemo(() => local.children)\n const head = (trailing?: JSX.Element) => (\n <LineHead\n title={local.title}\n description={local.description}\n icon={local.icon}\n status={local.status}\n statusLabel={local.statusLabel}\n meta={local.meta}\n trailing={trailing}\n />\n )\n\n return (\n <li\n data-slot=\"trace-line\"\n data-status={local.status}\n aria-busy={local.status === 'running' || undefined}\n class={cn('min-w-0', local.class)}\n {...rest}\n >\n <Show\n when={local.href === undefined}\n fallback={\n <a\n href={local.href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n class={cn(lineClass, interactiveClass)}\n >\n {head(\n <ExternalLink aria-hidden=\"true\" class=\"size-3 shrink-0 text-muted-foreground\" />\n )}\n </a>\n }\n >\n <Show\n when={local.onSelect === undefined}\n fallback={\n <button\n type=\"button\"\n aria-haspopup={local.selectHaspopup ?? 'dialog'}\n class={cn(lineClass, interactiveClass)}\n onClick={() => local.onSelect?.()}\n >\n {head(\n <ChevronRight aria-hidden=\"true\" class=\"size-3.5 shrink-0 text-muted-foreground\" />\n )}\n </button>\n }\n >\n <Show when={content()} fallback={<div class={lineClass}>{head()}</div>}>\n <KobalteCollapsible\n open={local.open}\n defaultOpen={local.defaultOpen}\n onOpenChange={local.onOpenChange}\n class=\"group/trace\"\n >\n <KobalteCollapsible.Trigger class={cn(lineClass, interactiveClass)}>\n {head(\n <ChevronRight\n aria-hidden=\"true\"\n class=\"size-3.5 shrink-0 text-muted-foreground transition-transform ease-out group-data-[expanded]/trace:rotate-90\"\n />\n )}\n </KobalteCollapsible.Trigger>\n <KobalteCollapsible.Content\n data-slot=\"trace-content\"\n class=\"overflow-hidden data-[expanded]:animate-in data-[expanded]:fade-in-0\"\n >\n {/* The rail is drawn from the mark's centre, so a nested line reads as\n belonging to the one above it without an indent that eats the width. */}\n <div class=\"ms-[0.6875rem] mt-0.5 mb-1 flex min-w-0 flex-col gap-1 border-s border-border ps-3\">\n {content()}\n </div>\n </KobalteCollapsible.Content>\n </KobalteCollapsible>\n </Show>\n </Show>\n </Show>\n </li>\n )\n}\n\n/**\n * Free-form detail inside an expanded line: an input, an output, a paragraph. It\n * is a plain block with the type scale already set, so a caller does not restyle\n * a line's children to make a paragraph fit.\n */\nexport function TraceDetail(props: ComponentProps<'div'>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n return (\n <div\n data-slot=\"trace-detail\"\n class={cn('min-w-0 text-xs leading-5 text-muted-foreground', local.class)}\n {...rest}\n >\n {local.children}\n </div>\n )\n}\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,10 +16,12 @@
16
16
  export * from './components/ui/accordion';
17
17
  export * from './components/ui/alert';
18
18
  export * from './components/ui/alert-dialog';
19
+ export * from './components/ui/attachment';
19
20
  export * from './components/ui/annotation-surface';
20
21
  export * from './components/ui/aspect-ratio';
21
22
  export * from './components/ui/avatar';
22
23
  export * from './components/ui/board';
24
+ export * from './components/ui/bubble';
23
25
  export * from './components/ui/badge';
24
26
  export * from './components/ui/breadcrumb';
25
27
  export * from './components/ui/button';
@@ -48,12 +50,15 @@ export * from './components/ui/input-group';
48
50
  export * from './components/ui/input-otp';
49
51
  export * from './components/ui/kbd';
50
52
  export * from './components/ui/label';
53
+ export * from './components/ui/marker';
51
54
  export * from './components/ui/menubar';
55
+ export * from './components/ui/message';
52
56
  export * from './components/ui/modal-dialog';
53
57
  export * from './components/ui/navigation-menu';
54
58
  export * from './components/ui/pagination';
55
59
  export * from './components/ui/popover';
56
60
  export * from './components/ui/progress';
61
+ export * from './components/ui/questionnaire';
57
62
  export * from './components/ui/radio-group';
58
63
  export * from './components/ui/resizable';
59
64
  export * from './components/ui/scroll-area';
@@ -73,6 +78,7 @@ export * from './components/ui/text-link';
73
78
  export * from './components/ui/toast';
74
79
  export * from './components/ui/toggle';
75
80
  export * from './components/ui/toggle-group';
81
+ export * from './components/ui/trace';
76
82
  export * from './components/ui/tooltip';
77
83
  export * from './components/ui/typography';
78
84
  export * from './components/motion';
@@ -94,6 +100,26 @@ export * from './components/composites/account-menu';
94
100
  export * from './components/composites/action-button';
95
101
  export * from './components/composites/catalog-browser';
96
102
  export * from './components/composites/list-row';
103
+ export * from './components/composites/message-scroller';
104
+ export * from './components/composites/chat';
105
+ export * from './components/composites/chain-of-thought';
106
+ export * from './components/composites/checkpoint';
107
+ export * from './components/composites/confirmation';
108
+ export * from './components/composites/context';
109
+ export * from './components/composites/file-tree';
110
+ export * from './components/composites/inline-citation';
111
+ export * from './components/composites/model-selector';
112
+ export * from './components/composites/plan';
113
+ export * from './components/composites/queue';
114
+ export * from './components/composites/reasoning';
115
+ export * from './components/composites/sources';
116
+ export * from './components/composites/stack-trace';
117
+ export * from './components/composites/subagent';
118
+ export * from './components/composites/suggestion';
119
+ export * from './components/composites/task';
120
+ export * from './components/composites/terminal';
121
+ export * from './components/composites/test-results';
122
+ export * from './components/composites/tool';
97
123
  export * from './components/composites/tree';
98
124
  export * from './components/composites/settings';
99
125
  export * from './components/composites/scene-controls';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}