@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,80 @@
1
+ {
2
+ "name": "ErrorState",
3
+ "slug": "error-state",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "A quiet failure banner with a retry path, not a modal in your face.",
11
+ "props": [
12
+ {
13
+ "name": "title",
14
+ "type": "string",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "Primary failure headline shown in the banner."
18
+ },
19
+ {
20
+ "name": "detail",
21
+ "type": "string",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "Supporting detail under the title explaining what went wrong."
25
+ },
26
+ {
27
+ "name": "retrying",
28
+ "type": "boolean",
29
+ "required": true,
30
+ "defaultValue": null,
31
+ "description": "When true the banner swaps to a spinning Retrying status instead of the error."
32
+ },
33
+ {
34
+ "name": "onRetry",
35
+ "type": "() => void",
36
+ "required": true,
37
+ "defaultValue": null,
38
+ "description": "Called when the retry control is pressed."
39
+ }
40
+ ],
41
+ "typeReferences": [
42
+ "Omit<\n ComponentProps<\"div\">,\n \"children\" | \"role\"\n>"
43
+ ],
44
+ "subcomponents": [],
45
+ "parts": [],
46
+ "variants": {},
47
+ "defaultVariants": {},
48
+ "tokensUsed": [
49
+ "--cue-danger",
50
+ "--cue-fg-muted",
51
+ "--cue-radius-overlay",
52
+ "--cue-text-body",
53
+ "--cue-text-ui"
54
+ ],
55
+ "summary": "A quiet failure banner with a retry path, not a modal in your face.",
56
+ "examples": [
57
+ {
58
+ "title": "Usage",
59
+ "code": "import { ErrorState } from \"@cueplusplus/ui/elements\";\n\n<ErrorState\n title=\"Request failed\"\n detail=\"The model timed out.\"\n retrying={false}\n onRetry={() => {}}\n/>",
60
+ "language": "tsx"
61
+ }
62
+ ],
63
+ "status": "todo-docs",
64
+ "url": "/docs/components/error-state",
65
+ "mdUrl": "/docs/components/error-state.md",
66
+ "jsonUrl": "/r/components/error-state.json",
67
+ "specimens": [
68
+ {
69
+ "title": "ErrorState",
70
+ "group": "elements-agents",
71
+ "components": [
72
+ "ErrorState"
73
+ ],
74
+ "code": "<Specimens>\n <Specimen label=\"failed\" wide>\n <ErrorState\n title=\"The desk refused the patch\"\n detail=\"Universe 3 is not enabled on this show file. Enable it on the desk, or patch into universes 1 and 2.\"\n retrying={false}\n onRetry={() => undefined}\n />\n </Specimen>\n <Specimen label=\"retrying\" wide>\n <ErrorState\n title=\"The desk refused the patch\"\n detail=\"Universe 3 is not enabled on this show file.\"\n retrying\n onRetry={() => undefined}\n />\n </Specimen>\n</Specimens>",
75
+ "note": "A failure banner, not a modal: it sits in the flow where the answer would have been, says what broke and what to do, and leaves the rest of the page alone. Retrying is a different element entirely rather than a disabled button — `role='alert'` while it is a failure, `role='status'` while it is trying again, which is the difference between interrupting a screen reader and not.",
76
+ "interaction": "Retry is a named button that tints on hover. The retrying state has no control at all, because there is nothing to press while it works."
77
+ }
78
+ ],
79
+ "todo": true
80
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "ExportDialog",
3
+ "slug": "export-dialog",
4
+ "group": "configurator",
5
+ "importPath": "@cueplusplus/ui/configurator",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "The export dialog: CSS, DTCG tokens, a `createTheme()` call and a shadcn\n`registry:theme` item.\n\nAll four are generated from the overrides the panel is applying, so the CSS\none is *literally* the stylesheet on the page. Nothing here re-derives a\nvalue.",
9
+ "props": [
10
+ {
11
+ "name": "open",
12
+ "type": "boolean",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "Whether the dialog is showing."
16
+ },
17
+ {
18
+ "name": "onOpenChange",
19
+ "type": "(open: boolean) => void",
20
+ "required": true,
21
+ "defaultValue": null,
22
+ "description": "Called when it should open or close."
23
+ },
24
+ {
25
+ "name": "overrides",
26
+ "type": "ThemeOverrides",
27
+ "required": true,
28
+ "defaultValue": null,
29
+ "description": "The overrides to export."
30
+ },
31
+ {
32
+ "name": "scope",
33
+ "type": "ThemeScope",
34
+ "required": true,
35
+ "defaultValue": null,
36
+ "description": "The theme and mode they were made in."
37
+ },
38
+ {
39
+ "name": "defaultFormat",
40
+ "type": "\"css\" | \"dtcg\" | \"create-theme\" | \"registry\"",
41
+ "required": false,
42
+ "defaultValue": "css",
43
+ "description": "Format shown first. Defaults to `\"css\"`."
44
+ }
45
+ ],
46
+ "typeReferences": [],
47
+ "subcomponents": [],
48
+ "parts": [],
49
+ "variants": {},
50
+ "defaultVariants": {},
51
+ "tokensUsed": [
52
+ "--cue-accent",
53
+ "--cue-border",
54
+ "--cue-density",
55
+ "--cue-fg",
56
+ "--cue-fg-muted",
57
+ "--cue-font-mono",
58
+ "--cue-font-pairing-mono",
59
+ "--cue-font-sans",
60
+ "--cue-font-scale",
61
+ "--cue-font-theme-mono",
62
+ "--cue-radius-control",
63
+ "--cue-radius-scale",
64
+ "--cue-space-1",
65
+ "--cue-space-3",
66
+ "--cue-space-4",
67
+ "--cue-sunken",
68
+ "--cue-text-label",
69
+ "--cue-text-micro"
70
+ ],
71
+ "summary": "The export dialog: CSS, DTCG tokens, a `createTheme()` call and a shadcn `registry:theme` item.",
72
+ "examples": [
73
+ {
74
+ "title": "Usage",
75
+ "code": "<ExportDialog open={open} onOpenChange={setOpen} overrides={overrides} scope={scope} />",
76
+ "language": "tsx"
77
+ }
78
+ ],
79
+ "status": "todo-docs",
80
+ "url": "/docs/components/export-dialog",
81
+ "mdUrl": "/docs/components/export-dialog.md",
82
+ "jsonUrl": "/r/components/export-dialog.json",
83
+ "todo": true
84
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "Eyebrow",
3
+ "slug": "eyebrow",
4
+ "group": "chrome",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "The small accent kicker that sits above a title: `// PATCH`.\n\nMono, uppercase and widely tracked, in the theme's accent — the one place\nwhere the accent is used for pure typography rather than for a control. The\nslashes are marked `aria-hidden` and `select-none`, so a screen reader reads\n\"patch\" and a copy-paste of the page does not carry punctuation that was only\never decoration.\n\nStatic markup — no `\"use client\"`.",
9
+ "props": [
10
+ {
11
+ "name": "slashes",
12
+ "type": "boolean",
13
+ "required": false,
14
+ "defaultValue": "true",
15
+ "description": "Print the `//` motif ahead of the label. Defaults to `true` — the slashes\nare the brand mark of this system, and an eyebrow without them is just\nsmall uppercase text. Pass `false` for a plain kicker."
16
+ }
17
+ ],
18
+ "typeReferences": [
19
+ "React.ComponentPropsWithoutRef<\"span\">"
20
+ ],
21
+ "subcomponents": [],
22
+ "parts": [],
23
+ "variants": {},
24
+ "defaultVariants": {},
25
+ "tokensUsed": [
26
+ "--cue-accent",
27
+ "--cue-font-mono",
28
+ "--cue-space-2",
29
+ "--cue-text-label"
30
+ ],
31
+ "summary": "The small accent kicker that sits above a title: `// PATCH`.",
32
+ "examples": [
33
+ {
34
+ "title": "Usage",
35
+ "code": "<Eyebrow>Patch</Eyebrow>\n<Eyebrow slashes={false}>Beta</Eyebrow>",
36
+ "language": "tsx"
37
+ }
38
+ ],
39
+ "status": "todo-docs",
40
+ "url": "/docs/components/eyebrow",
41
+ "mdUrl": "/docs/components/eyebrow.md",
42
+ "jsonUrl": "/r/components/eyebrow.json",
43
+ "specimens": [
44
+ {
45
+ "title": "Eyebrow",
46
+ "group": "chrome",
47
+ "components": [
48
+ "Eyebrow"
49
+ ],
50
+ "code": "<Specimens>\n <Specimen label=\"default\">\n <Eyebrow>smoke matrix</Eyebrow>\n </Specimen>\n <Specimen label=\"no slashes\">\n <Eyebrow slashes={false}>smoke matrix</Eyebrow>\n </Specimen>\n</Specimens>",
51
+ "note": "The `//` motif from the brand site, in mono micro.",
52
+ "interaction": "none."
53
+ }
54
+ ],
55
+ "todo": true
56
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "FeedbackDialog",
3
+ "slug": "feedback-dialog",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "A thumbs-down that asks why, so the signal arrives with a reason attached.",
11
+ "props": [
12
+ {
13
+ "name": "reasons",
14
+ "type": "readonly string[]",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "The reason chips offered. Keep them short enough to scan in one line."
18
+ },
19
+ {
20
+ "name": "selected",
21
+ "type": "readonly string[]",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "Which reasons are currently picked. More than one is allowed."
25
+ },
26
+ {
27
+ "name": "note",
28
+ "type": "string",
29
+ "required": true,
30
+ "defaultValue": null,
31
+ "description": "Free-text detail, always optional."
32
+ },
33
+ {
34
+ "name": "sent",
35
+ "type": "boolean",
36
+ "required": true,
37
+ "defaultValue": null,
38
+ "description": "Replaces the whole form with an acknowledgement once the report is filed."
39
+ },
40
+ {
41
+ "name": "onToggleReason",
42
+ "type": "((reason: string) => void)",
43
+ "required": false,
44
+ "defaultValue": null,
45
+ "description": "Called when a reason chip is picked or unpicked."
46
+ },
47
+ {
48
+ "name": "onNoteChange",
49
+ "type": "((note: string) => void)",
50
+ "required": false,
51
+ "defaultValue": null,
52
+ "description": "Called as the free-text note is typed."
53
+ },
54
+ {
55
+ "name": "onSubmit",
56
+ "type": "(() => void)",
57
+ "required": false,
58
+ "defaultValue": null,
59
+ "description": "Called when the report is sent."
60
+ }
61
+ ],
62
+ "typeReferences": [
63
+ "Omit<\n ComponentProps<\"div\">,\n | \"children\"\n | \"reasons\"\n | \"selected\"\n | \"note\"\n | \"sent\"\n | \"onToggleReason\"\n | \"onNoteChange\"\n | \"onSubmit\"\n> & {\n /** The reason chips offered. Keep them short enough to scan in one line. */\n reasons: readonly string[];\n /** Which reasons are currently picked. More than one is allowed. */\n selected: readonly string[];\n /** Free-text detail, always optional. */\n note: string;\n /** Replaces the whole form with an acknowledgement once the report is filed. */\n sent: boolean;\n /** Called when a reason chip is picked or unpicked. */\n onToggleReason?: (reason: string) => void;\n /** Called as the free-text note is typed. */\n onNoteChange?: (note: string) => void;\n /** Called when the report is sent. */\n onSubmit?: () => void;\n}"
64
+ ],
65
+ "subcomponents": [],
66
+ "parts": [],
67
+ "variants": {},
68
+ "defaultVariants": {},
69
+ "tokensUsed": [
70
+ "--cue-accent",
71
+ "--cue-accent-fg",
72
+ "--cue-fg",
73
+ "--cue-fg-muted",
74
+ "--cue-fg-subtle",
75
+ "--cue-ok",
76
+ "--cue-radius-overlay",
77
+ "--cue-radius-surface",
78
+ "--cue-surface-1",
79
+ "--cue-text-body",
80
+ "--cue-text-ui"
81
+ ],
82
+ "summary": "A thumbs-down that asks why, so the signal arrives with a reason attached.",
83
+ "examples": [
84
+ {
85
+ "title": "Usage",
86
+ "code": "import { FeedbackDialog } from \"@cueplusplus/ui/elements\";\n\n<FeedbackDialog\n reasons={[\"Not factual\", \"Too long\"]}\n selected={selected}\n note={note}\n sent={sent}\n onToggleReason={toggle}\n onNoteChange={setNote}\n onSubmit={send}\n/>",
87
+ "language": "tsx"
88
+ }
89
+ ],
90
+ "status": "todo-docs",
91
+ "url": "/docs/components/feedback-dialog",
92
+ "mdUrl": "/docs/components/feedback-dialog.md",
93
+ "jsonUrl": "/r/components/feedback-dialog.json",
94
+ "specimens": [
95
+ {
96
+ "title": "FeedbackDialog",
97
+ "group": "elements-composer",
98
+ "components": [
99
+ "FeedbackDialog"
100
+ ],
101
+ "code": "<Specimens>\n <Specimen label=\"collecting\" wide>\n <FeedbackDialog\n reasons={[\"Wrong universe\", \"Bad addressing\", \"Too slow\", \"Touched the desk\"]}\n selected={reasons}\n note={note}\n sent={sent}\n onToggleReason={(reason) =>\n setReasons((current) =>\n current.includes(reason)\n ? current.filter((item) => item !== reason)\n : [...current, reason],\n )\n }\n onNoteChange={setNote}\n onSubmit={() => setSent(true)}\n />\n </Specimen>\n <Specimen label=\"sent\" wide>\n <FeedbackDialog\n reasons={[\"Wrong universe\", \"Bad addressing\"]}\n selected={[\"Wrong universe\"]}\n note=\"\"\n sent\n />\n </Specimen>\n</Specimens>",
102
+ "note": "A thumbs-down that asks why, so the signal arrives with a reason attached. The reasons are chips rather than a select because more than one is usually true, and the note is marked optional in the header — a feedback form that demands prose collects nothing. Sending replaces the whole form with an acknowledgement.",
103
+ "interaction": "each chip is `aria-pressed`. The acknowledgement lives in a `status` live region mounted from the start and empty until it is not — a region created together with its text is the case a screen reader is free to miss."
104
+ }
105
+ ],
106
+ "todo": true
107
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "FieldDescription",
3
+ "slug": "field-description",
4
+ "group": "forms",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "Quiet helper text under a control, published to assistive tech as the\ncontrol's `aria-describedby` target.",
9
+ "props": [
10
+ {
11
+ "name": "className",
12
+ "type": "string",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "Extra classes, merged over the helper-text defaults."
16
+ }
17
+ ],
18
+ "typeReferences": [
19
+ "Omit<BaseField.Description.Props, \"className\">"
20
+ ],
21
+ "subcomponents": [],
22
+ "parts": [],
23
+ "variants": {},
24
+ "defaultVariants": {},
25
+ "tokensUsed": [
26
+ "--cue-danger",
27
+ "--cue-fg-muted",
28
+ "--cue-fg-subtle",
29
+ "--cue-font-mono",
30
+ "--cue-space-1",
31
+ "--cue-space-2",
32
+ "--cue-text-label",
33
+ "--cue-text-micro"
34
+ ],
35
+ "summary": "Quiet helper text under a control, published to assistive tech as the control's `aria-describedby` target.",
36
+ "examples": [
37
+ {
38
+ "title": "Usage",
39
+ "code": "<FieldDescription>1–512</FieldDescription>",
40
+ "language": "tsx"
41
+ }
42
+ ],
43
+ "status": "todo-docs",
44
+ "url": "/docs/components/field-description",
45
+ "mdUrl": "/docs/components/field-description.md",
46
+ "jsonUrl": "/r/components/field-description.json",
47
+ "specimens": [
48
+ {
49
+ "title": "Field / FieldLabel / FieldDescription / FieldError",
50
+ "group": "forms",
51
+ "components": [
52
+ "Field",
53
+ "FieldLabel",
54
+ "FieldDescription",
55
+ "FieldError"
56
+ ],
57
+ "code": "<div className=\"grid w-full gap-(--cue-space-5) lg:grid-cols-3\">\n <Field name=\"cue\">\n <FieldLabel>Cue name</FieldLabel>\n <Input placeholder=\"e.g. Blackout\" />\n <FieldDescription>Shown in the cue list.</FieldDescription>\n </Field>\n <Field name=\"universe\" invalid>\n <FieldLabel>Universe</FieldLabel>\n <Input defaultValue=\"9\" />\n <FieldError issues={INVALID_ISSUE} />\n </Field>\n <Field name=\"locked\" disabled>\n <FieldLabel>Locked</FieldLabel>\n <Input defaultValue=\"Read-only\" />\n <FieldDescription>Set by the show file.</FieldDescription>\n </Field>\n</div>",
58
+ "note": "The labelling wrapper. Base UI generates the ids, so the label names the control with no htmlFor bookkeeping, and `invalid` stamps the whole subtree.",
59
+ "interaction": "clicking the label focuses the control; the error line is announced when it appears."
60
+ }
61
+ ],
62
+ "todo": true
63
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "FieldError",
3
+ "slug": "field-error",
4
+ "group": "forms",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "The error line under a control.\n\nTwo ways to drive it, and they are mutually exclusive by design:\npass `issues` from a Standard Schema parse (`schema.safeParse(x).issues`) and\nthe component owns visibility, or pass `match` + `children` and let Base UI\nkey off the native `ValidityState`.",
9
+ "props": [
10
+ {
11
+ "name": "className",
12
+ "type": "string",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "Extra classes, merged over the danger-text defaults."
16
+ },
17
+ {
18
+ "name": "children",
19
+ "type": "ReactNode",
20
+ "required": false,
21
+ "defaultValue": null,
22
+ "description": "Message to show when driving visibility from `match` instead of `issues`."
23
+ },
24
+ {
25
+ "name": "issues",
26
+ "type": "readonly FieldIssue[]",
27
+ "required": false,
28
+ "defaultValue": null,
29
+ "description": "Standard Schema issues for this field. When supplied, the component shows\nexactly these messages and stops consulting native `ValidityState`: an\nempty array renders nothing, one issue renders inline, several render as a\nlist. Leave it `undefined` to fall back to `match` + `children`."
30
+ }
31
+ ],
32
+ "typeReferences": [
33
+ "Omit<BaseField.Error.Props, \"className\" | \"children\">"
34
+ ],
35
+ "subcomponents": [],
36
+ "parts": [],
37
+ "variants": {},
38
+ "defaultVariants": {},
39
+ "tokensUsed": [
40
+ "--cue-danger",
41
+ "--cue-fg-muted",
42
+ "--cue-fg-subtle",
43
+ "--cue-font-mono",
44
+ "--cue-space-1",
45
+ "--cue-space-2",
46
+ "--cue-text-label",
47
+ "--cue-text-micro"
48
+ ],
49
+ "summary": "The error line under a control.",
50
+ "examples": [
51
+ {
52
+ "title": "Usage",
53
+ "code": "<FieldError issues={result.issues} />\n<FieldError match=\"valueMissing\">Please name the cue</FieldError>",
54
+ "language": "tsx"
55
+ }
56
+ ],
57
+ "status": "todo-docs",
58
+ "url": "/docs/components/field-error",
59
+ "mdUrl": "/docs/components/field-error.md",
60
+ "jsonUrl": "/r/components/field-error.json",
61
+ "specimens": [
62
+ {
63
+ "title": "Field / FieldLabel / FieldDescription / FieldError",
64
+ "group": "forms",
65
+ "components": [
66
+ "Field",
67
+ "FieldLabel",
68
+ "FieldDescription",
69
+ "FieldError"
70
+ ],
71
+ "code": "<div className=\"grid w-full gap-(--cue-space-5) lg:grid-cols-3\">\n <Field name=\"cue\">\n <FieldLabel>Cue name</FieldLabel>\n <Input placeholder=\"e.g. Blackout\" />\n <FieldDescription>Shown in the cue list.</FieldDescription>\n </Field>\n <Field name=\"universe\" invalid>\n <FieldLabel>Universe</FieldLabel>\n <Input defaultValue=\"9\" />\n <FieldError issues={INVALID_ISSUE} />\n </Field>\n <Field name=\"locked\" disabled>\n <FieldLabel>Locked</FieldLabel>\n <Input defaultValue=\"Read-only\" />\n <FieldDescription>Set by the show file.</FieldDescription>\n </Field>\n</div>",
72
+ "note": "The labelling wrapper. Base UI generates the ids, so the label names the control with no htmlFor bookkeeping, and `invalid` stamps the whole subtree.",
73
+ "interaction": "clicking the label focuses the control; the error line is announced when it appears."
74
+ }
75
+ ],
76
+ "todo": true
77
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "FieldLabel",
3
+ "slug": "field-label",
4
+ "group": "forms",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "The name of a field: mono, uppercase, tracked out, one rung below body text.\n\nRenders a real `<label>` wired to the field's control, so clicking it focuses\n(or toggles) that control.",
9
+ "props": [
10
+ {
11
+ "name": "className",
12
+ "type": "string",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "Extra classes, merged over the label typography."
16
+ }
17
+ ],
18
+ "typeReferences": [
19
+ "Omit<BaseField.Label.Props, \"className\">"
20
+ ],
21
+ "subcomponents": [],
22
+ "parts": [],
23
+ "variants": {},
24
+ "defaultVariants": {},
25
+ "tokensUsed": [
26
+ "--cue-danger",
27
+ "--cue-fg-muted",
28
+ "--cue-fg-subtle",
29
+ "--cue-font-mono",
30
+ "--cue-space-1",
31
+ "--cue-space-2",
32
+ "--cue-text-label",
33
+ "--cue-text-micro"
34
+ ],
35
+ "summary": "The name of a field: mono, uppercase, tracked out, one rung below body text.",
36
+ "examples": [
37
+ {
38
+ "title": "Usage",
39
+ "code": "<FieldLabel>Universe</FieldLabel>",
40
+ "language": "tsx"
41
+ }
42
+ ],
43
+ "status": "todo-docs",
44
+ "url": "/docs/components/field-label",
45
+ "mdUrl": "/docs/components/field-label.md",
46
+ "jsonUrl": "/r/components/field-label.json",
47
+ "specimens": [
48
+ {
49
+ "title": "Field / FieldLabel / FieldDescription / FieldError",
50
+ "group": "forms",
51
+ "components": [
52
+ "Field",
53
+ "FieldLabel",
54
+ "FieldDescription",
55
+ "FieldError"
56
+ ],
57
+ "code": "<div className=\"grid w-full gap-(--cue-space-5) lg:grid-cols-3\">\n <Field name=\"cue\">\n <FieldLabel>Cue name</FieldLabel>\n <Input placeholder=\"e.g. Blackout\" />\n <FieldDescription>Shown in the cue list.</FieldDescription>\n </Field>\n <Field name=\"universe\" invalid>\n <FieldLabel>Universe</FieldLabel>\n <Input defaultValue=\"9\" />\n <FieldError issues={INVALID_ISSUE} />\n </Field>\n <Field name=\"locked\" disabled>\n <FieldLabel>Locked</FieldLabel>\n <Input defaultValue=\"Read-only\" />\n <FieldDescription>Set by the show file.</FieldDescription>\n </Field>\n</div>",
58
+ "note": "The labelling wrapper. Base UI generates the ids, so the label names the control with no htmlFor bookkeeping, and `invalid` stamps the whole subtree.",
59
+ "interaction": "clicking the label focuses the control; the error line is announced when it appears."
60
+ }
61
+ ],
62
+ "todo": true
63
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "Field",
3
+ "slug": "field",
4
+ "group": "forms",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "The labelling and validation wrapper every form control belongs in.\n\nWraps Base UI's `Field.Root`, which generates the ids that tie\n{@link FieldLabel}, {@link FieldDescription} and {@link FieldError} to the\ncontrol inside it — so `<FieldLabel>Cue name</FieldLabel>` names an\n{@link Input } with no `htmlFor`/`id` bookkeeping from the caller. Base UI also\nstamps `data-invalid` / `data-disabled` down the subtree, which is what the\nchassis' danger rim keys off.",
9
+ "props": [
10
+ {
11
+ "name": "className",
12
+ "type": "string",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "Extra classes, merged over the vertical stack defaults."
16
+ }
17
+ ],
18
+ "typeReferences": [
19
+ "Omit<BaseField.Root.Props, \"className\">"
20
+ ],
21
+ "subcomponents": [],
22
+ "parts": [],
23
+ "variants": {},
24
+ "defaultVariants": {},
25
+ "tokensUsed": [
26
+ "--cue-danger",
27
+ "--cue-fg-muted",
28
+ "--cue-fg-subtle",
29
+ "--cue-font-mono",
30
+ "--cue-space-1",
31
+ "--cue-space-2",
32
+ "--cue-text-label",
33
+ "--cue-text-micro"
34
+ ],
35
+ "summary": "The label, description and validation wrapper a form control belongs in.",
36
+ "examples": [
37
+ {
38
+ "title": "A field with validation",
39
+ "code": "<Field name=\"cue\">\n <FieldLabel>Cue name</FieldLabel>\n <Input placeholder=\"e.g. Blackout\" />\n <FieldDescription>Shown in the cue list.</FieldDescription>\n <FieldError issues={result.issues} />\n</Field>",
40
+ "language": "tsx"
41
+ },
42
+ {
43
+ "title": "Usage",
44
+ "code": "<Field name=\"cue\">\n <FieldLabel>Cue name</FieldLabel>\n <Input placeholder=\"e.g. Blackout\" />\n <FieldDescription>Shown in the cue list.</FieldDescription>\n <FieldError issues={result.issues} />\n</Field>",
45
+ "language": "tsx"
46
+ }
47
+ ],
48
+ "status": "stable",
49
+ "url": "/docs/components/field",
50
+ "mdUrl": "/docs/components/field.md",
51
+ "jsonUrl": "/r/components/field.json",
52
+ "whenToUse": [
53
+ "Any control that needs a visible label, helper text, or validation output.",
54
+ "Rendering Standard Schema issues (Zod, Valibot, ArkType) through `FieldError`."
55
+ ],
56
+ "whenNotToUse": [
57
+ "A control in a table row or a toolbar, where the column heading is already the label. Give the control an `aria-label` instead.",
58
+ "Grouping controls that share one value. Use `CheckboxGroup` or `RadioGroup`, which own the value and the group name."
59
+ ],
60
+ "commonMistakes": [
61
+ "Writing `htmlFor` and `id` by hand. `Field` generates them, and hand-written ids collide as soon as the form repeats.",
62
+ "Putting two controls in one `Field`, which points the generated description at the wrong one."
63
+ ],
64
+ "specimens": [
65
+ {
66
+ "title": "Field / FieldLabel / FieldDescription / FieldError",
67
+ "group": "forms",
68
+ "components": [
69
+ "Field",
70
+ "FieldLabel",
71
+ "FieldDescription",
72
+ "FieldError"
73
+ ],
74
+ "code": "<div className=\"grid w-full gap-(--cue-space-5) lg:grid-cols-3\">\n <Field name=\"cue\">\n <FieldLabel>Cue name</FieldLabel>\n <Input placeholder=\"e.g. Blackout\" />\n <FieldDescription>Shown in the cue list.</FieldDescription>\n </Field>\n <Field name=\"universe\" invalid>\n <FieldLabel>Universe</FieldLabel>\n <Input defaultValue=\"9\" />\n <FieldError issues={INVALID_ISSUE} />\n </Field>\n <Field name=\"locked\" disabled>\n <FieldLabel>Locked</FieldLabel>\n <Input defaultValue=\"Read-only\" />\n <FieldDescription>Set by the show file.</FieldDescription>\n </Field>\n</div>",
75
+ "note": "The labelling wrapper. Base UI generates the ids, so the label names the control with no htmlFor bookkeeping, and `invalid` stamps the whole subtree.",
76
+ "interaction": "clicking the label focuses the control; the error line is announced when it appears."
77
+ }
78
+ ]
79
+ }