@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,134 @@
1
+ {
2
+ "name": "SearchInput",
3
+ "slug": "search-input",
4
+ "group": "forms",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A filter box: leading magnifier, Escape to clear, and a debounced change\ncallback for whatever the query drives.\n\nEscape-to-clear is the reason this is a component and not a recipe. It is the\nbehaviour every console filter needs and the one every hand-rolled search box\nforgets, and getting it right means also stopping the key from bubbling into a\ndialog that would otherwise close underneath the user.\n\nDebouncing is deliberately separate from `onValueChange`: the input stays\nresponsive on every keystroke while the expensive work waits for the typing to\nstop. Clearing flushes the debounce rather than scheduling it.",
9
+ "props": [
10
+ {
11
+ "name": "defaultValue",
12
+ "type": "string",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "Initial query for an uncontrolled input."
16
+ },
17
+ {
18
+ "name": "className",
19
+ "type": "string",
20
+ "required": false,
21
+ "defaultValue": null,
22
+ "description": "Extra classes for the group that wraps the icon, the input and the clear button."
23
+ },
24
+ {
25
+ "name": "size",
26
+ "type": "\"sm\" | \"md\" | \"lg\"",
27
+ "required": false,
28
+ "defaultValue": null,
29
+ "description": "Rung of the control ladder. Defaults to `\"md\"`."
30
+ },
31
+ {
32
+ "name": "debounce",
33
+ "type": "number",
34
+ "required": false,
35
+ "defaultValue": "250",
36
+ "description": "Quiet period in ms before {@link SearchInputProps.onDebouncedChange} fires.\nDefaults to `250`. `0` fires it synchronously with every keystroke."
37
+ },
38
+ {
39
+ "name": "value",
40
+ "type": "string",
41
+ "required": false,
42
+ "defaultValue": null,
43
+ "description": "Current query. Supply it with `onValueChange` for a controlled input."
44
+ },
45
+ {
46
+ "name": "onValueChange",
47
+ "type": "((value: string) => void)",
48
+ "required": false,
49
+ "defaultValue": null,
50
+ "description": "Fired on every keystroke, and with `\"\"` when the query is cleared."
51
+ },
52
+ {
53
+ "name": "icon",
54
+ "type": "ElementType<any, keyof IntrinsicElements>",
55
+ "required": false,
56
+ "defaultValue": "SearchGlyph",
57
+ "description": "Leading glyph component. Defaults to a magnifier."
58
+ },
59
+ {
60
+ "name": "clearLabel",
61
+ "type": "string",
62
+ "required": false,
63
+ "defaultValue": "Clear search",
64
+ "description": "Accessible name for the clear button. Defaults to `\"Clear search\"`."
65
+ },
66
+ {
67
+ "name": "onDebouncedChange",
68
+ "type": "((value: string) => void)",
69
+ "required": false,
70
+ "defaultValue": null,
71
+ "description": "Fired once the user stops typing for `debounce` ms — the callback to hang a\nquery or a filter recomputation on. Clearing flushes it immediately, because\n\"show me everything again\" should never wait."
72
+ },
73
+ {
74
+ "name": "onClear",
75
+ "type": "(() => void)",
76
+ "required": false,
77
+ "defaultValue": null,
78
+ "description": "Fired when the query is cleared, by Escape or by the clear button."
79
+ }
80
+ ],
81
+ "typeReferences": [
82
+ "Omit<\n InputProps,\n \"type\" | \"size\" | \"value\" | \"defaultValue\" | \"onValueChange\" | \"children\"\n >"
83
+ ],
84
+ "subcomponents": [],
85
+ "parts": [],
86
+ "variants": {},
87
+ "defaultVariants": {},
88
+ "tokensUsed": [
89
+ "--cue-accent",
90
+ "--cue-border",
91
+ "--cue-control-lg",
92
+ "--cue-control-md",
93
+ "--cue-control-sm",
94
+ "--cue-danger",
95
+ "--cue-fg",
96
+ "--cue-fg-subtle",
97
+ "--cue-font-mono",
98
+ "--cue-icon-md",
99
+ "--cue-icon-sm",
100
+ "--cue-radius-control",
101
+ "--cue-space-3",
102
+ "--cue-space-4",
103
+ "--cue-space-5",
104
+ "--cue-sunken",
105
+ "--cue-text-body",
106
+ "--cue-text-label",
107
+ "--cue-text-ui"
108
+ ],
109
+ "summary": "A filter box: leading magnifier, Escape to clear, and a debounced change callback for whatever the query drives.",
110
+ "examples": [
111
+ {
112
+ "title": "Usage",
113
+ "code": "<SearchInput aria-label=\"Filter cues\" onDebouncedChange={setQuery} />\n<SearchInput value={q} onValueChange={setQ} debounce={0} size=\"sm\" />",
114
+ "language": "tsx"
115
+ }
116
+ ],
117
+ "status": "todo-docs",
118
+ "url": "/docs/components/search-input",
119
+ "mdUrl": "/docs/components/search-input.md",
120
+ "jsonUrl": "/r/components/search-input.json",
121
+ "specimens": [
122
+ {
123
+ "title": "SearchInput",
124
+ "group": "forms",
125
+ "components": [
126
+ "SearchInput"
127
+ ],
128
+ "code": "<Specimens>\n <Specimen label=\"empty\">\n <SearchInput aria-label=\"Search fixtures\" placeholder=\"Search fixtures\" />\n </Specimen>\n <Specimen label=\"with value\">\n <SearchInput aria-label=\"Search cues\" defaultValue=\"blackout\" />\n </Specimen>\n <Specimen label=\"debounced 200ms\">\n <SearchInput aria-label=\"Search patch\" defaultValue=\"viper\" debounce={200} />\n </Specimen>\n <Specimen label=\"disabled\">\n <SearchInput aria-label=\"Search, disabled\" defaultValue=\"viper\" disabled />\n </Specimen>\n</Specimens>",
129
+ "note": "A magnifier, a clear button that appears once there is something to clear, and an optional debounce.",
130
+ "interaction": "Escape clears; the clear button is a real button with a name, not an icon glued to the rim."
131
+ }
132
+ ],
133
+ "todo": true
134
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "name": "SectionHeader",
3
+ "slug": "section-header",
4
+ "group": "chrome",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A faint label with a rule running off it — the heading for a group of rows.\n\nA label and a hairline, deliberately, not a bordered box: a heading that is\nitself a panel competes with the panels underneath it and reads as another\nobject rather than as their title (the quotamate `AccountGroup` ruling). The\nrule is a `flex-1` block, so it always fills exactly the space the label and\nthe count leave behind.",
9
+ "props": [
10
+ {
11
+ "name": "label",
12
+ "type": "ReactNode",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "The group's name. Rendered uppercase in the smallest mono label type."
16
+ },
17
+ {
18
+ "name": "count",
19
+ "type": "number",
20
+ "required": false,
21
+ "defaultValue": null,
22
+ "description": "Optional count shown after the label — how many things are in the group."
23
+ },
24
+ {
25
+ "name": "action",
26
+ "type": "ReactNode",
27
+ "required": false,
28
+ "defaultValue": null,
29
+ "description": "Right-hand slot. Rendered *outside* the collapse toggle so clicking an\naction never folds the section shut under the user's cursor."
30
+ },
31
+ {
32
+ "name": "collapsible",
33
+ "type": "boolean",
34
+ "required": false,
35
+ "defaultValue": "false",
36
+ "description": "Turn the label into a disclosure button that shows and hides `children`."
37
+ },
38
+ {
39
+ "name": "defaultOpen",
40
+ "type": "boolean",
41
+ "required": false,
42
+ "defaultValue": "true",
43
+ "description": "Initial open state when uncontrolled. Defaults to `true`."
44
+ },
45
+ {
46
+ "name": "open",
47
+ "type": "boolean",
48
+ "required": false,
49
+ "defaultValue": null,
50
+ "description": "Open state when controlled. Pass with `onOpenChange`."
51
+ },
52
+ {
53
+ "name": "onOpenChange",
54
+ "type": "((open: boolean) => void)",
55
+ "required": false,
56
+ "defaultValue": null,
57
+ "description": "Called with the next open state whenever the toggle is pressed."
58
+ },
59
+ {
60
+ "name": "children",
61
+ "type": "ReactNode",
62
+ "required": false,
63
+ "defaultValue": null,
64
+ "description": "The section body. Hidden while a collapsible section is closed."
65
+ }
66
+ ],
67
+ "typeReferences": [
68
+ "Omit<React.ComponentPropsWithoutRef<\"div\">, \"onToggle\">"
69
+ ],
70
+ "subcomponents": [],
71
+ "parts": [],
72
+ "variants": {},
73
+ "defaultVariants": {},
74
+ "tokensUsed": [
75
+ "--cue-accent",
76
+ "--cue-border",
77
+ "--cue-fg",
78
+ "--cue-fg-muted",
79
+ "--cue-fg-subtle",
80
+ "--cue-font-mono",
81
+ "--cue-icon-sm",
82
+ "--cue-space-2",
83
+ "--cue-space-3",
84
+ "--cue-space-4",
85
+ "--cue-text-label"
86
+ ],
87
+ "summary": "A faint label with a rule running off it — the heading for a group of rows.",
88
+ "examples": [
89
+ {
90
+ "title": "Usage",
91
+ "code": "<SectionHeader label=\"Universes\" count={4} />\n<SectionHeader label=\"Scenes\" collapsible action={<IconButton aria-label=\"Add\" icon={Plus} />}>\n <SeamList>{scenes.map((s) => <Row seam key={s.id}>{s.name}</Row>)}</SeamList>\n</SectionHeader>",
92
+ "language": "tsx"
93
+ }
94
+ ],
95
+ "status": "todo-docs",
96
+ "url": "/docs/components/section-header",
97
+ "mdUrl": "/docs/components/section-header.md",
98
+ "jsonUrl": "/r/components/section-header.json",
99
+ "specimens": [
100
+ {
101
+ "title": "SectionHeader",
102
+ "group": "chrome",
103
+ "components": [
104
+ "SectionHeader"
105
+ ],
106
+ "code": "<div className=\"flex w-full max-w-[36rem] flex-col gap-(--cue-space-5)\">\n <SectionHeader label=\"Fixtures\" />\n <SectionHeader label=\"Fixtures\" count={48} />\n <SectionHeader\n label=\"Fixtures\"\n count={48}\n action={<IconButton aria-label=\"Add fixture\" icon={Plus} size=\"sm\" />}\n />\n <SectionHeader label=\"Advanced\" collapsible defaultOpen={false}>\n <p className=\"font-mono text-(length:--cue-text-ui) text-fg-muted\">\n Hidden until asked for.\n </p>\n </SectionHeader>\n</div>",
107
+ "note": "A label, a rule, an optional count and an action slot. Collapsible when the section under it is.",
108
+ "interaction": "the collapsible variant is a button: hover tints the label, Enter and Space toggle."
109
+ }
110
+ ],
111
+ "todo": true
112
+ }
@@ -0,0 +1,138 @@
1
+ {
2
+ "name": "SegmentedControl",
3
+ "slug": "segmented-control",
4
+ "group": "chrome",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A one-of-N switch drawn as a row of segments: the console's view picker.\n\nBuilt on Base UI's `ToggleGroup`, so arrow-key roving focus and the\npressed-state ARIA come from the primitive. Two rules are added on top:\n\n1. **It cannot be emptied.** A toggle group lets you unpress the pressed\n item; a segmented control is a choice between N things, so clicking the\n active segment is a no-op rather than a way to end up with nothing\n selected. This is why the underlying group is always controlled here, even\n when the wrapper is not.\n2. **The active segment is tinted, not filled** — see {@link ITEM_CLASSES}.\n\nGive the group an `aria-label`: on its own it is an unnamed group of buttons.",
9
+ "props": [
10
+ {
11
+ "name": "defaultValue",
12
+ "type": "string",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "The initially picked value when uncontrolled."
16
+ },
17
+ {
18
+ "name": "className",
19
+ "type": "string",
20
+ "required": false,
21
+ "defaultValue": null,
22
+ "description": "Extra classes for the group frame."
23
+ },
24
+ {
25
+ "name": "previousLabel",
26
+ "type": "string",
27
+ "required": false,
28
+ "defaultValue": "Show earlier segments",
29
+ "description": "Accessible name for the chevron that reveals segments off the leading edge."
30
+ },
31
+ {
32
+ "name": "nextLabel",
33
+ "type": "string",
34
+ "required": false,
35
+ "defaultValue": "Show later segments",
36
+ "description": "Accessible name for the chevron that reveals segments off the trailing edge."
37
+ },
38
+ {
39
+ "name": "overflow",
40
+ "type": "\"clip\" | \"scroll\"",
41
+ "required": false,
42
+ "defaultValue": "scroll",
43
+ "description": "What the control does when its segments do not fit. Defaults to `\"scroll\"`.\n\nThe same behaviour `Toolbar` has, from the same module, for the same\nreason: a switcher with five segments in a page header's actions slot runs\noff a phone-width screen, and wrapping it would turn a one-rung control\ninto a two-row block that no longer reads as one switch. `\"scroll\"` keeps\nthe rim and the height, scrolls the segments inside them, fades the\noverflowing edge and offers a pager chevron there.\n\n`\"clip\"` is the old behaviour, for a control already inside something that\nscrolls."
44
+ },
45
+ {
46
+ "name": "size",
47
+ "type": "\"sm\" | \"md\" | \"lg\"",
48
+ "required": false,
49
+ "defaultValue": "md",
50
+ "description": "Which rung of the control ladder to sit on. Defaults to `\"md\"`."
51
+ },
52
+ {
53
+ "name": "value",
54
+ "type": "string",
55
+ "required": false,
56
+ "defaultValue": null,
57
+ "description": "The picked value when controlled. Pass with `onValueChange`."
58
+ },
59
+ {
60
+ "name": "onValueChange",
61
+ "type": "((value: string) => void)",
62
+ "required": false,
63
+ "defaultValue": null,
64
+ "description": "Called with the newly picked value. Never called with `undefined`."
65
+ },
66
+ {
67
+ "name": "items",
68
+ "type": "readonly SegmentedControlItem[]",
69
+ "required": true,
70
+ "defaultValue": null,
71
+ "description": "The segments, in display order."
72
+ },
73
+ {
74
+ "name": "itemClassName",
75
+ "type": "string",
76
+ "required": false,
77
+ "defaultValue": null,
78
+ "description": "Extra classes for every segment."
79
+ }
80
+ ],
81
+ "typeReferences": [
82
+ "Omit<\n ToggleGroup.Props<string>,\n \"value\" | \"defaultValue\" | \"onValueChange\" | \"multiple\" | \"className\" | \"children\"\n >"
83
+ ],
84
+ "subcomponents": [],
85
+ "parts": [],
86
+ "variants": {},
87
+ "defaultVariants": {},
88
+ "tokensUsed": [
89
+ "--cue-accent",
90
+ "--cue-accent-soft",
91
+ "--cue-border",
92
+ "--cue-chrome-toolbar",
93
+ "--cue-control-lg",
94
+ "--cue-control-md",
95
+ "--cue-control-sm",
96
+ "--cue-edge-fade",
97
+ "--cue-fg",
98
+ "--cue-fg-muted",
99
+ "--cue-font-mono",
100
+ "--cue-icon-md",
101
+ "--cue-icon-sm",
102
+ "--cue-radius-control",
103
+ "--cue-space-1",
104
+ "--cue-space-2",
105
+ "--cue-space-3",
106
+ "--cue-space-4",
107
+ "--cue-space-5",
108
+ "--cue-surface-1",
109
+ "--cue-text-body",
110
+ "--cue-text-label",
111
+ "--cue-text-ui"
112
+ ],
113
+ "summary": "A one-of-N switch drawn as a row of segments: the console's view picker.",
114
+ "examples": [
115
+ {
116
+ "title": "Usage",
117
+ "code": "<SegmentedControl\n aria-label=\"View\"\n value={view}\n onValueChange={setView}\n items={[{ value: \"beams\", label: \"Beams\" }, { value: \"patch\", label: \"Patch\" }]}\n/>",
118
+ "language": "tsx"
119
+ }
120
+ ],
121
+ "status": "todo-docs",
122
+ "url": "/docs/components/segmented-control",
123
+ "mdUrl": "/docs/components/segmented-control.md",
124
+ "jsonUrl": "/r/components/segmented-control.json",
125
+ "specimens": [
126
+ {
127
+ "title": "SegmentedControl",
128
+ "group": "chrome",
129
+ "components": [
130
+ "SegmentedControl"
131
+ ],
132
+ "code": "<Specimens>\n <Specimen label=\"sm\">\n <SegmentedControl\n aria-label=\"Console mode, small\"\n items={MODE_ITEMS}\n value={mode}\n onValueChange={setMode}\n size=\"sm\"\n />\n </Specimen>\n <Specimen label=\"md\">\n <SegmentedControl\n aria-label=\"Console mode\"\n items={MODE_ITEMS}\n value={mode}\n onValueChange={setMode}\n />\n </Specimen>\n <Specimen label=\"with icons\">\n <SegmentedControl\n aria-label=\"Console mode, icons\"\n items={[\n { value: \"patch\", label: \"Patch\", icon: Lightbulb },\n { value: \"cues\", label: \"Cues\", icon: List },\n { value: \"live\", label: \"Live\", icon: Monitor, disabled: true },\n ]}\n value={mode}\n onValueChange={setMode}\n size=\"lg\"\n />\n </Specimen>\n <Specimen label=\"overflowing\" wide>\n <div className=\"w-full max-w-[15rem]\">\n <SegmentedControl\n aria-label=\"Page state\"\n items={STATE_ITEMS}\n value={state}\n onValueChange={setState}\n size=\"sm\"\n />\n </div>\n </Specimen>\n</Specimens>",
133
+ "note": "Three sizes. The active segment is `accent-soft`, on the same ruling as the active tab. The last specimen is five segments in 15rem: the rim and the height hold, the segments scroll inside them — the same overflow behaviour Toolbar and AppBar have, from the same module.",
134
+ "interaction": "arrow keys move the selection and reach the segments off-screen; the whole control is one tab stop. A chevron appears at whichever edge still hides one."
135
+ }
136
+ ],
137
+ "todo": true
138
+ }
@@ -0,0 +1,194 @@
1
+ {
2
+ "name": "Select",
3
+ "slug": "select",
4
+ "group": "forms",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A dropdown for choosing one of a known set of values.\n\nThe trigger rides the recessed control chassis so a select lines up with the\n{@link Input }s beside it; the popup wears the overlay surface\n(`surface-2` + `border-overlay` + the overlay radius) that every floating\nelement in this system shares. Rows are one `control-sm` tall — the list is\nmeant to show a dozen options without scrolling.\n\nThe popup is portalled through {@link useCuePortalProps}, so it carries the\ncaller's `data-theme` / `data-density` / `data-mode` even though it mounts at\nthe end of `<body>`. Without that a select opened inside an ultra-compact\nisland would render at the page's density.",
9
+ "props": [
10
+ {
11
+ "name": "items",
12
+ "type": "readonly SelectOption[]",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "The rows, in display order."
16
+ },
17
+ {
18
+ "name": "value",
19
+ "type": "string | null",
20
+ "required": false,
21
+ "defaultValue": null,
22
+ "description": "Selected value. Use with `onValueChange` for a controlled select."
23
+ },
24
+ {
25
+ "name": "defaultValue",
26
+ "type": "string | null",
27
+ "required": false,
28
+ "defaultValue": null,
29
+ "description": "Initially selected value for an uncontrolled select."
30
+ },
31
+ {
32
+ "name": "onValueChange",
33
+ "type": "((value: string | null) => void)",
34
+ "required": false,
35
+ "defaultValue": null,
36
+ "description": "Called with the newly selected value (`null` when cleared)."
37
+ },
38
+ {
39
+ "name": "placeholder",
40
+ "type": "ReactNode",
41
+ "required": false,
42
+ "defaultValue": null,
43
+ "description": "Shown in the trigger while nothing is selected."
44
+ },
45
+ {
46
+ "name": "size",
47
+ "type": "\"sm\" | \"md\" | \"lg\"",
48
+ "required": false,
49
+ "defaultValue": null,
50
+ "description": "Rung of the control ladder for the trigger. Defaults to `\"md\"`."
51
+ },
52
+ {
53
+ "name": "disabled",
54
+ "type": "boolean",
55
+ "required": false,
56
+ "defaultValue": null,
57
+ "description": "Prevent opening and grey the trigger out."
58
+ },
59
+ {
60
+ "name": "required",
61
+ "type": "boolean",
62
+ "required": false,
63
+ "defaultValue": null,
64
+ "description": "Require a value before the owning form submits."
65
+ },
66
+ {
67
+ "name": "name",
68
+ "type": "string",
69
+ "required": false,
70
+ "defaultValue": null,
71
+ "description": "Name for the hidden input, when the select is part of a form."
72
+ },
73
+ {
74
+ "name": "id",
75
+ "type": "string",
76
+ "required": false,
77
+ "defaultValue": null,
78
+ "description": "Id forwarded to the select's hidden input."
79
+ },
80
+ {
81
+ "name": "aria-label",
82
+ "type": "string",
83
+ "required": false,
84
+ "defaultValue": null,
85
+ "description": "Accessible name for the trigger, when no {@link FieldLabel } names it."
86
+ },
87
+ {
88
+ "name": "aria-labelledby",
89
+ "type": "string",
90
+ "required": false,
91
+ "defaultValue": null,
92
+ "description": "Id of the element naming the trigger."
93
+ },
94
+ {
95
+ "name": "modal",
96
+ "type": "boolean",
97
+ "required": false,
98
+ "defaultValue": null,
99
+ "description": "Lock interaction to the popup while it is open. Defaults to `true`, matching\nBase UI; set `false` inside a canvas or a drag surface that must keep\nreceiving pointer events."
100
+ },
101
+ {
102
+ "name": "className",
103
+ "type": "string",
104
+ "required": false,
105
+ "defaultValue": null,
106
+ "description": "Extra classes for the trigger."
107
+ },
108
+ {
109
+ "name": "popupClassName",
110
+ "type": "string",
111
+ "required": false,
112
+ "defaultValue": null,
113
+ "description": "Extra classes for the popup surface."
114
+ },
115
+ {
116
+ "name": "sideOffset",
117
+ "type": "number",
118
+ "required": false,
119
+ "defaultValue": "4",
120
+ "description": "Distance in px between the trigger and the popup. Defaults to `4`."
121
+ }
122
+ ],
123
+ "typeReferences": [],
124
+ "subcomponents": [],
125
+ "parts": [],
126
+ "variants": {},
127
+ "defaultVariants": {},
128
+ "tokensUsed": [
129
+ "--cue-accent",
130
+ "--cue-accent-soft",
131
+ "--cue-border",
132
+ "--cue-border-overlay",
133
+ "--cue-border-strong",
134
+ "--cue-control-lg",
135
+ "--cue-control-md",
136
+ "--cue-control-sm",
137
+ "--cue-danger",
138
+ "--cue-fg",
139
+ "--cue-fg-muted",
140
+ "--cue-fg-subtle",
141
+ "--cue-font-mono",
142
+ "--cue-icon-md",
143
+ "--cue-icon-sm",
144
+ "--cue-radius-control",
145
+ "--cue-radius-overlay",
146
+ "--cue-space-1",
147
+ "--cue-space-2",
148
+ "--cue-space-3",
149
+ "--cue-space-4",
150
+ "--cue-space-5",
151
+ "--cue-sunken",
152
+ "--cue-surface-2",
153
+ "--cue-text-body",
154
+ "--cue-text-label",
155
+ "--cue-text-ui"
156
+ ],
157
+ "summary": "A dropdown for one value out of a known, short set.",
158
+ "examples": [
159
+ {
160
+ "title": "Usage",
161
+ "code": "<Select\n aria-label=\"Blend mode\"\n items={[{ value: \"htp\", label: \"HTP\" }, { value: \"ltp\", label: \"LTP\" }]}\n value={mode}\n onValueChange={setMode}\n/>",
162
+ "language": "tsx"
163
+ }
164
+ ],
165
+ "status": "stable",
166
+ "url": "/docs/components/select",
167
+ "mdUrl": "/docs/components/select.md",
168
+ "jsonUrl": "/r/components/select.json",
169
+ "whenToUse": [
170
+ "Picking one of roughly three to twelve options that are all known ahead of time.",
171
+ "Anywhere the trigger has to line up with the inputs beside it: it rides the same recessed chassis."
172
+ ],
173
+ "whenNotToUse": [
174
+ "A long or open-ended list the user should type into. Use `Combobox` or `Autocomplete`.",
175
+ "Two or three options that fit on screen. Use `SegmentedControl` or `RadioGroup`.",
176
+ "More than one value at a time. Use `MultiSelect`."
177
+ ],
178
+ "commonMistakes": [
179
+ "Shipping without an accessible name. Pass `aria-label`, or wrap it in a `Field` with a `FieldLabel`.",
180
+ "Hand-rolling the popup with a raw Base UI portal, which loses the theme and density stamps the portal contract puts on it."
181
+ ],
182
+ "specimens": [
183
+ {
184
+ "title": "Select",
185
+ "group": "forms",
186
+ "components": [
187
+ "Select"
188
+ ],
189
+ "code": "<Specimens>\n {SIZES.map((size) => (\n <Specimen key={size} label={size}>\n <Select\n aria-label={`Blend mode, ${size}`}\n items={[...BLEND_MODES]}\n defaultValue=\"htp\"\n size={size}\n />\n </Specimen>\n ))}\n <Specimen label=\"placeholder\">\n <Select aria-label=\"Blend mode, empty\" items={[...BLEND_MODES]} placeholder=\"Choose\" />\n </Specimen>\n <Specimen label=\"disabled\">\n <Select\n aria-label=\"Blend mode, disabled\"\n items={[...BLEND_MODES]}\n defaultValue=\"ltp\"\n disabled\n />\n </Specimen>\n</Specimens>",
190
+ "note": "A listbox, not a native select: the popup is portalled through the stamping contract, so it keeps the density of the island it was opened from.",
191
+ "interaction": "type-ahead jumps to a matching item; Escape closes and returns focus to the trigger."
192
+ }
193
+ ]
194
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "Separator",
3
+ "slug": "separator",
4
+ "group": "primitives",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "A hairline rule that screen readers can see.\n\nWraps Base UI's `Separator`, which contributes `role=\"separator\"` and\n`aria-orientation`. The line itself is a 1px block painted with the `border`\ntoken rather than an actual CSS border: a bordered zero-height box collapses\nunpredictably inside flex rows, while a `h-px` block never does.\n\nStatic markup — no `\"use client\"`.",
9
+ "props": [
10
+ {
11
+ "name": "className",
12
+ "type": "string",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "Extra classes, merged over the hairline defaults."
16
+ }
17
+ ],
18
+ "typeReferences": [
19
+ "Omit<BaseSeparator.Props, \"className\">"
20
+ ],
21
+ "subcomponents": [],
22
+ "parts": [],
23
+ "variants": {},
24
+ "defaultVariants": {},
25
+ "tokensUsed": [
26
+ "--cue-border"
27
+ ],
28
+ "summary": "A hairline rule that screen readers can see.",
29
+ "examples": [
30
+ {
31
+ "title": "Usage",
32
+ "code": "<Separator />\n<div className=\"flex items-center gap-2\">a <Separator orientation=\"vertical\" /> b</div>",
33
+ "language": "tsx"
34
+ }
35
+ ],
36
+ "status": "todo-docs",
37
+ "url": "/docs/components/separator",
38
+ "mdUrl": "/docs/components/separator.md",
39
+ "jsonUrl": "/r/components/separator.json",
40
+ "specimens": [
41
+ {
42
+ "title": "Separator",
43
+ "group": "primitives",
44
+ "components": [
45
+ "Separator"
46
+ ],
47
+ "code": "<div className=\"flex w-full max-w-[28rem] flex-col gap-(--cue-space-4)\">\n <Separator />\n <div className=\"flex h-8 items-center gap-(--cue-space-4)\">\n <span className=\"font-mono text-(length:--cue-text-ui) text-fg-muted\">Cue 1</span>\n <Separator orientation=\"vertical\" />\n <span className=\"font-mono text-(length:--cue-text-ui) text-fg-muted\">3.0s</span>\n <Separator orientation=\"vertical\" />\n <span className=\"font-mono text-(length:--cue-text-ui) text-fg-muted\">HTP</span>\n </div>\n</div>",
48
+ "note": "A hairline in either orientation.",
49
+ "interaction": "none."
50
+ }
51
+ ],
52
+ "todo": true
53
+ }