@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,64 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import "./surfaces.js";
4
+ import { useId } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/elements/confidence-marker.tsx
7
+ const UNDERLINE = {
8
+ grounded: "decoration-ok/50",
9
+ inferred: "decoration-warn/60",
10
+ uncertain: "decoration-danger/50 decoration-dotted"
11
+ };
12
+ const LABEL = {
13
+ grounded: "from a source",
14
+ inferred: "inferred",
15
+ uncertain: "unverified"
16
+ };
17
+ /**
18
+ * Which claims came from a source, which were inferred, and which are guesses.
19
+ *
20
+ * @example
21
+ * import { ConfidenceMarker } from "@cueplusplus/ui/elements";
22
+ *
23
+ * <ConfidenceMarker claims={claims} hoveredId={hoveredId} onHover={setHoveredId} />
24
+ */
25
+ function ConfidenceMarker({ claims, hoveredId, onHover, className, ...props }) {
26
+ const basisId = useId();
27
+ const hovered = claims.find((claim) => claim.id === hoveredId);
28
+ return /* @__PURE__ */ jsxs("div", {
29
+ "data-slot": "confidence-marker",
30
+ className: cn("flex w-full max-w-sm flex-col gap-2.5", className),
31
+ ...props,
32
+ children: [/* @__PURE__ */ jsx("p", {
33
+ className: "text-(length:--cue-text-body) leading-(--cue-leading-ui)",
34
+ children: claims.map((claim) => /* @__PURE__ */ jsxs("button", {
35
+ type: "button",
36
+ "aria-describedby": hoveredId === claim.id ? basisId : void 0,
37
+ onMouseEnter: () => onHover?.(claim.id),
38
+ onMouseLeave: () => onHover?.(""),
39
+ onFocus: () => onHover?.(claim.id),
40
+ onBlur: () => onHover?.(""),
41
+ className: cn("focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent inline cursor-help rounded-(--radius-control) text-start underline decoration-2 underline-offset-[3px] transition-colors outline-none", UNDERLINE[claim.confidence], hoveredId === claim.id ? "text-fg" : "text-fg-muted"),
42
+ children: [claim.text, " "]
43
+ }, claim.id))
44
+ }), /* @__PURE__ */ jsx("div", {
45
+ className: "flex h-9 items-start",
46
+ children: hovered && /* @__PURE__ */ jsxs("span", {
47
+ id: basisId,
48
+ role: "status",
49
+ className: cn("bg-surface-2 border border-border-overlay", "font-mono text-(length:--cue-text-label) tracking-tight", "cue-elements-fade-in cue-elements-zoom-in-95 cue-elements-animate-in text-fg-muted flex items-center gap-1.5 rounded-full px-2.5 py-1.5 duration-150"),
50
+ children: [
51
+ /* @__PURE__ */ jsx("span", {
52
+ "aria-hidden": true,
53
+ className: cn("size-1.5 rounded-full", hovered.confidence === "grounded" && "bg-ok", hovered.confidence === "inferred" && "bg-warn", hovered.confidence === "uncertain" && "bg-danger")
54
+ }),
55
+ LABEL[hovered.confidence],
56
+ " · ",
57
+ hovered.basis
58
+ ]
59
+ })
60
+ })]
61
+ });
62
+ }
63
+ //#endregion
64
+ export { ConfidenceMarker };
@@ -0,0 +1,29 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/connection-state.d.ts
3
+ /**
4
+ * Where the stream is: `online`, `dropped`, `reconnecting`, or `resumed` — the beat
5
+ * after a reconnect where the tokens that arrived while the socket was down are handed
6
+ * over. The run itself never stopped; only the transport did.
7
+ */
8
+ type ConnectionPhase = "online" | "dropped" | "reconnecting" | "resumed";
9
+ /**
10
+ * The socket drops, the run keeps going on the server, and the stream is picked back
11
+ * up.
12
+ *
13
+ * @example
14
+ * import { ConnectionState } from "@cueplusplus/ui/elements";
15
+ *
16
+ * <ConnectionState phase="reconnecting" attempt={2} onRetry={reconnect} />
17
+ */
18
+ declare function ConnectionState({ phase, attempt, resumedTokens, onRetry, className, ...props }: Omit<ComponentProps<"div">, "children" | "phase" | "attempt" | "resumedTokens" | "onRetry"> & {
19
+ /** Which banner to show. online renders nothing, so the element can stay mounted. */
20
+ phase: ConnectionPhase;
21
+ /** Retry number, shown while reconnecting. */
22
+ attempt?: number;
23
+ /** How much of the stream was recovered, shown once resumed. */
24
+ resumedTokens?: number;
25
+ /** Called from the Reconnect button while dropped. */
26
+ onRetry?: () => void;
27
+ }): import("react").JSX.Element | null;
28
+ //#endregion
29
+ export { ConnectionPhase, ConnectionState };
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { paper } from "./surfaces.js";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ import { CheckIcon, CloudOffIcon, Loader2Icon } from "lucide-react";
6
+ //#region src/elements/connection-state.tsx
7
+ /**
8
+ * The socket drops, the run keeps going on the server, and the stream is picked back
9
+ * up.
10
+ *
11
+ * @example
12
+ * import { ConnectionState } from "@cueplusplus/ui/elements";
13
+ *
14
+ * <ConnectionState phase="reconnecting" attempt={2} onRetry={reconnect} />
15
+ */
16
+ function ConnectionState({ phase, attempt, resumedTokens, onRetry, className, ...props }) {
17
+ if (phase === "online") return null;
18
+ return /* @__PURE__ */ jsxs("div", {
19
+ "data-slot": "connection-state",
20
+ className: cn(paper, "cue-elements-fade-in cue-elements-slide-in-from-top-1 cue-elements-animate-in flex w-full max-w-sm items-center gap-2.5 rounded-(--radius-overlay) px-3.5 py-2.5 duration-300", className),
21
+ ...props,
22
+ children: [
23
+ phase === "dropped" && /* @__PURE__ */ jsxs(Fragment, { children: [
24
+ /* @__PURE__ */ jsx(CloudOffIcon, { className: "size-3.5 shrink-0 text-warn" }),
25
+ /* @__PURE__ */ jsx("span", {
26
+ className: "min-w-0 flex-1 text-(length:--cue-text-body)",
27
+ children: "Connection lost. The run kept going on the server."
28
+ }),
29
+ /* @__PURE__ */ jsx("button", {
30
+ type: "button",
31
+ onClick: onRetry,
32
+ className: "text-fg-muted hover:bg-surface-2 hover:text-fg shrink-0 rounded-full px-2.5 py-1 text-(length:--cue-text-ui) font-medium transition-[background-color,color,scale] duration-150 active:scale-[0.96]",
33
+ children: "Reconnect"
34
+ })
35
+ ] }),
36
+ phase === "reconnecting" && /* @__PURE__ */ jsxs(Fragment, { children: [
37
+ /* @__PURE__ */ jsx(Loader2Icon, { className: "text-fg-subtle size-3.5 shrink-0 animate-spin motion-reduce:animate-none" }),
38
+ /* @__PURE__ */ jsx("span", {
39
+ className: "min-w-0 flex-1 text-(length:--cue-text-body)",
40
+ children: "Reconnecting"
41
+ }),
42
+ attempt !== void 0 && /* @__PURE__ */ jsxs("span", {
43
+ className: cn("font-mono text-(length:--cue-text-label) tracking-tight", "text-fg-subtle shrink-0 tabular-nums"),
44
+ children: ["attempt ", attempt]
45
+ })
46
+ ] }),
47
+ phase === "resumed" && /* @__PURE__ */ jsxs(Fragment, { children: [
48
+ /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5 shrink-0 text-ok" }),
49
+ /* @__PURE__ */ jsx("span", {
50
+ className: "min-w-0 flex-1 text-(length:--cue-text-body)",
51
+ children: "Picked the stream back up."
52
+ }),
53
+ resumedTokens !== void 0 && /* @__PURE__ */ jsxs("span", {
54
+ className: cn("font-mono text-(length:--cue-text-label) tracking-tight", "text-fg-subtle shrink-0 tabular-nums"),
55
+ children: [
56
+ "+",
57
+ resumedTokens,
58
+ " tokens"
59
+ ]
60
+ })
61
+ ] })
62
+ ]
63
+ });
64
+ }
65
+ //#endregion
66
+ export { ConnectionState };
@@ -0,0 +1,30 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/context-breakdown.d.ts
3
+ /** One occupant of the context window, in the bar and in the legend under it. */
4
+ interface ContextSegment {
5
+ /** What this slice of the window is, shown in the legend. */
6
+ label: string;
7
+ /** Raw token count. The element formats it. */
8
+ tokens: number;
9
+ /** Background class shared by the bar slice and the legend dot, so the two always agree. */
10
+ tint: string;
11
+ }
12
+ /**
13
+ * Where the window actually went: prompt, tools, files, conversation, and what's left.
14
+ *
15
+ * @example
16
+ * import { ContextBreakdown } from "@cueplusplus/ui/elements";
17
+ *
18
+ * <ContextBreakdown segments={segments} limit={128000} />
19
+ */
20
+ declare function ContextBreakdown({ segments, limit, className, ...props }: Omit<ComponentProps<"div">, "children" | "segments" | "limit"> & {
21
+ /** What is occupying the window, in stacking order. Headroom is derived, not passed. */
22
+ segments: readonly ContextSegment[];
23
+ /**
24
+ * Window size. The header turns amber once the segments pass 85 percent of it. A
25
+ * zero limit is treated as zero pressure rather than dividing by it.
26
+ */
27
+ limit: number;
28
+ }): import("react").JSX.Element;
29
+ //#endregion
30
+ export { ContextBreakdown, ContextSegment };
@@ -0,0 +1,86 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { mono, paper } from "./surfaces.js";
4
+ import { pct } from "./range.js";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/elements/context-breakdown.tsx
7
+ const fmt = (n) => n.toLocaleString("en-US");
8
+ /**
9
+ * Where the window actually went: prompt, tools, files, conversation, and what's left.
10
+ *
11
+ * @example
12
+ * import { ContextBreakdown } from "@cueplusplus/ui/elements";
13
+ *
14
+ * <ContextBreakdown segments={segments} limit={128000} />
15
+ */
16
+ function ContextBreakdown({ segments, limit, className, ...props }) {
17
+ const used = segments.reduce((sum, segment) => sum + segment.tokens, 0);
18
+ const pressure = limit === 0 ? 0 : used / limit;
19
+ const share = (tokens) => pct(tokens, limit);
20
+ return /* @__PURE__ */ jsxs("div", {
21
+ "data-slot": "context-breakdown",
22
+ className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-(--radius-overlay) p-4", className),
23
+ ...props,
24
+ children: [
25
+ /* @__PURE__ */ jsxs("div", {
26
+ className: "flex items-baseline justify-between",
27
+ children: [/* @__PURE__ */ jsx("span", {
28
+ className: "text-(length:--cue-text-body) font-medium",
29
+ children: "Context"
30
+ }), /* @__PURE__ */ jsxs("span", {
31
+ className: cn(mono, "tabular-nums", pressure > .85 ? "text-warn" : "text-fg-subtle"),
32
+ children: [
33
+ fmt(used),
34
+ " / ",
35
+ fmt(limit)
36
+ ]
37
+ })]
38
+ }),
39
+ /* @__PURE__ */ jsx("div", {
40
+ className: "bg-surface-2 flex h-2 w-full overflow-hidden rounded-full",
41
+ children: segments.map((segment) => /* @__PURE__ */ jsx("span", {
42
+ className: cn("h-full transition-[width] duration-500 ease-out motion-reduce:transition-none", segment.tint),
43
+ style: { width: `${share(segment.tokens)}%` }
44
+ }, segment.label))
45
+ }),
46
+ /* @__PURE__ */ jsxs("div", {
47
+ className: "flex flex-col gap-1.5",
48
+ children: [segments.map((segment) => /* @__PURE__ */ jsxs("div", {
49
+ className: "flex items-center gap-2",
50
+ children: [
51
+ /* @__PURE__ */ jsx("span", {
52
+ "aria-hidden": true,
53
+ className: cn("size-2 shrink-0 rounded-full", segment.tint)
54
+ }),
55
+ /* @__PURE__ */ jsx("span", {
56
+ className: "text-fg-muted min-w-0 flex-1 truncate text-(length:--cue-text-body)",
57
+ children: segment.label
58
+ }),
59
+ /* @__PURE__ */ jsx("span", {
60
+ className: cn(mono, "text-fg-subtle shrink-0 tabular-nums"),
61
+ children: fmt(segment.tokens)
62
+ })
63
+ ]
64
+ }, segment.label)), /* @__PURE__ */ jsxs("div", {
65
+ className: "flex items-center gap-2",
66
+ children: [
67
+ /* @__PURE__ */ jsx("span", {
68
+ "aria-hidden": true,
69
+ className: "bg-surface-2 size-2 shrink-0 rounded-full"
70
+ }),
71
+ /* @__PURE__ */ jsx("span", {
72
+ className: "text-fg-subtle min-w-0 flex-1 truncate text-(length:--cue-text-body)",
73
+ children: "Headroom"
74
+ }),
75
+ /* @__PURE__ */ jsx("span", {
76
+ className: cn(mono, "text-fg-subtle shrink-0 tabular-nums"),
77
+ children: fmt(Math.max(0, limit - used))
78
+ })
79
+ ]
80
+ })]
81
+ })
82
+ ]
83
+ });
84
+ }
85
+ //#endregion
86
+ export { ContextBreakdown };
@@ -0,0 +1,99 @@
1
+ import { ContextLabels } from "./vocabulary.js";
2
+ import * as React from "react";
3
+ //#region src/elements/context-usage.d.ts
4
+ /**
5
+ * Which hue a slice of the window takes.
6
+ *
7
+ * Cursor's `data-color`, narrowed to the tokens this family paints from. It is
8
+ * a closed set rather than a class name because the attribute is also stamped
9
+ * on the DOM: `[data-color="warn"]` is reachable from a stylesheet, so a
10
+ * console that wants its own palette for the bar restyles it from outside
11
+ * instead of passing paint in.
12
+ */
13
+ type ContextTone = "stream" | "ok" | "warn" | "danger" | "accent" | "neutral";
14
+ /** One occupant of the context window: a slice of the bar and a row under it. */
15
+ interface ContextCategory {
16
+ /** What this part of the window is. `CONTEXT_CATEGORY_LABELS` is the shipped set. */
17
+ label: string;
18
+ /** Raw token count. The element formats it and works out its share. */
19
+ tokens: number;
20
+ /**
21
+ * Which hue it takes. Omit and it takes the next one in the family's
22
+ * rotation, by its position in the list.
23
+ */
24
+ tone?: ContextTone;
25
+ }
26
+ /** One number under the bar: a token count, a limit, a cost. */
27
+ interface ContextStat {
28
+ /** What it is. `CONTEXT_STAT_LABELS` is the shipped set. */
29
+ label: string;
30
+ /**
31
+ * The value, already formatted. The element does no currency maths and no
32
+ * rounding, so a meter and a billing page cannot disagree about `$3.12`.
33
+ */
34
+ value: string;
35
+ }
36
+ interface ContextUsageProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
37
+ /**
38
+ * What is occupying the window, in the order it stacks in the bar. Headroom
39
+ * is derived from the limit, never passed.
40
+ */
41
+ categories: readonly ContextCategory[];
42
+ /**
43
+ * The window's size, in tokens. A limit of zero is treated as no pressure
44
+ * rather than divided by.
45
+ */
46
+ limit: number;
47
+ /**
48
+ * The numbers under the bar: input, output, reasoning and cache tokens, the
49
+ * limit, the cost. Pre-formatted, and drawn in the order given.
50
+ * `CONTEXT_STAT_LABELS` carries opencode's names for them.
51
+ */
52
+ stats?: readonly ContextStat[];
53
+ /**
54
+ * The meter's own six strings, merged over `CONTEXT_LABELS`: its title, the
55
+ * three column headings, the headroom row and the phrase after the
56
+ * percentage.
57
+ */
58
+ labels?: Partial<ContextLabels>;
59
+ }
60
+ /**
61
+ * Where the window went, what share each part of it took, and what that cost.
62
+ *
63
+ * A context limit tells a reader nothing they can act on. This says which four
64
+ * things are holding the window open, so the answer to "why did it forget the
65
+ * thing I said an hour ago" can be *the venue's documents are 38k of it* rather
66
+ * than a number going up. The bar is the shape, the table is the argument, and
67
+ * the stat rows underneath are what turn it from a gauge into a bill.
68
+ *
69
+ * The breakdown is a real table with real column headers, which is Claude
70
+ * Code's own shape and the right one: three columns of numbers whose meaning is
71
+ * carried by the heading above them is exactly what a `<table>` is for, and a
72
+ * grid of `<div>`s says none of it to a screen reader.
73
+ *
74
+ * Pressure is stated on the element as `data-pressure` — `ok`, `high` past 85
75
+ * per cent, `over` past the limit — and the header figure takes the warning hue
76
+ * with it. Past the limit the bar simply fills: there is no headroom left to
77
+ * draw, and a segment hanging off the end would be a picture of a number rather
78
+ * than of a window.
79
+ *
80
+ * @example
81
+ * import { ContextUsage, CONTEXT_CATEGORY_LABELS } from "@cueplusplus/ui/elements";
82
+ *
83
+ * <ContextUsage
84
+ * limit={200_000}
85
+ * categories={[
86
+ * { label: CONTEXT_CATEGORY_LABELS.system, tokens: 11_800 },
87
+ * { label: CONTEXT_CATEGORY_LABELS.tools, tokens: 38_400 },
88
+ * { label: CONTEXT_CATEGORY_LABELS.assistant, tokens: 21_100 },
89
+ * ]}
90
+ * stats={[{ label: "Total cost", value: "$3.12" }]}
91
+ * />
92
+ * @example
93
+ * // Over the limit: the bar is full, the headroom row is zero, and the header
94
+ * // figure says so in the danger hue.
95
+ * <ContextUsage limit={128_000} categories={categories} />
96
+ */
97
+ declare const ContextUsage: React.ForwardRefExoticComponent<ContextUsageProps & React.RefAttributes<HTMLDivElement>>;
98
+ //#endregion
99
+ export { ContextCategory, ContextStat, ContextTone, ContextUsage, ContextUsageProps };
@@ -0,0 +1,225 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { mono, paper } from "./surfaces.js";
4
+ import { CONTEXT_LABELS } from "./vocabulary.js";
5
+ import { pct } from "./range.js";
6
+ import * as React from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/elements/context-usage.tsx
9
+ /** What a `tone` paints, in the bar and in the swatch beside its row. */
10
+ const TONE_FILL = {
11
+ stream: "bg-stream/70",
12
+ ok: "bg-ok/60",
13
+ warn: "bg-warn/60",
14
+ danger: "bg-danger/60",
15
+ accent: "bg-accent/60",
16
+ neutral: "bg-fg/25"
17
+ };
18
+ /**
19
+ * The rotation a category takes when it does not name a tone.
20
+ *
21
+ * Five categories is opencode's whole breakdown, and a caller who has to pick
22
+ * five colours to see a bar at all will pick five that fight. The order is the
23
+ * family's usual reading: what is live, what is settled, what is heavy.
24
+ */
25
+ const TONE_ROTATION = [
26
+ "stream",
27
+ "ok",
28
+ "warn",
29
+ "accent",
30
+ "neutral"
31
+ ];
32
+ /** Counts, the way a window's own numbers are written: `24,300`. */
33
+ const fmt = (value) => Math.max(0, Math.round(value)).toLocaleString("en-US");
34
+ /** A share as a meter says it: whole percents, and `<1%` for the ones that round to nothing. */
35
+ function share(tokens, limit) {
36
+ const value = pct(tokens, limit);
37
+ if (value > 0 && value < 1) return "<1%";
38
+ return `${Math.round(value)}%`;
39
+ }
40
+ /**
41
+ * Where the window went, what share each part of it took, and what that cost.
42
+ *
43
+ * A context limit tells a reader nothing they can act on. This says which four
44
+ * things are holding the window open, so the answer to "why did it forget the
45
+ * thing I said an hour ago" can be *the venue's documents are 38k of it* rather
46
+ * than a number going up. The bar is the shape, the table is the argument, and
47
+ * the stat rows underneath are what turn it from a gauge into a bill.
48
+ *
49
+ * The breakdown is a real table with real column headers, which is Claude
50
+ * Code's own shape and the right one: three columns of numbers whose meaning is
51
+ * carried by the heading above them is exactly what a `<table>` is for, and a
52
+ * grid of `<div>`s says none of it to a screen reader.
53
+ *
54
+ * Pressure is stated on the element as `data-pressure` — `ok`, `high` past 85
55
+ * per cent, `over` past the limit — and the header figure takes the warning hue
56
+ * with it. Past the limit the bar simply fills: there is no headroom left to
57
+ * draw, and a segment hanging off the end would be a picture of a number rather
58
+ * than of a window.
59
+ *
60
+ * @example
61
+ * import { ContextUsage, CONTEXT_CATEGORY_LABELS } from "@cueplusplus/ui/elements";
62
+ *
63
+ * <ContextUsage
64
+ * limit={200_000}
65
+ * categories={[
66
+ * { label: CONTEXT_CATEGORY_LABELS.system, tokens: 11_800 },
67
+ * { label: CONTEXT_CATEGORY_LABELS.tools, tokens: 38_400 },
68
+ * { label: CONTEXT_CATEGORY_LABELS.assistant, tokens: 21_100 },
69
+ * ]}
70
+ * stats={[{ label: "Total cost", value: "$3.12" }]}
71
+ * />
72
+ * @example
73
+ * // Over the limit: the bar is full, the headroom row is zero, and the header
74
+ * // figure says so in the danger hue.
75
+ * <ContextUsage limit={128_000} categories={categories} />
76
+ */
77
+ const ContextUsage = React.forwardRef(function ContextUsage({ categories, limit, stats, labels, className, ...elementProps }, ref) {
78
+ const copy = {
79
+ ...CONTEXT_LABELS,
80
+ ...labels
81
+ };
82
+ const used = categories.reduce((sum, category) => sum + Math.max(0, category.tokens), 0);
83
+ const ratio = limit > 0 ? used / limit : 0;
84
+ const pressure = ratio > 1 ? "over" : ratio >= .85 ? "high" : "ok";
85
+ const headroom = Math.max(0, limit - used);
86
+ const rows = categories.map((category, index) => ({
87
+ category,
88
+ tone: category.tone ?? TONE_ROTATION[index % TONE_ROTATION.length]
89
+ }));
90
+ return /* @__PURE__ */ jsxs("div", {
91
+ ref,
92
+ "data-slot": "context-usage",
93
+ "data-pressure": pressure,
94
+ className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-(--radius-overlay) p-4", className),
95
+ ...elementProps,
96
+ children: [
97
+ /* @__PURE__ */ jsxs("div", {
98
+ className: "flex items-baseline justify-between gap-2",
99
+ children: [/* @__PURE__ */ jsxs("span", {
100
+ className: "flex min-w-0 flex-col",
101
+ children: [/* @__PURE__ */ jsx("span", {
102
+ className: "text-(length:--cue-text-body) font-medium",
103
+ children: copy.title
104
+ }), /* @__PURE__ */ jsxs("span", {
105
+ className: cn(mono, "text-fg-subtle truncate tabular-nums"),
106
+ children: [
107
+ share(used, limit),
108
+ " ",
109
+ copy.used
110
+ ]
111
+ })]
112
+ }), /* @__PURE__ */ jsxs("span", {
113
+ className: cn(mono, "shrink-0 tabular-nums", pressure === "over" ? "text-danger" : pressure === "high" ? "text-warn" : "text-fg-subtle"),
114
+ children: [
115
+ fmt(used),
116
+ " / ",
117
+ fmt(limit)
118
+ ]
119
+ })]
120
+ }),
121
+ /* @__PURE__ */ jsx("div", {
122
+ "aria-hidden": true,
123
+ className: "bg-surface-2 flex h-2 w-full overflow-hidden rounded-full",
124
+ children: rows.map(({ category, tone }) => /* @__PURE__ */ jsx("span", {
125
+ "data-slot": "context-usage-segment",
126
+ "data-color": tone,
127
+ className: cn("h-full transition-[width] duration-500 ease-out motion-reduce:transition-none", TONE_FILL[tone]),
128
+ style: { width: `${pct(category.tokens, limit)}%` }
129
+ }, category.label))
130
+ }),
131
+ /* @__PURE__ */ jsxs("table", {
132
+ "data-slot": "context-usage-breakdown",
133
+ className: "w-full border-collapse",
134
+ children: [/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", {
135
+ className: cn(mono, "text-fg-subtle uppercase"),
136
+ children: [
137
+ /* @__PURE__ */ jsx("th", {
138
+ scope: "col",
139
+ className: "pb-1 text-start font-normal tracking-[0.12em]",
140
+ children: copy.category
141
+ }),
142
+ /* @__PURE__ */ jsx("th", {
143
+ scope: "col",
144
+ className: "pb-1 text-end font-normal tracking-[0.12em]",
145
+ children: copy.tokens
146
+ }),
147
+ /* @__PURE__ */ jsx("th", {
148
+ scope: "col",
149
+ className: "pb-1 text-end font-normal tracking-[0.12em]",
150
+ children: copy.usage
151
+ })
152
+ ]
153
+ }) }), /* @__PURE__ */ jsxs("tbody", {
154
+ className: "text-(length:--cue-text-body)",
155
+ children: [rows.map(({ category, tone }) => /* @__PURE__ */ jsxs("tr", { children: [
156
+ /* @__PURE__ */ jsx("th", {
157
+ scope: "row",
158
+ className: "py-0.5 text-start font-normal",
159
+ children: /* @__PURE__ */ jsxs("span", {
160
+ className: "flex items-center gap-2",
161
+ children: [/* @__PURE__ */ jsx("span", {
162
+ "aria-hidden": true,
163
+ className: cn("size-2 shrink-0 rounded-full", TONE_FILL[tone])
164
+ }), /* @__PURE__ */ jsx("span", {
165
+ className: "text-fg-muted min-w-0 truncate",
166
+ children: category.label
167
+ })]
168
+ })
169
+ }),
170
+ /* @__PURE__ */ jsx("td", {
171
+ className: cn(mono, "text-fg-subtle py-0.5 text-end tabular-nums"),
172
+ children: fmt(category.tokens)
173
+ }),
174
+ /* @__PURE__ */ jsx("td", {
175
+ className: cn(mono, "text-fg-subtle py-0.5 text-end tabular-nums"),
176
+ children: share(category.tokens, limit)
177
+ })
178
+ ] }, category.label)), /* @__PURE__ */ jsxs("tr", {
179
+ "data-slot": "context-usage-headroom",
180
+ children: [
181
+ /* @__PURE__ */ jsx("th", {
182
+ scope: "row",
183
+ className: "py-0.5 text-start font-normal",
184
+ children: /* @__PURE__ */ jsxs("span", {
185
+ className: "flex items-center gap-2",
186
+ children: [/* @__PURE__ */ jsx("span", {
187
+ "aria-hidden": true,
188
+ className: "bg-surface-2 size-2 shrink-0 rounded-full"
189
+ }), /* @__PURE__ */ jsx("span", {
190
+ className: "text-fg-subtle min-w-0 truncate",
191
+ children: copy.headroom
192
+ })]
193
+ })
194
+ }),
195
+ /* @__PURE__ */ jsx("td", {
196
+ className: cn(mono, "text-fg-subtle py-0.5 text-end tabular-nums"),
197
+ children: fmt(headroom)
198
+ }),
199
+ /* @__PURE__ */ jsx("td", {
200
+ className: cn(mono, "text-fg-subtle py-0.5 text-end tabular-nums"),
201
+ children: share(headroom, limit)
202
+ })
203
+ ]
204
+ })]
205
+ })]
206
+ }),
207
+ stats === void 0 || stats.length === 0 ? null : /* @__PURE__ */ jsx("dl", {
208
+ "data-slot": "context-usage-stats",
209
+ className: "border-border flex flex-col gap-1 border-t pt-3",
210
+ children: stats.map((stat) => /* @__PURE__ */ jsxs("div", {
211
+ className: "flex items-baseline justify-between gap-2",
212
+ children: [/* @__PURE__ */ jsx("dt", {
213
+ className: "text-fg-muted min-w-0 truncate text-(length:--cue-text-body)",
214
+ children: stat.label
215
+ }), /* @__PURE__ */ jsx("dd", {
216
+ className: cn(mono, "text-fg-subtle shrink-0 tabular-nums"),
217
+ children: stat.value
218
+ })]
219
+ }, stat.label))
220
+ })
221
+ ]
222
+ });
223
+ });
224
+ //#endregion
225
+ export { ContextUsage };
@@ -0,0 +1,48 @@
1
+ import { ComponentProps } from "react";
2
+ //#region src/elements/conversation-search.d.ts
3
+ interface SearchHit {
4
+ /** Stable identity for the rail mark. */
5
+ id: string;
6
+ /** Text preceding the match, for the preview. */
7
+ before: string;
8
+ /** The matched run, highlighted between before and after. */
9
+ match: string;
10
+ /** Text following the match. */
11
+ after: string;
12
+ /** Where the hit sits in the thread, as a percentage. Drives the scrollbar marks. */
13
+ position: number;
14
+ }
15
+ /**
16
+ * Find inside a long thread, with every hit marked down the scrollbar.
17
+ *
18
+ * @example
19
+ * import { ConversationSearch } from "@cueplusplus/ui/elements";
20
+ *
21
+ * <ConversationSearch
22
+ * query={query}
23
+ * hits={hits}
24
+ * activeIndex={0}
25
+ * onQueryChange={setQuery}
26
+ * onStep={step}
27
+ * />
28
+ */
29
+ declare function ConversationSearch({ query, hits, activeIndex, onQueryChange, onStep, className, ...props }: Omit<ComponentProps<"div">, "children" | "query" | "hits" | "activeIndex" | "onQueryChange" | "onStep"> & {
30
+ /** Current search text. */
31
+ query: string;
32
+ /**
33
+ * Matches in document order. Each carries its own surrounding text so no lookup is
34
+ * needed to render the preview.
35
+ */
36
+ hits: readonly SearchHit[];
37
+ /**
38
+ * Which hit is current, in both the counter and the rail. Clamped to the current hit
39
+ * set, so narrowing the results cannot strand it out of range.
40
+ */
41
+ activeIndex: number;
42
+ /** Called as the search is typed. */
43
+ onQueryChange?: (query: string) => void;
44
+ /** Called with -1 or 1 to walk the matches. Wrap the index yourself. */
45
+ onStep?: (delta: number) => void;
46
+ }): import("react").JSX.Element;
47
+ //#endregion
48
+ export { ConversationSearch, SearchHit };