@cueplusplus/ui 0.13.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 (1016) hide show
  1. package/CHANGELOG.md +4028 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE.md +34 -0
  4. package/README.md +237 -0
  5. package/dist/agent-runtime/_glyphs.js +43 -0
  6. package/dist/agent-runtime/branch-picker.d.ts +45 -0
  7. package/dist/agent-runtime/branch-picker.js +87 -0
  8. package/dist/agent-runtime/index.d.ts +4 -0
  9. package/dist/agent-runtime/index.js +4 -0
  10. package/dist/agent-runtime/tool-call-card.d.ts +69 -0
  11. package/dist/agent-runtime/tool-call-card.js +187 -0
  12. package/dist/agent-runtime/use-agent-thread.d.ts +164 -0
  13. package/dist/agent-runtime/use-agent-thread.js +251 -0
  14. package/dist/brand/_chassis.d.ts +54 -0
  15. package/dist/brand/_chassis.js +81 -0
  16. package/dist/brand/_geometry.js +41 -0
  17. package/dist/brand/cue-logotype.d.ts +29 -0
  18. package/dist/brand/cue-logotype.js +60 -0
  19. package/dist/brand/cue-mark.d.ts +30 -0
  20. package/dist/brand/cue-mark.js +61 -0
  21. package/dist/brand/index.d.ts +5 -0
  22. package/dist/brand/plussie.d.ts +67 -0
  23. package/dist/brand/plussie.js +125 -0
  24. package/dist/charts/_token.js +39 -0
  25. package/dist/charts/container.d.ts +58 -0
  26. package/dist/charts/container.js +77 -0
  27. package/dist/charts/index.d.ts +5 -0
  28. package/dist/charts/index.js +5 -0
  29. package/dist/charts/ramps.d.ts +140 -0
  30. package/dist/charts/ramps.js +615 -0
  31. package/dist/charts/theme.d.ts +112 -0
  32. package/dist/charts/theme.js +165 -0
  33. package/dist/charts/tones.d.ts +111 -0
  34. package/dist/charts/tones.js +127 -0
  35. package/dist/chat/_glyphs.js +55 -0
  36. package/dist/chat/agent-color.d.ts +84 -0
  37. package/dist/chat/agent-color.js +101 -0
  38. package/dist/chat/agent-pile.d.ts +55 -0
  39. package/dist/chat/agent-pile.js +121 -0
  40. package/dist/chat/ask-box.d.ts +88 -0
  41. package/dist/chat/ask-box.js +341 -0
  42. package/dist/chat/composer.d.ts +66 -0
  43. package/dist/chat/composer.js +144 -0
  44. package/dist/chat/delegation-card.d.ts +60 -0
  45. package/dist/chat/delegation-card.js +129 -0
  46. package/dist/chat/index.d.ts +8 -0
  47. package/dist/chat/index.js +8 -0
  48. package/dist/chat/message-list.d.ts +45 -0
  49. package/dist/chat/message-list.js +141 -0
  50. package/dist/chat/message.d.ts +47 -0
  51. package/dist/chat/message.js +108 -0
  52. package/dist/chrome/_band.js +54 -0
  53. package/dist/chrome/_drag.js +59 -0
  54. package/dist/chrome/_edge-scroller.d.ts +45 -0
  55. package/dist/chrome/_edge-scroller.js +149 -0
  56. package/dist/chrome/_glyphs.js +119 -0
  57. package/dist/chrome/_status-bar-item.js +85 -0
  58. package/dist/chrome/_status-bar.d.ts +15 -0
  59. package/dist/chrome/_status-bar.js +171 -0
  60. package/dist/chrome/_tabs-scroll.d.ts +67 -0
  61. package/dist/chrome/_tabs-scroll.js +73 -0
  62. package/dist/chrome/_tree.d.ts +75 -0
  63. package/dist/chrome/_tree.js +49 -0
  64. package/dist/chrome/app-bar.d.ts +103 -0
  65. package/dist/chrome/app-bar.js +175 -0
  66. package/dist/chrome/app-shell.d.ts +243 -0
  67. package/dist/chrome/app-shell.js +266 -0
  68. package/dist/chrome/band.d.ts +106 -0
  69. package/dist/chrome/band.js +97 -0
  70. package/dist/chrome/empty-state.d.ts +37 -0
  71. package/dist/chrome/empty-state.js +57 -0
  72. package/dist/chrome/eyebrow.d.ts +29 -0
  73. package/dist/chrome/eyebrow.js +36 -0
  74. package/dist/chrome/footer.d.ts +88 -0
  75. package/dist/chrome/footer.js +83 -0
  76. package/dist/chrome/index.d.ts +24 -0
  77. package/dist/chrome/index.js +22 -0
  78. package/dist/chrome/inspector.d.ts +61 -0
  79. package/dist/chrome/inspector.js +121 -0
  80. package/dist/chrome/navigation-menu.d.ts +80 -0
  81. package/dist/chrome/navigation-menu.js +121 -0
  82. package/dist/chrome/page-shell.d.ts +38 -0
  83. package/dist/chrome/page-shell.js +76 -0
  84. package/dist/chrome/panel.d.ts +55 -0
  85. package/dist/chrome/panel.js +67 -0
  86. package/dist/chrome/row.d.ts +82 -0
  87. package/dist/chrome/row.js +106 -0
  88. package/dist/chrome/scroll-area.d.ts +39 -0
  89. package/dist/chrome/scroll-area.js +70 -0
  90. package/dist/chrome/section-header.d.ts +42 -0
  91. package/dist/chrome/section-header.js +79 -0
  92. package/dist/chrome/segmented-control.d.ts +77 -0
  93. package/dist/chrome/segmented-control.js +95 -0
  94. package/dist/chrome/status-bar.d.ts +129 -0
  95. package/dist/chrome/status-bar.js +120 -0
  96. package/dist/chrome/tabs.d.ts +80 -0
  97. package/dist/chrome/tabs.js +132 -0
  98. package/dist/chrome/title-bar.d.ts +47 -0
  99. package/dist/chrome/title-bar.js +43 -0
  100. package/dist/chrome/toolbar.d.ts +68 -0
  101. package/dist/chrome/toolbar.js +83 -0
  102. package/dist/chrome/tree.d.ts +98 -0
  103. package/dist/chrome/tree.js +248 -0
  104. package/dist/color/_checker.js +14 -0
  105. package/dist/color/_convert.d.ts +52 -0
  106. package/dist/color/_convert.js +66 -0
  107. package/dist/color/_glyphs.js +28 -0
  108. package/dist/color/_thumb.js +15 -0
  109. package/dist/color/_value.js +28 -0
  110. package/dist/color/color-area.d.ts +27 -0
  111. package/dist/color/color-area.js +40 -0
  112. package/dist/color/color-field.d.ts +32 -0
  113. package/dist/color/color-field.js +43 -0
  114. package/dist/color/color-picker.d.ts +71 -0
  115. package/dist/color/color-picker.js +178 -0
  116. package/dist/color/color-slider.d.ts +31 -0
  117. package/dist/color/color-slider.js +51 -0
  118. package/dist/color/color-swatch.d.ts +32 -0
  119. package/dist/color/color-swatch.js +44 -0
  120. package/dist/color/index.d.ts +7 -0
  121. package/dist/color/index.js +7 -0
  122. package/dist/configurator/_export.d.ts +78 -0
  123. package/dist/configurator/_export.js +302 -0
  124. package/dist/configurator/_glyphs.js +92 -0
  125. package/dist/configurator/_overrides.d.ts +266 -0
  126. package/dist/configurator/_overrides.js +541 -0
  127. package/dist/configurator/configurator.d.ts +71 -0
  128. package/dist/configurator/configurator.js +284 -0
  129. package/dist/configurator/export-dialog.d.ts +30 -0
  130. package/dist/configurator/export-dialog.js +121 -0
  131. package/dist/configurator/index.d.ts +8 -0
  132. package/dist/configurator/index.js +8 -0
  133. package/dist/configurator/panel-sections.d.ts +86 -0
  134. package/dist/configurator/panel-sections.js +352 -0
  135. package/dist/configurator/token-editor.d.ts +74 -0
  136. package/dist/configurator/token-editor.js +152 -0
  137. package/dist/configurator/use-zoom.d.ts +87 -0
  138. package/dist/configurator/use-zoom.js +113 -0
  139. package/dist/date/_glyphs.js +34 -0
  140. package/dist/date/_segments.js +101 -0
  141. package/dist/date/_trigger.js +31 -0
  142. package/dist/date/calendar.d.ts +25 -0
  143. package/dist/date/calendar.js +125 -0
  144. package/dist/date/date-field.d.ts +34 -0
  145. package/dist/date/date-field.js +41 -0
  146. package/dist/date/date-picker.d.ts +69 -0
  147. package/dist/date/date-picker.js +89 -0
  148. package/dist/date/date-range-picker.d.ts +65 -0
  149. package/dist/date/date-range-picker.js +92 -0
  150. package/dist/date/index.d.ts +6 -0
  151. package/dist/date/index.js +6 -0
  152. package/dist/date/time-field.d.ts +29 -0
  153. package/dist/date/time-field.js +36 -0
  154. package/dist/dmx/_ramp.d.ts +77 -0
  155. package/dist/dmx/_ramp.js +169 -0
  156. package/dist/dmx/_readout.js +53 -0
  157. package/dist/dmx/_universe.d.ts +105 -0
  158. package/dist/dmx/_universe.js +112 -0
  159. package/dist/dmx/channel-matrix.d.ts +81 -0
  160. package/dist/dmx/channel-matrix.js +285 -0
  161. package/dist/dmx/dmx-bar.d.ts +50 -0
  162. package/dist/dmx/dmx-bar.js +107 -0
  163. package/dist/dmx/dmx-strip.d.ts +41 -0
  164. package/dist/dmx/dmx-strip.js +196 -0
  165. package/dist/dmx/index.d.ts +7 -0
  166. package/dist/dmx/index.js +7 -0
  167. package/dist/dmx/universe-grid.d.ts +61 -0
  168. package/dist/dmx/universe-grid.js +182 -0
  169. package/dist/elements/activity-graph.d.ts +40 -0
  170. package/dist/elements/activity-graph.js +81 -0
  171. package/dist/elements/agent-card.d.ts +49 -0
  172. package/dist/elements/agent-card.js +91 -0
  173. package/dist/elements/agent-handoff.d.ts +24 -0
  174. package/dist/elements/agent-handoff.js +53 -0
  175. package/dist/elements/agent-mode-badge.d.ts +72 -0
  176. package/dist/elements/agent-mode-badge.js +110 -0
  177. package/dist/elements/agent-plan.d.ts +24 -0
  178. package/dist/elements/agent-plan.js +74 -0
  179. package/dist/elements/agent-status.d.ts +29 -0
  180. package/dist/elements/agent-status.js +46 -0
  181. package/dist/elements/agent-surface.d.ts +65 -0
  182. package/dist/elements/agent-surface.js +68 -0
  183. package/dist/elements/animated-number.d.ts +86 -0
  184. package/dist/elements/animated-number.js +118 -0
  185. package/dist/elements/approval-card.d.ts +40 -0
  186. package/dist/elements/approval-card.js +78 -0
  187. package/dist/elements/artifact-card.d.ts +30 -0
  188. package/dist/elements/artifact-card.js +58 -0
  189. package/dist/elements/background-inbox.d.ts +39 -0
  190. package/dist/elements/background-inbox.js +60 -0
  191. package/dist/elements/canvas-split.d.ts +77 -0
  192. package/dist/elements/canvas-split.js +138 -0
  193. package/dist/elements/chart.d.ts +41 -0
  194. package/dist/elements/chart.js +117 -0
  195. package/dist/elements/chat-panel.d.ts +46 -0
  196. package/dist/elements/chat-panel.js +104 -0
  197. package/dist/elements/checkpoint-history.d.ts +31 -0
  198. package/dist/elements/checkpoint-history.js +65 -0
  199. package/dist/elements/clamp.d.ts +90 -0
  200. package/dist/elements/clamp.js +109 -0
  201. package/dist/elements/code-diff.d.ts +42 -0
  202. package/dist/elements/code-diff.js +69 -0
  203. package/dist/elements/code-runner.d.ts +38 -0
  204. package/dist/elements/code-runner.js +84 -0
  205. package/dist/elements/command-palette.d.ts +48 -0
  206. package/dist/elements/command-palette.js +129 -0
  207. package/dist/elements/compaction-row.d.ts +63 -0
  208. package/dist/elements/compaction-row.js +110 -0
  209. package/dist/elements/comparison-card.d.ts +47 -0
  210. package/dist/elements/comparison-card.js +69 -0
  211. package/dist/elements/composer.d.ts +274 -0
  212. package/dist/elements/composer.js +505 -0
  213. package/dist/elements/computer-use.d.ts +40 -0
  214. package/dist/elements/computer-use.js +92 -0
  215. package/dist/elements/confidence-marker.d.ts +39 -0
  216. package/dist/elements/confidence-marker.js +64 -0
  217. package/dist/elements/connection-state.d.ts +29 -0
  218. package/dist/elements/connection-state.js +66 -0
  219. package/dist/elements/context-breakdown.d.ts +30 -0
  220. package/dist/elements/context-breakdown.js +86 -0
  221. package/dist/elements/context-usage.d.ts +99 -0
  222. package/dist/elements/context-usage.js +225 -0
  223. package/dist/elements/conversation-search.d.ts +48 -0
  224. package/dist/elements/conversation-search.js +88 -0
  225. package/dist/elements/cost-meter.d.ts +33 -0
  226. package/dist/elements/cost-meter.js +75 -0
  227. package/dist/elements/data-table.d.ts +31 -0
  228. package/dist/elements/data-table.js +67 -0
  229. package/dist/elements/day-separator.d.ts +34 -0
  230. package/dist/elements/day-separator.js +50 -0
  231. package/dist/elements/diagram.d.ts +34 -0
  232. package/dist/elements/diagram.js +75 -0
  233. package/dist/elements/document-reference.d.ts +37 -0
  234. package/dist/elements/document-reference.js +66 -0
  235. package/dist/elements/draft-restore.d.ts +27 -0
  236. package/dist/elements/draft-restore.js +54 -0
  237. package/dist/elements/edit-message.d.ts +36 -0
  238. package/dist/elements/edit-message.js +77 -0
  239. package/dist/elements/elements.css +459 -0
  240. package/dist/elements/elicitation-form.d.ts +48 -0
  241. package/dist/elements/elicitation-form.js +106 -0
  242. package/dist/elements/empty-state.d.ts +52 -0
  243. package/dist/elements/empty-state.js +98 -0
  244. package/dist/elements/end-of-turn-summary.d.ts +60 -0
  245. package/dist/elements/end-of-turn-summary.js +75 -0
  246. package/dist/elements/error-state.d.ts +29 -0
  247. package/dist/elements/error-state.js +55 -0
  248. package/dist/elements/feedback-dialog.d.ts +36 -0
  249. package/dist/elements/feedback-dialog.js +81 -0
  250. package/dist/elements/file-tree.d.ts +45 -0
  251. package/dist/elements/file-tree.js +84 -0
  252. package/dist/elements/flow-graph.d.ts +45 -0
  253. package/dist/elements/flow-graph.js +78 -0
  254. package/dist/elements/generative/chart.js +200 -0
  255. package/dist/elements/generative/faults.js +111 -0
  256. package/dist/elements/generative/icons.d.ts +41 -0
  257. package/dist/elements/generative/icons.js +190 -0
  258. package/dist/elements/generative/intrinsics.js +483 -0
  259. package/dist/elements/generative/spec.d.ts +110 -0
  260. package/dist/elements/generative/spec.js +366 -0
  261. package/dist/elements/generative.css +1145 -0
  262. package/dist/elements/generative.d.ts +144 -0
  263. package/dist/elements/generative.js +126 -0
  264. package/dist/elements/guardrail-notice.d.ts +29 -0
  265. package/dist/elements/guardrail-notice.js +63 -0
  266. package/dist/elements/image-generation.d.ts +18 -0
  267. package/dist/elements/image-generation.js +64 -0
  268. package/dist/elements/index.d.ts +116 -0
  269. package/dist/elements/index.js +115 -0
  270. package/dist/elements/inline-citation.d.ts +43 -0
  271. package/dist/elements/inline-citation.js +93 -0
  272. package/dist/elements/job-progress.d.ts +49 -0
  273. package/dist/elements/job-progress.js +74 -0
  274. package/dist/elements/launcher-bubble.d.ts +34 -0
  275. package/dist/elements/launcher-bubble.js +72 -0
  276. package/dist/elements/live-region-announcer.d.ts +130 -0
  277. package/dist/elements/live-region-announcer.js +230 -0
  278. package/dist/elements/loading-state.d.ts +27 -0
  279. package/dist/elements/loading-state.js +36 -0
  280. package/dist/elements/map-answer.d.ts +38 -0
  281. package/dist/elements/map-answer.js +93 -0
  282. package/dist/elements/markdown.d.ts +131 -0
  283. package/dist/elements/markdown.js +528 -0
  284. package/dist/elements/math-block.d.ts +51 -0
  285. package/dist/elements/math-block.js +70 -0
  286. package/dist/elements/mcp-server-panel.d.ts +41 -0
  287. package/dist/elements/mcp-server-panel.js +115 -0
  288. package/dist/elements/memory-chips.d.ts +30 -0
  289. package/dist/elements/memory-chips.js +43 -0
  290. package/dist/elements/message-actions.d.ts +38 -0
  291. package/dist/elements/message-actions.js +71 -0
  292. package/dist/elements/message-attachment.d.ts +48 -0
  293. package/dist/elements/message-attachment.js +63 -0
  294. package/dist/elements/message-branches.d.ts +25 -0
  295. package/dist/elements/message-branches.js +65 -0
  296. package/dist/elements/message-pair.d.ts +33 -0
  297. package/dist/elements/message-pair.js +65 -0
  298. package/dist/elements/message-queue.d.ts +31 -0
  299. package/dist/elements/message-queue.js +80 -0
  300. package/dist/elements/message-timing.d.ts +33 -0
  301. package/dist/elements/message-timing.js +37 -0
  302. package/dist/elements/mobile-composer.d.ts +44 -0
  303. package/dist/elements/mobile-composer.js +88 -0
  304. package/dist/elements/model-picker.d.ts +38 -0
  305. package/dist/elements/model-picker.js +69 -0
  306. package/dist/elements/number-ticker.d.ts +18 -0
  307. package/dist/elements/number-ticker.js +47 -0
  308. package/dist/elements/onboarding.d.ts +30 -0
  309. package/dist/elements/onboarding.js +75 -0
  310. package/dist/elements/permission-grant.d.ts +35 -0
  311. package/dist/elements/permission-grant.js +86 -0
  312. package/dist/elements/permission-scopes.d.ts +215 -0
  313. package/dist/elements/permission-scopes.js +249 -0
  314. package/dist/elements/prompt-library.d.ts +43 -0
  315. package/dist/elements/prompt-library.js +117 -0
  316. package/dist/elements/queue-dock.d.ts +101 -0
  317. package/dist/elements/queue-dock.js +132 -0
  318. package/dist/elements/quota-banner.d.ts +26 -0
  319. package/dist/elements/quota-banner.js +66 -0
  320. package/dist/elements/quote-reply.d.ts +44 -0
  321. package/dist/elements/quote-reply.js +79 -0
  322. package/dist/elements/range.d.ts +29 -0
  323. package/dist/elements/range.js +45 -0
  324. package/dist/elements/read-aloud.d.ts +45 -0
  325. package/dist/elements/read-aloud.js +75 -0
  326. package/dist/elements/reasoning-effort.d.ts +36 -0
  327. package/dist/elements/reasoning-effort.js +67 -0
  328. package/dist/elements/reasoning-panel.d.ts +46 -0
  329. package/dist/elements/reasoning-panel.js +75 -0
  330. package/dist/elements/recommendation-card.d.ts +45 -0
  331. package/dist/elements/recommendation-card.js +83 -0
  332. package/dist/elements/regenerate-menu.d.ts +45 -0
  333. package/dist/elements/regenerate-menu.js +51 -0
  334. package/dist/elements/replay.d.ts +217 -0
  335. package/dist/elements/replay.js +498 -0
  336. package/dist/elements/research-report.d.ts +38 -0
  337. package/dist/elements/research-report.js +69 -0
  338. package/dist/elements/retrieval-chunks.d.ts +43 -0
  339. package/dist/elements/retrieval-chunks.js +81 -0
  340. package/dist/elements/revert-dock.d.ts +159 -0
  341. package/dist/elements/revert-dock.js +327 -0
  342. package/dist/elements/reviewable-diff.d.ts +45 -0
  343. package/dist/elements/reviewable-diff.js +110 -0
  344. package/dist/elements/risk-badge.d.ts +52 -0
  345. package/dist/elements/risk-badge.js +91 -0
  346. package/dist/elements/schedule-card.d.ts +42 -0
  347. package/dist/elements/schedule-card.js +90 -0
  348. package/dist/elements/score-breakdown.d.ts +47 -0
  349. package/dist/elements/score-breakdown.js +82 -0
  350. package/dist/elements/scroll-anchor.d.ts +32 -0
  351. package/dist/elements/scroll-anchor.js +123 -0
  352. package/dist/elements/settings-panel.d.ts +52 -0
  353. package/dist/elements/settings-panel.js +107 -0
  354. package/dist/elements/shared-conversation.d.ts +39 -0
  355. package/dist/elements/shared-conversation.js +68 -0
  356. package/dist/elements/sources.d.ts +33 -0
  357. package/dist/elements/sources.js +61 -0
  358. package/dist/elements/speaker-identity.d.ts +32 -0
  359. package/dist/elements/speaker-identity.js +51 -0
  360. package/dist/elements/spec-sheet.d.ts +31 -0
  361. package/dist/elements/spec-sheet.js +45 -0
  362. package/dist/elements/stopped-run.d.ts +22 -0
  363. package/dist/elements/stopped-run.js +50 -0
  364. package/dist/elements/streaming-text.d.ts +31 -0
  365. package/dist/elements/streaming-text.js +45 -0
  366. package/dist/elements/subagent-list.d.ts +37 -0
  367. package/dist/elements/subagent-list.js +79 -0
  368. package/dist/elements/suggestions.d.ts +30 -0
  369. package/dist/elements/suggestions.js +36 -0
  370. package/dist/elements/surfaces.d.ts +85 -0
  371. package/dist/elements/surfaces.js +108 -0
  372. package/dist/elements/tail-status.d.ts +131 -0
  373. package/dist/elements/tail-status.js +94 -0
  374. package/dist/elements/terminal-block.d.ts +29 -0
  375. package/dist/elements/terminal-block.js +54 -0
  376. package/dist/elements/thinking-indicator.d.ts +18 -0
  377. package/dist/elements/thinking-indicator.js +36 -0
  378. package/dist/elements/thread-list.d.ts +35 -0
  379. package/dist/elements/thread-list.js +68 -0
  380. package/dist/elements/thread-search.d.ts +42 -0
  381. package/dist/elements/thread-search.js +99 -0
  382. package/dist/elements/timeline.d.ts +37 -0
  383. package/dist/elements/timeline.js +46 -0
  384. package/dist/elements/todo-list.d.ts +42 -0
  385. package/dist/elements/todo-list.js +59 -0
  386. package/dist/elements/tool-call.d.ts +41 -0
  387. package/dist/elements/tool-call.js +85 -0
  388. package/dist/elements/tool-error.d.ts +39 -0
  389. package/dist/elements/tool-error.js +76 -0
  390. package/dist/elements/tool-group.d.ts +45 -0
  391. package/dist/elements/tool-group.js +71 -0
  392. package/dist/elements/tool-timeline.d.ts +65 -0
  393. package/dist/elements/tool-timeline.js +88 -0
  394. package/dist/elements/trace-waterfall.d.ts +37 -0
  395. package/dist/elements/trace-waterfall.js +69 -0
  396. package/dist/elements/transcript-rules.d.ts +67 -0
  397. package/dist/elements/transcript-rules.js +95 -0
  398. package/dist/elements/turn-footer.d.ts +74 -0
  399. package/dist/elements/turn-footer.js +101 -0
  400. package/dist/elements/typing-indicator.d.ts +16 -0
  401. package/dist/elements/typing-indicator.js +51 -0
  402. package/dist/elements/verdict-row.d.ts +89 -0
  403. package/dist/elements/verdict-row.js +150 -0
  404. package/dist/elements/vocabulary.d.ts +612 -0
  405. package/dist/elements/vocabulary.js +611 -0
  406. package/dist/elements/voice-conversation.d.ts +49 -0
  407. package/dist/elements/voice-conversation.js +123 -0
  408. package/dist/elements/web-preview.d.ts +32 -0
  409. package/dist/elements/web-preview.js +66 -0
  410. package/dist/elements/web-search.d.ts +37 -0
  411. package/dist/elements/web-search.js +66 -0
  412. package/dist/elements/work-collapse.d.ts +103 -0
  413. package/dist/elements/work-collapse.js +131 -0
  414. package/dist/flow/_frame.d.ts +52 -0
  415. package/dist/flow/_frame.js +38 -0
  416. package/dist/flow/controls.d.ts +41 -0
  417. package/dist/flow/controls.js +53 -0
  418. package/dist/flow/flow.css +121 -0
  419. package/dist/flow/handles.d.ts +40 -0
  420. package/dist/flow/handles.js +61 -0
  421. package/dist/flow/index.d.ts +7 -0
  422. package/dist/flow/index.js +7 -0
  423. package/dist/flow/node-card.d.ts +71 -0
  424. package/dist/flow/node-card.js +102 -0
  425. package/dist/flow/signal-edge.d.ts +60 -0
  426. package/dist/flow/signal-edge.js +108 -0
  427. package/dist/flow/use-flow-theme.d.ts +69 -0
  428. package/dist/flow/use-flow-theme.js +109 -0
  429. package/dist/forms/_chassis.d.ts +164 -0
  430. package/dist/forms/_chassis.js +159 -0
  431. package/dist/forms/_glyphs.js +143 -0
  432. package/dist/forms/_listbox.js +55 -0
  433. package/dist/forms/autocomplete.d.ts +61 -0
  434. package/dist/forms/autocomplete.js +88 -0
  435. package/dist/forms/button-group.d.ts +47 -0
  436. package/dist/forms/button-group.js +52 -0
  437. package/dist/forms/checkbox.d.ts +51 -0
  438. package/dist/forms/checkbox.js +98 -0
  439. package/dist/forms/combobox.d.ts +73 -0
  440. package/dist/forms/combobox.js +108 -0
  441. package/dist/forms/env-var-input.d.ts +74 -0
  442. package/dist/forms/env-var-input.js +116 -0
  443. package/dist/forms/field.d.ts +89 -0
  444. package/dist/forms/field.js +102 -0
  445. package/dist/forms/file-upload.d.ts +113 -0
  446. package/dist/forms/file-upload.js +232 -0
  447. package/dist/forms/index.d.ts +26 -0
  448. package/dist/forms/index.js +26 -0
  449. package/dist/forms/input-group.d.ts +36 -0
  450. package/dist/forms/input-group.js +59 -0
  451. package/dist/forms/input.d.ts +45 -0
  452. package/dist/forms/input.js +36 -0
  453. package/dist/forms/multi-select.d.ts +62 -0
  454. package/dist/forms/multi-select.js +107 -0
  455. package/dist/forms/number-field.d.ts +39 -0
  456. package/dist/forms/number-field.js +65 -0
  457. package/dist/forms/otp-field.d.ts +54 -0
  458. package/dist/forms/otp-field.js +59 -0
  459. package/dist/forms/password-input.d.ts +46 -0
  460. package/dist/forms/password-input.js +62 -0
  461. package/dist/forms/radio-group.d.ts +50 -0
  462. package/dist/forms/radio-group.js +64 -0
  463. package/dist/forms/rating.d.ts +69 -0
  464. package/dist/forms/rating.js +103 -0
  465. package/dist/forms/scrub-input.d.ts +81 -0
  466. package/dist/forms/scrub-input.js +249 -0
  467. package/dist/forms/search-input.d.ts +54 -0
  468. package/dist/forms/search-input.js +112 -0
  469. package/dist/forms/select.d.ts +75 -0
  470. package/dist/forms/select.js +91 -0
  471. package/dist/forms/slider.d.ts +44 -0
  472. package/dist/forms/slider.js +65 -0
  473. package/dist/forms/switch.d.ts +36 -0
  474. package/dist/forms/switch.js +71 -0
  475. package/dist/forms/tags-input.d.ts +69 -0
  476. package/dist/forms/tags-input.js +148 -0
  477. package/dist/forms/textarea.d.ts +39 -0
  478. package/dist/forms/textarea.js +37 -0
  479. package/dist/forms/toggle-group.d.ts +41 -0
  480. package/dist/forms/toggle-group.js +56 -0
  481. package/dist/forms/toggle.d.ts +47 -0
  482. package/dist/forms/toggle.js +100 -0
  483. package/dist/icons/containers.d.ts +89 -0
  484. package/dist/icons/containers.js +295 -0
  485. package/dist/icons/index.d.ts +2 -0
  486. package/dist/index.d.ts +138 -0
  487. package/dist/index.js +124 -0
  488. package/dist/instruments/_ansi.js +116 -0
  489. package/dist/instruments/_data-row.d.ts +68 -0
  490. package/dist/instruments/_data-row.js +139 -0
  491. package/dist/instruments/_glyphs.js +90 -0
  492. package/dist/instruments/_ledger-disclosure.js +103 -0
  493. package/dist/instruments/_ledger.d.ts +21 -0
  494. package/dist/instruments/_ledger.js +5 -0
  495. package/dist/instruments/_motion.js +56 -0
  496. package/dist/instruments/_rem.js +21 -0
  497. package/dist/instruments/app-window-frame.d.ts +48 -0
  498. package/dist/instruments/app-window-frame.js +76 -0
  499. package/dist/instruments/code-block.d.ts +35 -0
  500. package/dist/instruments/code-block.js +173 -0
  501. package/dist/instruments/copy-button.d.ts +41 -0
  502. package/dist/instruments/copy-button.js +112 -0
  503. package/dist/instruments/data-row.d.ts +94 -0
  504. package/dist/instruments/data-row.js +151 -0
  505. package/dist/instruments/data-table.d.ts +168 -0
  506. package/dist/instruments/data-table.js +212 -0
  507. package/dist/instruments/data-tree.d.ts +126 -0
  508. package/dist/instruments/data-tree.js +303 -0
  509. package/dist/instruments/group-bar.d.ts +63 -0
  510. package/dist/instruments/group-bar.js +122 -0
  511. package/dist/instruments/index.d.ts +18 -0
  512. package/dist/instruments/index.js +18 -0
  513. package/dist/instruments/ledger.d.ts +204 -0
  514. package/dist/instruments/ledger.js +204 -0
  515. package/dist/instruments/log-viewer.d.ts +74 -0
  516. package/dist/instruments/log-viewer.js +215 -0
  517. package/dist/instruments/meter.d.ts +81 -0
  518. package/dist/instruments/meter.js +96 -0
  519. package/dist/instruments/progress.d.ts +61 -0
  520. package/dist/instruments/progress.js +79 -0
  521. package/dist/instruments/seam-grid.d.ts +66 -0
  522. package/dist/instruments/seam-grid.js +78 -0
  523. package/dist/instruments/sparkline.d.ts +39 -0
  524. package/dist/instruments/sparkline.js +85 -0
  525. package/dist/instruments/stat.d.ts +35 -0
  526. package/dist/instruments/stat.js +59 -0
  527. package/dist/instruments/table.d.ts +170 -0
  528. package/dist/instruments/table.js +237 -0
  529. package/dist/instruments/terminal-frame.d.ts +89 -0
  530. package/dist/instruments/terminal-frame.js +256 -0
  531. package/dist/instruments/two-step-button.d.ts +47 -0
  532. package/dist/instruments/two-step-button.js +166 -0
  533. package/dist/instruments/usage-chart.d.ts +55 -0
  534. package/dist/instruments/usage-chart.js +235 -0
  535. package/dist/layout/_collapse.js +46 -0
  536. package/dist/layout/_glyphs.js +45 -0
  537. package/dist/layout/_ground.d.ts +22 -0
  538. package/dist/layout/_ground.js +9 -0
  539. package/dist/layout/accordion.d.ts +52 -0
  540. package/dist/layout/accordion.js +81 -0
  541. package/dist/layout/bento.d.ts +144 -0
  542. package/dist/layout/bento.js +266 -0
  543. package/dist/layout/breadcrumb.d.ts +35 -0
  544. package/dist/layout/breadcrumb.js +67 -0
  545. package/dist/layout/card.d.ts +51 -0
  546. package/dist/layout/card.js +76 -0
  547. package/dist/layout/carousel.d.ts +96 -0
  548. package/dist/layout/carousel.js +211 -0
  549. package/dist/layout/collapsible.d.ts +74 -0
  550. package/dist/layout/collapsible.js +126 -0
  551. package/dist/layout/container.d.ts +27 -0
  552. package/dist/layout/container.js +43 -0
  553. package/dist/layout/description-list.d.ts +24 -0
  554. package/dist/layout/description-list.js +37 -0
  555. package/dist/layout/frames.d.ts +70 -0
  556. package/dist/layout/frames.js +298 -0
  557. package/dist/layout/grid.d.ts +40 -0
  558. package/dist/layout/grid.js +48 -0
  559. package/dist/layout/index.d.ts +19 -0
  560. package/dist/layout/index.js +18 -0
  561. package/dist/layout/item.d.ts +65 -0
  562. package/dist/layout/item.js +100 -0
  563. package/dist/layout/link.d.ts +48 -0
  564. package/dist/layout/link.js +63 -0
  565. package/dist/layout/pagination.d.ts +54 -0
  566. package/dist/layout/pagination.js +121 -0
  567. package/dist/layout/preview.d.ts +177 -0
  568. package/dist/layout/preview.js +628 -0
  569. package/dist/layout/resizable.d.ts +38 -0
  570. package/dist/layout/resizable.js +68 -0
  571. package/dist/layout/sidebar.d.ts +105 -0
  572. package/dist/layout/sidebar.js +158 -0
  573. package/dist/layout/stack.d.ts +46 -0
  574. package/dist/layout/stack.js +62 -0
  575. package/dist/layout/stepper.d.ts +49 -0
  576. package/dist/layout/stepper.js +81 -0
  577. package/dist/layout/timeline.d.ts +43 -0
  578. package/dist/layout/timeline.js +63 -0
  579. package/dist/lib/aria-class.js +24 -0
  580. package/dist/lib/cn.js +18 -0
  581. package/dist/lib/compose.js +38 -0
  582. package/dist/lib/cva.d.ts +18 -0
  583. package/dist/lib/cva.js +65 -0
  584. package/dist/midi/_notes.d.ts +101 -0
  585. package/dist/midi/_notes.js +183 -0
  586. package/dist/midi/_ruler.d.ts +100 -0
  587. package/dist/midi/_ruler.js +105 -0
  588. package/dist/midi/_time.d.ts +107 -0
  589. package/dist/midi/_time.js +130 -0
  590. package/dist/midi/index.d.ts +9 -0
  591. package/dist/midi/index.js +9 -0
  592. package/dist/midi/musical-time-input.d.ts +48 -0
  593. package/dist/midi/musical-time-input.js +154 -0
  594. package/dist/midi/piano-keyboard.d.ts +50 -0
  595. package/dist/midi/piano-keyboard.js +197 -0
  596. package/dist/midi/spectrum-visualizer.d.ts +65 -0
  597. package/dist/midi/spectrum-visualizer.js +213 -0
  598. package/dist/midi/threshold-rail.d.ts +72 -0
  599. package/dist/midi/threshold-rail.js +214 -0
  600. package/dist/midi/timeline-ruler.d.ts +83 -0
  601. package/dist/midi/timeline-ruler.js +152 -0
  602. package/dist/overlays/_debounce.js +34 -0
  603. package/dist/overlays/_glyphs.js +59 -0
  604. package/dist/overlays/_surface.d.ts +70 -0
  605. package/dist/overlays/_surface.js +70 -0
  606. package/dist/overlays/_wheel.js +42 -0
  607. package/dist/overlays/alert-dialog.d.ts +67 -0
  608. package/dist/overlays/alert-dialog.js +117 -0
  609. package/dist/overlays/command-palette.d.ts +93 -0
  610. package/dist/overlays/command-palette.js +193 -0
  611. package/dist/overlays/context-menu.d.ts +64 -0
  612. package/dist/overlays/context-menu.js +78 -0
  613. package/dist/overlays/dialog.d.ts +72 -0
  614. package/dist/overlays/dialog.js +124 -0
  615. package/dist/overlays/drawer.d.ts +75 -0
  616. package/dist/overlays/drawer.js +151 -0
  617. package/dist/overlays/dropdown-menu.d.ts +79 -0
  618. package/dist/overlays/dropdown-menu.js +156 -0
  619. package/dist/overlays/hover-card.d.ts +58 -0
  620. package/dist/overlays/hover-card.js +91 -0
  621. package/dist/overlays/index.d.ts +15 -0
  622. package/dist/overlays/index.js +15 -0
  623. package/dist/overlays/info-tip.d.ts +41 -0
  624. package/dist/overlays/info-tip.js +45 -0
  625. package/dist/overlays/menubar.d.ts +72 -0
  626. package/dist/overlays/menubar.js +100 -0
  627. package/dist/overlays/popover.d.ts +66 -0
  628. package/dist/overlays/popover.js +114 -0
  629. package/dist/overlays/sheet.d.ts +78 -0
  630. package/dist/overlays/sheet.js +131 -0
  631. package/dist/overlays/toast.d.ts +106 -0
  632. package/dist/overlays/toast.js +146 -0
  633. package/dist/overlays/tooltip.d.ts +57 -0
  634. package/dist/overlays/tooltip.js +95 -0
  635. package/dist/primitives/avatar.d.ts +51 -0
  636. package/dist/primitives/avatar.js +93 -0
  637. package/dist/primitives/button.d.ts +58 -0
  638. package/dist/primitives/button.js +104 -0
  639. package/dist/primitives/chip.d.ts +73 -0
  640. package/dist/primitives/chip.js +238 -0
  641. package/dist/primitives/icon-button.d.ts +41 -0
  642. package/dist/primitives/icon-button.js +59 -0
  643. package/dist/primitives/index.d.ts +10 -0
  644. package/dist/primitives/index.js +10 -0
  645. package/dist/primitives/kbd.d.ts +17 -0
  646. package/dist/primitives/kbd.js +24 -0
  647. package/dist/primitives/separator.d.ts +25 -0
  648. package/dist/primitives/separator.js +30 -0
  649. package/dist/primitives/skeleton.d.ts +20 -0
  650. package/dist/primitives/skeleton.js +27 -0
  651. package/dist/primitives/spinner.d.ts +26 -0
  652. package/dist/primitives/spinner.js +31 -0
  653. package/dist/primitives/status-dot.d.ts +51 -0
  654. package/dist/primitives/status-dot.js +57 -0
  655. package/dist/styles.css +97 -0
  656. package/dist/system/agent-skin.d.ts +27 -0
  657. package/dist/system/agent-skin.js +20 -0
  658. package/dist/system/density.d.ts +73 -0
  659. package/dist/system/density.js +111 -0
  660. package/dist/system/index.d.ts +12 -0
  661. package/dist/system/index.js +10 -0
  662. package/dist/system/overrides.d.ts +80 -0
  663. package/dist/system/overrides.js +277 -0
  664. package/dist/system/portal.d.ts +56 -0
  665. package/dist/system/portal.js +193 -0
  666. package/dist/system/prepaint.d.ts +134 -0
  667. package/dist/system/prepaint.js +120 -0
  668. package/dist/system/theme-provider.d.ts +290 -0
  669. package/dist/system/theme-provider.js +543 -0
  670. package/dist/system/theme-registry.d.ts +53 -0
  671. package/dist/system/theme-registry.js +66 -0
  672. package/dist/system/use-density.d.ts +50 -0
  673. package/dist/system/use-density.js +232 -0
  674. package/dist/system/use-isomorphic-layout-effect.js +33 -0
  675. package/dist/system/use-theme.d.ts +30 -0
  676. package/dist/system/use-theme.js +36 -0
  677. package/dist/system/vocabulary.d.ts +16 -0
  678. package/dist/system/vocabulary.js +125 -0
  679. package/dist/theming/contrast.d.ts +2 -0
  680. package/dist/theming/contrast.js +2 -0
  681. package/dist/theming/create-theme.d.ts +195 -0
  682. package/dist/theming/create-theme.js +524 -0
  683. package/dist/theming/index.d.ts +4 -0
  684. package/dist/theming/index.js +4 -0
  685. package/dist/theming/serialize.d.ts +167 -0
  686. package/dist/theming/serialize.js +241 -0
  687. package/manifest/components/accordion.json +173 -0
  688. package/manifest/components/activity-graph.json +104 -0
  689. package/manifest/components/agent-card.json +150 -0
  690. package/manifest/components/agent-handoff.json +104 -0
  691. package/manifest/components/agent-mode-badge.json +102 -0
  692. package/manifest/components/agent-pile.json +147 -0
  693. package/manifest/components/agent-plan.json +74 -0
  694. package/manifest/components/agent-status.json +87 -0
  695. package/manifest/components/agent-surface.json +93 -0
  696. package/manifest/components/alert-dialog.json +215 -0
  697. package/manifest/components/animated-number.json +75 -0
  698. package/manifest/components/app-bar.json +297 -0
  699. package/manifest/components/app-shell.json +526 -0
  700. package/manifest/components/app-window-frame.json +124 -0
  701. package/manifest/components/approval-card.json +136 -0
  702. package/manifest/components/artifact-card.json +93 -0
  703. package/manifest/components/ask-box.json +288 -0
  704. package/manifest/components/audience-icon.json +46 -0
  705. package/manifest/components/autocomplete.json +262 -0
  706. package/manifest/components/avatar-group.json +83 -0
  707. package/manifest/components/avatar.json +113 -0
  708. package/manifest/components/background-inbox.json +79 -0
  709. package/manifest/components/band.json +104 -0
  710. package/manifest/components/bento.json +306 -0
  711. package/manifest/components/branch-picker.json +146 -0
  712. package/manifest/components/breadcrumb.json +85 -0
  713. package/manifest/components/button-group.json +91 -0
  714. package/manifest/components/button.json +163 -0
  715. package/manifest/components/calendar.json +65 -0
  716. package/manifest/components/canvas-split-body.json +66 -0
  717. package/manifest/components/canvas-split-document.json +55 -0
  718. package/manifest/components/canvas-split-header.json +97 -0
  719. package/manifest/components/canvas-split-line.json +66 -0
  720. package/manifest/components/canvas-split-message.json +70 -0
  721. package/manifest/components/canvas-split-thread.json +55 -0
  722. package/manifest/components/canvas-split.json +61 -0
  723. package/manifest/components/card.json +152 -0
  724. package/manifest/components/carousel.json +242 -0
  725. package/manifest/components/catalogue-icon.json +46 -0
  726. package/manifest/components/channel-beta-icon.json +46 -0
  727. package/manifest/components/channel-matrix.json +239 -0
  728. package/manifest/components/channel-released-icon.json +46 -0
  729. package/manifest/components/chart-container.json +127 -0
  730. package/manifest/components/chart-ramp.json +82 -0
  731. package/manifest/components/chart-swatch.json +72 -0
  732. package/manifest/components/chart-tooltip-content.json +140 -0
  733. package/manifest/components/chart.json +117 -0
  734. package/manifest/components/chat-empty-state.json +55 -0
  735. package/manifest/components/chat-panel-assistant-message.json +52 -0
  736. package/manifest/components/chat-panel-composer.json +74 -0
  737. package/manifest/components/chat-panel-messages.json +52 -0
  738. package/manifest/components/chat-panel-typing.json +52 -0
  739. package/manifest/components/chat-panel-user-message.json +52 -0
  740. package/manifest/components/chat-panel.json +58 -0
  741. package/manifest/components/checkbox-group.json +70 -0
  742. package/manifest/components/checkbox.json +106 -0
  743. package/manifest/components/checkpoint-history.json +91 -0
  744. package/manifest/components/chip.json +174 -0
  745. package/manifest/components/clamp.json +125 -0
  746. package/manifest/components/cli-tool-icon.json +46 -0
  747. package/manifest/components/code-block.json +107 -0
  748. package/manifest/components/code-diff.json +104 -0
  749. package/manifest/components/code-runner.json +124 -0
  750. package/manifest/components/collapsible.json +133 -0
  751. package/manifest/components/color-area.json +62 -0
  752. package/manifest/components/color-field.json +91 -0
  753. package/manifest/components/color-picker.json +235 -0
  754. package/manifest/components/color-slider.json +84 -0
  755. package/manifest/components/color-swatch.json +79 -0
  756. package/manifest/components/colors-section.json +70 -0
  757. package/manifest/components/combobox.json +265 -0
  758. package/manifest/components/command-palette.json +222 -0
  759. package/manifest/components/compaction-row.json +128 -0
  760. package/manifest/components/comparison-card.json +98 -0
  761. package/manifest/components/composer-actions.json +65 -0
  762. package/manifest/components/composer-attach-button.json +65 -0
  763. package/manifest/components/composer-attachment-chip.json +83 -0
  764. package/manifest/components/composer-attachments.json +60 -0
  765. package/manifest/components/composer-bar.json +76 -0
  766. package/manifest/components/composer-command-item.json +85 -0
  767. package/manifest/components/composer-context.json +71 -0
  768. package/manifest/components/composer-input.json +77 -0
  769. package/manifest/components/composer-menu-item.json +75 -0
  770. package/manifest/components/composer-menu.json +89 -0
  771. package/manifest/components/composer-model-item.json +82 -0
  772. package/manifest/components/composer-model-trigger.json +81 -0
  773. package/manifest/components/composer-person-item.json +86 -0
  774. package/manifest/components/composer-send.json +86 -0
  775. package/manifest/components/composer-toolbar.json +65 -0
  776. package/manifest/components/composer-voice-button.json +71 -0
  777. package/manifest/components/composer-voice.json +81 -0
  778. package/manifest/components/composer.json +238 -0
  779. package/manifest/components/computer-use.json +98 -0
  780. package/manifest/components/confidence-marker.json +86 -0
  781. package/manifest/components/connection-state.json +103 -0
  782. package/manifest/components/container.json +75 -0
  783. package/manifest/components/context-breakdown.json +72 -0
  784. package/manifest/components/context-menu.json +134 -0
  785. package/manifest/components/context-usage.json +98 -0
  786. package/manifest/components/conversation-search.json +111 -0
  787. package/manifest/components/copy-button.json +118 -0
  788. package/manifest/components/cost-meter.json +84 -0
  789. package/manifest/components/cue-logotype.json +110 -0
  790. package/manifest/components/cue-mark.json +111 -0
  791. package/manifest/components/cue-portal-frame.json +65 -0
  792. package/manifest/components/data-row.json +222 -0
  793. package/manifest/components/data-table-pagination.json +97 -0
  794. package/manifest/components/data-table-toolbar.json +127 -0
  795. package/manifest/components/data-tree.json +185 -0
  796. package/manifest/components/date-field.json +93 -0
  797. package/manifest/components/date-picker.json +255 -0
  798. package/manifest/components/date-range-picker.json +255 -0
  799. package/manifest/components/day-separator.json +63 -0
  800. package/manifest/components/delegation-card.json +196 -0
  801. package/manifest/components/density.json +93 -0
  802. package/manifest/components/description-list.json +91 -0
  803. package/manifest/components/diagram.json +126 -0
  804. package/manifest/components/dialog.json +222 -0
  805. package/manifest/components/disclosure.json +134 -0
  806. package/manifest/components/dmx-bar.json +107 -0
  807. package/manifest/components/dmx-strip.json +117 -0
  808. package/manifest/components/document-reference.json +108 -0
  809. package/manifest/components/draft-restore.json +96 -0
  810. package/manifest/components/drawer.json +204 -0
  811. package/manifest/components/dropdown-menu.json +275 -0
  812. package/manifest/components/edit-message.json +131 -0
  813. package/manifest/components/elements-command-palette.json +122 -0
  814. package/manifest/components/elements-composer.json +71 -0
  815. package/manifest/components/elements-data-table.json +75 -0
  816. package/manifest/components/elements-timeline.json +77 -0
  817. package/manifest/components/elicitation-form.json +130 -0
  818. package/manifest/components/empty-state-composer.json +71 -0
  819. package/manifest/components/empty-state-greeting.json +49 -0
  820. package/manifest/components/empty-state-suggestion.json +60 -0
  821. package/manifest/components/empty-state-suggestions.json +49 -0
  822. package/manifest/components/empty-state.json +111 -0
  823. package/manifest/components/end-of-turn-summary.json +89 -0
  824. package/manifest/components/env-var-input.json +194 -0
  825. package/manifest/components/error-state.json +93 -0
  826. package/manifest/components/export-dialog.json +101 -0
  827. package/manifest/components/eyebrow.json +59 -0
  828. package/manifest/components/feedback-dialog.json +133 -0
  829. package/manifest/components/field-description.json +66 -0
  830. package/manifest/components/field-error.json +87 -0
  831. package/manifest/components/field-label.json +66 -0
  832. package/manifest/components/field.json +82 -0
  833. package/manifest/components/file-tree.json +96 -0
  834. package/manifest/components/file-upload.json +204 -0
  835. package/manifest/components/flow-background.json +50 -0
  836. package/manifest/components/flow-controls.json +50 -0
  837. package/manifest/components/flow-graph.json +86 -0
  838. package/manifest/components/folder-icon.json +46 -0
  839. package/manifest/components/footer.json +133 -0
  840. package/manifest/components/frac.json +68 -0
  841. package/manifest/components/frames.json +210 -0
  842. package/manifest/components/generation-loader.json +78 -0
  843. package/manifest/components/generative-ui.json +125 -0
  844. package/manifest/components/grid.json +132 -0
  845. package/manifest/components/group-bar.json +122 -0
  846. package/manifest/components/guardrail-notice.json +109 -0
  847. package/manifest/components/hover-card.json +189 -0
  848. package/manifest/components/icon-button.json +106 -0
  849. package/manifest/components/image-generation.json +73 -0
  850. package/manifest/components/info-tip.json +133 -0
  851. package/manifest/components/inline-citation.json +90 -0
  852. package/manifest/components/input-group.json +112 -0
  853. package/manifest/components/input.json +121 -0
  854. package/manifest/components/inspector.json +199 -0
  855. package/manifest/components/item.json +163 -0
  856. package/manifest/components/job-progress.json +116 -0
  857. package/manifest/components/kbd.json +52 -0
  858. package/manifest/components/launcher-bubble.json +130 -0
  859. package/manifest/components/ledger.json +330 -0
  860. package/manifest/components/link.json +94 -0
  861. package/manifest/components/live-region-announcer.json +95 -0
  862. package/manifest/components/log-viewer.json +172 -0
  863. package/manifest/components/map-answer.json +97 -0
  864. package/manifest/components/markdown-text.json +126 -0
  865. package/manifest/components/math-block.json +84 -0
  866. package/manifest/components/mcp-server-icon.json +46 -0
  867. package/manifest/components/mcp-server-panel.json +102 -0
  868. package/manifest/components/memory-chips.json +73 -0
  869. package/manifest/components/menubar.json +184 -0
  870. package/manifest/components/message-actions.json +125 -0
  871. package/manifest/components/message-attachments.json +71 -0
  872. package/manifest/components/message-branches.json +83 -0
  873. package/manifest/components/message-list.json +121 -0
  874. package/manifest/components/message-pair.json +107 -0
  875. package/manifest/components/message-queue.json +85 -0
  876. package/manifest/components/message-timing.json +69 -0
  877. package/manifest/components/message.json +149 -0
  878. package/manifest/components/meter.json +150 -0
  879. package/manifest/components/mobile-composer.json +163 -0
  880. package/manifest/components/model-picker.json +87 -0
  881. package/manifest/components/multi-select.json +255 -0
  882. package/manifest/components/musical-time-input.json +141 -0
  883. package/manifest/components/navigation-menu.json +269 -0
  884. package/manifest/components/node-card.json +144 -0
  885. package/manifest/components/node-handle.json +84 -0
  886. package/manifest/components/number-field.json +131 -0
  887. package/manifest/components/number-ticker.json +67 -0
  888. package/manifest/components/onboarding.json +100 -0
  889. package/manifest/components/otp-field.json +163 -0
  890. package/manifest/components/page-shell.json +129 -0
  891. package/manifest/components/pagination.json +108 -0
  892. package/manifest/components/panel-header.json +89 -0
  893. package/manifest/components/panel.json +71 -0
  894. package/manifest/components/password-input.json +171 -0
  895. package/manifest/components/permission-grant.json +115 -0
  896. package/manifest/components/permission-scopes.json +184 -0
  897. package/manifest/components/piano-keyboard.json +149 -0
  898. package/manifest/components/plussie.json +140 -0
  899. package/manifest/components/popover.json +231 -0
  900. package/manifest/components/preset-section.json +80 -0
  901. package/manifest/components/preview.json +294 -0
  902. package/manifest/components/progress.json +114 -0
  903. package/manifest/components/prompt-library.json +122 -0
  904. package/manifest/components/queue-dock.json +139 -0
  905. package/manifest/components/quota-banner.json +113 -0
  906. package/manifest/components/quote-reply.json +129 -0
  907. package/manifest/components/radio-group.json +83 -0
  908. package/manifest/components/radio.json +94 -0
  909. package/manifest/components/rating.json +188 -0
  910. package/manifest/components/read-aloud.json +139 -0
  911. package/manifest/components/reasoning-effort.json +95 -0
  912. package/manifest/components/reasoning-panel.json +135 -0
  913. package/manifest/components/recommendation-card.json +133 -0
  914. package/manifest/components/regenerate-menu.json +107 -0
  915. package/manifest/components/replay-player.json +124 -0
  916. package/manifest/components/research-report.json +87 -0
  917. package/manifest/components/resizable.json +91 -0
  918. package/manifest/components/retrieval-chunks.json +98 -0
  919. package/manifest/components/revert-dock.json +197 -0
  920. package/manifest/components/reviewable-diff.json +113 -0
  921. package/manifest/components/risk-badge.json +89 -0
  922. package/manifest/components/row.json +122 -0
  923. package/manifest/components/schedule-card.json +121 -0
  924. package/manifest/components/score-breakdown.json +108 -0
  925. package/manifest/components/scroll-anchor.json +84 -0
  926. package/manifest/components/scroll-area.json +114 -0
  927. package/manifest/components/scrollable-tabs-list.json +91 -0
  928. package/manifest/components/scrub-input.json +268 -0
  929. package/manifest/components/seam-cell.json +91 -0
  930. package/manifest/components/seam-grid.json +84 -0
  931. package/manifest/components/seam-list.json +56 -0
  932. package/manifest/components/search-input.json +195 -0
  933. package/manifest/components/section-header.json +140 -0
  934. package/manifest/components/segmented-control.json +178 -0
  935. package/manifest/components/select.json +253 -0
  936. package/manifest/components/separator.json +56 -0
  937. package/manifest/components/settings-panel.json +152 -0
  938. package/manifest/components/shape-section.json +70 -0
  939. package/manifest/components/shared-conversation.json +107 -0
  940. package/manifest/components/sheet.json +210 -0
  941. package/manifest/components/shimmer-label.json +61 -0
  942. package/manifest/components/sidebar.json +245 -0
  943. package/manifest/components/signal-edge.json +56 -0
  944. package/manifest/components/skeleton.json +46 -0
  945. package/manifest/components/skill-icon.json +46 -0
  946. package/manifest/components/slider.json +106 -0
  947. package/manifest/components/sources.json +97 -0
  948. package/manifest/components/sparkline.json +89 -0
  949. package/manifest/components/speaker-identity.json +66 -0
  950. package/manifest/components/spec-sheet.json +93 -0
  951. package/manifest/components/spectrum-visualizer.json +147 -0
  952. package/manifest/components/spinner.json +71 -0
  953. package/manifest/components/stack-icon.json +46 -0
  954. package/manifest/components/stack.json +143 -0
  955. package/manifest/components/stacks-matrix-icon.json +46 -0
  956. package/manifest/components/stat.json +111 -0
  957. package/manifest/components/status-bar.json +233 -0
  958. package/manifest/components/status-dot.json +97 -0
  959. package/manifest/components/stepper.json +107 -0
  960. package/manifest/components/stopped-run.json +97 -0
  961. package/manifest/components/streaming-text.json +82 -0
  962. package/manifest/components/sub.json +45 -0
  963. package/manifest/components/subagent-list.json +106 -0
  964. package/manifest/components/suggestions.json +106 -0
  965. package/manifest/components/sup.json +45 -0
  966. package/manifest/components/swap-label.json +86 -0
  967. package/manifest/components/switch.json +102 -0
  968. package/manifest/components/table-scroll-region.json +78 -0
  969. package/manifest/components/table.json +306 -0
  970. package/manifest/components/tabs.json +156 -0
  971. package/manifest/components/tags-input.json +255 -0
  972. package/manifest/components/tail-status.json +138 -0
  973. package/manifest/components/terminal-block.json +111 -0
  974. package/manifest/components/terminal-frame.json +146 -0
  975. package/manifest/components/textarea.json +104 -0
  976. package/manifest/components/theme-configurator.json +158 -0
  977. package/manifest/components/theme-provider.json +228 -0
  978. package/manifest/components/thinking-indicator.json +69 -0
  979. package/manifest/components/thread-list.json +87 -0
  980. package/manifest/components/thread-search.json +108 -0
  981. package/manifest/components/threshold-rail.json +223 -0
  982. package/manifest/components/time-boundary.json +68 -0
  983. package/manifest/components/time-field.json +93 -0
  984. package/manifest/components/timeline-ruler.json +178 -0
  985. package/manifest/components/timeline.json +131 -0
  986. package/manifest/components/title-bar.json +97 -0
  987. package/manifest/components/toast.json +140 -0
  988. package/manifest/components/todo-list.json +76 -0
  989. package/manifest/components/toggle-group.json +134 -0
  990. package/manifest/components/toggle.json +140 -0
  991. package/manifest/components/token-editor.json +106 -0
  992. package/manifest/components/tool-call-card.json +268 -0
  993. package/manifest/components/tool-call.json +147 -0
  994. package/manifest/components/tool-error.json +141 -0
  995. package/manifest/components/tool-group.json +97 -0
  996. package/manifest/components/tool-timeline.json +147 -0
  997. package/manifest/components/toolbar.json +192 -0
  998. package/manifest/components/tooltip.json +199 -0
  999. package/manifest/components/trace-waterfall.json +84 -0
  1000. package/manifest/components/tree-visibility-toggle.json +99 -0
  1001. package/manifest/components/tree.json +182 -0
  1002. package/manifest/components/turn-footer.json +133 -0
  1003. package/manifest/components/two-step-button.json +150 -0
  1004. package/manifest/components/typing-indicator.json +60 -0
  1005. package/manifest/components/universe-grid.json +155 -0
  1006. package/manifest/components/unread-divider.json +58 -0
  1007. package/manifest/components/usage-chart.json +162 -0
  1008. package/manifest/components/verdict-row.json +106 -0
  1009. package/manifest/components/voice-conversation.json +141 -0
  1010. package/manifest/components/web-preview.json +105 -0
  1011. package/manifest/components/web-search.json +108 -0
  1012. package/manifest/components/work-collapse.json +125 -0
  1013. package/manifest/fixtures.json +776 -0
  1014. package/manifest/manifest.json +5037 -0
  1015. package/manifest/tokens.json +288 -0
  1016. package/package.json +278 -0
@@ -0,0 +1,117 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { field, paper } from "./surfaces.js";
4
+ import { useId } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { BookmarkIcon } from "lucide-react";
7
+ //#region src/elements/prompt-library.tsx
8
+ /**
9
+ * Prompts you saved, searchable, with their variables shown before you insert one.
10
+ *
11
+ * @example
12
+ * import { PromptLibrary } from "@cueplusplus/ui/elements";
13
+ *
14
+ * <PromptLibrary
15
+ * prompts={prompts}
16
+ * query={query}
17
+ * selectedId={selectedId}
18
+ * onQueryChange={setQuery}
19
+ * onSelect={setSelectedId}
20
+ * onInsert={insert}
21
+ * />
22
+ */
23
+ function PromptLibrary({ prompts, query, selectedId, onQueryChange, onSelect, onInsert, className, ...props }) {
24
+ const listId = useId();
25
+ const optionId = (id) => `${listId}-${id}`;
26
+ const matches = prompts.filter((prompt) => prompt.name.toLowerCase().includes(query.toLowerCase()));
27
+ const selected = matches.find((prompt) => prompt.id === selectedId);
28
+ const move = (delta) => {
29
+ if (matches.length === 0) return;
30
+ const at = matches.findIndex((prompt) => prompt.id === selectedId);
31
+ const next = matches[((at === -1 ? delta > 0 ? -1 : 0 : at) + delta + matches.length) % matches.length];
32
+ if (next) onSelect?.(next.id);
33
+ };
34
+ const onKeyDown = (event) => {
35
+ if (event.nativeEvent.isComposing) return;
36
+ if (event.key === "ArrowDown") {
37
+ event.preventDefault();
38
+ move(1);
39
+ } else if (event.key === "ArrowUp") {
40
+ event.preventDefault();
41
+ move(-1);
42
+ } else if (event.key === "Enter" && selected) {
43
+ event.preventDefault();
44
+ onInsert?.(selected.id);
45
+ }
46
+ };
47
+ return /* @__PURE__ */ jsxs("div", {
48
+ "data-slot": "prompt-library",
49
+ className: cn(paper, "flex w-full max-w-sm flex-col gap-2 rounded-(--radius-overlay) p-3", className),
50
+ ...props,
51
+ children: [
52
+ /* @__PURE__ */ jsxs("div", {
53
+ className: cn(field, "flex items-center gap-2 rounded-(--radius-surface) px-2.5 py-1.5"),
54
+ children: [/* @__PURE__ */ jsx(BookmarkIcon, { className: "text-fg-subtle size-3.5 shrink-0" }), /* @__PURE__ */ jsx("input", {
55
+ value: query,
56
+ onChange: (event) => onQueryChange?.(event.target.value),
57
+ onKeyDown,
58
+ placeholder: "Search prompts",
59
+ "aria-label": "Search saved prompts",
60
+ role: "combobox",
61
+ "aria-expanded": matches.length > 0,
62
+ "aria-controls": listId,
63
+ "aria-autocomplete": "list",
64
+ "aria-activedescendant": selected ? optionId(selected.id) : void 0,
65
+ className: "text-fg-muted placeholder:text-fg-subtle min-w-0 flex-1 bg-transparent text-(length:--cue-text-body) outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent"
66
+ })]
67
+ }),
68
+ /* @__PURE__ */ jsx("div", {
69
+ id: listId,
70
+ role: "listbox",
71
+ "aria-label": "Saved prompts",
72
+ className: "flex flex-col",
73
+ children: matches.map((prompt) => /* @__PURE__ */ jsxs("button", {
74
+ id: optionId(prompt.id),
75
+ type: "button",
76
+ role: "option",
77
+ tabIndex: -1,
78
+ "aria-selected": prompt.id === selectedId,
79
+ onMouseDown: (event) => event.preventDefault(),
80
+ onClick: () => onSelect?.(prompt.id),
81
+ onDoubleClick: () => onInsert?.(prompt.id),
82
+ className: cn("flex items-center gap-2 rounded-(--radius-surface) px-2 py-1.5 text-start transition-colors", prompt.id === selectedId ? "bg-surface-1" : "hover:bg-surface-1"),
83
+ children: [/* @__PURE__ */ jsx("span", {
84
+ className: "min-w-0 flex-1 truncate text-(length:--cue-text-body)",
85
+ children: prompt.name
86
+ }), prompt.variables.length > 0 && /* @__PURE__ */ jsxs("span", {
87
+ className: cn("font-mono text-(length:--cue-text-label) tracking-tight", "text-fg-subtle shrink-0"),
88
+ children: [prompt.variables.length, " vars"]
89
+ })]
90
+ }, prompt.id))
91
+ }),
92
+ matches.length === 0 && /* @__PURE__ */ jsxs("span", {
93
+ className: "text-fg-subtle block px-2 py-3 text-center text-(length:--cue-text-ui) break-words",
94
+ children: [
95
+ "Nothing matches “",
96
+ query,
97
+ "”"
98
+ ]
99
+ }),
100
+ selected && /* @__PURE__ */ jsxs("div", {
101
+ className: cn("bg-fg/[0.06]", "cue-elements-fade-in cue-elements-animate-in flex flex-col gap-2 rounded-(--radius-surface) p-2.5 duration-200"),
102
+ children: [/* @__PURE__ */ jsx("p", {
103
+ className: "text-fg-muted text-(length:--cue-text-ui) leading-(--cue-leading-ui) break-words",
104
+ children: selected.body
105
+ }), selected.variables.length > 0 && /* @__PURE__ */ jsx("div", {
106
+ className: "flex flex-wrap gap-1",
107
+ children: selected.variables.map((variable) => /* @__PURE__ */ jsx("span", {
108
+ className: cn("font-mono text-(length:--cue-text-label) tracking-tight", "bg-bg text-fg-muted rounded-(--radius-control) px-1.5 py-0.5"),
109
+ children: `{${variable}}`
110
+ }, variable))
111
+ })]
112
+ })
113
+ ]
114
+ });
115
+ }
116
+ //#endregion
117
+ export { PromptLibrary };
@@ -0,0 +1,101 @@
1
+ import { QueueLabels } from "./vocabulary.js";
2
+ import * as React from "react";
3
+ //#region src/elements/queue-dock.d.ts
4
+ /** A turn typed while a run was still out, waiting its place in the queue. */
5
+ interface QueuedFollowUp {
6
+ /** Identifies the entry, and what every callback reports. */
7
+ id: string;
8
+ /** What they typed. One line in the dock, however long it is in the composer. */
9
+ text: string;
10
+ }
11
+ /**
12
+ * The dock's summary line: `3 queued messages`.
13
+ *
14
+ * opencode's pluralised summary, and the reason it is a function rather than a
15
+ * template is the singular: `1 queued messages` is the tell that a queue was
16
+ * built by somebody who never had exactly one thing in it. Zero has an answer
17
+ * too, for the callers that show the dock's line somewhere the dock itself is
18
+ * not — a status bar, a tooltip — even though {@link QueueDock} draws nothing
19
+ * at all when the queue is empty.
20
+ *
21
+ * @example
22
+ * formatQueueSummary(3); // "3 queued messages"
23
+ * formatQueueSummary(1); // "1 queued message"
24
+ * formatQueueSummary(0); // "Nothing queued"
25
+ */
26
+ declare function formatQueueSummary(count: number): string;
27
+ interface QueueDockProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
28
+ /**
29
+ * The turns waiting to send, in the order they will drain. Ordering is the
30
+ * caller's: Cursor lets a person drag one up the list, and a component that
31
+ * sorted the array it was given could not be dragged.
32
+ */
33
+ messages: readonly QueuedFollowUp[];
34
+ /** Whether the entries are showing, or only the summary line. */
35
+ open: boolean;
36
+ /** Called when the dock is expanded or collapsed. */
37
+ onOpenChange?: (open: boolean) => void;
38
+ /**
39
+ * Put this turn back in the composer to be rewritten. The control exists
40
+ * only when this is given.
41
+ */
42
+ onEdit?: (id: string) => void;
43
+ /**
44
+ * Send this turn now rather than waiting for the run to finish — Cursor's
45
+ * `Send now`, Zed's steer button. The control exists only when this is given.
46
+ */
47
+ onSendNow?: (id: string) => void;
48
+ /**
49
+ * Drop this turn before it ever sends. The control exists only when this is
50
+ * given.
51
+ */
52
+ onRemove?: (id: string) => void;
53
+ /**
54
+ * The summary line, replacing the one {@link formatQueueSummary} would build
55
+ * — for a dock that counts something else: `2 follow-ups`, `3 steps queued`.
56
+ */
57
+ summary?: string;
58
+ /**
59
+ * Copy for the five controls, merged over `QUEUE_LABELS`. Partial: overriding
60
+ * `sendNow` does not cost you the other four.
61
+ */
62
+ labels?: Partial<QueueLabels>;
63
+ }
64
+ /**
65
+ * What you typed while it was still working, stacked and still yours to change.
66
+ *
67
+ * The dock over the composer, and one of the two elements the teardown found
68
+ * missing everywhere. Its whole reason to exist is the three things you can do
69
+ * to a queued turn *before* it sends: rewrite it now that you have seen what
70
+ * the run did, jump it to the front, or drop it. A queue you can only watch is
71
+ * a queue you will let send something you no longer mean.
72
+ *
73
+ * It folds. Four queued turns above a composer is a wall, so the collapsed
74
+ * state is one line — `4 queued messages` — and the entries come back on a
75
+ * click. Open state is a prop like everything else in this family, so a
76
+ * scripted replay of the dock is arithmetic rather than a component with a mind
77
+ * of its own.
78
+ *
79
+ * An empty queue draws **nothing**: no line, no empty state, no rule. Every
80
+ * product in the study does the same, and it is the right answer — a dock that
81
+ * announces it has nothing in it is a permanent strip of chrome apologising for
82
+ * itself.
83
+ *
84
+ * @example
85
+ * import { QueueDock } from "@cueplusplus/ui/elements";
86
+ *
87
+ * <QueueDock
88
+ * messages={queued}
89
+ * open={open}
90
+ * onOpenChange={setOpen}
91
+ * onEdit={(id) => lift(id)}
92
+ * onSendNow={(id) => steer(id)}
93
+ * onRemove={(id) => drop(id)}
94
+ * />
95
+ * @example
96
+ * // Read-only: the same dock in a shared transcript, with nothing to press.
97
+ * <QueueDock messages={queued} open />
98
+ */
99
+ declare const QueueDock: React.ForwardRefExoticComponent<QueueDockProps & React.RefAttributes<HTMLDivElement>>;
100
+ //#endregion
101
+ export { QueueDock, QueueDockProps, QueuedFollowUp, formatQueueSummary };
@@ -0,0 +1,132 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { field, ghostButton, mono, paper } from "./surfaces.js";
4
+ import { QUEUE_LABELS } from "./vocabulary.js";
5
+ import * as React from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { ChevronRightIcon, PencilIcon, SendHorizontalIcon, XIcon } from "lucide-react";
8
+ //#region src/elements/queue-dock.tsx
9
+ /**
10
+ * The dock's summary line: `3 queued messages`.
11
+ *
12
+ * opencode's pluralised summary, and the reason it is a function rather than a
13
+ * template is the singular: `1 queued messages` is the tell that a queue was
14
+ * built by somebody who never had exactly one thing in it. Zero has an answer
15
+ * too, for the callers that show the dock's line somewhere the dock itself is
16
+ * not — a status bar, a tooltip — even though {@link QueueDock} draws nothing
17
+ * at all when the queue is empty.
18
+ *
19
+ * @example
20
+ * formatQueueSummary(3); // "3 queued messages"
21
+ * formatQueueSummary(1); // "1 queued message"
22
+ * formatQueueSummary(0); // "Nothing queued"
23
+ */
24
+ function formatQueueSummary(count) {
25
+ if (!Number.isFinite(count) || count <= 0) return "Nothing queued";
26
+ const whole = Math.floor(count);
27
+ return `${whole} queued message${whole === 1 ? "" : "s"}`;
28
+ }
29
+ /**
30
+ * What you typed while it was still working, stacked and still yours to change.
31
+ *
32
+ * The dock over the composer, and one of the two elements the teardown found
33
+ * missing everywhere. Its whole reason to exist is the three things you can do
34
+ * to a queued turn *before* it sends: rewrite it now that you have seen what
35
+ * the run did, jump it to the front, or drop it. A queue you can only watch is
36
+ * a queue you will let send something you no longer mean.
37
+ *
38
+ * It folds. Four queued turns above a composer is a wall, so the collapsed
39
+ * state is one line — `4 queued messages` — and the entries come back on a
40
+ * click. Open state is a prop like everything else in this family, so a
41
+ * scripted replay of the dock is arithmetic rather than a component with a mind
42
+ * of its own.
43
+ *
44
+ * An empty queue draws **nothing**: no line, no empty state, no rule. Every
45
+ * product in the study does the same, and it is the right answer — a dock that
46
+ * announces it has nothing in it is a permanent strip of chrome apologising for
47
+ * itself.
48
+ *
49
+ * @example
50
+ * import { QueueDock } from "@cueplusplus/ui/elements";
51
+ *
52
+ * <QueueDock
53
+ * messages={queued}
54
+ * open={open}
55
+ * onOpenChange={setOpen}
56
+ * onEdit={(id) => lift(id)}
57
+ * onSendNow={(id) => steer(id)}
58
+ * onRemove={(id) => drop(id)}
59
+ * />
60
+ * @example
61
+ * // Read-only: the same dock in a shared transcript, with nothing to press.
62
+ * <QueueDock messages={queued} open />
63
+ */
64
+ const QueueDock = React.forwardRef(function QueueDock({ messages, open, onOpenChange, onEdit, onSendNow, onRemove, summary, labels, className, ...elementProps }, ref) {
65
+ if (messages.length === 0) return null;
66
+ const copy = {
67
+ ...QUEUE_LABELS,
68
+ ...labels
69
+ };
70
+ const said = summary ?? formatQueueSummary(messages.length);
71
+ const actionClassName = cn(ghostButton, "size-6 shrink-0");
72
+ return /* @__PURE__ */ jsxs("div", {
73
+ ref,
74
+ "data-slot": "queue-dock",
75
+ "data-open": String(open),
76
+ className: cn(paper, "flex w-full flex-col rounded-(--radius-overlay)", className),
77
+ ...elementProps,
78
+ children: [/* @__PURE__ */ jsxs("button", {
79
+ type: "button",
80
+ "aria-expanded": open,
81
+ title: open ? copy.collapse : copy.expand,
82
+ onClick: () => onOpenChange?.(!open),
83
+ className: "hover:bg-surface-2 flex items-center gap-2.5 rounded-(--radius-overlay) px-3 py-2 text-start transition-colors focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent motion-reduce:transition-none",
84
+ children: [/* @__PURE__ */ jsx(ChevronRightIcon, {
85
+ "aria-hidden": true,
86
+ className: cn("text-fg-subtle size-3 shrink-0 transition-transform duration-200 motion-reduce:transition-none", open && "rotate-90")
87
+ }), /* @__PURE__ */ jsx("span", {
88
+ className: "text-fg-muted min-w-0 flex-1 truncate text-(length:--cue-text-ui)",
89
+ children: said
90
+ })]
91
+ }), open ? /* @__PURE__ */ jsx("ul", {
92
+ "data-slot": "queue-dock-entries",
93
+ className: "flex flex-col gap-1 px-2 pb-2",
94
+ children: messages.map((message, index) => /* @__PURE__ */ jsxs("li", {
95
+ className: cn(field, "flex items-center gap-2 rounded-(--radius-control) py-1.5 pe-1.5 ps-2.5"),
96
+ children: [
97
+ /* @__PURE__ */ jsx("span", {
98
+ className: cn(mono, "text-fg-subtle w-3 shrink-0 tabular-nums"),
99
+ children: index + 1
100
+ }),
101
+ /* @__PURE__ */ jsx("span", {
102
+ className: "text-fg-muted min-w-0 flex-1 truncate text-(length:--cue-text-ui)",
103
+ children: message.text
104
+ }),
105
+ onEdit === void 0 ? null : /* @__PURE__ */ jsx("button", {
106
+ type: "button",
107
+ "aria-label": `${copy.edit}: ${message.text}`,
108
+ onClick: () => onEdit(message.id),
109
+ className: actionClassName,
110
+ children: /* @__PURE__ */ jsx(PencilIcon, { className: "size-3" })
111
+ }),
112
+ onSendNow === void 0 ? null : /* @__PURE__ */ jsx("button", {
113
+ type: "button",
114
+ "aria-label": `${copy.sendNow}: ${message.text}`,
115
+ onClick: () => onSendNow(message.id),
116
+ className: actionClassName,
117
+ children: /* @__PURE__ */ jsx(SendHorizontalIcon, { className: "size-3" })
118
+ }),
119
+ onRemove === void 0 ? null : /* @__PURE__ */ jsx("button", {
120
+ type: "button",
121
+ "aria-label": `${copy.remove}: ${message.text}`,
122
+ onClick: () => onRemove(message.id),
123
+ className: actionClassName,
124
+ children: /* @__PURE__ */ jsx(XIcon, { className: "size-3" })
125
+ })
126
+ ]
127
+ }, message.id))
128
+ }) : null]
129
+ });
130
+ });
131
+ //#endregion
132
+ export { QueueDock, formatQueueSummary };
@@ -0,0 +1,26 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/quota-banner.d.ts
3
+ /**
4
+ * How much is left, when it comes back, and the way to get more.
5
+ *
6
+ * @example
7
+ * import { QuotaBanner } from "@cueplusplus/ui/elements";
8
+ *
9
+ * <QuotaBanner used={47} limit={50} unit="messages" resetsIn="3h 12m" upgradeLabel="Upgrade" />
10
+ */
11
+ declare function QuotaBanner({ used, limit, unit, resetsIn, upgradeLabel, onUpgrade, className, ...props }: Omit<ComponentProps<"div">, "children" | "used" | "limit" | "unit" | "resetsIn" | "upgradeLabel" | "onUpgrade"> & {
12
+ /** How much has been consumed. */
13
+ used: number;
14
+ /** The allowance. The banner turns amber at 90 percent. */
15
+ limit: number;
16
+ /** What is being counted: messages, runs, credits. */
17
+ unit: string;
18
+ /** Pre-formatted time until the window rolls over. */
19
+ resetsIn: string;
20
+ /** Label for the way out. */
21
+ upgradeLabel: string;
22
+ /** Called from the upgrade action. */
23
+ onUpgrade?: () => void;
24
+ }): import("react").JSX.Element;
25
+ //#endregion
26
+ export { QuotaBanner };
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { inkButton, mono, paper } from "./surfaces.js";
4
+ import { pct } from "./range.js";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/elements/quota-banner.tsx
7
+ /**
8
+ * How much is left, when it comes back, and the way to get more.
9
+ *
10
+ * @example
11
+ * import { QuotaBanner } from "@cueplusplus/ui/elements";
12
+ *
13
+ * <QuotaBanner used={47} limit={50} unit="messages" resetsIn="3h 12m" upgradeLabel="Upgrade" />
14
+ */
15
+ function QuotaBanner({ used, limit, unit, resetsIn, upgradeLabel, onUpgrade, className, ...props }) {
16
+ const left = Math.max(0, limit - used);
17
+ const tight = (limit === 0 ? 0 : used / limit) >= .9;
18
+ return /* @__PURE__ */ jsxs("div", {
19
+ "data-slot": "quota-banner",
20
+ className: cn(paper, "flex w-full max-w-sm flex-col gap-2.5 rounded-(--radius-overlay) p-3.5", className),
21
+ ...props,
22
+ children: [
23
+ /* @__PURE__ */ jsxs("div", {
24
+ className: "flex items-baseline gap-2",
25
+ children: [/* @__PURE__ */ jsxs("span", {
26
+ className: cn("text-(length:--cue-text-body) font-medium", tight && "text-warn"),
27
+ children: [
28
+ left,
29
+ " ",
30
+ unit,
31
+ " left"
32
+ ]
33
+ }), /* @__PURE__ */ jsxs("span", {
34
+ className: cn(mono, "text-fg-subtle ms-auto tabular-nums"),
35
+ children: ["resets in ", resetsIn]
36
+ })]
37
+ }),
38
+ /* @__PURE__ */ jsx("span", {
39
+ className: "bg-surface-2 h-1 w-full overflow-hidden rounded-full",
40
+ children: /* @__PURE__ */ jsx("span", {
41
+ className: cn("block h-full rounded-full transition-[width] duration-500 motion-reduce:transition-none", tight ? "bg-warn" : "bg-surface-3"),
42
+ style: { width: `${pct(used, limit)}%` }
43
+ })
44
+ }),
45
+ /* @__PURE__ */ jsxs("div", {
46
+ className: "flex items-center gap-2",
47
+ children: [/* @__PURE__ */ jsxs("span", {
48
+ className: cn(mono, "text-fg-subtle tabular-nums"),
49
+ children: [
50
+ used,
51
+ " of ",
52
+ limit,
53
+ " used"
54
+ ]
55
+ }), /* @__PURE__ */ jsx("button", {
56
+ type: "button",
57
+ onClick: onUpgrade,
58
+ className: cn(inkButton, "ms-auto flex h-7 items-center rounded-full px-3 text-(length:--cue-text-ui) font-medium"),
59
+ children: upgradeLabel
60
+ })]
61
+ })
62
+ ]
63
+ });
64
+ }
65
+ //#endregion
66
+ export { QuotaBanner };
@@ -0,0 +1,44 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/quote-reply.d.ts
3
+ /** One offer in the selection toolbar: quote the passage, or act on it. */
4
+ interface QuoteAction {
5
+ /** Identifies the action, and what `onAction` reports. */
6
+ key: string;
7
+ /** The word on the button. */
8
+ label: string;
9
+ /** Which of the three glyphs it takes — the element owns the icon set, not the caller. */
10
+ icon: "quote" | "explain" | "rewrite";
11
+ }
12
+ /**
13
+ * Select a phrase in an answer and a toolbar offers to quote, explain, or rewrite it.
14
+ *
15
+ * @example
16
+ * import { QuoteReply } from "@cueplusplus/ui/elements";
17
+ *
18
+ * <QuoteReply
19
+ * before="The regression happens because "
20
+ * selection="the converter drops parts with no text"
21
+ * after=", so the turn never lands."
22
+ * actions={actions}
23
+ * toolbarVisible
24
+ * onAction={handle}
25
+ * />
26
+ */
27
+ declare function QuoteReply({ before, selection, after, actions, toolbarVisible, quoted, onAction, className, ...props }: Omit<ComponentProps<"div">, "children" | "before" | "selection" | "after" | "actions" | "toolbarVisible" | "quoted" | "onAction"> & {
28
+ /** Text preceding the selection. */
29
+ before: string;
30
+ /** The highlighted run the actions apply to. */
31
+ selection: string;
32
+ /** Text following the selection. */
33
+ after: string;
34
+ /** What the toolbar offers. Each action names one of the three built-in icons. */
35
+ actions: readonly QuoteAction[];
36
+ /** Whether the floating toolbar is showing. Drive it from your own selection handler. */
37
+ toolbarVisible: boolean;
38
+ /** Once quoted, the text carried into the composer, shown under a rule. */
39
+ quoted?: string;
40
+ /** Called with the key of the action that was chosen. */
41
+ onAction?: (key: string) => void;
42
+ }): import("react").JSX.Element;
43
+ //#endregion
44
+ export { QuoteAction, QuoteReply };
@@ -0,0 +1,79 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import "./surfaces.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { PencilLineIcon, QuoteIcon, SparklesIcon } from "lucide-react";
6
+ //#region src/elements/quote-reply.tsx
7
+ const ICON = {
8
+ quote: QuoteIcon,
9
+ explain: SparklesIcon,
10
+ rewrite: PencilLineIcon
11
+ };
12
+ /**
13
+ * Select a phrase in an answer and a toolbar offers to quote, explain, or rewrite it.
14
+ *
15
+ * @example
16
+ * import { QuoteReply } from "@cueplusplus/ui/elements";
17
+ *
18
+ * <QuoteReply
19
+ * before="The regression happens because "
20
+ * selection="the converter drops parts with no text"
21
+ * after=", so the turn never lands."
22
+ * actions={actions}
23
+ * toolbarVisible
24
+ * onAction={handle}
25
+ * />
26
+ */
27
+ function QuoteReply({ before, selection, after, actions, toolbarVisible, quoted, onAction, className, ...props }) {
28
+ return /* @__PURE__ */ jsxs("div", {
29
+ "data-slot": "quote-reply",
30
+ className: cn("flex w-full max-w-sm flex-col gap-2.5", className),
31
+ ...props,
32
+ children: [
33
+ /* @__PURE__ */ jsxs("p", {
34
+ className: "relative text-(length:--cue-text-body) leading-(--cue-leading-ui)",
35
+ children: [
36
+ /* @__PURE__ */ jsx("span", {
37
+ className: "text-fg-muted",
38
+ children: before
39
+ }),
40
+ /* @__PURE__ */ jsx("span", {
41
+ className: "text-fg rounded-(--radius-control) bg-stream/25 px-0.5",
42
+ children: selection
43
+ }),
44
+ /* @__PURE__ */ jsx("span", {
45
+ className: "text-fg-muted",
46
+ children: after
47
+ })
48
+ ]
49
+ }),
50
+ /* @__PURE__ */ jsx("div", {
51
+ className: "flex h-9 items-start",
52
+ children: toolbarVisible && /* @__PURE__ */ jsx("div", {
53
+ className: cn("bg-surface-2 border border-border-overlay", "cue-elements-fade-in cue-elements-zoom-in-95 cue-elements-slide-in-from-top-1 cue-elements-animate-in flex items-center gap-0.5 rounded-full p-1 duration-200"),
54
+ children: actions.map((action) => {
55
+ const Icon = ICON[action.icon];
56
+ return /* @__PURE__ */ jsxs("button", {
57
+ type: "button",
58
+ onClick: () => onAction?.(action.key),
59
+ className: "text-fg-muted hover:bg-surface-2 hover:text-fg flex h-7 items-center gap-1.5 rounded-full px-2.5 text-(length:--cue-text-ui) font-medium transition-[background-color,color,scale] duration-150 active:scale-[0.96]",
60
+ children: [/* @__PURE__ */ jsx(Icon, { className: "size-3.5" }), action.label]
61
+ }, action.key);
62
+ })
63
+ })
64
+ }),
65
+ quoted && /* @__PURE__ */ jsxs("div", {
66
+ className: "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in flex flex-col gap-1 duration-300",
67
+ children: [/* @__PURE__ */ jsx("span", {
68
+ className: cn("font-mono text-(length:--cue-text-label) tracking-tight", "text-fg-subtle"),
69
+ children: "replying to"
70
+ }), /* @__PURE__ */ jsx("div", {
71
+ className: "border-border-strong text-fg-muted border-s-2 ps-2.5 text-(length:--cue-text-ui) leading-(--cue-leading-ui)",
72
+ children: quoted
73
+ })]
74
+ })
75
+ ]
76
+ });
77
+ }
78
+ //#endregion
79
+ export { QuoteReply };
@@ -0,0 +1,29 @@
1
+ //#region src/elements/range.d.ts
2
+ /**
3
+ * Range normalization for the numeric props the elements take.
4
+ *
5
+ * Elements are driven by a caller's state, so a prop can arrive negative, past
6
+ * the end of its collection, or NaN. Left raw, those reach the DOM: a negative
7
+ * percentage is an invalid CSS width that the browser drops, leaving a bar at
8
+ * its natural full width, and a negative slice length counts from the end of
9
+ * the array instead of returning nothing.
10
+ */
11
+ /**
12
+ * Constrains a value to `min…max`. NaN is decided first and maps to `min`.
13
+ * For any other value, an empty collection can invert the bounds and `max`
14
+ * wins there: `clamp(3, 1, 0)` is `0`, which is what lets a floor of one item
15
+ * still yield none.
16
+ */
17
+ declare function clamp(value: number, min: number, max: number): number;
18
+ /** The first `count` items, for a `count` that may be out of range. */
19
+ declare function take<T>(items: readonly T[], count: number): T[];
20
+ /** The position `index` names in `items`, for an `index` out of range. */
21
+ declare function indexIn<T>(items: readonly T[], index: number): number;
22
+ /** The item at `index`, for an `index` that may be out of range. */
23
+ declare function at<T>(items: readonly T[], index: number): T | undefined;
24
+ /** `value` as a share of `total`, as a percentage in `0…100`. */
25
+ declare function pct(value: number, total: number): number;
26
+ /** A count of completed items out of `total`, in `0…total`. */
27
+ declare function progressOf(index: number, total: number): number;
28
+ //#endregion
29
+ export { at, clamp, indexIn, pct, progressOf, take };
@@ -0,0 +1,45 @@
1
+ //#region src/elements/range.ts
2
+ /**
3
+ * Range normalization for the numeric props the elements take.
4
+ *
5
+ * Elements are driven by a caller's state, so a prop can arrive negative, past
6
+ * the end of its collection, or NaN. Left raw, those reach the DOM: a negative
7
+ * percentage is an invalid CSS width that the browser drops, leaving a bar at
8
+ * its natural full width, and a negative slice length counts from the end of
9
+ * the array instead of returning nothing.
10
+ */
11
+ /**
12
+ * Constrains a value to `min…max`. NaN is decided first and maps to `min`.
13
+ * For any other value, an empty collection can invert the bounds and `max`
14
+ * wins there: `clamp(3, 1, 0)` is `0`, which is what lets a floor of one item
15
+ * still yield none.
16
+ */
17
+ function clamp(value, min, max) {
18
+ if (Number.isNaN(value)) return min;
19
+ return Math.min(max, Math.max(min, value));
20
+ }
21
+ /** The first `count` items, for a `count` that may be out of range. */
22
+ function take(items, count) {
23
+ return items.slice(0, Math.floor(clamp(count, 0, items.length)));
24
+ }
25
+ /** The position `index` names in `items`, for an `index` out of range. */
26
+ function indexIn(items, index) {
27
+ return Math.floor(clamp(index, 0, Math.max(0, items.length - 1)));
28
+ }
29
+ /** The item at `index`, for an `index` that may be out of range. */
30
+ function at(items, index) {
31
+ if (items.length === 0) return void 0;
32
+ return items[indexIn(items, index)];
33
+ }
34
+ /** `value` as a share of `total`, as a percentage in `0…100`. */
35
+ function pct(value, total) {
36
+ if (!(total > 0)) return 0;
37
+ return clamp(value / total * 100, 0, 100);
38
+ }
39
+ /** A count of completed items out of `total`, in `0…total`. */
40
+ function progressOf(index, total) {
41
+ if (!(total > 0)) return 0;
42
+ return Math.floor(clamp(index, 0, total));
43
+ }
44
+ //#endregion
45
+ export { at, clamp, indexIn, pct, progressOf, take };