@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,73 @@
1
+ import { FormControlSize } from "./_chassis.js";
2
+ import * as React from "react";
3
+ //#region src/forms/combobox.d.ts
4
+ /** One row in a {@link Combobox} or {@link MultiSelect}. */
5
+ interface ComboboxOption {
6
+ /** Submitted value and identity of the row. */
7
+ value: string;
8
+ /** What the user reads — in the input as well as the list. Filtered on. */
9
+ label: string;
10
+ /** Grey the row out and skip it during keyboard navigation. */
11
+ disabled?: boolean;
12
+ }
13
+ interface ComboboxProps {
14
+ /** The rows, in display order. Base UI filters them against what is typed. */
15
+ items: readonly ComboboxOption[];
16
+ /** Selected value. Use with `onValueChange` for a controlled combobox. */
17
+ value?: string | null;
18
+ /** Initially selected value for an uncontrolled combobox. */
19
+ defaultValue?: string | null;
20
+ /** Called with the newly selected value (`null` when cleared). */
21
+ onValueChange?: (value: string | null) => void;
22
+ /** Shown while the input is empty. */
23
+ placeholder?: string;
24
+ /** Shown in place of the list when the query matches nothing. */
25
+ emptyMessage?: React.ReactNode;
26
+ /** Rung of the control ladder. Defaults to `"md"`. */
27
+ size?: FormControlSize;
28
+ /** Highlight the first match automatically so Enter picks it. */
29
+ autoHighlight?: boolean;
30
+ /** Prevent opening and grey the field out. */
31
+ disabled?: boolean;
32
+ /** Require a value before the owning form submits. */
33
+ required?: boolean;
34
+ /** Name for the hidden input, when the combobox is part of a form. */
35
+ name?: string;
36
+ /** Id forwarded to the text input. */
37
+ id?: string;
38
+ /** Accessible name for the input, when no {@link FieldLabel} names it. */
39
+ "aria-label"?: string;
40
+ /** Id of the element naming the input. */
41
+ "aria-labelledby"?: string;
42
+ /** Accessible name for the clear button. Defaults to `"Clear selection"`. */
43
+ clearLabel?: string;
44
+ /** Extra classes for the field. */
45
+ className?: string;
46
+ /** Extra classes for the popup surface. */
47
+ popupClassName?: string;
48
+ /** Distance in px between the field and the popup. Defaults to `4`. */
49
+ sideOffset?: number;
50
+ }
51
+ /**
52
+ * A {@link Select} you can type into: one value out of a known, filterable set.
53
+ *
54
+ * The line between this and {@link Autocomplete} is worth holding: a combobox's
55
+ * value is always one of `items` — the text is a *filter*, and anything not in
56
+ * the list cannot be chosen. An autocomplete's value is whatever the user typed
57
+ * and the list is only a suggestion. Pick the one whose contract matches what
58
+ * happens to the value downstream.
59
+ *
60
+ * The public API is string-valued like `Select`'s, even though Base UI's item
61
+ * values are the option objects: a caller stores `"wash"`, not an object it has
62
+ * to keep referentially stable across renders.
63
+ *
64
+ * The popup is portalled through {@link useCuePortalProps}, so it carries the
65
+ * caller's `data-theme` / `data-density` / `data-mode` even though it mounts at
66
+ * the end of `<body>`.
67
+ *
68
+ * @example
69
+ * <Combobox aria-label="Fixture" items={fixtures} value={fixture} onValueChange={setFixture} />
70
+ */
71
+ declare const Combobox: React.ForwardRefExoticComponent<ComboboxProps & React.RefAttributes<HTMLInputElement>>;
72
+ //#endregion
73
+ export { Combobox, ComboboxOption, ComboboxProps };
@@ -0,0 +1,108 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { bareControlClasses, controlGroupFocusClasses, controlVariants } from "./_chassis.js";
4
+ import { useCuePortalProps } from "../system/portal.js";
5
+ import { CaretGlyph, CrossGlyph, TickGlyph } from "./_glyphs.js";
6
+ import { listboxAdornmentClasses, listboxEmptyClasses, listboxIndicatorClasses, listboxItemClasses, listboxListClasses, listboxPopupClasses, listboxPositionerClasses } from "./_listbox.js";
7
+ import * as React from "react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { Combobox } from "@base-ui/react/combobox";
10
+ //#region src/forms/combobox.tsx
11
+ /**
12
+ * A {@link Select} you can type into: one value out of a known, filterable set.
13
+ *
14
+ * The line between this and {@link Autocomplete} is worth holding: a combobox's
15
+ * value is always one of `items` — the text is a *filter*, and anything not in
16
+ * the list cannot be chosen. An autocomplete's value is whatever the user typed
17
+ * and the list is only a suggestion. Pick the one whose contract matches what
18
+ * happens to the value downstream.
19
+ *
20
+ * The public API is string-valued like `Select`'s, even though Base UI's item
21
+ * values are the option objects: a caller stores `"wash"`, not an object it has
22
+ * to keep referentially stable across renders.
23
+ *
24
+ * The popup is portalled through {@link useCuePortalProps}, so it carries the
25
+ * caller's `data-theme` / `data-density` / `data-mode` even though it mounts at
26
+ * the end of `<body>`.
27
+ *
28
+ * @example
29
+ * <Combobox aria-label="Fixture" items={fixtures} value={fixture} onValueChange={setFixture} />
30
+ */
31
+ const Combobox$1 = React.forwardRef(function Combobox$2({ items, value, defaultValue, onValueChange, placeholder, emptyMessage = "No matches", size, autoHighlight = true, disabled, required, name, id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, clearLabel = "Clear selection", className, popupClassName, sideOffset = 4 }, ref) {
32
+ const portalProps = useCuePortalProps();
33
+ const find = React.useCallback((key) => key === void 0 ? void 0 : items.find((item) => item.value === key) ?? null, [items]);
34
+ const handleValueChange = React.useCallback((next) => {
35
+ onValueChange?.(next?.value ?? null);
36
+ }, [onValueChange]);
37
+ return /* @__PURE__ */ jsxs(Combobox.Root, {
38
+ items,
39
+ value: find(value),
40
+ defaultValue: find(defaultValue),
41
+ onValueChange: onValueChange === void 0 ? void 0 : handleValueChange,
42
+ autoHighlight,
43
+ disabled,
44
+ required,
45
+ name,
46
+ children: [/* @__PURE__ */ jsxs(Combobox.InputGroup, {
47
+ "data-slot": "combobox-group",
48
+ className: cn(controlVariants({ size }), "flex items-center gap-(--cue-space-2)", controlGroupFocusClasses, className),
49
+ children: [
50
+ /* @__PURE__ */ jsx(Combobox.Input, {
51
+ ref,
52
+ id,
53
+ "data-slot": "combobox-input",
54
+ placeholder,
55
+ "aria-label": ariaLabel,
56
+ "aria-labelledby": ariaLabelledBy,
57
+ className: cn(bareControlClasses, "truncate")
58
+ }),
59
+ /* @__PURE__ */ jsx(Combobox.Clear, {
60
+ "aria-label": clearLabel,
61
+ "data-slot": "combobox-clear",
62
+ className: listboxAdornmentClasses,
63
+ children: /* @__PURE__ */ jsx(CrossGlyph, { className: "size-icon-sm" })
64
+ }),
65
+ /* @__PURE__ */ jsx(Combobox.Trigger, {
66
+ "aria-label": ariaLabel === void 0 ? void 0 : `${ariaLabel} options`,
67
+ "data-slot": "combobox-trigger",
68
+ className: listboxAdornmentClasses,
69
+ children: /* @__PURE__ */ jsx(Combobox.Icon, {
70
+ className: "flex items-center",
71
+ children: /* @__PURE__ */ jsx(CaretGlyph, { className: "size-icon-md" })
72
+ })
73
+ })
74
+ ]
75
+ }), /* @__PURE__ */ jsx(Combobox.Portal, {
76
+ ...portalProps,
77
+ children: /* @__PURE__ */ jsx(Combobox.Positioner, {
78
+ className: listboxPositionerClasses,
79
+ sideOffset,
80
+ children: /* @__PURE__ */ jsxs(Combobox.Popup, {
81
+ "data-slot": "combobox-popup",
82
+ className: cn(listboxPopupClasses, popupClassName),
83
+ children: [/* @__PURE__ */ jsx(Combobox.Empty, {
84
+ className: listboxEmptyClasses,
85
+ children: emptyMessage
86
+ }), /* @__PURE__ */ jsx(Combobox.List, {
87
+ className: listboxListClasses,
88
+ children: (item) => /* @__PURE__ */ jsxs(Combobox.Item, {
89
+ value: item,
90
+ disabled: item.disabled,
91
+ "data-slot": "combobox-item",
92
+ className: listboxItemClasses,
93
+ children: [/* @__PURE__ */ jsx("span", {
94
+ className: listboxIndicatorClasses,
95
+ children: /* @__PURE__ */ jsx(Combobox.ItemIndicator, { children: /* @__PURE__ */ jsx(TickGlyph, { className: "size-icon-sm" }) })
96
+ }), /* @__PURE__ */ jsx("span", {
97
+ className: "truncate",
98
+ children: item.label
99
+ })]
100
+ }, item.value)
101
+ })]
102
+ })
103
+ })
104
+ })]
105
+ });
106
+ });
107
+ //#endregion
108
+ export { Combobox$1 as Combobox };
@@ -0,0 +1,74 @@
1
+ import { FormControlSize } from "./_chassis.js";
2
+ import * as React from "react";
3
+ //#region src/forms/env-var-input.d.ts
4
+ /**
5
+ * Read the variable name out of an `env(NAME)` reference.
6
+ *
7
+ * @param value - The raw field value.
8
+ * @returns The variable name, or `null` when the value is a literal.
9
+ * @example
10
+ * parseEnvReference("env(SUPABASE_URL)"); // "SUPABASE_URL"
11
+ * parseEnvReference("https://example.test"); // null
12
+ */
13
+ declare function parseEnvReference(value: string): string | null;
14
+ /**
15
+ * Build an `env(NAME)` reference.
16
+ *
17
+ * @param name - The environment variable name.
18
+ * @returns The reference string this control renders as a pill.
19
+ * @example
20
+ * envReference("API_KEY"); // "env(API_KEY)"
21
+ */
22
+ declare function envReference(name: string): string;
23
+ interface EnvVarInputProps extends Omit<React.ComponentPropsWithoutRef<"div">, "onChange" | "defaultValue"> {
24
+ /** The value — a literal, or an `env(NAME)` reference. Use with `onValueChange`. */
25
+ value?: string;
26
+ /** Initial value for an uncontrolled field. */
27
+ defaultValue?: string;
28
+ /**
29
+ * Called with the new value: on every keystroke in the literal state, and with
30
+ * `""` when the variable pill is cleared. One argument, because the pill's
31
+ * clear button has no DOM change event to hand on.
32
+ */
33
+ onValueChange?: (value: string) => void;
34
+ /** Shown while the literal field is empty. */
35
+ placeholder?: string;
36
+ /** Mask the literal value. The reference is never masked — a name is not a secret. */
37
+ secret?: boolean;
38
+ /** Rung of the control ladder. Defaults to `"md"`. */
39
+ size?: FormControlSize;
40
+ /** Prevent editing and grey the control out. */
41
+ disabled?: boolean;
42
+ /** Name for the underlying input, when the field is part of a form. */
43
+ name?: string;
44
+ /** Id forwarded to the underlying input. */
45
+ id?: string;
46
+ /** Accessible name for the field, when no {@link FieldLabel} names it. */
47
+ "aria-label"?: string;
48
+ /** Accessible name for the pill's clear button. Defaults to `"Clear environment variable"`. */
49
+ clearLabel?: string;
50
+ /** Extra classes for the wrapper. */
51
+ className?: string;
52
+ }
53
+ /**
54
+ * A config value that may be a literal *or* a reference to an environment
55
+ * variable — and looks unmistakably different in each case.
56
+ *
57
+ * When the value matches `env(NAME)` the text box is replaced by a warn-toned
58
+ * pill naming the variable. That swap is the entire point: a config screen full
59
+ * of identical text boxes gives no way to tell "this is the key" from "this is
60
+ * where the key comes from", and the difference decides whether the value is
61
+ * safe to screenshot, commit or paste into a ticket. Warn is the system's amber,
62
+ * so the pill reads as "resolved elsewhere — check the environment" rather than
63
+ * as an error.
64
+ *
65
+ * Ported from supbuddy's config editor, where the pattern earned its keep.
66
+ *
67
+ * @example
68
+ * <EnvVarInput aria-label="Service key" secret value={key} onValueChange={setKey} />
69
+ * @example
70
+ * <EnvVarInput aria-label="Project URL" defaultValue={envReference("SUPABASE_URL")} />
71
+ */
72
+ declare const EnvVarInput: React.ForwardRefExoticComponent<EnvVarInputProps & React.RefAttributes<HTMLDivElement>>;
73
+ //#endregion
74
+ export { EnvVarInput, EnvVarInputProps, envReference, parseEnvReference };
@@ -0,0 +1,116 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { Input } from "./input.js";
4
+ import { CrossGlyph, VariableGlyph } from "./_glyphs.js";
5
+ import { PasswordInput } from "./password-input.js";
6
+ import * as React from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/forms/env-var-input.tsx
9
+ /**
10
+ * `env(NAME)` — the indirection syntax this control understands.
11
+ *
12
+ * Deliberately strict about the name: shell-variable rules (a letter or
13
+ * underscore, then letters, digits or underscores). A looser pattern would let
14
+ * `env(https://…)` render as a variable pill and hide a real value behind it.
15
+ */
16
+ const ENV_REFERENCE = /^env\(([A-Za-z_][A-Za-z0-9_]*)\)$/;
17
+ /**
18
+ * Read the variable name out of an `env(NAME)` reference.
19
+ *
20
+ * @param value - The raw field value.
21
+ * @returns The variable name, or `null` when the value is a literal.
22
+ * @example
23
+ * parseEnvReference("env(SUPABASE_URL)"); // "SUPABASE_URL"
24
+ * parseEnvReference("https://example.test"); // null
25
+ */
26
+ function parseEnvReference(value) {
27
+ return ENV_REFERENCE.exec(value)?.[1] ?? null;
28
+ }
29
+ /**
30
+ * Build an `env(NAME)` reference.
31
+ *
32
+ * @param name - The environment variable name.
33
+ * @returns The reference string this control renders as a pill.
34
+ * @example
35
+ * envReference("API_KEY"); // "env(API_KEY)"
36
+ */
37
+ function envReference(name) {
38
+ return `env(${name})`;
39
+ }
40
+ /** The pill's height per rung — it stands in for the input, so it matches one. */
41
+ const PILL_SIZES = {
42
+ sm: "h-control-sm px-(--cue-space-2) text-(length:--cue-text-label)",
43
+ md: "h-control-md px-(--cue-space-3) text-(length:--cue-text-ui)",
44
+ lg: "h-control-lg px-(--cue-space-4) text-(length:--cue-text-body)"
45
+ };
46
+ /**
47
+ * A config value that may be a literal *or* a reference to an environment
48
+ * variable — and looks unmistakably different in each case.
49
+ *
50
+ * When the value matches `env(NAME)` the text box is replaced by a warn-toned
51
+ * pill naming the variable. That swap is the entire point: a config screen full
52
+ * of identical text boxes gives no way to tell "this is the key" from "this is
53
+ * where the key comes from", and the difference decides whether the value is
54
+ * safe to screenshot, commit or paste into a ticket. Warn is the system's amber,
55
+ * so the pill reads as "resolved elsewhere — check the environment" rather than
56
+ * as an error.
57
+ *
58
+ * Ported from supbuddy's config editor, where the pattern earned its keep.
59
+ *
60
+ * @example
61
+ * <EnvVarInput aria-label="Service key" secret value={key} onValueChange={setKey} />
62
+ * @example
63
+ * <EnvVarInput aria-label="Project URL" defaultValue={envReference("SUPABASE_URL")} />
64
+ */
65
+ const EnvVarInput = React.forwardRef(function EnvVarInput({ className, value: valueProp, defaultValue, onValueChange, placeholder, secret = false, size = "md", disabled, name, id, "aria-label": ariaLabel, clearLabel = "Clear environment variable", ...elementProps }, ref) {
66
+ const isControlled = valueProp !== void 0;
67
+ const [uncontrolled, setUncontrolled] = React.useState(defaultValue ?? "");
68
+ const value = isControlled ? valueProp : uncontrolled;
69
+ const variable = parseEnvReference(value);
70
+ const commit = React.useCallback((next) => {
71
+ if (!isControlled) setUncontrolled(next);
72
+ onValueChange?.(next);
73
+ }, [isControlled, onValueChange]);
74
+ const controlProps = {
75
+ id,
76
+ name,
77
+ size,
78
+ disabled,
79
+ placeholder,
80
+ "aria-label": ariaLabel,
81
+ "data-slot": "env-var-input",
82
+ value,
83
+ onValueChange: (next) => commit(next)
84
+ };
85
+ return /* @__PURE__ */ jsx("div", {
86
+ ref,
87
+ "data-slot": "env-var",
88
+ className: cn("w-full", className),
89
+ ...elementProps,
90
+ children: variable === null ? secret ? /* @__PURE__ */ jsx(PasswordInput, { ...controlProps }) : /* @__PURE__ */ jsx(Input, { ...controlProps }) : /* @__PURE__ */ jsxs("div", {
91
+ "data-slot": "env-var-pill",
92
+ className: cn("flex w-full items-center gap-(--cue-space-2) rounded-(--radius-control) border border-warn/35 bg-warn/10 font-mono text-warn", PILL_SIZES[size], disabled === true && "opacity-40"),
93
+ children: [
94
+ /* @__PURE__ */ jsx(VariableGlyph, {
95
+ "aria-hidden": "true",
96
+ className: "size-icon-sm shrink-0"
97
+ }),
98
+ /* @__PURE__ */ jsx("span", {
99
+ "data-slot": "env-var-name",
100
+ className: "truncate",
101
+ children: variable
102
+ }),
103
+ /* @__PURE__ */ jsx("button", {
104
+ type: "button",
105
+ "aria-label": clearLabel,
106
+ disabled,
107
+ onClick: () => commit(""),
108
+ className: "ml-auto flex size-icon-md shrink-0 cursor-pointer items-center justify-center rounded-(--radius-control) border-0 bg-transparent p-0 text-warn outline-none transition-colors hover:bg-warn/20 focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none",
109
+ children: /* @__PURE__ */ jsx(CrossGlyph, { className: "size-icon-sm" })
110
+ })
111
+ ]
112
+ })
113
+ });
114
+ });
115
+ //#endregion
116
+ export { EnvVarInput, envReference, parseEnvReference };
@@ -0,0 +1,89 @@
1
+ import * as React from "react";
2
+ import { Field } from "@base-ui/react/field";
3
+ //#region src/forms/field.d.ts
4
+ interface FieldProps extends Omit<Field.Root.Props, "className"> {
5
+ /** Extra classes, merged over the vertical stack defaults. */
6
+ className?: string;
7
+ }
8
+ /**
9
+ * The labelling and validation wrapper every form control belongs in.
10
+ *
11
+ * Wraps Base UI's `Field.Root`, which generates the ids that tie
12
+ * {@link FieldLabel}, {@link FieldDescription} and {@link FieldError} to the
13
+ * control inside it — so `<FieldLabel>Cue name</FieldLabel>` names an
14
+ * {@link Input} with no `htmlFor`/`id` bookkeeping from the caller. Base UI also
15
+ * stamps `data-invalid` / `data-disabled` down the subtree, which is what the
16
+ * chassis' danger rim keys off.
17
+ *
18
+ * @example
19
+ * <Field name="cue">
20
+ * <FieldLabel>Cue name</FieldLabel>
21
+ * <Input placeholder="e.g. Blackout" />
22
+ * <FieldDescription>Shown in the cue list.</FieldDescription>
23
+ * <FieldError issues={result.issues} />
24
+ * </Field>
25
+ */
26
+ declare const Field$1: React.ForwardRefExoticComponent<Omit<FieldProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
27
+ interface FieldLabelProps extends Omit<Field.Label.Props, "className"> {
28
+ /** Extra classes, merged over the label typography. */
29
+ className?: string;
30
+ }
31
+ /**
32
+ * The name of a field: mono, uppercase, tracked out, one rung below body text.
33
+ *
34
+ * Renders a real `<label>` wired to the field's control, so clicking it focuses
35
+ * (or toggles) that control.
36
+ *
37
+ * @example
38
+ * <FieldLabel>Universe</FieldLabel>
39
+ */
40
+ declare const FieldLabel: React.ForwardRefExoticComponent<Omit<FieldLabelProps, "ref"> & React.RefAttributes<HTMLLabelElement>>;
41
+ interface FieldDescriptionProps extends Omit<Field.Description.Props, "className"> {
42
+ /** Extra classes, merged over the helper-text defaults. */
43
+ className?: string;
44
+ }
45
+ /**
46
+ * Quiet helper text under a control, published to assistive tech as the
47
+ * control's `aria-describedby` target.
48
+ *
49
+ * @example
50
+ * <FieldDescription>1–512</FieldDescription>
51
+ */
52
+ declare const FieldDescription: React.ForwardRefExoticComponent<Omit<FieldDescriptionProps, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
53
+ /**
54
+ * One validation problem, in the shape every Standard Schema validator (Zod,
55
+ * Valibot, ArkType) reports it.
56
+ */
57
+ interface FieldIssue {
58
+ /** Human-readable message to show under the control. */
59
+ readonly message: string;
60
+ }
61
+ interface FieldErrorProps extends Omit<Field.Error.Props, "className" | "children"> {
62
+ /** Extra classes, merged over the danger-text defaults. */
63
+ className?: string;
64
+ /**
65
+ * Standard Schema issues for this field. When supplied, the component shows
66
+ * exactly these messages and stops consulting native `ValidityState`: an
67
+ * empty array renders nothing, one issue renders inline, several render as a
68
+ * list. Leave it `undefined` to fall back to `match` + `children`.
69
+ */
70
+ issues?: readonly FieldIssue[];
71
+ /** Message to show when driving visibility from `match` instead of `issues`. */
72
+ children?: React.ReactNode;
73
+ }
74
+ /**
75
+ * The error line under a control.
76
+ *
77
+ * Two ways to drive it, and they are mutually exclusive by design:
78
+ * pass `issues` from a Standard Schema parse (`schema.safeParse(x).issues`) and
79
+ * the component owns visibility, or pass `match` + `children` and let Base UI
80
+ * key off the native `ValidityState`.
81
+ *
82
+ * @example
83
+ * <FieldError issues={result.issues} />
84
+ * @example
85
+ * <FieldError match="valueMissing">Please name the cue</FieldError>
86
+ */
87
+ declare const FieldError: React.ForwardRefExoticComponent<Omit<FieldErrorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
88
+ //#endregion
89
+ export { Field$1 as Field, FieldDescription, FieldDescriptionProps, FieldError, FieldErrorProps, FieldIssue, FieldLabel, FieldLabelProps, FieldProps };
@@ -0,0 +1,102 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import * as React from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { Field } from "@base-ui/react/field";
6
+ //#region src/forms/field.tsx
7
+ /**
8
+ * The labelling and validation wrapper every form control belongs in.
9
+ *
10
+ * Wraps Base UI's `Field.Root`, which generates the ids that tie
11
+ * {@link FieldLabel}, {@link FieldDescription} and {@link FieldError} to the
12
+ * control inside it — so `<FieldLabel>Cue name</FieldLabel>` names an
13
+ * {@link Input} with no `htmlFor`/`id` bookkeeping from the caller. Base UI also
14
+ * stamps `data-invalid` / `data-disabled` down the subtree, which is what the
15
+ * chassis' danger rim keys off.
16
+ *
17
+ * @example
18
+ * <Field name="cue">
19
+ * <FieldLabel>Cue name</FieldLabel>
20
+ * <Input placeholder="e.g. Blackout" />
21
+ * <FieldDescription>Shown in the cue list.</FieldDescription>
22
+ * <FieldError issues={result.issues} />
23
+ * </Field>
24
+ */
25
+ const Field$1 = React.forwardRef(function Field$2({ className, ...elementProps }, ref) {
26
+ return /* @__PURE__ */ jsx(Field.Root, {
27
+ ref,
28
+ "data-slot": "field",
29
+ className: cn("flex w-full flex-col gap-(--cue-space-2)", className),
30
+ ...elementProps
31
+ });
32
+ });
33
+ /**
34
+ * The name of a field: mono, uppercase, tracked out, one rung below body text.
35
+ *
36
+ * Renders a real `<label>` wired to the field's control, so clicking it focuses
37
+ * (or toggles) that control.
38
+ *
39
+ * @example
40
+ * <FieldLabel>Universe</FieldLabel>
41
+ */
42
+ const FieldLabel = React.forwardRef(function FieldLabel({ className, ...elementProps }, ref) {
43
+ return /* @__PURE__ */ jsx(Field.Label, {
44
+ ref,
45
+ "data-slot": "field-label",
46
+ className: cn("font-mono text-(length:--cue-text-label) leading-none tracking-[0.1em] text-fg-muted uppercase select-none data-[disabled]:opacity-40", className),
47
+ ...elementProps
48
+ });
49
+ });
50
+ /**
51
+ * Quiet helper text under a control, published to assistive tech as the
52
+ * control's `aria-describedby` target.
53
+ *
54
+ * @example
55
+ * <FieldDescription>1–512</FieldDescription>
56
+ */
57
+ const FieldDescription = React.forwardRef(function FieldDescription({ className, ...elementProps }, ref) {
58
+ return /* @__PURE__ */ jsx(Field.Description, {
59
+ ref,
60
+ "data-slot": "field-description",
61
+ className: cn("font-mono text-(length:--cue-text-micro) text-fg-subtle", className),
62
+ ...elementProps
63
+ });
64
+ });
65
+ /**
66
+ * The error line under a control.
67
+ *
68
+ * Two ways to drive it, and they are mutually exclusive by design:
69
+ * pass `issues` from a Standard Schema parse (`schema.safeParse(x).issues`) and
70
+ * the component owns visibility, or pass `match` + `children` and let Base UI
71
+ * key off the native `ValidityState`.
72
+ *
73
+ * @example
74
+ * <FieldError issues={result.issues} />
75
+ * @example
76
+ * <FieldError match="valueMissing">Please name the cue</FieldError>
77
+ */
78
+ const FieldError = React.forwardRef(function FieldError({ className, issues, match, children, ...elementProps }, ref) {
79
+ if (issues !== void 0 && issues.length === 0) return null;
80
+ const classes = cn("font-mono text-(length:--cue-text-micro) text-danger", className);
81
+ if (issues === void 0) return /* @__PURE__ */ jsx(Field.Error, {
82
+ ref,
83
+ "data-slot": "field-error",
84
+ match,
85
+ className: classes,
86
+ ...elementProps,
87
+ children
88
+ });
89
+ return /* @__PURE__ */ jsx(Field.Error, {
90
+ ref,
91
+ "data-slot": "field-error",
92
+ match: true,
93
+ className: classes,
94
+ ...elementProps,
95
+ children: issues.length === 1 ? issues[0]?.message : /* @__PURE__ */ jsx("ul", {
96
+ className: "flex flex-col gap-(--cue-space-1)",
97
+ children: issues.map((issue, index) => /* @__PURE__ */ jsx("li", { children: issue.message }, `${index}:${issue.message}`))
98
+ })
99
+ });
100
+ });
101
+ //#endregion
102
+ export { Field$1 as Field, FieldDescription, FieldError, FieldLabel };
@@ -0,0 +1,113 @@
1
+ import * as React from "react";
2
+ //#region src/forms/file-upload.d.ts
3
+ /** Why a dropped file did not make it into the list. */
4
+ type FileRejectReason = "type" | "size" | "count";
5
+ interface FileRejection {
6
+ /** The file that was turned away. */
7
+ file: File;
8
+ /** Which rule turned it away. */
9
+ reason: FileRejectReason;
10
+ }
11
+ interface FilePartitionOptions {
12
+ /** An `accept` string: extensions, exact mime types, `image/*` wildcards. */
13
+ accept?: string;
14
+ /** Largest accepted file, in bytes. */
15
+ maxSize?: number;
16
+ /** How many files may be accepted in total. */
17
+ maxFiles?: number;
18
+ }
19
+ interface FilePartition {
20
+ /** Files that passed every rule, in the order they arrived. */
21
+ accepted: File[];
22
+ /** Files that failed one, each with the reason. */
23
+ rejected: FileRejection[];
24
+ }
25
+ /** Where a file is in its journey. Drives the row's readout. */
26
+ type UploadStatus = "pending" | "uploading" | "done" | "error";
27
+ interface UploadFile {
28
+ /** Stable identity — what `onRemove` reports. */
29
+ id: string;
30
+ /** File name, shown verbatim. */
31
+ name: string;
32
+ /** Size in bytes; rendered in SI units. */
33
+ size?: number;
34
+ /** Completion 0–100. Drawn as a bar while `status` is `"uploading"`. */
35
+ progress?: number;
36
+ /** Defaults to `"pending"`. */
37
+ status?: UploadStatus;
38
+ /** Why it failed. Shown in the danger tone under the name. */
39
+ error?: string;
40
+ }
41
+ /**
42
+ * Split a drop into the files that pass the rules and the ones that do not,
43
+ * each with the reason it was turned away.
44
+ *
45
+ * Exported and pure because "why was my file rejected?" is the question a drop
46
+ * zone most often has to answer, and a caller filtering by hand would answer it
47
+ * differently from the component. Order is preserved, and the count ceiling
48
+ * keeps the *first* files rather than an arbitrary subset.
49
+ *
50
+ * @param files - Everything the drop or the file dialog produced.
51
+ * @param options - The rules to apply.
52
+ * @returns The accepted files and the reasoned rejections.
53
+ * @example
54
+ * partitionFiles(files, { accept: "image/*", maxSize: 2_000_000 })
55
+ */
56
+ declare function partitionFiles(files: readonly File[], { accept, maxSize, maxFiles }: FilePartitionOptions): FilePartition;
57
+ interface FileUploadProps extends Omit<React.ComponentPropsWithoutRef<"div">, "onDrop" | "children"> {
58
+ /** The zone's own copy, and its accessible name. Defaults to `"Drop files"`. */
59
+ label?: React.ReactNode;
60
+ /** A second line under the label — the rules, in plain words. */
61
+ hint?: React.ReactNode;
62
+ /** `accept` string forwarded to the input and used for rejection. */
63
+ accept?: string;
64
+ /** Allow more than one file per drop. */
65
+ multiple?: boolean;
66
+ /** Largest accepted file, in bytes. */
67
+ maxSize?: number;
68
+ /** How many files may be accepted per drop. */
69
+ maxFiles?: number;
70
+ /** Refuse drops and grey the zone out. */
71
+ disabled?: boolean;
72
+ /** Rows to render under the zone. The caller owns upload state. */
73
+ files?: readonly UploadFile[];
74
+ /** Called with the files that passed the rules. */
75
+ onFilesAccepted?: (files: File[]) => void;
76
+ /** Called with the files that did not, each with its reason. */
77
+ onFilesRejected?: (rejections: FileRejection[]) => void;
78
+ /** Called with a row's `id` when its remove control is pressed. */
79
+ onRemove?: (id: string) => void;
80
+ /** Spoken name of a row's remove control. Defaults to `Remove <name>`. */
81
+ removeLabel?: (file: UploadFile) => string;
82
+ /** Extra classes for the drop zone. */
83
+ zoneClassName?: string;
84
+ }
85
+ /**
86
+ * A drop zone with a file list under it.
87
+ *
88
+ * The zone is a real `<button>`, not a div with a drop handler: dropping is the
89
+ * mouse affordance, and pressing Enter on a focused button to open the file
90
+ * dialog is the keyboard one. A zone that only accepts drops is unusable
91
+ * without a pointer (WCAG 2.1.1), and it is the single most common defect in
92
+ * hand-rolled uploaders.
93
+ *
94
+ * State is the caller's. This component turns drops into `File[]` (plus
95
+ * reasoned rejections, via {@link partitionFiles}) and renders whatever rows it
96
+ * is handed — it never holds an upload queue, because the transport, the
97
+ * retries and the progress belong to the app.
98
+ *
99
+ * @example
100
+ * <FileUpload
101
+ * label="Drop show files"
102
+ * hint="CSV or QLab bundle, up to 20 MB"
103
+ * accept=".csv,.qlab"
104
+ * maxSize={20_000_000}
105
+ * files={rows}
106
+ * onFilesAccepted={enqueue}
107
+ * onFilesRejected={explain}
108
+ * onRemove={cancel}
109
+ * />
110
+ */
111
+ declare const FileUpload: React.ForwardRefExoticComponent<FileUploadProps & React.RefAttributes<HTMLDivElement>>;
112
+ //#endregion
113
+ export { FilePartition, FilePartitionOptions, FileRejectReason, FileRejection, FileUpload, FileUploadProps, UploadFile, UploadStatus, partitionFiles };