@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,123 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { ghostButton, mono, paper } from "./surfaces.js";
4
+ import { clamp } from "./range.js";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { MicIcon, MicOffIcon, PhoneOffIcon } from "lucide-react";
7
+ //#region src/elements/voice-conversation.tsx
8
+ const CAPTION = {
9
+ connecting: "Connecting",
10
+ listening: "Listening",
11
+ thinking: "Thinking",
12
+ speaking: "Speaking"
13
+ };
14
+ const HINT = {
15
+ connecting: "Opening the mic",
16
+ listening: "Listening for you",
17
+ thinking: "Working on it",
18
+ speaking: "Playing the reply"
19
+ };
20
+ /**
21
+ * A live call: the orb tracks your voice, the caption names the turn, the transcript
22
+ * follows.
23
+ *
24
+ * @example
25
+ * import { VoiceConversation } from "@cueplusplus/ui/elements";
26
+ *
27
+ * <VoiceConversation
28
+ * mode="listening"
29
+ * amplitude={0.6}
30
+ * transcript={transcript}
31
+ * onToggleMute={toggleMute}
32
+ * onEnd={hangUp}
33
+ * />
34
+ */
35
+ function VoiceConversation({ mode, amplitude, transcript, muted, onToggleMute, onInterrupt, onEnd, className, ...props }) {
36
+ const level = clamp(amplitude, 0, 1);
37
+ const active = mode === "listening" || mode === "speaking";
38
+ const canInterrupt = mode === "speaking" && onInterrupt !== void 0;
39
+ return /* @__PURE__ */ jsxs("div", {
40
+ "data-slot": "voice-conversation",
41
+ className: cn(paper, "flex w-full max-w-xs flex-col items-center gap-4 rounded-(--radius-overlay) px-5 py-5", className),
42
+ ...props,
43
+ children: [
44
+ /* @__PURE__ */ jsxs("button", {
45
+ type: "button",
46
+ onClick: onInterrupt,
47
+ disabled: !canInterrupt,
48
+ "aria-label": "Interrupt the assistant",
49
+ className: "focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent relative flex size-24 items-center justify-center rounded-full outline-none disabled:cursor-default",
50
+ children: [
51
+ /* @__PURE__ */ jsx("span", {
52
+ "aria-hidden": true,
53
+ className: cn("absolute rounded-full transition-[transform,opacity] duration-200 ease-out motion-reduce:transition-none", mode === "speaking" ? "bg-stream/15" : "bg-surface-1"),
54
+ style: {
55
+ width: "6rem",
56
+ height: "6rem",
57
+ transform: `scale(${active ? .72 + level * .28 : .62})`,
58
+ opacity: active ? 1 : .5
59
+ }
60
+ }),
61
+ /* @__PURE__ */ jsx("span", {
62
+ "aria-hidden": true,
63
+ className: cn("absolute rounded-full transition-[transform,opacity] duration-150 ease-out motion-reduce:transition-none", mode === "speaking" ? "bg-stream/25" : "bg-surface-2"),
64
+ style: {
65
+ width: "4.25rem",
66
+ height: "4.25rem",
67
+ transform: `scale(${active ? .8 + level * .22 : .7})`
68
+ }
69
+ }),
70
+ /* @__PURE__ */ jsx("span", {
71
+ "aria-hidden": true,
72
+ className: cn("relative size-10 rounded-full transition-[transform,background-color] duration-150 ease-out motion-reduce:transition-none", mode === "connecting" && "bg-surface-3 animate-pulse", mode === "listening" && "bg-accent", mode === "thinking" && "bg-surface-3 animate-pulse", mode === "speaking" && "bg-stream"),
73
+ style: { transform: `scale(${active ? .9 + level * .2 : .85})` }
74
+ })
75
+ ]
76
+ }),
77
+ /* @__PURE__ */ jsxs("div", {
78
+ className: "flex flex-col items-center gap-1",
79
+ children: [/* @__PURE__ */ jsx("span", {
80
+ className: "text-(length:--cue-text-body) font-medium",
81
+ children: CAPTION[mode]
82
+ }), /* @__PURE__ */ jsx("span", {
83
+ className: cn(mono, "text-fg-subtle"),
84
+ children: muted ? "Mic off" : canInterrupt ? "Tap to interrupt" : HINT[mode]
85
+ })]
86
+ }),
87
+ /* @__PURE__ */ jsx("div", {
88
+ className: "flex min-h-[4.5rem] w-full flex-col gap-1.5",
89
+ children: transcript.map((turn) => /* @__PURE__ */ jsxs("div", {
90
+ className: "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in cue-elements-fill-mode-both flex gap-2 text-(length:--cue-text-ui) leading-(--cue-leading-ui) duration-300",
91
+ children: [/* @__PURE__ */ jsx("span", {
92
+ className: cn(mono, "w-8 shrink-0", turn.role === "user" ? "text-fg-subtle" : "text-stream/70"),
93
+ children: turn.role === "user" ? "you" : "ai"
94
+ }), /* @__PURE__ */ jsx("span", {
95
+ className: cn("min-w-0 flex-1 break-words", turn.role === "user" ? "text-fg-muted" : "text-fg-muted"),
96
+ children: turn.text
97
+ })]
98
+ }, turn.id))
99
+ }),
100
+ /* @__PURE__ */ jsxs("div", {
101
+ className: "flex items-center gap-2",
102
+ children: [/* @__PURE__ */ jsx("button", {
103
+ type: "button",
104
+ "aria-label": muted ? "Turn the microphone on" : "Turn the microphone off",
105
+ "aria-pressed": muted,
106
+ onClick: onToggleMute,
107
+ disabled: !onToggleMute,
108
+ className: cn(ghostButton, "size-10 disabled:pointer-events-none disabled:opacity-30", muted && "bg-surface-2 text-fg"),
109
+ children: muted ? /* @__PURE__ */ jsx(MicOffIcon, { className: "size-4" }) : /* @__PURE__ */ jsx(MicIcon, { className: "size-4" })
110
+ }), /* @__PURE__ */ jsx("button", {
111
+ type: "button",
112
+ "aria-label": "End the call",
113
+ onClick: onEnd,
114
+ disabled: !onEnd,
115
+ className: "flex size-10 items-center justify-center rounded-full bg-danger text-danger-fg transition-[opacity,scale] duration-150 hover:opacity-90 active:scale-[0.96] disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none",
116
+ children: /* @__PURE__ */ jsx(PhoneOffIcon, { className: "size-4" })
117
+ })]
118
+ })
119
+ ]
120
+ });
121
+ }
122
+ //#endregion
123
+ export { VoiceConversation };
@@ -0,0 +1,32 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/web-preview.d.ts
3
+ /**
4
+ * Chrome around a preview: a URL bar, reload, and open-in-new. It renders
5
+ * `children` as given and enforces no isolation of its own, so the caller is
6
+ * responsible for passing an already-sandboxed frame.
7
+ *
8
+ * @example
9
+ * import { WebPreview } from "@cueplusplus/ui/elements";
10
+ *
11
+ * <WebPreview origin="scf.auiusercontent.com" loading={false} onReload={reload}>
12
+ * <iframe title="Preview" src={sandboxUrl} sandbox="allow-scripts" />
13
+ * </WebPreview>
14
+ */
15
+ declare function WebPreview({ origin, loading, children, onReload, onOpenExternal, className, ...props }: Omit<ComponentProps<"div">, "origin" | "loading" | "children" | "onReload" | "onOpenExternal"> & {
16
+ /**
17
+ * Host the content is served from. Show the sandbox origin, not your own, so the
18
+ * isolation is legible. Displaying it does not create the isolation; the frame you
19
+ * pass as children must already be sandboxed.
20
+ */
21
+ origin: string;
22
+ /** Fades the frame out and shimmers a status while the sandbox is being set up. */
23
+ loading: boolean;
24
+ /** The frame itself. In production this is a sandboxed iframe, not inline markup. */
25
+ children: React.ReactNode;
26
+ /** Called from the reload control. */
27
+ onReload?: () => void;
28
+ /** Called from the open-in-new-tab control. */
29
+ onOpenExternal?: () => void;
30
+ }): import("react").JSX.Element;
31
+ //#endregion
32
+ export { WebPreview };
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { ShimmerLabel, field, ghostButton, mono, paper } from "./surfaces.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { ExternalLinkIcon, RotateCwIcon } from "lucide-react";
6
+ //#region src/elements/web-preview.tsx
7
+ /**
8
+ * Chrome around a preview: a URL bar, reload, and open-in-new. It renders
9
+ * `children` as given and enforces no isolation of its own, so the caller is
10
+ * responsible for passing an already-sandboxed frame.
11
+ *
12
+ * @example
13
+ * import { WebPreview } from "@cueplusplus/ui/elements";
14
+ *
15
+ * <WebPreview origin="scf.auiusercontent.com" loading={false} onReload={reload}>
16
+ * <iframe title="Preview" src={sandboxUrl} sandbox="allow-scripts" />
17
+ * </WebPreview>
18
+ */
19
+ function WebPreview({ origin, loading, children, onReload, onOpenExternal, className, ...props }) {
20
+ return /* @__PURE__ */ jsxs("div", {
21
+ "data-slot": "web-preview",
22
+ className: cn(paper, "flex w-full max-w-md flex-col overflow-hidden rounded-(--radius-overlay)", className),
23
+ ...props,
24
+ children: [/* @__PURE__ */ jsxs("div", {
25
+ className: "flex items-center gap-1.5 px-2.5 py-2",
26
+ children: [
27
+ /* @__PURE__ */ jsx("button", {
28
+ type: "button",
29
+ "aria-label": "Reload the preview",
30
+ onClick: onReload,
31
+ className: cn(ghostButton, "size-7 shrink-0"),
32
+ children: /* @__PURE__ */ jsx(RotateCwIcon, { className: cn("size-3.5", loading && "animate-spin motion-reduce:animate-none") })
33
+ }),
34
+ /* @__PURE__ */ jsx("span", {
35
+ className: cn(field, "flex min-w-0 flex-1 items-center gap-1.5 rounded-full px-2.5 py-1"),
36
+ children: /* @__PURE__ */ jsx("span", {
37
+ className: cn(mono, "text-fg-muted min-w-0 truncate"),
38
+ children: origin
39
+ })
40
+ }),
41
+ /* @__PURE__ */ jsx("button", {
42
+ type: "button",
43
+ "aria-label": "Open the preview in a new tab",
44
+ onClick: onOpenExternal,
45
+ className: cn(ghostButton, "size-7 shrink-0"),
46
+ children: /* @__PURE__ */ jsx(ExternalLinkIcon, { className: "size-3.5" })
47
+ })
48
+ ]
49
+ }), /* @__PURE__ */ jsxs("div", {
50
+ className: "border-border relative min-h-[9rem] border-t",
51
+ children: [/* @__PURE__ */ jsx("div", {
52
+ "aria-hidden": loading,
53
+ className: cn("transition-opacity duration-300 motion-reduce:transition-none", loading && "invisible opacity-0"),
54
+ children
55
+ }), loading && /* @__PURE__ */ jsx("div", {
56
+ className: "absolute inset-0 flex items-center justify-center",
57
+ children: /* @__PURE__ */ jsx(ShimmerLabel, {
58
+ className: "text-fg-subtle relative inline-block text-(length:--cue-text-ui) leading-none",
59
+ children: "Loading preview"
60
+ })
61
+ })]
62
+ })]
63
+ });
64
+ }
65
+ //#endregion
66
+ export { WebPreview };
@@ -0,0 +1,37 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/web-search.d.ts
3
+ /** One hit the agent read: the page's title and the site it sits on. */
4
+ interface WebSearchResult {
5
+ /** The page's title, truncated to the row. */
6
+ title: string;
7
+ /** The site, in mono at the end of the row. With `cycle`, it keys the row. */
8
+ domain: string;
9
+ }
10
+ /**
11
+ * A search query and its results landing one by one as the agent reads.
12
+ *
13
+ * @example
14
+ * import { WebSearch } from "@cueplusplus/ui/elements";
15
+ *
16
+ * <WebSearch
17
+ * query="assistant-ui composer"
18
+ * results={[{ title: "Composer guide", domain: "docs.example.com" }]}
19
+ * visibleResults={1}
20
+ * searching={false}
21
+ * cycle={0}
22
+ * />
23
+ */
24
+ declare function WebSearch({ query, results, visibleResults, searching, cycle, className, ...props }: Omit<ComponentProps<"div">, "children" | "query" | "results" | "visibleResults" | "searching" | "cycle"> & {
25
+ /** Search query shown in the query pill. */
26
+ query: string;
27
+ /** Result cards available to reveal one by one. */
28
+ results: readonly WebSearchResult[];
29
+ /** How many results from the start are currently shown. */
30
+ visibleResults: number;
31
+ /** When true a shimmering Searching label replaces the result count. */
32
+ searching: boolean;
33
+ /** Identity key that remounts the list so entrance animation can replay. */
34
+ cycle: number;
35
+ }): import("react").JSX.Element;
36
+ //#endregion
37
+ export { WebSearch, WebSearchResult };
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { ShimmerLabel, field, mono } from "./surfaces.js";
4
+ import { take } from "./range.js";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { SearchIcon } from "lucide-react";
7
+ //#region src/elements/web-search.tsx
8
+ /**
9
+ * A search query and its results landing one by one as the agent reads.
10
+ *
11
+ * @example
12
+ * import { WebSearch } from "@cueplusplus/ui/elements";
13
+ *
14
+ * <WebSearch
15
+ * query="assistant-ui composer"
16
+ * results={[{ title: "Composer guide", domain: "docs.example.com" }]}
17
+ * visibleResults={1}
18
+ * searching={false}
19
+ * cycle={0}
20
+ * />
21
+ */
22
+ function WebSearch({ query, results, visibleResults, searching, cycle, className, ...props }) {
23
+ return /* @__PURE__ */ jsxs("div", {
24
+ "data-slot": "web-search",
25
+ className: cn("flex w-full max-w-sm flex-col gap-2.5", className),
26
+ ...props,
27
+ children: [
28
+ /* @__PURE__ */ jsxs("span", {
29
+ className: cn(field, "text-fg-muted inline-flex w-fit items-center gap-1.5 rounded-full px-3.5 py-2 text-(length:--cue-text-ui)"),
30
+ children: [/* @__PURE__ */ jsx(SearchIcon, { className: "text-fg-subtle size-3" }), query]
31
+ }),
32
+ /* @__PURE__ */ jsx("div", {
33
+ className: "text-fg-muted text-(length:--cue-text-ui)",
34
+ children: searching ? /* @__PURE__ */ jsx(ShimmerLabel, {
35
+ className: "relative inline-block leading-none",
36
+ children: "Searching"
37
+ }) : /* @__PURE__ */ jsx("span", {
38
+ className: "cue-elements-fade-in cue-elements-animate-in duration-300",
39
+ children: "Read 3 sources"
40
+ })
41
+ }),
42
+ /* @__PURE__ */ jsx("div", {
43
+ className: "flex min-h-[5.75rem] flex-col",
44
+ children: take(results, visibleResults).map((result) => /* @__PURE__ */ jsxs("div", {
45
+ className: "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in cue-elements-fill-mode-both hover:bg-surface-1 -mx-2.5 flex items-center gap-2.5 rounded-(--radius-surface) px-2.5 py-1.5 transition-colors duration-300",
46
+ children: [
47
+ /* @__PURE__ */ jsx("span", {
48
+ className: "bg-surface-2 text-fg-muted flex size-4 shrink-0 items-center justify-center rounded-(--radius-control) text-(length:--cue-text-micro) font-medium",
49
+ children: result.domain.charAt(0).toUpperCase()
50
+ }),
51
+ /* @__PURE__ */ jsx("span", {
52
+ className: "text-fg min-w-0 flex-1 truncate text-(length:--cue-text-body)",
53
+ children: result.title
54
+ }),
55
+ /* @__PURE__ */ jsx("span", {
56
+ className: cn(mono, "text-fg-subtle shrink-0"),
57
+ children: result.domain
58
+ })
59
+ ]
60
+ }, `${cycle}-${result.domain}`))
61
+ })
62
+ ]
63
+ });
64
+ }
65
+ //#endregion
66
+ export { WebSearch };
@@ -0,0 +1,103 @@
1
+ import * as React from "react";
2
+ //#region src/elements/work-collapse.d.ts
3
+ /**
4
+ * A duration as a run's summary line says it: `3s`, `4m 12s`, `1h 3m`.
5
+ *
6
+ * Cline's three shapes, and the rule behind them is that each keeps exactly two
7
+ * significant units — nobody reading "worked for" wants `1h 3m 12s`, and
8
+ * everybody wants the seconds when the whole run took eleven of them. Anything
9
+ * that is not a finite, positive number of milliseconds is `0s`, because this
10
+ * formats a caller's arithmetic and a run that has not started yet is a real
11
+ * state.
12
+ *
13
+ * @example
14
+ * formatWorkDuration(3_000); // "3s"
15
+ * formatWorkDuration(252_000); // "4m 12s"
16
+ * formatWorkDuration(3_780_000); // "1h 3m"
17
+ */
18
+ declare function formatWorkDuration(durationMs: number): string;
19
+ /** What a collapsed run knows about itself. */
20
+ interface WorkSummary {
21
+ /** How long the run took, in milliseconds. Omit when it is not known. */
22
+ durationMs?: number;
23
+ /** How many tool calls it made. Omit when it is not counted. */
24
+ toolCalls?: number;
25
+ /** Whether the run is still going, which decides the tense. */
26
+ running?: boolean;
27
+ }
28
+ /**
29
+ * The summary line: `Worked for 4m 12s and made 14 tool calls`.
30
+ *
31
+ * Every combination has an answer, including the two empty ones, because a
32
+ * collapsed run always has to say something: a trigger labelled `undefined` is
33
+ * a row a reader cannot decide whether to open. Cline's fallbacks are `Worked`
34
+ * and `Made 3 tool calls`; the present-tense half is Hermes's rule that a live
35
+ * run narrates in the present and settles into the past.
36
+ *
37
+ * @example
38
+ * formatWorkLabel({ durationMs: 252_000, toolCalls: 14 });
39
+ * // "Worked for 4m 12s and made 14 tool calls"
40
+ * @example
41
+ * formatWorkLabel({ durationMs: 252_000, toolCalls: 14, running: true });
42
+ * // "Working for 4m 12s, 14 tool calls so far"
43
+ */
44
+ declare function formatWorkLabel({ durationMs, toolCalls, running }: WorkSummary): string;
45
+ interface WorkCollapseProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children" | "onToggle"> {
46
+ /** How long the run took, in milliseconds. Omit when it is not known. */
47
+ durationMs?: number;
48
+ /** How many tool calls it made. Omit when it is not counted. */
49
+ toolCalls?: number;
50
+ /**
51
+ * Whether the run is still going: the label goes present tense and the sweep
52
+ * runs. Hermes's rule, and the one that keeps a collapsed live run from
53
+ * claiming to be finished.
54
+ */
55
+ running?: boolean;
56
+ /**
57
+ * The whole summary line, replacing the one {@link formatWorkLabel} would
58
+ * build. This is where a category summary goes — "Explored 3 files, ran 5
59
+ * commands", composed from `VERB_TRIADS` — which is a sentence no formatter
60
+ * over a duration and a count could produce.
61
+ */
62
+ label?: string;
63
+ /** Whether the rows are showing. */
64
+ open: boolean;
65
+ /** Called when the row is expanded or collapsed. */
66
+ onOpenChange?: (open: boolean) => void;
67
+ /** The rows the run folded away: tool calls, reasoning, whatever ran. */
68
+ children?: React.ReactNode;
69
+ }
70
+ /**
71
+ * A finished run, folded into one row: `Worked for 4m 12s and made 14 tool calls`.
72
+ *
73
+ * The counterpart to {@link TailStatus}. That one says what is happening while
74
+ * it happens; this one is what fourteen rows of it become once nobody needs
75
+ * them — and it is the element that makes a long transcript readable at a
76
+ * glance without hiding anything, because the rows are still there, one click
77
+ * away, in their original order.
78
+ *
79
+ * The expanded body deliberately draws no rail, no indent and no border. That
80
+ * is Cline's decision and its reasoning is worth keeping: the rows inside a
81
+ * work group are tool disclosures and reasoning panels that already carry their
82
+ * own nesting when *they* open, and a second level of indent around them makes
83
+ * a transcript that steps rightwards every time it explains itself. So an open
84
+ * `WorkCollapse` looks exactly like the transcript would have looked, plus one
85
+ * summary line above it.
86
+ *
87
+ * Open state is a prop, like everything else here: a scripted replay of this
88
+ * component is a caller changing `open`, and a component that owned the
89
+ * disclosure could not be replayed at all.
90
+ *
91
+ * @example
92
+ * import { WorkCollapse } from "@cueplusplus/ui/elements";
93
+ *
94
+ * <WorkCollapse durationMs={252_000} toolCalls={14} open={open} onOpenChange={setOpen}>
95
+ * {rows}
96
+ * </WorkCollapse>
97
+ * @example
98
+ * // Live, in the present tense, with the label composed from the verb table.
99
+ * <WorkCollapse running toolCalls={5} label="Exploring 3 files, running 5 commands" open={false} />
100
+ */
101
+ declare const WorkCollapse: React.ForwardRefExoticComponent<WorkCollapseProps & React.RefAttributes<HTMLDivElement>>;
102
+ //#endregion
103
+ export { WorkCollapse, WorkCollapseProps, WorkSummary, formatWorkDuration, formatWorkLabel };
@@ -0,0 +1,131 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { ShimmerLabel } from "./surfaces.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { ChevronRightIcon } from "lucide-react";
7
+ //#region src/elements/work-collapse.tsx
8
+ /**
9
+ * A duration as a run's summary line says it: `3s`, `4m 12s`, `1h 3m`.
10
+ *
11
+ * Cline's three shapes, and the rule behind them is that each keeps exactly two
12
+ * significant units — nobody reading "worked for" wants `1h 3m 12s`, and
13
+ * everybody wants the seconds when the whole run took eleven of them. Anything
14
+ * that is not a finite, positive number of milliseconds is `0s`, because this
15
+ * formats a caller's arithmetic and a run that has not started yet is a real
16
+ * state.
17
+ *
18
+ * @example
19
+ * formatWorkDuration(3_000); // "3s"
20
+ * formatWorkDuration(252_000); // "4m 12s"
21
+ * formatWorkDuration(3_780_000); // "1h 3m"
22
+ */
23
+ function formatWorkDuration(durationMs) {
24
+ if (!Number.isFinite(durationMs) || durationMs <= 0) return "0s";
25
+ const total = Math.round(durationMs / 1e3);
26
+ if (total < 60) return `${total}s`;
27
+ if (total < 3600) {
28
+ const minutes = Math.floor(total / 60);
29
+ const seconds = total % 60;
30
+ return seconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`;
31
+ }
32
+ const hours = Math.floor(total / 3600);
33
+ const minutes = Math.floor(total % 3600 / 60);
34
+ return minutes === 0 ? `${hours}h` : `${hours}h ${minutes}m`;
35
+ }
36
+ /**
37
+ * The summary line: `Worked for 4m 12s and made 14 tool calls`.
38
+ *
39
+ * Every combination has an answer, including the two empty ones, because a
40
+ * collapsed run always has to say something: a trigger labelled `undefined` is
41
+ * a row a reader cannot decide whether to open. Cline's fallbacks are `Worked`
42
+ * and `Made 3 tool calls`; the present-tense half is Hermes's rule that a live
43
+ * run narrates in the present and settles into the past.
44
+ *
45
+ * @example
46
+ * formatWorkLabel({ durationMs: 252_000, toolCalls: 14 });
47
+ * // "Worked for 4m 12s and made 14 tool calls"
48
+ * @example
49
+ * formatWorkLabel({ durationMs: 252_000, toolCalls: 14, running: true });
50
+ * // "Working for 4m 12s, 14 tool calls so far"
51
+ */
52
+ function formatWorkLabel({ durationMs, toolCalls, running = false }) {
53
+ const spent = durationMs === void 0 ? void 0 : formatWorkDuration(durationMs);
54
+ const calls = toolCalls === void 0 ? void 0 : `${toolCalls} tool call${toolCalls === 1 ? "" : "s"}`;
55
+ if (running) {
56
+ if (spent !== void 0 && calls !== void 0) return `Working for ${spent}, ${calls} so far`;
57
+ if (spent !== void 0) return `Working for ${spent}`;
58
+ if (calls !== void 0) return `${calls} so far`;
59
+ return "Working";
60
+ }
61
+ if (spent !== void 0 && calls !== void 0) return `Worked for ${spent} and made ${calls}`;
62
+ if (spent !== void 0) return `Worked for ${spent}`;
63
+ if (calls !== void 0) return `Made ${calls}`;
64
+ return "Worked";
65
+ }
66
+ /**
67
+ * A finished run, folded into one row: `Worked for 4m 12s and made 14 tool calls`.
68
+ *
69
+ * The counterpart to {@link TailStatus}. That one says what is happening while
70
+ * it happens; this one is what fourteen rows of it become once nobody needs
71
+ * them — and it is the element that makes a long transcript readable at a
72
+ * glance without hiding anything, because the rows are still there, one click
73
+ * away, in their original order.
74
+ *
75
+ * The expanded body deliberately draws no rail, no indent and no border. That
76
+ * is Cline's decision and its reasoning is worth keeping: the rows inside a
77
+ * work group are tool disclosures and reasoning panels that already carry their
78
+ * own nesting when *they* open, and a second level of indent around them makes
79
+ * a transcript that steps rightwards every time it explains itself. So an open
80
+ * `WorkCollapse` looks exactly like the transcript would have looked, plus one
81
+ * summary line above it.
82
+ *
83
+ * Open state is a prop, like everything else here: a scripted replay of this
84
+ * component is a caller changing `open`, and a component that owned the
85
+ * disclosure could not be replayed at all.
86
+ *
87
+ * @example
88
+ * import { WorkCollapse } from "@cueplusplus/ui/elements";
89
+ *
90
+ * <WorkCollapse durationMs={252_000} toolCalls={14} open={open} onOpenChange={setOpen}>
91
+ * {rows}
92
+ * </WorkCollapse>
93
+ * @example
94
+ * // Live, in the present tense, with the label composed from the verb table.
95
+ * <WorkCollapse running toolCalls={5} label="Exploring 3 files, running 5 commands" open={false} />
96
+ */
97
+ const WorkCollapse = React.forwardRef(function WorkCollapse({ durationMs, toolCalls, running = false, label, open, onOpenChange, children, className, ...elementProps }, ref) {
98
+ const summary = label ?? formatWorkLabel({
99
+ durationMs,
100
+ toolCalls,
101
+ running
102
+ });
103
+ return /* @__PURE__ */ jsxs("div", {
104
+ ref,
105
+ "data-slot": "work-collapse",
106
+ "data-open": String(open),
107
+ "data-running": String(running),
108
+ className: cn("flex w-full flex-col gap-1.5", className),
109
+ ...elementProps,
110
+ children: [/* @__PURE__ */ jsxs("button", {
111
+ type: "button",
112
+ "aria-expanded": open,
113
+ onClick: () => onOpenChange?.(!open),
114
+ className: "hover:bg-surface-1 -mx-2 flex items-center gap-2.5 rounded-(--radius-control) px-2 py-1 text-start transition-colors focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent motion-reduce:transition-none",
115
+ children: [/* @__PURE__ */ jsx(ChevronRightIcon, {
116
+ "aria-hidden": true,
117
+ className: cn("text-fg-subtle size-3 shrink-0 transition-transform duration-200 motion-reduce:transition-none", open && "rotate-90")
118
+ }), /* @__PURE__ */ jsx(ShimmerLabel, {
119
+ active: running,
120
+ className: "text-fg-muted min-w-0 flex-1 truncate text-(length:--cue-text-ui)",
121
+ children: summary
122
+ })]
123
+ }), open && children !== void 0 ? /* @__PURE__ */ jsx("div", {
124
+ "data-slot": "work-collapse-content",
125
+ className: "flex flex-col gap-2",
126
+ children
127
+ }) : null]
128
+ });
129
+ });
130
+ //#endregion
131
+ export { WorkCollapse, formatWorkDuration, formatWorkLabel };
@@ -0,0 +1,52 @@
1
+ //#region src/flow/_frame.d.ts
2
+ /**
3
+ * On a graph canvas the frame *is* the state.
4
+ *
5
+ * A node in a signal graph has to answer two questions from across the room:
6
+ * what kind of thing is this, and what is it doing right now. Text answers
7
+ * neither at 60% zoom. A coloured frame answers both, which is why every console
8
+ * this group is ported from — dmxhub's bridge above all — encodes node state as
9
+ * the colour of a one-pixel rim and nothing else.
10
+ *
11
+ * Two axes, resolved in one order:
12
+ *
13
+ * - **State wins over tone.** A selected node is a selected node whether it is an
14
+ * input or a merge; a node carrying live signal is the accent whatever it does
15
+ * with that signal. Identity only shows through when the node has nothing more
16
+ * urgent to say.
17
+ * - **Tone is the resting identity.** Input reads as `info` (it comes from
18
+ * elsewhere), output as `accent` (it is what this console emits), and anything
19
+ * in between as the quiet grey that also serves as the default.
20
+ *
21
+ * The colour is published as a custom property rather than painted directly, so
22
+ * a React Flow node wrapper can set it once (`useFlowTheme().nodeStyles`) and
23
+ * every card inside inherits it — and so a card that says nothing about tone or
24
+ * state stays inheritable instead of overriding its own graph.
25
+ */
26
+ /** What kind of node this is: where it sits in the signal path. */
27
+ type FlowNodeTone = "input" | "output" | "processing";
28
+ /** What the node is doing right now. Outranks {@link FlowNodeTone}. */
29
+ type FlowNodeState = "idle" | "live" | "selected" | "disabled";
30
+ /** The custom property a node's frame colour travels on. */
31
+ declare const FLOW_NODE_FRAME_PROPERTY = "--cue-node-frame";
32
+ /** The frame of a node that has published no colour of its own. */
33
+ declare const FLOW_NODE_FRAME_FALLBACK = "var(--cue-fg-subtle)";
34
+ /** `outline-color` for any node frame: the published colour, else the grey. */
35
+ declare const FLOW_NODE_FRAME_COLOR = "var(--cue-node-frame, var(--cue-fg-subtle))";
36
+ /**
37
+ * The frame colour for a node, as a token reference.
38
+ *
39
+ * Returns `undefined` when neither axis says anything — the caller then leaves
40
+ * the property unset and inherits whatever the node wrapper published, which is
41
+ * what makes `nodeStyles` work.
42
+ *
43
+ * @param tone - Where the node sits in the signal path.
44
+ * @param state - What it is doing right now. Outranks `tone`.
45
+ * @returns A `var(--cue-*)` reference, or `undefined` to inherit.
46
+ * @example
47
+ * flowFrameColor("input"); // "var(--cue-info)"
48
+ * flowFrameColor("input", "selected"); // "var(--cue-fg)"
49
+ */
50
+ declare function flowFrameColor(tone?: FlowNodeTone, state?: FlowNodeState): string | undefined;
51
+ //#endregion
52
+ export { FLOW_NODE_FRAME_COLOR, FLOW_NODE_FRAME_FALLBACK, FLOW_NODE_FRAME_PROPERTY, FlowNodeState, FlowNodeTone, flowFrameColor };
@@ -0,0 +1,38 @@
1
+ //#region src/flow/_frame.ts
2
+ /** The custom property a node's frame colour travels on. */
3
+ const FLOW_NODE_FRAME_PROPERTY = "--cue-node-frame";
4
+ /** The frame of a node that has published no colour of its own. */
5
+ const FLOW_NODE_FRAME_FALLBACK = "var(--cue-fg-subtle)";
6
+ /** `outline-color` for any node frame: the published colour, else the grey. */
7
+ const FLOW_NODE_FRAME_COLOR = `var(${FLOW_NODE_FRAME_PROPERTY}, ${FLOW_NODE_FRAME_FALLBACK})`;
8
+ const TONE_FRAMES = {
9
+ input: "var(--cue-info)",
10
+ output: "var(--cue-accent)",
11
+ processing: FLOW_NODE_FRAME_FALLBACK
12
+ };
13
+ /** `idle` is deliberately absent: an idle node falls through to its tone. */
14
+ const STATE_FRAMES = {
15
+ selected: "var(--cue-fg)",
16
+ live: "var(--cue-accent)",
17
+ disabled: FLOW_NODE_FRAME_FALLBACK
18
+ };
19
+ /**
20
+ * The frame colour for a node, as a token reference.
21
+ *
22
+ * Returns `undefined` when neither axis says anything — the caller then leaves
23
+ * the property unset and inherits whatever the node wrapper published, which is
24
+ * what makes `nodeStyles` work.
25
+ *
26
+ * @param tone - Where the node sits in the signal path.
27
+ * @param state - What it is doing right now. Outranks `tone`.
28
+ * @returns A `var(--cue-*)` reference, or `undefined` to inherit.
29
+ * @example
30
+ * flowFrameColor("input"); // "var(--cue-info)"
31
+ * flowFrameColor("input", "selected"); // "var(--cue-fg)"
32
+ */
33
+ function flowFrameColor(tone, state) {
34
+ if (state !== void 0 && state in STATE_FRAMES) return STATE_FRAMES[state];
35
+ return tone === void 0 ? void 0 : TONE_FRAMES[tone];
36
+ }
37
+ //#endregion
38
+ export { FLOW_NODE_FRAME_COLOR, FLOW_NODE_FRAME_FALLBACK, FLOW_NODE_FRAME_PROPERTY, flowFrameColor };