@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,226 @@
1
+ {
2
+ "name": "NavigationMenu",
3
+ "slug": "navigation-menu",
4
+ "group": "chrome",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "The marketing-shaped navigation header: a strip of words, each opening a panel\nof destinations.\n\nWraps Base UI's `NavigationMenu`, which is the right primitive because a\nnavigation menu is *not* a menu: its rows are links, not commands, so it must\nnot take `role=\"menu\"` (which tells a screen reader to expect commands and\nswallows the browser's own link affordances). Hover intent, the shared\nresizing popup, focus handling and the landmark are all the primitive's.\n\nReach for {@link Menubar } when the entries run commands, `Tabs` when they\nswitch a panel in place, and `Sidebar` when the console has more than about\nsix destinations.",
9
+ "props": [],
10
+ "typeReferences": [],
11
+ "subcomponents": [
12
+ "Root",
13
+ "List",
14
+ "Item",
15
+ "Trigger",
16
+ "Content",
17
+ "Link",
18
+ "Viewport"
19
+ ],
20
+ "parts": [
21
+ {
22
+ "name": "Root",
23
+ "usage": "NavigationMenu.Root",
24
+ "description": "The navigation landmark. Renders a `<nav>` at the top level.\n\nGive it an `aria-label`: a page with more than one navigation landmark and no\nnames on them is a page a screen-reader user cannot navigate by landmark,\nwhich is the only reason the landmark exists.",
25
+ "props": [
26
+ {
27
+ "name": "className",
28
+ "type": "string",
29
+ "required": false,
30
+ "defaultValue": null,
31
+ "description": "Extra classes for the `<nav>`."
32
+ }
33
+ ],
34
+ "typeReferences": [
35
+ "Omit<BaseNavigationMenu.Root.Props, \"className\">"
36
+ ]
37
+ },
38
+ {
39
+ "name": "List",
40
+ "usage": "NavigationMenu.List",
41
+ "description": "The horizontal strip of top-level items. Renders a `<ul>`.",
42
+ "props": [
43
+ {
44
+ "name": "className",
45
+ "type": "string",
46
+ "required": false,
47
+ "defaultValue": null,
48
+ "description": "Extra classes for the strip of items."
49
+ }
50
+ ],
51
+ "typeReferences": [
52
+ "Omit<BaseNavigationMenu.List.Props, \"className\">"
53
+ ]
54
+ },
55
+ {
56
+ "name": "Item",
57
+ "usage": "NavigationMenu.Item",
58
+ "description": "One top-level entry: a trigger with a panel, or a bare\n{@link NavigationMenuLink}. Renders an `<li>`.",
59
+ "props": [],
60
+ "typeReferences": [
61
+ "BaseNavigationMenu.Item.Props"
62
+ ]
63
+ },
64
+ {
65
+ "name": "Trigger",
66
+ "usage": "NavigationMenu.Trigger",
67
+ "description": "A top-level word that opens a panel.\n\nOpen is `accent-soft` plus full-strength ink — the same tint the active tab\nand the highlighted menu row use, never a solid accent block. The caret is a\nchild of the trigger rather than a sibling so it inherits the ink and rotates\nwith the open state for free.",
68
+ "props": [
69
+ {
70
+ "name": "className",
71
+ "type": "string",
72
+ "required": false,
73
+ "defaultValue": null,
74
+ "description": "Extra classes for the trigger."
75
+ },
76
+ {
77
+ "name": "caret",
78
+ "type": "boolean",
79
+ "required": false,
80
+ "defaultValue": "true",
81
+ "description": "Draw the caret that says a panel opens below. Defaults to `true`."
82
+ }
83
+ ],
84
+ "typeReferences": [
85
+ "Omit<BaseNavigationMenu.Trigger.Props, \"className\">"
86
+ ]
87
+ },
88
+ {
89
+ "name": "Content",
90
+ "usage": "NavigationMenu.Content",
91
+ "description": "One item's panel. Only the open item's content is mounted into the shared\n{@link NavigationMenuViewport}, which is what lets the popup resize smoothly\nbetween items instead of one panel per popup.",
92
+ "props": [
93
+ {
94
+ "name": "className",
95
+ "type": "string",
96
+ "required": false,
97
+ "defaultValue": null,
98
+ "description": "Extra classes for the panel body."
99
+ }
100
+ ],
101
+ "typeReferences": [
102
+ "Omit<BaseNavigationMenu.Content.Props, \"className\">"
103
+ ]
104
+ },
105
+ {
106
+ "name": "Link",
107
+ "usage": "NavigationMenu.Link",
108
+ "description": "One destination inside a panel.\n\nNever underlined at rest — the same rule as `Link` — because a panel of eight\nunderlined rows is a wall of rules. Hover moves the ink and the ground, which\nis louder and quieter at the same time.\n\nPass `render={<NextLink href=\"…\" />}` for client-side routing.",
109
+ "props": [
110
+ {
111
+ "name": "className",
112
+ "type": "string",
113
+ "required": false,
114
+ "defaultValue": null,
115
+ "description": "Extra classes for the link row."
116
+ },
117
+ {
118
+ "name": "active",
119
+ "type": "boolean",
120
+ "required": false,
121
+ "defaultValue": null,
122
+ "description": "Mark this link as the current destination."
123
+ },
124
+ {
125
+ "name": "description",
126
+ "type": "ReactNode",
127
+ "required": false,
128
+ "defaultValue": null,
129
+ "description": "Supporting line under the label."
130
+ }
131
+ ],
132
+ "typeReferences": [
133
+ "Omit<BaseNavigationMenu.Link.Props, \"className\">"
134
+ ]
135
+ },
136
+ {
137
+ "name": "Viewport",
138
+ "usage": "NavigationMenu.Viewport",
139
+ "description": "The single floating panel every item shares: portal, positioner, popup and\nviewport in one part.\n\nPut exactly one of these inside a {@link NavigationMenuRoot}, after the list.\nIt is one popup rather than one-per-item on purpose — that is what makes\nmoving between two open items a resize instead of a close-and-reopen — and it\nis portalled through {@link useCuePortalProps} so it carries the caller's\ntheme, density and mode.\n\nThe popup animates its own `width`/`height` from the `--popup-width` /\n`--popup-height` custom properties Base UI publishes as the active panel\nchanges.",
140
+ "props": [
141
+ {
142
+ "name": "className",
143
+ "type": "string",
144
+ "required": false,
145
+ "defaultValue": null,
146
+ "description": "Extra classes for the popup surface."
147
+ },
148
+ {
149
+ "name": "align",
150
+ "type": "\"center\" | \"end\" | \"start\"",
151
+ "required": false,
152
+ "defaultValue": "start",
153
+ "description": "Alignment along the bottom of the active trigger. Defaults to `\"start\"`."
154
+ },
155
+ {
156
+ "name": "positionerClassName",
157
+ "type": "string",
158
+ "required": false,
159
+ "defaultValue": null,
160
+ "description": "Extra classes for the positioner that places the popup."
161
+ },
162
+ {
163
+ "name": "sideOffset",
164
+ "type": "number | OffsetFunction",
165
+ "required": false,
166
+ "defaultValue": "4",
167
+ "description": "Gap in px between the strip and the popup. Defaults to `4`."
168
+ }
169
+ ],
170
+ "typeReferences": [
171
+ "Omit<BaseNavigationMenu.Popup.Props, \"className\">"
172
+ ]
173
+ }
174
+ ],
175
+ "variants": {},
176
+ "defaultVariants": {},
177
+ "tokensUsed": [
178
+ "--cue-accent",
179
+ "--cue-accent-soft",
180
+ "--cue-border",
181
+ "--cue-border-overlay",
182
+ "--cue-control-md",
183
+ "--cue-control-sm",
184
+ "--cue-fg",
185
+ "--cue-fg-muted",
186
+ "--cue-fg-subtle",
187
+ "--cue-font-mono",
188
+ "--cue-icon-sm",
189
+ "--cue-radius-control",
190
+ "--cue-radius-overlay",
191
+ "--cue-scrim",
192
+ "--cue-space-1",
193
+ "--cue-space-2",
194
+ "--cue-space-3",
195
+ "--cue-surface-2",
196
+ "--cue-surface-3",
197
+ "--cue-text-emphasis",
198
+ "--cue-text-label",
199
+ "--cue-text-ui"
200
+ ],
201
+ "summary": "The marketing-shaped navigation header: a strip of words, each opening a panel of destinations.",
202
+ "examples": [
203
+ {
204
+ "title": "Usage",
205
+ "code": "<NavigationMenu.Root aria-label=\"Console\">\n <NavigationMenu.List>\n <NavigationMenu.Item>\n <NavigationMenu.Trigger>Patch</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <NavigationMenu.Link href=\"/patch/fixtures\" description=\"Everything addressed\">\n Fixtures\n </NavigationMenu.Link>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n </NavigationMenu.List>\n <NavigationMenu.Viewport />\n</NavigationMenu.Root>",
206
+ "language": "tsx"
207
+ }
208
+ ],
209
+ "status": "todo-docs",
210
+ "url": "/docs/components/navigation-menu",
211
+ "mdUrl": "/docs/components/navigation-menu.md",
212
+ "jsonUrl": "/r/components/navigation-menu.json",
213
+ "specimens": [
214
+ {
215
+ "title": "NavigationMenu",
216
+ "group": "chrome",
217
+ "components": [
218
+ "NavigationMenu"
219
+ ],
220
+ "code": "<NavigationMenu.Root>\n <NavigationMenu.List>\n <NavigationMenu.Item>\n <NavigationMenu.Trigger>Products</NavigationMenu.Trigger>\n <NavigationMenu.Content className=\"w-[20rem]\">\n <NavigationMenu.Link href=\"#dmxhub\" description=\"Art-Net and sACN bridge.\">\n dmxhub\n </NavigationMenu.Link>\n <NavigationMenu.Link href=\"#venu\" description=\"Show control.\" active>\n VENU.studio\n </NavigationMenu.Link>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n <NavigationMenu.Item>\n <NavigationMenu.Trigger caret={false}>Docs</NavigationMenu.Trigger>\n <NavigationMenu.Content className=\"w-[16rem]\">\n <NavigationMenu.Link href=\"#tokens\">Tokens</NavigationMenu.Link>\n <NavigationMenu.Link href=\"#components\">Components</NavigationMenu.Link>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n </NavigationMenu.List>\n <NavigationMenu.Viewport />\n</NavigationMenu.Root>",
221
+ "note": "A menu bar whose panels are portalled through the stamping contract, so they keep the theme and density of the island they were opened from.",
222
+ "interaction": "hover opens after a short delay; Escape closes and returns focus to the trigger."
223
+ }
224
+ ],
225
+ "todo": true
226
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "name": "NodeCard",
3
+ "slug": "node-card",
4
+ "group": "flow",
5
+ "importPath": "@cueplusplus/ui/flow",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A node on a graph canvas, drawn in this system's language.\n\nFramed with an **outline, never a border**. React Flow is told a node's height\nup front — every layout that stacks nodes computes it — and a 1px border on\neach side makes the rendered box 2px taller than the number the layout used,\nwhich is how node stacks end up overlapping by a hairline that grows with the\nnode count. An outline is painted outside the box model entirely and costs\nnothing, so the formula and the DOM agree. `-outline-offset-1` then pulls it\nback inside the corner radius.\n\nThe frame's colour is the node's state (see `_frame.ts`): selected beats live\nbeats identity. When neither `tone` nor `state` is given the card paints no\ncolour of its own and inherits `--cue-node-frame` from the node wrapper, which\nis how `useFlowTheme().nodeStyles` colours a whole class of nodes at once.\n\nThe header band is the drag handle — pass\n`dragHandle: '[data-slot=\"node-card-header\"]'` on the node so a pointer inside\nthe body edits instead of dragging.\n\nNothing here imports `@xyflow/react`: a node card is a div, and the same card\ndraws a static diagram on a marketing page with no graph engine shipped. It\nalso never clips — handles straddle the rim, so an `overflow-hidden` in\n`className` would slice every connection point in half.",
9
+ "props": [
10
+ {
11
+ "name": "tone",
12
+ "type": "\"input\" | \"output\" | \"processing\"",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "Where the node sits in the signal path. Inks the frame at rest."
16
+ },
17
+ {
18
+ "name": "state",
19
+ "type": "\"disabled\" | \"idle\" | \"selected\" | \"live\"",
20
+ "required": false,
21
+ "defaultValue": null,
22
+ "description": "What the node is doing right now. Outranks `tone`.\n\nPass React Flow's own `selected` through:\n`state={selected ? \"selected\" : \"idle\"}`."
23
+ },
24
+ {
25
+ "name": "header",
26
+ "type": "ReactNode",
27
+ "required": false,
28
+ "defaultValue": null,
29
+ "description": "The summary band: a label, a toggle, a badge. Also the drag handle."
30
+ },
31
+ {
32
+ "name": "expanded",
33
+ "type": "boolean",
34
+ "required": false,
35
+ "defaultValue": "true",
36
+ "description": "Whether the body is shown. Defaults to `true`; `false` renders the band alone."
37
+ },
38
+ {
39
+ "name": "onExpandedChange",
40
+ "type": "((expanded: boolean) => void)",
41
+ "required": false,
42
+ "defaultValue": null,
43
+ "description": "Called with the requested state when the caret is clicked. Supplying it is\nwhat makes the caret appear — a card nobody can collapse should not offer to."
44
+ },
45
+ {
46
+ "name": "toggleLabel",
47
+ "type": "string",
48
+ "required": false,
49
+ "defaultValue": null,
50
+ "description": "Accessible name for the caret. Defaults to `\"Collapse\"` / `\"Expand\"`."
51
+ },
52
+ {
53
+ "name": "children",
54
+ "type": "ReactNode",
55
+ "required": false,
56
+ "defaultValue": null,
57
+ "description": "The body: rows, bars, fields. Full-bleed — rows own their own padding."
58
+ }
59
+ ],
60
+ "typeReferences": [
61
+ "React.ComponentPropsWithoutRef<\"div\">"
62
+ ],
63
+ "subcomponents": [],
64
+ "parts": [],
65
+ "variants": {},
66
+ "defaultVariants": {},
67
+ "tokensUsed": [
68
+ "--cue-accent",
69
+ "--cue-border",
70
+ "--cue-control-sm",
71
+ "--cue-fg",
72
+ "--cue-fg-muted",
73
+ "--cue-fg-subtle",
74
+ "--cue-font-mono",
75
+ "--cue-info",
76
+ "--cue-node-frame",
77
+ "--cue-radius-surface",
78
+ "--cue-space-2",
79
+ "--cue-space-3",
80
+ "--cue-surface-1",
81
+ "--cue-text-label",
82
+ "--cue-text-micro"
83
+ ],
84
+ "summary": "A node on a graph canvas, drawn in this system's language.",
85
+ "examples": [
86
+ {
87
+ "title": "Usage",
88
+ "code": "function MergeNode({ selected }: NodeProps) {\n const [open, setOpen] = React.useState(true);\n return (\n <NodeCard\n tone=\"processing\"\n state={selected ? \"selected\" : \"live\"}\n header={<span className=\"truncate\">merge · universe 3</span>}\n expanded={open}\n onExpandedChange={setOpen}\n >\n <DmxBar data={frame} />\n </NodeCard>\n );\n}",
89
+ "language": "tsx"
90
+ }
91
+ ],
92
+ "status": "todo-docs",
93
+ "url": "/docs/components/node-card",
94
+ "mdUrl": "/docs/components/node-card.md",
95
+ "jsonUrl": "/r/components/node-card.json",
96
+ "specimens": [
97
+ {
98
+ "title": "NodeCard",
99
+ "group": "flow",
100
+ "components": [
101
+ "NodeCard"
102
+ ],
103
+ "code": "<Specimens>\n {([\"input\", \"processing\", \"output\"] as const).map((tone) => (\n <Specimen key={tone} label={tone}>\n <NodeCard tone={tone} header={tone} className=\"w-[10rem]\">\n <span className=\"font-mono text-(length:--cue-text-micro) text-fg-subtle\">\n 512 slots\n </span>\n </NodeCard>\n </Specimen>\n ))}\n {([\"idle\", \"live\", \"selected\", \"disabled\"] as const).map((state) => (\n <Specimen key={state} label={state}>\n <NodeCard state={state} header={state} className=\"w-[10rem]\">\n <StatusDot tone={state === \"live\" ? \"ok\" : \"idle\"} label={state} />\n </NodeCard>\n </Specimen>\n ))}\n <Specimen label=\"collapsed\">\n <NodeCard header=\"Collapsible\" expanded={false} className=\"w-[10rem]\">\n <span>Hidden body</span>\n </NodeCard>\n </Specimen>\n</Specimens>",
104
+ "note": "Framed with an outline rather than a border, so a node's rendered height is exactly the height the layout was told. The frame colour is the state: selected is `fg`, input is `info`, output and live are accent, idle is `fg-subtle`.",
105
+ "interaction": "the expand toggle is a real button; the frame colour changes with `state`, never with hover alone."
106
+ }
107
+ ],
108
+ "todo": true
109
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "NodeHandle",
3
+ "slug": "node-handle",
4
+ "group": "flow",
5
+ "importPath": "@cueplusplus/ui/flow",
6
+ "peerDependencies": [
7
+ "@xyflow/react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "A connection point on a node, drawn as a pin rather than a dot.\n\nEverything visual is **inline style, not a class**, and that is deliberate:\n`.react-flow__handle` sets `background-color`, `border` and `width`/`height`\nfrom the library's own unlayered stylesheet, while Tailwind's utilities live in\na cascade layer — and any layered rule loses to an unlayered one of the same\nspecificity, whatever order the files load in. An inline declaration is the\nonly paint that reliably wins, which is also how the port did it.\n\nThe pin is ringed in `--cue-bg` rather than in the card's own surface, so it\nreads as lifted off the edge it straddles no matter which surface rung the\nnode is on.",
11
+ "props": [
12
+ {
13
+ "name": "tone",
14
+ "type": "\"danger\" | \"accent\" | \"busy\" | \"muted\" | \"ok\" | \"warn\" | \"info\"",
15
+ "required": false,
16
+ "defaultValue": "accent",
17
+ "description": "What the connection carries. Defaults to `\"accent\"`."
18
+ },
19
+ {
20
+ "name": "size",
21
+ "type": "number",
22
+ "required": false,
23
+ "defaultValue": "9",
24
+ "description": "Diameter in px at the 16px root, emitted as `rem`. Defaults to `9`."
25
+ }
26
+ ],
27
+ "typeReferences": [
28
+ "HandleProps"
29
+ ],
30
+ "subcomponents": [],
31
+ "parts": [],
32
+ "variants": {},
33
+ "defaultVariants": {},
34
+ "tokensUsed": [
35
+ "--cue-accent",
36
+ "--cue-bg",
37
+ "--cue-border-strong",
38
+ "--cue-busy",
39
+ "--cue-danger",
40
+ "--cue-info",
41
+ "--cue-ok",
42
+ "--cue-warn"
43
+ ],
44
+ "summary": "A connection point on a node, drawn as a pin rather than a dot.",
45
+ "examples": [
46
+ {
47
+ "title": "Usage",
48
+ "code": "<NodeHandle type=\"source\" position={Position.Right} id=\"u1\" />\n<NodeHandle type=\"target\" position={Position.Left} id=\"in\" tone=\"muted\" />",
49
+ "language": "tsx"
50
+ }
51
+ ],
52
+ "status": "todo-docs",
53
+ "url": "/docs/components/node-handle",
54
+ "mdUrl": "/docs/components/node-handle.md",
55
+ "jsonUrl": "/r/components/node-handle.json",
56
+ "specimens": [
57
+ {
58
+ "title": "NodeHandle",
59
+ "group": "flow",
60
+ "components": [
61
+ "NodeHandle"
62
+ ],
63
+ "code": "<div className=\"h-[9rem] w-full overflow-hidden rounded-(--radius-surface) border border-border\">\n <ReactFlow\n nodes={TONE_NODES}\n edges={[]}\n nodeTypes={NODE_TYPES}\n colorMode={theme.colorMode}\n style={theme.style}\n nodesDraggable={false}\n panOnDrag={false}\n zoomOnScroll={false}\n proOptions={{ hideAttribution: true }}\n />\n</div>",
64
+ "note": "A 9px connection pin in the system's tones, painted with inline `var(--cue-*)` references. That is deliberate: the library's own stylesheet is unlayered while Tailwind's utilities are layered, and a layered rule loses to an unlayered one of equal specificity whatever the import order. Shown on a node, because a handle only exists inside a canvas.",
65
+ "interaction": "the hit area is larger than the dot; the pin resolves its colour from the live custom properties, so a theme switch repaints it."
66
+ }
67
+ ],
68
+ "todo": true
69
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "NumberField",
3
+ "slug": "number-field",
4
+ "group": "forms",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A numeric control with explicit − / + affordances and no native spinners.\n\nNative `<input type=\"number\">` spinners are unusable at console density — a\npair of 4px arrows that only appear on hover — so this is a text input with\n`inputMode=\"numeric\"` flanked by real buttons, which is also what makes it\ntouch-usable. Arrow keys step, Shift steps by `largeStep`, Alt by `smallStep`,\nand values typed out of range are clamped to `min`/`max` on blur.\n\nThe group owns the rim; the input and both buttons render bare inside it, so\nthe whole cluster reads as one field and focus feedback moves to\n`focus-within`.",
9
+ "props": [
10
+ {
11
+ "name": "className",
12
+ "type": "string",
13
+ "required": false,
14
+ "defaultValue": null,
15
+ "description": "Extra classes, merged over the group chassis."
16
+ },
17
+ {
18
+ "name": "aria-label",
19
+ "type": "string",
20
+ "required": false,
21
+ "defaultValue": null,
22
+ "description": "Accessible name for the text control, when no {@link FieldLabel } names it."
23
+ },
24
+ {
25
+ "name": "size",
26
+ "type": "\"sm\" | \"md\"",
27
+ "required": false,
28
+ "defaultValue": "md",
29
+ "description": "Rung of the control ladder. Defaults to `\"md\"`."
30
+ },
31
+ {
32
+ "name": "placeholder",
33
+ "type": "string",
34
+ "required": false,
35
+ "defaultValue": null,
36
+ "description": "Placeholder shown while the field is empty."
37
+ },
38
+ {
39
+ "name": "decrementLabel",
40
+ "type": "string",
41
+ "required": false,
42
+ "defaultValue": "Decrease",
43
+ "description": "Accessible name for the decrement button. Defaults to `\"Decrease\"`."
44
+ },
45
+ {
46
+ "name": "incrementLabel",
47
+ "type": "string",
48
+ "required": false,
49
+ "defaultValue": "Increase",
50
+ "description": "Accessible name for the increment button. Defaults to `\"Increase\"`."
51
+ }
52
+ ],
53
+ "typeReferences": [
54
+ "Omit<BaseNumberField.Root.Props, \"className\">"
55
+ ],
56
+ "subcomponents": [],
57
+ "parts": [],
58
+ "variants": {},
59
+ "defaultVariants": {},
60
+ "tokensUsed": [
61
+ "--cue-accent",
62
+ "--cue-border",
63
+ "--cue-control-lg",
64
+ "--cue-control-md",
65
+ "--cue-control-sm",
66
+ "--cue-danger",
67
+ "--cue-fg",
68
+ "--cue-fg-muted",
69
+ "--cue-fg-subtle",
70
+ "--cue-font-mono",
71
+ "--cue-radius-control",
72
+ "--cue-space-2",
73
+ "--cue-space-3",
74
+ "--cue-space-4",
75
+ "--cue-space-5",
76
+ "--cue-sunken",
77
+ "--cue-surface-2",
78
+ "--cue-text-body",
79
+ "--cue-text-label",
80
+ "--cue-text-ui"
81
+ ],
82
+ "summary": "A numeric control with explicit − / + affordances and no native spinners.",
83
+ "examples": [
84
+ {
85
+ "title": "Usage",
86
+ "code": "<NumberField aria-label=\"Fade time\" defaultValue={3} min={0} max={600} step={0.5} />\n<Field><FieldLabel>Universe</FieldLabel><NumberField min={1} max={512} /></Field>",
87
+ "language": "tsx"
88
+ }
89
+ ],
90
+ "status": "todo-docs",
91
+ "url": "/docs/components/number-field",
92
+ "mdUrl": "/docs/components/number-field.md",
93
+ "jsonUrl": "/r/components/number-field.json",
94
+ "specimens": [
95
+ {
96
+ "title": "NumberField",
97
+ "group": "forms",
98
+ "components": [
99
+ "NumberField"
100
+ ],
101
+ "code": "<Specimens>\n <Specimen label=\"default\">\n <NumberField aria-label=\"Fade time\" defaultValue={3} min={0} max={600} step={0.5} />\n </Specimen>\n <Specimen label=\"sm\">\n <NumberField aria-label=\"Fade time, small\" defaultValue={3} size=\"sm\" />\n </Specimen>\n <Specimen label=\"disabled\">\n <NumberField aria-label=\"Fade time, disabled\" defaultValue={3} disabled />\n </Specimen>\n</Specimens>",
102
+ "note": "Stepper buttons on the chassis, with tabular figures so a changing digit does not shift the column.",
103
+ "interaction": "arrow keys step, shift-arrow steps by ten, the scroll wheel is deliberately inert."
104
+ }
105
+ ],
106
+ "todo": true
107
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "NumberTicker",
3
+ "slug": "number-ticker",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "Digits that roll into place as a count updates in real time.",
9
+ "props": [
10
+ {
11
+ "name": "value",
12
+ "type": "number",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "Numeric value whose digits roll into place as it changes."
16
+ },
17
+ {
18
+ "name": "label",
19
+ "type": "string",
20
+ "required": true,
21
+ "defaultValue": null,
22
+ "description": "Mono caption rendered under the rolling number."
23
+ }
24
+ ],
25
+ "typeReferences": [
26
+ "Omit<ComponentProps<\"div\">, \"children\" | \"value\" | \"label\"> & {\n /** Numeric value whose digits roll into place as it changes. */\n value: number;\n /** Mono caption rendered under the rolling number. */\n label: string;\n}"
27
+ ],
28
+ "subcomponents": [],
29
+ "parts": [],
30
+ "variants": {},
31
+ "defaultVariants": {},
32
+ "tokensUsed": [
33
+ "--cue-fg-subtle",
34
+ "--cue-text-title"
35
+ ],
36
+ "summary": "Digits that roll into place as a count updates in real time.",
37
+ "examples": [
38
+ {
39
+ "title": "Usage",
40
+ "code": "import { NumberTicker } from \"@cueplusplus/ui/elements\";\n\n<NumberTicker value={1284} label=\"tokens / sec\" />",
41
+ "language": "tsx"
42
+ }
43
+ ],
44
+ "status": "todo-docs",
45
+ "url": "/docs/components/number-ticker",
46
+ "mdUrl": "/docs/components/number-ticker.md",
47
+ "jsonUrl": "/r/components/number-ticker.json",
48
+ "specimens": [
49
+ {
50
+ "title": "NumberTicker",
51
+ "group": "elements-knowledge",
52
+ "components": [
53
+ "NumberTicker"
54
+ ],
55
+ "code": "<Specimens>\n <Specimen label=\"channels patched\">\n <NumberTicker value={48} label=\"channels patched\" />\n </Specimen>\n <Specimen label=\"a larger figure\">\n <NumberTicker value={22300} label=\"lumens\" />\n </Specimen>\n</Specimens>",
56
+ "note": "A count that rolls rather than jumps: each digit is a column of ten sliding into place, so 47 to 48 moves one wheel and leaves the other alone. The whole figure is announced once as text, which is what keeps ten rolling columns from being read out as ten numbers.",
57
+ "interaction": "none. The columns translate on a long ease and stop moving entirely under reduced motion."
58
+ }
59
+ ],
60
+ "todo": true
61
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "Onboarding",
3
+ "slug": "onboarding",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "First run: three moves that teach what this assistant is actually for.",
9
+ "props": [
10
+ {
11
+ "name": "steps",
12
+ "type": "readonly OnboardingStep[]",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "What to teach, in order. Three is usually the limit before it is skipped."
16
+ },
17
+ {
18
+ "name": "index",
19
+ "type": "number",
20
+ "required": true,
21
+ "defaultValue": null,
22
+ "description": "Which step is showing. The final step's action reads Start instead of Next."
23
+ },
24
+ {
25
+ "name": "onNext",
26
+ "type": "(() => void)",
27
+ "required": false,
28
+ "defaultValue": null,
29
+ "description": "Called to advance."
30
+ },
31
+ {
32
+ "name": "onSkip",
33
+ "type": "(() => void)",
34
+ "required": false,
35
+ "defaultValue": null,
36
+ "description": "Called to dismiss. Always offer it."
37
+ }
38
+ ],
39
+ "typeReferences": [
40
+ "Omit<\n ComponentProps<\"div\">,\n \"children\" | \"steps\" | \"index\" | \"onNext\" | \"onSkip\"\n> & {\n /** What to teach, in order. Three is usually the limit before it is skipped. */\n steps: readonly OnboardingStep[];\n /** Which step is showing. The final step's action reads Start instead of Next. */\n index: number;\n /** Called to advance. */\n onNext?: () => void;\n /** Called to dismiss. Always offer it. */\n onSkip?: () => void;\n}"
41
+ ],
42
+ "subcomponents": [],
43
+ "parts": [],
44
+ "variants": {},
45
+ "defaultVariants": {},
46
+ "tokensUsed": [
47
+ "--cue-accent",
48
+ "--cue-fg",
49
+ "--cue-fg-muted",
50
+ "--cue-fg-subtle",
51
+ "--cue-radius-overlay",
52
+ "--cue-radius-surface",
53
+ "--cue-surface-2",
54
+ "--cue-surface-3",
55
+ "--cue-text-body",
56
+ "--cue-text-emphasis",
57
+ "--cue-text-ui"
58
+ ],
59
+ "summary": "First run: three moves that teach what this assistant is actually for.",
60
+ "examples": [
61
+ {
62
+ "title": "Usage",
63
+ "code": "import { Onboarding } from \"@cueplusplus/ui/elements\";\n\n<Onboarding steps={steps} index={index} onNext={next} onSkip={skip} />",
64
+ "language": "tsx"
65
+ }
66
+ ],
67
+ "status": "todo-docs",
68
+ "url": "/docs/components/onboarding",
69
+ "mdUrl": "/docs/components/onboarding.md",
70
+ "jsonUrl": "/r/components/onboarding.json",
71
+ "specimens": [
72
+ {
73
+ "title": "Onboarding",
74
+ "group": "elements-composer",
75
+ "components": [
76
+ "Onboarding"
77
+ ],
78
+ "code": "<Specimens>\n <Specimen label=\"walking it\" wide>\n <Onboarding\n steps={ONBOARDING}\n index={step}\n onNext={() => setStep((current) => Math.min(current + 1, ONBOARDING.length - 1))}\n onSkip={() => setStep(0)}\n />\n </Specimen>\n <Specimen label=\"last step\" wide>\n <Onboarding steps={ONBOARDING} index={ONBOARDING.length - 1} />\n </Specimen>\n</Specimens>",
79
+ "note": "First run: three moves that teach what this assistant is actually for, each with a prompt you could send verbatim. Showing beats describing, which is why every step carries an example rather than a screenshot. The dots are the progress and the final step's action reads `Start` instead of `Next`, so the end of the tour is visible from the second step.",
80
+ "interaction": "skip is always offered and always in the same place — a tour with no way out is a modal wearing a card."
81
+ }
82
+ ],
83
+ "todo": true
84
+ }