@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,193 @@
1
+ {
2
+ "name": "Popover",
3
+ "slug": "popover",
4
+ "group": "overlays",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A small floating surface anchored to a control — a filter form, an inspector,\na colour picker.\n\nWraps Base UI's `Popover`, so anchoring, collision flipping, Escape and\noutside-press dismissal are the primitive's. This layer adds the token skin,\nthe portal theme stamp and the canvas-safe wheel dismissal.",
9
+ "props": [],
10
+ "typeReferences": [],
11
+ "subcomponents": [
12
+ "Root",
13
+ "Trigger",
14
+ "Content",
15
+ "Title",
16
+ "Description",
17
+ "Close"
18
+ ],
19
+ "parts": [
20
+ {
21
+ "name": "Root",
22
+ "usage": "Popover.Root",
23
+ "description": "Groups the parts of a popover and owns its open state. Renders no element.",
24
+ "props": [
25
+ {
26
+ "name": "closeOnWheel",
27
+ "type": "boolean",
28
+ "required": false,
29
+ "defaultValue": "true",
30
+ "description": "Close the popover when the viewport moves under it — a wheel anywhere\noutside the popup, or a window resize. Defaults to `true`.\n\nAn anchored popup is positioned from its trigger's rect. A canvas that pans\nby mutating a CSS transform fires no `scroll` event, so without this the\npopup silently detaches from the thing it belongs to. Set `false` when the\npopover must survive page scrolling (a pinned inspector, say)."
31
+ }
32
+ ],
33
+ "typeReferences": [
34
+ "BasePopover.Root.Props"
35
+ ]
36
+ },
37
+ {
38
+ "name": "Trigger",
39
+ "usage": "Popover.Trigger",
40
+ "description": "The control the popover is anchored to. Unstyled — pass\n`render={<Button />}` or `render={<IconButton …/>}` so the button's own\nvariant classes stay the last word on how it looks.",
41
+ "props": [],
42
+ "typeReferences": [
43
+ "BasePopover.Trigger.Props"
44
+ ]
45
+ },
46
+ {
47
+ "name": "Content",
48
+ "usage": "Popover.Content",
49
+ "description": "The popover's portal, positioner and popup.\n\nPortalled through {@link useCuePortalProps}, so the surface carries the\ncaller's theme, density and mode even though it mounts at the end of\n`<body>`. Flipping and shifting to stay on screen is Base UI's; the wheel\ndismissal is ours (see {@link PopoverRootProps.closeOnWheel}).",
50
+ "props": [
51
+ {
52
+ "name": "className",
53
+ "type": "string",
54
+ "required": false,
55
+ "defaultValue": null,
56
+ "description": "Extra classes for the popup surface."
57
+ },
58
+ {
59
+ "name": "align",
60
+ "type": "\"center\" | \"end\" | \"start\"",
61
+ "required": false,
62
+ "defaultValue": null,
63
+ "description": "Alignment along that side. Defaults to `\"center\"`."
64
+ },
65
+ {
66
+ "name": "keepMounted",
67
+ "type": "boolean",
68
+ "required": false,
69
+ "defaultValue": null,
70
+ "description": "Keep the popup mounted while closed."
71
+ },
72
+ {
73
+ "name": "positionerClassName",
74
+ "type": "string",
75
+ "required": false,
76
+ "defaultValue": null,
77
+ "description": "Extra classes for the positioner that places the popup."
78
+ },
79
+ {
80
+ "name": "sideOffset",
81
+ "type": "number | OffsetFunction",
82
+ "required": false,
83
+ "defaultValue": "4",
84
+ "description": "Gap in px between trigger and popup. Defaults to `4`."
85
+ },
86
+ {
87
+ "name": "side",
88
+ "type": "\"left\" | \"right\" | \"bottom\" | \"top\" | \"inline-end\" | \"inline-start\"",
89
+ "required": false,
90
+ "defaultValue": null,
91
+ "description": "Preferred side of the trigger. Defaults to `\"bottom\"`."
92
+ },
93
+ {
94
+ "name": "alignOffset",
95
+ "type": "number | OffsetFunction",
96
+ "required": false,
97
+ "defaultValue": null,
98
+ "description": "Nudge along the alignment axis, in px."
99
+ }
100
+ ],
101
+ "typeReferences": [
102
+ "Omit<BasePopover.Popup.Props, \"className\">"
103
+ ]
104
+ },
105
+ {
106
+ "name": "Title",
107
+ "usage": "Popover.Title",
108
+ "description": "The popover's heading, wired to the popup's `aria-labelledby`.",
109
+ "props": [],
110
+ "typeReferences": [
111
+ "BasePopover.Title.Props"
112
+ ]
113
+ },
114
+ {
115
+ "name": "Description",
116
+ "usage": "Popover.Description",
117
+ "description": "The supporting line under the title, published as `aria-describedby`.",
118
+ "props": [],
119
+ "typeReferences": [
120
+ "BasePopover.Description.Props"
121
+ ]
122
+ },
123
+ {
124
+ "name": "Close",
125
+ "usage": "Popover.Close",
126
+ "description": "A control that closes the popover. Unstyled — wrap it in a `Button`.",
127
+ "props": [],
128
+ "typeReferences": [
129
+ "BasePopover.Close.Props"
130
+ ]
131
+ }
132
+ ],
133
+ "variants": {},
134
+ "defaultVariants": {},
135
+ "tokensUsed": [
136
+ "--cue-accent-soft",
137
+ "--cue-border",
138
+ "--cue-border-overlay",
139
+ "--cue-control-sm",
140
+ "--cue-fg",
141
+ "--cue-fg-muted",
142
+ "--cue-fg-subtle",
143
+ "--cue-font-mono",
144
+ "--cue-radius-control",
145
+ "--cue-radius-overlay",
146
+ "--cue-scrim",
147
+ "--cue-space-1",
148
+ "--cue-space-2",
149
+ "--cue-space-3",
150
+ "--cue-space-4",
151
+ "--cue-surface-2",
152
+ "--cue-text-emphasis",
153
+ "--cue-text-label",
154
+ "--cue-text-ui"
155
+ ],
156
+ "summary": "A panel anchored to the control that opened it.",
157
+ "examples": [
158
+ {
159
+ "title": "Usage",
160
+ "code": "<Popover.Root>\n <Popover.Trigger render={<IconButton aria-label=\"Filter\" icon={Filter} />} />\n <Popover.Content side=\"bottom\" align=\"end\">\n <Popover.Title>Filter cues</Popover.Title>\n <SearchInput aria-label=\"Query\" />\n </Popover.Content>\n</Popover.Root>",
161
+ "language": "tsx"
162
+ }
163
+ ],
164
+ "status": "stable",
165
+ "url": "/docs/components/popover",
166
+ "mdUrl": "/docs/components/popover.md",
167
+ "jsonUrl": "/r/components/popover.json",
168
+ "whenToUse": [
169
+ "Secondary controls that belong to one trigger: a filter set, a colour picker, a row's properties.",
170
+ "When the page behind has to stay readable while the panel is open."
171
+ ],
172
+ "whenNotToUse": [
173
+ "A list of commands. Use `DropdownMenu`, which brings roving focus, typeahead and the menu roles.",
174
+ "Text that only describes the trigger. Use `Tooltip`, or `InfoTip` for the question-mark affordance.",
175
+ "Anything that must be answered before the user moves on. Use `Dialog`."
176
+ ],
177
+ "commonMistakes": [
178
+ "Turning `closeOnWheel` off on a canvas that pans by CSS transform. No scroll event fires there, so the popup silently detaches from its trigger.",
179
+ "Filling it with a form whose first control cannot take focus, which strands keyboard users on the trigger."
180
+ ],
181
+ "specimens": [
182
+ {
183
+ "title": "Popover",
184
+ "group": "overlays",
185
+ "components": [
186
+ "Popover"
187
+ ],
188
+ "code": "<Specimens>\n <Specimen label=\"default\">\n <Popover.Root>\n <Popover.Trigger render={<Button>Fixture</Button>} />\n <Popover.Content>\n <Popover.Title>Source Four 26°</Popover.Title>\n <Popover.Description>Universe 1, channels 12 to 19.</Popover.Description>\n <Popover.Close render={<Button size=\"sm\">Close</Button>} />\n </Popover.Content>\n </Popover.Root>\n </Specimen>\n <Specimen label=\"side right\">\n <Popover.Root>\n <Popover.Trigger render={<Button>Right</Button>} />\n <Popover.Content side=\"right\" align=\"start\">\n <Popover.Title>Anchored right</Popover.Title>\n <Popover.Description>Flips when there is no room.</Popover.Description>\n </Popover.Content>\n </Popover.Root>\n </Specimen>\n</Specimens>",
189
+ "note": "An anchored surface with a title, a description and arbitrary content.",
190
+ "interaction": "closes on outside mousedown, on scroll, on wheel and on Escape. The wheel case is the one a canvas that pans by CSS transform needs."
191
+ }
192
+ ]
193
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "PresetSection",
3
+ "slug": "preset-section",
4
+ "group": "configurator",
5
+ "importPath": "@cueplusplus/ui/configurator",
6
+ "peerDependencies": [
7
+ "react-aria-components"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "Section 1 — the four choices that are not token edits at all.\n\nPreset, mode and density are *provider* state: picking one restamps the\ndocument and every portal under it, which is why they live here rather than\nin the colour list. Text scale and zoom are the two relief valves the spec\npairs with the density ladder — one scales the type ramp inside the layout,\nthe other scales the finished layout itself.",
11
+ "props": [
12
+ {
13
+ "name": "edits",
14
+ "type": "TokenEdits",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "The panel's edit surface."
18
+ },
19
+ {
20
+ "name": "zoom",
21
+ "type": "ZoomValve",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "The root zoom valve the panel owns."
25
+ },
26
+ {
27
+ "name": "className",
28
+ "type": "string",
29
+ "required": false,
30
+ "defaultValue": null,
31
+ "description": "Extra classes for the section."
32
+ }
33
+ ],
34
+ "typeReferences": [],
35
+ "subcomponents": [],
36
+ "parts": [],
37
+ "variants": {},
38
+ "defaultVariants": {},
39
+ "tokensUsed": [
40
+ "--cue-accent",
41
+ "--cue-border",
42
+ "--cue-border-strong",
43
+ "--cue-density",
44
+ "--cue-fg",
45
+ "--cue-fg-muted",
46
+ "--cue-fg-subtle",
47
+ "--cue-font-mono",
48
+ "--cue-font-pairing-mono",
49
+ "--cue-font-sans",
50
+ "--cue-font-scale",
51
+ "--cue-font-theme-mono",
52
+ "--cue-radius-control",
53
+ "--cue-radius-scale",
54
+ "--cue-space-1",
55
+ "--cue-space-2",
56
+ "--cue-space-4",
57
+ "--cue-text-label",
58
+ "--cue-text-micro"
59
+ ],
60
+ "summary": "Section 1 — the four choices that are not token edits at all.",
61
+ "examples": [
62
+ {
63
+ "title": "Usage",
64
+ "code": "<PresetSection edits={edits} zoom={zoom} />",
65
+ "language": "tsx"
66
+ }
67
+ ],
68
+ "status": "todo-docs",
69
+ "url": "/docs/components/preset-section",
70
+ "mdUrl": "/docs/components/preset-section.md",
71
+ "jsonUrl": "/r/components/preset-section.json",
72
+ "todo": true
73
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "name": "Progress",
3
+ "slug": "progress",
4
+ "group": "instruments",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "Determinate work, drawn as a filling rule.\n\nWraps Base UI's `Progress`, so `role=\"progressbar\"`, the value formatting and\nthe completion status are the primitive's; this layer adds the console skin:\na sunk `surface-3` track, an accent fill and a 120ms linear width transition\n— linear because a progress bar that eases is lying about its rate.\n\nPassing `value={null}` makes it indeterminate: the fill collapses and the\ntrack pulses instead, which says \"working, size unknown\" without inventing a\nnumber. The pulse stills under `prefers-reduced-motion`.\n\nUse `Meter` instead for a *level* (how full something is); a progress bar is\nfor a *task* (how far along something is).\n\nStatic markup — no `\"use client\"`.",
9
+ "props": [
10
+ {
11
+ "name": "label",
12
+ "type": "ReactNode",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "Caption above the bar. Rendered as Base UI's `Progress.Label`, so it also\nbecomes the bar's accessible name — pass one, or an `aria-label`."
16
+ },
17
+ {
18
+ "name": "className",
19
+ "type": "string",
20
+ "required": false,
21
+ "defaultValue": null,
22
+ "description": "Extra classes for the frame that holds the header and the track."
23
+ },
24
+ {
25
+ "name": "height",
26
+ "type": "number",
27
+ "required": false,
28
+ "defaultValue": "5",
29
+ "description": "Track height in px at the 16px root, emitted as `rem`. Defaults to `5`."
30
+ },
31
+ {
32
+ "name": "showValue",
33
+ "type": "boolean",
34
+ "required": false,
35
+ "defaultValue": "false",
36
+ "description": "Show the formatted value opposite the label. Defaults to `false`."
37
+ },
38
+ {
39
+ "name": "trackClassName",
40
+ "type": "string",
41
+ "required": false,
42
+ "defaultValue": null,
43
+ "description": "Extra classes for the track."
44
+ },
45
+ {
46
+ "name": "indicatorClassName",
47
+ "type": "string",
48
+ "required": false,
49
+ "defaultValue": null,
50
+ "description": "Extra classes for the fill."
51
+ }
52
+ ],
53
+ "typeReferences": [
54
+ "Omit<BaseProgress.Root.Props, \"className\">"
55
+ ],
56
+ "subcomponents": [],
57
+ "parts": [],
58
+ "variants": {},
59
+ "defaultVariants": {},
60
+ "tokensUsed": [
61
+ "--cue-accent",
62
+ "--cue-fg-muted",
63
+ "--cue-fg-subtle",
64
+ "--cue-font-mono",
65
+ "--cue-space-2",
66
+ "--cue-space-3",
67
+ "--cue-surface-3",
68
+ "--cue-text-label"
69
+ ],
70
+ "summary": "Determinate work, drawn as a filling rule.",
71
+ "examples": [
72
+ {
73
+ "title": "Usage",
74
+ "code": "<Progress value={40} label=\"Rendering\" showValue />\n<Progress value={null} aria-label=\"Connecting\" />",
75
+ "language": "tsx"
76
+ }
77
+ ],
78
+ "status": "todo-docs",
79
+ "url": "/docs/components/progress",
80
+ "mdUrl": "/docs/components/progress.md",
81
+ "jsonUrl": "/r/components/progress.json",
82
+ "specimens": [
83
+ {
84
+ "title": "Progress",
85
+ "group": "instruments",
86
+ "components": [
87
+ "Progress"
88
+ ],
89
+ "code": "<div className=\"flex w-full max-w-[36rem] flex-col gap-(--cue-space-5)\">\n <Progress label=\"Rendering preview\" value={62} showValue />\n <Progress label={COPY.loading.title} value={null} />\n <Progress label=\"Tall\" value={30} height={8} showValue />\n</div>",
90
+ "note": "Determinate and indeterminate, with an optional printed value.",
91
+ "interaction": "the indeterminate track stills under prefers-reduced-motion."
92
+ }
93
+ ],
94
+ "todo": true
95
+ }
@@ -0,0 +1,99 @@
1
+ {
2
+ "name": "PromptLibrary",
3
+ "slug": "prompt-library",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "Prompts you saved, searchable, with their variables shown before you insert one.",
11
+ "props": [
12
+ {
13
+ "name": "prompts",
14
+ "type": "readonly SavedPrompt[]",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "Everything saved. Filtering happens inside against the name."
18
+ },
19
+ {
20
+ "name": "query",
21
+ "type": "string",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "Current search text."
25
+ },
26
+ {
27
+ "name": "selectedId",
28
+ "type": "string",
29
+ "required": true,
30
+ "defaultValue": null,
31
+ "description": "Which prompt is previewed below the list."
32
+ },
33
+ {
34
+ "name": "onQueryChange",
35
+ "type": "((query: string) => void)",
36
+ "required": false,
37
+ "defaultValue": null,
38
+ "description": "Called as the search is typed."
39
+ },
40
+ {
41
+ "name": "onSelect",
42
+ "type": "((id: string) => void)",
43
+ "required": false,
44
+ "defaultValue": null,
45
+ "description": "Called when a prompt is highlighted."
46
+ },
47
+ {
48
+ "name": "onInsert",
49
+ "type": "((id: string) => void)",
50
+ "required": false,
51
+ "defaultValue": null,
52
+ "description": "Called on double click, to drop the prompt into the composer."
53
+ }
54
+ ],
55
+ "typeReferences": [
56
+ "Omit<\n ComponentProps<\"div\">,\n | \"children\"\n | \"prompts\"\n | \"query\"\n | \"selectedId\"\n | \"onQueryChange\"\n | \"onSelect\"\n | \"onInsert\"\n> & {\n /** Everything saved. Filtering happens inside against the name. */\n prompts: readonly SavedPrompt[];\n /** Current search text. */\n query: string;\n /** Which prompt is previewed below the list. */\n selectedId: string;\n /** Called as the search is typed. */\n onQueryChange?: (query: string) => void;\n /** Called when a prompt is highlighted. */\n onSelect?: (id: string) => void;\n /** Called on double click, to drop the prompt into the composer. */\n onInsert?: (id: string) => void;\n}"
57
+ ],
58
+ "subcomponents": [],
59
+ "parts": [],
60
+ "variants": {},
61
+ "defaultVariants": {},
62
+ "tokensUsed": [
63
+ "--cue-accent",
64
+ "--cue-bg",
65
+ "--cue-fg-muted",
66
+ "--cue-fg-subtle",
67
+ "--cue-radius-control",
68
+ "--cue-radius-overlay",
69
+ "--cue-radius-surface",
70
+ "--cue-surface-1",
71
+ "--cue-text-body",
72
+ "--cue-text-ui"
73
+ ],
74
+ "summary": "Prompts you saved, searchable, with their variables shown before you insert one.",
75
+ "examples": [
76
+ {
77
+ "title": "Usage",
78
+ "code": "import { PromptLibrary } from \"@cueplusplus/ui/elements\";\n\n<PromptLibrary\n prompts={prompts}\n query={query}\n selectedId={selectedId}\n onQueryChange={setQuery}\n onSelect={setSelectedId}\n onInsert={insert}\n/>",
79
+ "language": "tsx"
80
+ }
81
+ ],
82
+ "status": "todo-docs",
83
+ "url": "/docs/components/prompt-library",
84
+ "mdUrl": "/docs/components/prompt-library.md",
85
+ "jsonUrl": "/r/components/prompt-library.json",
86
+ "specimens": [
87
+ {
88
+ "title": "PromptLibrary",
89
+ "group": "elements-composer",
90
+ "components": [
91
+ "PromptLibrary"
92
+ ],
93
+ "code": "<Specimens>\n <Specimen label=\"browsing\" wide>\n <PromptLibrary\n prompts={PROMPTS}\n query={promptQuery}\n selectedId={promptId}\n onQueryChange={setPromptQuery}\n onSelect={setPromptId}\n onInsert={setPromptId}\n />\n </Specimen>\n <Specimen label=\"nothing matches\" wide>\n <PromptLibrary prompts={PROMPTS} query=\"haze\" selectedId=\"\" />\n </Specimen>\n</Specimens>",
94
+ "note": "Prompts somebody saved, searchable, with the holes in them counted before you insert one — `3 vars` is the difference between a prompt you can send and a template you still have to fill. The preview underneath is the whole body, because a prompt library that hides the prompt is a list of file names.",
95
+ "interaction": "arrows walk the list and Enter inserts; a row also inserts on double-click, so the mouse has the same two gestures the keyboard does. An empty result says what it found nothing for rather than showing an empty box."
96
+ }
97
+ ],
98
+ "todo": true
99
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "name": "QueueDock",
3
+ "slug": "queue-dock",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "What you typed while it was still working, stacked and still yours to change.\n\nThe dock over the composer, and one of the two elements the teardown found\nmissing everywhere. Its whole reason to exist is the three things you can do\nto a queued turn *before* it sends: rewrite it now that you have seen what\nthe run did, jump it to the front, or drop it. A queue you can only watch is\na queue you will let send something you no longer mean.\n\nIt folds. Four queued turns above a composer is a wall, so the collapsed\nstate is one line — `4 queued messages` — and the entries come back on a\nclick. Open state is a prop like everything else in this family, so a\nscripted replay of the dock is arithmetic rather than a component with a mind\nof its own.\n\nAn empty queue draws **nothing**: no line, no empty state, no rule. Every\nproduct in the study does the same, and it is the right answer — a dock that\nannounces it has nothing in it is a permanent strip of chrome apologising for\nitself.",
11
+ "props": [
12
+ {
13
+ "name": "messages",
14
+ "type": "readonly QueuedFollowUp[]",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "The turns waiting to send, in the order they will drain. Ordering is the\ncaller's: Cursor lets a person drag one up the list, and a component that\nsorted the array it was given could not be dragged."
18
+ },
19
+ {
20
+ "name": "open",
21
+ "type": "boolean",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "Whether the entries are showing, or only the summary line."
25
+ },
26
+ {
27
+ "name": "onOpenChange",
28
+ "type": "((open: boolean) => void)",
29
+ "required": false,
30
+ "defaultValue": null,
31
+ "description": "Called when the dock is expanded or collapsed."
32
+ },
33
+ {
34
+ "name": "onEdit",
35
+ "type": "((id: string) => void)",
36
+ "required": false,
37
+ "defaultValue": null,
38
+ "description": "Put this turn back in the composer to be rewritten. The control exists\nonly when this is given."
39
+ },
40
+ {
41
+ "name": "onSendNow",
42
+ "type": "((id: string) => void)",
43
+ "required": false,
44
+ "defaultValue": null,
45
+ "description": "Send this turn now rather than waiting for the run to finish — Cursor's\n`Send now`, Zed's steer button. The control exists only when this is given."
46
+ },
47
+ {
48
+ "name": "onRemove",
49
+ "type": "((id: string) => void)",
50
+ "required": false,
51
+ "defaultValue": null,
52
+ "description": "Drop this turn before it ever sends. The control exists only when this is\ngiven."
53
+ },
54
+ {
55
+ "name": "summary",
56
+ "type": "string",
57
+ "required": false,
58
+ "defaultValue": null,
59
+ "description": "The summary line, replacing the one {@link formatQueueSummary} would build\n— for a dock that counts something else: `2 follow-ups`, `3 steps queued`."
60
+ },
61
+ {
62
+ "name": "labels",
63
+ "type": "Partial<QueueLabels>",
64
+ "required": false,
65
+ "defaultValue": null,
66
+ "description": "Copy for the five controls, merged over `QUEUE_LABELS`. Partial: overriding\n`sendNow` does not cost you the other four."
67
+ }
68
+ ],
69
+ "typeReferences": [
70
+ "Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">"
71
+ ],
72
+ "subcomponents": [],
73
+ "parts": [],
74
+ "variants": {},
75
+ "defaultVariants": {},
76
+ "tokensUsed": [
77
+ "--cue-accent",
78
+ "--cue-fg-muted",
79
+ "--cue-fg-subtle",
80
+ "--cue-radius-control",
81
+ "--cue-radius-overlay",
82
+ "--cue-surface-2",
83
+ "--cue-text-ui"
84
+ ],
85
+ "summary": "What you typed while it was still working, stacked and still yours to change.",
86
+ "examples": [
87
+ {
88
+ "title": "Usage",
89
+ "code": "import { QueueDock } from \"@cueplusplus/ui/elements\";\n\n<QueueDock\n messages={queued}\n open={open}\n onOpenChange={setOpen}\n onEdit={(id) => lift(id)}\n onSendNow={(id) => steer(id)}\n onRemove={(id) => drop(id)}\n/>\n// Read-only: the same dock in a shared transcript, with nothing to press.\n<QueueDock messages={queued} open />",
90
+ "language": "tsx"
91
+ }
92
+ ],
93
+ "status": "todo-docs",
94
+ "url": "/docs/components/queue-dock",
95
+ "mdUrl": "/docs/components/queue-dock.md",
96
+ "jsonUrl": "/r/components/queue-dock.json",
97
+ "specimens": [
98
+ {
99
+ "title": "QueueDock",
100
+ "group": "elements-agents",
101
+ "components": [
102
+ "QueueDock"
103
+ ],
104
+ "code": "<Specimens>\n <Specimen label={queueOpen ? \"three waiting\" : \"folded\"} wide>\n <div className=\"w-full max-w-md\">\n <QueueDock\n messages={queued}\n open={queueOpen}\n onOpenChange={setQueueOpen}\n onEdit={drain}\n onSendNow={drain}\n onRemove={drain}\n />\n </div>\n </Specimen>\n <Specimen label=\"read-only, in a shared transcript\" wide>\n <div className=\"w-full max-w-md\">\n <QueueDock messages={FOLLOW_UPS.slice(0, 2)} open />\n </div>\n </Specimen>\n</Specimens>",
105
+ "note": "What you typed while it was still working — and the three things you can still do about it. Cursor, opencode, Cline, Roo and Zed all ship this dock and assistant-ui's catalogue has nothing like it; the vendored MessageQueue two files along is the strip without the verbs. It folds to one line, because four queued turns above a composer is a wall, and an empty queue draws nothing at all rather than a strip of chrome apologising for itself.",
106
+ "interaction": "the summary line is the trigger and carries its own aria-expanded; each entry's three controls are named after the turn they belong to (`Send now: Then export the whole show to the desk`), so a screen reader hears which one it is about to jump. Press any of them here and the entry drains — the bench refills when the last one goes."
107
+ }
108
+ ],
109
+ "todo": true
110
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "QuotaBanner",
3
+ "slug": "quota-banner",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "How much is left, when it comes back, and the way to get more.",
9
+ "props": [
10
+ {
11
+ "name": "used",
12
+ "type": "number",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "How much has been consumed."
16
+ },
17
+ {
18
+ "name": "limit",
19
+ "type": "number",
20
+ "required": true,
21
+ "defaultValue": null,
22
+ "description": "The allowance. The banner turns amber at 90 percent."
23
+ },
24
+ {
25
+ "name": "unit",
26
+ "type": "string",
27
+ "required": true,
28
+ "defaultValue": null,
29
+ "description": "What is being counted: messages, runs, credits."
30
+ },
31
+ {
32
+ "name": "resetsIn",
33
+ "type": "string",
34
+ "required": true,
35
+ "defaultValue": null,
36
+ "description": "Pre-formatted time until the window rolls over."
37
+ },
38
+ {
39
+ "name": "upgradeLabel",
40
+ "type": "string",
41
+ "required": true,
42
+ "defaultValue": null,
43
+ "description": "Label for the way out."
44
+ },
45
+ {
46
+ "name": "onUpgrade",
47
+ "type": "(() => void)",
48
+ "required": false,
49
+ "defaultValue": null,
50
+ "description": "Called from the upgrade action."
51
+ }
52
+ ],
53
+ "typeReferences": [
54
+ "Omit<\n ComponentProps<\"div\">,\n | \"children\"\n | \"used\"\n | \"limit\"\n | \"unit\"\n | \"resetsIn\"\n | \"upgradeLabel\"\n | \"onUpgrade\"\n> & {\n /** How much has been consumed. */\n used: number;\n /** The allowance. The banner turns amber at 90 percent. */\n limit: number;\n /** What is being counted: messages, runs, credits. */\n unit: string;\n /** Pre-formatted time until the window rolls over. */\n resetsIn: string;\n /** Label for the way out. */\n upgradeLabel: string;\n /** Called from the upgrade action. */\n onUpgrade?: () => void;\n}"
55
+ ],
56
+ "subcomponents": [],
57
+ "parts": [],
58
+ "variants": {},
59
+ "defaultVariants": {},
60
+ "tokensUsed": [
61
+ "--cue-fg-subtle",
62
+ "--cue-radius-overlay",
63
+ "--cue-surface-2",
64
+ "--cue-surface-3",
65
+ "--cue-text-body",
66
+ "--cue-text-ui",
67
+ "--cue-warn"
68
+ ],
69
+ "summary": "How much is left, when it comes back, and the way to get more.",
70
+ "examples": [
71
+ {
72
+ "title": "Usage",
73
+ "code": "import { QuotaBanner } from \"@cueplusplus/ui/elements\";\n\n<QuotaBanner used={47} limit={50} unit=\"messages\" resetsIn=\"3h 12m\" upgradeLabel=\"Upgrade\" />",
74
+ "language": "tsx"
75
+ }
76
+ ],
77
+ "status": "todo-docs",
78
+ "url": "/docs/components/quota-banner",
79
+ "mdUrl": "/docs/components/quota-banner.md",
80
+ "jsonUrl": "/r/components/quota-banner.json",
81
+ "specimens": [
82
+ {
83
+ "title": "QuotaBanner",
84
+ "group": "elements-agents",
85
+ "components": [
86
+ "QuotaBanner"
87
+ ],
88
+ "code": "<Specimens>\n <Specimen label=\"comfortable\" wide>\n <QuotaBanner\n used={140}\n limit={500}\n unit=\"agent runs\"\n resetsIn=\"12 days\"\n upgradeLabel=\"Raise the limit\"\n onUpgrade={() => undefined}\n />\n </Specimen>\n <Specimen label=\"nearly out\" wide>\n <QuotaBanner\n used={472}\n limit={500}\n unit=\"agent runs\"\n resetsIn=\"3 days\"\n upgradeLabel=\"Raise the limit\"\n onUpgrade={() => undefined}\n />\n </Specimen>\n</Specimens>",
89
+ "note": "How much is left, when it comes back, and the way to get more — in that order, which is the order the question is actually asked in. It turns warn at nine tenths rather than at the wall, so the warning arrives while there is still something to do about it.",
90
+ "interaction": "the upgrade action is an ink button with the label the caller passes; nothing here is a link, so the destination is entirely the host app's business."
91
+ }
92
+ ],
93
+ "todo": true
94
+ }