@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,266 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { MenuGlyph } from "./_glyphs.js";
4
+ import { Sidebar } from "../layout/sidebar.js";
5
+ import { CrossGlyph } from "../overlays/_glyphs.js";
6
+ import { Drawer } from "../overlays/drawer.js";
7
+ import { IconButton } from "../primitives/icon-button.js";
8
+ import { DRAG_CLASSES, NO_DRAG_CLASSES } from "./_drag.js";
9
+ import * as React from "react";
10
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
+ //#region src/chrome/app-shell.tsx
12
+ const AppShellContext = React.createContext({
13
+ navOpen: false,
14
+ setNavOpen: () => {},
15
+ rail: false,
16
+ setRail: () => {}
17
+ });
18
+ /**
19
+ * The navigation column's current width, written once on the frame and read by
20
+ * everything that has to line up with it.
21
+ *
22
+ * The prototype this came from put it best: collapsing the rail rewrites one
23
+ * length, and the bar's header cell and the column move together because
24
+ * neither of them holds a length of its own. A custom property rather than two
25
+ * inline widths because the two boxes are on opposite sides of the tree — the
26
+ * cell is a child of the bar, above `AppShell.Body`, and the column is inside
27
+ * it — and because it is then also the handle a consumer's own CSS aligns to.
28
+ *
29
+ * {@link AppShellBar} spells the name a second time, in a Tailwind utility,
30
+ * because the scanner reads class strings and not constants. The two spellings
31
+ * move together, and the shell's own suite fails if they stop matching.
32
+ */
33
+ const NAV_WIDTH_PROPERTY = "--cue-nav-width";
34
+ /** What a box that spans the navigation column sets its width to. */
35
+ const NAV_WIDTH_VALUE = `var(${NAV_WIDTH_PROPERTY})`;
36
+ /**
37
+ * The console frame: title bar, navigation, work area, status bar — one
38
+ * viewport tall, with exactly one thing scrolling.
39
+ *
40
+ * Every console screen in this system is the same five parts in the same
41
+ * arrangement, and the value here is not the parts (they already exist as
42
+ * `TitleBar`, `Sidebar`, `Toolbar` and `StatusBar`) but the arithmetic between
43
+ * them: `h-dvh` on the frame rather than `min-h-dvh`, an unbroken `min-h-0`
44
+ * chain from the frame down to the scroller, `min-w-0` on the content column,
45
+ * and a scroller that is not the document. Get one of those wrong and the
46
+ * status bar leaves the screen or the navigation column gets shoved off the
47
+ * side; the shell exists so no page has to get them right again.
48
+ *
49
+ * The bars are ordinary children — `TitleBar` and `StatusBar` are already
50
+ * `shrink-0` and need no wrapper — so a shell reads as the page's outline. The
51
+ * one bar the shell does own is {@link AppShellBar}, and it owns it for one
52
+ * reason: it is divided by the navigation column, which means it has to be
53
+ * measured from the same length the column is.
54
+ *
55
+ * That length is `--cue-nav-width`, written on the frame. `rail` rewrites it,
56
+ * `data-rail` announces it, and the column and the header cell over it move
57
+ * together because neither holds a width of its own. Persistence and the
58
+ * toggle are the caller's — see {@link AppShellRootProps.rail}.
59
+ *
60
+ * This is also the only component in the library with a viewport breakpoint:
61
+ * below `md` the navigation column becomes a drawer and a trigger appears in
62
+ * the bar. See {@link AppShellSidebar} for the ruling.
63
+ *
64
+ * @example
65
+ * <AppShell.Root>
66
+ * <TitleBar center="main-stage.cue" actions={<Chip tone="ok">live</Chip>}>
67
+ * <AppShell.NavTrigger />
68
+ * <Eyebrow>CUE++</Eyebrow>
69
+ * </TitleBar>
70
+ * <AppShell.Body>
71
+ * <AppShell.Sidebar aria-label="Console" drawerTitle="Console">
72
+ * <Sidebar.Section label="Show">
73
+ * <Sidebar.Item icon={List} active>Cues</Sidebar.Item>
74
+ * </Sidebar.Section>
75
+ * </AppShell.Sidebar>
76
+ * <AppShell.Content>
77
+ * <Toolbar.Root aria-label="Playback"><Toolbar.Button icon={Play}>Go</Toolbar.Button></Toolbar.Root>
78
+ * <AppShell.Scroller><Panel>…</Panel></AppShell.Scroller>
79
+ * </AppShell.Content>
80
+ * <AppShell.Aside aria-label="Inspector">…</AppShell.Aside>
81
+ * </AppShell.Body>
82
+ * <StatusBar><StatusBar.Item tone="ok">Art-Net</StatusBar.Item></StatusBar>
83
+ * </AppShell.Root>
84
+ */
85
+ const AppShell = {
86
+ Root: React.forwardRef(function AppShellRoot({ className, navOpen: navOpenProp, defaultNavOpen = false, onNavOpenChange, rail: railProp, defaultRail = false, onRailChange, navWidth = "14rem", railWidth = "3.5rem", style, ...elementProps }, ref) {
87
+ const [uncontrolled, setUncontrolled] = React.useState(defaultNavOpen);
88
+ const navOpen = navOpenProp ?? uncontrolled;
89
+ const setNavOpen = React.useCallback((open) => {
90
+ if (navOpenProp === void 0) setUncontrolled(open);
91
+ onNavOpenChange?.(open);
92
+ }, [navOpenProp, onNavOpenChange]);
93
+ const [uncontrolledRail, setUncontrolledRail] = React.useState(defaultRail);
94
+ const rail = railProp ?? uncontrolledRail;
95
+ const setRail = React.useCallback((next) => {
96
+ if (railProp === void 0) setUncontrolledRail(next);
97
+ onRailChange?.(next);
98
+ }, [railProp, onRailChange]);
99
+ const context = React.useMemo(() => ({
100
+ navOpen,
101
+ setNavOpen,
102
+ rail,
103
+ setRail
104
+ }), [
105
+ navOpen,
106
+ setNavOpen,
107
+ rail,
108
+ setRail
109
+ ]);
110
+ return /* @__PURE__ */ jsx(AppShellContext.Provider, {
111
+ value: context,
112
+ children: /* @__PURE__ */ jsx("div", {
113
+ ref,
114
+ "data-slot": "app-shell",
115
+ "data-rail": rail ? "" : void 0,
116
+ className: cn("group/app-shell relative flex h-dvh flex-col overflow-clip bg-bg text-fg", className),
117
+ style: {
118
+ [NAV_WIDTH_PROPERTY]: rail ? railWidth : navWidth,
119
+ ...style
120
+ },
121
+ ...elementProps
122
+ })
123
+ });
124
+ }),
125
+ Bar: React.forwardRef(function AppShellBar({ className, brand, brandClassName, platformDrag = false, center, actions, children, ...elementProps }, ref) {
126
+ const dragProps = platformDrag ? { "data-tauri-drag-region": "" } : void 0;
127
+ const dragClasses = platformDrag ? DRAG_CLASSES : void 0;
128
+ const clusterClasses = cn("flex min-w-0 items-center gap-(--cue-space-3)", platformDrag ? NO_DRAG_CLASSES : "grow");
129
+ return /* @__PURE__ */ jsxs("div", {
130
+ ref,
131
+ "data-slot": "app-shell-bar",
132
+ ...dragProps,
133
+ className: cn("relative flex h-(--cue-chrome-titlebar) w-full shrink-0 items-stretch border-b border-border bg-surface-1", dragClasses, platformDrag ? "select-none" : void 0, className),
134
+ ...elementProps,
135
+ children: [
136
+ brand === void 0 ? null : /* @__PURE__ */ jsx("div", {
137
+ "data-slot": "app-shell-brand",
138
+ ...dragProps,
139
+ className: cn("flex w-auto min-w-0 shrink-0 items-center gap-(--cue-space-3) border-r border-border px-(--cue-pad-row-x) transition-[width] duration-150 ease-out md:w-(--cue-nav-width) motion-reduce:transition-none", dragClasses, brandClassName),
140
+ children: /* @__PURE__ */ jsx("div", {
141
+ "data-slot": "app-shell-brand-content",
142
+ className: clusterClasses,
143
+ children: brand
144
+ })
145
+ }),
146
+ center === void 0 ? null : /* @__PURE__ */ jsx("div", {
147
+ "data-slot": "app-shell-bar-center",
148
+ className: "pointer-events-none absolute top-1/2 left-1/2 max-w-[50%] -translate-x-1/2 -translate-y-1/2 truncate font-mono text-(length:--cue-text-label) text-fg-muted",
149
+ children: center
150
+ }),
151
+ /* @__PURE__ */ jsxs("div", {
152
+ "data-slot": "app-shell-bar-rest",
153
+ ...dragProps,
154
+ className: cn("flex min-w-0 flex-1 items-center gap-(--cue-space-3) px-(--cue-pad-row-x)", dragClasses),
155
+ children: [/* @__PURE__ */ jsx("div", {
156
+ "data-slot": "app-shell-bar-leading",
157
+ className: clusterClasses,
158
+ children
159
+ }), actions === void 0 ? null : /* @__PURE__ */ jsx("div", {
160
+ "data-slot": "app-shell-bar-actions",
161
+ className: cn(clusterClasses, "grow-0 shrink-0", platformDrag ? "ms-auto" : void 0),
162
+ children: actions
163
+ })]
164
+ })
165
+ ]
166
+ });
167
+ }),
168
+ Body: React.forwardRef(function AppShellBody({ className, ...elementProps }, ref) {
169
+ return /* @__PURE__ */ jsx("div", {
170
+ ref,
171
+ "data-slot": "app-shell-body",
172
+ className: cn("flex min-h-0 min-w-0 flex-1", className),
173
+ ...elementProps
174
+ });
175
+ }),
176
+ Sidebar: React.forwardRef(function AppShellSidebar({ className, drawerClassName, drawerTitle = "Navigation", closeLabel = "Close navigation", collapsible = true, landmark = "navigation", "aria-label": ariaLabel = "Navigation", collapsed, defaultCollapsed, onCollapsedChange, width, collapsedWidth, children, ...sidebarProps }, ref) {
177
+ const { navOpen, setNavOpen, rail, setRail } = React.useContext(AppShellContext);
178
+ const DrawerLandmark = landmark === "complementary" ? "aside" : "nav";
179
+ const railed = collapsed === void 0 && defaultCollapsed === void 0;
180
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(Sidebar.Root, {
181
+ ref,
182
+ "data-slot": "app-shell-sidebar",
183
+ "aria-label": ariaLabel,
184
+ landmark,
185
+ className: cn("hidden md:flex", className),
186
+ collapsed: railed ? rail : collapsed,
187
+ defaultCollapsed,
188
+ onCollapsedChange: railed ? (next) => {
189
+ onCollapsedChange?.(next);
190
+ setRail(next);
191
+ } : onCollapsedChange,
192
+ width: width ?? (railed ? NAV_WIDTH_VALUE : void 0),
193
+ collapsedWidth: collapsedWidth ?? (railed ? NAV_WIDTH_VALUE : void 0),
194
+ ...sidebarProps,
195
+ children: [children, collapsible ? /* @__PURE__ */ jsx(Sidebar.Rail, {}) : null]
196
+ }), /* @__PURE__ */ jsx(Drawer.Root, {
197
+ swipeDirection: "left",
198
+ open: navOpen,
199
+ onOpenChange: setNavOpen,
200
+ children: /* @__PURE__ */ jsxs(Drawer.Content, {
201
+ grabHandle: false,
202
+ className: cn("w-[min(18rem,calc(100vw-3rem))]", drawerClassName),
203
+ children: [/* @__PURE__ */ jsxs("div", {
204
+ className: "flex shrink-0 items-center justify-between gap-(--cue-space-3)",
205
+ children: [/* @__PURE__ */ jsx(Drawer.Title, { children: drawerTitle }), /* @__PURE__ */ jsx(Drawer.Close, { render: /* @__PURE__ */ jsx(IconButton, {
206
+ "aria-label": closeLabel,
207
+ icon: CrossGlyph,
208
+ size: "sm"
209
+ }) })]
210
+ }), /* @__PURE__ */ jsx(DrawerLandmark, {
211
+ "data-slot": "app-shell-nav-drawer",
212
+ "aria-label": ariaLabel,
213
+ className: "flex min-h-0 flex-1 flex-col gap-(--cue-space-4) overflow-y-auto",
214
+ children
215
+ })]
216
+ })
217
+ })] });
218
+ }),
219
+ NavTrigger: React.forwardRef(function AppShellNavTrigger({ className, label = "Open navigation", icon = MenuGlyph, size = "md", onClick, ...elementProps }, ref) {
220
+ const { navOpen, setNavOpen } = React.useContext(AppShellContext);
221
+ return /* @__PURE__ */ jsx(IconButton, {
222
+ ref,
223
+ "data-slot": "app-shell-nav-trigger",
224
+ "aria-label": label,
225
+ "aria-expanded": navOpen,
226
+ icon,
227
+ size,
228
+ className: cn("shrink-0 md:hidden", className),
229
+ onClick: (event) => {
230
+ onClick?.(event);
231
+ if (!event.defaultPrevented) setNavOpen(true);
232
+ },
233
+ ...elementProps
234
+ });
235
+ }),
236
+ Content: React.forwardRef(function AppShellContent({ className, main = true, ...elementProps }, ref) {
237
+ return /* @__PURE__ */ jsx(main ? "main" : "div", {
238
+ ref,
239
+ "data-slot": "app-shell-content",
240
+ className: cn("flex min-h-0 min-w-0 flex-1 flex-col", className),
241
+ ...elementProps
242
+ });
243
+ }),
244
+ Scroller: React.forwardRef(function AppShellScroller({ className, padded = true, ...elementProps }, ref) {
245
+ return /* @__PURE__ */ jsx("div", {
246
+ ref,
247
+ "data-slot": "app-shell-scroller",
248
+ className: cn("min-h-0 min-w-0 flex-1 overflow-y-auto", padded ? "p-(--cue-space-5)" : null, className),
249
+ ...elementProps
250
+ });
251
+ }),
252
+ Aside: React.forwardRef(function AppShellAside({ className, width = "18rem", style, ...elementProps }, ref) {
253
+ return /* @__PURE__ */ jsx("aside", {
254
+ ref,
255
+ "data-slot": "app-shell-aside",
256
+ className: cn("flex shrink-0 flex-col gap-(--cue-space-4) overflow-y-auto border-l border-border bg-surface-1 p-(--cue-space-4)", className),
257
+ style: {
258
+ width,
259
+ ...style
260
+ },
261
+ ...elementProps
262
+ });
263
+ })
264
+ };
265
+ //#endregion
266
+ export { AppShell };
@@ -0,0 +1,106 @@
1
+ import { ContainerWidth } from "../layout/container.js";
2
+ import * as React from "react";
3
+ //#region src/chrome/band.d.ts
4
+ /** How a band separates itself from the section above it. */
5
+ type BandSeparation = "rule" | "ground" | "bleed" | "none";
6
+ /**
7
+ * Which measure a band's column takes: `Container`'s four fixed rungs, plus
8
+ * `"prose"` — the reading measure a style set owns.
9
+ *
10
+ * `"prose"` is the default and is the only one of the five that moves with
11
+ * `[data-style]`: 68ch with no set and under `console`, 74ch under `editorial`,
12
+ * 60ch under `marketing`. The four rungs are fixed aliases and a band that
13
+ * names one has opted out of the axis for its measure — which is the right
14
+ * answer for a band holding a `Bento` or a device frame, and the wrong one for
15
+ * a band holding a paragraph.
16
+ */
17
+ type BandWidth = ContainerWidth | "prose";
18
+ interface BandProps extends React.ComponentPropsWithoutRef<"section"> {
19
+ /**
20
+ * How this band separates itself from the one above it. Defaults to `"rule"`.
21
+ *
22
+ * - **`"rule"`** — a line at the top edge, `--cue-band-rule` wide, in
23
+ * `border-border`. What `Footer` has always drawn.
24
+ * - **`"ground"`** — a ground, `--cue-band-ground`, edge to edge. The one
25
+ * value that touches colour, and it resolves through the single carve-out
26
+ * the token layer allows a style set.
27
+ * - **`"bleed"`** — neither, and **no column**: the children run the band's
28
+ * full width with no measure and no gutters. The separation is the change
29
+ * of scale, which is what a full-width image or strip does. `width` has
30
+ * nothing to apply to and is ignored.
31
+ * - **`"none"`** — neither, column kept. Sections separate by rhythm alone,
32
+ * which is `--cue-band-y` and is what `editorial` leads with.
33
+ *
34
+ * **What a style set makes each of these do, because two of them can come out
35
+ * to nothing and there is no way for this component to warn you.** The values
36
+ * are the token layer's; `packages/ui/test/chrome/band.test.tsx` holds this
37
+ * table to `packages/tokens/dist/axes.css`, so it cannot quietly stop being
38
+ * true.
39
+ *
40
+ * | set | `"rule"` draws | `"ground"` paints |
41
+ * |---|---|---|
42
+ * | *(no set)* and `console` | 1px | nothing — the ground is `transparent` |
43
+ * | `editorial` | a 0.5px hairline, **which Chromium paints at 1px at every DPR**; only retina WebKit draws it thinner | nothing — `transparent` |
44
+ * | `marketing` | **nothing — the rule is `0px`** | `--cue-surface-1` |
45
+ *
46
+ * Read the diagonal: `"ground"` is the marketing separation and `"rule"` is
47
+ * everyone else's. A band that wants to separate under *every* set separates
48
+ * by rhythm, which every set has.
49
+ */
50
+ separation?: BandSeparation;
51
+ /** Which measure the band's centred column takes. Defaults to `"prose"`. */
52
+ width?: BandWidth;
53
+ /** Extra classes for the centred column. Ignored when `separation` is `"bleed"`. */
54
+ columnClassName?: string;
55
+ /** The band's contents. */
56
+ children?: React.ReactNode;
57
+ }
58
+ /**
59
+ * A full-bleed horizontal section: the page's rhythm, its separation, and a
60
+ * column at the measure.
61
+ *
62
+ * This is `Footer`'s recipe with the footer taken out of it — a `w-full`
63
+ * element, a rule running edge to edge, and a centred `Container` inside so the
64
+ * line reaches the window while the words stop at the measure. `Footer` is
65
+ * built on this rather than beside it; the recipe exists once.
66
+ *
67
+ * Every dimension it spends belongs to the style axis, so the same markup
68
+ * composes differently under `[data-style]` without a prop changing: the
69
+ * vertical rhythm is `--cue-band-y` (one `--cue-space-7` with no set, doubled
70
+ * under `editorial`, trebled under `marketing`), the column is
71
+ * `--cue-measure-prose` unless `width` names a fixed rung, and the rule and the
72
+ * ground are `--cue-band-rule` and `--cue-band-ground`. Read `separation`'s own
73
+ * documentation before choosing one, because two of the four can come out to
74
+ * nothing and they do not vanish symmetrically: `--cue-band-ground` is
75
+ * `transparent` on `:root` and on two of the three sets, so a `"ground"` paints
76
+ * nothing in three of the four states a page can be in, while `--cue-band-rule`
77
+ * is `0px` under `marketing` alone. Both are deliberate and nothing warns.
78
+ *
79
+ * **Two substitution boundaries, because `--cue-band-y` is a `calc()` resolved
80
+ * at the element that declares it.** A `<Density>` island nested inside a
81
+ * styled page moves every `--cue-space-*` and the band rhythm does **not**
82
+ * follow it — the island inherits the rhythm already resolved above. Restate
83
+ * the set on the island (`<Density density="compact" styleSet="editorial">`) to
84
+ * re-resolve it against that island's rung. Likewise a nested `[data-theme]`
85
+ * under a marketing band paints the **outer** theme's `--cue-surface-1` through
86
+ * an already-resolved `--cue-band-ground`.
87
+ *
88
+ * It renders a `<section>`, which is not a landmark until it has an accessible
89
+ * name — so a band with a heading should carry `aria-labelledby` pointing at
90
+ * it, and a band without one costs the document nothing.
91
+ *
92
+ * Static markup — no `"use client"`.
93
+ *
94
+ * @example
95
+ * <Band aria-labelledby="pitch">
96
+ * <h2 id="pitch">One import</h2>
97
+ * <p>Everything on one token layer.</p>
98
+ * </Band>
99
+ * @example
100
+ * <Band separation="ground" width="broad">
101
+ * <Bento.Root cols={3}>{tiles}</Bento.Root>
102
+ * </Band>
103
+ */
104
+ declare const Band: React.ForwardRefExoticComponent<BandProps & React.RefAttributes<HTMLElement>>;
105
+ //#endregion
106
+ export { Band, BandProps, BandSeparation, BandWidth };
@@ -0,0 +1,97 @@
1
+ import { cn } from "../lib/cn.js";
2
+ import { Container } from "../layout/container.js";
3
+ import { bandClasses } from "./_band.js";
4
+ import * as React from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region src/chrome/band.tsx
7
+ /**
8
+ * What each separation adds to the frame `bandClasses` draws, and the two
9
+ * `--cue-*` names that live in this file rather than in the chassis beside it.
10
+ *
11
+ * `_band.ts` holds only what `Footer` can also render — the rhythm and the
12
+ * rule — because docgen's token scanner reads a chassis file whole and cannot
13
+ * see that `Footer` calls `bandClasses` with the literal `"rule"`. The ground
14
+ * is reachable only from `<Band separation="ground">`, so it is written here,
15
+ * next to the prop whose value selects it. `_band.ts`'s own docblock carries
16
+ * the argument.
17
+ *
18
+ * `rule`'s entry is the colour and not the width: the width is
19
+ * `--cue-band-rule` and belongs to the chassis, and both elements name
20
+ * `border-border` in their own class list rather than inheriting it from the
21
+ * other.
22
+ */
23
+ const SEPARATION_PAINT = {
24
+ rule: "border-border",
25
+ ground: "bg-(--cue-band-ground)",
26
+ bleed: null,
27
+ none: null
28
+ };
29
+ /**
30
+ * A full-bleed horizontal section: the page's rhythm, its separation, and a
31
+ * column at the measure.
32
+ *
33
+ * This is `Footer`'s recipe with the footer taken out of it — a `w-full`
34
+ * element, a rule running edge to edge, and a centred `Container` inside so the
35
+ * line reaches the window while the words stop at the measure. `Footer` is
36
+ * built on this rather than beside it; the recipe exists once.
37
+ *
38
+ * Every dimension it spends belongs to the style axis, so the same markup
39
+ * composes differently under `[data-style]` without a prop changing: the
40
+ * vertical rhythm is `--cue-band-y` (one `--cue-space-7` with no set, doubled
41
+ * under `editorial`, trebled under `marketing`), the column is
42
+ * `--cue-measure-prose` unless `width` names a fixed rung, and the rule and the
43
+ * ground are `--cue-band-rule` and `--cue-band-ground`. Read `separation`'s own
44
+ * documentation before choosing one, because two of the four can come out to
45
+ * nothing and they do not vanish symmetrically: `--cue-band-ground` is
46
+ * `transparent` on `:root` and on two of the three sets, so a `"ground"` paints
47
+ * nothing in three of the four states a page can be in, while `--cue-band-rule`
48
+ * is `0px` under `marketing` alone. Both are deliberate and nothing warns.
49
+ *
50
+ * **Two substitution boundaries, because `--cue-band-y` is a `calc()` resolved
51
+ * at the element that declares it.** A `<Density>` island nested inside a
52
+ * styled page moves every `--cue-space-*` and the band rhythm does **not**
53
+ * follow it — the island inherits the rhythm already resolved above. Restate
54
+ * the set on the island (`<Density density="compact" styleSet="editorial">`) to
55
+ * re-resolve it against that island's rung. Likewise a nested `[data-theme]`
56
+ * under a marketing band paints the **outer** theme's `--cue-surface-1` through
57
+ * an already-resolved `--cue-band-ground`.
58
+ *
59
+ * It renders a `<section>`, which is not a landmark until it has an accessible
60
+ * name — so a band with a heading should carry `aria-labelledby` pointing at
61
+ * it, and a band without one costs the document nothing.
62
+ *
63
+ * Static markup — no `"use client"`.
64
+ *
65
+ * @example
66
+ * <Band aria-labelledby="pitch">
67
+ * <h2 id="pitch">One import</h2>
68
+ * <p>Everything on one token layer.</p>
69
+ * </Band>
70
+ * @example
71
+ * <Band separation="ground" width="broad">
72
+ * <Bento.Root cols={3}>{tiles}</Bento.Root>
73
+ * </Band>
74
+ */
75
+ const Band = React.forwardRef(function Band({ className, columnClassName, separation = "rule", width = "prose", children, ...elementProps }, ref) {
76
+ const column = width === "prose" ? {
77
+ width: "full",
78
+ className: "max-w-(--cue-measure-prose)"
79
+ } : {
80
+ width,
81
+ className: null
82
+ };
83
+ return /* @__PURE__ */ jsx("section", {
84
+ ref,
85
+ "data-slot": "band",
86
+ "data-separation": separation,
87
+ className: cn(bandClasses(separation), SEPARATION_PAINT[separation], className),
88
+ ...elementProps,
89
+ children: separation === "bleed" ? children : /* @__PURE__ */ jsx(Container, {
90
+ width: column.width,
91
+ className: cn(column.className, columnClassName),
92
+ children
93
+ })
94
+ });
95
+ });
96
+ //#endregion
97
+ export { Band };
@@ -0,0 +1,37 @@
1
+ import * as React from "react";
2
+ //#region src/chrome/empty-state.d.ts
3
+ interface EmptyStateProps extends Omit<React.ComponentPropsWithoutRef<"div">, "title"> {
4
+ /** What is missing. One short line: "No cues yet". */
5
+ title: React.ReactNode;
6
+ /** How to fix it. One sentence, muted. */
7
+ hint?: React.ReactNode;
8
+ /** The way out — normally a single `Button`. */
9
+ action?: React.ReactNode;
10
+ /** Optional glyph above the title (e.g. a lucide icon), drawn `aria-hidden`. */
11
+ icon?: React.ElementType;
12
+ /** Extra content between the hint and the action — rarely needed. */
13
+ children?: React.ReactNode;
14
+ }
15
+ /**
16
+ * The "there is nothing here" panel body.
17
+ *
18
+ * Centred and quiet: an empty state is a report, not an alarm, so it uses the
19
+ * muted ramp throughout and gets its emphasis from position rather than colour.
20
+ * The icon is decorative — the title carries the meaning, so a screen reader
21
+ * hears one sentence instead of a shrug emoji.
22
+ *
23
+ * Static markup — no `"use client"`.
24
+ *
25
+ * @example
26
+ * <Panel>
27
+ * <EmptyState
28
+ * icon={ListX}
29
+ * title="No cues yet"
30
+ * hint="Record one from the live look, or import a show file."
31
+ * action={<Button variant="primary">Record cue</Button>}
32
+ * />
33
+ * </Panel>
34
+ */
35
+ declare const EmptyState: React.ForwardRefExoticComponent<EmptyStateProps & React.RefAttributes<HTMLDivElement>>;
36
+ //#endregion
37
+ export { EmptyState, EmptyStateProps };
@@ -0,0 +1,57 @@
1
+ import { cn } from "../lib/cn.js";
2
+ import * as React from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/chrome/empty-state.tsx
5
+ /**
6
+ * The "there is nothing here" panel body.
7
+ *
8
+ * Centred and quiet: an empty state is a report, not an alarm, so it uses the
9
+ * muted ramp throughout and gets its emphasis from position rather than colour.
10
+ * The icon is decorative — the title carries the meaning, so a screen reader
11
+ * hears one sentence instead of a shrug emoji.
12
+ *
13
+ * Static markup — no `"use client"`.
14
+ *
15
+ * @example
16
+ * <Panel>
17
+ * <EmptyState
18
+ * icon={ListX}
19
+ * title="No cues yet"
20
+ * hint="Record one from the live look, or import a show file."
21
+ * action={<Button variant="primary">Record cue</Button>}
22
+ * />
23
+ * </Panel>
24
+ */
25
+ const EmptyState = React.forwardRef(function EmptyState({ className, title, hint, action, icon: Icon, children, ...elementProps }, ref) {
26
+ return /* @__PURE__ */ jsxs("div", {
27
+ ref,
28
+ "data-slot": "empty-state",
29
+ className: cn("flex flex-col items-center justify-center gap-(--cue-space-3) px-(--cue-space-6) py-(--cue-space-7) text-center font-mono", className),
30
+ ...elementProps,
31
+ children: [
32
+ Icon === void 0 ? null : /* @__PURE__ */ jsx(Icon, {
33
+ "aria-hidden": "true",
34
+ "data-slot": "empty-state-icon",
35
+ className: "size-(--cue-space-7) shrink-0 text-fg-subtle"
36
+ }),
37
+ /* @__PURE__ */ jsx("span", {
38
+ "data-slot": "empty-state-title",
39
+ className: "text-(length:--cue-text-emphasis) text-fg",
40
+ children: title
41
+ }),
42
+ hint === void 0 ? null : /* @__PURE__ */ jsx("p", {
43
+ "data-slot": "empty-state-hint",
44
+ className: "max-w-[36ch] text-(length:--cue-text-ui) leading-(--cue-leading-ui) text-fg-muted",
45
+ children: hint
46
+ }),
47
+ children,
48
+ action === void 0 ? null : /* @__PURE__ */ jsx("div", {
49
+ "data-slot": "empty-state-action",
50
+ className: "pt-(--cue-space-2)",
51
+ children: action
52
+ })
53
+ ]
54
+ });
55
+ });
56
+ //#endregion
57
+ export { EmptyState };
@@ -0,0 +1,29 @@
1
+ import * as React from "react";
2
+ //#region src/chrome/eyebrow.d.ts
3
+ interface EyebrowProps extends React.ComponentPropsWithoutRef<"span"> {
4
+ /**
5
+ * Print the `//` motif ahead of the label. Defaults to `true` — the slashes
6
+ * are the brand mark of this system, and an eyebrow without them is just
7
+ * small uppercase text. Pass `false` for a plain kicker.
8
+ */
9
+ slashes?: boolean;
10
+ }
11
+ /**
12
+ * The small accent kicker that sits above a title: `// PATCH`.
13
+ *
14
+ * Mono, uppercase and widely tracked, in the theme's accent — the one place
15
+ * where the accent is used for pure typography rather than for a control. The
16
+ * slashes are marked `aria-hidden` and `select-none`, so a screen reader reads
17
+ * "patch" and a copy-paste of the page does not carry punctuation that was only
18
+ * ever decoration.
19
+ *
20
+ * Static markup — no `"use client"`.
21
+ *
22
+ * @example
23
+ * <Eyebrow>Patch</Eyebrow>
24
+ * @example
25
+ * <Eyebrow slashes={false}>Beta</Eyebrow>
26
+ */
27
+ declare const Eyebrow: React.ForwardRefExoticComponent<EyebrowProps & React.RefAttributes<HTMLSpanElement>>;
28
+ //#endregion
29
+ export { Eyebrow, EyebrowProps };
@@ -0,0 +1,36 @@
1
+ import { cn } from "../lib/cn.js";
2
+ import * as React from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/chrome/eyebrow.tsx
5
+ /**
6
+ * The small accent kicker that sits above a title: `// PATCH`.
7
+ *
8
+ * Mono, uppercase and widely tracked, in the theme's accent — the one place
9
+ * where the accent is used for pure typography rather than for a control. The
10
+ * slashes are marked `aria-hidden` and `select-none`, so a screen reader reads
11
+ * "patch" and a copy-paste of the page does not carry punctuation that was only
12
+ * ever decoration.
13
+ *
14
+ * Static markup — no `"use client"`.
15
+ *
16
+ * @example
17
+ * <Eyebrow>Patch</Eyebrow>
18
+ * @example
19
+ * <Eyebrow slashes={false}>Beta</Eyebrow>
20
+ */
21
+ const Eyebrow = React.forwardRef(function Eyebrow({ className, slashes = true, children, ...elementProps }, ref) {
22
+ return /* @__PURE__ */ jsxs("span", {
23
+ ref,
24
+ "data-slot": "eyebrow",
25
+ className: cn("inline-flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-label) tracking-[0.2em] text-accent uppercase", className),
26
+ ...elementProps,
27
+ children: [slashes ? /* @__PURE__ */ jsx("span", {
28
+ "data-slot": "eyebrow-glyph",
29
+ "aria-hidden": "true",
30
+ className: "select-none",
31
+ children: "//"
32
+ }) : null, children]
33
+ });
34
+ });
35
+ //#endregion
36
+ export { Eyebrow };