@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,58 @@
1
+ {
2
+ "name": "StatusBar",
3
+ "slug": "status-bar",
4
+ "group": "chrome",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "The quiet strip along the bottom of a window.\n\nThe smallest type in the system in the subtlest ink: a status bar is read\nwhen you go looking for it and ignored otherwise, so it must never compete\nwith the work above it. Height comes from `--cue-chrome-statusbar`.\n\nNot a live region — a status bar changes constantly (frame counters, DMX\noutput), and announcing every change would make the app unusable with a\nscreen reader. Put anything that genuinely must be announced in a `Toast`.\n\nStatic markup — no `\"use client\"`.",
9
+ "props": [],
10
+ "typeReferences": [],
11
+ "subcomponents": [],
12
+ "parts": [],
13
+ "variants": {},
14
+ "defaultVariants": {},
15
+ "tokensUsed": [
16
+ "--cue-accent",
17
+ "--cue-border",
18
+ "--cue-busy",
19
+ "--cue-chrome-statusbar",
20
+ "--cue-danger",
21
+ "--cue-fg-subtle",
22
+ "--cue-font-mono",
23
+ "--cue-icon-sm",
24
+ "--cue-info",
25
+ "--cue-ok",
26
+ "--cue-pad-row-x",
27
+ "--cue-space-2",
28
+ "--cue-space-4",
29
+ "--cue-surface-1",
30
+ "--cue-text-label",
31
+ "--cue-warn"
32
+ ],
33
+ "summary": "The quiet strip along the bottom of a window.",
34
+ "examples": [
35
+ {
36
+ "title": "Usage",
37
+ "code": "<StatusBar>\n <StatusBar.Item icon={Plug} tone=\"ok\">Art-Net connected</StatusBar.Item>\n <StatusBar.Item push>512 channels</StatusBar.Item>\n</StatusBar>",
38
+ "language": "tsx"
39
+ }
40
+ ],
41
+ "status": "todo-docs",
42
+ "url": "/docs/components/status-bar",
43
+ "mdUrl": "/docs/components/status-bar.md",
44
+ "jsonUrl": "/r/components/status-bar.json",
45
+ "specimens": [
46
+ {
47
+ "title": "StatusBar",
48
+ "group": "chrome",
49
+ "components": [
50
+ "StatusBar"
51
+ ],
52
+ "code": "<div className=\"w-full overflow-hidden rounded-(--radius-surface) border border-border\">\n <StatusBar>\n <StatusBar.Item>universe 1</StatusBar.Item>\n <StatusBar.Item tone=\"ok\">44 Hz</StatusBar.Item>\n <StatusBar.Item tone=\"warn\">2 conflicts</StatusBar.Item>\n <StatusBar.Item push>10.0.0.42</StatusBar.Item>\n <StatusBar.Item tone=\"info\">art-net</StatusBar.Item>\n </StatusBar>\n</div>",
53
+ "note": "The bottom strip: tone-inked items, and a `push` item that takes the remaining space.",
54
+ "interaction": "none by default; items are plain readouts."
55
+ }
56
+ ],
57
+ "todo": true
58
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "StatusDot",
3
+ "slug": "status-dot",
4
+ "group": "primitives",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "A 6px state dot — the densest possible status indicator.\n\nColour alone never carries meaning here: the dot is `aria-hidden` and the\ncomponent always emits an `sr-only` label inside a `role=\"status\"` wrapper,\nso the state is announced as well as shown (WCAG 1.4.1).\n\nThe wrapper is `relative` for that label's sake and no other reason.\n`.sr-only` is `position: absolute`; without a positioned ancestor its\ncontaining block is the initial one, so its scrollable overflow lands on\n`<html>` rather than on whatever scroller it is nested in. One dot is\nharmless and a table of two thousand rows is a document several thousand\npixels taller than anything visible on it.\n\nStatic markup — no `\"use client\"`.",
9
+ "props": [
10
+ {
11
+ "name": "tone",
12
+ "type": "\"danger\" | \"idle\" | \"busy\" | \"ok\" | \"warn\"",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "Which state to paint. `idle` renders a hollow ring."
16
+ },
17
+ {
18
+ "name": "pulse",
19
+ "type": "boolean",
20
+ "required": false,
21
+ "defaultValue": "false",
22
+ "description": "Pulse the dot to signal live activity. Automatically stilled under\n`prefers-reduced-motion`."
23
+ },
24
+ {
25
+ "name": "size",
26
+ "type": "number",
27
+ "required": false,
28
+ "defaultValue": "6",
29
+ "description": "Diameter in px at the default 16px root font size. Emitted as `rem`, so it\nscales with browser zoom and the user's font size. Defaults to `6`."
30
+ },
31
+ {
32
+ "name": "label",
33
+ "type": "string",
34
+ "required": false,
35
+ "defaultValue": null,
36
+ "description": "Screen-reader text. Defaults to the tone name, which is usually the honest\nanswer; pass something specific when the surrounding row does not say it."
37
+ }
38
+ ],
39
+ "typeReferences": [
40
+ "Omit<React.ComponentPropsWithoutRef<\"span\">, \"children\">"
41
+ ],
42
+ "subcomponents": [],
43
+ "parts": [],
44
+ "variants": {},
45
+ "defaultVariants": {},
46
+ "tokensUsed": [
47
+ "--cue-busy",
48
+ "--cue-danger",
49
+ "--cue-fg-subtle",
50
+ "--cue-ok",
51
+ "--cue-warn"
52
+ ],
53
+ "summary": "A 6px state dot — the densest possible status indicator.",
54
+ "examples": [
55
+ {
56
+ "title": "Usage",
57
+ "code": "<StatusDot tone=\"ok\" />\n<StatusDot tone=\"busy\" pulse label=\"Rendering preview\" size={8} />",
58
+ "language": "tsx"
59
+ }
60
+ ],
61
+ "status": "todo-docs",
62
+ "url": "/docs/components/status-dot",
63
+ "mdUrl": "/docs/components/status-dot.md",
64
+ "jsonUrl": "/r/components/status-dot.json",
65
+ "specimens": [
66
+ {
67
+ "title": "StatusDot",
68
+ "group": "primitives",
69
+ "components": [
70
+ "StatusDot"
71
+ ],
72
+ "code": "<Specimens>\n {STATUS_TONES.map((tone) => (\n <Specimen key={tone} label={tone}>\n <StatusDot tone={tone} label={tone} />\n </Specimen>\n ))}\n <Specimen label=\"pulse\">\n <StatusDot tone=\"busy\" pulse label=\"Cueing\" />\n </Specimen>\n <Specimen label=\"size 10\">\n <StatusDot tone=\"ok\" size={10} label=\"Online\" />\n </Specimen>\n</Specimens>",
73
+ "note": "Five states, and the pulse that means work is in flight. The label is the accessible name, not decoration.",
74
+ "interaction": "none. A dot is a readout."
75
+ }
76
+ ],
77
+ "todo": true
78
+ }
@@ -0,0 +1,89 @@
1
+ {
2
+ "name": "Stepper",
3
+ "slug": "stepper",
4
+ "group": "layout",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "The step trail: `1 target · 2 preview · 3 apply`.\n\nDeliberately a line of mono text rather than the usual row of numbered discs\njoined by rules. A stepper drawn as circles-and-lines is 60px tall and says\nexactly as much as one line of 9px type — and in a console that vertical\nspace belongs to the thing being configured, not to the wizard chrome around\nit. Only the numbers carry the accent, so the trail reads as one sentence\nwith the position marked, which is what a progress indicator is for.\n\nForward steps are never buttons: a step you have not reached is not a place\nyou can go, and offering it as a control is a promise the flow cannot keep.",
9
+ "props": [
10
+ {
11
+ "name": "steps",
12
+ "type": "readonly StepperStep[]",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "The steps, in order."
16
+ },
17
+ {
18
+ "name": "current",
19
+ "type": "string",
20
+ "required": true,
21
+ "defaultValue": null,
22
+ "description": "The `id` of the step in progress. An unknown id leaves every step upcoming."
23
+ },
24
+ {
25
+ "name": "onStepChange",
26
+ "type": "((id: string) => void)",
27
+ "required": false,
28
+ "defaultValue": null,
29
+ "description": "Called with the `id` of a step the user asked to go back to. Passing it\nturns the finished steps into buttons; leaving it off keeps the trail\nstatic, which is the honest rendering when the earlier steps cannot be\nrevisited."
30
+ },
31
+ {
32
+ "name": "separator",
33
+ "type": "ReactNode",
34
+ "required": false,
35
+ "defaultValue": "·",
36
+ "description": "What sits between steps. Defaults to `\"·\"`."
37
+ },
38
+ {
39
+ "name": "label",
40
+ "type": "string",
41
+ "required": false,
42
+ "defaultValue": "Progress",
43
+ "description": "The nav's accessible name. Defaults to `\"Progress\"`."
44
+ }
45
+ ],
46
+ "typeReferences": [
47
+ "Omit<React.ComponentPropsWithoutRef<\"nav\">, \"children\" | \"onChange\">"
48
+ ],
49
+ "subcomponents": [],
50
+ "parts": [],
51
+ "variants": {},
52
+ "defaultVariants": {},
53
+ "tokensUsed": [
54
+ "--cue-accent",
55
+ "--cue-fg",
56
+ "--cue-fg-muted",
57
+ "--cue-fg-subtle",
58
+ "--cue-font-mono",
59
+ "--cue-radius-control",
60
+ "--cue-space-2",
61
+ "--cue-space-3",
62
+ "--cue-text-label"
63
+ ],
64
+ "summary": "The step trail: `1 target · 2 preview · 3 apply`.",
65
+ "examples": [
66
+ {
67
+ "title": "Usage",
68
+ "code": "<Stepper steps={[{ id: \"target\", label: \"target\" }, { id: \"preview\", label: \"preview\" }]} current=\"preview\" />\n<Stepper steps={steps} current={step} onStepChange={setStep} />",
69
+ "language": "tsx"
70
+ }
71
+ ],
72
+ "status": "todo-docs",
73
+ "url": "/docs/components/stepper",
74
+ "mdUrl": "/docs/components/stepper.md",
75
+ "jsonUrl": "/r/components/stepper.json",
76
+ "specimens": [
77
+ {
78
+ "title": "Stepper",
79
+ "group": "layout",
80
+ "components": [
81
+ "Stepper"
82
+ ],
83
+ "code": "<Stepper steps={STEPS} current={step} onStepChange={setStep} />",
84
+ "note": "The step trail: `1 target · 2 preview · 3 apply`, with reached steps tinted rather than filled.",
85
+ "interaction": "a reached step is a button; an upcoming one is not."
86
+ }
87
+ ],
88
+ "todo": true
89
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "StoppedRun",
3
+ "slug": "stopped-run",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "You pressed stop. The half-written answer stays, and continuing is one tap away.",
11
+ "props": [
12
+ {
13
+ "name": "words",
14
+ "type": "readonly string[]",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "The partial answer as it stood when the run stopped. It stays on screen."
18
+ },
19
+ {
20
+ "name": "reason",
21
+ "type": "string",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "Why it ended: stopped by you, hit the token limit, timed out."
25
+ },
26
+ {
27
+ "name": "onContinue",
28
+ "type": "(() => void)",
29
+ "required": false,
30
+ "defaultValue": null,
31
+ "description": "Called to resume from where the answer left off."
32
+ },
33
+ {
34
+ "name": "onDiscard",
35
+ "type": "(() => void)",
36
+ "required": false,
37
+ "defaultValue": null,
38
+ "description": "Called to drop the partial answer."
39
+ }
40
+ ],
41
+ "typeReferences": [
42
+ "Omit<\n ComponentProps<\"div\">,\n \"children\" | \"words\" | \"reason\" | \"onContinue\" | \"onDiscard\"\n> & {\n /** The partial answer as it stood when the run stopped. It stays on screen. */\n words: readonly string[];\n /** Why it ended: stopped by you, hit the token limit, timed out. */\n reason: string;\n /** Called to resume from where the answer left off. */\n onContinue?: () => void;\n /** Called to drop the partial answer. */\n onDiscard?: () => void;\n}"
43
+ ],
44
+ "subcomponents": [],
45
+ "parts": [],
46
+ "variants": {},
47
+ "defaultVariants": {},
48
+ "tokensUsed": [
49
+ "--cue-fg",
50
+ "--cue-fg-muted",
51
+ "--cue-surface-2",
52
+ "--cue-surface-3",
53
+ "--cue-text-body",
54
+ "--cue-text-ui"
55
+ ],
56
+ "summary": "You pressed stop.",
57
+ "examples": [
58
+ {
59
+ "title": "Usage",
60
+ "code": "import { StoppedRun } from \"@cueplusplus/ui/elements\";\n\n<StoppedRun words={words} reason=\"stopped by you\" onContinue={resume} />",
61
+ "language": "tsx"
62
+ }
63
+ ],
64
+ "status": "todo-docs",
65
+ "url": "/docs/components/stopped-run",
66
+ "mdUrl": "/docs/components/stopped-run.md",
67
+ "jsonUrl": "/r/components/stopped-run.json",
68
+ "specimens": [
69
+ {
70
+ "title": "StoppedRun",
71
+ "group": "elements-thread",
72
+ "components": [
73
+ "StoppedRun"
74
+ ],
75
+ "code": "<Specimens>\n <Specimen label=\"stopped by the user\" wide>\n <StoppedRun\n words={SPOKEN.slice(0, 5)}\n reason=\"stopped by you\"\n onContinue={() => undefined}\n onDiscard={() => undefined}\n />\n </Specimen>\n <Specimen label=\"stopped by a limit\" wide>\n <StoppedRun words={SPOKEN.slice(0, 3)} reason=\"token budget reached\" />\n </Specimen>\n</Specimens>",
76
+ "note": "You pressed stop. The half-written answer stays exactly where it stopped, with a caret to say so, and the run gives its reason on a chip. Continuing is one tap; discarding is the quieter of the two, which is the right ranking.",
77
+ "interaction": "Continue leads and carries the arrow; Discard is a ghost. Both are ordinary buttons — nothing here is a destructive-action dialog."
78
+ }
79
+ ],
80
+ "todo": true
81
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "StreamingText",
3
+ "slug": "streaming-text",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "Tokens arrive softly: the newest words land in blue and settle into ink.",
9
+ "props": [
10
+ {
11
+ "name": "segments",
12
+ "type": "Segment[]",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "Text chunks to stream, optionally marked mono for inline code chips."
16
+ },
17
+ {
18
+ "name": "count",
19
+ "type": "number",
20
+ "required": true,
21
+ "defaultValue": null,
22
+ "description": "How many words from the flattened segments are visible."
23
+ },
24
+ {
25
+ "name": "streaming",
26
+ "type": "boolean",
27
+ "required": true,
28
+ "defaultValue": null,
29
+ "description": "When true the newest words tint blue and a caret blinks at the end."
30
+ }
31
+ ],
32
+ "typeReferences": [
33
+ "Omit<\n ComponentProps<\"p\">,\n \"children\" | \"segments\" | \"count\" | \"streaming\"\n> & {\n /** Text chunks to stream, optionally marked mono for inline code chips. */\n segments: Segment[];\n /** How many words from the flattened segments are visible. */\n count: number;\n /** When true the newest words tint blue and a caret blinks at the end. */\n streaming: boolean;\n}"
34
+ ],
35
+ "subcomponents": [],
36
+ "parts": [],
37
+ "variants": {},
38
+ "defaultVariants": {},
39
+ "tokensUsed": [
40
+ "--cue-font-mono",
41
+ "--cue-radius-control",
42
+ "--cue-stream",
43
+ "--cue-surface-2",
44
+ "--cue-text-body"
45
+ ],
46
+ "summary": "Tokens arrive softly: the newest words land in blue and settle into ink.",
47
+ "examples": [
48
+ {
49
+ "title": "Usage",
50
+ "code": "import { StreamingText } from \"@cueplusplus/ui/elements\";\n\n<StreamingText\n segments={[{ text: \"Hello world\" }, { text: \"thread.tsx\", mono: true }]}\n count={3}\n streaming\n/>",
51
+ "language": "tsx"
52
+ }
53
+ ],
54
+ "status": "todo-docs",
55
+ "url": "/docs/components/streaming-text",
56
+ "mdUrl": "/docs/components/streaming-text.md",
57
+ "jsonUrl": "/r/components/streaming-text.json",
58
+ "specimens": [
59
+ {
60
+ "title": "StreamingText",
61
+ "group": "elements-thread",
62
+ "components": [
63
+ "StreamingText"
64
+ ],
65
+ "code": "<Specimens>\n <Specimen label=\"mid-stream\" wide>\n <StreamingText segments={ANSWER} count={9} streaming />\n </Specimen>\n <Specimen label=\"settled\" wide>\n <StreamingText segments={ANSWER} count={40} streaming={false} />\n </Specimen>\n</Specimens>",
66
+ "note": "Tokens landing a word at a time: the newest two are lit in the streaming hue and cool into ink behind them, and a caret sits at the end while more is coming. A segment marked mono becomes a chip, which is how a path or a channel range survives being read aloud in prose.",
67
+ "interaction": "none, and deliberately: it is a paragraph, and it stays selectable, copyable text at every count."
68
+ }
69
+ ],
70
+ "todo": true
71
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "Sub",
3
+ "slug": "sub",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A subscript inside an expression: a bound or a label, set upright inside the italic.",
9
+ "props": [],
10
+ "typeReferences": [],
11
+ "subcomponents": [],
12
+ "parts": [],
13
+ "variants": {},
14
+ "defaultVariants": {},
15
+ "tokensUsed": [
16
+ "--cue-border-strong",
17
+ "--cue-fg",
18
+ "--cue-fg-subtle",
19
+ "--cue-radius-overlay",
20
+ "--cue-text-emphasis"
21
+ ],
22
+ "summary": "A subscript inside an expression: a bound or a label, set upright inside the italic.",
23
+ "examples": [],
24
+ "status": "todo-docs",
25
+ "url": "/docs/components/sub",
26
+ "mdUrl": "/docs/components/sub.md",
27
+ "jsonUrl": "/r/components/sub.json",
28
+ "specimens": [
29
+ {
30
+ "title": "MathBlock",
31
+ "group": "elements-knowledge",
32
+ "components": [
33
+ "MathBlock",
34
+ "Frac",
35
+ "Sub",
36
+ "Sup"
37
+ ],
38
+ "code": "<Specimens>\n <Specimen label=\"worked through\" wide>\n <MathBlock label=\"illuminance at the deck\" steps={MATH} visibleSteps={MATH.length} />\n </Specimen>\n <Specimen label=\"first step only\" wide>\n <MathBlock steps={MATH} visibleSteps={1} />\n </Specimen>\n</Specimens>",
39
+ "note": "Maths with the working shown, a step at a time. The expressions are nodes rather than a string, so there is no parser and no KaTeX in the bundle — `Frac` stacks a numerator over a rule, `Sup` and `Sub` set an index upright inside the serif italic, and anything else is text.",
40
+ "interaction": "none. Each step's note says what justified it, which is what turns three lines of algebra into an explanation."
41
+ }
42
+ ],
43
+ "todo": true
44
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "SubagentList",
3
+ "slug": "subagent-list",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "Parallel workers with their own progress, models, and completions.",
11
+ "props": [
12
+ {
13
+ "name": "agents",
14
+ "type": "readonly SubagentItem[]",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "Parallel workers shown as cards with name and model."
18
+ },
19
+ {
20
+ "name": "completedCount",
21
+ "type": "number",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "How many agents from the start are marked complete."
25
+ },
26
+ {
27
+ "name": "progress",
28
+ "type": "readonly number[]",
29
+ "required": true,
30
+ "defaultValue": null,
31
+ "description": "Per-agent progress widths used while a worker is still running."
32
+ },
33
+ {
34
+ "name": "showSummary",
35
+ "type": "boolean",
36
+ "required": true,
37
+ "defaultValue": null,
38
+ "description": "When true the summary agent card is revealed under the list."
39
+ },
40
+ {
41
+ "name": "summaryAgent",
42
+ "type": "SubagentItem",
43
+ "required": true,
44
+ "defaultValue": null,
45
+ "description": "Agent shown in the summary card once showSummary is true."
46
+ }
47
+ ],
48
+ "typeReferences": [
49
+ "Omit<\n ComponentProps<\"div\">,\n | \"children\"\n | \"agents\"\n | \"completedCount\"\n | \"progress\"\n | \"showSummary\"\n | \"summaryAgent\"\n> & {\n /** Parallel workers shown as cards with name and model. */\n agents: readonly SubagentItem[];\n /** How many agents from the start are marked complete. */\n completedCount: number;\n /** Per-agent progress widths used while a worker is still running. */\n progress: readonly number[];\n /** When true the summary agent card is revealed under the list. */\n showSummary: boolean;\n /** Agent shown in the summary card once showSummary is true. */\n summaryAgent: SubagentItem;\n}"
50
+ ],
51
+ "subcomponents": [],
52
+ "parts": [],
53
+ "variants": {},
54
+ "defaultVariants": {},
55
+ "tokensUsed": [
56
+ "--cue-accent",
57
+ "--cue-fg-subtle",
58
+ "--cue-ok",
59
+ "--cue-radius-overlay",
60
+ "--cue-surface-2",
61
+ "--cue-text-body"
62
+ ],
63
+ "summary": "Parallel workers with their own progress, models, and completions.",
64
+ "examples": [
65
+ {
66
+ "title": "Usage",
67
+ "code": "import { SubagentList } from \"@cueplusplus/ui/elements\";\n\n<SubagentList\n agents={[{ name: \"Researcher\", model: \"Sonnet\" }]}\n completedCount={0}\n progress={[40]}\n showSummary={false}\n summaryAgent={{ name: \"Summarizer\", model: \"Haiku\" }}\n/>",
68
+ "language": "tsx"
69
+ }
70
+ ],
71
+ "status": "todo-docs",
72
+ "url": "/docs/components/subagent-list",
73
+ "mdUrl": "/docs/components/subagent-list.md",
74
+ "jsonUrl": "/r/components/subagent-list.json",
75
+ "specimens": [
76
+ {
77
+ "title": "SubagentList",
78
+ "group": "elements",
79
+ "components": [
80
+ "SubagentList"
81
+ ],
82
+ "code": "<Specimens>\n <Specimen label=\"two running\" wide>\n <SubagentList\n agents={WORKERS}\n completedCount={1}\n progress={[100, 62, 24]}\n showSummary={false}\n summaryAgent={SUMMARISER}\n />\n </Specimen>\n <Specimen label=\"summarising\" wide>\n <SubagentList\n agents={WORKERS}\n completedCount={WORKERS.length}\n progress={[100, 100, 100]}\n showSummary\n summaryAgent={SUMMARISER}\n />\n </Specimen>\n</Specimens>",
83
+ "note": "Parallel workers, each with its own model and its own progress. `completedCount` marks the finished ones from the start of the list, and the summary card appears under them when the agent that folds their answers together starts work.",
84
+ "interaction": "none. Delegation is something to watch, not something to steer from here."
85
+ }
86
+ ],
87
+ "todo": true
88
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "Suggestions",
3
+ "slug": "suggestions",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "Prompt pills that stagger in after a reply and invite the next turn.",
9
+ "props": [
10
+ {
11
+ "name": "suggestions",
12
+ "type": "readonly string[]",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "Follow-up prompt pills rendered in order."
16
+ },
17
+ {
18
+ "name": "selectedSuggestion",
19
+ "type": "string | null",
20
+ "required": true,
21
+ "defaultValue": null,
22
+ "description": "The pill currently pressed, or null when none is selected."
23
+ },
24
+ {
25
+ "name": "cycle",
26
+ "type": "number",
27
+ "required": true,
28
+ "defaultValue": null,
29
+ "description": "Identity key that remounts the row so the stagger entrance can replay."
30
+ },
31
+ {
32
+ "name": "onSuggestion",
33
+ "type": "(suggestion: string) => void",
34
+ "required": true,
35
+ "defaultValue": null,
36
+ "description": "Called when a suggestion pill is pressed."
37
+ },
38
+ {
39
+ "name": "variant",
40
+ "type": "\"list\" | \"pills\"",
41
+ "required": false,
42
+ "defaultValue": "pills",
43
+ "description": "pills wraps suggestions into a centered row; list stacks them as full-width rows."
44
+ }
45
+ ],
46
+ "typeReferences": [
47
+ "Omit<\n ComponentProps<\"div\">,\n \"children\"\n>"
48
+ ],
49
+ "subcomponents": [],
50
+ "parts": [],
51
+ "variants": {},
52
+ "defaultVariants": {},
53
+ "tokensUsed": [
54
+ "--cue-accent",
55
+ "--cue-accent-fg",
56
+ "--cue-radius-overlay",
57
+ "--cue-text-body"
58
+ ],
59
+ "summary": "Prompt pills that stagger in after a reply and invite the next turn.",
60
+ "examples": [
61
+ {
62
+ "title": "Usage",
63
+ "code": "import { Suggestions } from \"@cueplusplus/ui/elements\";\n\n<Suggestions\n suggestions={[\"Explain more\", \"Show an example\"]}\n selectedSuggestion={null}\n cycle={0}\n onSuggestion={setSelected}\n/>",
64
+ "language": "tsx"
65
+ }
66
+ ],
67
+ "status": "todo-docs",
68
+ "url": "/docs/components/suggestions",
69
+ "mdUrl": "/docs/components/suggestions.md",
70
+ "jsonUrl": "/r/components/suggestions.json",
71
+ "specimens": [
72
+ {
73
+ "title": "Suggestions",
74
+ "group": "elements-thread",
75
+ "components": [
76
+ "Suggestions"
77
+ ],
78
+ "code": "<Specimens>\n <Specimen label=\"pills\" wide>\n <Suggestions\n suggestions={FOLLOW_UPS}\n selectedSuggestion={suggestion}\n cycle={0}\n onSuggestion={setSuggestion}\n />\n </Specimen>\n <Specimen label=\"list\" wide>\n <Suggestions\n suggestions={FOLLOW_UPS}\n selectedSuggestion={FOLLOW_UPS[0] ?? null}\n cycle={1}\n onSuggestion={setSuggestion}\n variant=\"list\"\n />\n </Specimen>\n</Specimens>",
79
+ "note": "Where the conversation could go next, staggered in after a reply. Pills for a centred empty state, a list for a side panel; either way `cycle` is the key that re-runs the entrance when a new set replaces the old one.",
80
+ "interaction": "each pill is a button carrying aria-pressed, lifts a pixel on hover and presses in on click. The selected one inverts."
81
+ }
82
+ ],
83
+ "todo": true
84
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "Sup",
3
+ "slug": "sup",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A superscript inside an expression: an exponent or an index, set upright inside the\nitalic.",
9
+ "props": [],
10
+ "typeReferences": [],
11
+ "subcomponents": [],
12
+ "parts": [],
13
+ "variants": {},
14
+ "defaultVariants": {},
15
+ "tokensUsed": [
16
+ "--cue-border-strong",
17
+ "--cue-fg",
18
+ "--cue-fg-subtle",
19
+ "--cue-radius-overlay",
20
+ "--cue-text-emphasis"
21
+ ],
22
+ "summary": "A superscript inside an expression: an exponent or an index, set upright inside the italic.",
23
+ "examples": [],
24
+ "status": "todo-docs",
25
+ "url": "/docs/components/sup",
26
+ "mdUrl": "/docs/components/sup.md",
27
+ "jsonUrl": "/r/components/sup.json",
28
+ "specimens": [
29
+ {
30
+ "title": "MathBlock",
31
+ "group": "elements-knowledge",
32
+ "components": [
33
+ "MathBlock",
34
+ "Frac",
35
+ "Sub",
36
+ "Sup"
37
+ ],
38
+ "code": "<Specimens>\n <Specimen label=\"worked through\" wide>\n <MathBlock label=\"illuminance at the deck\" steps={MATH} visibleSteps={MATH.length} />\n </Specimen>\n <Specimen label=\"first step only\" wide>\n <MathBlock steps={MATH} visibleSteps={1} />\n </Specimen>\n</Specimens>",
39
+ "note": "Maths with the working shown, a step at a time. The expressions are nodes rather than a string, so there is no parser and no KaTeX in the bundle — `Frac` stacks a numerator over a rule, `Sup` and `Sub` set an index upright inside the serif italic, and anything else is text.",
40
+ "interaction": "none. Each step's note says what justified it, which is what turns three lines of algebra into an explanation."
41
+ }
42
+ ],
43
+ "todo": true
44
+ }