@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,101 @@
1
+ {
2
+ "name": "DmxStrip",
3
+ "slug": "dmx-strip",
4
+ "group": "dmx",
5
+ "importPath": "@cueplusplus/ui/dmx",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "`DmxBar`'s picture with no console behind it — a lighting rig, simulated.\n\nThis is the marketing device from dmxhub's site: the same 1px-tall pixelated\ncanvas the bridge uses for real output, driven by a model of a plausible rig\ninstead of a wire. Channels are grouped into six-channel fixtures; most sit\nwhere they were left, some are dark, and every so often one re-cues and\ncrossfades to its new level. That grouping is what makes it read as *lighting*\nrather than as noise — a random 512 bytes looks like static, and a rig does\nnot.\n\nEverything about it is seeded, including the re-cues the original left to\n`Math.random()`. A screenshot, a visual-regression run and a test all see the\nsame rig from the same `seed`.\n\nUnder `prefers-reduced-motion` the strip paints its first frame and stops.\nThere is no information in the animation — the point of the component is the\ntexture — so stilling it costs the reader nothing.",
9
+ "props": [
10
+ {
11
+ "name": "cells",
12
+ "type": "number",
13
+ "required": false,
14
+ "defaultValue": "128",
15
+ "description": "Columns, one per simulated channel. Defaults to `128`."
16
+ },
17
+ {
18
+ "name": "height",
19
+ "type": "number",
20
+ "required": false,
21
+ "defaultValue": "14",
22
+ "description": "Strip height in px at the 16px root, emitted as `rem`. Defaults to `14`."
23
+ },
24
+ {
25
+ "name": "seed",
26
+ "type": "number",
27
+ "required": false,
28
+ "defaultValue": "1",
29
+ "description": "Seed for the whole simulation. The same seed always plays the same way. Defaults to `1`."
30
+ },
31
+ {
32
+ "name": "simulate",
33
+ "type": "boolean",
34
+ "required": false,
35
+ "defaultValue": "true",
36
+ "description": "Run the simulation. Defaults to `true`; `false` holds the seeded first frame."
37
+ },
38
+ {
39
+ "name": "label",
40
+ "type": "string",
41
+ "required": false,
42
+ "defaultValue": null,
43
+ "description": "What the strip depicts. Defaults to `\"Simulated DMX activity\"`."
44
+ }
45
+ ],
46
+ "typeReferences": [
47
+ "Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">"
48
+ ],
49
+ "subcomponents": [],
50
+ "parts": [],
51
+ "variants": {},
52
+ "defaultVariants": {},
53
+ "tokensUsed": [
54
+ "--cue-accent",
55
+ "--cue-accent-soft",
56
+ "--cue-border",
57
+ "--cue-border-overlay",
58
+ "--cue-control-sm",
59
+ "--cue-data-ground",
60
+ "--cue-fg",
61
+ "--cue-fg-muted",
62
+ "--cue-fg-subtle",
63
+ "--cue-font-mono",
64
+ "--cue-radius-control",
65
+ "--cue-radius-overlay",
66
+ "--cue-scrim",
67
+ "--cue-space-1",
68
+ "--cue-space-2",
69
+ "--cue-space-3",
70
+ "--cue-surface-2",
71
+ "--cue-text-emphasis",
72
+ "--cue-text-label",
73
+ "--cue-text-micro",
74
+ "--cue-text-ui"
75
+ ],
76
+ "summary": "`DmxBar`'s picture with no console behind it — a lighting rig, simulated.",
77
+ "examples": [
78
+ {
79
+ "title": "Usage",
80
+ "code": "<DmxStrip seed={7} />\n<DmxStrip cells={256} simulate={false} label=\"Rig activity\" />",
81
+ "language": "tsx"
82
+ }
83
+ ],
84
+ "status": "todo-docs",
85
+ "url": "/docs/components/dmx-strip",
86
+ "mdUrl": "/docs/components/dmx-strip.md",
87
+ "jsonUrl": "/r/components/dmx-strip.json",
88
+ "specimens": [
89
+ {
90
+ "title": "DmxStrip",
91
+ "group": "dmx",
92
+ "components": [
93
+ "DmxStrip"
94
+ ],
95
+ "code": "<div className=\"flex w-full flex-col gap-(--cue-space-4)\">\n <DmxStrip seed={7} label=\"Simulated rig, seed 7\" />\n <DmxStrip seed={7} cells={16} height={20} label=\"Simulated rig, 16 cells\" />\n <DmxStrip seed={42} simulate={false} label=\"Simulated rig, static\" />\n</div>",
96
+ "note": "A seeded fixture simulation: mulberry32 from the `seed` prop, so the same seed draws the same rig every time. Values ramp rather than jump.",
97
+ "interaction": "the readout updates through a ref; under prefers-reduced-motion the strip paints one static frame instead of animating."
98
+ }
99
+ ],
100
+ "todo": true
101
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "name": "DocumentReference",
3
+ "slug": "document-reference",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "A document the answer leans on, with the quoted passage and the page to jump to.",
11
+ "props": [
12
+ {
13
+ "name": "title",
14
+ "type": "string",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "Document name."
18
+ },
19
+ {
20
+ "name": "pages",
21
+ "type": "number",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "Total page count."
25
+ },
26
+ {
27
+ "name": "anchors",
28
+ "type": "readonly DocumentAnchor[]",
29
+ "required": true,
30
+ "defaultValue": null,
31
+ "description": "The passages the answer drew on, each pinned to a page."
32
+ },
33
+ {
34
+ "name": "activePage",
35
+ "type": "number",
36
+ "required": true,
37
+ "defaultValue": null,
38
+ "description": "Which anchor is highlighted. A page with no anchor highlights nothing."
39
+ },
40
+ {
41
+ "name": "onJump",
42
+ "type": "((page: number) => void)",
43
+ "required": false,
44
+ "defaultValue": null,
45
+ "description": "Called with the page to open."
46
+ }
47
+ ],
48
+ "typeReferences": [
49
+ "Omit<\n ComponentProps<\"div\">,\n \"children\" | \"title\" | \"pages\" | \"anchors\" | \"activePage\" | \"onJump\"\n> & {\n /** Document name. */\n title: string;\n /** Total page count. */\n pages: number;\n /** The passages the answer drew on, each pinned to a page. */\n anchors: readonly DocumentAnchor[];\n /** Which anchor is highlighted. A page with no anchor highlights nothing. */\n activePage: number;\n /** Called with the page to open. */\n onJump?: (page: number) => void;\n}"
50
+ ],
51
+ "subcomponents": [],
52
+ "parts": [],
53
+ "variants": {},
54
+ "defaultVariants": {},
55
+ "tokensUsed": [
56
+ "--cue-border-strong",
57
+ "--cue-fg-muted",
58
+ "--cue-fg-subtle",
59
+ "--cue-radius-overlay",
60
+ "--cue-radius-surface",
61
+ "--cue-surface-1",
62
+ "--cue-text-body",
63
+ "--cue-text-ui"
64
+ ],
65
+ "summary": "A document the answer leans on, with the quoted passage and the page to jump to.",
66
+ "examples": [
67
+ {
68
+ "title": "Usage",
69
+ "code": "import { DocumentReference } from \"@cueplusplus/ui/elements\";\n\n<DocumentReference\n title=\"migration-0.14.pdf\"\n pages={14}\n anchors={anchors}\n activePage={4}\n onJump={setPage}\n/>",
70
+ "language": "tsx"
71
+ }
72
+ ],
73
+ "status": "todo-docs",
74
+ "url": "/docs/components/document-reference",
75
+ "mdUrl": "/docs/components/document-reference.md",
76
+ "jsonUrl": "/r/components/document-reference.json",
77
+ "specimens": [
78
+ {
79
+ "title": "DocumentReference",
80
+ "group": "elements-knowledge",
81
+ "components": [
82
+ "DocumentReference"
83
+ ],
84
+ "code": "<Specimens>\n <Specimen label=\"page 31 active\" wide>\n <DocumentReference\n title=\"ESPRITE user manual, rev. 8\"\n pages={94}\n anchors={ANCHORS}\n activePage={page}\n onJump={setPage}\n />\n </Specimen>\n <Specimen label=\"one anchor\" wide>\n <DocumentReference\n title=\"Truss loading guidance\"\n pages={18}\n anchors={ANCHORS.slice(0, 1)}\n activePage={12}\n />\n </Specimen>\n</Specimens>",
85
+ "note": "One document the answer leans on, with the passages it quoted and the page each is on. Several anchors can cite one page — two of these are both page 31 — so the current one is marked by `aria-current` rather than by matching the number, which is what stops the wrong row lighting up.",
86
+ "interaction": "every quote is a button that reports its page to `onJump`; the active row takes the recessed field ground, the others only on hover."
87
+ }
88
+ ],
89
+ "todo": true
90
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "DraftRestore",
3
+ "slug": "draft-restore",
4
+ "group": "elements",
5
+ "importPath": "@cueplusplus/ui/elements",
6
+ "peerDependencies": [
7
+ "lucide-react"
8
+ ],
9
+ "clientOnly": true,
10
+ "description": "Come back to a thread and the sentence you never sent is still waiting.",
11
+ "props": [
12
+ {
13
+ "name": "draft",
14
+ "type": "string",
15
+ "required": true,
16
+ "defaultValue": null,
17
+ "description": "The unsent text, truncated to one line."
18
+ },
19
+ {
20
+ "name": "savedAt",
21
+ "type": "string",
22
+ "required": true,
23
+ "defaultValue": null,
24
+ "description": "When it was last touched, pre-formatted."
25
+ },
26
+ {
27
+ "name": "onRestore",
28
+ "type": "(() => void)",
29
+ "required": false,
30
+ "defaultValue": null,
31
+ "description": "Called to put the draft back in the composer."
32
+ },
33
+ {
34
+ "name": "onDiscard",
35
+ "type": "(() => void)",
36
+ "required": false,
37
+ "defaultValue": null,
38
+ "description": "Called to throw the draft away."
39
+ }
40
+ ],
41
+ "typeReferences": [
42
+ "Omit<\n ComponentProps<\"div\">,\n \"children\" | \"draft\" | \"savedAt\" | \"onRestore\" | \"onDiscard\"\n> & {\n /** The unsent text, truncated to one line. */\n draft: string;\n /** When it was last touched, pre-formatted. */\n savedAt: string;\n /** Called to put the draft back in the composer. */\n onRestore?: () => void;\n /** Called to throw the draft away. */\n onDiscard?: () => void;\n}"
43
+ ],
44
+ "subcomponents": [],
45
+ "parts": [],
46
+ "variants": {},
47
+ "defaultVariants": {},
48
+ "tokensUsed": [
49
+ "--cue-fg",
50
+ "--cue-fg-muted",
51
+ "--cue-fg-subtle",
52
+ "--cue-radius-overlay",
53
+ "--cue-surface-2",
54
+ "--cue-text-body",
55
+ "--cue-text-ui"
56
+ ],
57
+ "summary": "Come back to a thread and the sentence you never sent is still waiting.",
58
+ "examples": [
59
+ {
60
+ "title": "Usage",
61
+ "code": "import { DraftRestore } from \"@cueplusplus/ui/elements\";\n\n<DraftRestore\n draft=\"Add a regression test for draft restore\"\n savedAt=\"2 minutes ago\"\n onRestore={restore}\n onDiscard={discard}\n/>",
62
+ "language": "tsx"
63
+ }
64
+ ],
65
+ "status": "todo-docs",
66
+ "url": "/docs/components/draft-restore",
67
+ "mdUrl": "/docs/components/draft-restore.md",
68
+ "jsonUrl": "/r/components/draft-restore.json",
69
+ "specimens": [
70
+ {
71
+ "title": "DraftRestore",
72
+ "group": "elements-composer",
73
+ "components": [
74
+ "DraftRestore"
75
+ ],
76
+ "code": "<Specimens>\n <Specimen label=\"waiting\" wide>\n <DraftRestore\n draft=\"Patch the back truss too, but leave universe 4 alone\"\n savedAt=\"14 minutes ago\"\n onRestore={() => undefined}\n onDiscard={() => undefined}\n />\n </Specimen>\n <Specimen label=\"long draft\" wide>\n <DraftRestore\n draft=\"Check whether the ESPRITEs on the back truss are still in mode 4 and, if they are, tell me before changing anything\"\n savedAt=\"yesterday\"\n onRestore={() => undefined}\n onDiscard={() => undefined}\n />\n </Specimen>\n</Specimens>",
77
+ "note": "Come back to a thread and the sentence you never sent is still sitting there. One line of what it was, when it was saved, and the two answers anybody ever has for it. `savedAt` is pre-formatted like every other time in this family — the element does no date maths, so a server-rendered draft and a client-rendered one cannot disagree.",
78
+ "interaction": "restore is a worded button and discard is a labelled icon (`Discard the draft`): the destructive one is the one that has to be aimed at."
79
+ }
80
+ ],
81
+ "todo": true
82
+ }
@@ -0,0 +1,179 @@
1
+ {
2
+ "name": "Drawer",
3
+ "slug": "drawer",
4
+ "group": "overlays",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": true,
8
+ "description": "A swipe-dismissable edge panel — the touch-first cousin of {@link Sheet }.\n\nWraps Base UI's `Drawer`, so the drag tracking, the velocity-aware dismissal,\nthe nested-drawer stacking and the focus trap are the primitive's. What this\nlayer adds is the shared overlay surface, the portal theme stamp, and one\ndecision the caller should not have to make twice: `swipeDirection` picks the\nedge *and* the gesture together, so a drawer can never be dragged in a\ndirection that would push it further onto the screen.\n\nPrefer `Sheet` on a pointer-first console — a swipe is not discoverable with a\nmouse — and reach for this on touch, or wherever the panel is glanceable\nenough that dismissing it should cost one gesture.",
9
+ "props": [],
10
+ "typeReferences": [],
11
+ "subcomponents": [
12
+ "Root",
13
+ "Trigger",
14
+ "Content",
15
+ "Title",
16
+ "Description",
17
+ "Footer",
18
+ "Close"
19
+ ],
20
+ "parts": [
21
+ {
22
+ "name": "Root",
23
+ "usage": "Drawer.Root",
24
+ "description": "Groups the parts of a drawer and owns its open state. Renders no element.",
25
+ "props": [
26
+ {
27
+ "name": "swipeDirection",
28
+ "type": "\"left\" | \"right\" | \"up\" | \"down\"",
29
+ "required": false,
30
+ "defaultValue": "down",
31
+ "description": "Which way the drawer is dragged to dismiss it, which also decides the edge\nit lives on. Defaults to `\"down\"` — the bottom sheet."
32
+ }
33
+ ],
34
+ "typeReferences": [
35
+ "Omit<BaseDrawer.Root.Props, \"swipeDirection\">"
36
+ ]
37
+ },
38
+ {
39
+ "name": "Trigger",
40
+ "usage": "Drawer.Trigger",
41
+ "description": "The control that opens the drawer. Unstyled — pass `render={<Button />}` so\nthe button's own variant classes stay the last word.",
42
+ "props": [],
43
+ "typeReferences": [
44
+ "BaseDrawer.Trigger.Props"
45
+ ]
46
+ },
47
+ {
48
+ "name": "Content",
49
+ "usage": "Drawer.Content",
50
+ "description": "The drawer's portal, scrim, viewport and popup in one part.\n\nPortalled through {@link useCuePortalProps}, so the surface carries the\ncaller's theme, density and mode even though it mounts at the end of\n`<body>`. The swipe gesture, the rubber-banding, the velocity-aware dismissal\nand the focus trap are all Base UI's; this layer supplies the edge geometry\nand the token skin.",
51
+ "props": [
52
+ {
53
+ "name": "className",
54
+ "type": "string",
55
+ "required": false,
56
+ "defaultValue": null,
57
+ "description": "Extra classes for the popup surface."
58
+ },
59
+ {
60
+ "name": "keepMounted",
61
+ "type": "boolean",
62
+ "required": false,
63
+ "defaultValue": null,
64
+ "description": "Keep the popup mounted while closed, so its content is not re-created."
65
+ },
66
+ {
67
+ "name": "viewportClassName",
68
+ "type": "string",
69
+ "required": false,
70
+ "defaultValue": null,
71
+ "description": "Extra classes for the full-viewport box that parks the popup on its edge."
72
+ },
73
+ {
74
+ "name": "backdropClassName",
75
+ "type": "string",
76
+ "required": false,
77
+ "defaultValue": null,
78
+ "description": "Extra classes for the scrim behind it."
79
+ },
80
+ {
81
+ "name": "grabHandle",
82
+ "type": "boolean",
83
+ "required": false,
84
+ "defaultValue": "true",
85
+ "description": "Draw the grab bar that advertises the swipe. Defaults to `true`.\n\nPurely decorative — the whole popup is draggable — so it is `aria-hidden`\nand there is no keyboard equivalent to lose by turning it off."
86
+ }
87
+ ],
88
+ "typeReferences": [
89
+ "Omit<BaseDrawer.Popup.Props, \"className\">"
90
+ ]
91
+ },
92
+ {
93
+ "name": "Title",
94
+ "usage": "Drawer.Title",
95
+ "description": "The drawer's heading, wired to the popup's `aria-labelledby`.",
96
+ "props": [],
97
+ "typeReferences": [
98
+ "BaseDrawer.Title.Props"
99
+ ]
100
+ },
101
+ {
102
+ "name": "Description",
103
+ "usage": "Drawer.Description",
104
+ "description": "The supporting line under the title, published as `aria-describedby`.",
105
+ "props": [],
106
+ "typeReferences": [
107
+ "BaseDrawer.Description.Props"
108
+ ]
109
+ },
110
+ {
111
+ "name": "Footer",
112
+ "usage": "Drawer.Footer",
113
+ "description": "The action strip at the foot of the drawer.",
114
+ "props": [],
115
+ "typeReferences": [
116
+ "React.ComponentPropsWithoutRef<\"div\">"
117
+ ]
118
+ },
119
+ {
120
+ "name": "Close",
121
+ "usage": "Drawer.Close",
122
+ "description": "A control that closes the drawer. Unstyled — wrap it in a `Button`.",
123
+ "props": [],
124
+ "typeReferences": [
125
+ "BaseDrawer.Close.Props"
126
+ ]
127
+ }
128
+ ],
129
+ "variants": {},
130
+ "defaultVariants": {},
131
+ "tokensUsed": [
132
+ "--cue-accent-soft",
133
+ "--cue-border",
134
+ "--cue-border-overlay",
135
+ "--cue-border-strong",
136
+ "--cue-control-sm",
137
+ "--cue-fg",
138
+ "--cue-fg-muted",
139
+ "--cue-fg-subtle",
140
+ "--cue-font-mono",
141
+ "--cue-radius-control",
142
+ "--cue-radius-overlay",
143
+ "--cue-scrim",
144
+ "--cue-space-1",
145
+ "--cue-space-2",
146
+ "--cue-space-3",
147
+ "--cue-space-4",
148
+ "--cue-space-6",
149
+ "--cue-surface-2",
150
+ "--cue-text-emphasis",
151
+ "--cue-text-label",
152
+ "--cue-text-ui"
153
+ ],
154
+ "summary": "A swipe-dismissable edge panel — the touch-first cousin of {@link Sheet }.",
155
+ "examples": [
156
+ {
157
+ "title": "Usage",
158
+ "code": "<Drawer.Root swipeDirection=\"down\">\n <Drawer.Trigger render={<Button>Cue stack</Button>} />\n <Drawer.Content>\n <Drawer.Title>Cue stack</Drawer.Title>\n <Drawer.Footer><Drawer.Close render={<Button>Done</Button>} /></Drawer.Footer>\n </Drawer.Content>\n</Drawer.Root>",
159
+ "language": "tsx"
160
+ }
161
+ ],
162
+ "status": "todo-docs",
163
+ "url": "/docs/components/drawer",
164
+ "mdUrl": "/docs/components/drawer.md",
165
+ "jsonUrl": "/r/components/drawer.json",
166
+ "specimens": [
167
+ {
168
+ "title": "Drawer",
169
+ "group": "overlays",
170
+ "components": [
171
+ "Drawer"
172
+ ],
173
+ "code": "<Specimens>\n <Specimen label=\"bottom\">\n <Drawer.Root>\n <Drawer.Trigger render={<Button>Open drawer</Button>} />\n <Drawer.Content>\n <Drawer.Title>Quick patch</Drawer.Title>\n <Drawer.Description>The next free block on universe 1.</Drawer.Description>\n <Drawer.Footer>\n <Drawer.Close render={<Button>Cancel</Button>} />\n <Drawer.Close render={<Button variant=\"primary\">Patch</Button>} />\n </Drawer.Footer>\n </Drawer.Content>\n </Drawer.Root>\n </Specimen>\n <Specimen label=\"no grab handle\">\n <Drawer.Root>\n <Drawer.Trigger render={<Button>Bare drawer</Button>} />\n <Drawer.Content grabHandle={false}>\n <Drawer.Title>Quick patch</Drawer.Title>\n <Drawer.Description>The next free block on universe 1.</Drawer.Description>\n <Drawer.Footer>\n <Drawer.Close render={<Button>Close</Button>} />\n </Drawer.Footer>\n </Drawer.Content>\n </Drawer.Root>\n </Specimen>\n</Specimens>",
174
+ "note": "The touch-first sheet: a grab handle and a swipe direction.",
175
+ "interaction": "drag the handle to dismiss; on a pointer device it behaves as an ordinary sheet."
176
+ }
177
+ ],
178
+ "todo": true
179
+ }