@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,65 @@
1
+ import { FormControlSize } from "../forms/_chassis.js";
2
+ import { CalendarProps } from "./calendar.js";
3
+ import * as React from "react";
4
+ import { DateRange } from "react-day-picker";
5
+ //#region src/date/date-range-picker.d.ts
6
+ /** The calendar knobs a range picker leaves open; selection is its own job. */
7
+ type DateRangePickerCalendarProps = Omit<CalendarProps, "mode" | "selected" | "onSelect" | "required">;
8
+ interface DateRangePickerProps {
9
+ /** The chosen span. Use with `onValueChange` for a controlled field. */
10
+ value?: DateRange | null;
11
+ /** Initially chosen span for an uncontrolled field. */
12
+ defaultValue?: DateRange | null;
13
+ /**
14
+ * Called after every click inside the calendar — once with `{ from }` when
15
+ * the span opens, again with `{ from, to }` when it closes.
16
+ */
17
+ onValueChange?: (value: DateRange | undefined) => void;
18
+ /** Read out while nothing is chosen. Defaults to `"Pick a range"`. */
19
+ placeholder?: string;
20
+ /** date-fns pattern for both ends of the readout. Defaults to `"d MMM yyyy"`. */
21
+ dateFormat?: string;
22
+ /** Rung of the control ladder. Defaults to `"md"`. */
23
+ size?: FormControlSize;
24
+ /** Prevent opening and grey the trigger out. */
25
+ disabled?: boolean;
26
+ /** Paint the danger rim — pair it with a `FieldError`. */
27
+ invalid?: boolean;
28
+ /** Base name for the hidden inputs; they submit `<name>From` / `<name>To`. */
29
+ name?: string;
30
+ /** Id forwarded to the trigger. */
31
+ id?: string;
32
+ /** Accessible name for the trigger, when no `FieldLabel` names it. */
33
+ "aria-label"?: string;
34
+ /** Id of the element naming the trigger. */
35
+ "aria-labelledby"?: string;
36
+ /** Extra classes for the trigger. */
37
+ className?: string;
38
+ /** Extra classes for the popup surface. */
39
+ popupClassName?: string;
40
+ /** Everything else the calendar takes. `numberOfMonths` defaults to `2`. */
41
+ calendarProps?: DateRangePickerCalendarProps;
42
+ /** Open state, for a controlled popover. */
43
+ open?: boolean;
44
+ /** Initial open state. */
45
+ defaultOpen?: boolean;
46
+ /** Called when the popover opens or closes. */
47
+ onOpenChange?: (open: boolean) => void;
48
+ }
49
+ /**
50
+ * A span of days, picked from a two-month calendar in a popover.
51
+ *
52
+ * The sibling of `DatePicker`, sharing its trigger skin — but *not* its
53
+ * dismissal: a range takes two clicks, so the popup stays open through the
54
+ * first one and the caller hears about both. Close it from `onValueChange` when
55
+ * `to` arrives if a one-shot flow suits the page better.
56
+ *
57
+ * `react-day-picker` and `date-fns` are **optional peers**: import this from
58
+ * `@cueplusplus/ui/date`.
59
+ *
60
+ * @example
61
+ * <DateRangePicker aria-label="Window" value={range} onValueChange={setRange} />
62
+ */
63
+ declare function DateRangePicker({ value, defaultValue, onValueChange, placeholder, dateFormat, size, disabled, invalid, name, id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className, popupClassName, calendarProps, open, defaultOpen, onOpenChange }: DateRangePickerProps): React.JSX.Element;
64
+ //#endregion
65
+ export { type DateRange, DateRangePicker, DateRangePickerCalendarProps, DateRangePickerProps };
@@ -0,0 +1,92 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { Popover } from "../overlays/popover.js";
4
+ import { Calendar } from "./calendar.js";
5
+ import { CalendarGlyph } from "./_glyphs.js";
6
+ import { datePopupClasses, dateTriggerClasses, dateTriggerGlyphClasses, dateTriggerValueClasses } from "./_trigger.js";
7
+ import * as React from "react";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ import { format } from "date-fns";
10
+ //#region src/date/date-range-picker.tsx
11
+ /** The wire format for a submitted date: sortable, unambiguous, locale-free. */
12
+ const ISO_DATE = "yyyy-MM-dd";
13
+ /** `17 Aug 2026 → 20 Aug 2026`, with `…` standing in for an unpicked end. */
14
+ function formatRange(range, pattern) {
15
+ return `${range.from === void 0 ? "…" : format(range.from, pattern)} → ${range.to === void 0 ? "…" : format(range.to, pattern)}`;
16
+ }
17
+ /**
18
+ * A span of days, picked from a two-month calendar in a popover.
19
+ *
20
+ * The sibling of `DatePicker`, sharing its trigger skin — but *not* its
21
+ * dismissal: a range takes two clicks, so the popup stays open through the
22
+ * first one and the caller hears about both. Close it from `onValueChange` when
23
+ * `to` arrives if a one-shot flow suits the page better.
24
+ *
25
+ * `react-day-picker` and `date-fns` are **optional peers**: import this from
26
+ * `@cueplusplus/ui/date`.
27
+ *
28
+ * @example
29
+ * <DateRangePicker aria-label="Window" value={range} onValueChange={setRange} />
30
+ */
31
+ function DateRangePicker({ value, defaultValue, onValueChange, placeholder = "Pick a range", dateFormat = "d MMM yyyy", size, disabled, invalid, name, id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className, popupClassName, calendarProps, open, defaultOpen, onOpenChange }) {
32
+ const [uncontrolled, setUncontrolled] = React.useState(defaultValue ?? void 0);
33
+ const selected = value === void 0 ? uncontrolled : value ?? void 0;
34
+ const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false);
35
+ const isOpen = open ?? uncontrolledOpen;
36
+ const setOpen = (next) => {
37
+ if (open === void 0) setUncontrolledOpen(next);
38
+ onOpenChange?.(next);
39
+ };
40
+ const select = (next) => {
41
+ if (value === void 0) setUncontrolled(next);
42
+ onValueChange?.(next);
43
+ };
44
+ return /* @__PURE__ */ jsxs(Popover.Root, {
45
+ open: isOpen,
46
+ onOpenChange: setOpen,
47
+ children: [
48
+ /* @__PURE__ */ jsxs(Popover.Trigger, {
49
+ render: /* @__PURE__ */ jsx("button", {
50
+ type: "button",
51
+ id,
52
+ disabled,
53
+ "aria-label": ariaLabel,
54
+ "aria-labelledby": ariaLabelledBy,
55
+ "data-slot": "date-range-picker-trigger",
56
+ "data-empty": selected === void 0 ? "true" : void 0,
57
+ "data-invalid": invalid ? "" : void 0,
58
+ className: cn(dateTriggerClasses(size), className)
59
+ }),
60
+ children: [/* @__PURE__ */ jsx("span", {
61
+ className: cn(dateTriggerValueClasses, selected === void 0 && "text-fg-subtle"),
62
+ children: selected === void 0 ? placeholder : formatRange(selected, dateFormat)
63
+ }), /* @__PURE__ */ jsx(CalendarGlyph, { className: dateTriggerGlyphClasses })]
64
+ }),
65
+ /* @__PURE__ */ jsx(Popover.Content, {
66
+ className: cn(datePopupClasses, popupClassName),
67
+ align: "start",
68
+ "data-slot": "date-range-picker-popup",
69
+ children: /* @__PURE__ */ jsx(Calendar, {
70
+ numberOfMonths: 2,
71
+ ...calendarProps,
72
+ mode: "range",
73
+ selected,
74
+ onSelect: select,
75
+ defaultMonth: calendarProps?.defaultMonth ?? selected?.from,
76
+ autoFocus: true
77
+ })
78
+ }),
79
+ name === void 0 ? null : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("input", {
80
+ type: "hidden",
81
+ name: `${name}From`,
82
+ value: selected?.from === void 0 ? "" : format(selected.from, ISO_DATE)
83
+ }), /* @__PURE__ */ jsx("input", {
84
+ type: "hidden",
85
+ name: `${name}To`,
86
+ value: selected?.to === void 0 ? "" : format(selected.to, ISO_DATE)
87
+ })] })
88
+ ]
89
+ });
90
+ }
91
+ //#endregion
92
+ export { DateRangePicker };
@@ -0,0 +1,6 @@
1
+ import { Calendar, CalendarProps } from "./calendar.js";
2
+ import { DateField, DateFieldProps, DateValue } from "./date-field.js";
3
+ import { DatePicker, DatePickerCalendarProps, DatePickerProps } from "./date-picker.js";
4
+ import { DateRange, DateRangePicker, DateRangePickerCalendarProps, DateRangePickerProps } from "./date-range-picker.js";
5
+ import { TimeField, TimeFieldProps, TimeValue } from "./time-field.js";
6
+ export { Calendar, type CalendarProps, DateField, type DateFieldProps, DatePicker, type DatePickerCalendarProps, type DatePickerProps, type DateRange, DateRangePicker, type DateRangePickerCalendarProps, type DateRangePickerProps, type DateValue, TimeField, type TimeFieldProps, type TimeValue };
@@ -0,0 +1,6 @@
1
+ import { Calendar } from "./calendar.js";
2
+ import { DateField } from "./date-field.js";
3
+ import { DatePicker } from "./date-picker.js";
4
+ import { DateRangePicker } from "./date-range-picker.js";
5
+ import { TimeField } from "./time-field.js";
6
+ export { Calendar, DateField, DatePicker, DateRangePicker, TimeField };
@@ -0,0 +1,29 @@
1
+ import { FormControlSize } from "../forms/_chassis.js";
2
+ import * as React from "react";
3
+ import { DateInputProps, TimeFieldProps, TimeValue } from "react-aria-components";
4
+ //#region src/date/time-field.d.ts
5
+ interface TimeFieldProps$1<T extends TimeValue = TimeValue> extends Omit<TimeFieldProps<T>, "children"> {
6
+ /** Rung of the control ladder. Defaults to `"md"`. */
7
+ size?: FormControlSize;
8
+ /** Extra classes for the segment group itself. */
9
+ inputClassName?: DateInputProps["className"];
10
+ }
11
+ /**
12
+ * A typed time of day, segment by segment.
13
+ *
14
+ * The sibling of {@link DateField} on the same React Aria part, for the half of
15
+ * a schedule a calendar cannot express. Pass `hourCycle={24}` for a show clock —
16
+ * a control room runs on 24-hour time, and the AM/PM segment is one more thing
17
+ * to tab through.
18
+ *
19
+ * Values are `@internationalized/date` `Time` objects.
20
+ *
21
+ * `react-aria-components` is an **optional peer**: import this from
22
+ * `@cueplusplus/ui/date`.
23
+ *
24
+ * @example
25
+ * <TimeField aria-label="Go time" hourCycle={24} value={time} onChange={setTime} />
26
+ */
27
+ declare function TimeField$1<T extends TimeValue = TimeValue>({ size, className, inputClassName, ...fieldProps }: TimeFieldProps$1<T>): React.JSX.Element;
28
+ //#endregion
29
+ export { TimeField$1 as TimeField, TimeFieldProps$1 as TimeFieldProps, type TimeValue };
@@ -0,0 +1,36 @@
1
+ "use client";
2
+ import { ariaClassName } from "../lib/aria-class.js";
3
+ import { SegmentGroup } from "./_segments.js";
4
+ import "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import { TimeField } from "react-aria-components";
7
+ //#region src/date/time-field.tsx
8
+ /**
9
+ * A typed time of day, segment by segment.
10
+ *
11
+ * The sibling of {@link DateField} on the same React Aria part, for the half of
12
+ * a schedule a calendar cannot express. Pass `hourCycle={24}` for a show clock —
13
+ * a control room runs on 24-hour time, and the AM/PM segment is one more thing
14
+ * to tab through.
15
+ *
16
+ * Values are `@internationalized/date` `Time` objects.
17
+ *
18
+ * `react-aria-components` is an **optional peer**: import this from
19
+ * `@cueplusplus/ui/date`.
20
+ *
21
+ * @example
22
+ * <TimeField aria-label="Go time" hourCycle={24} value={time} onChange={setTime} />
23
+ */
24
+ function TimeField$1({ size, className, inputClassName, ...fieldProps }) {
25
+ return /* @__PURE__ */ jsx(TimeField, {
26
+ "data-slot": "time-field",
27
+ className: ariaClassName("inline-flex flex-col gap-(--cue-space-1)", className),
28
+ ...fieldProps,
29
+ children: /* @__PURE__ */ jsx(SegmentGroup, {
30
+ size,
31
+ className: inputClassName
32
+ })
33
+ });
34
+ }
35
+ //#endregion
36
+ export { TimeField$1 as TimeField };
@@ -0,0 +1,77 @@
1
+ //#region src/dmx/_ramp.d.ts
2
+ /**
3
+ * The byte layer: how big a universe is, and what colour a level is.
4
+ *
5
+ * Everything in this group repaints at frame rate, which rules out doing colour
6
+ * work per cell per frame. So the conversion happens once, into a 768-byte
7
+ * lookup table, and a repaint is three array reads. That is the whole reason
8
+ * these are `Uint8Array`s rather than a `(level) => string` function.
9
+ *
10
+ * Two ramps, for two different questions:
11
+ *
12
+ * - **mono** answers "how bright is this channel?" — and answers it by *being*
13
+ * that brightness. The byte is the grey, with no conversion at all, which is
14
+ * the reading a lighting operator already has in their hands from the desk.
15
+ * It is the one place in this system that does not read a colour token, and
16
+ * the reason is the same reason `--cue-data-ground` is true black in every
17
+ * theme: a level readout that a theme could re-tint is a level readout you
18
+ * cannot trust.
19
+ * - **value** answers "which channels are hot?" — and for that it borrows the
20
+ * status vocabulary the rest of the console already means something by:
21
+ * ground, then info, ok, warn, danger. Those *are* tokens, resolved against
22
+ * the theme in force where the grid is mounted, so the ramp re-hues with the
23
+ * theme like every other colour here.
24
+ *
25
+ * @internal Not part of the public API surface beyond the `/dmx` barrel.
26
+ */
27
+ /** Channels in one DMX512 universe. Not a preference — it is the protocol. */
28
+ declare const DMX_SLOTS = 512;
29
+ /** The two cell colourings, in the order a picker should offer them. */
30
+ declare const DMX_RAMP_NAMES: readonly ["mono", "value"];
31
+ /** How a level becomes a colour. */
32
+ type DmxRamp = (typeof DMX_RAMP_NAMES)[number];
33
+ /**
34
+ * The tokens the value ramp interpolates through, dark end first.
35
+ *
36
+ * Read as names rather than as colours so the ramp follows a theme switch, and
37
+ * so a console that retunes its `warn` retunes its channel grid with it.
38
+ */
39
+ declare const VALUE_RAMP_TOKENS: readonly ["data-ground", "info", "ok", "warn", "danger"];
40
+ /**
41
+ * The 256-entry lookup table for a ramp: `[r, g, b]` per level, flat.
42
+ *
43
+ * Rebuild it whenever the theme the grid is mounted in changes — it is a
44
+ * snapshot of resolved tokens, not a live binding.
45
+ *
46
+ * @param ramp - Which colouring. Defaults to `"mono"`.
47
+ * @param element - Where the value ramp's tokens resolve. Defaults to the
48
+ * document element; pass a node inside a portal or a nested theme for that
49
+ * scope. Ignored by `"mono"`, which reads no tokens.
50
+ */
51
+ declare function dmxPalette(ramp?: DmxRamp, element?: Element | null): Uint8Array;
52
+ /** The `rgb()` string for a level. Out-of-range input clamps into a real slot. */
53
+ declare function dmxPaletteColor(palette: Uint8Array, level: number): string;
54
+ /**
55
+ * Ink for the number printed *inside* a cell: whichever of black or white has
56
+ * the better contrast against the cell's own fill.
57
+ *
58
+ * The ports this replaces each carried a hand-tuned cutoff (`v > 150` in one
59
+ * mode, `v > 140` in the other), which is two magic numbers that disagree with
60
+ * each other and neither of which survives a re-tinted ramp. One contrast
61
+ * calculation answers it for any ramp, in any theme.
62
+ */
63
+ declare function dmxPaletteInk(palette: Uint8Array, level: number): string;
64
+ /**
65
+ * How many slots of one universe are carrying anything.
66
+ *
67
+ * The only honest summary of a bar or a grid for a reader who cannot see it —
68
+ * and cheap enough (512 reads) to recompute on every frame that actually
69
+ * arrives.
70
+ *
71
+ * @param data - The frame, or a multi-universe buffer.
72
+ * @param offset - Where this universe starts in `data`. Defaults to `0`.
73
+ * @param slots - How many slots to read. Defaults to a full universe.
74
+ */
75
+ declare function activeChannels(data: Uint8Array | undefined, offset?: number, slots?: number): number;
76
+ //#endregion
77
+ export { DMX_RAMP_NAMES, DMX_SLOTS, DmxRamp, VALUE_RAMP_TOKENS, activeChannels, dmxPalette, dmxPaletteColor, dmxPaletteInk };
@@ -0,0 +1,169 @@
1
+ import { resolveToken } from "../charts/_token.js";
2
+ import { converter, parse } from "culori";
3
+ //#region src/dmx/_ramp.ts
4
+ /**
5
+ * The byte layer: how big a universe is, and what colour a level is.
6
+ *
7
+ * Everything in this group repaints at frame rate, which rules out doing colour
8
+ * work per cell per frame. So the conversion happens once, into a 768-byte
9
+ * lookup table, and a repaint is three array reads. That is the whole reason
10
+ * these are `Uint8Array`s rather than a `(level) => string` function.
11
+ *
12
+ * Two ramps, for two different questions:
13
+ *
14
+ * - **mono** answers "how bright is this channel?" — and answers it by *being*
15
+ * that brightness. The byte is the grey, with no conversion at all, which is
16
+ * the reading a lighting operator already has in their hands from the desk.
17
+ * It is the one place in this system that does not read a colour token, and
18
+ * the reason is the same reason `--cue-data-ground` is true black in every
19
+ * theme: a level readout that a theme could re-tint is a level readout you
20
+ * cannot trust.
21
+ * - **value** answers "which channels are hot?" — and for that it borrows the
22
+ * status vocabulary the rest of the console already means something by:
23
+ * ground, then info, ok, warn, danger. Those *are* tokens, resolved against
24
+ * the theme in force where the grid is mounted, so the ramp re-hues with the
25
+ * theme like every other colour here.
26
+ *
27
+ * @internal Not part of the public API surface beyond the `/dmx` barrel.
28
+ */
29
+ /** Channels in one DMX512 universe. Not a preference — it is the protocol. */
30
+ const DMX_SLOTS = 512;
31
+ /** Levels a DMX slot can carry: a single byte. */
32
+ const LEVELS = 256;
33
+ /** The highest level, and the divisor every ramp position is taken against. */
34
+ const MAX_LEVEL = 255;
35
+ /** The two cell colourings, in the order a picker should offer them. */
36
+ const DMX_RAMP_NAMES = ["mono", "value"];
37
+ /**
38
+ * The tokens the value ramp interpolates through, dark end first.
39
+ *
40
+ * Read as names rather than as colours so the ramp follows a theme switch, and
41
+ * so a console that retunes its `warn` retunes its channel grid with it.
42
+ */
43
+ const VALUE_RAMP_TOKENS = [
44
+ "data-ground",
45
+ "info",
46
+ "ok",
47
+ "warn",
48
+ "danger"
49
+ ];
50
+ /**
51
+ * dmxhub's own stops, kept as the fallback for the two moments the tokens
52
+ * cannot be read: a server render, and a test DOM with no stylesheet. Without
53
+ * them the ramp would collapse to black and a grid would go blank in SSR.
54
+ */
55
+ const VALUE_RAMP_FALLBACK = [
56
+ "#000000",
57
+ "#0066ff",
58
+ "#00cc66",
59
+ "#ff9500",
60
+ "#ff3333"
61
+ ];
62
+ const toRgb = converter("rgb");
63
+ /** A CSS colour as three 0-255 channels, or `null` when it will not parse. */
64
+ function toBytes(color) {
65
+ const parsed = parse(color);
66
+ if (parsed === void 0) return null;
67
+ const rgb = toRgb(parsed);
68
+ if (rgb === void 0) return null;
69
+ return [
70
+ byte(rgb.r * MAX_LEVEL),
71
+ byte(rgb.g * MAX_LEVEL),
72
+ byte(rgb.b * MAX_LEVEL)
73
+ ];
74
+ }
75
+ /** Round and clamp into the range a channel of anything here can hold. */
76
+ function byte(value) {
77
+ if (!Number.isFinite(value)) return 0;
78
+ return Math.min(MAX_LEVEL, Math.max(0, Math.round(value)));
79
+ }
80
+ /** Grey, straight off the wire: level 137 is `rgb(137,137,137)`. */
81
+ function monoPalette() {
82
+ const palette = new Uint8Array(LEVELS * 3);
83
+ for (let level = 0; level < LEVELS; level += 1) {
84
+ palette[level * 3] = level;
85
+ palette[level * 3 + 1] = level;
86
+ palette[level * 3 + 2] = level;
87
+ }
88
+ return palette;
89
+ }
90
+ /** Linear interpolation across the resolved stops, one entry per level. */
91
+ function valuePalette(element) {
92
+ const stops = VALUE_RAMP_TOKENS.map((token, index) => {
93
+ const fallback = VALUE_RAMP_FALLBACK[index];
94
+ const resolved = resolveToken(token, element);
95
+ return (resolved === null ? null : toBytes(resolved)) ?? toBytes(fallback);
96
+ });
97
+ const palette = new Uint8Array(LEVELS * 3);
98
+ const last = stops.length - 1;
99
+ for (let level = 0; level < LEVELS; level += 1) {
100
+ const position = level / MAX_LEVEL * last;
101
+ const index = Math.min(Math.floor(position), last - 1);
102
+ const fraction = position - index;
103
+ const from = stops[index];
104
+ const to = stops[index + 1];
105
+ for (let channel = 0; channel < 3; channel += 1) palette[level * 3 + channel] = byte(from[channel] + (to[channel] - from[channel]) * fraction);
106
+ }
107
+ return palette;
108
+ }
109
+ /**
110
+ * The 256-entry lookup table for a ramp: `[r, g, b]` per level, flat.
111
+ *
112
+ * Rebuild it whenever the theme the grid is mounted in changes — it is a
113
+ * snapshot of resolved tokens, not a live binding.
114
+ *
115
+ * @param ramp - Which colouring. Defaults to `"mono"`.
116
+ * @param element - Where the value ramp's tokens resolve. Defaults to the
117
+ * document element; pass a node inside a portal or a nested theme for that
118
+ * scope. Ignored by `"mono"`, which reads no tokens.
119
+ */
120
+ function dmxPalette(ramp = "mono", element) {
121
+ return ramp === "value" ? valuePalette(element) : monoPalette();
122
+ }
123
+ /** The `rgb()` string for a level. Out-of-range input clamps into a real slot. */
124
+ function dmxPaletteColor(palette, level) {
125
+ const index = byte(level) * 3;
126
+ return `rgb(${palette[index]}, ${palette[index + 1]}, ${palette[index + 2]})`;
127
+ }
128
+ /** WCAG relative luminance of an 8-bit sRGB triple. */
129
+ function luminance(red, green, blue) {
130
+ const channel = (value) => {
131
+ const srgb = value / MAX_LEVEL;
132
+ return srgb <= .03928 ? srgb / 12.92 : ((srgb + .055) / 1.055) ** 2.4;
133
+ };
134
+ return .2126 * channel(red) + .7152 * channel(green) + .0722 * channel(blue);
135
+ }
136
+ /**
137
+ * Ink for the number printed *inside* a cell: whichever of black or white has
138
+ * the better contrast against the cell's own fill.
139
+ *
140
+ * The ports this replaces each carried a hand-tuned cutoff (`v > 150` in one
141
+ * mode, `v > 140` in the other), which is two magic numbers that disagree with
142
+ * each other and neither of which survives a re-tinted ramp. One contrast
143
+ * calculation answers it for any ramp, in any theme.
144
+ */
145
+ function dmxPaletteInk(palette, level) {
146
+ const index = byte(level) * 3;
147
+ const relative = luminance(palette[index], palette[index + 1], palette[index + 2]);
148
+ return (relative + .05) / .05 >= 1.05 / (relative + .05) ? "#000000" : "#ffffff";
149
+ }
150
+ /**
151
+ * How many slots of one universe are carrying anything.
152
+ *
153
+ * The only honest summary of a bar or a grid for a reader who cannot see it —
154
+ * and cheap enough (512 reads) to recompute on every frame that actually
155
+ * arrives.
156
+ *
157
+ * @param data - The frame, or a multi-universe buffer.
158
+ * @param offset - Where this universe starts in `data`. Defaults to `0`.
159
+ * @param slots - How many slots to read. Defaults to a full universe.
160
+ */
161
+ function activeChannels(data, offset = 0, slots = 512) {
162
+ if (data === void 0) return 0;
163
+ let active = 0;
164
+ const end = Math.min(data.length, offset + slots);
165
+ for (let index = offset; index < end; index += 1) if (data[index] > 0) active += 1;
166
+ return active;
167
+ }
168
+ //#endregion
169
+ export { DMX_RAMP_NAMES, DMX_SLOTS, VALUE_RAMP_TOKENS, activeChannels, dmxPalette, dmxPaletteColor, dmxPaletteInk };
@@ -0,0 +1,53 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { overlaySurfaceClasses } from "../overlays/_surface.js";
4
+ import "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { createPortal } from "react-dom";
7
+ //#region src/dmx/_readout.tsx
8
+ /**
9
+ * The `CH n · v` chip every renderer in this group shows under the cursor.
10
+ *
11
+ * It is portaled rather than positioned inside the instrument for the reason
12
+ * every floating surface in this system is: a DMX bar lives inside a node
13
+ * graph, a resizable panel or a scroll container, any of which will clip or
14
+ * transform an absolutely positioned child. The stamped container from
15
+ * `useCuePortalProps` is what keeps the chip in the caller's theme once it is
16
+ * re-parented to `document.body`.
17
+ *
18
+ * `valueRef` exists because the number changes at frame rate. A component that
19
+ * re-rendered to update it would put React on the hot path of a 40 Hz stream;
20
+ * the renderers write to this span directly instead, and React only hears about
21
+ * the channel changing.
22
+ *
23
+ * @internal Not part of the public API.
24
+ */
25
+ /** Gap in px between the cursor's row and the chip's lower edge. */
26
+ const READOUT_GAP = 7;
27
+ /** The floating channel readout. Renders `null` until the portal root exists. */
28
+ function DmxReadout({ container, channel, value, x, y, valueRef }) {
29
+ if (container === void 0) return null;
30
+ return createPortal(/* @__PURE__ */ jsxs("div", {
31
+ "data-slot": "dmx-readout",
32
+ className: cn(overlaySurfaceClasses, "pointer-events-none fixed z-50 -translate-x-1/2 -translate-y-full px-(--cue-space-2) py-px font-mono text-(length:--cue-text-micro) whitespace-nowrap tabular-nums text-fg-muted"),
33
+ style: {
34
+ left: x,
35
+ top: y - READOUT_GAP
36
+ },
37
+ children: [
38
+ "CH ",
39
+ /* @__PURE__ */ jsx("span", {
40
+ className: "text-fg",
41
+ children: channel
42
+ }),
43
+ " · ",
44
+ /* @__PURE__ */ jsx("span", {
45
+ ref: valueRef,
46
+ className: "text-accent",
47
+ children: value
48
+ })
49
+ ]
50
+ }), container);
51
+ }
52
+ //#endregion
53
+ export { DmxReadout };
@@ -0,0 +1,105 @@
1
+ //#region src/dmx/_universe.d.ts
2
+ /**
3
+ * Patch arithmetic: turning "this fixture starts at 129 and eats 32 channels"
4
+ * into a position on a bar, and finding the places two fixtures were given the
5
+ * same slot.
6
+ *
7
+ * Kept out of the component because a conflict is a fact about a patch, not
8
+ * about a rendering of one — a console wants to know before it draws anything,
9
+ * and a test wants to check it without a DOM.
10
+ *
11
+ * @internal Not part of the public API surface beyond the `/dmx` barrel.
12
+ */
13
+ /** Block ink, in the shared status vocabulary plus a neutral. */
14
+ type DmxTone = "neutral" | "accent" | "ok" | "busy" | "warn" | "danger" | "info";
15
+ /** One fixture's claim on a run of channels. */
16
+ interface DmxAllocation {
17
+ /** Stable identity. Defaults to the label plus its position. */
18
+ id?: string;
19
+ /** What holds these channels: a fixture name, a group, "spare". */
20
+ label: string;
21
+ /** First channel, 1-based — the address written on the fixture. */
22
+ start: number;
23
+ /** How many channels the mode occupies. */
24
+ size: number;
25
+ /** Ink for the block. Defaults to `"neutral"`. */
26
+ tone?: DmxTone;
27
+ }
28
+ /** An inclusive run of channel addresses. */
29
+ interface ChannelRange {
30
+ /** First channel, 1-based. */
31
+ start: number;
32
+ /** Last channel, 1-based and inclusive. */
33
+ end: number;
34
+ }
35
+ /** One allocation, placed. */
36
+ interface AllocationBlock extends ChannelRange {
37
+ /** React key: the allocation's `id`, or its label plus position. */
38
+ key: string;
39
+ /** The allocation this came from, so a click can hand it straight back. */
40
+ allocation: DmxAllocation;
41
+ /** Convenience copy of `allocation.label`. */
42
+ label: string;
43
+ /** Resolved ink. */
44
+ tone: DmxTone;
45
+ /** Channels actually occupied after clamping. */
46
+ size: number;
47
+ /** Distance from the left edge of the universe, as a percentage. */
48
+ left: number;
49
+ /** Share of the universe, as a percentage. */
50
+ width: number;
51
+ /** Some slot of this run is claimed by another allocation too. */
52
+ conflict: boolean;
53
+ /** The run ran past the last slot and was cut short. */
54
+ clipped: boolean;
55
+ }
56
+ /** A patch, placed. */
57
+ interface UniverseLayout {
58
+ /** How many slots the frame holds. */
59
+ slots: number;
60
+ /** The placed allocations, input order preserved. */
61
+ blocks: AllocationBlock[];
62
+ /** Contested runs, merged and in address order. */
63
+ conflicts: ChannelRange[];
64
+ /** Distinct slots claimed by at least one allocation. */
65
+ used: number;
66
+ /** `used` as a whole-number percentage of `slots`. */
67
+ utilisation: number;
68
+ }
69
+ /**
70
+ * The ruler's addresses: the start, the end, and every 64 in between.
71
+ *
72
+ * 64 is the interval a patch sheet is written in, so these are the numbers an
73
+ * operator already counts by — not a tick density chosen to fill the width.
74
+ */
75
+ declare const UNIVERSE_TICKS: readonly number[];
76
+ /**
77
+ * Where a channel sits along the bar, as a percentage.
78
+ *
79
+ * 1-based in, 0-based out: channel 1 is the left edge, and the last channel
80
+ * starts one slot short of the right one — a channel is a *slot* with width,
81
+ * not a point.
82
+ *
83
+ * @param channel - The address, 1-based.
84
+ * @param slots - Frame length. Defaults to a full universe.
85
+ */
86
+ declare function channelPercent(channel: number, slots?: number): number;
87
+ /**
88
+ * Place a patch on a universe bar and find its collisions.
89
+ *
90
+ * Three rules, each one a thing a patch tool has to get right:
91
+ *
92
+ * 1. **An allocation that occupies nothing is not drawn.** A zero-width block
93
+ * with a two-pixel floor would draw a fixture that is not patched.
94
+ * 2. **A run that walks off the end is cut, not hidden** — and marked `clipped`,
95
+ * because "your 32-channel fixture at 500 does not fit" is exactly the thing
96
+ * the operator needs to see.
97
+ * 3. **Occupancy is counted in distinct slots.** Summing sizes would let a
98
+ * double patch report more capacity in use than the universe has.
99
+ *
100
+ * @param allocations - The patch, in display order.
101
+ * @param slots - Frame length. Defaults to a full universe.
102
+ */
103
+ declare function universeLayout(allocations: readonly DmxAllocation[], slots?: number): UniverseLayout;
104
+ //#endregion
105
+ export { AllocationBlock, ChannelRange, DmxAllocation, DmxTone, UNIVERSE_TICKS, UniverseLayout, channelPercent, universeLayout };