@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,61 @@
1
+ {
2
+ "name": "SpeakerIdentity",
3
+ "slug": "speaker-identity",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "Who is talking, once a thread holds more than a user and one model.",
11
+ "props": [
12
+ {
13
+ "name": "turns",
14
+ "type": "readonly SpeakerTurn[]",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "Turns in order, each naming who produced it."
18
+ }
19
+ ],
20
+ "typeReferences": [
21
+ "Omit<ComponentProps<\"div\">, \"children\" | \"turns\"> & {\n /** Turns in order, each naming who produced it. */\n turns: readonly SpeakerTurn[];\n}"
22
+ ],
23
+ "subcomponents": [],
24
+ "parts": [],
25
+ "variants": {},
26
+ "defaultVariants": {},
27
+ "tokensUsed": [
28
+ "--cue-fg-muted",
29
+ "--cue-fg-subtle",
30
+ "--cue-radius-surface",
31
+ "--cue-stream",
32
+ "--cue-surface-1",
33
+ "--cue-surface-2",
34
+ "--cue-text-body"
35
+ ],
36
+ "summary": "Who is talking, once a thread holds more than a user and one model.",
37
+ "examples": [
38
+ {
39
+ "title": "Usage",
40
+ "code": "import { SpeakerIdentity } from \"@cueplusplus/ui/elements\";\n\n<SpeakerIdentity turns={turns} />",
41
+ "language": "tsx"
42
+ }
43
+ ],
44
+ "status": "todo-docs",
45
+ "url": "/docs/components/speaker-identity",
46
+ "mdUrl": "/docs/components/speaker-identity.md",
47
+ "jsonUrl": "/r/components/speaker-identity.json",
48
+ "specimens": [
49
+ {
50
+ "title": "SpeakerIdentity",
51
+ "group": "elements-composer",
52
+ "components": [
53
+ "SpeakerIdentity"
54
+ ],
55
+ "code": "<Specimens>\n <Specimen label=\"four voices\" wide>\n <SpeakerIdentity turns={SPEAKERS} />\n </Specimen>\n <Specimen label=\"just the two of you\" wide>\n <SpeakerIdentity turns={SPEAKERS.slice(0, 2)} />\n </Specimen>\n</Specimens>",
56
+ "note": "Who is talking, once a thread holds more than a user and one model. Four kinds — you, the agent, a subagent it delegated to, and a tool that answered — with the subagent's badge rounded so a delegated turn reads as delegated at a glance. `detail` is the second fact the name needs: which model spoke, or how long the tool took.",
57
+ "interaction": "none. It is a transcript, not a control; the badges are the only thing distinguishing four voices that would otherwise be four paragraphs."
58
+ }
59
+ ],
60
+ "todo": true
61
+ }
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "SpecSheet",
3
+ "slug": "spec-sheet",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "The most common structured answer after a table: one object, labeled.",
9
+ "props": [
10
+ {
11
+ "name": "title",
12
+ "type": "string",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "What the sheet describes."
16
+ },
17
+ {
18
+ "name": "subtitle",
19
+ "type": "string",
20
+ "required": false,
21
+ "defaultValue": null,
22
+ "description": "Secondary identifier: a model id, a SKU, a version."
23
+ },
24
+ {
25
+ "name": "rows",
26
+ "type": "readonly SpecRow[]",
27
+ "required": true,
28
+ "defaultValue": null,
29
+ "description": "Label and value pairs. Values are pre-formatted and right-aligned on tabular figures."
30
+ },
31
+ {
32
+ "name": "visibleCount",
33
+ "type": "number",
34
+ "required": true,
35
+ "defaultValue": null,
36
+ "description": "How many rows have landed."
37
+ }
38
+ ],
39
+ "typeReferences": [
40
+ "Omit<\n ComponentProps<\"div\">,\n \"children\" | \"title\" | \"subtitle\" | \"rows\" | \"visibleCount\"\n> & {\n /** What the sheet describes. */\n title: string;\n /** Secondary identifier: a model id, a SKU, a version. */\n subtitle?: string;\n /** Label and value pairs. Values are pre-formatted and right-aligned on tabular figures. */\n rows: readonly SpecRow[];\n /** How many rows have landed. */\n visibleCount: number;\n}"
41
+ ],
42
+ "subcomponents": [],
43
+ "parts": [],
44
+ "variants": {},
45
+ "defaultVariants": {},
46
+ "tokensUsed": [
47
+ "--cue-border",
48
+ "--cue-fg",
49
+ "--cue-fg-muted",
50
+ "--cue-fg-subtle",
51
+ "--cue-radius-overlay",
52
+ "--cue-text-body",
53
+ "--cue-text-ui"
54
+ ],
55
+ "summary": "The most common structured answer after a table: one object, labeled.",
56
+ "examples": [
57
+ {
58
+ "title": "Usage",
59
+ "code": "import { SpecSheet } from \"@cueplusplus/ui/elements\";\n\n<SpecSheet title=\"Opus 5\" subtitle=\"claude-opus-5\" rows={rows} visibleCount={6} />",
60
+ "language": "tsx"
61
+ }
62
+ ],
63
+ "status": "todo-docs",
64
+ "url": "/docs/components/spec-sheet",
65
+ "mdUrl": "/docs/components/spec-sheet.md",
66
+ "jsonUrl": "/r/components/spec-sheet.json",
67
+ "specimens": [
68
+ {
69
+ "title": "SpecSheet",
70
+ "group": "elements-knowledge",
71
+ "components": [
72
+ "SpecSheet"
73
+ ],
74
+ "code": "<Specimens>\n <Specimen label=\"the whole sheet\" wide>\n <SpecSheet\n title=\"Robe ESPRITE\"\n subtitle=\"as configured for the front truss\"\n rows={SPEC}\n visibleCount={SPEC.length}\n />\n </Specimen>\n <Specimen label=\"arriving\" wide>\n <SpecSheet title=\"Robe ESPRITE\" rows={SPEC} visibleCount={3} />\n </Specimen>\n</Specimens>",
75
+ "note": "One object, labelled — the commonest structured answer after a table. Labels sit in mono on the leading edge and values in tabular figures on the trailing one, so a column of numbers lines up even though nothing here is a table. `emphasis` promotes the one row that answers the question.",
76
+ "interaction": "none. `visibleCount` is what makes it arrive a row at a time instead of appearing whole."
77
+ }
78
+ ],
79
+ "todo": true
80
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "name": "SpectrumVisualizer",
3
+ "slug": "spectrum-visualizer",
4
+ "group": "midi",
5
+ "importPath": "@cueplusplus/ui/midi",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "The FFT, drawn: one bar per frequency band, or one line across all of them.\n\nPorted from ableton-sync's analyser, with the colours taken off the caller's\nhands. The original asked for a `color` per band and defaulted to `#00FF00`\nwhen it did not get one, which is how an audio tool ends up with two\ndifferent greens for the same band in two different panels. Here the bands\n*are* the ramp — the same `BANDS_7`/`BANDS_10`/`BANDS_16`/`BANDS_31` the\n`/charts` subpath publishes — so bass is the same red in the analyser, in the\nlegend and in any chart of the same data.\n\nThose ramps are deliberately theme-independent (see `charts/ramps.tsx`): a\nlistener who has learnt \"bass is red\" must not have to relearn it because the\nconsole switched to a different accent. Everything *around* the data — the\ngrid, the line trace — does read tokens, and is resolved at paint time so a\ntheme switch needs no subscription.\n\nSelection dims rather than hides. A band that vanished when deselected would\nchange the shape of the spectrum, and the shape is the reading.",
9
+ "props": [
10
+ {
11
+ "name": "levels",
12
+ "type": "readonly number[] | Float32Array<ArrayBufferLike>",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "One level per band, `0`–`1`, in the ramp's own order.\n\nPositional rather than keyed by band id: an FFT hands back an array forty\ntimes a second, and building a lookup per frame to match it up is work for\nno information."
16
+ },
17
+ {
18
+ "name": "ramp",
19
+ "type": "readonly FrequencyBand[] | \"bands-7\" | \"bands-10\" | \"bands-16\" | \"bands-31\"",
20
+ "required": false,
21
+ "defaultValue": "bands-7",
22
+ "description": "The bands: a ramp from `/charts` by name, or a band list. Defaults to `\"bands-7\"`."
23
+ },
24
+ {
25
+ "name": "mode",
26
+ "type": "\"line\" | \"bars\"",
27
+ "required": false,
28
+ "defaultValue": "bars",
29
+ "description": "Bars or a line trace. Defaults to `\"bars\"`."
30
+ },
31
+ {
32
+ "name": "thresholds",
33
+ "type": "number | readonly number[]",
34
+ "required": false,
35
+ "defaultValue": null,
36
+ "description": "Trigger levels to rule, one per band or one for all of them."
37
+ },
38
+ {
39
+ "name": "selected",
40
+ "type": "readonly string[]",
41
+ "required": false,
42
+ "defaultValue": null,
43
+ "description": "Band ids to keep bright. Empty or absent means every band is bright."
44
+ },
45
+ {
46
+ "name": "sensitivity",
47
+ "type": "number",
48
+ "required": false,
49
+ "defaultValue": "1",
50
+ "description": "Display gain applied to every level before drawing. Defaults to `1`."
51
+ },
52
+ {
53
+ "name": "height",
54
+ "type": "number",
55
+ "required": false,
56
+ "defaultValue": "96",
57
+ "description": "Graph height in px at the 16px root, emitted as `rem`. Defaults to `96`."
58
+ },
59
+ {
60
+ "name": "labels",
61
+ "type": "boolean",
62
+ "required": false,
63
+ "defaultValue": "true",
64
+ "description": "List the band names under the graph. Defaults to `true`."
65
+ },
66
+ {
67
+ "name": "label",
68
+ "type": "string",
69
+ "required": false,
70
+ "defaultValue": "Spectrum",
71
+ "description": "What is being analysed. Defaults to `\"Spectrum\"`."
72
+ }
73
+ ],
74
+ "typeReferences": [
75
+ "Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">"
76
+ ],
77
+ "subcomponents": [],
78
+ "parts": [],
79
+ "variants": {},
80
+ "defaultVariants": {},
81
+ "tokensUsed": [
82
+ "--cue-accent",
83
+ "--cue-border",
84
+ "--cue-data-ground",
85
+ "--cue-font-mono",
86
+ "--cue-radius-control",
87
+ "--cue-space-1",
88
+ "--cue-text-micro"
89
+ ],
90
+ "summary": "The FFT, drawn: one bar per frequency band, or one line across all of them.",
91
+ "examples": [
92
+ {
93
+ "title": "Usage",
94
+ "code": "<SpectrumVisualizer levels={fft} ramp=\"bands-31\" thresholds={0.7} />",
95
+ "language": "tsx"
96
+ }
97
+ ],
98
+ "status": "todo-docs",
99
+ "url": "/docs/components/spectrum-visualizer",
100
+ "mdUrl": "/docs/components/spectrum-visualizer.md",
101
+ "jsonUrl": "/r/components/spectrum-visualizer.json",
102
+ "specimens": [
103
+ {
104
+ "title": "SpectrumVisualizer",
105
+ "group": "midi",
106
+ "components": [
107
+ "SpectrumVisualizer"
108
+ ],
109
+ "code": "<div className=\"flex w-full flex-col gap-(--cue-space-5)\">\n <SpectrumVisualizer levels={LEVELS} height={140} label=\"Seven-band analyser\" />\n <SpectrumVisualizer\n levels={LEVELS}\n mode=\"line\"\n thresholds={0.5}\n height={120}\n label=\"Seven-band analyser, line mode\"\n />\n <SpectrumVisualizer\n levels={LEVELS_31}\n ramp=\"bands-31\"\n selected={[\"sub\", \"bass\"]}\n labels={false}\n height={120}\n label=\"31-band analyser, bass selected\"\n />\n</div>",
110
+ "note": "Bars or line, with band colours taken from the /charts ramps. Those are literals on purpose: a listener who has learnt `bass is red` must not relearn it because the console switched accent.",
111
+ "interaction": "a selection dims the bands outside it rather than hiding them; thresholds are dashed rules per band."
112
+ }
113
+ ],
114
+ "todo": true
115
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "Spinner",
3
+ "slug": "spinner",
4
+ "group": "primitives",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "An indeterminate progress ring, drawn in CSS only — no SVG, no animation\nlibrary, one element.\n\nThe ring is a conic gradient masked to a hairline annulus, inked with\n`currentColor`, so it inherits whatever text colour surrounds it (a spinner\ninside a `danger` button is red without being told). Under\n`prefers-reduced-motion` the rotation stops and the ring stays as a static\narc rather than disappearing.",
9
+ "props": [
10
+ {
11
+ "name": "size",
12
+ "type": "\"sm\" | \"md\"",
13
+ "required": false,
14
+ "defaultValue": "md",
15
+ "description": "Rung of the density icon ladder to draw at. Defaults to `\"md\"`."
16
+ },
17
+ {
18
+ "name": "label",
19
+ "type": "string",
20
+ "required": false,
21
+ "defaultValue": "Loading",
22
+ "description": "Accessible label announced while the spinner is on screen. Defaults to `\"Loading\"`."
23
+ }
24
+ ],
25
+ "typeReferences": [
26
+ "Omit<React.ComponentPropsWithoutRef<\"span\">, \"children\">"
27
+ ],
28
+ "subcomponents": [],
29
+ "parts": [],
30
+ "variants": {},
31
+ "defaultVariants": {},
32
+ "tokensUsed": [
33
+ "--cue-icon-md",
34
+ "--cue-icon-sm"
35
+ ],
36
+ "summary": "An indeterminate progress ring, drawn in CSS only — no SVG, no animation library, one element.",
37
+ "examples": [
38
+ {
39
+ "title": "Usage",
40
+ "code": "<Spinner size=\"sm\" />\n<Button disabled><Spinner /> Rendering…</Button>",
41
+ "language": "tsx"
42
+ }
43
+ ],
44
+ "status": "todo-docs",
45
+ "url": "/docs/components/spinner",
46
+ "mdUrl": "/docs/components/spinner.md",
47
+ "jsonUrl": "/r/components/spinner.json",
48
+ "specimens": [
49
+ {
50
+ "title": "Spinner",
51
+ "group": "primitives",
52
+ "components": [
53
+ "Spinner"
54
+ ],
55
+ "code": "<Specimens>\n <Specimen label=\"sm\">\n <Spinner size=\"sm\" />\n </Specimen>\n <Specimen label=\"md\">\n <Spinner />\n </Specimen>\n <Specimen label=\"labelled\">\n <Spinner label=\"Reading show file\" />\n </Specimen>\n</Specimens>",
56
+ "note": "Two sizes. Carries a visually hidden label so a screen reader is told the wait, not left with a spinning div.",
57
+ "interaction": "stills under prefers-reduced-motion."
58
+ }
59
+ ],
60
+ "todo": true
61
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "StackIcon",
3
+ "slug": "stack-icon",
4
+ "group": "icons",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "One person's stack: the set of things they have actually installed.\n\nPlates seen edge-on — the layers idiom — because a stack is an accumulation\nand not a container: things go into it one at a time and the order they went\nin is part of what it is.",
9
+ "props": [],
10
+ "typeReferences": [
11
+ "React.SVGProps<SVGSVGElement>"
12
+ ],
13
+ "subcomponents": [],
14
+ "parts": [],
15
+ "variants": {},
16
+ "defaultVariants": {},
17
+ "tokensUsed": [
18
+ "--cue-danger",
19
+ "--cue-fg",
20
+ "--cue-icon-",
21
+ "--cue-icon-md",
22
+ "--cue-icon-sm"
23
+ ],
24
+ "summary": "One person's stack: the set of things they have actually installed.",
25
+ "examples": [],
26
+ "status": "todo-docs",
27
+ "url": "/docs/components/stack-icon",
28
+ "mdUrl": "/docs/components/stack-icon.md",
29
+ "jsonUrl": "/r/components/stack-icon.json",
30
+ "specimens": [
31
+ {
32
+ "title": "The container icon set",
33
+ "group": "icons",
34
+ "components": [
35
+ "CatalogueIcon",
36
+ "StackIcon",
37
+ "StacksMatrixIcon",
38
+ "AudienceIcon",
39
+ "ChannelReleasedIcon",
40
+ "ChannelBetaIcon",
41
+ "FolderIcon",
42
+ "McpServerIcon",
43
+ "CliToolIcon",
44
+ "SkillIcon"
45
+ ],
46
+ "code": "<Specimens>\n {CONTAINERS.map(([label, name, Icon]) => (\n <Specimen key={name} label={label}>\n <Icon className=\"size-icon-md text-fg\" />\n </Specimen>\n ))}\n</Specimens>\n<Specimens>\n <Specimen label=\"icon-sm\">\n <SkillIcon className=\"size-icon-sm text-fg\" />\n </Specimen>\n <Specimen label=\"icon-md\">\n <SkillIcon className=\"size-icon-md text-fg\" />\n </Specimen>\n <Specimen label=\"inherited\">\n <SkillIcon className=\"size-icon-md\" />\n </Specimen>\n <Specimen label=\"muted\">\n <SkillIcon className=\"size-icon-md text-fg-muted\" />\n </Specimen>\n <Specimen label=\"accent\">\n <SkillIcon className=\"size-icon-md text-accent\" />\n </Specimen>\n <Specimen label=\"danger\">\n <SkillIcon className=\"size-icon-md text-danger\" />\n </Specimen>\n</Specimens>\n<Specimens>\n <Specimen label=\"in a row\" wide>\n <span className=\"inline-flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-ui) text-fg-muted\">\n <ChannelReleasedIcon className=\"size-icon-md shrink-0\" />\n Our skills · released\n </span>\n </Specimen>\n <Specimen label=\"current row\" wide>\n <span className=\"inline-flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-ui) text-fg\">\n <ChannelBetaIcon className=\"size-icon-md shrink-0\" />\n Our skills · beta\n </span>\n </Specimen>\n</Specimens>",
47
+ "note": "One grid and one weight across all ten, at size-icon-md — the size a navigation row draws them at. Each is a plain <svg> that takes every SVG prop.",
48
+ "interaction": "none. They are decorative by default: aria-hidden, announced by nothing, because the row they mark already carries its name."
49
+ }
50
+ ],
51
+ "todo": true
52
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "Stack",
3
+ "slug": "stack",
4
+ "group": "layout",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "One-dimensional layout: the flex row or column, with the gap tokenised.\n\nExists so that spacing between siblings is a density decision rather than a\nper-call-site guess. A `Stack gap={4}` is 8px at normal density and 6px at\nultra-compact without touching the markup, which is the whole point of the\ndensity system — and something `flex gap-2` written by hand quietly opts out\nof.\n\nStatic markup — no `\"use client\"`.",
9
+ "props": [
10
+ {
11
+ "name": "direction",
12
+ "type": "\"row\" | \"column\"",
13
+ "required": false,
14
+ "defaultValue": "column",
15
+ "description": "`\"column\"` (default) or `\"row\"`."
16
+ },
17
+ {
18
+ "name": "gap",
19
+ "type": "0 | 4 | 8 | 1 | 2 | 3 | 5 | 6 | 7",
20
+ "required": false,
21
+ "defaultValue": "4",
22
+ "description": "Which rung of the density space ladder to spend between children. Defaults to `4`."
23
+ },
24
+ {
25
+ "name": "align",
26
+ "type": "\"center\" | \"end\" | \"baseline\" | \"start\" | \"stretch\"",
27
+ "required": false,
28
+ "defaultValue": null,
29
+ "description": "Cross-axis alignment. Omit to inherit the flex default (`stretch`)."
30
+ },
31
+ {
32
+ "name": "justify",
33
+ "type": "\"center\" | \"end\" | \"start\" | \"between\"",
34
+ "required": false,
35
+ "defaultValue": null,
36
+ "description": "Main-axis distribution. Omit to inherit the flex default (`start`)."
37
+ },
38
+ {
39
+ "name": "wrap",
40
+ "type": "boolean",
41
+ "required": false,
42
+ "defaultValue": "false",
43
+ "description": "Let a row wrap onto more lines."
44
+ },
45
+ {
46
+ "name": "inline",
47
+ "type": "boolean",
48
+ "required": false,
49
+ "defaultValue": "false",
50
+ "description": "Lay out as `inline-flex`, so the stack sits in a line of text."
51
+ }
52
+ ],
53
+ "typeReferences": [
54
+ "React.ComponentPropsWithoutRef<\"div\">"
55
+ ],
56
+ "subcomponents": [],
57
+ "parts": [],
58
+ "variants": {},
59
+ "defaultVariants": {},
60
+ "tokensUsed": [
61
+ "--cue-space-",
62
+ "--cue-space-1",
63
+ "--cue-space-2",
64
+ "--cue-space-3",
65
+ "--cue-space-4",
66
+ "--cue-space-5",
67
+ "--cue-space-6",
68
+ "--cue-space-7",
69
+ "--cue-space-8"
70
+ ],
71
+ "summary": "One-dimensional layout: the flex row or column, with the gap tokenised.",
72
+ "examples": [
73
+ {
74
+ "title": "Usage",
75
+ "code": "<Stack gap={5}><Panel /><Panel /></Stack>\n<Stack direction=\"row\" gap={2} align=\"center\"><StatusDot tone=\"ok\" />Online</Stack>",
76
+ "language": "tsx"
77
+ }
78
+ ],
79
+ "status": "todo-docs",
80
+ "url": "/docs/components/stack",
81
+ "mdUrl": "/docs/components/stack.md",
82
+ "jsonUrl": "/r/components/stack.json",
83
+ "specimens": [
84
+ {
85
+ "title": "Stack",
86
+ "group": "layout",
87
+ "components": [
88
+ "Stack"
89
+ ],
90
+ "code": "<Specimens>\n <Specimen label=\"row, gap 3\">\n <Stack direction=\"row\" gap={3}>\n <Chip>one</Chip>\n <Chip>two</Chip>\n <Chip>three</Chip>\n </Stack>\n </Specimen>\n <Specimen label=\"column, gap 5\">\n <Stack gap={5}>\n <Chip>one</Chip>\n <Chip>two</Chip>\n </Stack>\n </Specimen>\n <Specimen label=\"row, between\">\n <Stack direction=\"row\" justify=\"between\" className=\"w-[14rem]\">\n <Chip>left</Chip>\n <Chip>right</Chip>\n </Stack>\n </Specimen>\n</Specimens>",
91
+ "note": "Flex with the gap taken from a rung of the density ladder, never a length. That is what makes a layout tighten with the rest of the console.",
92
+ "interaction": "none."
93
+ }
94
+ ],
95
+ "todo": true
96
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "StacksMatrixIcon",
3
+ "slug": "stacks-matrix-icon",
4
+ "group": "icons",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "Every stack at once, one column each: who has what, read across.\n\nA table rather than more plates. The head rule and the name column are what\nmake it a matrix instead of a grid — the question it answers is \"which of\nthese does that person not have\", and that is a question with two axes.",
9
+ "props": [],
10
+ "typeReferences": [
11
+ "React.SVGProps<SVGSVGElement>"
12
+ ],
13
+ "subcomponents": [],
14
+ "parts": [],
15
+ "variants": {},
16
+ "defaultVariants": {},
17
+ "tokensUsed": [
18
+ "--cue-danger",
19
+ "--cue-fg",
20
+ "--cue-icon-",
21
+ "--cue-icon-md",
22
+ "--cue-icon-sm"
23
+ ],
24
+ "summary": "Every stack at once, one column each: who has what, read across.",
25
+ "examples": [],
26
+ "status": "todo-docs",
27
+ "url": "/docs/components/stacks-matrix-icon",
28
+ "mdUrl": "/docs/components/stacks-matrix-icon.md",
29
+ "jsonUrl": "/r/components/stacks-matrix-icon.json",
30
+ "specimens": [
31
+ {
32
+ "title": "The container icon set",
33
+ "group": "icons",
34
+ "components": [
35
+ "CatalogueIcon",
36
+ "StackIcon",
37
+ "StacksMatrixIcon",
38
+ "AudienceIcon",
39
+ "ChannelReleasedIcon",
40
+ "ChannelBetaIcon",
41
+ "FolderIcon",
42
+ "McpServerIcon",
43
+ "CliToolIcon",
44
+ "SkillIcon"
45
+ ],
46
+ "code": "<Specimens>\n {CONTAINERS.map(([label, name, Icon]) => (\n <Specimen key={name} label={label}>\n <Icon className=\"size-icon-md text-fg\" />\n </Specimen>\n ))}\n</Specimens>\n<Specimens>\n <Specimen label=\"icon-sm\">\n <SkillIcon className=\"size-icon-sm text-fg\" />\n </Specimen>\n <Specimen label=\"icon-md\">\n <SkillIcon className=\"size-icon-md text-fg\" />\n </Specimen>\n <Specimen label=\"inherited\">\n <SkillIcon className=\"size-icon-md\" />\n </Specimen>\n <Specimen label=\"muted\">\n <SkillIcon className=\"size-icon-md text-fg-muted\" />\n </Specimen>\n <Specimen label=\"accent\">\n <SkillIcon className=\"size-icon-md text-accent\" />\n </Specimen>\n <Specimen label=\"danger\">\n <SkillIcon className=\"size-icon-md text-danger\" />\n </Specimen>\n</Specimens>\n<Specimens>\n <Specimen label=\"in a row\" wide>\n <span className=\"inline-flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-ui) text-fg-muted\">\n <ChannelReleasedIcon className=\"size-icon-md shrink-0\" />\n Our skills · released\n </span>\n </Specimen>\n <Specimen label=\"current row\" wide>\n <span className=\"inline-flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-ui) text-fg\">\n <ChannelBetaIcon className=\"size-icon-md shrink-0\" />\n Our skills · beta\n </span>\n </Specimen>\n</Specimens>",
47
+ "note": "One grid and one weight across all ten, at size-icon-md — the size a navigation row draws them at. Each is a plain <svg> that takes every SVG prop.",
48
+ "interaction": "none. They are decorative by default: aria-hidden, announced by nothing, because the row they mark already carries its name."
49
+ }
50
+ ],
51
+ "todo": true
52
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "Stat",
3
+ "slug": "stat",
4
+ "group": "instruments",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "One number, named: the console's KPI tile.\n\nReads label-first (micro, uppercase, tracked) so a row of tiles scans as a\nlist of captions with the readings underneath, and the value is set in\n`tabular-nums` mono so a changing number does not shuffle the layout under\nthe reader.\n\nOnly the value takes the tone. Tinting the caption too would make a red tile\nwhere the intent is a red *number* — the label is not the alarm.\n\nStatic markup — no `\"use client\"`.",
9
+ "props": [
10
+ {
11
+ "name": "label",
12
+ "type": "ReactNode",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "What is being measured. Rendered as a micro uppercase caption."
16
+ },
17
+ {
18
+ "name": "value",
19
+ "type": "ReactNode",
20
+ "required": true,
21
+ "defaultValue": null,
22
+ "description": "The reading itself — the one thing the eye should land on."
23
+ },
24
+ {
25
+ "name": "detail",
26
+ "type": "ReactNode",
27
+ "required": false,
28
+ "defaultValue": null,
29
+ "description": "Optional second line: a delta, a window, a unit."
30
+ },
31
+ {
32
+ "name": "tone",
33
+ "type": "\"danger\" | \"accent\" | \"busy\" | \"neutral\" | \"ok\" | \"warn\" | \"info\"",
34
+ "required": false,
35
+ "defaultValue": "neutral",
36
+ "description": "Tints the value only. Defaults to `\"neutral\"`."
37
+ }
38
+ ],
39
+ "typeReferences": [
40
+ "Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">"
41
+ ],
42
+ "subcomponents": [],
43
+ "parts": [],
44
+ "variants": {},
45
+ "defaultVariants": {},
46
+ "tokensUsed": [
47
+ "--cue-accent",
48
+ "--cue-busy",
49
+ "--cue-danger",
50
+ "--cue-fg",
51
+ "--cue-fg-muted",
52
+ "--cue-fg-subtle",
53
+ "--cue-font-mono",
54
+ "--cue-info",
55
+ "--cue-ok",
56
+ "--cue-space-2",
57
+ "--cue-text-label",
58
+ "--cue-text-micro",
59
+ "--cue-text-title",
60
+ "--cue-warn"
61
+ ],
62
+ "summary": "One number, named: the console's KPI tile.",
63
+ "examples": [
64
+ {
65
+ "title": "Usage",
66
+ "code": "<Stat label=\"Universes\" value=\"512\" />\n<Stat label=\"Dropped frames\" value=\"12\" detail=\"last hour\" tone=\"danger\" />",
67
+ "language": "tsx"
68
+ }
69
+ ],
70
+ "status": "todo-docs",
71
+ "url": "/docs/components/stat",
72
+ "mdUrl": "/docs/components/stat.md",
73
+ "jsonUrl": "/r/components/stat.json",
74
+ "specimens": [
75
+ {
76
+ "title": "Stat",
77
+ "group": "instruments",
78
+ "components": [
79
+ "Stat"
80
+ ],
81
+ "code": "<div className=\"grid w-full gap-(--cue-space-4) sm:grid-cols-2 lg:grid-cols-4\">\n <Stat label=\"Universes\" value=\"4\" detail=\"of 8 patched\" />\n <Stat label=\"Latency\" value=\"7 ms\" detail=\"art-net\" tone=\"ok\" />\n <Stat label=\"Dropped\" value=\"0.4%\" detail=\"last hour\" tone=\"warn\" />\n <Stat label=\"Faults\" value=\"2\" detail=\"since 18:00\" tone=\"danger\" />\n</div>",
82
+ "note": "A label, a figure and a detail line. Figures are mono `tabular-nums`, so a changing digit never shifts the column.",
83
+ "interaction": "none."
84
+ }
85
+ ],
86
+ "todo": true
87
+ }