@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,77 @@
1
+ import { BarOverflow } from "./_edge-scroller.js";
2
+ import * as React from "react";
3
+ import { ToggleGroup } from "@base-ui/react/toggle-group";
4
+ //#region src/chrome/segmented-control.d.ts
5
+ /** The rung of the density control ladder a segmented control sits on. */
6
+ type SegmentedControlSize = "sm" | "md" | "lg";
7
+ /** One segment of a {@link SegmentedControl}. */
8
+ interface SegmentedControlItem {
9
+ /** The value reported when this segment is picked. Must be unique. */
10
+ value: string;
11
+ /** What the segment says. Keep it to one word where possible. */
12
+ label: React.ReactNode;
13
+ /** Optional leading icon (e.g. a lucide icon), drawn `aria-hidden`. */
14
+ icon?: React.ElementType;
15
+ /** Grey this segment out and make it unpickable. */
16
+ disabled?: boolean;
17
+ }
18
+ interface SegmentedControlProps extends Omit<ToggleGroup.Props<string>, "value" | "defaultValue" | "onValueChange" | "multiple" | "className" | "children"> {
19
+ /** The segments, in display order. */
20
+ items: readonly SegmentedControlItem[];
21
+ /** The picked value when controlled. Pass with `onValueChange`. */
22
+ value?: string;
23
+ /** The initially picked value when uncontrolled. */
24
+ defaultValue?: string;
25
+ /** Called with the newly picked value. Never called with `undefined`. */
26
+ onValueChange?: (value: string) => void;
27
+ /** Which rung of the control ladder to sit on. Defaults to `"md"`. */
28
+ size?: SegmentedControlSize;
29
+ /** Extra classes for the group frame. */
30
+ className?: string;
31
+ /** Extra classes for every segment. */
32
+ itemClassName?: string;
33
+ /**
34
+ * What the control does when its segments do not fit. Defaults to `"scroll"`.
35
+ *
36
+ * The same behaviour `Toolbar` has, from the same module, for the same
37
+ * reason: a switcher with five segments in a page header's actions slot runs
38
+ * off a phone-width screen, and wrapping it would turn a one-rung control
39
+ * into a two-row block that no longer reads as one switch. `"scroll"` keeps
40
+ * the rim and the height, scrolls the segments inside them, fades the
41
+ * overflowing edge and offers a pager chevron there.
42
+ *
43
+ * `"clip"` is the old behaviour, for a control already inside something that
44
+ * scrolls.
45
+ */
46
+ overflow?: BarOverflow;
47
+ /** Accessible name for the chevron that reveals segments off the leading edge. */
48
+ previousLabel?: string;
49
+ /** Accessible name for the chevron that reveals segments off the trailing edge. */
50
+ nextLabel?: string;
51
+ }
52
+ /**
53
+ * A one-of-N switch drawn as a row of segments: the console's view picker.
54
+ *
55
+ * Built on Base UI's `ToggleGroup`, so arrow-key roving focus and the
56
+ * pressed-state ARIA come from the primitive. Two rules are added on top:
57
+ *
58
+ * 1. **It cannot be emptied.** A toggle group lets you unpress the pressed
59
+ * item; a segmented control is a choice between N things, so clicking the
60
+ * active segment is a no-op rather than a way to end up with nothing
61
+ * selected. This is why the underlying group is always controlled here, even
62
+ * when the wrapper is not.
63
+ * 2. **The active segment is tinted, not filled** — see {@link ITEM_CLASSES}.
64
+ *
65
+ * Give the group an `aria-label`: on its own it is an unnamed group of buttons.
66
+ *
67
+ * @example
68
+ * <SegmentedControl
69
+ * aria-label="View"
70
+ * value={view}
71
+ * onValueChange={setView}
72
+ * items={[{ value: "beams", label: "Beams" }, { value: "patch", label: "Patch" }]}
73
+ * />
74
+ */
75
+ declare const SegmentedControl: React.ForwardRefExoticComponent<Omit<SegmentedControlProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
76
+ //#endregion
77
+ export { SegmentedControl, SegmentedControlItem, SegmentedControlProps, SegmentedControlSize };
@@ -0,0 +1,95 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { useComposedRefs } from "../lib/compose.js";
4
+ import { EDGE_SCROLLER_CLASSES, EdgeChevrons, useEdgeScroll } from "./_edge-scroller.js";
5
+ import * as React from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { Toggle } from "@base-ui/react/toggle";
8
+ import { ToggleGroup } from "@base-ui/react/toggle-group";
9
+ //#region src/chrome/segmented-control.tsx
10
+ const ITEM_SIZES = {
11
+ sm: "h-control-sm px-(--cue-space-3) text-(length:--cue-text-label)",
12
+ md: "h-control-md px-(--cue-space-4) text-(length:--cue-text-ui)",
13
+ lg: "h-control-lg px-(--cue-space-5) text-(length:--cue-text-body)"
14
+ };
15
+ /**
16
+ * The pressed segment is marked with `accent-soft` and accent ink — never a
17
+ * solid accent fill. A solid bar inside a small control reads as a second,
18
+ * louder button and drowns the labels around it (the luma defect ruling); the
19
+ * soft tint says "this one" at exactly the volume a view switcher deserves.
20
+ */
21
+ const ITEM_CLASSES = "inline-flex shrink-0 cursor-pointer select-none items-center justify-center gap-(--cue-space-2) whitespace-nowrap rounded-(--radius-control) font-mono text-fg-muted transition-colors duration-150 outline-none hover:text-fg data-[pressed]:bg-accent-soft data-[pressed]:text-accent focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-40 data-[disabled]:pointer-events-none data-[disabled]:opacity-40";
22
+ /**
23
+ * A one-of-N switch drawn as a row of segments: the console's view picker.
24
+ *
25
+ * Built on Base UI's `ToggleGroup`, so arrow-key roving focus and the
26
+ * pressed-state ARIA come from the primitive. Two rules are added on top:
27
+ *
28
+ * 1. **It cannot be emptied.** A toggle group lets you unpress the pressed
29
+ * item; a segmented control is a choice between N things, so clicking the
30
+ * active segment is a no-op rather than a way to end up with nothing
31
+ * selected. This is why the underlying group is always controlled here, even
32
+ * when the wrapper is not.
33
+ * 2. **The active segment is tinted, not filled** — see {@link ITEM_CLASSES}.
34
+ *
35
+ * Give the group an `aria-label`: on its own it is an unnamed group of buttons.
36
+ *
37
+ * @example
38
+ * <SegmentedControl
39
+ * aria-label="View"
40
+ * value={view}
41
+ * onValueChange={setView}
42
+ * items={[{ value: "beams", label: "Beams" }, { value: "patch", label: "Patch" }]}
43
+ * />
44
+ */
45
+ const SegmentedControl = React.forwardRef(function SegmentedControl({ items, value: valueProp, defaultValue, onValueChange, size = "md", className, itemClassName, overflow = "scroll", previousLabel = "Show earlier segments", nextLabel = "Show later segments", ...groupProps }, ref) {
46
+ const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);
47
+ const value = valueProp ?? uncontrolledValue;
48
+ const scrolls = overflow === "scroll";
49
+ const scroll = useEdgeScroll(scrolls);
50
+ const groupRef = useComposedRefs(ref, scroll.ref);
51
+ const handleValueChange = (groupValue) => {
52
+ const next = groupValue[0];
53
+ if (next === void 0 || next === value) return;
54
+ if (valueProp === void 0) setUncontrolledValue(next);
55
+ onValueChange?.(next);
56
+ };
57
+ const iconSize = size === "sm" ? "size-icon-sm" : "size-icon-md";
58
+ return /* @__PURE__ */ jsxs("div", {
59
+ "data-slot": "segmented-control-frame",
60
+ className: cn("relative inline-flex max-w-full min-w-0 shrink-0 items-center rounded-(--radius-control) border border-border bg-surface-1 p-(--cue-space-1)", className),
61
+ children: [/* @__PURE__ */ jsx(ToggleGroup, {
62
+ ref: groupRef,
63
+ value: value === void 0 ? [] : [value],
64
+ onValueChange: handleValueChange,
65
+ "data-slot": "segmented-control",
66
+ className: cn("inline-flex min-w-0 items-center gap-(--cue-space-1)", scrolls ? EDGE_SCROLLER_CLASSES : null),
67
+ ...groupProps,
68
+ style: {
69
+ ...groupProps.style,
70
+ ...scroll.style
71
+ },
72
+ children: items.map((item) => {
73
+ const Icon = item.icon;
74
+ return /* @__PURE__ */ jsxs(Toggle, {
75
+ value: item.value,
76
+ disabled: item.disabled,
77
+ "data-slot": "segmented-control-item",
78
+ className: cn(ITEM_CLASSES, ITEM_SIZES[size], itemClassName),
79
+ children: [Icon === void 0 ? null : /* @__PURE__ */ jsx(Icon, {
80
+ "aria-hidden": "true",
81
+ className: cn("shrink-0", iconSize)
82
+ }), item.label]
83
+ }, item.value);
84
+ })
85
+ }), /* @__PURE__ */ jsx(EdgeChevrons, {
86
+ edges: scroll.edges,
87
+ onNudge: scroll.nudge,
88
+ previousLabel,
89
+ nextLabel,
90
+ className: "rounded-(--radius-control) bg-surface-1"
91
+ })]
92
+ });
93
+ });
94
+ //#endregion
95
+ export { SegmentedControl };
@@ -0,0 +1,129 @@
1
+ import { StatusBarProminence } from "./_status-bar.js";
2
+ import * as React from "react";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ //#region src/chrome/status-bar.d.ts
5
+ /**
6
+ * Ink for a status-bar item. `neutral` inherits the bar's own subtle grey; the
7
+ * rest are the shared status vocabulary, so "3 faults" in the status bar is the
8
+ * same red as the danger `Chip` that raised it.
9
+ */
10
+ type StatusBarTone = "neutral" | "accent" | "ok" | "busy" | "warn" | "danger" | "info";
11
+ /** Props for {@link StatusBar}: the native `<div>` surface plus `className`. */
12
+ type StatusBarProps = React.ComponentPropsWithoutRef<"div">;
13
+ interface StatusBarItemProps extends React.ComponentPropsWithoutRef<"div"> {
14
+ /** Ink for this item. Defaults to the bar's own subtle grey. */
15
+ tone?: StatusBarTone;
16
+ /**
17
+ * Start the trailing cluster here: pushes this item and everything after it
18
+ * to the far edge. Cheaper and more robust than a spacer element, which a
19
+ * caller has to remember to keep in the right place.
20
+ */
21
+ push?: boolean;
22
+ /** Optional leading icon (e.g. a lucide icon), drawn `aria-hidden`. */
23
+ icon?: React.ElementType;
24
+ /**
25
+ * Make the item a real control: a `<button type="button">` with hover, press
26
+ * and keyboard-focus feedback. Defaults to `false`.
27
+ *
28
+ * A native button, not a `<div>` with an `onClick` — keyboard order is DOM
29
+ * order, `Enter` and `Space` work because the platform makes them work, and
30
+ * assistive technology is told what the thing is by the element rather than
31
+ * by a role attribute that has to be kept honest by hand.
32
+ *
33
+ * **An icon-only interactive item needs an `aria-label`.** There is no text
34
+ * for a screen reader to read and the icon is drawn `aria-hidden`, so without
35
+ * one the control announces as "button" and nothing else.
36
+ */
37
+ interactive?: boolean;
38
+ /**
39
+ * How loudly the item states itself. Defaults to `"quiet"`.
40
+ *
41
+ * `quiet` is a reading: tone ink on the bar's own ground. `filled` is a chip
42
+ * — a full-height tone wash behind tone ink — for the small set of states
43
+ * that earn a colour of their own: a warning, an error, the remote you are
44
+ * attached to. It is loud deliberately, and a bar of five filled items is a
45
+ * bar nobody reads.
46
+ */
47
+ prominence?: StatusBarProminence;
48
+ /**
49
+ * Replace the rendered element (Base UI render prop) — `render={<a href="…" />}`
50
+ * for a status item that navigates.
51
+ *
52
+ * Implies {@link StatusBarItemProps.interactive}: whatever is rendered gets
53
+ * the control chassis, because an element a reader can click has to look like
54
+ * one whether it is a button or a link.
55
+ */
56
+ render?: useRender.RenderProp;
57
+ /**
58
+ * Grey the control out, take it out of the pointer's reach and announce it as
59
+ * disabled. Defaults to `false`. Ignored by a static item, which is a reading
60
+ * and not a control.
61
+ *
62
+ * Honoured whatever {@link StatusBarItemProps.render} renders, but by two
63
+ * routes: the `disabled` attribute where it means something — the default
64
+ * `<button>`, a form control, a component that takes a `disabled` prop of its
65
+ * own — and `aria-disabled` plus `data-disabled` everywhere, which is all an
66
+ * anchor gets. There is no such thing as a disabled link; a link that should
67
+ * not be followed should not be a link, and this states the intent rather
68
+ * than pretending to enforce it.
69
+ */
70
+ disabled?: boolean;
71
+ }
72
+ interface StatusBarGroupProps extends React.ComponentPropsWithoutRef<"div"> {
73
+ /**
74
+ * Start the trailing cluster at this group: pushes it and everything after it
75
+ * to the far edge, exactly as `push` does on a single item.
76
+ */
77
+ push?: boolean;
78
+ /**
79
+ * What the cluster is called. Optional, and worth giving whenever the members
80
+ * only make sense together — "Repository", "Connection" — because a `group`
81
+ * with no name is a landmark a screen reader reads straight past.
82
+ */
83
+ "aria-label"?: string;
84
+ }
85
+ /**
86
+ * The quiet strip along the bottom of a window.
87
+ *
88
+ * The smallest type in the system in the subtlest ink: a status bar is read
89
+ * when you go looking for it and ignored otherwise, so it must never compete
90
+ * with the work above it. Height comes from `--cue-chrome-statusbar`, and the
91
+ * bar clips rather than wrapping — one rung of the frame, always, whatever it
92
+ * is asked to hold.
93
+ *
94
+ * Items come in two kinds and the difference is deliberate. A plain
95
+ * `StatusBar.Item` is a **reading**: a `<div>`, inert by construction, with no
96
+ * hover, no focus and nothing to click — which is what most of a status bar is.
97
+ * `interactive` (or a `render`) makes one a **control**, and only then does it
98
+ * grow the button chassis, the full-height hover fill and the inset focus ring.
99
+ * `StatusBar.Group` fuses adjacent items into one segmented control.
100
+ *
101
+ * Not a live region — a status bar changes constantly (frame counters, DMX
102
+ * output), and announcing every change would make the app unusable with a
103
+ * screen reader. Put anything that genuinely must be announced in a `Toast`.
104
+ *
105
+ * Static markup — no `"use client"`. A bar of readings renders on the server
106
+ * and ships no JavaScript at all; the interactive item is the one part that
107
+ * crosses the boundary, and it crosses it alone (`./_status-bar-item.tsx`).
108
+ *
109
+ * @example
110
+ * <StatusBar>
111
+ * <StatusBar.Item icon={Plug} tone="ok">Art-Net connected</StatusBar.Item>
112
+ * <StatusBar.Item push>512 channels</StatusBar.Item>
113
+ * </StatusBar>
114
+ * @example
115
+ * // The VS Code shape: a clickable cluster left, a loud state right.
116
+ * <StatusBar>
117
+ * <StatusBar.Group aria-label="Repository">
118
+ * <StatusBar.Item interactive icon={GitBranch}>main</StatusBar.Item>
119
+ * <StatusBar.Item interactive icon={ArrowUp}>2</StatusBar.Item>
120
+ * </StatusBar.Group>
121
+ * <StatusBar.Item push interactive prominence="filled" tone="danger">3 faults</StatusBar.Item>
122
+ * </StatusBar>
123
+ */
124
+ declare const StatusBar: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>> & {
125
+ Item: React.ForwardRefExoticComponent<StatusBarItemProps & React.RefAttributes<HTMLElement>>;
126
+ Group: React.ForwardRefExoticComponent<StatusBarGroupProps & React.RefAttributes<HTMLDivElement>>;
127
+ };
128
+ //#endregion
129
+ export { StatusBar, StatusBarGroupProps, StatusBarItemProps, type StatusBarProminence, StatusBarProps, StatusBarTone };
@@ -0,0 +1,120 @@
1
+ import { cn } from "../lib/cn.js";
2
+ import { STATUS_BAR_GROUP_CLASSES, statusBarItemClasses } from "./_status-bar.js";
3
+ import { StatusBarInteractiveItem } from "./_status-bar-item.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/chrome/status-bar.tsx
7
+ const StatusBarRoot = React.forwardRef(function StatusBar({ className, ...elementProps }, ref) {
8
+ return /* @__PURE__ */ jsx("div", {
9
+ ref,
10
+ "data-slot": "status-bar",
11
+ className: cn("flex h-(--cue-chrome-statusbar) w-full shrink-0 items-center gap-(--cue-space-4) overflow-x-clip border-t border-border bg-surface-1 px-(--cue-pad-row-x) font-mono text-(length:--cue-text-label) text-fg-subtle", className),
12
+ ...elementProps
13
+ });
14
+ });
15
+ /**
16
+ * One reading in the bar: a mode, a count, a connection state — or, given
17
+ * `interactive`, one control in it.
18
+ */
19
+ const StatusBarItem = React.forwardRef(function StatusBarItem({ className, tone = "neutral", push = false, icon: Icon, interactive = false, prominence = "quiet", render, disabled, children, ...elementProps }, ref) {
20
+ if (interactive || render !== void 0) return /* @__PURE__ */ jsx(StatusBarInteractiveItem, {
21
+ ref,
22
+ tone,
23
+ prominence,
24
+ className,
25
+ push,
26
+ icon: Icon,
27
+ render,
28
+ disabled,
29
+ elementProps,
30
+ children
31
+ });
32
+ return /* @__PURE__ */ jsxs("div", {
33
+ ref,
34
+ "data-slot": "status-bar-item",
35
+ className: cn(statusBarItemClasses({
36
+ tone,
37
+ prominence
38
+ }), push ? "ml-auto" : void 0, className),
39
+ ...elementProps,
40
+ children: [Icon === void 0 ? null : /* @__PURE__ */ jsx(Icon, {
41
+ "aria-hidden": "true",
42
+ className: "size-icon-sm shrink-0"
43
+ }), children]
44
+ });
45
+ });
46
+ /**
47
+ * Items that belong to each other, one pixel apart.
48
+ *
49
+ * The bar spaces its readings at `--cue-space-4` because they are unrelated
50
+ * facts. A branch name and its ahead/behind count are not unrelated facts; they
51
+ * are one control that happens to have two halves, and the gap between them is
52
+ * what says so. This is VS Code's `compact` mechanic — the seam collapses, and
53
+ * hovering either half grounds both while the half under the cursor goes one
54
+ * rung further — expressed as a wrapper rather than as an id-reference between
55
+ * two items, because a design system's items do not have ids to point at.
56
+ *
57
+ * A `role="group"` rather than nothing: the members are announced as a set, and
58
+ * the DOM order they are announced in is the order they are read in. Give it an
59
+ * `aria-label` when the members only make sense together.
60
+ *
61
+ * @example
62
+ * <StatusBar.Group aria-label="Repository">
63
+ * <StatusBar.Item interactive icon={GitBranch}>main</StatusBar.Item>
64
+ * <StatusBar.Item interactive icon={ArrowUp}>2</StatusBar.Item>
65
+ * </StatusBar.Group>
66
+ */
67
+ const StatusBarGroup = React.forwardRef(function StatusBarGroup({ className, push = false, role = "group", ...elementProps }, ref) {
68
+ return /* @__PURE__ */ jsx("div", {
69
+ ref,
70
+ "data-slot": "status-bar-group",
71
+ role,
72
+ className: cn(STATUS_BAR_GROUP_CLASSES, push ? "ml-auto" : void 0, className),
73
+ ...elementProps
74
+ });
75
+ });
76
+ /**
77
+ * The quiet strip along the bottom of a window.
78
+ *
79
+ * The smallest type in the system in the subtlest ink: a status bar is read
80
+ * when you go looking for it and ignored otherwise, so it must never compete
81
+ * with the work above it. Height comes from `--cue-chrome-statusbar`, and the
82
+ * bar clips rather than wrapping — one rung of the frame, always, whatever it
83
+ * is asked to hold.
84
+ *
85
+ * Items come in two kinds and the difference is deliberate. A plain
86
+ * `StatusBar.Item` is a **reading**: a `<div>`, inert by construction, with no
87
+ * hover, no focus and nothing to click — which is what most of a status bar is.
88
+ * `interactive` (or a `render`) makes one a **control**, and only then does it
89
+ * grow the button chassis, the full-height hover fill and the inset focus ring.
90
+ * `StatusBar.Group` fuses adjacent items into one segmented control.
91
+ *
92
+ * Not a live region — a status bar changes constantly (frame counters, DMX
93
+ * output), and announcing every change would make the app unusable with a
94
+ * screen reader. Put anything that genuinely must be announced in a `Toast`.
95
+ *
96
+ * Static markup — no `"use client"`. A bar of readings renders on the server
97
+ * and ships no JavaScript at all; the interactive item is the one part that
98
+ * crosses the boundary, and it crosses it alone (`./_status-bar-item.tsx`).
99
+ *
100
+ * @example
101
+ * <StatusBar>
102
+ * <StatusBar.Item icon={Plug} tone="ok">Art-Net connected</StatusBar.Item>
103
+ * <StatusBar.Item push>512 channels</StatusBar.Item>
104
+ * </StatusBar>
105
+ * @example
106
+ * // The VS Code shape: a clickable cluster left, a loud state right.
107
+ * <StatusBar>
108
+ * <StatusBar.Group aria-label="Repository">
109
+ * <StatusBar.Item interactive icon={GitBranch}>main</StatusBar.Item>
110
+ * <StatusBar.Item interactive icon={ArrowUp}>2</StatusBar.Item>
111
+ * </StatusBar.Group>
112
+ * <StatusBar.Item push interactive prominence="filled" tone="danger">3 faults</StatusBar.Item>
113
+ * </StatusBar>
114
+ */
115
+ const StatusBar = Object.assign(StatusBarRoot, {
116
+ Item: StatusBarItem,
117
+ Group: StatusBarGroup
118
+ });
119
+ //#endregion
120
+ export { StatusBar };
@@ -0,0 +1,80 @@
1
+ import * as React from "react";
2
+ import { Tabs } from "@base-ui/react/tabs";
3
+ //#region src/chrome/tabs.d.ts
4
+ interface TabsRootProps extends Omit<Tabs.Root.Props, "className"> {
5
+ /** Extra classes for the tabs frame. */
6
+ className?: string;
7
+ }
8
+ interface TabsListProps extends Omit<Tabs.List.Props, "className"> {
9
+ /** Extra classes for the strip. */
10
+ className?: string;
11
+ }
12
+ interface TabsTabProps extends Omit<Tabs.Tab.Props, "className"> {
13
+ /** Extra classes for the tab button. */
14
+ className?: string;
15
+ }
16
+ interface TabsPanelProps extends Omit<Tabs.Panel.Props, "className"> {
17
+ /** Extra classes for the panel. */
18
+ className?: string;
19
+ }
20
+ interface ScrollableTabsListProps extends TabsListProps {
21
+ /**
22
+ * Classes for the outer frame (background, rim). It spans the full width even
23
+ * while the strip inside it is scrolled.
24
+ */
25
+ containerClassName?: string;
26
+ /**
27
+ * The active tab's value. When it changes, that tab is scrolled into view — a
28
+ * tab selected in code (a deep link, a keyboard shortcut) can be off-screen.
29
+ */
30
+ activeValue?: Tabs.Tab.Value;
31
+ }
32
+ /**
33
+ * A {@link TabsList} that scrolls when its tabs do not fit, and says so.
34
+ *
35
+ * Use instead of `Tabs.List` wherever the tab count can outgrow the container:
36
+ * a plain flex row silently clips its labels ("SETTINGS" rendering as "INGS"),
37
+ * which reads as a layout bug rather than as "scroll me".
38
+ *
39
+ * The affordance is two things, and it needs both. The mask fades the content
40
+ * at whichever edge still hides tabs; the chevron buttons are the visible half,
41
+ * because what sits at an overflowing edge is usually the gap *between* two
42
+ * tabs and fading empty space produces nothing anyone can see. The chevrons
43
+ * double as the control for anyone without a horizontal-scroll device.
44
+ *
45
+ * @example
46
+ * <Tabs.Root defaultValue={view}>
47
+ * <ScrollableTabsList activeValue={view}>
48
+ * {views.map((v) => <Tabs.Tab key={v} value={v}>{v}</Tabs.Tab>)}
49
+ * </ScrollableTabsList>
50
+ * </Tabs.Root>
51
+ */
52
+ declare const ScrollableTabsList: React.ForwardRefExoticComponent<Omit<ScrollableTabsListProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
53
+ /**
54
+ * One surface, several views.
55
+ *
56
+ * Wraps Base UI's `Tabs`, so roving focus, `aria-controls` wiring and
57
+ * activation semantics are the primitive's. This layer adds the console skin:
58
+ * a hairline strip, mono labels and an accent underline for the active tab.
59
+ *
60
+ * Reach for {@link ScrollableTabsList} instead of `Tabs.List` when the number of
61
+ * tabs is data-driven and can outgrow its container.
62
+ *
63
+ * @example
64
+ * <Tabs.Root defaultValue="patch">
65
+ * <Tabs.List>
66
+ * <Tabs.Tab value="patch">Patch</Tabs.Tab>
67
+ * <Tabs.Tab value="cues">Cues</Tabs.Tab>
68
+ * </Tabs.List>
69
+ * <Tabs.Panel value="patch">…</Tabs.Panel>
70
+ * <Tabs.Panel value="cues">…</Tabs.Panel>
71
+ * </Tabs.Root>
72
+ */
73
+ declare const Tabs$1: {
74
+ Root: React.ForwardRefExoticComponent<Omit<TabsRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
75
+ List: React.ForwardRefExoticComponent<Omit<TabsListProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
76
+ Tab: React.ForwardRefExoticComponent<Omit<TabsTabProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
77
+ Panel: React.ForwardRefExoticComponent<Omit<TabsPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
78
+ };
79
+ //#endregion
80
+ export { ScrollableTabsList, ScrollableTabsListProps, Tabs$1 as Tabs, TabsListProps, TabsPanelProps, TabsRootProps, TabsTabProps };
@@ -0,0 +1,132 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { EDGE_SCROLLER_CLASSES, EdgeChevrons, useEdgeScroll } from "./_edge-scroller.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { Tabs } from "@base-ui/react/tabs";
7
+ //#region src/chrome/tabs.tsx
8
+ /** Groups a tab list with its panels and owns the selected value. */
9
+ const TabsRoot = React.forwardRef(function TabsRoot({ className, ...elementProps }, ref) {
10
+ return /* @__PURE__ */ jsx(Tabs.Root, {
11
+ ref,
12
+ "data-slot": "tabs",
13
+ className: cn("flex min-w-0 flex-col gap-(--cue-space-4) data-[orientation=vertical]:flex-row", className),
14
+ ...elementProps
15
+ });
16
+ });
17
+ /**
18
+ * The strip of tabs, hung off a hairline.
19
+ *
20
+ * The rule belongs to the list rather than to the active tab so it spans the
21
+ * full width even when the tabs do not — which is what makes the selected tab's
22
+ * accent underline read as a mark *on* a rule rather than as a floating dash.
23
+ */
24
+ const TabsList = React.forwardRef(function TabsList({ className, ...elementProps }, ref) {
25
+ return /* @__PURE__ */ jsx(Tabs.List, {
26
+ ref,
27
+ "data-slot": "tabs-list",
28
+ className: cn("relative flex items-center gap-(--cue-space-1) border-b border-border data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch data-[orientation=vertical]:border-b-0 data-[orientation=vertical]:border-r", className),
29
+ ...elementProps
30
+ });
31
+ });
32
+ /**
33
+ * One tab. Selected state is an accent underline sitting on the list's rule —
34
+ * never a filled pill, which at console density turns a row of four tabs into a
35
+ * row of four buttons and loses the "one surface, several views" reading.
36
+ */
37
+ const TabsTab = React.forwardRef(function TabsTab({ className, ...elementProps }, ref) {
38
+ return /* @__PURE__ */ jsx(Tabs.Tab, {
39
+ ref,
40
+ "data-slot": "tabs-tab",
41
+ className: cn("relative inline-flex h-control-md shrink-0 cursor-pointer items-center justify-center gap-(--cue-space-2) rounded-t-(--radius-control) px-(--cue-space-4) font-mono text-(length:--cue-text-ui) whitespace-nowrap text-fg-muted transition-colors duration-150 outline-none select-none", "hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent", "data-[disabled]:pointer-events-none data-[disabled]:opacity-40", "after:absolute after:inset-x-0 after:-bottom-px after:h-px after:bg-transparent after:content-['']", "data-[active]:text-accent data-[active]:after:bg-accent", className),
42
+ ...elementProps
43
+ });
44
+ });
45
+ /** The body shown for the matching tab. Focusable, so keyboard users land in it. */
46
+ const TabsPanel = React.forwardRef(function TabsPanel({ className, ...elementProps }, ref) {
47
+ return /* @__PURE__ */ jsx(Tabs.Panel, {
48
+ ref,
49
+ "data-slot": "tabs-panel",
50
+ className: cn("min-w-0 outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-accent", className),
51
+ ...elementProps
52
+ });
53
+ });
54
+ /**
55
+ * A {@link TabsList} that scrolls when its tabs do not fit, and says so.
56
+ *
57
+ * Use instead of `Tabs.List` wherever the tab count can outgrow the container:
58
+ * a plain flex row silently clips its labels ("SETTINGS" rendering as "INGS"),
59
+ * which reads as a layout bug rather than as "scroll me".
60
+ *
61
+ * The affordance is two things, and it needs both. The mask fades the content
62
+ * at whichever edge still hides tabs; the chevron buttons are the visible half,
63
+ * because what sits at an overflowing edge is usually the gap *between* two
64
+ * tabs and fading empty space produces nothing anyone can see. The chevrons
65
+ * double as the control for anyone without a horizontal-scroll device.
66
+ *
67
+ * @example
68
+ * <Tabs.Root defaultValue={view}>
69
+ * <ScrollableTabsList activeValue={view}>
70
+ * {views.map((v) => <Tabs.Tab key={v} value={v}>{v}</Tabs.Tab>)}
71
+ * </ScrollableTabsList>
72
+ * </Tabs.Root>
73
+ */
74
+ const ScrollableTabsList = React.forwardRef(function ScrollableTabsList({ className, containerClassName, activeValue, children, ...listProps }, ref) {
75
+ const scroll = useEdgeScroll();
76
+ React.useEffect(() => {
77
+ scroll.ref.current?.querySelector("[data-slot='tabs-tab'][data-active]")?.scrollIntoView?.({
78
+ block: "nearest",
79
+ inline: "nearest"
80
+ });
81
+ }, [activeValue]);
82
+ return /* @__PURE__ */ jsxs("div", {
83
+ "data-slot": "tabs-scroll-frame",
84
+ className: cn("relative min-w-0", containerClassName),
85
+ children: [/* @__PURE__ */ jsx("div", {
86
+ ref: scroll.ref,
87
+ "data-slot": "tabs-scroller",
88
+ className: EDGE_SCROLLER_CLASSES,
89
+ style: scroll.style,
90
+ children: /* @__PURE__ */ jsx(TabsList, {
91
+ ref,
92
+ className: cn("w-max", className),
93
+ ...listProps,
94
+ children
95
+ })
96
+ }), /* @__PURE__ */ jsx(EdgeChevrons, {
97
+ edges: scroll.edges,
98
+ onNudge: scroll.nudge,
99
+ previousLabel: "Show earlier tabs",
100
+ nextLabel: "Show later tabs",
101
+ className: "bg-surface-2"
102
+ })]
103
+ });
104
+ });
105
+ /**
106
+ * One surface, several views.
107
+ *
108
+ * Wraps Base UI's `Tabs`, so roving focus, `aria-controls` wiring and
109
+ * activation semantics are the primitive's. This layer adds the console skin:
110
+ * a hairline strip, mono labels and an accent underline for the active tab.
111
+ *
112
+ * Reach for {@link ScrollableTabsList} instead of `Tabs.List` when the number of
113
+ * tabs is data-driven and can outgrow its container.
114
+ *
115
+ * @example
116
+ * <Tabs.Root defaultValue="patch">
117
+ * <Tabs.List>
118
+ * <Tabs.Tab value="patch">Patch</Tabs.Tab>
119
+ * <Tabs.Tab value="cues">Cues</Tabs.Tab>
120
+ * </Tabs.List>
121
+ * <Tabs.Panel value="patch">…</Tabs.Panel>
122
+ * <Tabs.Panel value="cues">…</Tabs.Panel>
123
+ * </Tabs.Root>
124
+ */
125
+ const Tabs$1 = {
126
+ Root: TabsRoot,
127
+ List: TabsList,
128
+ Tab: TabsTab,
129
+ Panel: TabsPanel
130
+ };
131
+ //#endregion
132
+ export { ScrollableTabsList, Tabs$1 as Tabs };