@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
@@ -0,0 +1,631 @@
1
+ import { cn } from "../../../lib/utils.js";
2
+ import { Button } from "../../ui/button/button.js";
3
+ import { DiffBlock } from "../../ui/diff-block/diff-block.js";
4
+ import { Trace, TraceDetail, TraceLine } from "../../ui/trace/trace.js";
5
+ import { writeClipboardText } from "../../../lib/clipboard.js";
6
+ import { StackTrace } from "../stack-trace/stack-trace.js";
7
+ import { boundedEntries, describeCount, firstFailureRenderPath, formatDuration, listedCounts, reconcileCounts, sameFailure, siblingKey, suiteState } from "./test-results-model.js";
8
+ import { className, createComponent, effect, insert, memo, mergeProps, setAttribute, setStyleProperty, spread, template } from "solid-js/web";
9
+ import { Check, CircleCheck, CircleMinus, CircleX, Copy, FlaskConical, LoaderCircle } from "lucide-solid";
10
+ import { For, Show, createComputed, createEffect, createMemo, createSignal, splitProps } from "solid-js";
11
+ //#region src/components/composites/test-results/test-results.tsx
12
+ var _tmpl$ = /*#__PURE__*/ template(`<span class="flex items-center gap-1 whitespace-nowrap">`);
13
+ var _tmpl$2 = /*#__PURE__*/ template(`<div aria-hidden=true data-slot=test-results-bar class="flex h-1.5 w-full gap-px overflow-hidden rounded-full bg-muted">`);
14
+ var _tmpl$3 = /*#__PURE__*/ template(`<span>`);
15
+ var _tmpl$4 = /*#__PURE__*/ template(`<li class="px-1.5 py-0.5">`);
16
+ var _tmpl$5 = /*#__PURE__*/ template(`<pre data-slot=test-results-message tabindex=0 role=group aria-label="Failure message"class="m-0 max-h-64 overflow-auto font-code text-code whitespace-pre-wrap text-foreground [overflow-wrap:anywhere]">`);
17
+ var _tmpl$6 = /*#__PURE__*/ template(`<div class="flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted-foreground"><span class=italic>`);
18
+ var _tmpl$7 = /*#__PURE__*/ template(`<div>`);
19
+ var _tmpl$8 = /*#__PURE__*/ template(`<span class="flex items-center gap-1 text-info">Running`);
20
+ var _tmpl$9 = /*#__PURE__*/ template(`<span class=text-muted-foreground> tests reported`);
21
+ var _tmpl$0 = /*#__PURE__*/ template(`<span class=text-muted-foreground>in `);
22
+ var _tmpl$1 = /*#__PURE__*/ template(`<p class="m-0 text-xs text-muted-foreground">Counts are from the tests listed below.`);
23
+ var _tmpl$10 = /*#__PURE__*/ template(`<div class="flex flex-col gap-1.5"><div class="flex flex-wrap items-center gap-x-3 gap-y-1 text-sm">`);
24
+ var _tmpl$11 = /*#__PURE__*/ template(`<section data-slot=test-results>`);
25
+ var _tmpl$12 = /*#__PURE__*/ template(`<p class="m-0 text-sm text-muted-foreground">No test results`);
26
+ var _tmpl$13 = /*#__PURE__*/ template(`<span class=text-muted-foreground> tests reported (<!> listed)`);
27
+ var TEST_RESULTS_LIST_LIMIT = 50;
28
+ var OUTCOME_ICON = {
29
+ failed: () => createComponent(CircleX, {
30
+ "aria-hidden": "true",
31
+ "class": "size-3.5 text-destructive"
32
+ }),
33
+ passed: () => createComponent(CircleCheck, {
34
+ "aria-hidden": "true",
35
+ "class": "size-3.5 text-success"
36
+ }),
37
+ skipped: () => createComponent(CircleMinus, {
38
+ "aria-hidden": "true",
39
+ "class": "size-3.5 text-muted-foreground"
40
+ })
41
+ };
42
+ function CountReadout(props) {
43
+ return (() => {
44
+ var _el$ = _tmpl$();
45
+ insert(_el$, () => OUTCOME_ICON[props.line.outcome](), null);
46
+ insert(_el$, () => describeCount(props.line), null);
47
+ effect(() => setAttribute(_el$, "data-outcome", props.line.outcome));
48
+ return _el$;
49
+ })();
50
+ }
51
+ var SEGMENT_CLASS = {
52
+ failed: "bg-destructive",
53
+ passed: "bg-success",
54
+ skipped: "bg-muted-foreground/40"
55
+ };
56
+ function SummaryBar(props) {
57
+ const visible = () => props.lines.filter((line) => line.count > 0);
58
+ return createComponent(Show, {
59
+ get when() {
60
+ return visible().length > 0;
61
+ },
62
+ get children() {
63
+ var _el$2 = _tmpl$2();
64
+ insert(_el$2, createComponent(For, {
65
+ get each() {
66
+ return visible();
67
+ },
68
+ children: (line) => (() => {
69
+ var _el$3 = _tmpl$3();
70
+ effect((_p$) => {
71
+ var _v$ = cn("min-w-1", SEGMENT_CLASS[line.outcome]), _v$2 = `${line.count} 1 0`;
72
+ _v$ !== _p$.e && className(_el$3, _p$.e = _v$);
73
+ _v$2 !== _p$.t && setStyleProperty(_el$3, "flex", _p$.t = _v$2);
74
+ return _p$;
75
+ }, {
76
+ e: void 0,
77
+ t: void 0
78
+ });
79
+ return _el$3;
80
+ })()
81
+ }));
82
+ return _el$2;
83
+ }
84
+ });
85
+ }
86
+ var TRACE_STATUS = {
87
+ passed: {
88
+ status: "success",
89
+ label: "Passed"
90
+ },
91
+ failed: {
92
+ status: "error",
93
+ label: "Failed"
94
+ },
95
+ skipped: {
96
+ status: "cancelled",
97
+ label: "Skipped"
98
+ },
99
+ running: {
100
+ status: "running",
101
+ label: "Running"
102
+ },
103
+ pending: {
104
+ status: "pending",
105
+ label: "Not run yet"
106
+ }
107
+ };
108
+ /**
109
+ * Keep keyboard focus through a reorder. Solid moves a keyed row's node instead
110
+ * of replacing it, and a browser blurs a focused element that is moved, so an
111
+ * immutable reorder would drop the reader's place onto the body even though the
112
+ * node and its open state survive. The focused element is noted just before the
113
+ * rows move and given focus back just after, but only when nothing else has taken
114
+ * focus meanwhile, and only inside a test run, so a reader who has moved on is
115
+ * never pulled back and an unrelated element is never refocused.
116
+ */
117
+ function keepFocusThroughReorder(keys) {
118
+ let noted;
119
+ createComputed(() => {
120
+ keys();
121
+ const active = typeof document === "undefined" ? null : document.activeElement;
122
+ noted = active instanceof HTMLElement && active.closest("[data-slot=\"test-results\"]") ? active : void 0;
123
+ });
124
+ createEffect(() => {
125
+ keys();
126
+ const element = noted;
127
+ noted = void 0;
128
+ if (!element || !element.isConnected) return;
129
+ const active = document.activeElement;
130
+ if (active === null || active === document.body) element.focus({ preventScroll: true });
131
+ });
132
+ }
133
+ /** A list that shows its first `limit` items and offers the rest. */
134
+ function Bounded(props) {
135
+ const [shown, setShown] = createSignal(props.limit);
136
+ const page = createMemo(() => boundedEntries(props.items, shown(), props.itemKey));
137
+ const visible = () => page().entries;
138
+ const visibleKeys = createMemo(() => visible().map((entry) => entry.key));
139
+ keepFocusThroughReorder(visibleKeys);
140
+ const hidden = () => props.items.length - visible().length;
141
+ return [createComponent(For, {
142
+ get each() {
143
+ return visibleKeys();
144
+ },
145
+ children: (key) => {
146
+ const entry = createMemo(() => page().byKey.get(key));
147
+ return props.children(() => entry().item, () => entry().index, key);
148
+ }
149
+ }), createComponent(Show, {
150
+ get when() {
151
+ return hidden() > 0;
152
+ },
153
+ get children() {
154
+ var _el$4 = _tmpl$4();
155
+ insert(_el$4, createComponent(Button, {
156
+ variant: "ghost",
157
+ size: "2xs",
158
+ onClick: () => setShown(shown() + props.limit),
159
+ get children() {
160
+ return [
161
+ "Show ",
162
+ memo(() => Math.min(hidden(), props.limit).toLocaleString()),
163
+ " more ",
164
+ memo(() => props.noun),
165
+ " (",
166
+ memo(() => hidden().toLocaleString()),
167
+ " hidden)"
168
+ ];
169
+ }
170
+ }));
171
+ return _el$4;
172
+ }
173
+ })];
174
+ }
175
+ /** Characters of a failure message drawn before the rest is offered. */
176
+ var TEST_RESULTS_MESSAGE_LIMIT = 4e3;
177
+ /**
178
+ * A failed test's message, which a runner may print at any length: a captured
179
+ * log, a serialized object, a long assertion. It opens on its own for the first
180
+ * failure, so it is bounded where the diff and stack are already bounded: the
181
+ * body scrolls past a fixed height, only the first characters are drawn until the
182
+ * reader asks for the rest, and Copy writes all of it.
183
+ */
184
+ function FailureMessage(props) {
185
+ const [all, setAll] = createSignal(false);
186
+ const [copied, setCopied] = createSignal(false);
187
+ const [copyFailed, setCopyFailed] = createSignal(false);
188
+ const clipped = () => props.text.length > TEST_RESULTS_MESSAGE_LIMIT;
189
+ const cut = () => {
190
+ const last = props.text.charCodeAt(3999);
191
+ return last >= 55296 && last <= 56319 ? 3999 : TEST_RESULTS_MESSAGE_LIMIT;
192
+ };
193
+ const shown = () => clipped() && !all() ? props.text.slice(0, cut()) : props.text;
194
+ const copy = async () => {
195
+ let ok = true;
196
+ try {
197
+ await writeClipboardText(props.text);
198
+ } catch {
199
+ ok = false;
200
+ }
201
+ setCopied(ok);
202
+ setCopyFailed(!ok);
203
+ props.onCopy?.(ok);
204
+ if (ok) setTimeout(() => setCopied(false), 1500);
205
+ };
206
+ return [(() => {
207
+ var _el$5 = _tmpl$5();
208
+ insert(_el$5, shown);
209
+ return _el$5;
210
+ })(), createComponent(Show, {
211
+ get when() {
212
+ return clipped();
213
+ },
214
+ get children() {
215
+ var _el$6 = _tmpl$6(), _el$7 = _el$6.firstChild;
216
+ insert(_el$7, createComponent(Show, {
217
+ get when() {
218
+ return !all();
219
+ },
220
+ get fallback() {
221
+ return `All ${props.text.length.toLocaleString()} characters shown.`;
222
+ },
223
+ get children() {
224
+ return [
225
+ "Showing the first ",
226
+ memo(() => cut().toLocaleString()),
227
+ " of ",
228
+ memo(() => props.text.length.toLocaleString()),
229
+ " ",
230
+ "characters (copy has all of it)."
231
+ ];
232
+ }
233
+ }));
234
+ insert(_el$6, createComponent(Show, {
235
+ get when() {
236
+ return !all();
237
+ },
238
+ get children() {
239
+ return createComponent(Button, {
240
+ variant: "ghost",
241
+ size: "2xs",
242
+ onClick: () => setAll(true),
243
+ get children() {
244
+ return [
245
+ "Show all ",
246
+ memo(() => props.text.length.toLocaleString()),
247
+ " characters"
248
+ ];
249
+ }
250
+ });
251
+ }
252
+ }), null);
253
+ insert(_el$6, createComponent(Button, {
254
+ variant: "ghost",
255
+ size: "2xs",
256
+ get title() {
257
+ return copyFailed() ? "Copying is unavailable in this context" : void 0;
258
+ },
259
+ onClick: () => void copy(),
260
+ get children() {
261
+ return [createComponent(Show, {
262
+ get when() {
263
+ return copied();
264
+ },
265
+ get fallback() {
266
+ return createComponent(Copy, { "aria-hidden": "true" });
267
+ },
268
+ get children() {
269
+ return createComponent(Check, { "aria-hidden": "true" });
270
+ }
271
+ }), memo(() => copied() ? "Copied" : "Copy message")];
272
+ }
273
+ }), null);
274
+ return _el$6;
275
+ }
276
+ })];
277
+ }
278
+ function TestLine(props) {
279
+ const test = () => props.test();
280
+ const state = () => test().status ? TRACE_STATUS[test().status] : void 0;
281
+ const hasDetail = createMemo(() => Boolean(test().message || test().diff || test().stack));
282
+ const failureKey = createMemo(() => props.failure?.test === props.keyed ? props.failure : void 0, void 0, { equals: sameFailure });
283
+ const [open, setOpen] = createSignal(failureKey() !== void 0);
284
+ let previousFailure = failureKey();
285
+ let collapsedFailure;
286
+ createEffect(() => {
287
+ const currentFailure = failureKey();
288
+ if (currentFailure && !sameFailure(currentFailure, previousFailure) && !sameFailure(currentFailure, collapsedFailure)) setOpen(true);
289
+ previousFailure = currentFailure;
290
+ });
291
+ const handleOpenChange = (next) => {
292
+ if (!next && failureKey()) collapsedFailure = failureKey();
293
+ else if (next) collapsedFailure = void 0;
294
+ setOpen(next);
295
+ };
296
+ return createComponent(TraceLine, {
297
+ get title() {
298
+ return test().name;
299
+ },
300
+ get status() {
301
+ return state()?.status;
302
+ },
303
+ get statusLabel() {
304
+ return state()?.label;
305
+ },
306
+ get meta() {
307
+ return formatDuration(test().durationMs);
308
+ },
309
+ get open() {
310
+ return open();
311
+ },
312
+ onOpenChange: handleOpenChange,
313
+ get children() {
314
+ return memo(() => !!hasDetail())() ? createComponent(Show, {
315
+ get when() {
316
+ return open();
317
+ },
318
+ get children() {
319
+ return createComponent(TraceDetail, {
320
+ "class": "flex flex-col gap-2",
321
+ get children() {
322
+ return [
323
+ createComponent(Show, {
324
+ get when() {
325
+ return test().message;
326
+ },
327
+ get children() {
328
+ return createComponent(FailureMessage, { get text() {
329
+ return test().message;
330
+ } });
331
+ }
332
+ }),
333
+ createComponent(Show, {
334
+ get when() {
335
+ return test().diff;
336
+ },
337
+ get children() {
338
+ return createComponent(DiffBlock, {
339
+ get patch() {
340
+ return test().diff;
341
+ },
342
+ complete: true,
343
+ title: "Expected and received"
344
+ });
345
+ }
346
+ }),
347
+ createComponent(Show, {
348
+ get when() {
349
+ return test().stack;
350
+ },
351
+ get children() {
352
+ return createComponent(StackTrace, {
353
+ get text() {
354
+ return test().stack;
355
+ },
356
+ get onOpenFrame() {
357
+ return props.onOpenFrame;
358
+ }
359
+ });
360
+ }
361
+ })
362
+ ];
363
+ }
364
+ });
365
+ }
366
+ }) : void 0;
367
+ }
368
+ });
369
+ }
370
+ function SuiteLine(props) {
371
+ const suite = () => props.suite();
372
+ const counts = createMemo(() => listedCounts([suite()]));
373
+ const state = createMemo(() => suiteState(counts()));
374
+ const children = () => (suite().tests?.length ?? 0) + (suite().suites?.length ?? 0) > 0;
375
+ const [open, setOpen] = createSignal(state() === "failed");
376
+ const failure = createMemo(() => props.failure?.suites[props.depth] === props.keyed ? props.failure : void 0, void 0, { equals: sameFailure });
377
+ const holdsFailure = createMemo(() => failure()?.suites.length === props.depth + 1);
378
+ let previousFailure = failure();
379
+ let collapsedFailure;
380
+ createEffect(() => {
381
+ const currentFailure = failure();
382
+ if (currentFailure && !sameFailure(currentFailure, previousFailure) && !sameFailure(currentFailure, collapsedFailure)) setOpen(true);
383
+ previousFailure = currentFailure;
384
+ });
385
+ const handleOpenChange = (next) => {
386
+ if (!next && failure()) collapsedFailure = failure();
387
+ else if (next) collapsedFailure = void 0;
388
+ setOpen(next);
389
+ };
390
+ const description = () => {
391
+ return [suite().file, counts().failed > 0 ? `${counts().failed.toLocaleString()} failed` : void 0].filter(Boolean).join(" · ") || void 0;
392
+ };
393
+ return createComponent(TraceLine, {
394
+ get icon() {
395
+ return createComponent(FlaskConical, {});
396
+ },
397
+ get title() {
398
+ return suite().name;
399
+ },
400
+ get description() {
401
+ return description();
402
+ },
403
+ get status() {
404
+ return memo(() => state() === "failed")() ? "error" : memo(() => state() === "running")() ? "running" : state() === "passed" ? "success" : void 0;
405
+ },
406
+ get statusLabel() {
407
+ return memo(() => state() === "failed")() ? "Has failing tests" : state() === "passed" ? "All listed tests passed" : void 0;
408
+ },
409
+ get meta() {
410
+ return formatDuration(suite().durationMs);
411
+ },
412
+ get open() {
413
+ return open();
414
+ },
415
+ onOpenChange: handleOpenChange,
416
+ get children() {
417
+ return memo(() => !!children())() ? (() => {
418
+ var _el$8 = _tmpl$7();
419
+ insert(_el$8, createComponent(Show, {
420
+ get when() {
421
+ return open();
422
+ },
423
+ get children() {
424
+ return createComponent(Trace, {
425
+ size: "sm",
426
+ get ["aria-label"]() {
427
+ return `${suite().name} tests`;
428
+ },
429
+ get children() {
430
+ return [createComponent(Bounded, {
431
+ get items() {
432
+ return suite().tests ?? [];
433
+ },
434
+ itemKey: siblingKey,
435
+ get limit() {
436
+ return props.limit;
437
+ },
438
+ noun: "tests",
439
+ children: (test, _index, key) => createComponent(TestLine, {
440
+ test,
441
+ keyed: key,
442
+ get failure() {
443
+ return memo(() => !!holdsFailure())() ? failure() : void 0;
444
+ },
445
+ get onOpenFrame() {
446
+ return props.onOpenFrame;
447
+ }
448
+ })
449
+ }), createComponent(Bounded, {
450
+ get items() {
451
+ return suite().suites ?? [];
452
+ },
453
+ itemKey: siblingKey,
454
+ get limit() {
455
+ return props.limit;
456
+ },
457
+ noun: "suites",
458
+ children: (nested, _index, key) => createComponent(SuiteLine, {
459
+ suite: nested,
460
+ keyed: key,
461
+ get depth() {
462
+ return props.depth + 1;
463
+ },
464
+ get limit() {
465
+ return props.limit;
466
+ },
467
+ get failure() {
468
+ return failure();
469
+ },
470
+ get onOpenFrame() {
471
+ return props.onOpenFrame;
472
+ }
473
+ })
474
+ })];
475
+ }
476
+ });
477
+ }
478
+ }));
479
+ return _el$8;
480
+ })() : void 0;
481
+ }
482
+ });
483
+ }
484
+ function TestResults(props) {
485
+ const [local, rest] = splitProps(props, [
486
+ "suites",
487
+ "summary",
488
+ "running",
489
+ "listLimit",
490
+ "onOpenFrame",
491
+ "label",
492
+ "class"
493
+ ]);
494
+ const listed = createMemo(() => listedCounts(local.suites));
495
+ const counts = createMemo(() => reconcileCounts(local.summary, listed()));
496
+ const limit = () => Math.max(1, Math.floor(local.listLimit ?? 50));
497
+ const failure = createMemo(() => firstFailureRenderPath(local.suites), void 0, { equals: sameFailure });
498
+ const duration = () => formatDuration(local.summary?.durationMs, "long");
499
+ const nothing = () => counts().lines.length === 0 && counts().reportedTotal === void 0 && local.suites.length === 0 && !local.running;
500
+ return (() => {
501
+ var _el$9 = _tmpl$11();
502
+ spread(_el$9, mergeProps({
503
+ get ["aria-label"]() {
504
+ return local.label ?? "Test results";
505
+ },
506
+ get ["aria-busy"]() {
507
+ return local.running || void 0;
508
+ },
509
+ get ["class"]() {
510
+ return cn("flex min-w-0 flex-col gap-2", local.class);
511
+ }
512
+ }, rest), false, true);
513
+ insert(_el$9, createComponent(Show, {
514
+ get when() {
515
+ return !nothing();
516
+ },
517
+ get fallback() {
518
+ return _tmpl$12();
519
+ },
520
+ get children() {
521
+ return [(() => {
522
+ var _el$0 = _tmpl$10(), _el$1 = _el$0.firstChild;
523
+ insert(_el$1, createComponent(Show, {
524
+ get when() {
525
+ return local.running;
526
+ },
527
+ get children() {
528
+ var _el$10 = _tmpl$8(), _el$11 = _el$10.firstChild;
529
+ insert(_el$10, createComponent(LoaderCircle, {
530
+ "aria-hidden": "true",
531
+ "class": "size-3.5 motion-safe:animate-spin"
532
+ }), _el$11);
533
+ return _el$10;
534
+ }
535
+ }), null);
536
+ insert(_el$1, createComponent(For, {
537
+ get each() {
538
+ return counts().lines;
539
+ },
540
+ children: (line) => createComponent(CountReadout, { line })
541
+ }), null);
542
+ insert(_el$1, createComponent(Show, {
543
+ get when() {
544
+ return memo(() => !!(counts().lines.length === 0 && !counts().totalNote))() && counts().reportedTotal !== void 0;
545
+ },
546
+ get children() {
547
+ var _el$12 = _tmpl$9(), _el$13 = _el$12.firstChild;
548
+ insert(_el$12, () => counts().reportedTotal?.toLocaleString(), _el$13);
549
+ return _el$12;
550
+ }
551
+ }), null);
552
+ insert(_el$1, createComponent(Show, {
553
+ get when() {
554
+ return counts().totalNote;
555
+ },
556
+ children: (note) => (() => {
557
+ var _el$18 = _tmpl$13(), _el$19 = _el$18.firstChild, _el$21 = _el$19.nextSibling;
558
+ _el$21.nextSibling;
559
+ insert(_el$18, () => note().reported.toLocaleString(), _el$19);
560
+ insert(_el$18, () => note().listed.toLocaleString(), _el$21);
561
+ return _el$18;
562
+ })()
563
+ }), null);
564
+ insert(_el$1, createComponent(Show, {
565
+ get when() {
566
+ return duration();
567
+ },
568
+ get children() {
569
+ var _el$14 = _tmpl$0();
570
+ _el$14.firstChild;
571
+ insert(_el$14, duration, null);
572
+ return _el$14;
573
+ }
574
+ }), null);
575
+ insert(_el$0, createComponent(SummaryBar, { get lines() {
576
+ return counts().lines;
577
+ } }), null);
578
+ insert(_el$0, createComponent(Show, {
579
+ get when() {
580
+ return memo(() => counts().basis === "listed")() && counts().lines.length > 0;
581
+ },
582
+ get children() {
583
+ return _tmpl$1();
584
+ }
585
+ }), null);
586
+ return _el$0;
587
+ })(), createComponent(Show, {
588
+ get when() {
589
+ return local.suites.length > 0;
590
+ },
591
+ get children() {
592
+ return createComponent(Trace, {
593
+ "aria-label": "Test suites",
594
+ get children() {
595
+ return createComponent(Bounded, {
596
+ get items() {
597
+ return local.suites;
598
+ },
599
+ itemKey: siblingKey,
600
+ get limit() {
601
+ return limit();
602
+ },
603
+ noun: "suites",
604
+ children: (suite, _index, key) => createComponent(SuiteLine, {
605
+ suite,
606
+ keyed: key,
607
+ depth: 0,
608
+ get limit() {
609
+ return limit();
610
+ },
611
+ get failure() {
612
+ return failure();
613
+ },
614
+ get onOpenFrame() {
615
+ return local.onOpenFrame;
616
+ }
617
+ })
618
+ });
619
+ }
620
+ });
621
+ }
622
+ })];
623
+ }
624
+ }));
625
+ return _el$9;
626
+ })();
627
+ }
628
+ //#endregion
629
+ export { TEST_RESULTS_LIST_LIMIT, TEST_RESULTS_MESSAGE_LIMIT, TestResults };
630
+
631
+ //# sourceMappingURL=test-results.js.map