@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,39 @@
1
+ import * as React from "react";
2
+ import { NumberField } from "@base-ui/react/number-field";
3
+ //#region src/forms/number-field.d.ts
4
+ interface NumberFieldProps extends Omit<NumberField.Root.Props, "className"> {
5
+ /** Extra classes, merged over the group chassis. */
6
+ className?: string;
7
+ /** Rung of the control ladder. Defaults to `"md"`. */
8
+ size?: "sm" | "md";
9
+ /** Accessible name for the decrement button. Defaults to `"Decrease"`. */
10
+ decrementLabel?: string;
11
+ /** Accessible name for the increment button. Defaults to `"Increase"`. */
12
+ incrementLabel?: string;
13
+ /** Placeholder shown while the field is empty. */
14
+ placeholder?: string;
15
+ /** Accessible name for the text control, when no {@link FieldLabel} names it. */
16
+ "aria-label"?: string;
17
+ }
18
+ /**
19
+ * A numeric control with explicit − / + affordances and no native spinners.
20
+ *
21
+ * Native `<input type="number">` spinners are unusable at console density — a
22
+ * pair of 4px arrows that only appear on hover — so this is a text input with
23
+ * `inputMode="numeric"` flanked by real buttons, which is also what makes it
24
+ * touch-usable. Arrow keys step, Shift steps by `largeStep`, Alt by `smallStep`,
25
+ * and values typed out of range are clamped to `min`/`max` on blur.
26
+ *
27
+ * The group owns the rim; the input and both buttons render bare inside it, so
28
+ * the whole cluster reads as one field. Focus feedback follows the group's
29
+ * split: the rim strengthens on `:focus-within`, and the ring waits for
30
+ * `:has(:focus-visible)` so a click on a stepper does not paint one.
31
+ *
32
+ * @example
33
+ * <NumberField aria-label="Fade time" defaultValue={3} min={0} max={600} step={0.5} />
34
+ * @example
35
+ * <Field><FieldLabel>Universe</FieldLabel><NumberField min={1} max={512} /></Field>
36
+ */
37
+ declare const NumberField$1: React.ForwardRefExoticComponent<Omit<NumberFieldProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
38
+ //#endregion
39
+ export { NumberField$1 as NumberField, NumberFieldProps };
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { bareControlClasses, controlGroupFocusClasses, controlSurface } from "./_chassis.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { NumberField } from "@base-ui/react/number-field";
7
+ //#region src/forms/number-field.tsx
8
+ /** The − and + affordances: square, borderless, and quiet until hovered. */
9
+ const stepperClasses = "flex shrink-0 items-center justify-center border-0 bg-transparent p-0 font-mono text-fg-muted leading-none select-none outline-none transition-colors hover:bg-surface-2 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-40";
10
+ /**
11
+ * A numeric control with explicit − / + affordances and no native spinners.
12
+ *
13
+ * Native `<input type="number">` spinners are unusable at console density — a
14
+ * pair of 4px arrows that only appear on hover — so this is a text input with
15
+ * `inputMode="numeric"` flanked by real buttons, which is also what makes it
16
+ * touch-usable. Arrow keys step, Shift steps by `largeStep`, Alt by `smallStep`,
17
+ * and values typed out of range are clamped to `min`/`max` on blur.
18
+ *
19
+ * The group owns the rim; the input and both buttons render bare inside it, so
20
+ * the whole cluster reads as one field. Focus feedback follows the group's
21
+ * split: the rim strengthens on `:focus-within`, and the ring waits for
22
+ * `:has(:focus-visible)` so a click on a stepper does not paint one.
23
+ *
24
+ * @example
25
+ * <NumberField aria-label="Fade time" defaultValue={3} min={0} max={600} step={0.5} />
26
+ * @example
27
+ * <Field><FieldLabel>Universe</FieldLabel><NumberField min={1} max={512} /></Field>
28
+ */
29
+ const NumberField$1 = React.forwardRef(function NumberField$2({ className, size = "md", decrementLabel = "Decrease", incrementLabel = "Increase", placeholder, "aria-label": ariaLabel, ...elementProps }, ref) {
30
+ const rung = size === "sm" ? "sm" : "md";
31
+ return /* @__PURE__ */ jsx(NumberField.Root, {
32
+ ref,
33
+ "data-slot": "number-field",
34
+ ...elementProps,
35
+ children: /* @__PURE__ */ jsxs(NumberField.Group, {
36
+ "data-slot": "number-field-group",
37
+ className: cn(controlSurface, "flex items-stretch overflow-hidden", rung === "sm" ? "h-control-sm text-(length:--cue-text-label)" : "h-control-md text-(length:--cue-text-ui)", controlGroupFocusClasses, className),
38
+ children: [
39
+ /* @__PURE__ */ jsx(NumberField.Decrement, {
40
+ "aria-label": decrementLabel,
41
+ className: cn(stepperClasses, rung === "sm" ? "w-control-sm" : "w-control-md"),
42
+ children: /* @__PURE__ */ jsx("span", {
43
+ "aria-hidden": "true",
44
+ children: "−"
45
+ })
46
+ }),
47
+ /* @__PURE__ */ jsx(NumberField.Input, {
48
+ "aria-label": ariaLabel,
49
+ placeholder,
50
+ className: cn(bareControlClasses, "w-full px-(--cue-space-2) text-center tabular-nums", "[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none")
51
+ }),
52
+ /* @__PURE__ */ jsx(NumberField.Increment, {
53
+ "aria-label": incrementLabel,
54
+ className: cn(stepperClasses, rung === "sm" ? "w-control-sm" : "w-control-md"),
55
+ children: /* @__PURE__ */ jsx("span", {
56
+ "aria-hidden": "true",
57
+ children: "+"
58
+ })
59
+ })
60
+ ]
61
+ })
62
+ });
63
+ });
64
+ //#endregion
65
+ export { NumberField$1 as NumberField };
@@ -0,0 +1,54 @@
1
+ import { FormControlSize } from "./_chassis.js";
2
+ import * as React from "react";
3
+ import { OTPField } from "@base-ui/react/otp-field";
4
+ //#region src/forms/otp-field.d.ts
5
+ interface OTPFieldProps extends Omit<OTPField.Root.Props, "className" | "children" | "length"> {
6
+ /** How many characters the code has. Defaults to `6`. */
7
+ length?: number;
8
+ /** Rung of the control ladder. Defaults to `"md"`. */
9
+ size?: FormControlSize;
10
+ /**
11
+ * Insert a separator after every `groupSize` slots — `groupSize={3}` renders a
12
+ * six-character code as `123 456`, which is how people read one off a screen.
13
+ */
14
+ groupSize?: number;
15
+ /** What sits between groups. Defaults to `"–"`. Always `aria-hidden`. */
16
+ separator?: React.ReactNode;
17
+ /**
18
+ * Accessible name for the field. Names the group *and*, through a visually
19
+ * hidden `<label>`, the first slot — the ARIA pattern for a code field. Leave
20
+ * it off inside a {@link Field}, which supplies a real label.
21
+ */
22
+ "aria-label"?: string;
23
+ /** Id of the first slot. Generated when omitted, so the hidden label can target it. */
24
+ id?: string;
25
+ /**
26
+ * Accessible name for slot `index` (1-based here, since slot 0 is named by the
27
+ * field label) of `length`. Defaults to
28
+ * ``(index, length) => `Character ${index + 1} of ${length}` ``.
29
+ */
30
+ slotLabel?: (index: number, length: number) => string;
31
+ /** Extra classes for the row. */
32
+ className?: string;
33
+ /** Extra classes for every slot. */
34
+ slotClassName?: string;
35
+ }
36
+ /**
37
+ * A one-time code, one character per box.
38
+ *
39
+ * The boxes are not decoration: they tell the user how long the code is before
40
+ * they start typing, which is the whole reason this pattern beats a plain text
41
+ * input. Paste, arrow keys, Backspace across slot boundaries and the
42
+ * `one-time-code` autofill hint all come from Base UI.
43
+ *
44
+ * Slots ride the recessed chassis — sunken fill, hairline rim — so a code field
45
+ * reads as "type here" like every other input in the system, just squared off.
46
+ *
47
+ * @example
48
+ * <OTPField aria-label="Verification code" onValueComplete={submit} />
49
+ * @example
50
+ * <OTPField aria-label="Recovery code" length={8} groupSize={4} validationType="alphanumeric" />
51
+ */
52
+ declare const OTPField$1: React.ForwardRefExoticComponent<Omit<OTPFieldProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
53
+ //#endregion
54
+ export { OTPField$1 as OTPField, OTPFieldProps };
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { controlSurface } from "./_chassis.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { OTPField } from "@base-ui/react/otp-field";
7
+ //#region src/forms/otp-field.tsx
8
+ /** One square slot per rung of the control ladder. */
9
+ const SLOT_SIZES = {
10
+ sm: "size-control-sm text-(length:--cue-text-ui)",
11
+ md: "size-control-md text-(length:--cue-text-body)",
12
+ lg: "size-control-lg text-(length:--cue-text-emphasis)"
13
+ };
14
+ /**
15
+ * A one-time code, one character per box.
16
+ *
17
+ * The boxes are not decoration: they tell the user how long the code is before
18
+ * they start typing, which is the whole reason this pattern beats a plain text
19
+ * input. Paste, arrow keys, Backspace across slot boundaries and the
20
+ * `one-time-code` autofill hint all come from Base UI.
21
+ *
22
+ * Slots ride the recessed chassis — sunken fill, hairline rim — so a code field
23
+ * reads as "type here" like every other input in the system, just squared off.
24
+ *
25
+ * @example
26
+ * <OTPField aria-label="Verification code" onValueComplete={submit} />
27
+ * @example
28
+ * <OTPField aria-label="Recovery code" length={8} groupSize={4} validationType="alphanumeric" />
29
+ */
30
+ const OTPField$1 = React.forwardRef(function OTPField$2({ length = 6, size = "md", groupSize, separator = "–", "aria-label": ariaLabel, id, slotLabel = (index, total) => `Character ${index + 1} of ${total}`, className, slotClassName, ...elementProps }, ref) {
31
+ const generatedId = React.useId();
32
+ const fieldId = id ?? generatedId;
33
+ const slotClasses = cn(controlSurface, "w-auto p-0 text-center tabular-nums", SLOT_SIZES[size], slotClassName);
34
+ return /* @__PURE__ */ jsxs(OTPField.Root, {
35
+ ref,
36
+ id: fieldId,
37
+ length,
38
+ "aria-label": ariaLabel,
39
+ "data-slot": "otp-field",
40
+ className: cn("relative flex items-center gap-(--cue-space-2)", className),
41
+ ...elementProps,
42
+ children: [ariaLabel === void 0 ? null : /* @__PURE__ */ jsx("label", {
43
+ htmlFor: fieldId,
44
+ className: "sr-only",
45
+ children: ariaLabel
46
+ }), Array.from({ length }, (_, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [groupSize !== void 0 && index > 0 && index % groupSize === 0 ? /* @__PURE__ */ jsx("span", {
47
+ "data-slot": "otp-field-separator",
48
+ "aria-hidden": "true",
49
+ className: "px-(--cue-space-1) font-mono text-fg-subtle select-none",
50
+ children: separator
51
+ }) : null, /* @__PURE__ */ jsx(OTPField.Input, {
52
+ "data-slot": "otp-field-slot",
53
+ "aria-label": index === 0 ? void 0 : slotLabel(index, length),
54
+ className: slotClasses
55
+ })] }, index))]
56
+ });
57
+ });
58
+ //#endregion
59
+ export { OTPField$1 as OTPField };
@@ -0,0 +1,46 @@
1
+ import { FormControlSize } from "./_chassis.js";
2
+ import { InputProps } from "./input.js";
3
+ import * as React from "react";
4
+ //#region src/forms/password-input.d.ts
5
+ interface PasswordInputProps extends Omit<InputProps, "type" | "size"> {
6
+ /** Reveal the value. Use with `onRevealedChange` for a controlled toggle. */
7
+ revealed?: boolean;
8
+ /** Initially revealed, for an uncontrolled toggle. Defaults to `false`. */
9
+ defaultRevealed?: boolean;
10
+ /** Called with the new reveal state. */
11
+ onRevealedChange?: (revealed: boolean) => void;
12
+ /**
13
+ * Offer the reveal affordance at all. Defaults to `true`. Switch it off for a
14
+ * value the product must never re-display — a stored secret the user is
15
+ * replacing rather than reading.
16
+ */
17
+ showReveal?: boolean;
18
+ /** Accessible name while masked. Defaults to `"Show password"`. */
19
+ revealLabel?: string;
20
+ /** Accessible name while revealed. Defaults to `"Hide password"`. */
21
+ hideLabel?: string;
22
+ /** Rung of the control ladder. Defaults to `"md"`. */
23
+ size?: FormControlSize;
24
+ /** Extra classes for the group that wraps the input and the reveal button. */
25
+ className?: string;
26
+ }
27
+ /**
28
+ * A masked text field with a reveal control.
29
+ *
30
+ * The reveal is a **toggle button carrying `aria-pressed`**, not a checkbox and
31
+ * not a bare icon: a screen-reader user needs to know both what it does and
32
+ * which way it currently is, and `aria-pressed` is the one attribute that says
33
+ * both. The label swaps with the state for the same reason.
34
+ *
35
+ * Revealing switches `type` between `password` and `text` rather than painting
36
+ * over the characters, so the browser's own autofill and password managers keep
37
+ * working.
38
+ *
39
+ * @example
40
+ * <PasswordInput aria-label="Service key" value={key} onValueChange={setKey} />
41
+ * @example
42
+ * <Field><FieldLabel>Token</FieldLabel><PasswordInput showReveal={false} /></Field>
43
+ */
44
+ declare const PasswordInput: React.ForwardRefExoticComponent<Omit<PasswordInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
45
+ //#endregion
46
+ export { PasswordInput, PasswordInputProps };
@@ -0,0 +1,62 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { InputGroup } from "./input-group.js";
4
+ import { Input } from "./input.js";
5
+ import { EyeGlyph, EyeOffGlyph } from "./_glyphs.js";
6
+ import * as React from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ //#region src/forms/password-input.tsx
9
+ /**
10
+ * A masked text field with a reveal control.
11
+ *
12
+ * The reveal is a **toggle button carrying `aria-pressed`**, not a checkbox and
13
+ * not a bare icon: a screen-reader user needs to know both what it does and
14
+ * which way it currently is, and `aria-pressed` is the one attribute that says
15
+ * both. The label swaps with the state for the same reason.
16
+ *
17
+ * Revealing switches `type` between `password` and `text` rather than painting
18
+ * over the characters, so the browser's own autofill and password managers keep
19
+ * working.
20
+ *
21
+ * @example
22
+ * <PasswordInput aria-label="Service key" value={key} onValueChange={setKey} />
23
+ * @example
24
+ * <Field><FieldLabel>Token</FieldLabel><PasswordInput showReveal={false} /></Field>
25
+ */
26
+ const PasswordInput = React.forwardRef(function PasswordInput({ className, revealed: revealedProp, defaultRevealed = false, onRevealedChange, showReveal = true, revealLabel = "Show password", hideLabel = "Hide password", size, disabled, ...elementProps }, ref) {
27
+ const [uncontrolled, setUncontrolled] = React.useState(defaultRevealed);
28
+ const revealed = revealedProp ?? uncontrolled;
29
+ const toggle = React.useCallback(() => {
30
+ const next = !revealed;
31
+ if (revealedProp === void 0) setUncontrolled(next);
32
+ onRevealedChange?.(next);
33
+ }, [
34
+ onRevealedChange,
35
+ revealed,
36
+ revealedProp
37
+ ]);
38
+ return /* @__PURE__ */ jsx(InputGroup, {
39
+ size,
40
+ className,
41
+ trailing: showReveal ? /* @__PURE__ */ jsx("button", {
42
+ type: "button",
43
+ "aria-pressed": revealed,
44
+ "aria-label": revealed ? hideLabel : revealLabel,
45
+ disabled,
46
+ onClick: toggle,
47
+ className: "flex shrink-0 cursor-pointer items-center justify-center rounded-(--radius-control) text-fg-subtle outline-none transition-colors hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-40 aria-pressed:text-fg",
48
+ children: /* @__PURE__ */ jsx(revealed ? EyeOffGlyph : EyeGlyph, { className: "size-icon-md" })
49
+ }) : void 0,
50
+ children: /* @__PURE__ */ jsx(Input, {
51
+ ref,
52
+ type: revealed ? "text" : "password",
53
+ "data-slot": "password-input",
54
+ spellCheck: false,
55
+ disabled,
56
+ className: cn("[&::-ms-reveal]:hidden"),
57
+ ...elementProps
58
+ })
59
+ });
60
+ });
61
+ //#endregion
62
+ export { PasswordInput };
@@ -0,0 +1,50 @@
1
+ import * as React from "react";
2
+ import { Radio } from "@base-ui/react/radio";
3
+ import { RadioGroup } from "@base-ui/react/radio-group";
4
+ //#region src/forms/radio-group.d.ts
5
+ interface RadioGroupProps extends Omit<RadioGroup.Props, "className"> {
6
+ /** Extra classes, merged over the stack defaults. */
7
+ className?: string;
8
+ /** Lay the options out in a column (default) or a row. */
9
+ orientation?: "vertical" | "horizontal";
10
+ }
11
+ /**
12
+ * One-of-many selection: a roving-tabindex group of {@link Radio}s sharing a
13
+ * single value.
14
+ *
15
+ * Arrow keys move *and* select, per the WAI-ARIA radio group pattern that Base
16
+ * UI implements — so the whole group is one tab stop, which is what keeps a
17
+ * dense settings panel navigable.
18
+ *
19
+ * @example
20
+ * <RadioGroup aria-label="Blend mode" value={mode} onValueChange={setMode}>
21
+ * <Radio value="htp" label="HTP" />
22
+ * <Radio value="ltp" label="LTP" />
23
+ * </RadioGroup>
24
+ */
25
+ declare const RadioGroup$1: React.ForwardRefExoticComponent<Omit<RadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
26
+ interface RadioProps extends Omit<Radio.Root.Props, "className"> {
27
+ /** Extra classes, merged over the dot defaults. */
28
+ className?: string;
29
+ /**
30
+ * Inline label rendered beside the dot and wrapped with it in a `<label>`, so
31
+ * the text is both the accessible name and part of the hit target.
32
+ */
33
+ label?: React.ReactNode;
34
+ /** Rung of the density icon ladder for the dot. Defaults to `"md"`. */
35
+ size?: "sm" | "md";
36
+ }
37
+ /**
38
+ * One option inside a {@link RadioGroup}.
39
+ *
40
+ * Round, to say "exactly one" the way a square {@link Checkbox} says "any
41
+ * number". Checked draws an accent rim with an accent core rather than a solid
42
+ * fill, so the selected option stays legible against the sunken field colour on
43
+ * every theme.
44
+ *
45
+ * @example
46
+ * <Radio value="htp" label="Highest takes precedence" />
47
+ */
48
+ declare const Radio$1: React.ForwardRefExoticComponent<Omit<RadioProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
49
+ //#endregion
50
+ export { Radio$1 as Radio, RadioGroup$1 as RadioGroup, RadioGroupProps, RadioProps };
@@ -0,0 +1,64 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import * as React from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { Radio } from "@base-ui/react/radio";
6
+ import { RadioGroup } from "@base-ui/react/radio-group";
7
+ //#region src/forms/radio-group.tsx
8
+ /**
9
+ * One-of-many selection: a roving-tabindex group of {@link Radio}s sharing a
10
+ * single value.
11
+ *
12
+ * Arrow keys move *and* select, per the WAI-ARIA radio group pattern that Base
13
+ * UI implements — so the whole group is one tab stop, which is what keeps a
14
+ * dense settings panel navigable.
15
+ *
16
+ * @example
17
+ * <RadioGroup aria-label="Blend mode" value={mode} onValueChange={setMode}>
18
+ * <Radio value="htp" label="HTP" />
19
+ * <Radio value="ltp" label="LTP" />
20
+ * </RadioGroup>
21
+ */
22
+ const RadioGroup$1 = React.forwardRef(function RadioGroup$2({ className, orientation = "vertical", ...elementProps }, ref) {
23
+ return /* @__PURE__ */ jsx(RadioGroup, {
24
+ ref,
25
+ "data-slot": "radio-group",
26
+ "data-orientation": orientation,
27
+ className: cn("flex", orientation === "horizontal" ? "flex-row flex-wrap items-center gap-(--cue-space-5)" : "flex-col gap-(--cue-space-2)", className),
28
+ ...elementProps
29
+ });
30
+ });
31
+ /**
32
+ * One option inside a {@link RadioGroup}.
33
+ *
34
+ * Round, to say "exactly one" the way a square {@link Checkbox} says "any
35
+ * number". Checked draws an accent rim with an accent core rather than a solid
36
+ * fill, so the selected option stays legible against the sunken field colour on
37
+ * every theme.
38
+ *
39
+ * @example
40
+ * <Radio value="htp" label="Highest takes precedence" />
41
+ */
42
+ const Radio$1 = React.forwardRef(function Radio$2({ className, label, size = "md", ...elementProps }, ref) {
43
+ const labelId = React.useId();
44
+ const hasLabel = label !== void 0;
45
+ const dot = /* @__PURE__ */ jsx(Radio.Root, {
46
+ ref,
47
+ "data-slot": "radio",
48
+ "aria-labelledby": hasLabel ? labelId : void 0,
49
+ className: cn("flex shrink-0 items-center justify-center rounded-full border border-border bg-sunken text-accent outline-none transition-colors", size === "sm" ? "size-icon-sm" : "size-icon-md", "hover:border-border-strong", "data-[checked]:border-accent", "focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent", "data-[disabled]:pointer-events-none data-[disabled]:opacity-40", "data-[invalid]:border-danger", className),
50
+ ...elementProps,
51
+ children: /* @__PURE__ */ jsx(Radio.Indicator, { className: "block size-1/2 rounded-full bg-accent data-[unchecked]:hidden" })
52
+ });
53
+ if (!hasLabel) return dot;
54
+ return /* @__PURE__ */ jsxs("label", {
55
+ "data-slot": "radio-label",
56
+ className: "inline-flex cursor-pointer items-center gap-(--cue-space-3) font-mono text-(length:--cue-text-ui) text-fg-muted select-none has-[[data-disabled]]:cursor-default has-[[data-disabled]]:opacity-40",
57
+ children: [dot, /* @__PURE__ */ jsx("span", {
58
+ id: labelId,
59
+ children: label
60
+ })]
61
+ });
62
+ });
63
+ //#endregion
64
+ export { Radio$1 as Radio, RadioGroup$1 as RadioGroup };
@@ -0,0 +1,69 @@
1
+ import * as React from "react";
2
+ //#region src/forms/rating.d.ts
3
+ /** Mark size per rung — a rating is read at a glance, so it tracks the icon ladder. */
4
+ declare const MARK_SIZES: {
5
+ readonly sm: "size-icon-sm";
6
+ readonly md: "size-icon-md";
7
+ readonly lg: "size-[calc(var(--cue-icon-md)*1.35)]";
8
+ };
9
+ /** Rung of the icon ladder a {@link Rating}'s marks sit on. */
10
+ type RatingSize = keyof typeof MARK_SIZES;
11
+ interface RatingProps extends Omit<React.ComponentPropsWithoutRef<"div">, "onChange" | "defaultValue"> {
12
+ /** The rating, `0`–`count`. Use with `onValueChange` for a controlled widget. */
13
+ value?: number;
14
+ /** Initial rating for an uncontrolled widget. Defaults to `0`. */
15
+ defaultValue?: number;
16
+ /** Called with the new rating; `0` means "cleared". */
17
+ onValueChange?: (value: number) => void;
18
+ /** How many marks. Defaults to `5`. */
19
+ count?: number;
20
+ /** Rung of the icon ladder. Defaults to `"md"`. */
21
+ size?: RatingSize;
22
+ /**
23
+ * Picking the current value clears it back to `0`. Defaults to `true` — a
24
+ * rating you cannot take back is a trap, and there is no other affordance for
25
+ * "actually, no opinion".
26
+ */
27
+ allowClear?: boolean;
28
+ /** Render a static readout with no controls. */
29
+ readOnly?: boolean;
30
+ /** Grey the marks out and refuse interaction. */
31
+ disabled?: boolean;
32
+ /**
33
+ * Accessible name for the group. Also the prefix of the read-only readout —
34
+ * `"Signal quality: 4 of 5"`. Synonym of `aria-label`, which wins if both are
35
+ * given.
36
+ */
37
+ label?: string;
38
+ /** Accessible name for the group, for callers who prefer the ARIA spelling. */
39
+ "aria-label"?: string;
40
+ /** The mark component. Defaults to a filled star. */
41
+ icon?: React.ElementType;
42
+ /**
43
+ * Accessible name for mark `index` (1-based) of `count`. Defaults to
44
+ * ``(index, count) => `${index} of ${count}` ``.
45
+ */
46
+ markLabel?: (index: number, count: number) => string;
47
+ /** Extra classes for the group. */
48
+ className?: string;
49
+ }
50
+ /**
51
+ * A 0–N rating, drawn as marks.
52
+ *
53
+ * Built as a **radio group**, not a row of buttons: exactly one value is in
54
+ * effect, arrow keys move between the options, and one Tab stop covers the whole
55
+ * widget. A row of toggle buttons would put five stops in the tab order and
56
+ * announce five unrelated controls.
57
+ *
58
+ * Read-only renders as a single `img` with the value in its name — an
59
+ * un-interactive control that still takes focus is a trap, and five disabled
60
+ * radios announce five things where one sentence will do.
61
+ *
62
+ * @example
63
+ * <Rating label="Signal quality" value={score} onValueChange={setScore} />
64
+ * @example
65
+ * <Rating aria-label="Signal quality" value={4} readOnly size="sm" />
66
+ */
67
+ declare const Rating: React.ForwardRefExoticComponent<RatingProps & React.RefAttributes<HTMLDivElement>>;
68
+ //#endregion
69
+ export { Rating, RatingProps, RatingSize };
@@ -0,0 +1,103 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { StarGlyph } from "./_glyphs.js";
4
+ import * as React from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region src/forms/rating.tsx
7
+ /** Mark size per rung — a rating is read at a glance, so it tracks the icon ladder. */
8
+ const MARK_SIZES = {
9
+ sm: "size-icon-sm",
10
+ md: "size-icon-md",
11
+ lg: "size-[calc(var(--cue-icon-md)*1.35)]"
12
+ };
13
+ const MARK_CLASSES = "flex cursor-pointer items-center justify-center border-0 bg-transparent p-0 text-fg-subtle transition-colors duration-150 outline-none hover:text-accent focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-40 aria-checked:text-accent";
14
+ /**
15
+ * A 0–N rating, drawn as marks.
16
+ *
17
+ * Built as a **radio group**, not a row of buttons: exactly one value is in
18
+ * effect, arrow keys move between the options, and one Tab stop covers the whole
19
+ * widget. A row of toggle buttons would put five stops in the tab order and
20
+ * announce five unrelated controls.
21
+ *
22
+ * Read-only renders as a single `img` with the value in its name — an
23
+ * un-interactive control that still takes focus is a trap, and five disabled
24
+ * radios announce five things where one sentence will do.
25
+ *
26
+ * @example
27
+ * <Rating label="Signal quality" value={score} onValueChange={setScore} />
28
+ * @example
29
+ * <Rating aria-label="Signal quality" value={4} readOnly size="sm" />
30
+ */
31
+ const Rating = React.forwardRef(function Rating({ className, value: valueProp, defaultValue = 0, onValueChange, count = 5, size = "md", allowClear = true, readOnly = false, disabled = false, label, "aria-label": ariaLabel, icon: Icon = StarGlyph, markLabel = (index, total) => `${index} of ${total}`, ...elementProps }, ref) {
32
+ const isControlled = valueProp !== void 0;
33
+ const [uncontrolled, setUncontrolled] = React.useState(defaultValue);
34
+ const value = isControlled ? valueProp : uncontrolled;
35
+ const name = ariaLabel ?? label;
36
+ const commit = React.useCallback((next) => {
37
+ const clamped = Math.min(count, Math.max(0, next));
38
+ if (clamped === value) return;
39
+ if (!isControlled) setUncontrolled(clamped);
40
+ onValueChange?.(clamped);
41
+ }, [
42
+ count,
43
+ isControlled,
44
+ onValueChange,
45
+ value
46
+ ]);
47
+ const marks = Array.from({ length: count }, (_, index) => index + 1);
48
+ if (readOnly) return /* @__PURE__ */ jsx("div", {
49
+ ref,
50
+ role: "img",
51
+ "data-slot": "rating",
52
+ "aria-label": name === void 0 ? `${value} of ${count}` : `${name}: ${value} of ${count}`,
53
+ className: cn("inline-flex items-center gap-(--cue-space-1)", className),
54
+ ...elementProps,
55
+ children: marks.map((mark) => /* @__PURE__ */ jsx(Icon, {
56
+ "aria-hidden": "true",
57
+ "data-slot": "rating-mark",
58
+ "data-filled": mark <= value ? "" : void 0,
59
+ className: cn(MARK_SIZES[size], mark <= value ? "text-accent" : "text-fg-subtle")
60
+ }, mark))
61
+ });
62
+ const handleKeyDown = (event) => {
63
+ if (disabled) return;
64
+ const step = event.key === "ArrowRight" || event.key === "ArrowUp" ? 1 : event.key === "ArrowLeft" || event.key === "ArrowDown" ? -1 : 0;
65
+ let next = null;
66
+ if (step !== 0) next = Math.min(count, Math.max(1, value + step));
67
+ else if (event.key === "Home") next = 1;
68
+ else if (event.key === "End") next = count;
69
+ if (next === null) return;
70
+ event.preventDefault();
71
+ commit(next);
72
+ event.currentTarget.querySelector(`[data-slot="rating-mark"][data-index="${next}"]`)?.focus();
73
+ };
74
+ const focusable = value === 0 ? 1 : value;
75
+ return /* @__PURE__ */ jsx("div", {
76
+ ref,
77
+ role: "radiogroup",
78
+ "data-slot": "rating",
79
+ "aria-label": name,
80
+ "aria-disabled": disabled ? true : void 0,
81
+ onKeyDown: handleKeyDown,
82
+ className: cn("inline-flex items-center gap-(--cue-space-1)", className),
83
+ ...elementProps,
84
+ children: marks.map((mark) => /* @__PURE__ */ jsx("button", {
85
+ type: "button",
86
+ role: "radio",
87
+ "data-slot": "rating-mark",
88
+ "data-index": mark,
89
+ "aria-checked": mark === value,
90
+ "aria-label": markLabel(mark, count),
91
+ tabIndex: mark === focusable ? 0 : -1,
92
+ disabled,
93
+ onClick: () => commit(mark === value && allowClear ? 0 : mark),
94
+ className: MARK_CLASSES,
95
+ children: /* @__PURE__ */ jsx(Icon, {
96
+ "aria-hidden": "true",
97
+ className: cn(MARK_SIZES[size], mark <= value ? "text-accent" : void 0)
98
+ })
99
+ }, mark))
100
+ });
101
+ });
102
+ //#endregion
103
+ export { Rating };