@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,47 @@
1
+ import * as React from "react";
2
+ //#region src/chrome/title-bar.d.ts
3
+ interface TitleBarProps extends React.ComponentPropsWithoutRef<"div"> {
4
+ /**
5
+ * Make the bar a window drag handle.
6
+ *
7
+ * Emits `data-tauri-drag-region` (Tauri reads the attribute) *and* the
8
+ * `app-region: drag` CSS property (Electron and Chromium read that), because
9
+ * the same component ships into both shells and neither one recognises the
10
+ * other's contract. The interactive clusters are carved back out with
11
+ * `app-region: no-drag`, or the buttons in the bar would only ever move the
12
+ * window instead of firing. Both halves of that contract live in
13
+ * `./_drag.ts`, which `AppShell.Bar` emits from as well — the two bars are
14
+ * draggable the same way or they are not draggable the same way.
15
+ *
16
+ * Double-click-to-maximise is not wired here. Tauri's own injected script
17
+ * already provides it on any drag region, cancel-by-dragging-away on macOS
18
+ * included; Electron provides nothing, and an Electron app has to listen for
19
+ * `dblclick` and toggle the window itself. Neither is a decision a component
20
+ * in a design system can make on the window's behalf.
21
+ *
22
+ * Defaults to `false`.
23
+ */
24
+ platformDrag?: boolean;
25
+ /**
26
+ * Centre slot: the document name. Absolutely centred on the *bar*, not
27
+ * between the two clusters, so it does not shift sideways when a button
28
+ * appears on one side. `pointer-events-none`, so the dead space around a
29
+ * short title stays draggable.
30
+ */
31
+ center?: React.ReactNode;
32
+ /** Trailing slot: window controls, connection state, an overflow menu. */
33
+ actions?: React.ReactNode;
34
+ /** Leading slot: the app mark, a back button, the file menu. */
35
+ children?: React.ReactNode;
36
+ }
37
+ /**
38
+ * The window's own bar: app mark left, document name centred, controls right.
39
+ *
40
+ * @example
41
+ * <TitleBar platformDrag center="untitled.cue" actions={<WindowControls />}>
42
+ * <Eyebrow>CUE++</Eyebrow>
43
+ * </TitleBar>
44
+ */
45
+ declare const TitleBar: React.ForwardRefExoticComponent<TitleBarProps & React.RefAttributes<HTMLDivElement>>;
46
+ //#endregion
47
+ export { TitleBar, TitleBarProps };
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { DRAG_CLASSES, NO_DRAG_CLASSES } from "./_drag.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/chrome/title-bar.tsx
7
+ /**
8
+ * The window's own bar: app mark left, document name centred, controls right.
9
+ *
10
+ * @example
11
+ * <TitleBar platformDrag center="untitled.cue" actions={<WindowControls />}>
12
+ * <Eyebrow>CUE++</Eyebrow>
13
+ * </TitleBar>
14
+ */
15
+ const TitleBar = React.forwardRef(function TitleBar({ className, platformDrag = false, center, actions, children, ...elementProps }, ref) {
16
+ const clusterClasses = cn("flex min-w-0 items-center gap-(--cue-space-2)", platformDrag ? NO_DRAG_CLASSES : void 0);
17
+ return /* @__PURE__ */ jsxs("div", {
18
+ ref,
19
+ "data-slot": "title-bar",
20
+ "data-tauri-drag-region": platformDrag ? "" : void 0,
21
+ className: cn("relative flex h-(--cue-chrome-titlebar) w-full shrink-0 items-center justify-between gap-(--cue-space-3) border-b border-border bg-surface-1 px-(--cue-pad-row-x) select-none", platformDrag ? DRAG_CLASSES : void 0, className),
22
+ ...elementProps,
23
+ children: [
24
+ /* @__PURE__ */ jsx("div", {
25
+ "data-slot": "title-bar-leading",
26
+ className: clusterClasses,
27
+ children
28
+ }),
29
+ center === void 0 ? null : /* @__PURE__ */ jsx("div", {
30
+ "data-slot": "title-bar-center",
31
+ className: "pointer-events-none absolute left-1/2 flex -translate-x-1/2 items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg-muted",
32
+ children: center
33
+ }),
34
+ actions === void 0 ? null : /* @__PURE__ */ jsx("div", {
35
+ "data-slot": "title-bar-actions",
36
+ className: cn(clusterClasses, "shrink-0"),
37
+ children: actions
38
+ })
39
+ ]
40
+ });
41
+ });
42
+ //#endregion
43
+ export { TitleBar };
@@ -0,0 +1,68 @@
1
+ import { BarOverflow } from "./_edge-scroller.js";
2
+ import * as React from "react";
3
+ import { Toolbar } from "@base-ui/react/toolbar";
4
+ //#region src/chrome/toolbar.d.ts
5
+ interface ToolbarRootProps extends Omit<Toolbar.Root.Props, "className"> {
6
+ /** Extra classes for the bar. */
7
+ className?: string;
8
+ /**
9
+ * What the bar does when its controls do not fit. Defaults to `"scroll"`.
10
+ *
11
+ * `"scroll"` is the library's one overflow behaviour (see
12
+ * `./_edge-scroller` for why it is scrolling rather than wrapping or a "more"
13
+ * menu): the bar keeps its single chrome-rung height, the controls scroll
14
+ * inside it, the overflowing edge is faded and a pager chevron appears there.
15
+ * A bar whose controls all fit renders exactly as it did before — no mask, no
16
+ * chevrons, no compositing layer.
17
+ *
18
+ * `"clip"` restores the old behaviour and adds no wrapper element, for a bar
19
+ * that is already inside something which scrolls.
20
+ *
21
+ * A vertical toolbar ignores this: the affordance is horizontal, and a
22
+ * vertical bar overflows on the axis this does not measure.
23
+ */
24
+ overflow?: BarOverflow;
25
+ /** Accessible name for the chevron that reveals controls off the leading edge. */
26
+ previousLabel?: string;
27
+ /** Accessible name for the chevron that reveals controls off the trailing edge. */
28
+ nextLabel?: string;
29
+ }
30
+ interface ToolbarButtonProps extends Omit<Toolbar.Button.Props, "className"> {
31
+ /** Extra classes for the button. */
32
+ className?: string;
33
+ /** Optional leading icon (e.g. a lucide icon), drawn `aria-hidden`. */
34
+ icon?: React.ElementType;
35
+ }
36
+ interface ToolbarGroupProps extends Omit<Toolbar.Group.Props, "className"> {
37
+ /** Extra classes for the group. */
38
+ className?: string;
39
+ }
40
+ interface ToolbarSeparatorProps extends Omit<Toolbar.Separator.Props, "className"> {
41
+ /** Extra classes for the rule. */
42
+ className?: string;
43
+ }
44
+ /**
45
+ * The strip of controls across the top of a view.
46
+ *
47
+ * Wraps Base UI's `Toolbar`, so the whole bar is one tab stop with arrow-key
48
+ * roving focus inside it — which is the entire point of the ARIA toolbar
49
+ * pattern and the reason not to hand-roll this out of a flex row of buttons.
50
+ *
51
+ * @example
52
+ * <Toolbar.Root aria-label="Cue actions">
53
+ * <Toolbar.Group aria-label="Playback">
54
+ * <Toolbar.Button icon={Play}>Go</Toolbar.Button>
55
+ * <Toolbar.Button icon={Square}>Stop</Toolbar.Button>
56
+ * </Toolbar.Group>
57
+ * <Toolbar.Separator />
58
+ * <Toolbar.Button icon={Save}>Save</Toolbar.Button>
59
+ * </Toolbar.Root>
60
+ */
61
+ declare const Toolbar$1: {
62
+ Root: React.ForwardRefExoticComponent<Omit<ToolbarRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
63
+ Button: React.ForwardRefExoticComponent<Omit<ToolbarButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
64
+ Group: React.ForwardRefExoticComponent<Omit<ToolbarGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
65
+ Separator: React.ForwardRefExoticComponent<Omit<ToolbarSeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
66
+ };
67
+ //#endregion
68
+ export { Toolbar$1 as Toolbar, ToolbarButtonProps, ToolbarGroupProps, ToolbarRootProps, ToolbarSeparatorProps };
@@ -0,0 +1,83 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { useComposedRefs } from "../lib/compose.js";
4
+ import { EDGE_SCROLLER_CLASSES, EdgeChevrons, useEdgeScroll } from "./_edge-scroller.js";
5
+ import * as React from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { Toolbar } from "@base-ui/react/toolbar";
8
+ /**
9
+ * The strip of controls across the top of a view.
10
+ *
11
+ * Wraps Base UI's `Toolbar`, so the whole bar is one tab stop with arrow-key
12
+ * roving focus inside it — which is the entire point of the ARIA toolbar
13
+ * pattern and the reason not to hand-roll this out of a flex row of buttons.
14
+ *
15
+ * @example
16
+ * <Toolbar.Root aria-label="Cue actions">
17
+ * <Toolbar.Group aria-label="Playback">
18
+ * <Toolbar.Button icon={Play}>Go</Toolbar.Button>
19
+ * <Toolbar.Button icon={Square}>Stop</Toolbar.Button>
20
+ * </Toolbar.Group>
21
+ * <Toolbar.Separator />
22
+ * <Toolbar.Button icon={Save}>Save</Toolbar.Button>
23
+ * </Toolbar.Root>
24
+ */
25
+ const Toolbar$1 = {
26
+ Root: React.forwardRef(function ToolbarRoot({ className, overflow = "scroll", previousLabel = "Show earlier controls", nextLabel = "Show later controls", ...elementProps }, ref) {
27
+ const scrolls = overflow === "scroll" && elementProps.orientation !== "vertical";
28
+ const scroll = useEdgeScroll(scrolls);
29
+ const barRef = useComposedRefs(ref, scroll.ref);
30
+ const bar = /* @__PURE__ */ jsx(Toolbar.Root, {
31
+ ref: barRef,
32
+ "data-slot": "toolbar",
33
+ className: cn("flex h-(--cue-chrome-toolbar) w-full shrink-0 items-center gap-(--cue-space-2) border-b border-border bg-surface-1 px-(--cue-pad-row-x) data-[orientation=vertical]:h-auto data-[orientation=vertical]:w-(--cue-chrome-toolbar) data-[orientation=vertical]:flex-col data-[orientation=vertical]:border-r data-[orientation=vertical]:border-b-0", scrolls ? EDGE_SCROLLER_CLASSES : null, className),
34
+ ...elementProps,
35
+ style: {
36
+ ...elementProps.style,
37
+ ...scroll.style
38
+ }
39
+ });
40
+ if (!scrolls) return bar;
41
+ return /* @__PURE__ */ jsxs("div", {
42
+ "data-slot": "toolbar-frame",
43
+ className: "relative w-full min-w-0 shrink-0",
44
+ children: [bar, /* @__PURE__ */ jsx(EdgeChevrons, {
45
+ edges: scroll.edges,
46
+ onNudge: scroll.nudge,
47
+ previousLabel,
48
+ nextLabel,
49
+ className: "bottom-px bg-surface-1"
50
+ })]
51
+ });
52
+ }),
53
+ Button: React.forwardRef(function ToolbarButton({ className, icon: Icon, children, ...elementProps }, ref) {
54
+ return /* @__PURE__ */ jsxs(Toolbar.Button, {
55
+ ref,
56
+ "data-slot": "toolbar-button",
57
+ className: cn("inline-flex h-control-md shrink-0 cursor-pointer items-center justify-center gap-(--cue-space-2) rounded-(--radius-control) px-(--cue-space-3) font-mono text-(length:--cue-text-ui) whitespace-nowrap text-fg-muted transition-colors duration-150 outline-none select-none 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", className),
58
+ ...elementProps,
59
+ children: [Icon === void 0 ? null : /* @__PURE__ */ jsx(Icon, {
60
+ "aria-hidden": "true",
61
+ className: "size-icon-md shrink-0"
62
+ }), children]
63
+ });
64
+ }),
65
+ Group: React.forwardRef(function ToolbarGroup({ className, ...elementProps }, ref) {
66
+ return /* @__PURE__ */ jsx(Toolbar.Group, {
67
+ ref,
68
+ "data-slot": "toolbar-group",
69
+ className: cn("inline-flex items-center gap-(--cue-space-1)", className),
70
+ ...elementProps
71
+ });
72
+ }),
73
+ Separator: React.forwardRef(function ToolbarSeparator({ className, ...elementProps }, ref) {
74
+ return /* @__PURE__ */ jsx(Toolbar.Separator, {
75
+ ref,
76
+ "data-slot": "toolbar-separator",
77
+ className: cn("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:mx-(--cue-space-1) data-[orientation=vertical]:h-[60%] data-[orientation=vertical]:w-px", className),
78
+ ...elementProps
79
+ });
80
+ })
81
+ };
82
+ //#endregion
83
+ export { Toolbar$1 as Toolbar };
@@ -0,0 +1,98 @@
1
+ import { TreeItem, TreeRow } from "./_tree.js";
2
+ import * as React from "react";
3
+ //#region src/chrome/tree.d.ts
4
+ interface TreeProps extends Omit<React.ComponentPropsWithoutRef<"div">, "onSelect"> {
5
+ /** The roots, in display order. */
6
+ items: readonly TreeItem[];
7
+ /** Expanded ids when controlled. Pass with `onExpandedChange`. */
8
+ expanded?: readonly string[];
9
+ /** Initially expanded ids when uncontrolled. */
10
+ defaultExpanded?: readonly string[];
11
+ /** Called with the whole next expanded set whenever a row is folded or unfolded. */
12
+ onExpandedChange?: (expanded: string[]) => void;
13
+ /** Selected id when controlled. Pass with `onSelect`. */
14
+ selected?: string | null;
15
+ /** Initially selected id when uncontrolled. */
16
+ defaultSelected?: string | null;
17
+ /** Called with the id of the row the user selected. */
18
+ onSelect?: (id: string) => void;
19
+ /**
20
+ * Replace the *body* of a row — the icon, label and badge.
21
+ *
22
+ * The row element itself, its ARIA, its tab index and its indent gutter stay
23
+ * with the component on purpose: those are the parts a call site cannot get
24
+ * wrong without breaking keyboard navigation for everyone.
25
+ */
26
+ renderRow?: (row: TreeRow) => React.ReactNode;
27
+ /**
28
+ * Controls hung off the right of each row, revealed on hover or focus.
29
+ *
30
+ * This is where the three-state visibility idiom goes — see
31
+ * {@link TreeVisibilityToggle} — along with focus, rename and delete
32
+ * affordances. Anything essential belongs in the row body or a context menu
33
+ * instead: hover-revealed controls are invisible on touch.
34
+ */
35
+ rowControls?: (item: TreeItem, row: TreeRow) => React.ReactNode;
36
+ /** Draw the box-drawing indent gutter. Defaults to `true`. */
37
+ guides?: boolean;
38
+ /** Accessible name for the tree. Required in practice — name what it lists. */
39
+ "aria-label"?: string;
40
+ }
41
+ /**
42
+ * A hierarchical outline: a rig, a scene graph, a folder of shows.
43
+ *
44
+ * Hand-built rather than wrapped, because the pattern's whole cost is in three
45
+ * details no primitive here provides together:
46
+ *
47
+ * - **Roving tabindex.** The tree is one tab stop; the arrow keys move inside
48
+ * it. Eighty rows must never mean eighty presses of Tab.
49
+ * - **A flat DOM.** Rows carry `aria-level` / `aria-posinset` / `aria-setsize`
50
+ * instead of nesting `role="group"` wrappers, which is both valid ARIA and the
51
+ * shape a virtualizer needs when the outline grows past a screenful.
52
+ * - **The gutter.** `└ ├ │` in the mono grid, `aria-hidden` — structure you can
53
+ * see at a glance without indentation alone having to carry it.
54
+ *
55
+ * Selection is a tint (`accent-soft` ground, accent ink), never a solid fill —
56
+ * the same ruling as the sidebar item and the active tab.
57
+ *
58
+ * @example
59
+ * <Tree
60
+ * aria-label="Rig"
61
+ * items={rig}
62
+ * selected={selected}
63
+ * onSelect={setSelected}
64
+ * rowControls={(item) => (
65
+ * <TreeVisibilityToggle value={visibility[item.id]} onValueChange={set(item.id)} />
66
+ * )}
67
+ * />
68
+ */
69
+ declare const Tree: React.ForwardRefExoticComponent<TreeProps & React.RefAttributes<HTMLDivElement>>;
70
+ /** The three states a node can be drawn in. */
71
+ type TreeVisibility = "visible" | "ghost" | "hidden";
72
+ interface TreeVisibilityToggleProps extends Omit<React.ComponentPropsWithoutRef<"button">, "value" | "onChange" | "children"> {
73
+ /** The node's current visibility. */
74
+ value: TreeVisibility;
75
+ /** Called with the next state in the cycle. */
76
+ onValueChange: (value: TreeVisibility) => void;
77
+ /** Override the state names used in the accessible label. */
78
+ labels?: Partial<Record<TreeVisibility, string>>;
79
+ }
80
+ /**
81
+ * The outliner's three-state visibility control: shown → ghosted → hidden.
82
+ *
83
+ * Three states rather than a checkbox because a rig has three answers, not two:
84
+ * *there*, *there but out of the way*, and *not drawn*. Ghost is the one that
85
+ * earns the extra state — it is how you keep a truss as spatial reference while
86
+ * working behind it — and collapsing it into "hidden" is what makes people
87
+ * toggle things off and lose their bearings.
88
+ *
89
+ * Meant for {@link TreeProps.rowControls}. The accessible name states the
90
+ * *current* state ("Visibility: ghosted") rather than the next action, because
91
+ * with three states "toggle" names nothing useful; pressing cycles.
92
+ *
93
+ * @example
94
+ * <TreeVisibilityToggle value={state} onValueChange={setState} />
95
+ */
96
+ declare const TreeVisibilityToggle: React.ForwardRefExoticComponent<TreeVisibilityToggleProps & React.RefAttributes<HTMLButtonElement>>;
97
+ //#endregion
98
+ export { Tree, TreeProps, TreeVisibility, TreeVisibilityToggle, TreeVisibilityToggleProps };
@@ -0,0 +1,248 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { TREE_GUIDE_GLYPHS, flattenTree } from "./_tree.js";
4
+ import { ChevronRightGlyph, EyeGlyph, EyeOffGlyph, GhostGlyph } from "./_glyphs.js";
5
+ import * as React from "react";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
+ //#region src/chrome/tree.tsx
8
+ /**
9
+ * A hierarchical outline: a rig, a scene graph, a folder of shows.
10
+ *
11
+ * Hand-built rather than wrapped, because the pattern's whole cost is in three
12
+ * details no primitive here provides together:
13
+ *
14
+ * - **Roving tabindex.** The tree is one tab stop; the arrow keys move inside
15
+ * it. Eighty rows must never mean eighty presses of Tab.
16
+ * - **A flat DOM.** Rows carry `aria-level` / `aria-posinset` / `aria-setsize`
17
+ * instead of nesting `role="group"` wrappers, which is both valid ARIA and the
18
+ * shape a virtualizer needs when the outline grows past a screenful.
19
+ * - **The gutter.** `└ ├ │` in the mono grid, `aria-hidden` — structure you can
20
+ * see at a glance without indentation alone having to carry it.
21
+ *
22
+ * Selection is a tint (`accent-soft` ground, accent ink), never a solid fill —
23
+ * the same ruling as the sidebar item and the active tab.
24
+ *
25
+ * @example
26
+ * <Tree
27
+ * aria-label="Rig"
28
+ * items={rig}
29
+ * selected={selected}
30
+ * onSelect={setSelected}
31
+ * rowControls={(item) => (
32
+ * <TreeVisibilityToggle value={visibility[item.id]} onValueChange={set(item.id)} />
33
+ * )}
34
+ * />
35
+ */
36
+ const Tree = React.forwardRef(function Tree({ className, items, expanded: expandedProp, defaultExpanded, onExpandedChange, selected: selectedProp, defaultSelected = null, onSelect, renderRow, rowControls, guides = true, onKeyDown, ...elementProps }, ref) {
37
+ const [uncontrolledExpanded, setUncontrolledExpanded] = React.useState(defaultExpanded ?? []);
38
+ const expandedList = expandedProp ?? uncontrolledExpanded;
39
+ const expandedSet = React.useMemo(() => new Set(expandedList), [expandedList]);
40
+ const [uncontrolledSelected, setUncontrolledSelected] = React.useState(defaultSelected);
41
+ const selected = selectedProp === void 0 ? uncontrolledSelected : selectedProp;
42
+ const rows = React.useMemo(() => flattenTree(items, expandedSet), [items, expandedSet]);
43
+ const [activeId, setActiveId] = React.useState(null);
44
+ const activeRowId = activeId !== null && rows.some((row) => row.item.id === activeId) ? activeId : rows[0]?.item.id ?? null;
45
+ const rowRefs = React.useRef(/* @__PURE__ */ new Map());
46
+ const registerRow = React.useCallback((id, element) => {
47
+ if (element === null) rowRefs.current.delete(id);
48
+ else rowRefs.current.set(id, element);
49
+ }, []);
50
+ const focusRow = React.useCallback((id) => {
51
+ setActiveId(id);
52
+ rowRefs.current.get(id)?.focus();
53
+ }, []);
54
+ const setExpanded = React.useCallback((id, next) => {
55
+ const current = expandedProp ?? uncontrolledExpanded;
56
+ const result = next ? current.includes(id) ? [...current] : [...current, id] : current.filter((entry) => entry !== id);
57
+ if (expandedProp === void 0) setUncontrolledExpanded(result);
58
+ onExpandedChange?.(result);
59
+ }, [
60
+ expandedProp,
61
+ onExpandedChange,
62
+ uncontrolledExpanded
63
+ ]);
64
+ const select = React.useCallback((row) => {
65
+ if (row.item.disabled === true) return;
66
+ if (selectedProp === void 0) setUncontrolledSelected(row.item.id);
67
+ onSelect?.(row.item.id);
68
+ }, [onSelect, selectedProp]);
69
+ const handleKeyDown = React.useCallback((event) => {
70
+ onKeyDown?.(event);
71
+ if (event.defaultPrevented) return;
72
+ if (event.target.getAttribute("data-slot") !== "tree-row") return;
73
+ const index = rows.findIndex((row) => row.item.id === activeRowId);
74
+ const row = rows[index];
75
+ if (row === void 0) return;
76
+ const move = (target) => {
77
+ if (target === void 0) return;
78
+ event.preventDefault();
79
+ focusRow(target.item.id);
80
+ };
81
+ switch (event.key) {
82
+ case "ArrowDown":
83
+ move(rows[index + 1]);
84
+ return;
85
+ case "ArrowUp":
86
+ move(rows[index - 1]);
87
+ return;
88
+ case "Home":
89
+ move(rows[0]);
90
+ return;
91
+ case "End":
92
+ move(rows[rows.length - 1]);
93
+ return;
94
+ case "ArrowRight": {
95
+ event.preventDefault();
96
+ if (row.hasChildren && !row.expanded) {
97
+ setExpanded(row.item.id, true);
98
+ return;
99
+ }
100
+ const child = rows[index + 1];
101
+ if (row.expanded && child?.parentId === row.item.id) focusRow(child.item.id);
102
+ return;
103
+ }
104
+ case "ArrowLeft":
105
+ event.preventDefault();
106
+ if (row.expanded) setExpanded(row.item.id, false);
107
+ else if (row.parentId !== null) focusRow(row.parentId);
108
+ return;
109
+ case "Enter":
110
+ case " ":
111
+ event.preventDefault();
112
+ select(row);
113
+ return;
114
+ }
115
+ }, [
116
+ activeRowId,
117
+ focusRow,
118
+ onKeyDown,
119
+ rows,
120
+ select,
121
+ setExpanded
122
+ ]);
123
+ return /* @__PURE__ */ jsx("div", {
124
+ ref,
125
+ role: "tree",
126
+ "data-slot": "tree",
127
+ className: cn("flex flex-col", className),
128
+ onKeyDown: handleKeyDown,
129
+ ...elementProps,
130
+ children: rows.map((row) => {
131
+ const { item } = row;
132
+ const Icon = item.icon;
133
+ return /* @__PURE__ */ jsxs("div", {
134
+ ref: (element) => registerRow(item.id, element),
135
+ role: "treeitem",
136
+ tabIndex: activeRowId === item.id ? 0 : -1,
137
+ "aria-level": row.level + 1,
138
+ "aria-posinset": row.position,
139
+ "aria-setsize": row.setSize,
140
+ "aria-expanded": row.hasChildren ? row.expanded : void 0,
141
+ "aria-selected": selected === item.id,
142
+ "aria-disabled": item.disabled === true ? true : void 0,
143
+ "data-slot": "tree-row",
144
+ "data-selected": selected === item.id ? "" : void 0,
145
+ "data-disabled": item.disabled === true ? "" : void 0,
146
+ onFocus: () => setActiveId(item.id),
147
+ onClick: () => select(row),
148
+ className: "group/tree-row flex h-control-sm cursor-default items-center gap-(--cue-space-1) rounded-(--radius-control) pr-(--cue-space-2) font-mono text-(length:--cue-text-ui) whitespace-nowrap text-fg-muted outline-none select-none 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-[selected]:bg-accent-soft data-[selected]:text-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-40",
149
+ children: [
150
+ guides ? row.guides.map((guide, depth) => /* @__PURE__ */ jsx("span", {
151
+ "aria-hidden": "true",
152
+ "data-slot": "tree-guide",
153
+ className: "w-(--cue-space-4) shrink-0 text-center text-fg-subtle",
154
+ children: TREE_GUIDE_GLYPHS[guide]
155
+ }, depth)) : null,
156
+ row.hasChildren ? /* @__PURE__ */ jsx("span", {
157
+ role: "presentation",
158
+ "data-slot": "tree-toggle",
159
+ "aria-hidden": "true",
160
+ onClick: (event) => {
161
+ event.stopPropagation();
162
+ setExpanded(item.id, !row.expanded);
163
+ },
164
+ className: "flex size-icon-sm shrink-0 cursor-pointer items-center justify-center text-fg-subtle",
165
+ children: /* @__PURE__ */ jsx(ChevronRightGlyph, { className: cn("size-icon-sm transition-transform duration-150 motion-reduce:transition-none", row.expanded ? "rotate-90" : null) })
166
+ }) : /* @__PURE__ */ jsx("span", {
167
+ "aria-hidden": "true",
168
+ className: "size-icon-sm shrink-0"
169
+ }),
170
+ renderRow === void 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
171
+ Icon === void 0 ? null : /* @__PURE__ */ jsx(Icon, {
172
+ "aria-hidden": "true",
173
+ className: "size-icon-sm shrink-0"
174
+ }),
175
+ /* @__PURE__ */ jsx("span", {
176
+ "data-slot": "tree-label",
177
+ className: "min-w-0 flex-1 truncate",
178
+ children: item.label
179
+ }),
180
+ item.badge === void 0 ? null : /* @__PURE__ */ jsx("span", {
181
+ "data-slot": "tree-badge",
182
+ className: "shrink-0 text-fg-subtle",
183
+ children: item.badge
184
+ })
185
+ ] }) : /* @__PURE__ */ jsx("span", {
186
+ className: "min-w-0 flex-1 truncate",
187
+ children: renderRow(row)
188
+ }),
189
+ rowControls === void 0 ? null : /* @__PURE__ */ jsx("span", {
190
+ "data-slot": "tree-row-controls",
191
+ onClick: (event) => event.stopPropagation(),
192
+ className: "flex shrink-0 items-center gap-(--cue-space-1) opacity-0 transition-opacity duration-150 group-hover/tree-row:opacity-100 group-focus-within/tree-row:opacity-100 motion-reduce:transition-none",
193
+ children: rowControls(item, row)
194
+ })
195
+ ]
196
+ }, item.id);
197
+ })
198
+ });
199
+ });
200
+ /** Which state the toggle moves to next. */
201
+ const NEXT_VISIBILITY = {
202
+ visible: "ghost",
203
+ ghost: "hidden",
204
+ hidden: "visible"
205
+ };
206
+ /** What each state is called when the button announces itself. */
207
+ const VISIBILITY_LABELS = {
208
+ visible: "visible",
209
+ ghost: "ghosted",
210
+ hidden: "hidden"
211
+ };
212
+ /**
213
+ * The outliner's three-state visibility control: shown → ghosted → hidden.
214
+ *
215
+ * Three states rather than a checkbox because a rig has three answers, not two:
216
+ * *there*, *there but out of the way*, and *not drawn*. Ghost is the one that
217
+ * earns the extra state — it is how you keep a truss as spatial reference while
218
+ * working behind it — and collapsing it into "hidden" is what makes people
219
+ * toggle things off and lose their bearings.
220
+ *
221
+ * Meant for {@link TreeProps.rowControls}. The accessible name states the
222
+ * *current* state ("Visibility: ghosted") rather than the next action, because
223
+ * with three states "toggle" names nothing useful; pressing cycles.
224
+ *
225
+ * @example
226
+ * <TreeVisibilityToggle value={state} onValueChange={setState} />
227
+ */
228
+ const TreeVisibilityToggle = React.forwardRef(function TreeVisibilityToggle({ className, value, onValueChange, labels, onClick, ...elementProps }, ref) {
229
+ const Glyph = value === "visible" ? EyeGlyph : value === "ghost" ? GhostGlyph : EyeOffGlyph;
230
+ const name = labels?.[value] ?? VISIBILITY_LABELS[value];
231
+ return /* @__PURE__ */ jsx("button", {
232
+ ref,
233
+ type: "button",
234
+ "aria-label": `Visibility: ${name}`,
235
+ "data-slot": "tree-visibility-toggle",
236
+ "data-state": value,
237
+ onClick: (event) => {
238
+ onClick?.(event);
239
+ if (event.defaultPrevented) return;
240
+ onValueChange(NEXT_VISIBILITY[value]);
241
+ },
242
+ className: cn("flex size-icon-md shrink-0 cursor-pointer items-center justify-center rounded-(--radius-control) border-0 bg-transparent p-0 outline-none transition-colors duration-150 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent motion-reduce:transition-none data-[state=visible]:text-fg-subtle data-[state=ghost]:text-info data-[state=hidden]:text-warn", className),
243
+ ...elementProps,
244
+ children: /* @__PURE__ */ jsx(Glyph, { className: "size-icon-sm" })
245
+ });
246
+ });
247
+ //#endregion
248
+ export { Tree, TreeVisibilityToggle };
@@ -0,0 +1,14 @@
1
+ //#region src/color/_checker.ts
2
+ /**
3
+ * The transparency checkerboard.
4
+ *
5
+ * Anywhere a colour with alpha is shown — a swatch, an alpha rail — something
6
+ * has to sit behind it or "50% transparent white" and "opaque light grey" look
7
+ * identical. Drawn as a token-coloured conic gradient rather than an image so it
8
+ * follows the theme (and stays a two-line class string instead of an asset).
9
+ *
10
+ * @internal Not part of the public API.
11
+ */
12
+ const checkerClasses = "bg-[repeating-conic-gradient(var(--cue-surface-3)_0%_25%,var(--cue-surface-1)_0%_50%)] bg-[length:0.5rem_0.5rem]";
13
+ //#endregion
14
+ export { checkerClasses };
@@ -0,0 +1,52 @@
1
+ //#region src/color/_convert.d.ts
2
+ /**
3
+ * The notations this suite reads and writes.
4
+ *
5
+ * Two, not ten: hex is what a colour picker natively speaks, oklch is what this
6
+ * system's tokens are authored in. Everything else (`rgb()`, `hsl()`, named
7
+ * colours) is *readable* — {@link toHexString} takes whatever CSS understands —
8
+ * but writing back in a third notation would only invite a token file with
9
+ * three spellings of the same colour.
10
+ */
11
+ type ColorFormat = "hex" | "oklch";
12
+ /**
13
+ * Convert any CSS colour string to `#rrggbb` (or `#rrggbbaa` when it carries
14
+ * alpha).
15
+ *
16
+ * The bridge into React Aria's colour parts, which only parse sRGB notations —
17
+ * hand them an `oklch()` token value and they throw. Colours outside the sRGB
18
+ * gamut have their **chroma** pulled in rather than their channels clipped:
19
+ * clipping `oklch(0.7 0.4 30)` gives pure red, losing the lightness the author
20
+ * chose, while clamping keeps it at `#ff6551`.
21
+ *
22
+ * @param input - Any CSS colour string.
23
+ * @returns The lower-case hex string, or `null` if the input is not a colour.
24
+ * @example
25
+ * toHexString("oklch(0.7 0.15 30)") // "#ed7665"
26
+ */
27
+ declare function toHexString(input: string): string | null;
28
+ /**
29
+ * Re-print a colour in one of the two notations the suite writes.
30
+ *
31
+ * The oklch form is emitted at the precision a round trip needs — four decimals
32
+ * of lightness and chroma, two of hue — which is exactly enough for
33
+ * `toHexString(formatColorString(hex, "oklch")) === hex` across the sRGB cube.
34
+ * An achromatic colour has no hue, so it prints `0` rather than `NaN`.
35
+ *
36
+ * @param input - Any CSS colour string.
37
+ * @param format - The notation to write.
38
+ * @returns The formatted colour, or `null` if the input is not a colour.
39
+ * @example
40
+ * formatColorString("#3fa9f5", "oklch") // "oklch(0.7083 0.1466 244.05)"
41
+ */
42
+ declare function formatColorString(input: string, format: ColorFormat): string | null;
43
+ /**
44
+ * Which notation a value is authored in, so a control can hand back what it was
45
+ * given instead of quietly rewriting a token file into hex.
46
+ *
47
+ * @param input - Any CSS colour string.
48
+ * @returns `"oklch"` for an `oklch()` value, `"hex"` for everything else.
49
+ */
50
+ declare function detectColorFormat(input: string): ColorFormat;
51
+ //#endregion
52
+ export { ColorFormat, detectColorFormat, formatColorString, toHexString };