@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,106 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { field, inkButton, mono, paper } from "./surfaces.js";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ import { CheckIcon, PlugIcon, XIcon } from "lucide-react";
6
+ //#region src/elements/elicitation-form.tsx
7
+ /**
8
+ * A server pausing mid-tool-call to ask you for the fields it still needs.
9
+ *
10
+ * @example
11
+ * import { ElicitationForm } from "@cueplusplus/ui/elements";
12
+ *
13
+ * <ElicitationForm
14
+ * server="github-mcp"
15
+ * message="Confirm where the release notes should be published."
16
+ * fields={fields}
17
+ * state="request"
18
+ * onAccept={send}
19
+ * onDecline={decline}
20
+ * />
21
+ */
22
+ function ElicitationForm({ server, message, fields, state, onAccept, onDecline, className, ...props }) {
23
+ return /* @__PURE__ */ jsxs("div", {
24
+ "data-slot": "elicitation-form",
25
+ className: cn(paper, "flex w-full max-w-sm flex-col gap-3.5 rounded-(--radius-overlay) p-4", className),
26
+ ...props,
27
+ children: [
28
+ /* @__PURE__ */ jsxs("div", {
29
+ className: "flex items-center gap-2.5",
30
+ children: [
31
+ /* @__PURE__ */ jsx("span", {
32
+ className: "bg-surface-1 text-fg-muted flex size-7 shrink-0 items-center justify-center rounded-(--radius-surface)",
33
+ children: /* @__PURE__ */ jsx(PlugIcon, { className: "size-3.5" })
34
+ }),
35
+ /* @__PURE__ */ jsx("span", {
36
+ className: "min-w-0 flex-1 truncate text-(length:--cue-text-body) font-medium",
37
+ children: server
38
+ }),
39
+ /* @__PURE__ */ jsx("span", {
40
+ className: cn(mono, "text-fg-subtle shrink-0"),
41
+ children: "needs input"
42
+ })
43
+ ]
44
+ }),
45
+ /* @__PURE__ */ jsx("p", {
46
+ className: "text-fg-muted text-(length:--cue-text-ui) leading-(--cue-leading-ui)",
47
+ children: message
48
+ }),
49
+ /* @__PURE__ */ jsx("div", {
50
+ className: "flex flex-col gap-2.5",
51
+ children: fields.map((item) => /* @__PURE__ */ jsxs("div", {
52
+ className: "flex flex-col gap-1",
53
+ children: [/* @__PURE__ */ jsxs("span", {
54
+ className: cn(mono, "text-fg-subtle"),
55
+ children: [item.label, item.required && /* @__PURE__ */ jsx("span", {
56
+ className: "text-fg-subtle",
57
+ children: " *"
58
+ })]
59
+ }), item.kind === "choice" ? /* @__PURE__ */ jsx("div", {
60
+ className: "flex flex-wrap gap-1.5",
61
+ children: item.options?.map((option) => /* @__PURE__ */ jsx("span", {
62
+ className: cn("rounded-full px-2.5 py-1 text-(length:--cue-text-ui) transition-colors", option === item.value ? "bg-accent text-accent-fg" : cn(field, "text-fg-muted")),
63
+ children: option
64
+ }, option))
65
+ }) : item.kind === "toggle" ? /* @__PURE__ */ jsxs("span", {
66
+ className: "flex items-center gap-2",
67
+ children: [/* @__PURE__ */ jsx("span", {
68
+ "aria-hidden": true,
69
+ className: cn("flex h-4 w-7 items-center rounded-full p-0.5 transition-colors duration-200", item.value === "true" ? "bg-accent" : "bg-surface-3"),
70
+ children: /* @__PURE__ */ jsx("span", { className: cn("bg-bg size-3 rounded-full transition-transform duration-200 motion-reduce:transition-none", item.value === "true" && "translate-x-3") })
71
+ }), /* @__PURE__ */ jsx("span", {
72
+ className: "text-fg-muted text-(length:--cue-text-ui)",
73
+ children: item.value === "true" ? "On" : "Off"
74
+ })]
75
+ }) : /* @__PURE__ */ jsx("span", {
76
+ className: cn(field, "text-fg-muted rounded-(--radius-surface) px-2.5 py-1.5 text-(length:--cue-text-ui)"),
77
+ children: item.value
78
+ })]
79
+ }, item.name))
80
+ }),
81
+ /* @__PURE__ */ jsx("div", {
82
+ className: "flex h-8 items-center justify-end gap-2",
83
+ children: state === "request" ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("button", {
84
+ type: "button",
85
+ onClick: onDecline,
86
+ className: "text-fg-muted hover:bg-surface-2 hover:text-fg h-8 rounded-full px-3.5 text-(length:--cue-text-ui) font-medium transition-[background-color,color,scale] duration-150 active:scale-[0.96]",
87
+ children: "Decline"
88
+ }), /* @__PURE__ */ jsx("button", {
89
+ type: "button",
90
+ onClick: onAccept,
91
+ className: cn(inkButton, "flex h-8 items-center rounded-full px-3.5 text-(length:--cue-text-ui) font-medium"),
92
+ children: "Send"
93
+ })] }) : /* @__PURE__ */ jsx("span", {
94
+ className: "cue-elements-fade-in cue-elements-animate-in text-fg-muted flex items-center gap-2 text-(length:--cue-text-ui) duration-300",
95
+ children: state === "accepted" ? /* @__PURE__ */ jsxs(Fragment, { children: [
96
+ /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5 text-ok" }),
97
+ "Sent to ",
98
+ server
99
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(XIcon, { className: "text-fg-muted size-3.5" }), "Declined"] })
100
+ }, state)
101
+ })
102
+ ]
103
+ });
104
+ }
105
+ //#endregion
106
+ export { ElicitationForm };
@@ -0,0 +1,52 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/empty-state.d.ts
3
+ /**
4
+ * The first screen: a greeting, three ways in, and the composer front and center.
5
+ *
6
+ * @example
7
+ * import {
8
+ * EmptyState,
9
+ * EmptyStateComposer,
10
+ * EmptyStateGreeting,
11
+ * EmptyStateSuggestion,
12
+ * EmptyStateSuggestions,
13
+ * } from "@cueplusplus/ui/elements";
14
+ *
15
+ * <EmptyState>
16
+ * <EmptyStateGreeting>What are we building?</EmptyStateGreeting>
17
+ * <EmptyStateSuggestions>
18
+ * {items.map((item, i) => (
19
+ * <EmptyStateSuggestion key={item} index={i} onClick={() => send(item)}>
20
+ * {item}
21
+ * </EmptyStateSuggestion>
22
+ * ))}
23
+ * </EmptyStateSuggestions>
24
+ * <EmptyStateComposer placeholder="Ask anything" onSend={send} />
25
+ * </EmptyState>
26
+ */
27
+ declare function ChatEmptyState({ className, ...props }: ComponentProps<"div">): import("react").JSX.Element;
28
+ /** The one line at the top of a blank thread. A heading, so a screen reader lands on it. */
29
+ declare function EmptyStateGreeting({ className, ...props }: ComponentProps<"h2">): import("react").JSX.Element;
30
+ /** The row the suggestion pills wrap in. */
31
+ declare function EmptyStateSuggestions({ className, ...props }: ComponentProps<"div">): import("react").JSX.Element;
32
+ /**
33
+ * One thing worth asking, as a pill. `index` staggers its entrance so the row arrives
34
+ * left to right rather than all at once.
35
+ */
36
+ declare function EmptyStateSuggestion({ index, className, style, ...props }: ComponentProps<"button"> & {
37
+ /** Position in the row. Staggers the entrance so the pills arrive in order. */
38
+ index?: number;
39
+ }): import("react").JSX.Element;
40
+ /**
41
+ * A composer-shaped invitation under the suggestions. It is a display rather than a
42
+ * working input — the placeholder is a string and send takes a handler — for the
43
+ * screen whose real composer is somewhere else.
44
+ */
45
+ declare function EmptyStateComposer({ placeholder, onSend, className, style, ...props }: Omit<ComponentProps<"div">, "children" | "placeholder"> & {
46
+ /** Resting text in the input bar. */
47
+ placeholder: string;
48
+ /** Called from the send control. Omit it and the control renders disabled. */
49
+ onSend?: () => void;
50
+ }): import("react").JSX.Element;
51
+ //#endregion
52
+ export { ChatEmptyState, EmptyStateComposer, EmptyStateGreeting, EmptyStateSuggestion, EmptyStateSuggestions };
@@ -0,0 +1,98 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { inkButton, paper } from "./surfaces.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { ArrowUpIcon } from "lucide-react";
6
+ //#region src/elements/empty-state.tsx
7
+ /**
8
+ * The first screen: a greeting, three ways in, and the composer front and center.
9
+ *
10
+ * @example
11
+ * import {
12
+ * EmptyState,
13
+ * EmptyStateComposer,
14
+ * EmptyStateGreeting,
15
+ * EmptyStateSuggestion,
16
+ * EmptyStateSuggestions,
17
+ * } from "@cueplusplus/ui/elements";
18
+ *
19
+ * <EmptyState>
20
+ * <EmptyStateGreeting>What are we building?</EmptyStateGreeting>
21
+ * <EmptyStateSuggestions>
22
+ * {items.map((item, i) => (
23
+ * <EmptyStateSuggestion key={item} index={i} onClick={() => send(item)}>
24
+ * {item}
25
+ * </EmptyStateSuggestion>
26
+ * ))}
27
+ * </EmptyStateSuggestions>
28
+ * <EmptyStateComposer placeholder="Ask anything" onSend={send} />
29
+ * </EmptyState>
30
+ */
31
+ function ChatEmptyState({ className, ...props }) {
32
+ return /* @__PURE__ */ jsx("div", {
33
+ "data-slot": "empty-state",
34
+ className: cn("flex w-full max-w-md flex-col items-center gap-7", className),
35
+ ...props
36
+ });
37
+ }
38
+ /** The one line at the top of a blank thread. A heading, so a screen reader lands on it. */
39
+ function EmptyStateGreeting({ className, ...props }) {
40
+ return /* @__PURE__ */ jsx("h2", {
41
+ "data-slot": "empty-state-greeting",
42
+ className: cn("cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in cue-elements-fill-mode-both text-center text-(length:--cue-text-title) font-medium tracking-tight duration-500 motion-reduce:animate-none", className),
43
+ ...props
44
+ });
45
+ }
46
+ /** The row the suggestion pills wrap in. */
47
+ function EmptyStateSuggestions({ className, ...props }) {
48
+ return /* @__PURE__ */ jsx("div", {
49
+ "data-slot": "empty-state-suggestions",
50
+ className: cn("flex flex-wrap justify-center gap-2", className),
51
+ ...props
52
+ });
53
+ }
54
+ /**
55
+ * One thing worth asking, as a pill. `index` staggers its entrance so the row arrives
56
+ * left to right rather than all at once.
57
+ */
58
+ function EmptyStateSuggestion({ index = 0, className, style, ...props }) {
59
+ return /* @__PURE__ */ jsx("button", {
60
+ type: "button",
61
+ "data-slot": "empty-state-suggestion",
62
+ style: {
63
+ animationDelay: `${120 + index * 70}ms`,
64
+ ...style
65
+ },
66
+ className: cn(paper, "cue-elements-fade-in cue-elements-slide-in-from-bottom-2 cue-elements-animate-in cue-elements-fill-mode-both focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent rounded-full px-4 py-2 text-(length:--cue-text-body) transition-transform duration-500 outline-none hover:-translate-y-px active:scale-[0.96] motion-reduce:animate-none", className),
67
+ ...props
68
+ });
69
+ }
70
+ /**
71
+ * A composer-shaped invitation under the suggestions. It is a display rather than a
72
+ * working input — the placeholder is a string and send takes a handler — for the
73
+ * screen whose real composer is somewhere else.
74
+ */
75
+ function EmptyStateComposer({ placeholder, onSend, className, style, ...props }) {
76
+ return /* @__PURE__ */ jsxs("div", {
77
+ "data-slot": "empty-state-composer",
78
+ style: {
79
+ animationDelay: "360ms",
80
+ ...style
81
+ },
82
+ className: cn(paper, "cue-elements-fade-in cue-elements-slide-in-from-bottom-2 cue-elements-animate-in cue-elements-fill-mode-both flex h-13 w-full items-center justify-between rounded-full py-2 ps-5 pe-2.5 duration-500 motion-reduce:animate-none", className),
83
+ ...props,
84
+ children: [/* @__PURE__ */ jsx("span", {
85
+ className: "text-fg-subtle text-(length:--cue-text-emphasis)",
86
+ children: placeholder
87
+ }), /* @__PURE__ */ jsx("button", {
88
+ type: "button",
89
+ "aria-label": "Send",
90
+ onClick: onSend,
91
+ disabled: !onSend,
92
+ className: cn(inkButton, "flex size-8 items-center justify-center rounded-full disabled:pointer-events-none disabled:opacity-30"),
93
+ children: /* @__PURE__ */ jsx(ArrowUpIcon, { className: "size-4" })
94
+ })]
95
+ });
96
+ }
97
+ //#endregion
98
+ export { ChatEmptyState, EmptyStateComposer, EmptyStateGreeting, EmptyStateSuggestion, EmptyStateSuggestions };
@@ -0,0 +1,60 @@
1
+ import * as React from "react";
2
+ //#region src/elements/end-of-turn-summary.d.ts
3
+ /** What a turn did to the working tree. */
4
+ interface ChangeSummary {
5
+ /** How many files the turn touched. */
6
+ files: number;
7
+ /** Lines added across them. */
8
+ additions?: number;
9
+ /** Lines removed across them. */
10
+ deletions?: number;
11
+ }
12
+ /**
13
+ * The whole line as one string: `3 files changed +48 −12`.
14
+ *
15
+ * The component renders the same words in the same order with the two numbers
16
+ * tinted, so this is for the places a string is what you need — a `title`, a
17
+ * desktop notification, a commit message, a collapsed turn's subtitle.
18
+ *
19
+ * @example
20
+ * formatChangeSummary({ files: 3, additions: 48, deletions: 12 }); // "3 files changed +48 −12"
21
+ * formatChangeSummary({ files: 0 }); // "No files changed"
22
+ */
23
+ declare function formatChangeSummary({ files, additions, deletions }: ChangeSummary): string;
24
+ interface EndOfTurnSummaryProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
25
+ /** How many files the turn touched. */
26
+ files: number;
27
+ /** Lines added across them. */
28
+ additions?: number;
29
+ /** Lines removed across them. */
30
+ deletions?: number;
31
+ /**
32
+ * The whole line, replacing the one {@link formatChangeSummary} would build —
33
+ * for a turn whose result is not a diff at all: `2 cues written`,
34
+ * `Nothing to change`.
35
+ */
36
+ label?: string;
37
+ }
38
+ /**
39
+ * What the turn came to, in one line: `3 files changed +48 −12`.
40
+ *
41
+ * A rollup, not a control: it says what happened and offers nothing to do about
42
+ * it, because the things to do about it — review, keep, reject — belong to a
43
+ * bar above the composer that acts on the whole run, and a per-turn row with
44
+ * those buttons on it is a row that can be pressed after the next turn has
45
+ * already changed the same files.
46
+ *
47
+ * The counts are drawn only when there are some. A turn that read four files
48
+ * and wrote nothing says `No files changed` and stops, rather than saying it
49
+ * with two zeroes.
50
+ *
51
+ * @example
52
+ * import { EndOfTurnSummary } from "@cueplusplus/ui/elements";
53
+ *
54
+ * <EndOfTurnSummary files={3} additions={48} deletions={12} />
55
+ * @example
56
+ * <EndOfTurnSummary files={0} />
57
+ */
58
+ declare const EndOfTurnSummary: React.ForwardRefExoticComponent<EndOfTurnSummaryProps & React.RefAttributes<HTMLDivElement>>;
59
+ //#endregion
60
+ export { ChangeSummary, EndOfTurnSummary, EndOfTurnSummaryProps, formatChangeSummary };
@@ -0,0 +1,75 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { mono } from "./surfaces.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/elements/end-of-turn-summary.tsx
7
+ /** The file clause on its own: `No files changed`, `1 file changed`, `3 files changed`. */
8
+ function filesChanged(files) {
9
+ if (files <= 0) return "No files changed";
10
+ return `${files} file${files === 1 ? "" : "s"} changed`;
11
+ }
12
+ /**
13
+ * The whole line as one string: `3 files changed +48 −12`.
14
+ *
15
+ * The component renders the same words in the same order with the two numbers
16
+ * tinted, so this is for the places a string is what you need — a `title`, a
17
+ * desktop notification, a commit message, a collapsed turn's subtitle.
18
+ *
19
+ * @example
20
+ * formatChangeSummary({ files: 3, additions: 48, deletions: 12 }); // "3 files changed +48 −12"
21
+ * formatChangeSummary({ files: 0 }); // "No files changed"
22
+ */
23
+ function formatChangeSummary({ files, additions = 0, deletions = 0 }) {
24
+ const clause = filesChanged(files);
25
+ if (additions === 0 && deletions === 0) return clause;
26
+ return `${clause} +${additions} −${deletions}`;
27
+ }
28
+ /**
29
+ * What the turn came to, in one line: `3 files changed +48 −12`.
30
+ *
31
+ * A rollup, not a control: it says what happened and offers nothing to do about
32
+ * it, because the things to do about it — review, keep, reject — belong to a
33
+ * bar above the composer that acts on the whole run, and a per-turn row with
34
+ * those buttons on it is a row that can be pressed after the next turn has
35
+ * already changed the same files.
36
+ *
37
+ * The counts are drawn only when there are some. A turn that read four files
38
+ * and wrote nothing says `No files changed` and stops, rather than saying it
39
+ * with two zeroes.
40
+ *
41
+ * @example
42
+ * import { EndOfTurnSummary } from "@cueplusplus/ui/elements";
43
+ *
44
+ * <EndOfTurnSummary files={3} additions={48} deletions={12} />
45
+ * @example
46
+ * <EndOfTurnSummary files={0} />
47
+ */
48
+ const EndOfTurnSummary = React.forwardRef(function EndOfTurnSummary({ files, additions = 0, deletions = 0, label, className, ...elementProps }, ref) {
49
+ const changed = additions !== 0 || deletions !== 0;
50
+ return /* @__PURE__ */ jsxs("div", {
51
+ ref,
52
+ "data-slot": "end-of-turn-summary",
53
+ className: cn("text-fg-muted flex w-full items-baseline gap-2 py-1 text-(length:--cue-text-ui)", className),
54
+ ...elementProps,
55
+ children: [/* @__PURE__ */ jsx("span", {
56
+ className: "min-w-0 truncate",
57
+ children: label ?? filesChanged(files)
58
+ }), label === void 0 && changed ? /* @__PURE__ */ jsxs("span", {
59
+ className: cn(mono, "shrink-0 tabular-nums"),
60
+ children: [
61
+ /* @__PURE__ */ jsxs("span", {
62
+ className: "text-ok",
63
+ children: ["+", additions]
64
+ }),
65
+ " ",
66
+ /* @__PURE__ */ jsxs("span", {
67
+ className: "text-danger",
68
+ children: ["−", deletions]
69
+ })
70
+ ]
71
+ }) : null]
72
+ });
73
+ });
74
+ //#endregion
75
+ export { EndOfTurnSummary, formatChangeSummary };
@@ -0,0 +1,29 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/error-state.d.ts
3
+ /** What a failure banner is told: what broke, the detail under it, and the way back. */
4
+ interface ErrorStateProps extends Omit<ComponentProps<"div">, "children" | "role"> {
5
+ /** Primary failure headline shown in the banner. */
6
+ title: string;
7
+ /** Supporting detail under the title explaining what went wrong. */
8
+ detail: string;
9
+ /** When true the banner swaps to a spinning Retrying status instead of the error. */
10
+ retrying: boolean;
11
+ /** Called when the retry control is pressed. */
12
+ onRetry: () => void;
13
+ }
14
+ /**
15
+ * A quiet failure banner with a retry path, not a modal in your face.
16
+ *
17
+ * @example
18
+ * import { ErrorState } from "@cueplusplus/ui/elements";
19
+ *
20
+ * <ErrorState
21
+ * title="Request failed"
22
+ * detail="The model timed out."
23
+ * retrying={false}
24
+ * onRetry={() => {}}
25
+ * />
26
+ */
27
+ declare function ErrorState({ title, detail, retrying, onRetry, className, ...props }: ErrorStateProps): import("react").JSX.Element;
28
+ //#endregion
29
+ export { ErrorState, ErrorStateProps };
@@ -0,0 +1,55 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { ShimmerLabel } from "./surfaces.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { CircleAlertIcon, RefreshCwIcon } from "lucide-react";
6
+ //#region src/elements/error-state.tsx
7
+ /**
8
+ * A quiet failure banner with a retry path, not a modal in your face.
9
+ *
10
+ * @example
11
+ * import { ErrorState } from "@cueplusplus/ui/elements";
12
+ *
13
+ * <ErrorState
14
+ * title="Request failed"
15
+ * detail="The model timed out."
16
+ * retrying={false}
17
+ * onRetry={() => {}}
18
+ * />
19
+ */
20
+ function ErrorState({ title, detail, retrying, onRetry, className, ...props }) {
21
+ if (retrying) return /* @__PURE__ */ jsxs("div", {
22
+ "data-slot": "error-state",
23
+ role: "status",
24
+ className: cn("cue-elements-fade-in cue-elements-animate-in flex w-full max-w-sm items-center gap-2.5 text-(length:--cue-text-body) duration-300 motion-reduce:animate-none", className),
25
+ ...props,
26
+ children: [/* @__PURE__ */ jsx(RefreshCwIcon, { className: "text-fg-muted size-3.5 shrink-0 animate-spin motion-reduce:animate-none" }), /* @__PURE__ */ jsx(ShimmerLabel, {
27
+ className: "text-fg-muted relative inline-block",
28
+ children: "Retrying"
29
+ })]
30
+ }, "retrying");
31
+ return /* @__PURE__ */ jsxs("div", {
32
+ "data-slot": "error-state",
33
+ role: "alert",
34
+ className: cn("cue-elements-fade-in cue-elements-animate-in flex w-full max-w-sm items-start gap-2.5 rounded-(--radius-overlay) bg-danger/10 px-4 py-3 text-(length:--cue-text-body) duration-300 motion-reduce:animate-none", className),
35
+ ...props,
36
+ children: [
37
+ /* @__PURE__ */ jsx(CircleAlertIcon, { className: "mt-0.5 size-4 shrink-0 text-danger/80" }),
38
+ /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
39
+ className: "font-medium text-danger",
40
+ children: title
41
+ }), /* @__PURE__ */ jsx("p", {
42
+ className: "mt-0.5 text-(length:--cue-text-body) leading-snug text-danger/60",
43
+ children: detail
44
+ })] }),
45
+ /* @__PURE__ */ jsxs("button", {
46
+ type: "button",
47
+ onClick: onRetry,
48
+ className: "ms-auto flex items-center gap-1.5 rounded-full px-3 py-1 text-(length:--cue-text-ui) font-medium text-danger transition-colors hover:bg-danger/10",
49
+ children: [/* @__PURE__ */ jsx(RefreshCwIcon, { className: "size-3" }), "Retry"]
50
+ })
51
+ ]
52
+ }, "error");
53
+ }
54
+ //#endregion
55
+ export { ErrorState };
@@ -0,0 +1,36 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/feedback-dialog.d.ts
3
+ /**
4
+ * A thumbs-down that asks why, so the signal arrives with a reason attached.
5
+ *
6
+ * @example
7
+ * import { FeedbackDialog } from "@cueplusplus/ui/elements";
8
+ *
9
+ * <FeedbackDialog
10
+ * reasons={["Not factual", "Too long"]}
11
+ * selected={selected}
12
+ * note={note}
13
+ * sent={sent}
14
+ * onToggleReason={toggle}
15
+ * onNoteChange={setNote}
16
+ * onSubmit={send}
17
+ * />
18
+ */
19
+ declare function FeedbackDialog({ reasons, selected, note, sent, onToggleReason, onNoteChange, onSubmit, className, ...props }: Omit<ComponentProps<"div">, "children" | "reasons" | "selected" | "note" | "sent" | "onToggleReason" | "onNoteChange" | "onSubmit"> & {
20
+ /** The reason chips offered. Keep them short enough to scan in one line. */
21
+ reasons: readonly string[];
22
+ /** Which reasons are currently picked. More than one is allowed. */
23
+ selected: readonly string[];
24
+ /** Free-text detail, always optional. */
25
+ note: string;
26
+ /** Replaces the whole form with an acknowledgement once the report is filed. */
27
+ sent: boolean;
28
+ /** Called when a reason chip is picked or unpicked. */
29
+ onToggleReason?: (reason: string) => void;
30
+ /** Called as the free-text note is typed. */
31
+ onNoteChange?: (note: string) => void;
32
+ /** Called when the report is sent. */
33
+ onSubmit?: () => void;
34
+ }): import("react").JSX.Element;
35
+ //#endregion
36
+ export { FeedbackDialog };
@@ -0,0 +1,81 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { field, inkButton, mono, paper } from "./surfaces.js";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ import { CheckIcon, ThumbsDownIcon } from "lucide-react";
6
+ //#region src/elements/feedback-dialog.tsx
7
+ /**
8
+ * A thumbs-down that asks why, so the signal arrives with a reason attached.
9
+ *
10
+ * @example
11
+ * import { FeedbackDialog } from "@cueplusplus/ui/elements";
12
+ *
13
+ * <FeedbackDialog
14
+ * reasons={["Not factual", "Too long"]}
15
+ * selected={selected}
16
+ * note={note}
17
+ * sent={sent}
18
+ * onToggleReason={toggle}
19
+ * onNoteChange={setNote}
20
+ * onSubmit={send}
21
+ * />
22
+ */
23
+ function FeedbackDialog({ reasons, selected, note, sent, onToggleReason, onNoteChange, onSubmit, className, ...props }) {
24
+ return /* @__PURE__ */ jsxs("div", {
25
+ "data-slot": "feedback-dialog",
26
+ className: cn(paper, "flex w-full max-w-sm rounded-(--radius-overlay) p-4", sent ? "items-center gap-2.5 text-(length:--cue-text-body)" : "flex-col gap-3", className),
27
+ ...props,
28
+ children: [/* @__PURE__ */ jsx("div", {
29
+ role: "status",
30
+ className: sent ? "cue-elements-fade-in cue-elements-animate-in flex items-center gap-2.5 duration-300" : "sr-only",
31
+ children: sent && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(CheckIcon, { className: "size-4 shrink-0 text-ok" }), "Thanks. That helps us tune the model."] })
32
+ }), sent ? null : /* @__PURE__ */ jsxs(Fragment, { children: [
33
+ /* @__PURE__ */ jsxs("div", {
34
+ className: "flex items-center gap-2.5",
35
+ children: [
36
+ /* @__PURE__ */ jsx("span", {
37
+ className: "bg-surface-1 text-fg-muted flex size-7 shrink-0 items-center justify-center rounded-(--radius-surface)",
38
+ children: /* @__PURE__ */ jsx(ThumbsDownIcon, { className: "size-3.5" })
39
+ }),
40
+ /* @__PURE__ */ jsx("span", {
41
+ className: "text-(length:--cue-text-body) font-medium",
42
+ children: "What went wrong?"
43
+ }),
44
+ /* @__PURE__ */ jsx("span", {
45
+ className: cn(mono, "text-fg-subtle ms-auto"),
46
+ children: "optional"
47
+ })
48
+ ]
49
+ }),
50
+ /* @__PURE__ */ jsx("div", {
51
+ className: "flex flex-wrap gap-1.5",
52
+ children: reasons.map((reason) => {
53
+ const active = selected.includes(reason);
54
+ return /* @__PURE__ */ jsx("button", {
55
+ type: "button",
56
+ "aria-pressed": active,
57
+ onClick: () => onToggleReason?.(reason),
58
+ className: cn("rounded-full px-2.5 py-1 text-(length:--cue-text-ui) transition-[background-color,color,scale] duration-150 active:scale-[0.96]", active ? "bg-accent text-accent-fg" : cn(field, "text-fg-muted hover:text-fg")),
59
+ children: reason
60
+ }, reason);
61
+ })
62
+ }),
63
+ /* @__PURE__ */ jsx("textarea", {
64
+ value: note,
65
+ onChange: (event) => onNoteChange?.(event.target.value),
66
+ rows: 2,
67
+ placeholder: "Anything else?",
68
+ "aria-label": "Anything else?",
69
+ className: cn(field, "text-fg-muted placeholder:text-fg-subtle focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent resize-none rounded-(--radius-surface) px-3 py-2 text-(length:--cue-text-ui) outline-none")
70
+ }),
71
+ /* @__PURE__ */ jsx("button", {
72
+ type: "button",
73
+ onClick: onSubmit,
74
+ className: cn(inkButton, "flex h-8 items-center justify-center self-end rounded-full px-3.5 text-(length:--cue-text-ui) font-medium"),
75
+ children: "Send feedback"
76
+ })
77
+ ] })]
78
+ });
79
+ }
80
+ //#endregion
81
+ export { FeedbackDialog };
@@ -0,0 +1,45 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/file-tree.d.ts
3
+ /** One row of a changed-file tree, already flattened: the tree's shape lives in `depth`. */
4
+ interface FileTreeNode {
5
+ /** Full path, which is what identifies the row. */
6
+ path: string;
7
+ /** The last segment, which is what the row shows. */
8
+ name: string;
9
+ /** How deep the row sits, in indent steps. The list is flat; this is the only nesting. */
10
+ depth: number;
11
+ /** Whether the row is a folder or a file. */
12
+ kind: "folder" | "file";
13
+ /** Lines added, shown as a green count. Omit for a row with no diff. */
14
+ additions?: number;
15
+ /** Lines removed, shown as a red count. Omit for a row with no diff. */
16
+ deletions?: number;
17
+ }
18
+ /**
19
+ * Everything a run touched, as a tree, with the churn spelled out per file.
20
+ *
21
+ * @example
22
+ * import { FileTree } from "@cueplusplus/ui/elements";
23
+ *
24
+ * <FileTree
25
+ * nodes={nodes}
26
+ * visibleCount={nodes.length}
27
+ * totalAdditions={78}
28
+ * totalDeletions={9}
29
+ * />
30
+ */
31
+ declare function FileTree({ nodes, visibleCount, totalAdditions, totalDeletions, className, ...props }: Omit<ComponentProps<"div">, "children" | "nodes" | "visibleCount" | "totalAdditions" | "totalDeletions"> & {
32
+ /**
33
+ * Flat list in display order. Nesting comes from each node's depth, not from
34
+ * children arrays.
35
+ */
36
+ nodes: readonly FileTreeNode[];
37
+ /** How many nodes have landed. Raise it as the run touches more files. */
38
+ visibleCount: number;
39
+ /** Added lines across the whole change. */
40
+ totalAdditions: number;
41
+ /** Removed lines across the whole change. */
42
+ totalDeletions: number;
43
+ }): import("react").JSX.Element;
44
+ //#endregion
45
+ export { FileTree, FileTreeNode };