@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,166 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { Button } from "../primitives/button.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/instruments/two-step-button.tsx
7
+ /**
8
+ * The armed confirm button's fill.
9
+ *
10
+ * Both tones now take the ink their own theme authors against them —
11
+ * `danger-fg` on the red, `warn-fg` on the amber — which is the same shape
12
+ * `Button`'s `danger` variant and `RevertDock`'s confirm paint on the red, and
13
+ * the only place in the package the amber's ink is spent.
14
+ *
15
+ * Both replaced literals, and both literals were wrong in the same way. The
16
+ * red's `text-white` measured 2.99:1 on cue's dark block, which is the default
17
+ * theme. The amber's `text-black` was the better guess of the two — an amber is
18
+ * usually light — but "usually" is not a measurement: it fell to 3.58:1 on
19
+ * requestport's light amber, 3.74:1 on dusk's and 4.22:1 on cue's own, because
20
+ * a light theme darkens its amber to clear the paper and a darkened amber wants
21
+ * paper back. Neither pairing could be fixed by choosing a better literal:
22
+ * which ink a tone can carry is a property of that tone, so each theme derives
23
+ * one. Both tokens clear 4.5:1 on all twenty shipped blocks, and
24
+ * `test/destructive-ink.test.ts` measures this string rather than trusting it.
25
+ *
26
+ * Both tokens are spelled without their prefix on purpose. `tokensUsed` in the
27
+ * package manifest is scanned out of the source text, *comments included*, so a
28
+ * `--cue-…` written in prose is published as a token this component resolves
29
+ * whether or not any class string resolves one. Spelling the amber's ink that
30
+ * way while the palette still had none would have published a token that did
31
+ * not exist; spelling it that way now would still put the claim in the wrong
32
+ * place. The class strings below are where this component names its tokens.
33
+ */
34
+ const CONFIRM_TONES = {
35
+ danger: "border-transparent bg-danger text-danger-fg hover:opacity-90",
36
+ warn: "border-transparent bg-warn text-warn-fg hover:opacity-90"
37
+ };
38
+ /** The idle trigger: outline only, so a destructive action is never the loudest thing on screen. */
39
+ const IDLE_TONES = {
40
+ danger: "border-danger/40 text-danger hover:border-danger hover:bg-danger/10",
41
+ warn: "border-warn/40 text-warn hover:border-warn hover:bg-warn/10"
42
+ };
43
+ /** ms the armed state survives without input before it gives up. */
44
+ const DEFAULT_TIMEOUT_MS = 4e3;
45
+ /**
46
+ * Arm, then confirm: a destructive action that takes two deliberate presses.
47
+ *
48
+ * The most-reused interaction in the portfolio (fifteen call sites, three
49
+ * hand-rolled implementations) and the right shape for a destructive action
50
+ * that is *routine* — deleting a cue, clearing a patch. A modal
51
+ * `AlertDialog` is the right shape for a rare and expensive one; putting a
52
+ * dialog in front of an action people take twenty times an hour just teaches
53
+ * them to dismiss dialogs.
54
+ *
55
+ * Four ways out, because an armed button left lying around is a trap: Cancel,
56
+ * Escape, moving focus away, and a timeout. Focus lands on **Cancel** when the
57
+ * pair arms, never on the destructive half — the same ruling as a destructive
58
+ * dialog's default button, and it means a stuck Enter key cannot walk through
59
+ * both steps.
60
+ *
61
+ * @example
62
+ * <TwoStepButton onConfirm={() => deleteRig(id)}>Delete rig</TwoStepButton>
63
+ * @example
64
+ * <TwoStepButton tone="warn" timeout={0} confirmLabel="Reset it" onConfirm={reset}>
65
+ * Reset patch
66
+ * </TwoStepButton>
67
+ */
68
+ const TwoStepButton = React.forwardRef(function TwoStepButton({ className, onConfirm, children, confirmLabel = "Confirm", cancelLabel = "Cancel", tone = "danger", timeout = DEFAULT_TIMEOUT_MS, onArmedChange, size, disabled, ...buttonProps }, ref) {
69
+ const [armed, setArmed] = React.useState(false);
70
+ const triggerRef = React.useRef(null);
71
+ const cancelRef = React.useRef(null);
72
+ const groupRef = React.useRef(null);
73
+ const timerRef = React.useRef(void 0);
74
+ const restoreFocusRef = React.useRef(false);
75
+ const setTriggerRef = React.useCallback((element) => {
76
+ triggerRef.current = element;
77
+ if (typeof ref === "function") ref(element);
78
+ else if (ref !== null) ref.current = element;
79
+ }, [ref]);
80
+ const clearTimer = React.useCallback(() => {
81
+ if (timerRef.current !== void 0) clearTimeout(timerRef.current);
82
+ timerRef.current = void 0;
83
+ }, []);
84
+ React.useEffect(() => clearTimer, [clearTimer]);
85
+ const disarm = React.useCallback((restoreFocus) => {
86
+ clearTimer();
87
+ restoreFocusRef.current = restoreFocus;
88
+ setArmed(false);
89
+ onArmedChange?.(false);
90
+ }, [clearTimer, onArmedChange]);
91
+ const arm = React.useCallback(() => {
92
+ setArmed(true);
93
+ onArmedChange?.(true);
94
+ if (timeout > 0) {
95
+ clearTimer();
96
+ timerRef.current = setTimeout(() => {
97
+ timerRef.current = void 0;
98
+ disarm(true);
99
+ }, timeout);
100
+ }
101
+ }, [
102
+ clearTimer,
103
+ disarm,
104
+ onArmedChange,
105
+ timeout
106
+ ]);
107
+ React.useEffect(() => {
108
+ if (armed) {
109
+ cancelRef.current?.focus();
110
+ return;
111
+ }
112
+ if (!restoreFocusRef.current) return;
113
+ restoreFocusRef.current = false;
114
+ triggerRef.current?.focus();
115
+ }, [armed]);
116
+ if (!armed) return /* @__PURE__ */ jsx(Button, {
117
+ ref: setTriggerRef,
118
+ variant: "outline",
119
+ size,
120
+ disabled,
121
+ "data-slot": "two-step-button",
122
+ "data-tone": tone,
123
+ "data-armed": "false",
124
+ className: cn(IDLE_TONES[tone], className),
125
+ onClick: arm,
126
+ ...buttonProps,
127
+ children
128
+ });
129
+ return /* @__PURE__ */ jsxs("span", {
130
+ ref: groupRef,
131
+ "data-slot": "two-step-button-armed",
132
+ "data-tone": tone,
133
+ className: "inline-flex items-center gap-(--cue-space-2)",
134
+ onKeyDown: (event) => {
135
+ if (event.key !== "Escape") return;
136
+ event.stopPropagation();
137
+ disarm(true);
138
+ },
139
+ onBlur: (event) => {
140
+ const next = event.relatedTarget;
141
+ if (next !== null && groupRef.current?.contains(next) === true) return;
142
+ disarm(false);
143
+ },
144
+ children: [/* @__PURE__ */ jsx(Button, {
145
+ ref: cancelRef,
146
+ variant: "ghost",
147
+ size,
148
+ "data-slot": "two-step-button-cancel",
149
+ onClick: () => disarm(true),
150
+ children: cancelLabel
151
+ }), /* @__PURE__ */ jsx(Button, {
152
+ variant: "outline",
153
+ size,
154
+ "data-slot": "two-step-button-confirm",
155
+ className: cn(CONFIRM_TONES[tone], className),
156
+ onClick: () => {
157
+ disarm(true);
158
+ onConfirm();
159
+ },
160
+ ...buttonProps,
161
+ children: confirmLabel
162
+ })]
163
+ });
164
+ });
165
+ //#endregion
166
+ export { TwoStepButton };
@@ -0,0 +1,55 @@
1
+ import * as React from "react";
2
+ //#region src/instruments/usage-chart.d.ts
3
+ /** One sample: a timestamp in ms, and a percentage. */
4
+ interface UsageChartPoint {
5
+ /** Epoch ms. Non-finite and non-positive timestamps are dropped. */
6
+ t: number;
7
+ /** Percentage of the ceiling. Clamped to 0–100 on the way in. */
8
+ v: number;
9
+ }
10
+ /** Stroke colour, in the shared status vocabulary. */
11
+ type UsageChartTone = "accent" | "ok" | "busy" | "warn" | "danger" | "info";
12
+ interface UsageChartProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
13
+ /** The series. Sorted and cleaned internally; order in is not order out. */
14
+ points: readonly UsageChartPoint[];
15
+ /** Stroke tone. Defaults to `"accent"`. */
16
+ tone?: UsageChartTone;
17
+ /** Plot height in px at the 16px root. Defaults to `120`. */
18
+ height?: number;
19
+ /** Break the line when consecutive samples are further apart than this, in ms. */
20
+ gapMs?: number;
21
+ /** Draw a dashed rule at this percentage — where throttling starts, say. */
22
+ threshold?: number;
23
+ /** The accessible name. Name the series; the shape is not self-describing. */
24
+ label?: string;
25
+ /** What to say when there is nothing to plot. Defaults to `"No data yet"`. */
26
+ emptyLabel?: string;
27
+ /** Format a sample's timestamp for the tooltip. Defaults to a short local date-time. */
28
+ formatTimestamp?: (t: number) => string;
29
+ /** Format a sample's value for the tooltip. Defaults to `"87%"`. */
30
+ formatValue?: (v: number) => string;
31
+ }
32
+ /**
33
+ * A quota trace: where you sit against the ceiling, over time.
34
+ *
35
+ * Dependency-free inline SVG — a charting library is a large price for one
36
+ * line and five gridlines, and none of them draws the three things that make
37
+ * this chart honest:
38
+ *
39
+ * 1. **The y axis is always 0–100.** A quota chart auto-scaled to its own range
40
+ * makes a flat 3% look identical to a flat 95%. The ceiling is the reading,
41
+ * so the ceiling is always drawn.
42
+ * 2. **Gaps are gaps.** When the sweep does not run, the line breaks. Joining
43
+ * across a hole invents data — and worse, invents a *smooth* trend across
44
+ * exactly the window nothing is known about. The area fill stops at the
45
+ * break for the same reason.
46
+ * 3. **Out-of-range values are clamped, not plotted.** Upstream numbers are
47
+ * reverse-engineered and can be anything; 140% should read as a flat line on
48
+ * the ceiling, not as a path drawn over the axis labels.
49
+ *
50
+ * @example
51
+ * <UsageChart label="API requests" points={series} threshold={80} tone="warn" />
52
+ */
53
+ declare const UsageChart: React.ForwardRefExoticComponent<UsageChartProps & React.RefAttributes<HTMLDivElement>>;
54
+ //#endregion
55
+ export { UsageChart, UsageChartPoint, UsageChartProps, UsageChartTone };
@@ -0,0 +1,235 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { toRem } from "./_rem.js";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/instruments/usage-chart.tsx
7
+ const TONE_CLASSES = {
8
+ accent: "text-accent",
9
+ ok: "text-ok",
10
+ busy: "text-busy",
11
+ warn: "text-warn",
12
+ danger: "text-danger",
13
+ info: "text-info"
14
+ };
15
+ /**
16
+ * Fixed viewBox width. The SVG stretches to its container, so the internal
17
+ * width can be a constant and the path maths stays integer-friendly.
18
+ */
19
+ const VIEW_WIDTH = 600;
20
+ /** Room for the axis labels, in viewBox units, without a layout pass. */
21
+ const PAD = {
22
+ top: 6,
23
+ right: 4,
24
+ bottom: 14,
25
+ left: 22
26
+ };
27
+ /** The horizontal rules. 0 and 100 are the ceiling and the floor; the rest are guides. */
28
+ const GRID_LINES = [
29
+ 0,
30
+ 25,
31
+ 50,
32
+ 75,
33
+ 100
34
+ ];
35
+ /** Default plot height in px at the 16px root. */
36
+ const DEFAULT_HEIGHT_PX = 120;
37
+ /** Default hole width before the line breaks: one missed quarter-hourly sweep. */
38
+ const DEFAULT_GAP_MS = 9e5;
39
+ /** Axis label size, in viewBox units — not a token, because the viewBox is not in rem. */
40
+ const AXIS_FONT_SIZE = 8;
41
+ /** Sorted, finite samples split into runs no wider than `gapMs`. */
42
+ function segment(points, gapMs) {
43
+ const clean = points.filter((point) => Number.isFinite(point.t) && Number.isFinite(point.v) && point.t >= 0).sort((a, b) => a.t - b.t);
44
+ if (clean.length === 0) return [];
45
+ const runs = [];
46
+ let run = [clean[0]];
47
+ for (let index = 1; index < clean.length; index += 1) {
48
+ const point = clean[index];
49
+ const previous = clean[index - 1];
50
+ if (point.t - previous.t > gapMs) {
51
+ runs.push(run);
52
+ run = [];
53
+ }
54
+ run.push(point);
55
+ }
56
+ runs.push(run);
57
+ return runs;
58
+ }
59
+ /**
60
+ * A quota trace: where you sit against the ceiling, over time.
61
+ *
62
+ * Dependency-free inline SVG — a charting library is a large price for one
63
+ * line and five gridlines, and none of them draws the three things that make
64
+ * this chart honest:
65
+ *
66
+ * 1. **The y axis is always 0–100.** A quota chart auto-scaled to its own range
67
+ * makes a flat 3% look identical to a flat 95%. The ceiling is the reading,
68
+ * so the ceiling is always drawn.
69
+ * 2. **Gaps are gaps.** When the sweep does not run, the line breaks. Joining
70
+ * across a hole invents data — and worse, invents a *smooth* trend across
71
+ * exactly the window nothing is known about. The area fill stops at the
72
+ * break for the same reason.
73
+ * 3. **Out-of-range values are clamped, not plotted.** Upstream numbers are
74
+ * reverse-engineered and can be anything; 140% should read as a flat line on
75
+ * the ceiling, not as a path drawn over the axis labels.
76
+ *
77
+ * @example
78
+ * <UsageChart label="API requests" points={series} threshold={80} tone="warn" />
79
+ */
80
+ const UsageChart = React.forwardRef(function UsageChart({ className, points, tone = "accent", height = DEFAULT_HEIGHT_PX, gapMs = DEFAULT_GAP_MS, threshold, label, emptyLabel = "No data yet", formatTimestamp, formatValue = (value) => `${Math.round(value)}%`, ...elementProps }, ref) {
81
+ const gradientId = React.useId();
82
+ const [hover, setHover] = React.useState(null);
83
+ const segments = React.useMemo(() => segment(points, gapMs), [points, gapMs]);
84
+ const plotWidth = VIEW_WIDTH - PAD.left - PAD.right;
85
+ const plotHeight = height - PAD.top - PAD.bottom;
86
+ const floor = PAD.top + plotHeight;
87
+ const all = React.useMemo(() => segments.flat(), [segments]);
88
+ const first = all[0];
89
+ const last = all[all.length - 1];
90
+ const start = first?.t ?? 0;
91
+ const span = Math.max(1, (last?.t ?? start + 1) - start);
92
+ const round = (value) => Math.round(value * 100) / 100;
93
+ const x = (t) => round(PAD.left + (t - start) / span * plotWidth);
94
+ const y = (value) => round(PAD.top + (1 - Math.min(100, Math.max(0, value)) / 100) * plotHeight);
95
+ if (segments.length === 0) return /* @__PURE__ */ jsx("div", {
96
+ ref,
97
+ "data-slot": "usage-chart",
98
+ "data-empty": "true",
99
+ className: cn("flex items-center justify-center font-mono text-(length:--cue-text-label) text-fg-subtle", className),
100
+ style: { height: toRem(height) },
101
+ ...elementProps,
102
+ children: emptyLabel
103
+ });
104
+ const linePath = (run) => run.map((point, index) => `${index === 0 ? "M" : "L"}${x(point.t).toFixed(1)},${y(point.v).toFixed(1)}`).join(" ");
105
+ const areaPath = (run) => `${linePath(run)} L${x(run[run.length - 1].t).toFixed(1)},${floor.toFixed(1)} L${x(run[0].t).toFixed(1)},${floor.toFixed(1)} Z`;
106
+ const onMove = (event) => {
107
+ const box = event.currentTarget.getBoundingClientRect();
108
+ if (box.width === 0) return;
109
+ const viewX = (event.clientX - box.left) / box.width * VIEW_WIDTH;
110
+ const t = start + (viewX - PAD.left) / plotWidth * span;
111
+ let nearest = all[0];
112
+ for (const point of all) if (Math.abs(point.t - t) < Math.abs(nearest.t - t)) nearest = point;
113
+ setHover({
114
+ x: viewX,
115
+ point: nearest
116
+ });
117
+ };
118
+ return /* @__PURE__ */ jsxs("div", {
119
+ ref,
120
+ "data-slot": "usage-chart",
121
+ className: cn("relative min-w-0", className),
122
+ ...elementProps,
123
+ children: [/* @__PURE__ */ jsxs("svg", {
124
+ role: "img",
125
+ "aria-label": label ?? "Usage over time",
126
+ "data-tone": tone,
127
+ viewBox: `0 0 ${VIEW_WIDTH} ${height}`,
128
+ preserveAspectRatio: "none",
129
+ className: cn("block w-full", TONE_CLASSES[tone]),
130
+ style: { height: toRem(height) },
131
+ onMouseMove: onMove,
132
+ onMouseLeave: () => setHover(null),
133
+ children: [
134
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("linearGradient", {
135
+ id: gradientId,
136
+ x1: "0",
137
+ y1: "0",
138
+ x2: "0",
139
+ y2: "1",
140
+ children: [/* @__PURE__ */ jsx("stop", {
141
+ offset: "0%",
142
+ stopColor: "currentColor",
143
+ stopOpacity: "0.22"
144
+ }), /* @__PURE__ */ jsx("stop", {
145
+ offset: "100%",
146
+ stopColor: "currentColor",
147
+ stopOpacity: "0"
148
+ })]
149
+ }) }),
150
+ /* @__PURE__ */ jsx("g", {
151
+ className: "text-border",
152
+ children: GRID_LINES.map((value) => /* @__PURE__ */ jsx("line", {
153
+ "data-slot": "usage-chart-grid",
154
+ x1: PAD.left,
155
+ x2: VIEW_WIDTH - PAD.right,
156
+ y1: y(value),
157
+ y2: y(value),
158
+ stroke: "currentColor",
159
+ strokeWidth: "0.5",
160
+ opacity: value === 0 || value === 100 ? .9 : .45
161
+ }, value))
162
+ }),
163
+ /* @__PURE__ */ jsx("g", {
164
+ className: "fill-fg-subtle font-mono",
165
+ children: GRID_LINES.map((value) => /* @__PURE__ */ jsx("text", {
166
+ "data-slot": "usage-chart-axis",
167
+ x: PAD.left - 4,
168
+ y: y(value) + 3,
169
+ textAnchor: "end",
170
+ fontSize: AXIS_FONT_SIZE,
171
+ children: value
172
+ }, value))
173
+ }),
174
+ threshold === void 0 ? null : /* @__PURE__ */ jsx("line", {
175
+ "data-slot": "usage-chart-threshold",
176
+ className: "text-danger",
177
+ x1: PAD.left,
178
+ x2: VIEW_WIDTH - PAD.right,
179
+ y1: y(threshold),
180
+ y2: y(threshold),
181
+ stroke: "currentColor",
182
+ strokeWidth: "0.75",
183
+ strokeDasharray: "3 3",
184
+ opacity: "0.7"
185
+ }),
186
+ segments.map((run, index) => /* @__PURE__ */ jsxs("g", { children: [run.length > 1 ? /* @__PURE__ */ jsx("path", {
187
+ "data-slot": "usage-chart-area",
188
+ d: areaPath(run),
189
+ fill: `url(#${gradientId})`
190
+ }) : null, /* @__PURE__ */ jsx("path", {
191
+ "data-slot": "usage-chart-line",
192
+ d: linePath(run),
193
+ fill: "none",
194
+ stroke: "currentColor",
195
+ strokeWidth: "1.25",
196
+ strokeLinejoin: "round",
197
+ strokeLinecap: "round",
198
+ vectorEffect: "non-scaling-stroke"
199
+ })] }, index)),
200
+ hover === null ? null : /* @__PURE__ */ jsxs("g", {
201
+ pointerEvents: "none",
202
+ children: [/* @__PURE__ */ jsx("line", {
203
+ "data-slot": "usage-chart-crosshair",
204
+ className: "text-fg",
205
+ x1: x(hover.point.t),
206
+ x2: x(hover.point.t),
207
+ y1: PAD.top,
208
+ y2: floor,
209
+ stroke: "currentColor",
210
+ strokeWidth: "0.5",
211
+ opacity: "0.5"
212
+ }), /* @__PURE__ */ jsx("circle", {
213
+ "data-slot": "usage-chart-marker",
214
+ cx: x(hover.point.t),
215
+ cy: y(hover.point.v),
216
+ r: "2.5",
217
+ fill: "currentColor"
218
+ })]
219
+ })
220
+ ]
221
+ }), hover === null ? null : /* @__PURE__ */ jsx("div", {
222
+ "data-slot": "usage-chart-tooltip",
223
+ className: "pointer-events-none absolute top-0 -translate-x-1/2 rounded-(--radius-control) border border-border-overlay bg-surface-2 px-(--cue-space-3) py-(--cue-space-1) font-mono text-(length:--cue-text-label) tabular-nums text-fg",
224
+ style: { left: `${Math.min(88, Math.max(2, hover.x / VIEW_WIDTH * 100))}%` },
225
+ children: `${formatValue(hover.point.v)} · ${formatTimestamp === void 0 ? new Date(hover.point.t).toLocaleString(void 0, {
226
+ month: "short",
227
+ day: "numeric",
228
+ hour: "2-digit",
229
+ minute: "2-digit"
230
+ }) : formatTimestamp(hover.point.t)}`
231
+ })]
232
+ });
233
+ });
234
+ //#endregion
235
+ export { UsageChart };
@@ -0,0 +1,46 @@
1
+ //#region src/layout/_collapse.ts
2
+ /**
3
+ * The one disclosure recipe, shared by `Accordion` and `Collapsible`.
4
+ *
5
+ * Both wrap a Base UI primitive that speaks the same state vocabulary
6
+ * (`data-panel-open` on the trigger, a measured `--*-panel-height` on the
7
+ * panel), so the skin is written once here rather than twice — a change to how
8
+ * a section opens is then a one-line change, and the tests can assert the same
9
+ * recipe on both.
10
+ *
11
+ * @internal Not part of the public API.
12
+ */
13
+ /**
14
+ * The summary row: one rung of the density control ladder, mono, padded to the
15
+ * same gutters as a `Row` so a stack of sections lines up with a stack of rows.
16
+ *
17
+ * `focus-visible:outline-solid` re-declares the outline style the sibling
18
+ * `outline-none` switched off — see the note on `buttonChassis`. The ring is
19
+ * inset (`-outline-offset-2`) because sections live inside `overflow-hidden`
20
+ * panels, where an outset ring on the first row would be clipped by the rim.
21
+ */
22
+ const collapseTriggerClasses = "group/collapse flex h-control-md w-full cursor-pointer items-center gap-(--cue-space-3) px-(--cue-pad-row-x) text-left font-mono text-(length:--cue-text-ui) text-fg-muted transition-colors duration-150 outline-none select-none hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent data-[panel-open]:text-fg data-[disabled]:pointer-events-none data-[disabled]:opacity-40";
23
+ /** The label between the summary row's gutters — truncates, never wraps. */
24
+ const collapseLabelClasses = "min-w-0 flex-1 truncate";
25
+ /**
26
+ * The caret at the end of a summary row. Rotation is driven off the trigger's
27
+ * own `data-panel-open`, so nothing in React has to know the section is open.
28
+ */
29
+ const collapseCaretClasses = "size-icon-sm shrink-0 text-fg-subtle transition-transform duration-150 ease-out group-data-[panel-open]/collapse:rotate-90 motion-reduce:transition-none";
30
+ /**
31
+ * Enter/exit for a panel, animated from the height Base UI measures for us.
32
+ *
33
+ * The animating element carries no padding on purpose: padding is part of the
34
+ * box's height, so it would be counted into the `0 → measured` transition and
35
+ * make the panel jump at both ends. The body lives one element in — see
36
+ * {@link collapsePanelBodyClasses}.
37
+ */
38
+ const PANEL_MOTION = "overflow-hidden transition-[height] duration-150 ease-out motion-reduce:transition-none data-[starting-style]:h-0 data-[ending-style]:h-0";
39
+ /** {@link PANEL_MOTION} against the accordion's measured height. */
40
+ const accordionPanelClasses = `${PANEL_MOTION} h-(--accordion-panel-height)`;
41
+ /** {@link PANEL_MOTION} against the collapsible's measured height. */
42
+ const collapsiblePanelClasses = `${PANEL_MOTION} h-(--collapsible-panel-height)`;
43
+ /** The padded body inside a panel: aligned to the summary row's gutters. */
44
+ const collapsePanelBodyClasses = "px-(--cue-pad-row-x) pt-(--cue-space-1) pb-(--cue-space-4) font-mono text-(length:--cue-text-ui) leading-(--cue-leading-ui) text-fg-muted";
45
+ //#endregion
46
+ export { accordionPanelClasses, collapseCaretClasses, collapseLabelClasses, collapsePanelBodyClasses, collapseTriggerClasses, collapsiblePanelClasses };
@@ -0,0 +1,45 @@
1
+ import "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/layout/_glyphs.tsx
4
+ /**
5
+ * Shared layout glyphs.
6
+ *
7
+ * Drawn inline rather than pulled from `lucide-react` for the same reason as
8
+ * `chrome/_glyphs.tsx` and `overlays/_glyphs.tsx`: a caret on an accordion row
9
+ * and a chevron on a pager should not put an icon dependency on the render path
10
+ * of every page, and hand-set strokes stay hairline-thin at the 8–12px sizes
11
+ * console density asks for. `currentColor` everywhere — the tone comes from the
12
+ * parent.
13
+ *
14
+ * @internal Not part of the public API.
15
+ */
16
+ /** A right-pointing chevron. Rotate it 90° to point down. */
17
+ function ChevronRightGlyph(props) {
18
+ return /* @__PURE__ */ jsx("svg", {
19
+ viewBox: "0 0 16 16",
20
+ fill: "none",
21
+ stroke: "currentColor",
22
+ strokeWidth: "2",
23
+ strokeLinecap: "round",
24
+ strokeLinejoin: "round",
25
+ "aria-hidden": "true",
26
+ ...props,
27
+ children: /* @__PURE__ */ jsx("path", { d: "m6 3 5 5-5 5" })
28
+ });
29
+ }
30
+ /** A left-pointing chevron. */
31
+ function ChevronLeftGlyph(props) {
32
+ return /* @__PURE__ */ jsx("svg", {
33
+ viewBox: "0 0 16 16",
34
+ fill: "none",
35
+ stroke: "currentColor",
36
+ strokeWidth: "2",
37
+ strokeLinecap: "round",
38
+ strokeLinejoin: "round",
39
+ "aria-hidden": "true",
40
+ ...props,
41
+ children: /* @__PURE__ */ jsx("path", { d: "m10 3-5 5 5 5" })
42
+ });
43
+ }
44
+ //#endregion
45
+ export { ChevronLeftGlyph, ChevronRightGlyph };
@@ -0,0 +1,22 @@
1
+ //#region src/layout/_ground.d.ts
2
+ /**
3
+ * The three grounds a stage or a canvas may paint, and the classes for each.
4
+ *
5
+ * One table and not two, because `Preview`'s stage and `Frames.Root`'s canvas
6
+ * take the same three members and a second copy would be the one that drifted.
7
+ * Static literals, because Tailwind scans source text and never a computed
8
+ * string.
9
+ *
10
+ * `dots` is written as three classes in exactly the order `STAGE_CLASS` carried
11
+ * them before this table existed — `bg-surface-1`, then the radial gradient,
12
+ * then its size. `cn` is `twMerge(clsx(...))`, which keeps the order it is
13
+ * given, so composing head + ground + tail reproduces today's string token for
14
+ * token. `preview.test.tsx`'s byte gate is what holds that.
15
+ *
16
+ * @internal Not part of the public API. The type is re-exported from
17
+ * `./preview`, which is where §4.1 of the showroom spec declares it.
18
+ */
19
+ /** The stage's ground, in the settings popover's own words. */
20
+ type PreviewGround = "plain" | "dots" | "none";
21
+ //#endregion
22
+ export { PreviewGround };
@@ -0,0 +1,9 @@
1
+ //#region src/layout/_ground.ts
2
+ /** What each ground paints. `"none"` paints nothing, so whatever is behind shows through. */
3
+ const GROUND_CLASSES = {
4
+ plain: "bg-surface-1",
5
+ dots: "bg-surface-1 bg-[radial-gradient(circle,var(--cue-hair-strong)_1px,transparent_1.3px)] bg-[length:14px_14px]",
6
+ none: ""
7
+ };
8
+ //#endregion
9
+ export { GROUND_CLASSES };
@@ -0,0 +1,52 @@
1
+ import * as React from "react";
2
+ import { Accordion } from "@base-ui/react/accordion";
3
+ //#region src/layout/accordion.d.ts
4
+ interface AccordionRootProps extends Omit<Accordion.Root.Props, "className"> {
5
+ /** Extra classes for the accordion frame. */
6
+ className?: string;
7
+ }
8
+ interface AccordionItemProps extends Omit<Accordion.Item.Props, "className"> {
9
+ /** Extra classes for the section. */
10
+ className?: string;
11
+ }
12
+ interface AccordionHeaderProps extends Omit<Accordion.Header.Props, "className"> {
13
+ /** Extra classes for the heading. */
14
+ className?: string;
15
+ }
16
+ interface AccordionTriggerProps extends Omit<Accordion.Trigger.Props, "className"> {
17
+ /** Extra classes for the summary row. */
18
+ className?: string;
19
+ }
20
+ interface AccordionPanelProps extends Omit<Accordion.Panel.Props, "className"> {
21
+ /** Extra classes for the animating box. Padding belongs on `bodyClassName`. */
22
+ className?: string;
23
+ /** Extra classes for the padded body inside it. */
24
+ bodyClassName?: string;
25
+ }
26
+ /**
27
+ * A stack of sections, one (or several) open at a time.
28
+ *
29
+ * Wraps Base UI's `Accordion`, so the disclosure ARIA, keyboard handling and
30
+ * open-state bookkeeping are the primitive's. This layer adds the console skin:
31
+ * hairline separation, mono summary rows on the control ladder, and a height
32
+ * transition that respects `prefers-reduced-motion`.
33
+ *
34
+ * @example
35
+ * <Accordion.Root>
36
+ * <Accordion.Item value="routing">
37
+ * <Accordion.Header><Accordion.Trigger>routing</Accordion.Trigger></Accordion.Header>
38
+ * <Accordion.Panel>…</Accordion.Panel>
39
+ * </Accordion.Item>
40
+ * </Accordion.Root>
41
+ * @example
42
+ * <Accordion.Root multiple defaultValue={["routing"]}>…</Accordion.Root>
43
+ */
44
+ declare const Accordion$1: {
45
+ Root: React.ForwardRefExoticComponent<Omit<AccordionRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
46
+ Item: React.ForwardRefExoticComponent<Omit<AccordionItemProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
47
+ Header: React.ForwardRefExoticComponent<Omit<AccordionHeaderProps, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
48
+ Trigger: React.ForwardRefExoticComponent<Omit<AccordionTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
49
+ Panel: React.ForwardRefExoticComponent<Omit<AccordionPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
50
+ };
51
+ //#endregion
52
+ export { Accordion$1 as Accordion, AccordionHeaderProps, AccordionItemProps, AccordionPanelProps, AccordionRootProps, AccordionTriggerProps };