@cueplusplus/ui 0.13.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 (1016) hide show
  1. package/CHANGELOG.md +4028 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE.md +34 -0
  4. package/README.md +237 -0
  5. package/dist/agent-runtime/_glyphs.js +43 -0
  6. package/dist/agent-runtime/branch-picker.d.ts +45 -0
  7. package/dist/agent-runtime/branch-picker.js +87 -0
  8. package/dist/agent-runtime/index.d.ts +4 -0
  9. package/dist/agent-runtime/index.js +4 -0
  10. package/dist/agent-runtime/tool-call-card.d.ts +69 -0
  11. package/dist/agent-runtime/tool-call-card.js +187 -0
  12. package/dist/agent-runtime/use-agent-thread.d.ts +164 -0
  13. package/dist/agent-runtime/use-agent-thread.js +251 -0
  14. package/dist/brand/_chassis.d.ts +54 -0
  15. package/dist/brand/_chassis.js +81 -0
  16. package/dist/brand/_geometry.js +41 -0
  17. package/dist/brand/cue-logotype.d.ts +29 -0
  18. package/dist/brand/cue-logotype.js +60 -0
  19. package/dist/brand/cue-mark.d.ts +30 -0
  20. package/dist/brand/cue-mark.js +61 -0
  21. package/dist/brand/index.d.ts +5 -0
  22. package/dist/brand/plussie.d.ts +67 -0
  23. package/dist/brand/plussie.js +125 -0
  24. package/dist/charts/_token.js +39 -0
  25. package/dist/charts/container.d.ts +58 -0
  26. package/dist/charts/container.js +77 -0
  27. package/dist/charts/index.d.ts +5 -0
  28. package/dist/charts/index.js +5 -0
  29. package/dist/charts/ramps.d.ts +140 -0
  30. package/dist/charts/ramps.js +615 -0
  31. package/dist/charts/theme.d.ts +112 -0
  32. package/dist/charts/theme.js +165 -0
  33. package/dist/charts/tones.d.ts +111 -0
  34. package/dist/charts/tones.js +127 -0
  35. package/dist/chat/_glyphs.js +55 -0
  36. package/dist/chat/agent-color.d.ts +84 -0
  37. package/dist/chat/agent-color.js +101 -0
  38. package/dist/chat/agent-pile.d.ts +55 -0
  39. package/dist/chat/agent-pile.js +121 -0
  40. package/dist/chat/ask-box.d.ts +88 -0
  41. package/dist/chat/ask-box.js +341 -0
  42. package/dist/chat/composer.d.ts +66 -0
  43. package/dist/chat/composer.js +144 -0
  44. package/dist/chat/delegation-card.d.ts +60 -0
  45. package/dist/chat/delegation-card.js +129 -0
  46. package/dist/chat/index.d.ts +8 -0
  47. package/dist/chat/index.js +8 -0
  48. package/dist/chat/message-list.d.ts +45 -0
  49. package/dist/chat/message-list.js +141 -0
  50. package/dist/chat/message.d.ts +47 -0
  51. package/dist/chat/message.js +108 -0
  52. package/dist/chrome/_band.js +54 -0
  53. package/dist/chrome/_drag.js +59 -0
  54. package/dist/chrome/_edge-scroller.d.ts +45 -0
  55. package/dist/chrome/_edge-scroller.js +149 -0
  56. package/dist/chrome/_glyphs.js +119 -0
  57. package/dist/chrome/_status-bar-item.js +85 -0
  58. package/dist/chrome/_status-bar.d.ts +15 -0
  59. package/dist/chrome/_status-bar.js +171 -0
  60. package/dist/chrome/_tabs-scroll.d.ts +67 -0
  61. package/dist/chrome/_tabs-scroll.js +73 -0
  62. package/dist/chrome/_tree.d.ts +75 -0
  63. package/dist/chrome/_tree.js +49 -0
  64. package/dist/chrome/app-bar.d.ts +103 -0
  65. package/dist/chrome/app-bar.js +175 -0
  66. package/dist/chrome/app-shell.d.ts +243 -0
  67. package/dist/chrome/app-shell.js +266 -0
  68. package/dist/chrome/band.d.ts +106 -0
  69. package/dist/chrome/band.js +97 -0
  70. package/dist/chrome/empty-state.d.ts +37 -0
  71. package/dist/chrome/empty-state.js +57 -0
  72. package/dist/chrome/eyebrow.d.ts +29 -0
  73. package/dist/chrome/eyebrow.js +36 -0
  74. package/dist/chrome/footer.d.ts +88 -0
  75. package/dist/chrome/footer.js +83 -0
  76. package/dist/chrome/index.d.ts +24 -0
  77. package/dist/chrome/index.js +22 -0
  78. package/dist/chrome/inspector.d.ts +61 -0
  79. package/dist/chrome/inspector.js +121 -0
  80. package/dist/chrome/navigation-menu.d.ts +80 -0
  81. package/dist/chrome/navigation-menu.js +121 -0
  82. package/dist/chrome/page-shell.d.ts +38 -0
  83. package/dist/chrome/page-shell.js +76 -0
  84. package/dist/chrome/panel.d.ts +55 -0
  85. package/dist/chrome/panel.js +67 -0
  86. package/dist/chrome/row.d.ts +82 -0
  87. package/dist/chrome/row.js +106 -0
  88. package/dist/chrome/scroll-area.d.ts +39 -0
  89. package/dist/chrome/scroll-area.js +70 -0
  90. package/dist/chrome/section-header.d.ts +42 -0
  91. package/dist/chrome/section-header.js +79 -0
  92. package/dist/chrome/segmented-control.d.ts +77 -0
  93. package/dist/chrome/segmented-control.js +95 -0
  94. package/dist/chrome/status-bar.d.ts +129 -0
  95. package/dist/chrome/status-bar.js +120 -0
  96. package/dist/chrome/tabs.d.ts +80 -0
  97. package/dist/chrome/tabs.js +132 -0
  98. package/dist/chrome/title-bar.d.ts +47 -0
  99. package/dist/chrome/title-bar.js +43 -0
  100. package/dist/chrome/toolbar.d.ts +68 -0
  101. package/dist/chrome/toolbar.js +83 -0
  102. package/dist/chrome/tree.d.ts +98 -0
  103. package/dist/chrome/tree.js +248 -0
  104. package/dist/color/_checker.js +14 -0
  105. package/dist/color/_convert.d.ts +52 -0
  106. package/dist/color/_convert.js +66 -0
  107. package/dist/color/_glyphs.js +28 -0
  108. package/dist/color/_thumb.js +15 -0
  109. package/dist/color/_value.js +28 -0
  110. package/dist/color/color-area.d.ts +27 -0
  111. package/dist/color/color-area.js +40 -0
  112. package/dist/color/color-field.d.ts +32 -0
  113. package/dist/color/color-field.js +43 -0
  114. package/dist/color/color-picker.d.ts +71 -0
  115. package/dist/color/color-picker.js +178 -0
  116. package/dist/color/color-slider.d.ts +31 -0
  117. package/dist/color/color-slider.js +51 -0
  118. package/dist/color/color-swatch.d.ts +32 -0
  119. package/dist/color/color-swatch.js +44 -0
  120. package/dist/color/index.d.ts +7 -0
  121. package/dist/color/index.js +7 -0
  122. package/dist/configurator/_export.d.ts +78 -0
  123. package/dist/configurator/_export.js +302 -0
  124. package/dist/configurator/_glyphs.js +92 -0
  125. package/dist/configurator/_overrides.d.ts +266 -0
  126. package/dist/configurator/_overrides.js +541 -0
  127. package/dist/configurator/configurator.d.ts +71 -0
  128. package/dist/configurator/configurator.js +284 -0
  129. package/dist/configurator/export-dialog.d.ts +30 -0
  130. package/dist/configurator/export-dialog.js +121 -0
  131. package/dist/configurator/index.d.ts +8 -0
  132. package/dist/configurator/index.js +8 -0
  133. package/dist/configurator/panel-sections.d.ts +86 -0
  134. package/dist/configurator/panel-sections.js +352 -0
  135. package/dist/configurator/token-editor.d.ts +74 -0
  136. package/dist/configurator/token-editor.js +152 -0
  137. package/dist/configurator/use-zoom.d.ts +87 -0
  138. package/dist/configurator/use-zoom.js +113 -0
  139. package/dist/date/_glyphs.js +34 -0
  140. package/dist/date/_segments.js +101 -0
  141. package/dist/date/_trigger.js +31 -0
  142. package/dist/date/calendar.d.ts +25 -0
  143. package/dist/date/calendar.js +125 -0
  144. package/dist/date/date-field.d.ts +34 -0
  145. package/dist/date/date-field.js +41 -0
  146. package/dist/date/date-picker.d.ts +69 -0
  147. package/dist/date/date-picker.js +89 -0
  148. package/dist/date/date-range-picker.d.ts +65 -0
  149. package/dist/date/date-range-picker.js +92 -0
  150. package/dist/date/index.d.ts +6 -0
  151. package/dist/date/index.js +6 -0
  152. package/dist/date/time-field.d.ts +29 -0
  153. package/dist/date/time-field.js +36 -0
  154. package/dist/dmx/_ramp.d.ts +77 -0
  155. package/dist/dmx/_ramp.js +169 -0
  156. package/dist/dmx/_readout.js +53 -0
  157. package/dist/dmx/_universe.d.ts +105 -0
  158. package/dist/dmx/_universe.js +112 -0
  159. package/dist/dmx/channel-matrix.d.ts +81 -0
  160. package/dist/dmx/channel-matrix.js +285 -0
  161. package/dist/dmx/dmx-bar.d.ts +50 -0
  162. package/dist/dmx/dmx-bar.js +107 -0
  163. package/dist/dmx/dmx-strip.d.ts +41 -0
  164. package/dist/dmx/dmx-strip.js +196 -0
  165. package/dist/dmx/index.d.ts +7 -0
  166. package/dist/dmx/index.js +7 -0
  167. package/dist/dmx/universe-grid.d.ts +61 -0
  168. package/dist/dmx/universe-grid.js +182 -0
  169. package/dist/elements/activity-graph.d.ts +40 -0
  170. package/dist/elements/activity-graph.js +81 -0
  171. package/dist/elements/agent-card.d.ts +49 -0
  172. package/dist/elements/agent-card.js +91 -0
  173. package/dist/elements/agent-handoff.d.ts +24 -0
  174. package/dist/elements/agent-handoff.js +53 -0
  175. package/dist/elements/agent-mode-badge.d.ts +72 -0
  176. package/dist/elements/agent-mode-badge.js +110 -0
  177. package/dist/elements/agent-plan.d.ts +24 -0
  178. package/dist/elements/agent-plan.js +74 -0
  179. package/dist/elements/agent-status.d.ts +29 -0
  180. package/dist/elements/agent-status.js +46 -0
  181. package/dist/elements/agent-surface.d.ts +65 -0
  182. package/dist/elements/agent-surface.js +68 -0
  183. package/dist/elements/animated-number.d.ts +86 -0
  184. package/dist/elements/animated-number.js +118 -0
  185. package/dist/elements/approval-card.d.ts +40 -0
  186. package/dist/elements/approval-card.js +78 -0
  187. package/dist/elements/artifact-card.d.ts +30 -0
  188. package/dist/elements/artifact-card.js +58 -0
  189. package/dist/elements/background-inbox.d.ts +39 -0
  190. package/dist/elements/background-inbox.js +60 -0
  191. package/dist/elements/canvas-split.d.ts +77 -0
  192. package/dist/elements/canvas-split.js +138 -0
  193. package/dist/elements/chart.d.ts +41 -0
  194. package/dist/elements/chart.js +117 -0
  195. package/dist/elements/chat-panel.d.ts +46 -0
  196. package/dist/elements/chat-panel.js +104 -0
  197. package/dist/elements/checkpoint-history.d.ts +31 -0
  198. package/dist/elements/checkpoint-history.js +65 -0
  199. package/dist/elements/clamp.d.ts +90 -0
  200. package/dist/elements/clamp.js +109 -0
  201. package/dist/elements/code-diff.d.ts +42 -0
  202. package/dist/elements/code-diff.js +69 -0
  203. package/dist/elements/code-runner.d.ts +38 -0
  204. package/dist/elements/code-runner.js +84 -0
  205. package/dist/elements/command-palette.d.ts +48 -0
  206. package/dist/elements/command-palette.js +129 -0
  207. package/dist/elements/compaction-row.d.ts +63 -0
  208. package/dist/elements/compaction-row.js +110 -0
  209. package/dist/elements/comparison-card.d.ts +47 -0
  210. package/dist/elements/comparison-card.js +69 -0
  211. package/dist/elements/composer.d.ts +274 -0
  212. package/dist/elements/composer.js +505 -0
  213. package/dist/elements/computer-use.d.ts +40 -0
  214. package/dist/elements/computer-use.js +92 -0
  215. package/dist/elements/confidence-marker.d.ts +39 -0
  216. package/dist/elements/confidence-marker.js +64 -0
  217. package/dist/elements/connection-state.d.ts +29 -0
  218. package/dist/elements/connection-state.js +66 -0
  219. package/dist/elements/context-breakdown.d.ts +30 -0
  220. package/dist/elements/context-breakdown.js +86 -0
  221. package/dist/elements/context-usage.d.ts +99 -0
  222. package/dist/elements/context-usage.js +225 -0
  223. package/dist/elements/conversation-search.d.ts +48 -0
  224. package/dist/elements/conversation-search.js +88 -0
  225. package/dist/elements/cost-meter.d.ts +33 -0
  226. package/dist/elements/cost-meter.js +75 -0
  227. package/dist/elements/data-table.d.ts +31 -0
  228. package/dist/elements/data-table.js +67 -0
  229. package/dist/elements/day-separator.d.ts +34 -0
  230. package/dist/elements/day-separator.js +50 -0
  231. package/dist/elements/diagram.d.ts +34 -0
  232. package/dist/elements/diagram.js +75 -0
  233. package/dist/elements/document-reference.d.ts +37 -0
  234. package/dist/elements/document-reference.js +66 -0
  235. package/dist/elements/draft-restore.d.ts +27 -0
  236. package/dist/elements/draft-restore.js +54 -0
  237. package/dist/elements/edit-message.d.ts +36 -0
  238. package/dist/elements/edit-message.js +77 -0
  239. package/dist/elements/elements.css +459 -0
  240. package/dist/elements/elicitation-form.d.ts +48 -0
  241. package/dist/elements/elicitation-form.js +106 -0
  242. package/dist/elements/empty-state.d.ts +52 -0
  243. package/dist/elements/empty-state.js +98 -0
  244. package/dist/elements/end-of-turn-summary.d.ts +60 -0
  245. package/dist/elements/end-of-turn-summary.js +75 -0
  246. package/dist/elements/error-state.d.ts +29 -0
  247. package/dist/elements/error-state.js +55 -0
  248. package/dist/elements/feedback-dialog.d.ts +36 -0
  249. package/dist/elements/feedback-dialog.js +81 -0
  250. package/dist/elements/file-tree.d.ts +45 -0
  251. package/dist/elements/file-tree.js +84 -0
  252. package/dist/elements/flow-graph.d.ts +45 -0
  253. package/dist/elements/flow-graph.js +78 -0
  254. package/dist/elements/generative/chart.js +200 -0
  255. package/dist/elements/generative/faults.js +111 -0
  256. package/dist/elements/generative/icons.d.ts +41 -0
  257. package/dist/elements/generative/icons.js +190 -0
  258. package/dist/elements/generative/intrinsics.js +483 -0
  259. package/dist/elements/generative/spec.d.ts +110 -0
  260. package/dist/elements/generative/spec.js +366 -0
  261. package/dist/elements/generative.css +1145 -0
  262. package/dist/elements/generative.d.ts +144 -0
  263. package/dist/elements/generative.js +126 -0
  264. package/dist/elements/guardrail-notice.d.ts +29 -0
  265. package/dist/elements/guardrail-notice.js +63 -0
  266. package/dist/elements/image-generation.d.ts +18 -0
  267. package/dist/elements/image-generation.js +64 -0
  268. package/dist/elements/index.d.ts +116 -0
  269. package/dist/elements/index.js +115 -0
  270. package/dist/elements/inline-citation.d.ts +43 -0
  271. package/dist/elements/inline-citation.js +93 -0
  272. package/dist/elements/job-progress.d.ts +49 -0
  273. package/dist/elements/job-progress.js +74 -0
  274. package/dist/elements/launcher-bubble.d.ts +34 -0
  275. package/dist/elements/launcher-bubble.js +72 -0
  276. package/dist/elements/live-region-announcer.d.ts +130 -0
  277. package/dist/elements/live-region-announcer.js +230 -0
  278. package/dist/elements/loading-state.d.ts +27 -0
  279. package/dist/elements/loading-state.js +36 -0
  280. package/dist/elements/map-answer.d.ts +38 -0
  281. package/dist/elements/map-answer.js +93 -0
  282. package/dist/elements/markdown.d.ts +131 -0
  283. package/dist/elements/markdown.js +528 -0
  284. package/dist/elements/math-block.d.ts +51 -0
  285. package/dist/elements/math-block.js +70 -0
  286. package/dist/elements/mcp-server-panel.d.ts +41 -0
  287. package/dist/elements/mcp-server-panel.js +115 -0
  288. package/dist/elements/memory-chips.d.ts +30 -0
  289. package/dist/elements/memory-chips.js +43 -0
  290. package/dist/elements/message-actions.d.ts +38 -0
  291. package/dist/elements/message-actions.js +71 -0
  292. package/dist/elements/message-attachment.d.ts +48 -0
  293. package/dist/elements/message-attachment.js +63 -0
  294. package/dist/elements/message-branches.d.ts +25 -0
  295. package/dist/elements/message-branches.js +65 -0
  296. package/dist/elements/message-pair.d.ts +33 -0
  297. package/dist/elements/message-pair.js +65 -0
  298. package/dist/elements/message-queue.d.ts +31 -0
  299. package/dist/elements/message-queue.js +80 -0
  300. package/dist/elements/message-timing.d.ts +33 -0
  301. package/dist/elements/message-timing.js +37 -0
  302. package/dist/elements/mobile-composer.d.ts +44 -0
  303. package/dist/elements/mobile-composer.js +88 -0
  304. package/dist/elements/model-picker.d.ts +38 -0
  305. package/dist/elements/model-picker.js +69 -0
  306. package/dist/elements/number-ticker.d.ts +18 -0
  307. package/dist/elements/number-ticker.js +47 -0
  308. package/dist/elements/onboarding.d.ts +30 -0
  309. package/dist/elements/onboarding.js +75 -0
  310. package/dist/elements/permission-grant.d.ts +35 -0
  311. package/dist/elements/permission-grant.js +86 -0
  312. package/dist/elements/permission-scopes.d.ts +215 -0
  313. package/dist/elements/permission-scopes.js +249 -0
  314. package/dist/elements/prompt-library.d.ts +43 -0
  315. package/dist/elements/prompt-library.js +117 -0
  316. package/dist/elements/queue-dock.d.ts +101 -0
  317. package/dist/elements/queue-dock.js +132 -0
  318. package/dist/elements/quota-banner.d.ts +26 -0
  319. package/dist/elements/quota-banner.js +66 -0
  320. package/dist/elements/quote-reply.d.ts +44 -0
  321. package/dist/elements/quote-reply.js +79 -0
  322. package/dist/elements/range.d.ts +29 -0
  323. package/dist/elements/range.js +45 -0
  324. package/dist/elements/read-aloud.d.ts +45 -0
  325. package/dist/elements/read-aloud.js +75 -0
  326. package/dist/elements/reasoning-effort.d.ts +36 -0
  327. package/dist/elements/reasoning-effort.js +67 -0
  328. package/dist/elements/reasoning-panel.d.ts +46 -0
  329. package/dist/elements/reasoning-panel.js +75 -0
  330. package/dist/elements/recommendation-card.d.ts +45 -0
  331. package/dist/elements/recommendation-card.js +83 -0
  332. package/dist/elements/regenerate-menu.d.ts +45 -0
  333. package/dist/elements/regenerate-menu.js +51 -0
  334. package/dist/elements/replay.d.ts +217 -0
  335. package/dist/elements/replay.js +498 -0
  336. package/dist/elements/research-report.d.ts +38 -0
  337. package/dist/elements/research-report.js +69 -0
  338. package/dist/elements/retrieval-chunks.d.ts +43 -0
  339. package/dist/elements/retrieval-chunks.js +81 -0
  340. package/dist/elements/revert-dock.d.ts +159 -0
  341. package/dist/elements/revert-dock.js +327 -0
  342. package/dist/elements/reviewable-diff.d.ts +45 -0
  343. package/dist/elements/reviewable-diff.js +110 -0
  344. package/dist/elements/risk-badge.d.ts +52 -0
  345. package/dist/elements/risk-badge.js +91 -0
  346. package/dist/elements/schedule-card.d.ts +42 -0
  347. package/dist/elements/schedule-card.js +90 -0
  348. package/dist/elements/score-breakdown.d.ts +47 -0
  349. package/dist/elements/score-breakdown.js +82 -0
  350. package/dist/elements/scroll-anchor.d.ts +32 -0
  351. package/dist/elements/scroll-anchor.js +123 -0
  352. package/dist/elements/settings-panel.d.ts +52 -0
  353. package/dist/elements/settings-panel.js +107 -0
  354. package/dist/elements/shared-conversation.d.ts +39 -0
  355. package/dist/elements/shared-conversation.js +68 -0
  356. package/dist/elements/sources.d.ts +33 -0
  357. package/dist/elements/sources.js +61 -0
  358. package/dist/elements/speaker-identity.d.ts +32 -0
  359. package/dist/elements/speaker-identity.js +51 -0
  360. package/dist/elements/spec-sheet.d.ts +31 -0
  361. package/dist/elements/spec-sheet.js +45 -0
  362. package/dist/elements/stopped-run.d.ts +22 -0
  363. package/dist/elements/stopped-run.js +50 -0
  364. package/dist/elements/streaming-text.d.ts +31 -0
  365. package/dist/elements/streaming-text.js +45 -0
  366. package/dist/elements/subagent-list.d.ts +37 -0
  367. package/dist/elements/subagent-list.js +79 -0
  368. package/dist/elements/suggestions.d.ts +30 -0
  369. package/dist/elements/suggestions.js +36 -0
  370. package/dist/elements/surfaces.d.ts +85 -0
  371. package/dist/elements/surfaces.js +108 -0
  372. package/dist/elements/tail-status.d.ts +131 -0
  373. package/dist/elements/tail-status.js +94 -0
  374. package/dist/elements/terminal-block.d.ts +29 -0
  375. package/dist/elements/terminal-block.js +54 -0
  376. package/dist/elements/thinking-indicator.d.ts +18 -0
  377. package/dist/elements/thinking-indicator.js +36 -0
  378. package/dist/elements/thread-list.d.ts +35 -0
  379. package/dist/elements/thread-list.js +68 -0
  380. package/dist/elements/thread-search.d.ts +42 -0
  381. package/dist/elements/thread-search.js +99 -0
  382. package/dist/elements/timeline.d.ts +37 -0
  383. package/dist/elements/timeline.js +46 -0
  384. package/dist/elements/todo-list.d.ts +42 -0
  385. package/dist/elements/todo-list.js +59 -0
  386. package/dist/elements/tool-call.d.ts +41 -0
  387. package/dist/elements/tool-call.js +85 -0
  388. package/dist/elements/tool-error.d.ts +39 -0
  389. package/dist/elements/tool-error.js +76 -0
  390. package/dist/elements/tool-group.d.ts +45 -0
  391. package/dist/elements/tool-group.js +71 -0
  392. package/dist/elements/tool-timeline.d.ts +65 -0
  393. package/dist/elements/tool-timeline.js +88 -0
  394. package/dist/elements/trace-waterfall.d.ts +37 -0
  395. package/dist/elements/trace-waterfall.js +69 -0
  396. package/dist/elements/transcript-rules.d.ts +67 -0
  397. package/dist/elements/transcript-rules.js +95 -0
  398. package/dist/elements/turn-footer.d.ts +74 -0
  399. package/dist/elements/turn-footer.js +101 -0
  400. package/dist/elements/typing-indicator.d.ts +16 -0
  401. package/dist/elements/typing-indicator.js +51 -0
  402. package/dist/elements/verdict-row.d.ts +89 -0
  403. package/dist/elements/verdict-row.js +150 -0
  404. package/dist/elements/vocabulary.d.ts +612 -0
  405. package/dist/elements/vocabulary.js +611 -0
  406. package/dist/elements/voice-conversation.d.ts +49 -0
  407. package/dist/elements/voice-conversation.js +123 -0
  408. package/dist/elements/web-preview.d.ts +32 -0
  409. package/dist/elements/web-preview.js +66 -0
  410. package/dist/elements/web-search.d.ts +37 -0
  411. package/dist/elements/web-search.js +66 -0
  412. package/dist/elements/work-collapse.d.ts +103 -0
  413. package/dist/elements/work-collapse.js +131 -0
  414. package/dist/flow/_frame.d.ts +52 -0
  415. package/dist/flow/_frame.js +38 -0
  416. package/dist/flow/controls.d.ts +41 -0
  417. package/dist/flow/controls.js +53 -0
  418. package/dist/flow/flow.css +121 -0
  419. package/dist/flow/handles.d.ts +40 -0
  420. package/dist/flow/handles.js +61 -0
  421. package/dist/flow/index.d.ts +7 -0
  422. package/dist/flow/index.js +7 -0
  423. package/dist/flow/node-card.d.ts +71 -0
  424. package/dist/flow/node-card.js +102 -0
  425. package/dist/flow/signal-edge.d.ts +60 -0
  426. package/dist/flow/signal-edge.js +108 -0
  427. package/dist/flow/use-flow-theme.d.ts +69 -0
  428. package/dist/flow/use-flow-theme.js +109 -0
  429. package/dist/forms/_chassis.d.ts +164 -0
  430. package/dist/forms/_chassis.js +159 -0
  431. package/dist/forms/_glyphs.js +143 -0
  432. package/dist/forms/_listbox.js +55 -0
  433. package/dist/forms/autocomplete.d.ts +61 -0
  434. package/dist/forms/autocomplete.js +88 -0
  435. package/dist/forms/button-group.d.ts +47 -0
  436. package/dist/forms/button-group.js +52 -0
  437. package/dist/forms/checkbox.d.ts +51 -0
  438. package/dist/forms/checkbox.js +98 -0
  439. package/dist/forms/combobox.d.ts +73 -0
  440. package/dist/forms/combobox.js +108 -0
  441. package/dist/forms/env-var-input.d.ts +74 -0
  442. package/dist/forms/env-var-input.js +116 -0
  443. package/dist/forms/field.d.ts +89 -0
  444. package/dist/forms/field.js +102 -0
  445. package/dist/forms/file-upload.d.ts +113 -0
  446. package/dist/forms/file-upload.js +232 -0
  447. package/dist/forms/index.d.ts +26 -0
  448. package/dist/forms/index.js +26 -0
  449. package/dist/forms/input-group.d.ts +36 -0
  450. package/dist/forms/input-group.js +59 -0
  451. package/dist/forms/input.d.ts +45 -0
  452. package/dist/forms/input.js +36 -0
  453. package/dist/forms/multi-select.d.ts +62 -0
  454. package/dist/forms/multi-select.js +107 -0
  455. package/dist/forms/number-field.d.ts +39 -0
  456. package/dist/forms/number-field.js +65 -0
  457. package/dist/forms/otp-field.d.ts +54 -0
  458. package/dist/forms/otp-field.js +59 -0
  459. package/dist/forms/password-input.d.ts +46 -0
  460. package/dist/forms/password-input.js +62 -0
  461. package/dist/forms/radio-group.d.ts +50 -0
  462. package/dist/forms/radio-group.js +64 -0
  463. package/dist/forms/rating.d.ts +69 -0
  464. package/dist/forms/rating.js +103 -0
  465. package/dist/forms/scrub-input.d.ts +81 -0
  466. package/dist/forms/scrub-input.js +249 -0
  467. package/dist/forms/search-input.d.ts +54 -0
  468. package/dist/forms/search-input.js +112 -0
  469. package/dist/forms/select.d.ts +75 -0
  470. package/dist/forms/select.js +91 -0
  471. package/dist/forms/slider.d.ts +44 -0
  472. package/dist/forms/slider.js +65 -0
  473. package/dist/forms/switch.d.ts +36 -0
  474. package/dist/forms/switch.js +71 -0
  475. package/dist/forms/tags-input.d.ts +69 -0
  476. package/dist/forms/tags-input.js +148 -0
  477. package/dist/forms/textarea.d.ts +39 -0
  478. package/dist/forms/textarea.js +37 -0
  479. package/dist/forms/toggle-group.d.ts +41 -0
  480. package/dist/forms/toggle-group.js +56 -0
  481. package/dist/forms/toggle.d.ts +47 -0
  482. package/dist/forms/toggle.js +100 -0
  483. package/dist/icons/containers.d.ts +89 -0
  484. package/dist/icons/containers.js +295 -0
  485. package/dist/icons/index.d.ts +2 -0
  486. package/dist/index.d.ts +138 -0
  487. package/dist/index.js +124 -0
  488. package/dist/instruments/_ansi.js +116 -0
  489. package/dist/instruments/_data-row.d.ts +68 -0
  490. package/dist/instruments/_data-row.js +139 -0
  491. package/dist/instruments/_glyphs.js +90 -0
  492. package/dist/instruments/_ledger-disclosure.js +103 -0
  493. package/dist/instruments/_ledger.d.ts +21 -0
  494. package/dist/instruments/_ledger.js +5 -0
  495. package/dist/instruments/_motion.js +56 -0
  496. package/dist/instruments/_rem.js +21 -0
  497. package/dist/instruments/app-window-frame.d.ts +48 -0
  498. package/dist/instruments/app-window-frame.js +76 -0
  499. package/dist/instruments/code-block.d.ts +35 -0
  500. package/dist/instruments/code-block.js +173 -0
  501. package/dist/instruments/copy-button.d.ts +41 -0
  502. package/dist/instruments/copy-button.js +112 -0
  503. package/dist/instruments/data-row.d.ts +94 -0
  504. package/dist/instruments/data-row.js +151 -0
  505. package/dist/instruments/data-table.d.ts +168 -0
  506. package/dist/instruments/data-table.js +212 -0
  507. package/dist/instruments/data-tree.d.ts +126 -0
  508. package/dist/instruments/data-tree.js +303 -0
  509. package/dist/instruments/group-bar.d.ts +63 -0
  510. package/dist/instruments/group-bar.js +122 -0
  511. package/dist/instruments/index.d.ts +18 -0
  512. package/dist/instruments/index.js +18 -0
  513. package/dist/instruments/ledger.d.ts +204 -0
  514. package/dist/instruments/ledger.js +204 -0
  515. package/dist/instruments/log-viewer.d.ts +74 -0
  516. package/dist/instruments/log-viewer.js +215 -0
  517. package/dist/instruments/meter.d.ts +81 -0
  518. package/dist/instruments/meter.js +96 -0
  519. package/dist/instruments/progress.d.ts +61 -0
  520. package/dist/instruments/progress.js +79 -0
  521. package/dist/instruments/seam-grid.d.ts +66 -0
  522. package/dist/instruments/seam-grid.js +78 -0
  523. package/dist/instruments/sparkline.d.ts +39 -0
  524. package/dist/instruments/sparkline.js +85 -0
  525. package/dist/instruments/stat.d.ts +35 -0
  526. package/dist/instruments/stat.js +59 -0
  527. package/dist/instruments/table.d.ts +170 -0
  528. package/dist/instruments/table.js +237 -0
  529. package/dist/instruments/terminal-frame.d.ts +89 -0
  530. package/dist/instruments/terminal-frame.js +256 -0
  531. package/dist/instruments/two-step-button.d.ts +47 -0
  532. package/dist/instruments/two-step-button.js +166 -0
  533. package/dist/instruments/usage-chart.d.ts +55 -0
  534. package/dist/instruments/usage-chart.js +235 -0
  535. package/dist/layout/_collapse.js +46 -0
  536. package/dist/layout/_glyphs.js +45 -0
  537. package/dist/layout/_ground.d.ts +22 -0
  538. package/dist/layout/_ground.js +9 -0
  539. package/dist/layout/accordion.d.ts +52 -0
  540. package/dist/layout/accordion.js +81 -0
  541. package/dist/layout/bento.d.ts +144 -0
  542. package/dist/layout/bento.js +266 -0
  543. package/dist/layout/breadcrumb.d.ts +35 -0
  544. package/dist/layout/breadcrumb.js +67 -0
  545. package/dist/layout/card.d.ts +51 -0
  546. package/dist/layout/card.js +76 -0
  547. package/dist/layout/carousel.d.ts +96 -0
  548. package/dist/layout/carousel.js +211 -0
  549. package/dist/layout/collapsible.d.ts +74 -0
  550. package/dist/layout/collapsible.js +126 -0
  551. package/dist/layout/container.d.ts +27 -0
  552. package/dist/layout/container.js +43 -0
  553. package/dist/layout/description-list.d.ts +24 -0
  554. package/dist/layout/description-list.js +37 -0
  555. package/dist/layout/frames.d.ts +70 -0
  556. package/dist/layout/frames.js +298 -0
  557. package/dist/layout/grid.d.ts +40 -0
  558. package/dist/layout/grid.js +48 -0
  559. package/dist/layout/index.d.ts +19 -0
  560. package/dist/layout/index.js +18 -0
  561. package/dist/layout/item.d.ts +65 -0
  562. package/dist/layout/item.js +100 -0
  563. package/dist/layout/link.d.ts +48 -0
  564. package/dist/layout/link.js +63 -0
  565. package/dist/layout/pagination.d.ts +54 -0
  566. package/dist/layout/pagination.js +121 -0
  567. package/dist/layout/preview.d.ts +177 -0
  568. package/dist/layout/preview.js +628 -0
  569. package/dist/layout/resizable.d.ts +38 -0
  570. package/dist/layout/resizable.js +68 -0
  571. package/dist/layout/sidebar.d.ts +105 -0
  572. package/dist/layout/sidebar.js +158 -0
  573. package/dist/layout/stack.d.ts +46 -0
  574. package/dist/layout/stack.js +62 -0
  575. package/dist/layout/stepper.d.ts +49 -0
  576. package/dist/layout/stepper.js +81 -0
  577. package/dist/layout/timeline.d.ts +43 -0
  578. package/dist/layout/timeline.js +63 -0
  579. package/dist/lib/aria-class.js +24 -0
  580. package/dist/lib/cn.js +18 -0
  581. package/dist/lib/compose.js +38 -0
  582. package/dist/lib/cva.d.ts +18 -0
  583. package/dist/lib/cva.js +65 -0
  584. package/dist/midi/_notes.d.ts +101 -0
  585. package/dist/midi/_notes.js +183 -0
  586. package/dist/midi/_ruler.d.ts +100 -0
  587. package/dist/midi/_ruler.js +105 -0
  588. package/dist/midi/_time.d.ts +107 -0
  589. package/dist/midi/_time.js +130 -0
  590. package/dist/midi/index.d.ts +9 -0
  591. package/dist/midi/index.js +9 -0
  592. package/dist/midi/musical-time-input.d.ts +48 -0
  593. package/dist/midi/musical-time-input.js +154 -0
  594. package/dist/midi/piano-keyboard.d.ts +50 -0
  595. package/dist/midi/piano-keyboard.js +197 -0
  596. package/dist/midi/spectrum-visualizer.d.ts +65 -0
  597. package/dist/midi/spectrum-visualizer.js +213 -0
  598. package/dist/midi/threshold-rail.d.ts +72 -0
  599. package/dist/midi/threshold-rail.js +214 -0
  600. package/dist/midi/timeline-ruler.d.ts +83 -0
  601. package/dist/midi/timeline-ruler.js +152 -0
  602. package/dist/overlays/_debounce.js +34 -0
  603. package/dist/overlays/_glyphs.js +59 -0
  604. package/dist/overlays/_surface.d.ts +70 -0
  605. package/dist/overlays/_surface.js +70 -0
  606. package/dist/overlays/_wheel.js +42 -0
  607. package/dist/overlays/alert-dialog.d.ts +67 -0
  608. package/dist/overlays/alert-dialog.js +117 -0
  609. package/dist/overlays/command-palette.d.ts +93 -0
  610. package/dist/overlays/command-palette.js +193 -0
  611. package/dist/overlays/context-menu.d.ts +64 -0
  612. package/dist/overlays/context-menu.js +78 -0
  613. package/dist/overlays/dialog.d.ts +72 -0
  614. package/dist/overlays/dialog.js +124 -0
  615. package/dist/overlays/drawer.d.ts +75 -0
  616. package/dist/overlays/drawer.js +151 -0
  617. package/dist/overlays/dropdown-menu.d.ts +79 -0
  618. package/dist/overlays/dropdown-menu.js +156 -0
  619. package/dist/overlays/hover-card.d.ts +58 -0
  620. package/dist/overlays/hover-card.js +91 -0
  621. package/dist/overlays/index.d.ts +15 -0
  622. package/dist/overlays/index.js +15 -0
  623. package/dist/overlays/info-tip.d.ts +41 -0
  624. package/dist/overlays/info-tip.js +45 -0
  625. package/dist/overlays/menubar.d.ts +72 -0
  626. package/dist/overlays/menubar.js +100 -0
  627. package/dist/overlays/popover.d.ts +66 -0
  628. package/dist/overlays/popover.js +114 -0
  629. package/dist/overlays/sheet.d.ts +78 -0
  630. package/dist/overlays/sheet.js +131 -0
  631. package/dist/overlays/toast.d.ts +106 -0
  632. package/dist/overlays/toast.js +146 -0
  633. package/dist/overlays/tooltip.d.ts +57 -0
  634. package/dist/overlays/tooltip.js +95 -0
  635. package/dist/primitives/avatar.d.ts +51 -0
  636. package/dist/primitives/avatar.js +93 -0
  637. package/dist/primitives/button.d.ts +58 -0
  638. package/dist/primitives/button.js +104 -0
  639. package/dist/primitives/chip.d.ts +73 -0
  640. package/dist/primitives/chip.js +238 -0
  641. package/dist/primitives/icon-button.d.ts +41 -0
  642. package/dist/primitives/icon-button.js +59 -0
  643. package/dist/primitives/index.d.ts +10 -0
  644. package/dist/primitives/index.js +10 -0
  645. package/dist/primitives/kbd.d.ts +17 -0
  646. package/dist/primitives/kbd.js +24 -0
  647. package/dist/primitives/separator.d.ts +25 -0
  648. package/dist/primitives/separator.js +30 -0
  649. package/dist/primitives/skeleton.d.ts +20 -0
  650. package/dist/primitives/skeleton.js +27 -0
  651. package/dist/primitives/spinner.d.ts +26 -0
  652. package/dist/primitives/spinner.js +31 -0
  653. package/dist/primitives/status-dot.d.ts +51 -0
  654. package/dist/primitives/status-dot.js +57 -0
  655. package/dist/styles.css +97 -0
  656. package/dist/system/agent-skin.d.ts +27 -0
  657. package/dist/system/agent-skin.js +20 -0
  658. package/dist/system/density.d.ts +73 -0
  659. package/dist/system/density.js +111 -0
  660. package/dist/system/index.d.ts +12 -0
  661. package/dist/system/index.js +10 -0
  662. package/dist/system/overrides.d.ts +80 -0
  663. package/dist/system/overrides.js +277 -0
  664. package/dist/system/portal.d.ts +56 -0
  665. package/dist/system/portal.js +193 -0
  666. package/dist/system/prepaint.d.ts +134 -0
  667. package/dist/system/prepaint.js +120 -0
  668. package/dist/system/theme-provider.d.ts +290 -0
  669. package/dist/system/theme-provider.js +543 -0
  670. package/dist/system/theme-registry.d.ts +53 -0
  671. package/dist/system/theme-registry.js +66 -0
  672. package/dist/system/use-density.d.ts +50 -0
  673. package/dist/system/use-density.js +232 -0
  674. package/dist/system/use-isomorphic-layout-effect.js +33 -0
  675. package/dist/system/use-theme.d.ts +30 -0
  676. package/dist/system/use-theme.js +36 -0
  677. package/dist/system/vocabulary.d.ts +16 -0
  678. package/dist/system/vocabulary.js +125 -0
  679. package/dist/theming/contrast.d.ts +2 -0
  680. package/dist/theming/contrast.js +2 -0
  681. package/dist/theming/create-theme.d.ts +195 -0
  682. package/dist/theming/create-theme.js +524 -0
  683. package/dist/theming/index.d.ts +4 -0
  684. package/dist/theming/index.js +4 -0
  685. package/dist/theming/serialize.d.ts +167 -0
  686. package/dist/theming/serialize.js +241 -0
  687. package/manifest/components/accordion.json +173 -0
  688. package/manifest/components/activity-graph.json +104 -0
  689. package/manifest/components/agent-card.json +150 -0
  690. package/manifest/components/agent-handoff.json +104 -0
  691. package/manifest/components/agent-mode-badge.json +102 -0
  692. package/manifest/components/agent-pile.json +147 -0
  693. package/manifest/components/agent-plan.json +74 -0
  694. package/manifest/components/agent-status.json +87 -0
  695. package/manifest/components/agent-surface.json +93 -0
  696. package/manifest/components/alert-dialog.json +215 -0
  697. package/manifest/components/animated-number.json +75 -0
  698. package/manifest/components/app-bar.json +297 -0
  699. package/manifest/components/app-shell.json +526 -0
  700. package/manifest/components/app-window-frame.json +124 -0
  701. package/manifest/components/approval-card.json +136 -0
  702. package/manifest/components/artifact-card.json +93 -0
  703. package/manifest/components/ask-box.json +288 -0
  704. package/manifest/components/audience-icon.json +46 -0
  705. package/manifest/components/autocomplete.json +262 -0
  706. package/manifest/components/avatar-group.json +83 -0
  707. package/manifest/components/avatar.json +113 -0
  708. package/manifest/components/background-inbox.json +79 -0
  709. package/manifest/components/band.json +104 -0
  710. package/manifest/components/bento.json +306 -0
  711. package/manifest/components/branch-picker.json +146 -0
  712. package/manifest/components/breadcrumb.json +85 -0
  713. package/manifest/components/button-group.json +91 -0
  714. package/manifest/components/button.json +163 -0
  715. package/manifest/components/calendar.json +65 -0
  716. package/manifest/components/canvas-split-body.json +66 -0
  717. package/manifest/components/canvas-split-document.json +55 -0
  718. package/manifest/components/canvas-split-header.json +97 -0
  719. package/manifest/components/canvas-split-line.json +66 -0
  720. package/manifest/components/canvas-split-message.json +70 -0
  721. package/manifest/components/canvas-split-thread.json +55 -0
  722. package/manifest/components/canvas-split.json +61 -0
  723. package/manifest/components/card.json +152 -0
  724. package/manifest/components/carousel.json +242 -0
  725. package/manifest/components/catalogue-icon.json +46 -0
  726. package/manifest/components/channel-beta-icon.json +46 -0
  727. package/manifest/components/channel-matrix.json +239 -0
  728. package/manifest/components/channel-released-icon.json +46 -0
  729. package/manifest/components/chart-container.json +127 -0
  730. package/manifest/components/chart-ramp.json +82 -0
  731. package/manifest/components/chart-swatch.json +72 -0
  732. package/manifest/components/chart-tooltip-content.json +140 -0
  733. package/manifest/components/chart.json +117 -0
  734. package/manifest/components/chat-empty-state.json +55 -0
  735. package/manifest/components/chat-panel-assistant-message.json +52 -0
  736. package/manifest/components/chat-panel-composer.json +74 -0
  737. package/manifest/components/chat-panel-messages.json +52 -0
  738. package/manifest/components/chat-panel-typing.json +52 -0
  739. package/manifest/components/chat-panel-user-message.json +52 -0
  740. package/manifest/components/chat-panel.json +58 -0
  741. package/manifest/components/checkbox-group.json +70 -0
  742. package/manifest/components/checkbox.json +106 -0
  743. package/manifest/components/checkpoint-history.json +91 -0
  744. package/manifest/components/chip.json +174 -0
  745. package/manifest/components/clamp.json +125 -0
  746. package/manifest/components/cli-tool-icon.json +46 -0
  747. package/manifest/components/code-block.json +107 -0
  748. package/manifest/components/code-diff.json +104 -0
  749. package/manifest/components/code-runner.json +124 -0
  750. package/manifest/components/collapsible.json +133 -0
  751. package/manifest/components/color-area.json +62 -0
  752. package/manifest/components/color-field.json +91 -0
  753. package/manifest/components/color-picker.json +235 -0
  754. package/manifest/components/color-slider.json +84 -0
  755. package/manifest/components/color-swatch.json +79 -0
  756. package/manifest/components/colors-section.json +70 -0
  757. package/manifest/components/combobox.json +265 -0
  758. package/manifest/components/command-palette.json +222 -0
  759. package/manifest/components/compaction-row.json +128 -0
  760. package/manifest/components/comparison-card.json +98 -0
  761. package/manifest/components/composer-actions.json +65 -0
  762. package/manifest/components/composer-attach-button.json +65 -0
  763. package/manifest/components/composer-attachment-chip.json +83 -0
  764. package/manifest/components/composer-attachments.json +60 -0
  765. package/manifest/components/composer-bar.json +76 -0
  766. package/manifest/components/composer-command-item.json +85 -0
  767. package/manifest/components/composer-context.json +71 -0
  768. package/manifest/components/composer-input.json +77 -0
  769. package/manifest/components/composer-menu-item.json +75 -0
  770. package/manifest/components/composer-menu.json +89 -0
  771. package/manifest/components/composer-model-item.json +82 -0
  772. package/manifest/components/composer-model-trigger.json +81 -0
  773. package/manifest/components/composer-person-item.json +86 -0
  774. package/manifest/components/composer-send.json +86 -0
  775. package/manifest/components/composer-toolbar.json +65 -0
  776. package/manifest/components/composer-voice-button.json +71 -0
  777. package/manifest/components/composer-voice.json +81 -0
  778. package/manifest/components/composer.json +238 -0
  779. package/manifest/components/computer-use.json +98 -0
  780. package/manifest/components/confidence-marker.json +86 -0
  781. package/manifest/components/connection-state.json +103 -0
  782. package/manifest/components/container.json +75 -0
  783. package/manifest/components/context-breakdown.json +72 -0
  784. package/manifest/components/context-menu.json +134 -0
  785. package/manifest/components/context-usage.json +98 -0
  786. package/manifest/components/conversation-search.json +111 -0
  787. package/manifest/components/copy-button.json +118 -0
  788. package/manifest/components/cost-meter.json +84 -0
  789. package/manifest/components/cue-logotype.json +110 -0
  790. package/manifest/components/cue-mark.json +111 -0
  791. package/manifest/components/cue-portal-frame.json +65 -0
  792. package/manifest/components/data-row.json +222 -0
  793. package/manifest/components/data-table-pagination.json +97 -0
  794. package/manifest/components/data-table-toolbar.json +127 -0
  795. package/manifest/components/data-tree.json +185 -0
  796. package/manifest/components/date-field.json +93 -0
  797. package/manifest/components/date-picker.json +255 -0
  798. package/manifest/components/date-range-picker.json +255 -0
  799. package/manifest/components/day-separator.json +63 -0
  800. package/manifest/components/delegation-card.json +196 -0
  801. package/manifest/components/density.json +93 -0
  802. package/manifest/components/description-list.json +91 -0
  803. package/manifest/components/diagram.json +126 -0
  804. package/manifest/components/dialog.json +222 -0
  805. package/manifest/components/disclosure.json +134 -0
  806. package/manifest/components/dmx-bar.json +107 -0
  807. package/manifest/components/dmx-strip.json +117 -0
  808. package/manifest/components/document-reference.json +108 -0
  809. package/manifest/components/draft-restore.json +96 -0
  810. package/manifest/components/drawer.json +204 -0
  811. package/manifest/components/dropdown-menu.json +275 -0
  812. package/manifest/components/edit-message.json +131 -0
  813. package/manifest/components/elements-command-palette.json +122 -0
  814. package/manifest/components/elements-composer.json +71 -0
  815. package/manifest/components/elements-data-table.json +75 -0
  816. package/manifest/components/elements-timeline.json +77 -0
  817. package/manifest/components/elicitation-form.json +130 -0
  818. package/manifest/components/empty-state-composer.json +71 -0
  819. package/manifest/components/empty-state-greeting.json +49 -0
  820. package/manifest/components/empty-state-suggestion.json +60 -0
  821. package/manifest/components/empty-state-suggestions.json +49 -0
  822. package/manifest/components/empty-state.json +111 -0
  823. package/manifest/components/end-of-turn-summary.json +89 -0
  824. package/manifest/components/env-var-input.json +194 -0
  825. package/manifest/components/error-state.json +93 -0
  826. package/manifest/components/export-dialog.json +101 -0
  827. package/manifest/components/eyebrow.json +59 -0
  828. package/manifest/components/feedback-dialog.json +133 -0
  829. package/manifest/components/field-description.json +66 -0
  830. package/manifest/components/field-error.json +87 -0
  831. package/manifest/components/field-label.json +66 -0
  832. package/manifest/components/field.json +82 -0
  833. package/manifest/components/file-tree.json +96 -0
  834. package/manifest/components/file-upload.json +204 -0
  835. package/manifest/components/flow-background.json +50 -0
  836. package/manifest/components/flow-controls.json +50 -0
  837. package/manifest/components/flow-graph.json +86 -0
  838. package/manifest/components/folder-icon.json +46 -0
  839. package/manifest/components/footer.json +133 -0
  840. package/manifest/components/frac.json +68 -0
  841. package/manifest/components/frames.json +210 -0
  842. package/manifest/components/generation-loader.json +78 -0
  843. package/manifest/components/generative-ui.json +125 -0
  844. package/manifest/components/grid.json +132 -0
  845. package/manifest/components/group-bar.json +122 -0
  846. package/manifest/components/guardrail-notice.json +109 -0
  847. package/manifest/components/hover-card.json +189 -0
  848. package/manifest/components/icon-button.json +106 -0
  849. package/manifest/components/image-generation.json +73 -0
  850. package/manifest/components/info-tip.json +133 -0
  851. package/manifest/components/inline-citation.json +90 -0
  852. package/manifest/components/input-group.json +112 -0
  853. package/manifest/components/input.json +121 -0
  854. package/manifest/components/inspector.json +199 -0
  855. package/manifest/components/item.json +163 -0
  856. package/manifest/components/job-progress.json +116 -0
  857. package/manifest/components/kbd.json +52 -0
  858. package/manifest/components/launcher-bubble.json +130 -0
  859. package/manifest/components/ledger.json +330 -0
  860. package/manifest/components/link.json +94 -0
  861. package/manifest/components/live-region-announcer.json +95 -0
  862. package/manifest/components/log-viewer.json +172 -0
  863. package/manifest/components/map-answer.json +97 -0
  864. package/manifest/components/markdown-text.json +126 -0
  865. package/manifest/components/math-block.json +84 -0
  866. package/manifest/components/mcp-server-icon.json +46 -0
  867. package/manifest/components/mcp-server-panel.json +102 -0
  868. package/manifest/components/memory-chips.json +73 -0
  869. package/manifest/components/menubar.json +184 -0
  870. package/manifest/components/message-actions.json +125 -0
  871. package/manifest/components/message-attachments.json +71 -0
  872. package/manifest/components/message-branches.json +83 -0
  873. package/manifest/components/message-list.json +121 -0
  874. package/manifest/components/message-pair.json +107 -0
  875. package/manifest/components/message-queue.json +85 -0
  876. package/manifest/components/message-timing.json +69 -0
  877. package/manifest/components/message.json +149 -0
  878. package/manifest/components/meter.json +150 -0
  879. package/manifest/components/mobile-composer.json +163 -0
  880. package/manifest/components/model-picker.json +87 -0
  881. package/manifest/components/multi-select.json +255 -0
  882. package/manifest/components/musical-time-input.json +141 -0
  883. package/manifest/components/navigation-menu.json +269 -0
  884. package/manifest/components/node-card.json +144 -0
  885. package/manifest/components/node-handle.json +84 -0
  886. package/manifest/components/number-field.json +131 -0
  887. package/manifest/components/number-ticker.json +67 -0
  888. package/manifest/components/onboarding.json +100 -0
  889. package/manifest/components/otp-field.json +163 -0
  890. package/manifest/components/page-shell.json +129 -0
  891. package/manifest/components/pagination.json +108 -0
  892. package/manifest/components/panel-header.json +89 -0
  893. package/manifest/components/panel.json +71 -0
  894. package/manifest/components/password-input.json +171 -0
  895. package/manifest/components/permission-grant.json +115 -0
  896. package/manifest/components/permission-scopes.json +184 -0
  897. package/manifest/components/piano-keyboard.json +149 -0
  898. package/manifest/components/plussie.json +140 -0
  899. package/manifest/components/popover.json +231 -0
  900. package/manifest/components/preset-section.json +80 -0
  901. package/manifest/components/preview.json +294 -0
  902. package/manifest/components/progress.json +114 -0
  903. package/manifest/components/prompt-library.json +122 -0
  904. package/manifest/components/queue-dock.json +139 -0
  905. package/manifest/components/quota-banner.json +113 -0
  906. package/manifest/components/quote-reply.json +129 -0
  907. package/manifest/components/radio-group.json +83 -0
  908. package/manifest/components/radio.json +94 -0
  909. package/manifest/components/rating.json +188 -0
  910. package/manifest/components/read-aloud.json +139 -0
  911. package/manifest/components/reasoning-effort.json +95 -0
  912. package/manifest/components/reasoning-panel.json +135 -0
  913. package/manifest/components/recommendation-card.json +133 -0
  914. package/manifest/components/regenerate-menu.json +107 -0
  915. package/manifest/components/replay-player.json +124 -0
  916. package/manifest/components/research-report.json +87 -0
  917. package/manifest/components/resizable.json +91 -0
  918. package/manifest/components/retrieval-chunks.json +98 -0
  919. package/manifest/components/revert-dock.json +197 -0
  920. package/manifest/components/reviewable-diff.json +113 -0
  921. package/manifest/components/risk-badge.json +89 -0
  922. package/manifest/components/row.json +122 -0
  923. package/manifest/components/schedule-card.json +121 -0
  924. package/manifest/components/score-breakdown.json +108 -0
  925. package/manifest/components/scroll-anchor.json +84 -0
  926. package/manifest/components/scroll-area.json +114 -0
  927. package/manifest/components/scrollable-tabs-list.json +91 -0
  928. package/manifest/components/scrub-input.json +268 -0
  929. package/manifest/components/seam-cell.json +91 -0
  930. package/manifest/components/seam-grid.json +84 -0
  931. package/manifest/components/seam-list.json +56 -0
  932. package/manifest/components/search-input.json +195 -0
  933. package/manifest/components/section-header.json +140 -0
  934. package/manifest/components/segmented-control.json +178 -0
  935. package/manifest/components/select.json +253 -0
  936. package/manifest/components/separator.json +56 -0
  937. package/manifest/components/settings-panel.json +152 -0
  938. package/manifest/components/shape-section.json +70 -0
  939. package/manifest/components/shared-conversation.json +107 -0
  940. package/manifest/components/sheet.json +210 -0
  941. package/manifest/components/shimmer-label.json +61 -0
  942. package/manifest/components/sidebar.json +245 -0
  943. package/manifest/components/signal-edge.json +56 -0
  944. package/manifest/components/skeleton.json +46 -0
  945. package/manifest/components/skill-icon.json +46 -0
  946. package/manifest/components/slider.json +106 -0
  947. package/manifest/components/sources.json +97 -0
  948. package/manifest/components/sparkline.json +89 -0
  949. package/manifest/components/speaker-identity.json +66 -0
  950. package/manifest/components/spec-sheet.json +93 -0
  951. package/manifest/components/spectrum-visualizer.json +147 -0
  952. package/manifest/components/spinner.json +71 -0
  953. package/manifest/components/stack-icon.json +46 -0
  954. package/manifest/components/stack.json +143 -0
  955. package/manifest/components/stacks-matrix-icon.json +46 -0
  956. package/manifest/components/stat.json +111 -0
  957. package/manifest/components/status-bar.json +233 -0
  958. package/manifest/components/status-dot.json +97 -0
  959. package/manifest/components/stepper.json +107 -0
  960. package/manifest/components/stopped-run.json +97 -0
  961. package/manifest/components/streaming-text.json +82 -0
  962. package/manifest/components/sub.json +45 -0
  963. package/manifest/components/subagent-list.json +106 -0
  964. package/manifest/components/suggestions.json +106 -0
  965. package/manifest/components/sup.json +45 -0
  966. package/manifest/components/swap-label.json +86 -0
  967. package/manifest/components/switch.json +102 -0
  968. package/manifest/components/table-scroll-region.json +78 -0
  969. package/manifest/components/table.json +306 -0
  970. package/manifest/components/tabs.json +156 -0
  971. package/manifest/components/tags-input.json +255 -0
  972. package/manifest/components/tail-status.json +138 -0
  973. package/manifest/components/terminal-block.json +111 -0
  974. package/manifest/components/terminal-frame.json +146 -0
  975. package/manifest/components/textarea.json +104 -0
  976. package/manifest/components/theme-configurator.json +158 -0
  977. package/manifest/components/theme-provider.json +228 -0
  978. package/manifest/components/thinking-indicator.json +69 -0
  979. package/manifest/components/thread-list.json +87 -0
  980. package/manifest/components/thread-search.json +108 -0
  981. package/manifest/components/threshold-rail.json +223 -0
  982. package/manifest/components/time-boundary.json +68 -0
  983. package/manifest/components/time-field.json +93 -0
  984. package/manifest/components/timeline-ruler.json +178 -0
  985. package/manifest/components/timeline.json +131 -0
  986. package/manifest/components/title-bar.json +97 -0
  987. package/manifest/components/toast.json +140 -0
  988. package/manifest/components/todo-list.json +76 -0
  989. package/manifest/components/toggle-group.json +134 -0
  990. package/manifest/components/toggle.json +140 -0
  991. package/manifest/components/token-editor.json +106 -0
  992. package/manifest/components/tool-call-card.json +268 -0
  993. package/manifest/components/tool-call.json +147 -0
  994. package/manifest/components/tool-error.json +141 -0
  995. package/manifest/components/tool-group.json +97 -0
  996. package/manifest/components/tool-timeline.json +147 -0
  997. package/manifest/components/toolbar.json +192 -0
  998. package/manifest/components/tooltip.json +199 -0
  999. package/manifest/components/trace-waterfall.json +84 -0
  1000. package/manifest/components/tree-visibility-toggle.json +99 -0
  1001. package/manifest/components/tree.json +182 -0
  1002. package/manifest/components/turn-footer.json +133 -0
  1003. package/manifest/components/two-step-button.json +150 -0
  1004. package/manifest/components/typing-indicator.json +60 -0
  1005. package/manifest/components/universe-grid.json +155 -0
  1006. package/manifest/components/unread-divider.json +58 -0
  1007. package/manifest/components/usage-chart.json +162 -0
  1008. package/manifest/components/verdict-row.json +106 -0
  1009. package/manifest/components/voice-conversation.json +141 -0
  1010. package/manifest/components/web-preview.json +105 -0
  1011. package/manifest/components/web-search.json +108 -0
  1012. package/manifest/components/work-collapse.json +125 -0
  1013. package/manifest/fixtures.json +776 -0
  1014. package/manifest/manifest.json +5037 -0
  1015. package/manifest/tokens.json +288 -0
  1016. package/package.json +278 -0
@@ -0,0 +1,144 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { bareControlClasses, controlGroupFocusClasses, controlSurface } from "../forms/_chassis.js";
4
+ import { Button } from "../primitives/button.js";
5
+ import { useIsomorphicLayoutEffect } from "../system/use-isomorphic-layout-effect.js";
6
+ import * as React from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/chat/composer.tsx
9
+ /** How tall the box may grow before it starts scrolling instead. */
10
+ const DEFAULT_MAX_ROWS = 8;
11
+ /**
12
+ * The thing you type into: an auto-growing textarea, a send affordance, and
13
+ * slots for everything a host wants to hang off them.
14
+ *
15
+ * Three decisions worth stating:
16
+ *
17
+ * - **It grows, it does not scroll.** A one-line box that hides the second half
18
+ * of what you wrote is the most-complained-about part of every chat UI. The
19
+ * box starts at the tall control rung and grows to `maxRows` before it gives
20
+ * up and scrolls.
21
+ * - **The submit gesture is a setting.** Enter-to-send is right for a chat lane
22
+ * and wrong for a prompt editor where every draft is three paragraphs, so
23
+ * both are first-class and the *other* key always inserts a newline.
24
+ * - **Stop is never disabled.** While a run is in flight the composer is
25
+ * `disabled`, but the button that ends the run cannot inherit that — a stop
26
+ * you cannot press is not a stop.
27
+ *
28
+ * The ref lands on the textarea rather than the form: focusing the composer is
29
+ * the thing hosts actually reach for.
30
+ *
31
+ * @example
32
+ * <Composer onSend={send} />
33
+ * @example
34
+ * <Composer submitKey="mod+enter" busy={running} onStop={abort} onSend={send} />
35
+ */
36
+ const Composer = React.forwardRef(function Composer({ className, onSend, value: valueProp, defaultValue = "", onValueChange, placeholder = "Message", disabled = false, busy = false, onStop, submitKey = "enter", maxRows = DEFAULT_MAX_ROWS, sendLabel = "Send", stopLabel = "Stop", attachments, toolbar, hint, "aria-label": ariaLabel = "Message", ...elementProps }, ref) {
37
+ const isControlled = valueProp !== void 0;
38
+ const [uncontrolled, setUncontrolled] = React.useState(defaultValue);
39
+ const value = isControlled ? valueProp : uncontrolled;
40
+ const inputRef = React.useRef(null);
41
+ const setInputRef = React.useCallback((element) => {
42
+ inputRef.current = element;
43
+ if (typeof ref === "function") ref(element);
44
+ else if (ref !== null) ref.current = element;
45
+ }, [ref]);
46
+ useIsomorphicLayoutEffect(() => {
47
+ const element = inputRef.current;
48
+ if (element === null) return;
49
+ element.style.height = "auto";
50
+ const line = Number.parseFloat(getComputedStyle(element).lineHeight);
51
+ const cap = Number.isFinite(line) && line > 0 ? line * maxRows : Number.POSITIVE_INFINITY;
52
+ const content = element.scrollHeight;
53
+ if (content > 0) element.style.height = `${Math.min(content, cap)}px`;
54
+ else element.style.removeProperty("height");
55
+ element.style.overflowY = content > cap ? "auto" : "hidden";
56
+ }, [maxRows, value]);
57
+ const setValue = React.useCallback((next) => {
58
+ if (!isControlled) setUncontrolled(next);
59
+ onValueChange?.(next);
60
+ }, [isControlled, onValueChange]);
61
+ const ready = value.trim().length > 0;
62
+ const submit = React.useCallback(() => {
63
+ if (disabled || !ready) return;
64
+ onSend(value.trim());
65
+ if (!isControlled) setUncontrolled("");
66
+ }, [
67
+ disabled,
68
+ isControlled,
69
+ onSend,
70
+ ready,
71
+ value
72
+ ]);
73
+ const onKeyDown = (event) => {
74
+ if (event.key !== "Enter" || event.nativeEvent.isComposing) return;
75
+ const withMod = event.metaKey || event.ctrlKey;
76
+ if (!(submitKey === "enter" ? !event.shiftKey && !withMod : withMod)) return;
77
+ event.preventDefault();
78
+ submit();
79
+ };
80
+ return /* @__PURE__ */ jsxs("form", {
81
+ "data-slot": "composer",
82
+ "data-busy": busy ? "" : void 0,
83
+ className: cn("flex min-w-0 flex-col gap-(--cue-space-2)", className),
84
+ onSubmit: (event) => {
85
+ event.preventDefault();
86
+ submit();
87
+ },
88
+ ...elementProps,
89
+ children: [
90
+ attachments === void 0 ? null : /* @__PURE__ */ jsx("div", {
91
+ "data-slot": "composer-attachments",
92
+ className: "flex min-w-0 flex-wrap items-center gap-(--cue-space-2)",
93
+ children: attachments
94
+ }),
95
+ /* @__PURE__ */ jsxs("div", {
96
+ "data-slot": "composer-field",
97
+ className: cn(controlSurface, controlGroupFocusClasses, "flex items-end gap-(--cue-space-3) p-(--cue-space-3)"),
98
+ children: [
99
+ /* @__PURE__ */ jsx("textarea", {
100
+ ref: setInputRef,
101
+ rows: 1,
102
+ "data-slot": "composer-input",
103
+ "aria-label": ariaLabel,
104
+ placeholder,
105
+ disabled,
106
+ value,
107
+ className: cn(bareControlClasses, "min-h-control-lg resize-none self-stretch py-(--cue-space-2) text-(length:--cue-text-body) leading-(--cue-leading-ui)"),
108
+ onChange: (event) => setValue(event.target.value),
109
+ onKeyDown
110
+ }),
111
+ toolbar === void 0 ? null : /* @__PURE__ */ jsx("div", {
112
+ "data-slot": "composer-toolbar",
113
+ className: "flex shrink-0 items-center gap-(--cue-space-2)",
114
+ children: toolbar
115
+ }),
116
+ busy && onStop !== void 0 ? /* @__PURE__ */ jsx(Button, {
117
+ type: "button",
118
+ variant: "outline",
119
+ size: "sm",
120
+ "data-slot": "composer-stop",
121
+ className: "shrink-0",
122
+ onClick: onStop,
123
+ children: stopLabel
124
+ }) : /* @__PURE__ */ jsx(Button, {
125
+ type: "submit",
126
+ variant: "primary",
127
+ size: "sm",
128
+ "data-slot": "composer-send",
129
+ className: "shrink-0",
130
+ disabled: disabled || !ready,
131
+ children: sendLabel
132
+ })
133
+ ]
134
+ }),
135
+ hint === void 0 ? null : /* @__PURE__ */ jsx("div", {
136
+ "data-slot": "composer-hint",
137
+ className: "flex min-w-0 items-center justify-between gap-(--cue-space-3) font-mono text-(length:--cue-text-micro) text-fg-subtle",
138
+ children: hint
139
+ })
140
+ ]
141
+ });
142
+ });
143
+ //#endregion
144
+ export { Composer };
@@ -0,0 +1,60 @@
1
+ import * as React from "react";
2
+ //#region src/chat/delegation-card.d.ts
3
+ /** Which way the delegation runs relative to the lane you are reading. */
4
+ type DelegationDirection = "outbound" | "inbound";
5
+ /** Where the delegated work has got to. */
6
+ type DelegationStatus = "working" | "done" | "failed" | "idle";
7
+ interface DelegationCardProps extends Omit<React.ComponentPropsWithoutRef<"div">, "title" | "onToggle"> {
8
+ /** Slug of the agent on the other end of the delegation. */
9
+ agent: string;
10
+ /** Slug of the orchestrator, so its lane takes the theme accent. */
11
+ rootAgent?: string;
12
+ /** `outbound` (we asked them) or `inbound` (they asked us). Defaults to `"outbound"`. */
13
+ direction?: DelegationDirection;
14
+ /** What the delegate was asked to do — one line, already summarised. */
15
+ task?: React.ReactNode;
16
+ /** Where the work has got to. Omit to draw no status line at all. */
17
+ status?: DelegationStatus;
18
+ /** What the delegate is doing right now. Shown beside the spinner while `working`. */
19
+ activity?: React.ReactNode;
20
+ /** Open state when controlled. Pass with `onOpenChange`. */
21
+ open?: boolean;
22
+ /** Initial open state. Defaults to open for an inbound card, shut for an outbound one. */
23
+ defaultOpen?: boolean;
24
+ /** Called with the state the card is asking to move to. */
25
+ onOpenChange?: (open: boolean) => void;
26
+ /** What a finished delegation says. Defaults to `"Completed"`. */
27
+ doneLabel?: React.ReactNode;
28
+ /** What a failed delegation says. Defaults to `"Failed"`. */
29
+ failedLabel?: React.ReactNode;
30
+ /** The nested transcript. */
31
+ children?: React.ReactNode;
32
+ }
33
+ /**
34
+ * One delegation, folded into a card.
35
+ *
36
+ * A multi-agent run is a tree, and rendering it flat is what turns a transcript
37
+ * into noise: the reader loses which turns belong to which sub-agent and how
38
+ * deep they are. This is the fold — a one-line header naming who was asked and
39
+ * what for, a live status line under it, and the sub-agent's own transcript
40
+ * behind a disclosure, railed in that agent's colour so nesting is legible at a
41
+ * glance.
42
+ *
43
+ * The body is mounted and unmounted rather than height-animated. A delegation's
44
+ * transcript grows while it is open, and animating the height of something that
45
+ * changes size on its own is how a panel ends up permanently mid-transition.
46
+ *
47
+ * Direction matters to the sentence. From the caller's lane the card reads
48
+ * "asked researcher — …"; in the delegate's own lane it reads "chief asked
49
+ * — …", which is the same fact from the other side.
50
+ *
51
+ * @example
52
+ * <DelegationCard agent="researcher" task="find three references" status="working">
53
+ * {turns}
54
+ * </DelegationCard>
55
+ * @example
56
+ * <DelegationCard agent="chief" direction="inbound" task="draft the brief">{turns}</DelegationCard>
57
+ */
58
+ declare const DelegationCard: React.ForwardRefExoticComponent<DelegationCardProps & React.RefAttributes<HTMLDivElement>>;
59
+ //#endregion
60
+ export { DelegationCard, DelegationCardProps, DelegationDirection, DelegationStatus };
@@ -0,0 +1,129 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { agentColor } from "./agent-color.js";
4
+ import { CheckGlyph } from "./_glyphs.js";
5
+ import { Spinner } from "../primitives/spinner.js";
6
+ import * as React from "react";
7
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/chat/delegation-card.tsx
9
+ /**
10
+ * One delegation, folded into a card.
11
+ *
12
+ * A multi-agent run is a tree, and rendering it flat is what turns a transcript
13
+ * into noise: the reader loses which turns belong to which sub-agent and how
14
+ * deep they are. This is the fold — a one-line header naming who was asked and
15
+ * what for, a live status line under it, and the sub-agent's own transcript
16
+ * behind a disclosure, railed in that agent's colour so nesting is legible at a
17
+ * glance.
18
+ *
19
+ * The body is mounted and unmounted rather than height-animated. A delegation's
20
+ * transcript grows while it is open, and animating the height of something that
21
+ * changes size on its own is how a panel ends up permanently mid-transition.
22
+ *
23
+ * Direction matters to the sentence. From the caller's lane the card reads
24
+ * "asked researcher — …"; in the delegate's own lane it reads "chief asked
25
+ * — …", which is the same fact from the other side.
26
+ *
27
+ * @example
28
+ * <DelegationCard agent="researcher" task="find three references" status="working">
29
+ * {turns}
30
+ * </DelegationCard>
31
+ * @example
32
+ * <DelegationCard agent="chief" direction="inbound" task="draft the brief">{turns}</DelegationCard>
33
+ */
34
+ const DelegationCard = React.forwardRef(function DelegationCard({ className, agent, rootAgent, direction = "outbound", task, status, activity, open: openProp, defaultOpen, onOpenChange, doneLabel = "Completed", failedLabel = "Failed", children, style, ...elementProps }, ref) {
35
+ const bodyId = React.useId();
36
+ const isControlled = openProp !== void 0;
37
+ const [uncontrolled, setUncontrolled] = React.useState(defaultOpen ?? direction === "inbound");
38
+ const open = isControlled ? openProp : uncontrolled;
39
+ const toggle = () => {
40
+ const next = !open;
41
+ if (!isControlled) setUncontrolled(next);
42
+ onOpenChange?.(next);
43
+ };
44
+ const color = agentColor(agent, { root: rootAgent });
45
+ const name = /* @__PURE__ */ jsx("span", {
46
+ className: "text-(--agent-color)",
47
+ children: agent
48
+ });
49
+ return /* @__PURE__ */ jsxs("div", {
50
+ ref,
51
+ "data-slot": "delegation-card",
52
+ "data-direction": direction,
53
+ "data-state": open ? "open" : "closed",
54
+ "data-status": status,
55
+ className: cn("flex min-w-0 flex-col gap-(--cue-space-2) rounded-(--radius-control) border border-border px-(--cue-space-3) py-(--cue-space-2)", className),
56
+ style: {
57
+ "--agent-color": color,
58
+ ...style
59
+ },
60
+ ...elementProps,
61
+ children: [
62
+ /* @__PURE__ */ jsxs("button", {
63
+ type: "button",
64
+ "data-slot": "delegation-card-trigger",
65
+ "aria-expanded": open,
66
+ "aria-controls": open ? bodyId : void 0,
67
+ className: "flex min-w-0 cursor-pointer items-center gap-(--cue-space-2) border-0 bg-transparent p-0 text-start font-mono text-(length:--cue-text-ui) text-fg-muted outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-accent",
68
+ onClick: toggle,
69
+ children: [
70
+ /* @__PURE__ */ jsx("span", {
71
+ "aria-hidden": "true",
72
+ "data-slot": "delegation-card-caret",
73
+ className: "shrink-0 text-(length:--cue-text-micro) leading-none select-none",
74
+ children: open ? "▾" : "▸"
75
+ }),
76
+ /* @__PURE__ */ jsx("span", {
77
+ "aria-hidden": "true",
78
+ className: "shrink-0 text-(--agent-color)",
79
+ children: "●"
80
+ }),
81
+ /* @__PURE__ */ jsxs("span", {
82
+ "data-slot": "delegation-card-title",
83
+ className: "min-w-0 truncate",
84
+ children: [direction === "inbound" ? /* @__PURE__ */ jsxs(Fragment, { children: [name, " asked"] }) : /* @__PURE__ */ jsxs(Fragment, { children: ["asked ", name] }), task === void 0 ? null : /* @__PURE__ */ jsxs("span", {
85
+ className: "text-fg-subtle",
86
+ children: [" — ", task]
87
+ })]
88
+ })
89
+ ]
90
+ }),
91
+ status === void 0 ? null : /* @__PURE__ */ jsxs("div", {
92
+ "data-slot": "delegation-card-status",
93
+ "data-status": status,
94
+ className: cn("flex min-w-0 items-center gap-(--cue-space-2) ps-(--cue-space-5) font-mono text-(length:--cue-text-micro)", status === "failed" ? "text-danger" : "text-fg-subtle"),
95
+ children: [
96
+ status === "working" ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Spinner, {
97
+ size: "sm",
98
+ label: "working",
99
+ "data-slot": "delegation-card-spinner",
100
+ className: "text-(--agent-color)"
101
+ }), /* @__PURE__ */ jsx("span", {
102
+ className: "min-w-0 truncate",
103
+ children: activity ?? "working…"
104
+ })] }) : null,
105
+ status === "done" ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(CheckGlyph, { className: "size-icon-sm shrink-0 text-ok" }), /* @__PURE__ */ jsx("span", {
106
+ className: "min-w-0 truncate",
107
+ children: doneLabel
108
+ })] }) : null,
109
+ status === "failed" ? /* @__PURE__ */ jsx("span", {
110
+ className: "min-w-0 truncate",
111
+ children: failedLabel
112
+ }) : null,
113
+ status === "idle" ? /* @__PURE__ */ jsx("span", {
114
+ className: "min-w-0 truncate",
115
+ children: activity ?? "waiting"
116
+ }) : null
117
+ ]
118
+ }),
119
+ open ? /* @__PURE__ */ jsx("div", {
120
+ id: bodyId,
121
+ "data-slot": "delegation-card-body",
122
+ className: "ms-(--cue-space-3) flex min-w-0 flex-col gap-(--cue-space-2) border-s-2 [border-inline-start-color:var(--agent-color)] ps-(--cue-space-4)",
123
+ children
124
+ }) : null
125
+ ]
126
+ });
127
+ });
128
+ //#endregion
129
+ export { DelegationCard };
@@ -0,0 +1,8 @@
1
+ import { AskAnswer, AskBox, AskBoxProps, AskDanger, AskKind, AskOption } from "./ask-box.js";
2
+ import { Message, MessageProps, MessageRole } from "./message.js";
3
+ import { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, AgentColorOptions, agentColor, agentColorStyle } from "./agent-color.js";
4
+ import { AgentPile, AgentPileEntry, AgentPileProps, AgentPileSize } from "./agent-pile.js";
5
+ import { Composer, ComposerProps, ComposerSubmitKey } from "./composer.js";
6
+ import { DelegationCard, DelegationCardProps, DelegationDirection, DelegationStatus } from "./delegation-card.js";
7
+ import { MessageList, MessageListProps } from "./message-list.js";
8
+ export { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, type AgentColorOptions, AgentPile, type AgentPileEntry, type AgentPileProps, type AgentPileSize, type AskAnswer, AskBox, type AskBoxProps, type AskDanger, type AskKind, type AskOption, Composer, type ComposerProps, type ComposerSubmitKey, DelegationCard, type DelegationCardProps, type DelegationDirection, type DelegationStatus, Message, MessageList, type MessageListProps, type MessageProps, type MessageRole, agentColor, agentColorStyle };
@@ -0,0 +1,8 @@
1
+ import { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, agentColor, agentColorStyle } from "./agent-color.js";
2
+ import { AgentPile } from "./agent-pile.js";
3
+ import { AskBox } from "./ask-box.js";
4
+ import { Composer } from "./composer.js";
5
+ import { DelegationCard } from "./delegation-card.js";
6
+ import { Message } from "./message.js";
7
+ import { MessageList } from "./message-list.js";
8
+ export { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, AgentPile, AskBox, Composer, DelegationCard, Message, MessageList, agentColor, agentColorStyle };
@@ -0,0 +1,45 @@
1
+ import * as React from "react";
2
+ //#region src/chat/message-list.d.ts
3
+ interface MessageListProps extends Omit<React.ComponentPropsWithoutRef<"div">, "onScroll"> {
4
+ /** The turns, oldest first — normally {@link Message}s. */
5
+ children?: React.ReactNode;
6
+ /** Stick to the bottom as turns arrive. Defaults to `true`. */
7
+ follow?: boolean;
8
+ /** Fixed height in px at the 16px root, emitted as rem. Omit to fill the parent. */
9
+ height?: number;
10
+ /** Label on the catch-up pill. Defaults to `"Jump to latest"`. */
11
+ jumpLabel?: React.ReactNode;
12
+ /** What to say before the first turn. Defaults to `"No messages yet"`. */
13
+ emptyLabel?: React.ReactNode;
14
+ /** Accessible name for the transcript. Required in practice — name the thread. */
15
+ "aria-label"?: string;
16
+ }
17
+ /**
18
+ * The transcript scroller: sticks to the bottom, and stops fighting you the
19
+ * moment you scroll up.
20
+ *
21
+ * Following is a *mode*, not a scroll position. While pinned to the bottom the
22
+ * view follows new turns; scroll up to read something and it lets go and offers
23
+ * a "jump to latest" pill instead — because a stream that yanks the viewport
24
+ * mid-sentence is the single most common reason people stop reading a chat
25
+ * pane. Coming back to the bottom re-arms it.
26
+ *
27
+ * It follows a turn that is still growing, too — the items container is watched
28
+ * for growth, so a streaming bubble keeps the bottom in view without the host
29
+ * adding anything, while something merely collapsing leaves the view alone. And
30
+ * when you have scrolled up, a turn that grows offers the pill instead of
31
+ * pulling you down.
32
+ *
33
+ * Deliberately **not** virtualised. A virtualiser needs a measurable row height
34
+ * and chat turns are variable-height by nature; the cost of getting that wrong
35
+ * (jumping scrollbars) is worse than the cost of a few hundred DOM nodes. When
36
+ * a thread really is unbounded, page it — do not virtualise it.
37
+ *
38
+ * @example
39
+ * <MessageList aria-label="Thread" height={480}>
40
+ * {turns.map((t) => <Message key={t.id} agent={t.agent}>{t.text}</Message>)}
41
+ * </MessageList>
42
+ */
43
+ declare const MessageList: React.ForwardRefExoticComponent<MessageListProps & React.RefAttributes<HTMLDivElement>>;
44
+ //#endregion
45
+ export { MessageList, MessageListProps };
@@ -0,0 +1,141 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { ChevronDownGlyph } from "./_glyphs.js";
4
+ import { useIsomorphicLayoutEffect } from "../system/use-isomorphic-layout-effect.js";
5
+ import * as React from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ //#region src/chat/message-list.tsx
8
+ /** Slack, in px, for "close enough to the bottom to count as pinned". */
9
+ const BOTTOM_TOLERANCE = 8;
10
+ /** The reference root font size a `height` prop is quoted against. */
11
+ const ROOT_PX = 16;
12
+ /**
13
+ * The transcript scroller: sticks to the bottom, and stops fighting you the
14
+ * moment you scroll up.
15
+ *
16
+ * Following is a *mode*, not a scroll position. While pinned to the bottom the
17
+ * view follows new turns; scroll up to read something and it lets go and offers
18
+ * a "jump to latest" pill instead — because a stream that yanks the viewport
19
+ * mid-sentence is the single most common reason people stop reading a chat
20
+ * pane. Coming back to the bottom re-arms it.
21
+ *
22
+ * It follows a turn that is still growing, too — the items container is watched
23
+ * for growth, so a streaming bubble keeps the bottom in view without the host
24
+ * adding anything, while something merely collapsing leaves the view alone. And
25
+ * when you have scrolled up, a turn that grows offers the pill instead of
26
+ * pulling you down.
27
+ *
28
+ * Deliberately **not** virtualised. A virtualiser needs a measurable row height
29
+ * and chat turns are variable-height by nature; the cost of getting that wrong
30
+ * (jumping scrollbars) is worse than the cost of a few hundred DOM nodes. When
31
+ * a thread really is unbounded, page it — do not virtualise it.
32
+ *
33
+ * @example
34
+ * <MessageList aria-label="Thread" height={480}>
35
+ * {turns.map((t) => <Message key={t.id} agent={t.agent}>{t.text}</Message>)}
36
+ * </MessageList>
37
+ */
38
+ const MessageList = React.forwardRef(function MessageList({ className, children, follow = true, height, jumpLabel = "Jump to latest", emptyLabel = "No messages yet", "aria-label": ariaLabel, style, ...elementProps }, ref) {
39
+ const scrollerRef = React.useRef(null);
40
+ const itemsRef = React.useRef(null);
41
+ const [pinned, setPinned] = React.useState(true);
42
+ const [behind, setBehind] = React.useState(false);
43
+ const lastHeightRef = React.useRef(0);
44
+ const count = React.Children.count(children);
45
+ const isEmpty = count === 0;
46
+ const previousCountRef = React.useRef(count);
47
+ const jumpToLatest = React.useCallback(() => {
48
+ const element = scrollerRef.current;
49
+ if (element === null) return;
50
+ element.scrollTop = element.scrollHeight;
51
+ setPinned(true);
52
+ setBehind(false);
53
+ }, []);
54
+ useIsomorphicLayoutEffect(() => {
55
+ const element = scrollerRef.current;
56
+ const added = count - previousCountRef.current;
57
+ previousCountRef.current = count;
58
+ if (element === null) return;
59
+ if (follow && pinned) {
60
+ element.scrollTop = element.scrollHeight;
61
+ setBehind(false);
62
+ return;
63
+ }
64
+ if (added > 0) setBehind(true);
65
+ }, [
66
+ count,
67
+ follow,
68
+ pinned
69
+ ]);
70
+ React.useEffect(() => {
71
+ const element = scrollerRef.current;
72
+ const items = itemsRef.current;
73
+ if (items === null) lastHeightRef.current = 0;
74
+ if (element === null || items === null || typeof ResizeObserver === "undefined") return;
75
+ const observer = new ResizeObserver((entries) => {
76
+ const entry = entries[0];
77
+ if (entry === void 0) return;
78
+ const height = entry.contentRect?.height ?? entry.target.getBoundingClientRect().height;
79
+ const grew = height > lastHeightRef.current;
80
+ lastHeightRef.current = height;
81
+ if (!grew) return;
82
+ if (follow && pinned) {
83
+ element.scrollTop = element.scrollHeight;
84
+ setBehind(false);
85
+ return;
86
+ }
87
+ setBehind(true);
88
+ });
89
+ observer.observe(items);
90
+ return () => observer.disconnect();
91
+ }, [
92
+ follow,
93
+ pinned,
94
+ isEmpty
95
+ ]);
96
+ const onScroll = React.useCallback(() => {
97
+ const element = scrollerRef.current;
98
+ if (element === null) return;
99
+ const atBottom = element.scrollHeight - element.scrollTop - element.clientHeight <= BOTTOM_TOLERANCE;
100
+ setPinned(atBottom);
101
+ if (atBottom) setBehind(false);
102
+ }, []);
103
+ return /* @__PURE__ */ jsxs("div", {
104
+ ref,
105
+ "data-slot": "message-list",
106
+ "data-pinned": String(pinned),
107
+ className: cn("relative flex min-h-0 min-w-0 flex-col overflow-hidden", className),
108
+ style: height === void 0 ? style : {
109
+ height: `${height / ROOT_PX}rem`,
110
+ ...style
111
+ },
112
+ ...elementProps,
113
+ children: [/* @__PURE__ */ jsx("div", {
114
+ ref: scrollerRef,
115
+ role: "log",
116
+ "aria-label": ariaLabel,
117
+ tabIndex: 0,
118
+ "data-slot": "message-list-scroller",
119
+ className: "min-h-0 flex-1 overflow-y-auto outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent",
120
+ onScroll,
121
+ children: count === 0 ? /* @__PURE__ */ jsx("div", {
122
+ "data-slot": "message-list-empty",
123
+ className: "flex h-full items-center justify-center p-(--cue-space-6) font-mono text-(length:--cue-text-ui) text-fg-subtle",
124
+ children: emptyLabel
125
+ }) : /* @__PURE__ */ jsx("div", {
126
+ ref: itemsRef,
127
+ "data-slot": "message-list-items",
128
+ className: "flex min-w-0 flex-col items-stretch gap-(--cue-space-4) p-(--cue-space-4)",
129
+ children
130
+ })
131
+ }), behind ? /* @__PURE__ */ jsxs("button", {
132
+ type: "button",
133
+ "data-slot": "message-list-jump",
134
+ className: "absolute bottom-(--cue-space-4) left-1/2 flex -translate-x-1/2 cursor-pointer items-center gap-(--cue-space-2) rounded-(--radius-control) border border-border-overlay bg-surface-2 px-(--cue-space-4) py-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg shadow-[0_8px_24px_rgba(0,0,0,0.4)] outline-none hover:border-accent hover:text-accent focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent",
135
+ onClick: jumpToLatest,
136
+ children: [/* @__PURE__ */ jsx(ChevronDownGlyph, { className: "size-icon-sm" }), jumpLabel]
137
+ }) : null]
138
+ });
139
+ });
140
+ //#endregion
141
+ export { MessageList };
@@ -0,0 +1,47 @@
1
+ import * as React from "react";
2
+ //#region src/chat/message.d.ts
3
+ /** Who is speaking. Drives the fill, the alignment and which corner the tail is on. */
4
+ type MessageRole = "user" | "agent" | "system";
5
+ interface MessageProps extends Omit<React.ComponentPropsWithoutRef<"div">, "role"> {
6
+ /** Who is speaking. Defaults to `"agent"`. */
7
+ role?: MessageRole;
8
+ /**
9
+ * The speaking agent's slug. Names the turn and inks the author line and the
10
+ * `--agent-color` custom property, which anything nested reads.
11
+ */
12
+ agent?: string;
13
+ /** Slug of the orchestrator, so its turns take the theme accent. */
14
+ rootAgent?: string;
15
+ /** Author line override. Defaults to `"You"` for the user and to `agent` otherwise. */
16
+ author?: React.ReactNode;
17
+ /** Rendered opposite the author — pass a formatted time, not a `Date`. */
18
+ timestamp?: React.ReactNode;
19
+ /** The turn is still streaming: shows a caret and announces it. */
20
+ pending?: boolean;
21
+ /** Slot under the body — attachments, warnings, retry actions. */
22
+ footer?: React.ReactNode;
23
+ /** The turn itself. */
24
+ children?: React.ReactNode;
25
+ }
26
+ /**
27
+ * One turn in a conversation.
28
+ *
29
+ * Content is rendered as React nodes, verbatim: there is no markdown or HTML
30
+ * path here on purpose. Model output is untrusted text, and a component that
31
+ * quietly parsed it would make every consumer of this library one prompt away
32
+ * from an injection. Callers that want rich text pass their own renderer as
33
+ * children and own that decision.
34
+ *
35
+ * The author line is mono micro and inked in the agent's own colour, so a
36
+ * multi-agent thread is scannable by hue before it is readable by name.
37
+ *
38
+ * Static markup — no `"use client"`; a transcript renders on the server.
39
+ *
40
+ * @example
41
+ * <Message agent="researcher" timestamp="14:02">Found three references.</Message>
42
+ * @example
43
+ * <Message role="user">Patch universe 3.</Message>
44
+ */
45
+ declare const Message: React.ForwardRefExoticComponent<MessageProps & React.RefAttributes<HTMLDivElement>>;
46
+ //#endregion
47
+ export { Message, MessageProps, MessageRole };