@cueplusplus/ui 0.2.0 → 0.5.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 (628) hide show
  1. package/CHANGELOG.md +2250 -0
  2. package/dist/agent-runtime/_glyphs.js +43 -0
  3. package/dist/agent-runtime/branch-picker.d.ts +45 -0
  4. package/dist/agent-runtime/branch-picker.js +87 -0
  5. package/dist/agent-runtime/index.d.ts +4 -0
  6. package/dist/agent-runtime/index.js +4 -0
  7. package/dist/agent-runtime/tool-call-card.d.ts +69 -0
  8. package/dist/agent-runtime/tool-call-card.js +187 -0
  9. package/dist/agent-runtime/use-agent-thread.d.ts +164 -0
  10. package/dist/agent-runtime/use-agent-thread.js +251 -0
  11. package/dist/brand/_chassis.d.ts +1 -1
  12. package/dist/brand/cue-mark.d.ts +1 -1
  13. package/dist/brand/cue-mark.js +1 -1
  14. package/dist/chat/index.d.ts +2 -2
  15. package/dist/chat/message-list.d.ts +6 -0
  16. package/dist/chat/message-list.js +35 -0
  17. package/dist/chrome/_edge-scroller.js +12 -1
  18. package/dist/chrome/_tabs-scroll.d.ts +1 -1
  19. package/dist/chrome/_tabs-scroll.js +1 -1
  20. package/dist/chrome/app-shell.d.ts +52 -2
  21. package/dist/chrome/app-shell.js +80 -8
  22. package/dist/chrome/index.d.ts +2 -2
  23. package/dist/configurator/_export.js +3 -2
  24. package/dist/configurator/_overrides.d.ts +1 -1
  25. package/dist/configurator/_overrides.js +18 -6
  26. package/dist/configurator/token-editor.js +4 -1
  27. package/dist/date/_segments.js +37 -2
  28. package/dist/elements/activity-graph.d.ts +40 -0
  29. package/dist/elements/activity-graph.js +81 -0
  30. package/dist/elements/agent-card.d.ts +49 -0
  31. package/dist/elements/agent-card.js +91 -0
  32. package/dist/elements/agent-handoff.d.ts +24 -0
  33. package/dist/elements/agent-handoff.js +53 -0
  34. package/dist/elements/agent-mode-badge.d.ts +72 -0
  35. package/dist/elements/agent-mode-badge.js +110 -0
  36. package/dist/elements/agent-plan.d.ts +24 -0
  37. package/dist/elements/agent-plan.js +74 -0
  38. package/dist/elements/agent-status.d.ts +29 -0
  39. package/dist/elements/agent-status.js +46 -0
  40. package/dist/elements/agent-surface.d.ts +65 -0
  41. package/dist/elements/agent-surface.js +68 -0
  42. package/dist/elements/animated-number.d.ts +86 -0
  43. package/dist/elements/animated-number.js +118 -0
  44. package/dist/elements/approval-card.d.ts +40 -0
  45. package/dist/elements/approval-card.js +78 -0
  46. package/dist/elements/artifact-card.d.ts +30 -0
  47. package/dist/elements/artifact-card.js +58 -0
  48. package/dist/elements/background-inbox.d.ts +39 -0
  49. package/dist/elements/background-inbox.js +60 -0
  50. package/dist/elements/canvas-split.d.ts +77 -0
  51. package/dist/elements/canvas-split.js +138 -0
  52. package/dist/elements/chart.d.ts +41 -0
  53. package/dist/elements/chart.js +117 -0
  54. package/dist/elements/chat-panel.d.ts +46 -0
  55. package/dist/elements/chat-panel.js +104 -0
  56. package/dist/elements/checkpoint-history.d.ts +31 -0
  57. package/dist/elements/checkpoint-history.js +65 -0
  58. package/dist/elements/clamp.d.ts +90 -0
  59. package/dist/elements/clamp.js +109 -0
  60. package/dist/elements/code-diff.d.ts +42 -0
  61. package/dist/elements/code-diff.js +69 -0
  62. package/dist/elements/code-runner.d.ts +38 -0
  63. package/dist/elements/code-runner.js +84 -0
  64. package/dist/elements/command-palette.d.ts +48 -0
  65. package/dist/elements/command-palette.js +129 -0
  66. package/dist/elements/compaction-row.d.ts +63 -0
  67. package/dist/elements/compaction-row.js +110 -0
  68. package/dist/elements/comparison-card.d.ts +47 -0
  69. package/dist/elements/comparison-card.js +69 -0
  70. package/dist/elements/composer.d.ts +274 -0
  71. package/dist/elements/composer.js +505 -0
  72. package/dist/elements/computer-use.d.ts +40 -0
  73. package/dist/elements/computer-use.js +92 -0
  74. package/dist/elements/confidence-marker.d.ts +39 -0
  75. package/dist/elements/confidence-marker.js +64 -0
  76. package/dist/elements/connection-state.d.ts +29 -0
  77. package/dist/elements/connection-state.js +66 -0
  78. package/dist/elements/context-breakdown.d.ts +30 -0
  79. package/dist/elements/context-breakdown.js +86 -0
  80. package/dist/elements/context-usage.d.ts +99 -0
  81. package/dist/elements/context-usage.js +225 -0
  82. package/dist/elements/conversation-search.d.ts +48 -0
  83. package/dist/elements/conversation-search.js +88 -0
  84. package/dist/elements/cost-meter.d.ts +33 -0
  85. package/dist/elements/cost-meter.js +75 -0
  86. package/dist/elements/data-table.d.ts +31 -0
  87. package/dist/elements/data-table.js +67 -0
  88. package/dist/elements/day-separator.d.ts +34 -0
  89. package/dist/elements/day-separator.js +50 -0
  90. package/dist/elements/diagram.d.ts +34 -0
  91. package/dist/elements/diagram.js +75 -0
  92. package/dist/elements/document-reference.d.ts +37 -0
  93. package/dist/elements/document-reference.js +66 -0
  94. package/dist/elements/draft-restore.d.ts +27 -0
  95. package/dist/elements/draft-restore.js +54 -0
  96. package/dist/elements/edit-message.d.ts +36 -0
  97. package/dist/elements/edit-message.js +77 -0
  98. package/dist/elements/elements.css +459 -0
  99. package/dist/elements/elicitation-form.d.ts +48 -0
  100. package/dist/elements/elicitation-form.js +106 -0
  101. package/dist/elements/empty-state.d.ts +52 -0
  102. package/dist/elements/empty-state.js +98 -0
  103. package/dist/elements/end-of-turn-summary.d.ts +60 -0
  104. package/dist/elements/end-of-turn-summary.js +75 -0
  105. package/dist/elements/error-state.d.ts +29 -0
  106. package/dist/elements/error-state.js +55 -0
  107. package/dist/elements/feedback-dialog.d.ts +36 -0
  108. package/dist/elements/feedback-dialog.js +81 -0
  109. package/dist/elements/file-tree.d.ts +45 -0
  110. package/dist/elements/file-tree.js +84 -0
  111. package/dist/elements/flow-graph.d.ts +45 -0
  112. package/dist/elements/flow-graph.js +78 -0
  113. package/dist/elements/generative/chart.js +200 -0
  114. package/dist/elements/generative/faults.js +111 -0
  115. package/dist/elements/generative/icons.d.ts +41 -0
  116. package/dist/elements/generative/icons.js +190 -0
  117. package/dist/elements/generative/intrinsics.js +483 -0
  118. package/dist/elements/generative/spec.d.ts +110 -0
  119. package/dist/elements/generative/spec.js +366 -0
  120. package/dist/elements/generative.css +1145 -0
  121. package/dist/elements/generative.d.ts +144 -0
  122. package/dist/elements/generative.js +126 -0
  123. package/dist/elements/guardrail-notice.d.ts +29 -0
  124. package/dist/elements/guardrail-notice.js +63 -0
  125. package/dist/elements/image-generation.d.ts +18 -0
  126. package/dist/elements/image-generation.js +64 -0
  127. package/dist/elements/index.d.ts +116 -0
  128. package/dist/elements/index.js +115 -0
  129. package/dist/elements/inline-citation.d.ts +43 -0
  130. package/dist/elements/inline-citation.js +93 -0
  131. package/dist/elements/job-progress.d.ts +49 -0
  132. package/dist/elements/job-progress.js +74 -0
  133. package/dist/elements/launcher-bubble.d.ts +34 -0
  134. package/dist/elements/launcher-bubble.js +72 -0
  135. package/dist/elements/live-region-announcer.d.ts +130 -0
  136. package/dist/elements/live-region-announcer.js +230 -0
  137. package/dist/elements/loading-state.d.ts +27 -0
  138. package/dist/elements/loading-state.js +36 -0
  139. package/dist/elements/map-answer.d.ts +38 -0
  140. package/dist/elements/map-answer.js +93 -0
  141. package/dist/elements/markdown.d.ts +131 -0
  142. package/dist/elements/markdown.js +528 -0
  143. package/dist/elements/math-block.d.ts +51 -0
  144. package/dist/elements/math-block.js +70 -0
  145. package/dist/elements/mcp-server-panel.d.ts +41 -0
  146. package/dist/elements/mcp-server-panel.js +115 -0
  147. package/dist/elements/memory-chips.d.ts +30 -0
  148. package/dist/elements/memory-chips.js +43 -0
  149. package/dist/elements/message-actions.d.ts +38 -0
  150. package/dist/elements/message-actions.js +71 -0
  151. package/dist/elements/message-attachment.d.ts +48 -0
  152. package/dist/elements/message-attachment.js +63 -0
  153. package/dist/elements/message-branches.d.ts +25 -0
  154. package/dist/elements/message-branches.js +65 -0
  155. package/dist/elements/message-pair.d.ts +33 -0
  156. package/dist/elements/message-pair.js +65 -0
  157. package/dist/elements/message-queue.d.ts +31 -0
  158. package/dist/elements/message-queue.js +80 -0
  159. package/dist/elements/message-timing.d.ts +33 -0
  160. package/dist/elements/message-timing.js +37 -0
  161. package/dist/elements/mobile-composer.d.ts +44 -0
  162. package/dist/elements/mobile-composer.js +88 -0
  163. package/dist/elements/model-picker.d.ts +38 -0
  164. package/dist/elements/model-picker.js +69 -0
  165. package/dist/elements/number-ticker.d.ts +18 -0
  166. package/dist/elements/number-ticker.js +47 -0
  167. package/dist/elements/onboarding.d.ts +30 -0
  168. package/dist/elements/onboarding.js +75 -0
  169. package/dist/elements/permission-grant.d.ts +35 -0
  170. package/dist/elements/permission-grant.js +86 -0
  171. package/dist/elements/permission-scopes.d.ts +215 -0
  172. package/dist/elements/permission-scopes.js +249 -0
  173. package/dist/elements/prompt-library.d.ts +43 -0
  174. package/dist/elements/prompt-library.js +117 -0
  175. package/dist/elements/queue-dock.d.ts +101 -0
  176. package/dist/elements/queue-dock.js +132 -0
  177. package/dist/elements/quota-banner.d.ts +26 -0
  178. package/dist/elements/quota-banner.js +66 -0
  179. package/dist/elements/quote-reply.d.ts +44 -0
  180. package/dist/elements/quote-reply.js +79 -0
  181. package/dist/elements/range.d.ts +29 -0
  182. package/dist/elements/range.js +45 -0
  183. package/dist/elements/read-aloud.d.ts +45 -0
  184. package/dist/elements/read-aloud.js +75 -0
  185. package/dist/elements/reasoning-effort.d.ts +36 -0
  186. package/dist/elements/reasoning-effort.js +67 -0
  187. package/dist/elements/reasoning-panel.d.ts +46 -0
  188. package/dist/elements/reasoning-panel.js +75 -0
  189. package/dist/elements/recommendation-card.d.ts +45 -0
  190. package/dist/elements/recommendation-card.js +83 -0
  191. package/dist/elements/regenerate-menu.d.ts +45 -0
  192. package/dist/elements/regenerate-menu.js +51 -0
  193. package/dist/elements/replay.d.ts +217 -0
  194. package/dist/elements/replay.js +498 -0
  195. package/dist/elements/research-report.d.ts +38 -0
  196. package/dist/elements/research-report.js +69 -0
  197. package/dist/elements/retrieval-chunks.d.ts +43 -0
  198. package/dist/elements/retrieval-chunks.js +81 -0
  199. package/dist/elements/revert-dock.d.ts +159 -0
  200. package/dist/elements/revert-dock.js +327 -0
  201. package/dist/elements/reviewable-diff.d.ts +45 -0
  202. package/dist/elements/reviewable-diff.js +110 -0
  203. package/dist/elements/risk-badge.d.ts +52 -0
  204. package/dist/elements/risk-badge.js +91 -0
  205. package/dist/elements/schedule-card.d.ts +42 -0
  206. package/dist/elements/schedule-card.js +90 -0
  207. package/dist/elements/score-breakdown.d.ts +47 -0
  208. package/dist/elements/score-breakdown.js +82 -0
  209. package/dist/elements/scroll-anchor.d.ts +32 -0
  210. package/dist/elements/scroll-anchor.js +121 -0
  211. package/dist/elements/settings-panel.d.ts +52 -0
  212. package/dist/elements/settings-panel.js +107 -0
  213. package/dist/elements/shared-conversation.d.ts +39 -0
  214. package/dist/elements/shared-conversation.js +68 -0
  215. package/dist/elements/sources.d.ts +33 -0
  216. package/dist/elements/sources.js +61 -0
  217. package/dist/elements/speaker-identity.d.ts +32 -0
  218. package/dist/elements/speaker-identity.js +51 -0
  219. package/dist/elements/spec-sheet.d.ts +31 -0
  220. package/dist/elements/spec-sheet.js +45 -0
  221. package/dist/elements/stopped-run.d.ts +22 -0
  222. package/dist/elements/stopped-run.js +50 -0
  223. package/dist/elements/streaming-text.d.ts +31 -0
  224. package/dist/elements/streaming-text.js +45 -0
  225. package/dist/elements/subagent-list.d.ts +37 -0
  226. package/dist/elements/subagent-list.js +79 -0
  227. package/dist/elements/suggestions.d.ts +30 -0
  228. package/dist/elements/suggestions.js +36 -0
  229. package/dist/elements/surfaces.d.ts +85 -0
  230. package/dist/elements/surfaces.js +107 -0
  231. package/dist/elements/tail-status.d.ts +131 -0
  232. package/dist/elements/tail-status.js +94 -0
  233. package/dist/elements/terminal-block.d.ts +29 -0
  234. package/dist/elements/terminal-block.js +54 -0
  235. package/dist/elements/thinking-indicator.d.ts +18 -0
  236. package/dist/elements/thinking-indicator.js +36 -0
  237. package/dist/elements/thread-list.d.ts +35 -0
  238. package/dist/elements/thread-list.js +68 -0
  239. package/dist/elements/thread-search.d.ts +42 -0
  240. package/dist/elements/thread-search.js +99 -0
  241. package/dist/elements/timeline.d.ts +37 -0
  242. package/dist/elements/timeline.js +46 -0
  243. package/dist/elements/todo-list.d.ts +42 -0
  244. package/dist/elements/todo-list.js +59 -0
  245. package/dist/elements/tool-call.d.ts +41 -0
  246. package/dist/elements/tool-call.js +85 -0
  247. package/dist/elements/tool-error.d.ts +39 -0
  248. package/dist/elements/tool-error.js +76 -0
  249. package/dist/elements/tool-group.d.ts +45 -0
  250. package/dist/elements/tool-group.js +71 -0
  251. package/dist/elements/tool-timeline.d.ts +65 -0
  252. package/dist/elements/tool-timeline.js +88 -0
  253. package/dist/elements/trace-waterfall.d.ts +37 -0
  254. package/dist/elements/trace-waterfall.js +69 -0
  255. package/dist/elements/transcript-rules.d.ts +67 -0
  256. package/dist/elements/transcript-rules.js +95 -0
  257. package/dist/elements/turn-footer.d.ts +74 -0
  258. package/dist/elements/turn-footer.js +101 -0
  259. package/dist/elements/typing-indicator.d.ts +16 -0
  260. package/dist/elements/typing-indicator.js +51 -0
  261. package/dist/elements/verdict-row.d.ts +89 -0
  262. package/dist/elements/verdict-row.js +150 -0
  263. package/dist/elements/vocabulary.d.ts +612 -0
  264. package/dist/elements/vocabulary.js +611 -0
  265. package/dist/elements/voice-conversation.d.ts +49 -0
  266. package/dist/elements/voice-conversation.js +123 -0
  267. package/dist/elements/web-preview.d.ts +32 -0
  268. package/dist/elements/web-preview.js +66 -0
  269. package/dist/elements/web-search.d.ts +37 -0
  270. package/dist/elements/web-search.js +66 -0
  271. package/dist/elements/work-collapse.d.ts +103 -0
  272. package/dist/elements/work-collapse.js +131 -0
  273. package/dist/icons/containers.d.ts +89 -0
  274. package/dist/icons/containers.js +295 -0
  275. package/dist/icons/index.d.ts +2 -0
  276. package/dist/index.d.ts +9 -7
  277. package/dist/index.js +3 -2
  278. package/dist/instruments/index.d.ts +2 -2
  279. package/dist/instruments/index.js +2 -2
  280. package/dist/instruments/table.d.ts +14 -1
  281. package/dist/instruments/table.js +20 -1
  282. package/dist/instruments/two-step-button.js +25 -6
  283. package/dist/layout/sidebar.d.ts +19 -1
  284. package/dist/layout/sidebar.js +19 -1
  285. package/dist/primitives/button.js +11 -1
  286. package/dist/primitives/chip.d.ts +34 -8
  287. package/dist/primitives/chip.js +97 -11
  288. package/dist/styles.css +11 -1
  289. package/dist/system/agent-skin.d.ts +27 -0
  290. package/dist/system/agent-skin.js +20 -0
  291. package/dist/system/index.d.ts +3 -3
  292. package/dist/system/portal.d.ts +5 -3
  293. package/dist/system/portal.js +36 -8
  294. package/dist/system/prepaint.d.ts +20 -2
  295. package/dist/system/prepaint.js +39 -33
  296. package/dist/system/theme-provider.d.ts +13 -2
  297. package/dist/system/theme-provider.js +107 -26
  298. package/dist/system/use-density.d.ts +9 -0
  299. package/dist/system/use-density.js +9 -0
  300. package/dist/system/use-isomorphic-layout-effect.js +19 -1
  301. package/dist/theming/_presets.d.ts +1 -1
  302. package/dist/theming/_presets.js +124 -8
  303. package/dist/theming/contrast.d.ts +16 -4
  304. package/dist/theming/contrast.js +33 -6
  305. package/dist/theming/create-theme.d.ts +8 -4
  306. package/dist/theming/create-theme.js +56 -20
  307. package/dist/theming/serialize.d.ts +11 -2
  308. package/dist/theming/serialize.js +87 -9
  309. package/manifest/components/accordion.json +154 -0
  310. package/manifest/components/activity-graph.json +88 -0
  311. package/manifest/components/agent-card.json +120 -0
  312. package/manifest/components/agent-handoff.json +87 -0
  313. package/manifest/components/agent-mode-badge.json +84 -0
  314. package/manifest/components/agent-pile.json +116 -0
  315. package/manifest/components/agent-plan.json +67 -0
  316. package/manifest/components/agent-status.json +73 -0
  317. package/manifest/components/agent-surface.json +78 -0
  318. package/manifest/components/alert-dialog.json +190 -0
  319. package/manifest/components/animated-number.json +67 -0
  320. package/manifest/components/app-bar.json +244 -0
  321. package/manifest/components/app-shell.json +383 -0
  322. package/manifest/components/app-window-frame.json +102 -0
  323. package/manifest/components/approval-card.json +106 -0
  324. package/manifest/components/artifact-card.json +81 -0
  325. package/manifest/components/ask-box.json +209 -0
  326. package/manifest/components/audience-icon.json +52 -0
  327. package/manifest/components/autocomplete.json +197 -0
  328. package/manifest/components/avatar-group.json +72 -0
  329. package/manifest/components/avatar.json +95 -0
  330. package/manifest/components/background-inbox.json +71 -0
  331. package/manifest/components/branch-picker.json +124 -0
  332. package/manifest/components/breadcrumb.json +74 -0
  333. package/manifest/components/button-group.json +74 -0
  334. package/manifest/components/button.json +126 -0
  335. package/manifest/components/calendar.json +65 -0
  336. package/manifest/components/canvas-split-body.json +62 -0
  337. package/manifest/components/canvas-split-document.json +54 -0
  338. package/manifest/components/canvas-split-header.json +83 -0
  339. package/manifest/components/canvas-split-line.json +62 -0
  340. package/manifest/components/canvas-split-message.json +62 -0
  341. package/manifest/components/canvas-split-thread.json +54 -0
  342. package/manifest/components/canvas-split.json +60 -0
  343. package/manifest/components/card.json +140 -0
  344. package/manifest/components/carousel.json +200 -0
  345. package/manifest/components/catalogue-icon.json +52 -0
  346. package/manifest/components/channel-beta-icon.json +52 -0
  347. package/manifest/components/channel-matrix.json +173 -0
  348. package/manifest/components/channel-released-icon.json +52 -0
  349. package/manifest/components/chart-container.json +111 -0
  350. package/manifest/components/chart-ramp.json +72 -0
  351. package/manifest/components/chart-swatch.json +65 -0
  352. package/manifest/components/chart-tooltip-content.json +114 -0
  353. package/manifest/components/chart.json +93 -0
  354. package/manifest/components/chat-empty-state.json +55 -0
  355. package/manifest/components/chat-panel-assistant-message.json +51 -0
  356. package/manifest/components/chat-panel-composer.json +66 -0
  357. package/manifest/components/chat-panel-messages.json +51 -0
  358. package/manifest/components/chat-panel-typing.json +51 -0
  359. package/manifest/components/chat-panel-user-message.json +51 -0
  360. package/manifest/components/chat-panel.json +57 -0
  361. package/manifest/components/checkbox-group.json +68 -0
  362. package/manifest/components/checkbox.json +93 -0
  363. package/manifest/components/checkpoint-history.json +80 -0
  364. package/manifest/components/chip.json +144 -0
  365. package/manifest/components/clamp.json +102 -0
  366. package/manifest/components/cli-tool-icon.json +52 -0
  367. package/manifest/components/code-diff.json +87 -0
  368. package/manifest/components/code-runner.json +97 -0
  369. package/manifest/components/collapsible.json +120 -0
  370. package/manifest/components/color-area.json +59 -0
  371. package/manifest/components/color-field.json +79 -0
  372. package/manifest/components/color-picker.json +175 -0
  373. package/manifest/components/color-slider.json +75 -0
  374. package/manifest/components/color-swatch.json +68 -0
  375. package/manifest/components/colors-section.json +66 -0
  376. package/manifest/components/combobox.json +198 -0
  377. package/manifest/components/command-palette.json +177 -0
  378. package/manifest/components/compaction-row.json +100 -0
  379. package/manifest/components/comparison-card.json +83 -0
  380. package/manifest/components/composer-actions.json +65 -0
  381. package/manifest/components/composer-attach-button.json +65 -0
  382. package/manifest/components/composer-attachment-chip.json +75 -0
  383. package/manifest/components/composer-attachments.json +60 -0
  384. package/manifest/components/composer-bar.json +73 -0
  385. package/manifest/components/composer-command-item.json +79 -0
  386. package/manifest/components/composer-context.json +67 -0
  387. package/manifest/components/composer-input.json +73 -0
  388. package/manifest/components/composer-menu-item.json +72 -0
  389. package/manifest/components/composer-menu.json +79 -0
  390. package/manifest/components/composer-model-item.json +75 -0
  391. package/manifest/components/composer-model-trigger.json +75 -0
  392. package/manifest/components/composer-person-item.json +79 -0
  393. package/manifest/components/composer-send.json +80 -0
  394. package/manifest/components/composer-toolbar.json +65 -0
  395. package/manifest/components/composer-voice-button.json +68 -0
  396. package/manifest/components/composer-voice.json +75 -0
  397. package/manifest/components/composer.json +176 -0
  398. package/manifest/components/computer-use.json +84 -0
  399. package/manifest/components/confidence-marker.json +74 -0
  400. package/manifest/components/connection-state.json +84 -0
  401. package/manifest/components/container.json +60 -0
  402. package/manifest/components/context-breakdown.json +65 -0
  403. package/manifest/components/context-menu.json +121 -0
  404. package/manifest/components/context-usage.json +85 -0
  405. package/manifest/components/conversation-search.json +92 -0
  406. package/manifest/components/copy-button.json +93 -0
  407. package/manifest/components/cost-meter.json +74 -0
  408. package/manifest/components/cue-logotype.json +96 -0
  409. package/manifest/components/cue-mark.json +97 -0
  410. package/manifest/components/cue-portal-frame.json +55 -0
  411. package/manifest/components/data-table-pagination.json +83 -0
  412. package/manifest/components/data-table-toolbar.json +104 -0
  413. package/manifest/components/date-field.json +80 -0
  414. package/manifest/components/date-picker.json +191 -0
  415. package/manifest/components/date-range-picker.json +191 -0
  416. package/manifest/components/day-separator.json +58 -0
  417. package/manifest/components/delegation-card.json +144 -0
  418. package/manifest/components/density.json +58 -0
  419. package/manifest/components/description-list.json +84 -0
  420. package/manifest/components/diagram.json +100 -0
  421. package/manifest/components/dialog.json +198 -0
  422. package/manifest/components/disclosure.json +109 -0
  423. package/manifest/components/dmx-bar.json +94 -0
  424. package/manifest/components/dmx-strip.json +101 -0
  425. package/manifest/components/document-reference.json +90 -0
  426. package/manifest/components/draft-restore.json +82 -0
  427. package/manifest/components/drawer.json +179 -0
  428. package/manifest/components/dropdown-menu.json +229 -0
  429. package/manifest/components/edit-message.json +105 -0
  430. package/manifest/components/elements-command-palette.json +100 -0
  431. package/manifest/components/elements-composer.json +71 -0
  432. package/manifest/components/elements-data-table.json +68 -0
  433. package/manifest/components/elements-timeline.json +69 -0
  434. package/manifest/components/elicitation-form.json +103 -0
  435. package/manifest/components/empty-state-composer.json +64 -0
  436. package/manifest/components/empty-state-greeting.json +49 -0
  437. package/manifest/components/empty-state-suggestion.json +57 -0
  438. package/manifest/components/empty-state-suggestions.json +49 -0
  439. package/manifest/components/empty-state.json +90 -0
  440. package/manifest/components/end-of-turn-summary.json +77 -0
  441. package/manifest/components/env-var-input.json +150 -0
  442. package/manifest/components/error-state.json +80 -0
  443. package/manifest/components/export-dialog.json +84 -0
  444. package/manifest/components/eyebrow.json +56 -0
  445. package/manifest/components/feedback-dialog.json +107 -0
  446. package/manifest/components/field-description.json +63 -0
  447. package/manifest/components/field-error.json +77 -0
  448. package/manifest/components/field-label.json +63 -0
  449. package/manifest/components/field.json +79 -0
  450. package/manifest/components/file-tree.json +83 -0
  451. package/manifest/components/file-upload.json +159 -0
  452. package/manifest/components/flow-background.json +50 -0
  453. package/manifest/components/flow-controls.json +50 -0
  454. package/manifest/components/flow-graph.json +75 -0
  455. package/manifest/components/folder-icon.json +52 -0
  456. package/manifest/components/footer.json +112 -0
  457. package/manifest/components/frac.json +59 -0
  458. package/manifest/components/generation-loader.json +64 -0
  459. package/manifest/components/generative-ui.json +93 -0
  460. package/manifest/components/grid.json +81 -0
  461. package/manifest/components/group-bar.json +102 -0
  462. package/manifest/components/guardrail-notice.json +91 -0
  463. package/manifest/components/hover-card.json +151 -0
  464. package/manifest/components/icon-button.json +88 -0
  465. package/manifest/components/image-generation.json +67 -0
  466. package/manifest/components/info-tip.json +98 -0
  467. package/manifest/components/inline-citation.json +77 -0
  468. package/manifest/components/input-group.json +91 -0
  469. package/manifest/components/input.json +89 -0
  470. package/manifest/components/item.json +129 -0
  471. package/manifest/components/job-progress.json +96 -0
  472. package/manifest/components/kbd.json +52 -0
  473. package/manifest/components/launcher-bubble.json +105 -0
  474. package/manifest/components/link.json +81 -0
  475. package/manifest/components/live-region-announcer.json +79 -0
  476. package/manifest/components/log-viewer.json +139 -0
  477. package/manifest/components/map-answer.json +83 -0
  478. package/manifest/components/markdown-text.json +94 -0
  479. package/manifest/components/math-block.json +74 -0
  480. package/manifest/components/mcp-server-icon.json +52 -0
  481. package/manifest/components/mcp-server-panel.json +87 -0
  482. package/manifest/components/memory-chips.json +65 -0
  483. package/manifest/components/menubar.json +157 -0
  484. package/manifest/components/message-actions.json +99 -0
  485. package/manifest/components/message-attachments.json +63 -0
  486. package/manifest/components/message-branches.json +71 -0
  487. package/manifest/components/message-list.json +100 -0
  488. package/manifest/components/message-pair.json +86 -0
  489. package/manifest/components/message-queue.json +74 -0
  490. package/manifest/components/message-timing.json +62 -0
  491. package/manifest/components/message.json +116 -0
  492. package/manifest/components/meter.json +114 -0
  493. package/manifest/components/mobile-composer.json +126 -0
  494. package/manifest/components/model-picker.json +76 -0
  495. package/manifest/components/multi-select.json +190 -0
  496. package/manifest/components/musical-time-input.json +113 -0
  497. package/manifest/components/navigation-menu.json +226 -0
  498. package/manifest/components/node-card.json +109 -0
  499. package/manifest/components/node-handle.json +69 -0
  500. package/manifest/components/number-field.json +107 -0
  501. package/manifest/components/number-ticker.json +61 -0
  502. package/manifest/components/onboarding.json +84 -0
  503. package/manifest/components/otp-field.json +128 -0
  504. package/manifest/components/page-shell.json +96 -0
  505. package/manifest/components/pagination.json +92 -0
  506. package/manifest/components/panel-header.json +77 -0
  507. package/manifest/components/panel.json +71 -0
  508. package/manifest/components/password-input.json +119 -0
  509. package/manifest/components/permission-grant.json +92 -0
  510. package/manifest/components/permission-scopes.json +139 -0
  511. package/manifest/components/piano-keyboard.json +120 -0
  512. package/manifest/components/plussie.json +111 -0
  513. package/manifest/components/popover.json +193 -0
  514. package/manifest/components/preset-section.json +73 -0
  515. package/manifest/components/progress.json +95 -0
  516. package/manifest/components/prompt-library.json +99 -0
  517. package/manifest/components/queue-dock.json +110 -0
  518. package/manifest/components/quota-banner.json +94 -0
  519. package/manifest/components/quote-reply.json +105 -0
  520. package/manifest/components/radio-group.json +73 -0
  521. package/manifest/components/radio.json +80 -0
  522. package/manifest/components/rating.json +141 -0
  523. package/manifest/components/read-aloud.json +111 -0
  524. package/manifest/components/reasoning-effort.json +81 -0
  525. package/manifest/components/reasoning-panel.json +108 -0
  526. package/manifest/components/recommendation-card.json +107 -0
  527. package/manifest/components/regenerate-menu.json +89 -0
  528. package/manifest/components/replay-player.json +102 -0
  529. package/manifest/components/research-report.json +76 -0
  530. package/manifest/components/resizable.json +88 -0
  531. package/manifest/components/retrieval-chunks.json +84 -0
  532. package/manifest/components/revert-dock.json +150 -0
  533. package/manifest/components/reviewable-diff.json +93 -0
  534. package/manifest/components/risk-badge.json +74 -0
  535. package/manifest/components/row.json +109 -0
  536. package/manifest/components/schedule-card.json +101 -0
  537. package/manifest/components/score-breakdown.json +91 -0
  538. package/manifest/components/scroll-anchor.json +72 -0
  539. package/manifest/components/scroll-area.json +91 -0
  540. package/manifest/components/scrollable-tabs-list.json +83 -0
  541. package/manifest/components/scrub-input.json +200 -0
  542. package/manifest/components/seam-cell.json +75 -0
  543. package/manifest/components/seam-grid.json +75 -0
  544. package/manifest/components/seam-list.json +56 -0
  545. package/manifest/components/search-input.json +134 -0
  546. package/manifest/components/section-header.json +112 -0
  547. package/manifest/components/segmented-control.json +138 -0
  548. package/manifest/components/select.json +194 -0
  549. package/manifest/components/separator.json +53 -0
  550. package/manifest/components/settings-panel.json +118 -0
  551. package/manifest/components/shape-section.json +66 -0
  552. package/manifest/components/shared-conversation.json +89 -0
  553. package/manifest/components/sheet.json +186 -0
  554. package/manifest/components/shimmer-label.json +59 -0
  555. package/manifest/components/sidebar.json +198 -0
  556. package/manifest/components/signal-edge.json +56 -0
  557. package/manifest/components/skeleton.json +46 -0
  558. package/manifest/components/skill-icon.json +52 -0
  559. package/manifest/components/slider.json +89 -0
  560. package/manifest/components/sources.json +83 -0
  561. package/manifest/components/sparkline.json +76 -0
  562. package/manifest/components/speaker-identity.json +61 -0
  563. package/manifest/components/spec-sheet.json +80 -0
  564. package/manifest/components/spectrum-visualizer.json +115 -0
  565. package/manifest/components/spinner.json +61 -0
  566. package/manifest/components/stack-icon.json +52 -0
  567. package/manifest/components/stack.json +96 -0
  568. package/manifest/components/stacks-matrix-icon.json +52 -0
  569. package/manifest/components/stat.json +87 -0
  570. package/manifest/components/status-bar.json +58 -0
  571. package/manifest/components/status-dot.json +78 -0
  572. package/manifest/components/stepper.json +89 -0
  573. package/manifest/components/stopped-run.json +81 -0
  574. package/manifest/components/streaming-text.json +71 -0
  575. package/manifest/components/sub.json +44 -0
  576. package/manifest/components/subagent-list.json +88 -0
  577. package/manifest/components/suggestions.json +84 -0
  578. package/manifest/components/sup.json +44 -0
  579. package/manifest/components/swap-label.json +71 -0
  580. package/manifest/components/switch.json +87 -0
  581. package/manifest/components/table-scroll-region.json +69 -0
  582. package/manifest/components/table.json +155 -0
  583. package/manifest/components/tabs.json +145 -0
  584. package/manifest/components/tags-input.json +190 -0
  585. package/manifest/components/tail-status.json +109 -0
  586. package/manifest/components/terminal-block.json +91 -0
  587. package/manifest/components/terminal-frame.json +119 -0
  588. package/manifest/components/textarea.json +76 -0
  589. package/manifest/components/theme-configurator.json +124 -0
  590. package/manifest/components/theme-provider.json +134 -0
  591. package/manifest/components/thinking-indicator.json +63 -0
  592. package/manifest/components/thread-list.json +76 -0
  593. package/manifest/components/thread-search.json +90 -0
  594. package/manifest/components/threshold-rail.json +160 -0
  595. package/manifest/components/time-boundary.json +62 -0
  596. package/manifest/components/time-field.json +80 -0
  597. package/manifest/components/timeline-ruler.json +139 -0
  598. package/manifest/components/timeline.json +115 -0
  599. package/manifest/components/title-bar.json +82 -0
  600. package/manifest/components/toast.json +130 -0
  601. package/manifest/components/todo-list.json +69 -0
  602. package/manifest/components/toggle-group.json +106 -0
  603. package/manifest/components/toggle.json +109 -0
  604. package/manifest/components/token-editor.json +90 -0
  605. package/manifest/components/tool-call-card.json +200 -0
  606. package/manifest/components/tool-call.json +119 -0
  607. package/manifest/components/tool-error.json +114 -0
  608. package/manifest/components/tool-group.json +83 -0
  609. package/manifest/components/tool-timeline.json +119 -0
  610. package/manifest/components/toolbar.json +163 -0
  611. package/manifest/components/tooltip.json +164 -0
  612. package/manifest/components/trace-waterfall.json +74 -0
  613. package/manifest/components/tree-visibility-toggle.json +84 -0
  614. package/manifest/components/tree.json +140 -0
  615. package/manifest/components/turn-footer.json +105 -0
  616. package/manifest/components/two-step-button.json +113 -0
  617. package/manifest/components/typing-indicator.json +53 -0
  618. package/manifest/components/universe-grid.json +127 -0
  619. package/manifest/components/unread-divider.json +55 -0
  620. package/manifest/components/usage-chart.json +124 -0
  621. package/manifest/components/verdict-row.json +91 -0
  622. package/manifest/components/voice-conversation.json +109 -0
  623. package/manifest/components/web-preview.json +87 -0
  624. package/manifest/components/web-search.json +92 -0
  625. package/manifest/components/work-collapse.json +102 -0
  626. package/manifest/manifest.json +4779 -0
  627. package/manifest/tokens.json +159 -0
  628. package/package.json +54 -5
@@ -0,0 +1,119 @@
1
+ {
2
+ "name": "ToolCall",
3
+ "slug": "tool-call",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "One tool invocation with its request and result tucked behind a disclosure.",
11
+ "props": [
12
+ {
13
+ "name": "label",
14
+ "type": "string",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "Tool name shown on the collapsed trigger row."
18
+ },
19
+ {
20
+ "name": "activeLabel",
21
+ "type": "string",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "Verb shown with a shimmer while the tool is running, for example Searching the docs."
25
+ },
26
+ {
27
+ "name": "query",
28
+ "type": "string",
29
+ "required": true,
30
+ "defaultValue": null,
31
+ "description": "Short chip next to the label summarizing the call target."
32
+ },
33
+ {
34
+ "name": "request",
35
+ "type": "string",
36
+ "required": true,
37
+ "defaultValue": null,
38
+ "description": "Request payload shown inside the expanded disclosure."
39
+ },
40
+ {
41
+ "name": "result",
42
+ "type": "string",
43
+ "required": true,
44
+ "defaultValue": null,
45
+ "description": "Result payload shown once the call is no longer running."
46
+ },
47
+ {
48
+ "name": "running",
49
+ "type": "boolean",
50
+ "required": true,
51
+ "defaultValue": null,
52
+ "description": "When true a spinner replaces the success check on the trigger."
53
+ },
54
+ {
55
+ "name": "open",
56
+ "type": "boolean",
57
+ "required": true,
58
+ "defaultValue": null,
59
+ "description": "Whether the request and result panel is expanded."
60
+ },
61
+ {
62
+ "name": "onOpenChange",
63
+ "type": "(open: boolean) => void",
64
+ "required": true,
65
+ "defaultValue": null,
66
+ "description": "Called when the user expands or collapses the call."
67
+ },
68
+ {
69
+ "name": "className",
70
+ "type": "string",
71
+ "required": false,
72
+ "defaultValue": null,
73
+ "description": "Extra classes merged onto the root."
74
+ }
75
+ ],
76
+ "typeReferences": [],
77
+ "subcomponents": [],
78
+ "parts": [],
79
+ "variants": {},
80
+ "defaultVariants": {},
81
+ "tokensUsed": [
82
+ "--cue-accent",
83
+ "--cue-fg",
84
+ "--cue-fg-muted",
85
+ "--cue-fg-subtle",
86
+ "--cue-font-mono",
87
+ "--cue-ok",
88
+ "--cue-radius-control",
89
+ "--cue-radius-overlay",
90
+ "--cue-surface-2",
91
+ "--cue-text-body",
92
+ "--cue-text-ui"
93
+ ],
94
+ "summary": "One tool invocation with its request and result tucked behind a disclosure.",
95
+ "examples": [
96
+ {
97
+ "title": "Usage",
98
+ "code": "import { ToolCall } from \"@cueplusplus/ui/elements\";\n\n<ToolCall\n label=\"Searched\"\n activeLabel=\"Searching\"\n query=\"composer props\"\n request='{\"q\":\"composer\"}'\n result='{\"hits\":2}'\n running={false}\n open\n onOpenChange={setOpen}\n/>",
99
+ "language": "tsx"
100
+ }
101
+ ],
102
+ "status": "todo-docs",
103
+ "url": "/docs/components/tool-call",
104
+ "mdUrl": "/docs/components/tool-call.md",
105
+ "jsonUrl": "/r/components/tool-call.json",
106
+ "specimens": [
107
+ {
108
+ "title": "ToolCall",
109
+ "group": "elements",
110
+ "components": [
111
+ "ToolCall"
112
+ ],
113
+ "code": "<Specimens>\n <Specimen label=\"running\" wide>\n <ToolCall\n label=\"Read the plot\"\n activeLabel=\"Reading the plot\"\n query=\"front-truss.gdtf\"\n request='{\"path\":\"plots/front-truss.gdtf\"}'\n result=\"\"\n running\n open={open[\"running\"] ?? false}\n onOpenChange={opener(\"running\")}\n />\n </Specimen>\n <Specimen label=\"settled, open\" wide>\n <ToolCall\n label=\"Read the plot\"\n activeLabel=\"Reading the plot\"\n query=\"front-truss.gdtf\"\n request='{\"path\":\"plots/front-truss.gdtf\"}'\n result=\"6 fixtures, Source Four 26°.\"\n running={false}\n open={open[\"settled\"] ?? false}\n onOpenChange={opener(\"settled\")}\n />\n </Specimen>\n <Specimen label=\"settled, collapsed\" wide>\n <ToolCall\n label=\"Wrote cue 1\"\n activeLabel=\"Writing cue 1\"\n query=\"house-to-half\"\n request='{\"cue\":1,\"fade\":3}'\n result=\"Cue 1 holds at 3.0s.\"\n running={false}\n open={open[\"collapsed\"] ?? false}\n onOpenChange={opener(\"collapsed\")}\n />\n </Specimen>\n</Specimens>",
114
+ "note": "One invocation, with the request and the result behind a disclosure. While it runs the verb shimmers and the row is wider; when it settles the label swaps, the box shrinks to fit and a check lands. Both payloads are printed as text, never parsed.",
115
+ "interaction": "the whole trigger row is the toggle, and it takes focus. The check fades in rather than appearing, so a settled call reads as having settled."
116
+ }
117
+ ],
118
+ "todo": true
119
+ }
@@ -0,0 +1,114 @@
1
+ {
2
+ "name": "ToolError",
3
+ "slug": "tool-error",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "One call failed. The error, the attempt count, and a retry that doesn't restart the\nturn.",
11
+ "props": [
12
+ {
13
+ "name": "name",
14
+ "type": "string",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "Tool that failed."
18
+ },
19
+ {
20
+ "name": "target",
21
+ "type": "string",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "What it was called against."
25
+ },
26
+ {
27
+ "name": "message",
28
+ "type": "string",
29
+ "required": true,
30
+ "defaultValue": null,
31
+ "description": "The raw error, shown in mono rather than reworded."
32
+ },
33
+ {
34
+ "name": "attempt",
35
+ "type": "number",
36
+ "required": true,
37
+ "defaultValue": null,
38
+ "description": "Which attempt this was."
39
+ },
40
+ {
41
+ "name": "maxAttempts",
42
+ "type": "number",
43
+ "required": true,
44
+ "defaultValue": null,
45
+ "description": "How many the runtime will make."
46
+ },
47
+ {
48
+ "name": "retrying",
49
+ "type": "boolean",
50
+ "required": true,
51
+ "defaultValue": null,
52
+ "description": "Swaps the retry control for a spinner and disables it."
53
+ },
54
+ {
55
+ "name": "onRetry",
56
+ "type": "(() => void)",
57
+ "required": false,
58
+ "defaultValue": null,
59
+ "description": "Called to run the call again without restarting the turn."
60
+ },
61
+ {
62
+ "name": "onSkip",
63
+ "type": "(() => void)",
64
+ "required": false,
65
+ "defaultValue": null,
66
+ "description": "Called to give up on this call and let the turn continue."
67
+ }
68
+ ],
69
+ "typeReferences": [
70
+ "Omit<\n ComponentProps<\"div\">,\n | \"children\"\n | \"name\"\n | \"target\"\n | \"message\"\n | \"attempt\"\n | \"maxAttempts\"\n | \"retrying\"\n | \"onRetry\"\n | \"onSkip\"\n> & {\n /** Tool that failed. */\n name: string;\n /** What it was called against. */\n target: string;\n /** The raw error, shown in mono rather than reworded. */\n message: string;\n /** Which attempt this was. */\n attempt: number;\n /** How many the runtime will make. */\n maxAttempts: number;\n /** Swaps the retry control for a spinner and disables it. */\n retrying: boolean;\n /** Called to run the call again without restarting the turn. */\n onRetry?: () => void;\n /** Called to give up on this call and let the turn continue. */\n onSkip?: () => void;\n}"
71
+ ],
72
+ "subcomponents": [],
73
+ "parts": [],
74
+ "variants": {},
75
+ "defaultVariants": {},
76
+ "tokensUsed": [
77
+ "--cue-danger",
78
+ "--cue-fg",
79
+ "--cue-fg-muted",
80
+ "--cue-fg-subtle",
81
+ "--cue-font-mono",
82
+ "--cue-radius-overlay",
83
+ "--cue-radius-surface",
84
+ "--cue-surface-2",
85
+ "--cue-text-body",
86
+ "--cue-text-label",
87
+ "--cue-text-ui"
88
+ ],
89
+ "summary": "One call failed.",
90
+ "examples": [
91
+ {
92
+ "title": "Usage",
93
+ "code": "import { ToolError } from \"@cueplusplus/ui/elements\";\n\n<ToolError\n name=\"fetch\"\n target=\"https://api.example.com/v1/issues\"\n message=\"ETIMEDOUT after 30000ms\"\n attempt={2}\n maxAttempts={3}\n retrying={false}\n onRetry={retry}\n/>",
94
+ "language": "tsx"
95
+ }
96
+ ],
97
+ "status": "todo-docs",
98
+ "url": "/docs/components/tool-error",
99
+ "mdUrl": "/docs/components/tool-error.md",
100
+ "jsonUrl": "/r/components/tool-error.json",
101
+ "specimens": [
102
+ {
103
+ "title": "ToolError",
104
+ "group": "elements",
105
+ "components": [
106
+ "ToolError"
107
+ ],
108
+ "code": "<Specimens>\n <Specimen label=\"failed\" wide>\n <ToolError\n name=\"artnet.probe\"\n target=\"10.0.0.255\"\n message=\"ETIMEDOUT after 30000ms\"\n attempt={attempt}\n maxAttempts={3}\n retrying={false}\n onRetry={() => setAttempt((count) => Math.min(3, count + 1))}\n onSkip={() => setAttempt(2)}\n />\n </Specimen>\n <Specimen label=\"retrying\" wide>\n <ToolError\n name=\"artnet.probe\"\n target=\"10.0.0.255\"\n message=\"ETIMEDOUT after 30000ms\"\n attempt={3}\n maxAttempts={3}\n retrying\n />\n </Specimen>\n <Specimen label=\"no skip offered\" wide>\n <ToolError\n name=\"cue.write\"\n target=\"show/main-stage.cue\"\n message=\"EACCES: show file is read-only\"\n attempt={1}\n maxAttempts={1}\n retrying={false}\n onRetry={() => {}}\n />\n </Specimen>\n</Specimens>",
109
+ "note": "One call failed, and the turn did not. The message is the raw error in mono rather than a reworded one, the attempt count is the runtime's, and Retry re-runs the call in place. Skip is disabled unless the host offers one, because a control that cannot do anything should say so.",
110
+ "interaction": "Retry raises the attempt count here; Skip puts it back. While retrying, the control is a spinner and takes no clicks."
111
+ }
112
+ ],
113
+ "todo": true
114
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "ToolGroup",
3
+ "slug": "tool-group",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "Calls that went out together, collapsed to one row until you want the detail.",
11
+ "props": [
12
+ {
13
+ "name": "label",
14
+ "type": "string",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "What the group did, as one line."
18
+ },
19
+ {
20
+ "name": "tools",
21
+ "type": "readonly GroupedTool[]",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "Calls issued together. The header summarizes them: progress while any run,\nfailures if any failed, otherwise the count."
25
+ },
26
+ {
27
+ "name": "open",
28
+ "type": "boolean",
29
+ "required": true,
30
+ "defaultValue": null,
31
+ "description": "Whether the per-call list is expanded."
32
+ },
33
+ {
34
+ "name": "onOpenChange",
35
+ "type": "((open: boolean) => void)",
36
+ "required": false,
37
+ "defaultValue": null,
38
+ "description": "Called when the group is expanded or collapsed."
39
+ }
40
+ ],
41
+ "typeReferences": [
42
+ "Omit<\n ComponentProps<\"div\">,\n \"children\" | \"label\" | \"tools\" | \"open\" | \"onOpenChange\"\n> & {\n /** What the group did, as one line. */\n label: string;\n /**\n * Calls issued together. The header summarizes them: progress while any run,\n * failures if any failed, otherwise the count.\n */\n tools: readonly GroupedTool[];\n /** Whether the per-call list is expanded. */\n open: boolean;\n /** Called when the group is expanded or collapsed. */\n onOpenChange?: (open: boolean) => void;\n}"
43
+ ],
44
+ "subcomponents": [],
45
+ "parts": [],
46
+ "variants": {},
47
+ "defaultVariants": {},
48
+ "tokensUsed": [
49
+ "--cue-border",
50
+ "--cue-danger",
51
+ "--cue-fg-muted",
52
+ "--cue-fg-subtle",
53
+ "--cue-ok",
54
+ "--cue-radius-overlay",
55
+ "--cue-surface-1",
56
+ "--cue-text-body"
57
+ ],
58
+ "summary": "Calls that went out together, collapsed to one row until you want the detail.",
59
+ "examples": [
60
+ {
61
+ "title": "Usage",
62
+ "code": "import { ToolGroup } from \"@cueplusplus/ui/elements\";\n\n<ToolGroup\n label=\"Read 4 files in parallel\"\n tools={tools}\n open={open}\n onOpenChange={setOpen}\n/>",
63
+ "language": "tsx"
64
+ }
65
+ ],
66
+ "status": "todo-docs",
67
+ "url": "/docs/components/tool-group",
68
+ "mdUrl": "/docs/components/tool-group.md",
69
+ "jsonUrl": "/r/components/tool-group.json",
70
+ "specimens": [
71
+ {
72
+ "title": "ToolGroup",
73
+ "group": "elements",
74
+ "components": [
75
+ "ToolGroup"
76
+ ],
77
+ "code": "<Specimens>\n <Specimen label=\"3 of 4 back\" wide>\n <ToolGroup\n label=\"Probed the rig in parallel\"\n tools={PARALLEL}\n open={open[\"group-running\"] ?? false}\n onOpenChange={opener(\"group-running\")}\n />\n </Specimen>\n <Specimen label=\"all done, collapsed\" wide>\n <ToolGroup\n label=\"Probed the rig in parallel\"\n tools={SETTLED}\n open={open[\"group-done\"] ?? false}\n onOpenChange={opener(\"group-done\")}\n />\n </Specimen>\n <Specimen label=\"one failed\" wide>\n <ToolGroup\n label=\"Probed the rig in parallel\"\n tools={BROKEN}\n open={open[\"group-failed\"] ?? false}\n onOpenChange={opener(\"group-failed\")}\n />\n </Specimen>\n</Specimens>",
78
+ "note": "Calls that went out together, rolled up to one row. The summary counts rather than describes: progress while any are still out, the failure count if any failed, otherwise the total.",
79
+ "interaction": "the header is one button with aria-expanded; the rows underneath are a list, not a menu."
80
+ }
81
+ ],
82
+ "todo": true
83
+ }
@@ -0,0 +1,119 @@
1
+ {
2
+ "name": "ToolTimeline",
3
+ "slug": "tool-timeline",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "A whole working session summarized as verbs, targets, and file stats.",
11
+ "props": [
12
+ {
13
+ "name": "steps",
14
+ "type": "readonly TimelineStep[]",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "Working-session verbs, chips, and icons to reveal over time."
18
+ },
19
+ {
20
+ "name": "visibleSteps",
21
+ "type": "number",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "How many steps from the start are currently shown."
25
+ },
26
+ {
27
+ "name": "streaming",
28
+ "type": "boolean",
29
+ "required": true,
30
+ "defaultValue": null,
31
+ "description": "When true the trigger shows Working with a shimmer and elapsed timer."
32
+ },
33
+ {
34
+ "name": "open",
35
+ "type": "boolean",
36
+ "required": true,
37
+ "defaultValue": null,
38
+ "description": "Whether the collapsible timeline body is expanded."
39
+ },
40
+ {
41
+ "name": "onOpenChange",
42
+ "type": "(open: boolean) => void",
43
+ "required": true,
44
+ "defaultValue": null,
45
+ "description": "Called when the user expands or collapses the timeline."
46
+ },
47
+ {
48
+ "name": "restingLabel",
49
+ "type": "string",
50
+ "required": true,
51
+ "defaultValue": null,
52
+ "description": "Trigger label once streaming finishes."
53
+ },
54
+ {
55
+ "name": "activeLabel",
56
+ "type": "string",
57
+ "required": true,
58
+ "defaultValue": null,
59
+ "description": "Full-size live label while streaming, for example Working for 12s."
60
+ },
61
+ {
62
+ "name": "stats",
63
+ "type": "TimelineStat[]",
64
+ "required": true,
65
+ "defaultValue": null,
66
+ "description": "Per-file addition and removal counts listed under the steps."
67
+ },
68
+ {
69
+ "name": "className",
70
+ "type": "string",
71
+ "required": false,
72
+ "defaultValue": null,
73
+ "description": "Extra classes merged onto the root."
74
+ }
75
+ ],
76
+ "typeReferences": [],
77
+ "subcomponents": [],
78
+ "parts": [],
79
+ "variants": {},
80
+ "defaultVariants": {},
81
+ "tokensUsed": [
82
+ "--cue-accent",
83
+ "--cue-danger",
84
+ "--cue-fg",
85
+ "--cue-fg-muted",
86
+ "--cue-fg-subtle",
87
+ "--cue-font-mono",
88
+ "--cue-ok",
89
+ "--cue-radius-control",
90
+ "--cue-surface-2",
91
+ "--cue-text-body",
92
+ "--cue-text-label"
93
+ ],
94
+ "summary": "A whole working session summarized as verbs, targets, and file stats.",
95
+ "examples": [
96
+ {
97
+ "title": "Usage",
98
+ "code": "import { FileSearchIcon } from \"lucide-react\";\nimport { ToolTimeline } from \"@cueplusplus/ui/elements\";\n\n<ToolTimeline\n steps={[{ verb: \"Read\", chip: \"thread.tsx\", icon: FileSearchIcon }]}\n visibleSteps={1}\n streaming\n open\n onOpenChange={setOpen}\n restingLabel=\"Worked for 12s\"\n activeLabel=\"Working for 12s\"\n stats={[{ file: \"thread.tsx\", added: 4, removed: 1 }]}\n/>",
99
+ "language": "tsx"
100
+ }
101
+ ],
102
+ "status": "todo-docs",
103
+ "url": "/docs/components/tool-timeline",
104
+ "mdUrl": "/docs/components/tool-timeline.md",
105
+ "jsonUrl": "/r/components/tool-timeline.json",
106
+ "specimens": [
107
+ {
108
+ "title": "ToolTimeline",
109
+ "group": "elements-agents",
110
+ "components": [
111
+ "ToolTimeline"
112
+ ],
113
+ "code": "<Specimens>\n <Specimen label=\"streaming, open\" wide>\n <ToolTimeline\n steps={STEPS}\n visibleSteps={3}\n streaming\n open={timelineOpen}\n onOpenChange={setTimelineOpen}\n restingLabel=\"Read 3 files, ran 1 command\"\n activeLabel=\"Working on the patch\"\n stats={[]}\n />\n </Specimen>\n <Specimen label=\"settled, collapsed\" wide>\n <ToolTimeline\n steps={STEPS}\n visibleSteps={STEPS.length}\n streaming={false}\n open={false}\n onOpenChange={() => undefined}\n restingLabel=\"Read 3 files, ran 1 command\"\n activeLabel=\"Working on the patch\"\n stats={STATS}\n />\n </Specimen>\n</Specimens>",
114
+ "note": "A whole working session folded into one line — `Read 4 files, ran 1 command` — that opens into the verbs, the things they were done to, and the files that ended up changed. It is the summary a transcript gets *after* the fact, where `ToolCall` is what it looks like during.",
115
+ "interaction": "the trigger is a labelled button taking cue's focus ring; the chevron turns with the panel, which animates its own height through Base UI. While streaming the label shimmers and the live step's verb shimmers with it."
116
+ }
117
+ ],
118
+ "todo": true
119
+ }
@@ -0,0 +1,163 @@
1
+ {
2
+ "name": "Toolbar",
3
+ "slug": "toolbar",
4
+ "group": "chrome",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "The strip of controls across the top of a view.\n\nWraps Base UI's `Toolbar`, so the whole bar is one tab stop with arrow-key\nroving focus inside it — which is the entire point of the ARIA toolbar\npattern and the reason not to hand-roll this out of a flex row of buttons.",
9
+ "props": [],
10
+ "typeReferences": [],
11
+ "subcomponents": [
12
+ "Root",
13
+ "Button",
14
+ "Group",
15
+ "Separator"
16
+ ],
17
+ "parts": [
18
+ {
19
+ "name": "Root",
20
+ "usage": "Toolbar.Root",
21
+ "description": "The bar itself: chrome-toolbar tall, hairline underneath, surface fill.\n\nHeight comes from `--cue-chrome-toolbar`, which is a *chrome* token rather\nthan a control token — the bar is part of the window furniture and gets its\nown rung of the density ladder, one that stays legible when the controls\ninside it shrink.\n\nThe bar element is also its own scroller, rather than sitting inside one:\nthat is what keeps the height, the hairline and the fill on the element with\n`role=\"toolbar\"`, so a bar that overflows still looks like one bar rather\nthan a strip inside a box. The wrapper the scrolling shape adds is an\nunpainted `relative` frame whose only job is to hold the pager chevrons.\n\nGive it an `aria-label`: a toolbar with no name is announced as \"toolbar\".",
22
+ "props": [
23
+ {
24
+ "name": "className",
25
+ "type": "string",
26
+ "required": false,
27
+ "defaultValue": null,
28
+ "description": "Extra classes for the bar."
29
+ },
30
+ {
31
+ "name": "previousLabel",
32
+ "type": "string",
33
+ "required": false,
34
+ "defaultValue": "Show earlier controls",
35
+ "description": "Accessible name for the chevron that reveals controls off the leading edge."
36
+ },
37
+ {
38
+ "name": "nextLabel",
39
+ "type": "string",
40
+ "required": false,
41
+ "defaultValue": "Show later controls",
42
+ "description": "Accessible name for the chevron that reveals controls off the trailing edge."
43
+ },
44
+ {
45
+ "name": "overflow",
46
+ "type": "\"clip\" | \"scroll\"",
47
+ "required": false,
48
+ "defaultValue": "scroll",
49
+ "description": "What the bar does when its controls do not fit. Defaults to `\"scroll\"`.\n\n`\"scroll\"` is the library's one overflow behaviour (see\n`./_edge-scroller` for why it is scrolling rather than wrapping or a \"more\"\nmenu): the bar keeps its single chrome-rung height, the controls scroll\ninside it, the overflowing edge is faded and a pager chevron appears there.\nA bar whose controls all fit renders exactly as it did before — no mask, no\nchevrons, no compositing layer.\n\n`\"clip\"` restores the old behaviour and adds no wrapper element, for a bar\nthat is already inside something which scrolls.\n\nA vertical toolbar ignores this: the affordance is horizontal, and a\nvertical bar overflows on the axis this does not measure."
50
+ }
51
+ ],
52
+ "typeReferences": [
53
+ "Omit<BaseToolbar.Root.Props, \"className\">"
54
+ ]
55
+ },
56
+ {
57
+ "name": "Button",
58
+ "usage": "Toolbar.Button",
59
+ "description": "A borderless toolbar control.\n\nDeliberately not a `Button`: inside a bar, six rimmed buttons in a row read\nas six competing objects. Toolbar controls speak through text colour and a\nhover fill only (the venu convention), which keeps the bar reading as one\nstrip. Reach for `<Toolbar.Button render={<Button variant=\"primary\" />}>`\nwhen exactly one action in the bar must be loud.",
60
+ "props": [
61
+ {
62
+ "name": "className",
63
+ "type": "string",
64
+ "required": false,
65
+ "defaultValue": null,
66
+ "description": "Extra classes for the button."
67
+ },
68
+ {
69
+ "name": "icon",
70
+ "type": "ElementType<any, keyof IntrinsicElements>",
71
+ "required": false,
72
+ "defaultValue": null,
73
+ "description": "Optional leading icon (e.g. a lucide icon), drawn `aria-hidden`."
74
+ }
75
+ ],
76
+ "typeReferences": [
77
+ "Omit<BaseToolbar.Button.Props, \"className\">"
78
+ ]
79
+ },
80
+ {
81
+ "name": "Group",
82
+ "usage": "Toolbar.Group",
83
+ "description": "A tight cluster of related controls inside the bar.",
84
+ "props": [
85
+ {
86
+ "name": "className",
87
+ "type": "string",
88
+ "required": false,
89
+ "defaultValue": null,
90
+ "description": "Extra classes for the group."
91
+ }
92
+ ],
93
+ "typeReferences": [
94
+ "Omit<BaseToolbar.Group.Props, \"className\">"
95
+ ]
96
+ },
97
+ {
98
+ "name": "Separator",
99
+ "usage": "Toolbar.Separator",
100
+ "description": "A hairline between clusters. Base UI orients it perpendicular to the bar, so\na horizontal toolbar gets a vertical rule with no prop to remember; the\nclasses follow `data-orientation` for the same reason.",
101
+ "props": [
102
+ {
103
+ "name": "className",
104
+ "type": "string",
105
+ "required": false,
106
+ "defaultValue": null,
107
+ "description": "Extra classes for the rule."
108
+ }
109
+ ],
110
+ "typeReferences": [
111
+ "Omit<BaseToolbar.Separator.Props, \"className\">"
112
+ ]
113
+ }
114
+ ],
115
+ "variants": {},
116
+ "defaultVariants": {},
117
+ "tokensUsed": [
118
+ "--cue-accent",
119
+ "--cue-border",
120
+ "--cue-chrome-toolbar",
121
+ "--cue-control-md",
122
+ "--cue-edge-fade",
123
+ "--cue-fg",
124
+ "--cue-fg-muted",
125
+ "--cue-font-mono",
126
+ "--cue-icon-md",
127
+ "--cue-icon-sm",
128
+ "--cue-pad-row-x",
129
+ "--cue-radius-control",
130
+ "--cue-space-1",
131
+ "--cue-space-2",
132
+ "--cue-space-3",
133
+ "--cue-space-5",
134
+ "--cue-surface-1",
135
+ "--cue-surface-2",
136
+ "--cue-text-ui"
137
+ ],
138
+ "summary": "The strip of controls across the top of a view.",
139
+ "examples": [
140
+ {
141
+ "title": "Usage",
142
+ "code": "<Toolbar.Root aria-label=\"Cue actions\">\n <Toolbar.Group aria-label=\"Playback\">\n <Toolbar.Button icon={Play}>Go</Toolbar.Button>\n <Toolbar.Button icon={Square}>Stop</Toolbar.Button>\n </Toolbar.Group>\n <Toolbar.Separator />\n <Toolbar.Button icon={Save}>Save</Toolbar.Button>\n</Toolbar.Root>",
143
+ "language": "tsx"
144
+ }
145
+ ],
146
+ "status": "todo-docs",
147
+ "url": "/docs/components/toolbar",
148
+ "mdUrl": "/docs/components/toolbar.md",
149
+ "jsonUrl": "/r/components/toolbar.json",
150
+ "specimens": [
151
+ {
152
+ "title": "Toolbar",
153
+ "group": "chrome",
154
+ "components": [
155
+ "Toolbar"
156
+ ],
157
+ "code": "<div className=\"flex w-full flex-col gap-(--cue-space-4)\">\n <Toolbar.Root aria-label=\"Text formatting\">\n <Toolbar.Group>\n <Toolbar.Button icon={Bold} aria-label=\"Bold\" />\n <Toolbar.Button icon={Italic} aria-label=\"Italic\" />\n <Toolbar.Button icon={Underline} aria-label=\"Underline\" />\n </Toolbar.Group>\n <Toolbar.Separator />\n <Toolbar.Group>\n <Toolbar.Button icon={List}>Cue list</Toolbar.Button>\n <Toolbar.Button icon={Monitor} disabled>\n Preview\n </Toolbar.Button>\n </Toolbar.Group>\n </Toolbar.Root>\n\n <div className=\"w-full max-w-[16rem] overflow-hidden rounded-(--radius-surface) border border-border\">\n <Toolbar.Root aria-label=\"Playback, boxed\">\n <Toolbar.Button icon={List}>Cue list</Toolbar.Button>\n <Toolbar.Separator />\n <Toolbar.Button icon={Monitor}>Preview</Toolbar.Button>\n <Toolbar.Button icon={Plus}>Add cue</Toolbar.Button>\n <Toolbar.Button icon={Eye}>Blind</Toolbar.Button>\n </Toolbar.Root>\n </div>\n</div>",
158
+ "note": "Borderless text-colour feedback: a pressed tool changes ink, not ground. Boxed to 16rem below, the bar scrolls rather than clipping — it stays one chrome rung tall, because a second row would be stolen from the work area.",
159
+ "interaction": "hover lifts the ink to `--cue-fg`; arrow keys move between tools and reach the ones off-screen, Tab leaves the toolbar."
160
+ }
161
+ ],
162
+ "todo": true
163
+ }