@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,108 @@
1
+ import "react";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { BaseEdge, getBezierPath } from "@xyflow/react";
4
+ //#region src/flow/signal-edge.tsx
5
+ const TONE_COLORS = {
6
+ accent: "var(--cue-accent)",
7
+ ok: "var(--cue-ok)",
8
+ busy: "var(--cue-busy)",
9
+ warn: "var(--cue-warn)",
10
+ danger: "var(--cue-danger)",
11
+ info: "var(--cue-info)"
12
+ };
13
+ /** A wire nobody has switched on. */
14
+ const MUTED_COLOR = "var(--cue-fg-subtle)";
15
+ /** Selection is the loudest thing on the canvas, and it is never a hue. */
16
+ const SELECTED_COLOR = "var(--cue-fg)";
17
+ /**
18
+ * The class the animated overlay carries.
19
+ *
20
+ * `flow.css` owns its `@keyframes` and its reduced-motion switch; the dash
21
+ * pattern itself is inline, so an app that never imported the stylesheet still
22
+ * gets a legible dashed highlight instead of a mystery second line.
23
+ */
24
+ const SIGNAL_EDGE_FLOW_CLASS = "cue-signal-flow";
25
+ /**
26
+ * Width of the invisible path the pointer actually hits, in px.
27
+ *
28
+ * A 1.6px wire is a nearly impossible click target and an outright impossible
29
+ * touch target. The library's own default is 20; 16 is the port's, and it is
30
+ * wide enough without swallowing the gap between two parallel wires.
31
+ */
32
+ const SIGNAL_EDGE_INTERACTION_WIDTH = 16;
33
+ /** The dash and gap of the flowing overlay, in px. */
34
+ const FLOW_DASH = "3 8";
35
+ /** A pale mix of the wire's own colour: the same signal, not a second one. */
36
+ function flowHighlight(stroke) {
37
+ return `color-mix(in oklch, ${stroke} 55%, var(--cue-fg))`;
38
+ }
39
+ /**
40
+ * A wire between two nodes, drawn as three paths.
41
+ *
42
+ * 1. **The wire.** A bezier in the tone's colour, thin and half-lit at rest.
43
+ * 2. **The hit path.** Sixteen invisible pixels of it, because nobody can click
44
+ * 1.6px. `BaseEdge` draws this one, and the edge label, for free.
45
+ * 3. **The pulse.** Only while `data.live` — a pale dashed overlay of the same
46
+ * colour, marching along the wire. This is the only animation in the group,
47
+ * it carries no information the opacity does not, and `flow.css` stops it
48
+ * dead under `prefers-reduced-motion`.
49
+ *
50
+ * State is read from props rather than from a store on purpose: an edge that
51
+ * subscribed to "is this route live" would re-render on every frame of a 40Hz
52
+ * telemetry feed, times the number of edges. The host decides when the answer
53
+ * changed; this component only draws it. It also means the component is a pure
54
+ * function of its props — no hooks, no context, no canvas needed to test it.
55
+ *
56
+ * Selection outranks everything, including the pulse: two loud treatments on one
57
+ * wire read as neither.
58
+ *
59
+ * @example
60
+ * const edges = [{ id: "r1", source: "s1", target: "m1", type: "signal", data: { live: true } }];
61
+ * <ReactFlow edges={edges} edgeTypes={theme.edgeTypes} />
62
+ */
63
+ function SignalEdge({ id, sourceX, sourceY, sourcePosition, targetX, targetY, targetPosition, selected, data, style, markerStart, markerEnd, interactionWidth = 16, label, labelStyle, labelShowBg, labelBgStyle, labelBgPadding, labelBgBorderRadius }) {
64
+ const [path, labelX, labelY] = getBezierPath({
65
+ sourceX,
66
+ sourceY,
67
+ sourcePosition,
68
+ targetX,
69
+ targetY,
70
+ targetPosition
71
+ });
72
+ const muted = data?.muted === true;
73
+ const live = data?.live === true && !muted && selected !== true;
74
+ const stroke = selected === true ? SELECTED_COLOR : muted ? MUTED_COLOR : TONE_COLORS[data?.tone ?? "accent"];
75
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(BaseEdge, {
76
+ id,
77
+ path,
78
+ markerStart,
79
+ markerEnd,
80
+ interactionWidth,
81
+ label,
82
+ labelX,
83
+ labelY,
84
+ labelStyle,
85
+ labelShowBg,
86
+ labelBgStyle,
87
+ labelBgPadding,
88
+ labelBgBorderRadius,
89
+ style: {
90
+ stroke,
91
+ strokeWidth: selected === true ? 2.4 : muted ? 1 : 1.6,
92
+ opacity: selected === true || live ? 1 : muted ? .4 : .6,
93
+ ...style
94
+ }
95
+ }), live ? /* @__PURE__ */ jsx("path", {
96
+ d: path,
97
+ fill: "none",
98
+ pointerEvents: "none",
99
+ className: SIGNAL_EDGE_FLOW_CLASS,
100
+ style: {
101
+ stroke: flowHighlight(stroke),
102
+ strokeWidth: 1.9,
103
+ strokeDasharray: FLOW_DASH
104
+ }
105
+ }) : null] });
106
+ }
107
+ //#endregion
108
+ export { SIGNAL_EDGE_FLOW_CLASS, SIGNAL_EDGE_INTERACTION_WIDTH, SignalEdge };
@@ -0,0 +1,69 @@
1
+ import { ResolvedMode } from "../system/theme-provider.js";
2
+ import { FlowNodeTone } from "./_frame.js";
3
+ import { SignalEdge } from "./signal-edge.js";
4
+ import * as React from "react";
5
+ //#region src/flow/use-flow-theme.d.ts
6
+ /**
7
+ * React Flow paints its own chrome — edges, handles, controls, the minimap, the
8
+ * selection box — from a documented set of `--xy-*` custom properties, each one
9
+ * consulted before the library's built-in default. Mapping that set onto this
10
+ * system's tokens is the whole theme: no wrapper components, no props threaded
11
+ * through a graph, and a theme, mode or density switch that costs nothing
12
+ * because every value is a *reference*, re-resolved by the browser.
13
+ *
14
+ * The map is published two ways, and they are checked against each other
15
+ * (`test/flow/flow-css.test.ts`):
16
+ *
17
+ * - as this object, to spread on the canvas: `<ReactFlow style={theme.style}>`;
18
+ * - as the `.react-flow` block of `flow.css`, for apps that would rather import
19
+ * a stylesheet than thread a prop.
20
+ *
21
+ * Either is enough. Both is harmless.
22
+ */
23
+ declare const FLOW_THEME_VARIABLES: Readonly<Record<string, string>>;
24
+ interface FlowTheme {
25
+ /**
26
+ * The resolved mode, for `<ReactFlow colorMode>`.
27
+ *
28
+ * Only a fallback: with {@link FlowTheme.style} spread (or `flow.css`
29
+ * imported) every value the library would pick from its own light/dark
30
+ * defaults has already been overridden. It costs one prop to be right anyway
31
+ * for the one that has not.
32
+ */
33
+ colorMode: ResolvedMode;
34
+ /** The `--xy-*` token map. Spread on `<ReactFlow style>`. */
35
+ style: Readonly<Record<string, string>>;
36
+ /** `{ signal: SignalEdge }`, stable across renders. */
37
+ edgeTypes: Readonly<Record<"signal", typeof SignalEdge>>;
38
+ /** `{ type: "signal", interactionWidth }`, stable across renders. */
39
+ defaultEdgeOptions: Readonly<{
40
+ type: "signal";
41
+ interactionWidth: number;
42
+ }>;
43
+ /** Frame colour per node kind, for a node's own `style`. */
44
+ nodeStyles: Readonly<Record<FlowNodeTone, React.CSSProperties>>;
45
+ }
46
+ /**
47
+ * Everything a `<ReactFlow>` needs to look like it belongs to this system.
48
+ *
49
+ * @example
50
+ * const theme = useFlowTheme();
51
+ * <ReactFlow
52
+ * nodes={nodes}
53
+ * edges={edges}
54
+ * nodeTypes={nodeTypes}
55
+ * edgeTypes={theme.edgeTypes}
56
+ * defaultEdgeOptions={theme.defaultEdgeOptions}
57
+ * colorMode={theme.colorMode}
58
+ * style={theme.style}
59
+ * >
60
+ * <FlowBackground />
61
+ * <FlowControls />
62
+ * </ReactFlow>
63
+ * @example
64
+ * // Colour a whole class of nodes at once — the cards inherit the frame.
65
+ * const nodes = inputs.map((input) => ({ ...input, style: theme.nodeStyles.input }));
66
+ */
67
+ declare function useFlowTheme(): FlowTheme;
68
+ //#endregion
69
+ export { FLOW_THEME_VARIABLES, FlowTheme, useFlowTheme };
@@ -0,0 +1,109 @@
1
+ "use client";
2
+ import { ThemeContext } from "../system/theme-provider.js";
3
+ import { FLOW_NODE_FRAME_PROPERTY, flowFrameColor } from "./_frame.js";
4
+ import { SignalEdge } from "./signal-edge.js";
5
+ import * as React from "react";
6
+ //#region src/flow/use-flow-theme.ts
7
+ /**
8
+ * React Flow paints its own chrome — edges, handles, controls, the minimap, the
9
+ * selection box — from a documented set of `--xy-*` custom properties, each one
10
+ * consulted before the library's built-in default. Mapping that set onto this
11
+ * system's tokens is the whole theme: no wrapper components, no props threaded
12
+ * through a graph, and a theme, mode or density switch that costs nothing
13
+ * because every value is a *reference*, re-resolved by the browser.
14
+ *
15
+ * The map is published two ways, and they are checked against each other
16
+ * (`test/flow/flow-css.test.ts`):
17
+ *
18
+ * - as this object, to spread on the canvas: `<ReactFlow style={theme.style}>`;
19
+ * - as the `.react-flow` block of `flow.css`, for apps that would rather import
20
+ * a stylesheet than thread a prop.
21
+ *
22
+ * Either is enough. Both is harmless.
23
+ */
24
+ const FLOW_THEME_VARIABLES = Object.freeze({
25
+ "--xy-background-color": "var(--cue-bg)",
26
+ "--xy-background-pattern-color": "var(--cue-surface-2)",
27
+ "--xy-edge-stroke": "var(--cue-border-strong)",
28
+ "--xy-edge-stroke-width": "1.5",
29
+ "--xy-edge-stroke-selected": "var(--cue-fg)",
30
+ "--xy-connectionline-stroke": "var(--cue-accent)",
31
+ "--xy-connectionline-stroke-width": "1.5",
32
+ "--xy-edge-label-background-color": "var(--cue-surface-2)",
33
+ "--xy-edge-label-color": "var(--cue-fg)",
34
+ "--xy-handle-background-color": "var(--cue-accent)",
35
+ "--xy-handle-border-color": "var(--cue-bg)",
36
+ "--xy-node-background-color": "var(--cue-surface-1)",
37
+ "--xy-node-border": "1px solid var(--cue-border)",
38
+ "--xy-node-border-radius": "var(--cue-radius-surface)",
39
+ "--xy-node-color": "var(--cue-fg)",
40
+ "--xy-node-group-background-color": "var(--cue-surface-2)",
41
+ "--xy-node-boxshadow-hover": "0 0 0 1px var(--cue-border-strong)",
42
+ "--xy-node-boxshadow-selected": "0 0 0 1px var(--cue-fg)",
43
+ "--xy-controls-button-background-color": "var(--cue-surface-2)",
44
+ "--xy-controls-button-background-color-hover": "var(--cue-surface-3)",
45
+ "--xy-controls-button-color": "var(--cue-fg-muted)",
46
+ "--xy-controls-button-color-hover": "var(--cue-accent)",
47
+ "--xy-controls-button-border-color": "var(--cue-border)",
48
+ "--xy-controls-box-shadow": "0 8px 24px rgba(0, 0, 0, 0.4)",
49
+ "--xy-minimap-background-color": "var(--cue-surface-1)",
50
+ "--xy-minimap-mask-background-color": "color-mix(in oklch, var(--cue-bg) 70%, transparent)",
51
+ "--xy-minimap-mask-stroke-color": "var(--cue-border)",
52
+ "--xy-minimap-node-background-color": "var(--cue-surface-3)",
53
+ "--xy-minimap-node-stroke-color": "var(--cue-border)",
54
+ "--xy-selection-background-color": "var(--cue-accent-soft)",
55
+ "--xy-selection-border": "1px dashed var(--cue-accent)",
56
+ "--xy-resize-background-color": "var(--cue-accent)",
57
+ "--xy-attribution-background-color": "color-mix(in oklch, var(--cue-bg) 70%, transparent)"
58
+ });
59
+ /** Frame colour per node kind, ready to put on a React Flow node's `style`. */
60
+ const NODE_STYLES = Object.freeze({
61
+ input: { [FLOW_NODE_FRAME_PROPERTY]: flowFrameColor("input") },
62
+ output: { [FLOW_NODE_FRAME_PROPERTY]: flowFrameColor("output") },
63
+ processing: { [FLOW_NODE_FRAME_PROPERTY]: flowFrameColor("processing") }
64
+ });
65
+ /**
66
+ * `edgeTypes` for `<ReactFlow>`.
67
+ *
68
+ * A module constant, not a fresh object: React Flow re-registers every edge when
69
+ * this changes identity, and warns in the console about exactly this mistake.
70
+ */
71
+ const EDGE_TYPES = Object.freeze({ signal: SignalEdge });
72
+ /** `defaultEdgeOptions`: every edge is a signal edge unless it says otherwise. */
73
+ const DEFAULT_EDGE_OPTIONS = Object.freeze({
74
+ type: "signal",
75
+ interactionWidth: 16
76
+ });
77
+ /**
78
+ * Everything a `<ReactFlow>` needs to look like it belongs to this system.
79
+ *
80
+ * @example
81
+ * const theme = useFlowTheme();
82
+ * <ReactFlow
83
+ * nodes={nodes}
84
+ * edges={edges}
85
+ * nodeTypes={nodeTypes}
86
+ * edgeTypes={theme.edgeTypes}
87
+ * defaultEdgeOptions={theme.defaultEdgeOptions}
88
+ * colorMode={theme.colorMode}
89
+ * style={theme.style}
90
+ * >
91
+ * <FlowBackground />
92
+ * <FlowControls />
93
+ * </ReactFlow>
94
+ * @example
95
+ * // Colour a whole class of nodes at once — the cards inherit the frame.
96
+ * const nodes = inputs.map((input) => ({ ...input, style: theme.nodeStyles.input }));
97
+ */
98
+ function useFlowTheme() {
99
+ const colorMode = React.useContext(ThemeContext)?.resolvedMode ?? "dark";
100
+ return React.useMemo(() => ({
101
+ colorMode,
102
+ style: FLOW_THEME_VARIABLES,
103
+ edgeTypes: EDGE_TYPES,
104
+ defaultEdgeOptions: DEFAULT_EDGE_OPTIONS,
105
+ nodeStyles: NODE_STYLES
106
+ }), [colorMode]);
107
+ }
108
+ //#endregion
109
+ export { FLOW_THEME_VARIABLES, useFlowTheme };
@@ -0,0 +1,164 @@
1
+ import { ClassProp, VariantProps } from "../lib/cva.js";
2
+ //#region src/forms/_chassis.d.ts
3
+ /**
4
+ * The rung of the density control ladder a form control sits on.
5
+ *
6
+ * Named `FormControlSize` rather than `ControlSize` because
7
+ * `@cueplusplus/ui/system` already exports a `ControlSize` for
8
+ * `useControlHeight`, and the root barrel re-exports both.
9
+ */
10
+ type FormControlSize = "sm" | "md" | "lg";
11
+ /**
12
+ * Everything the recessed control chassis paints except the box itself.
13
+ *
14
+ * Split out from the size rung so controls that own their own geometry — a
15
+ * `<textarea>` that must grow, a `NumberField.Group` that packs two buttons and
16
+ * an input into one rim — can reuse the surface without fighting a height or a
17
+ * horizontal padding they do not want.
18
+ *
19
+ * Inputs are **recessed**: `bg-sunken` sets them *into* the panel rather than
20
+ * raising them off it, which is the portfolio-wide convention for anything the
21
+ * user types into.
22
+ *
23
+ * **Focus is one signal, not two.** The rim walks one rung up the border ladder
24
+ * on `:focus` — `border-border` to `border-border-strong` — and `:focus-visible`
25
+ * adds a single 2px outline, pulled back over that rim with
26
+ * `-outline-offset-1` so it sits flush against the control instead of floating
27
+ * a pixel clear of it. The recipe this replaced painted a saturated accent rim
28
+ * *and* an offset accent ring simultaneously, which in a dark, dense console
29
+ * reads as an error or a selection rather than as "the caret is here". No
30
+ * shipping system draws both: Carbon and Radix each draw one flush ring, and
31
+ * shadcn moved off the offset-ring default it used to ship.
32
+ *
33
+ * Flush is also the cheap way to stay correct. WCAG 2.4.13 accepts a 2px
34
+ * perimeter only when it touches the component's own outer edge; an indicator
35
+ * inset further, floating on a gap, has to be 3px thick to cover the same area.
36
+ * And because an outline is painted outside the layout box, none of this moves
37
+ * a control by a pixel or reflows the row it sits in.
38
+ *
39
+ * There is no quieter pointer path to fall back on, which is why the single
40
+ * treatment has to be quiet itself: every engine puts typing surfaces on the
41
+ * `:focus-visible` allowlist, so a text input matches it on a mouse click just
42
+ * as it does on Tab. Only the non-typing controls that ride this chassis — the
43
+ * `Select` trigger, the date triggers — actually distinguish the two.
44
+ *
45
+ * `--cue-focus`, not `--cue-accent`. Every theme ships both roles, and keeping
46
+ * them separable is what WCAG 1.4.11 needs: one role whose job is "read at 3:1
47
+ * against the surface behind the ring", independent of the role whose job is
48
+ * "look like the brand". Seventeen of the twenty theme blocks still set the two
49
+ * to the same value, so there the separation costs nothing on screen — but three
50
+ * light presets can no longer afford it. luma.light, venu.light and hivehub.light
51
+ * each read below 3:1 against surfaces a field actually sits on (luma.light as
52
+ * low as 2.45, and against four of its five grounds), so each now carries its
53
+ * own ring — the accent's hue stepped darker — while the accent itself stays
54
+ * put. Measured across all five grounds a field can land on — the sunken fill,
55
+ * the page background and the three surface rungs — every preset now clears
56
+ * 3:1, the thinnest being signal.light's 3.27. Pointing the ring at the focus
57
+ * role is what made that retune possible without repainting every accent
58
+ * surface in the theme.
59
+ *
60
+ * (Named in prose rather than as `--cue-*` on purpose: `tokensUsed` in the
61
+ * published manifest is scanned out of this file's text, so spelling the other
62
+ * four grounds as tokens would have every control on this chassis claim it
63
+ * paints a surface it never touches.)
64
+ *
65
+ * `--cue-danger` carries the same obligation on an invalid field, where it is
66
+ * the ring rather than only the rim — a 1.4.11 surface, not purely a semantic
67
+ * colour. It needed no retune: the red already clears 3:1 on all five grounds in
68
+ * every preset, thinnest at terminal.dark's 3.13. Both floors are held by
69
+ * `test/theming/contrast.test.ts`, which measures every block on every ground —
70
+ * the guard that was missing when these three shipped a ring nobody could see.
71
+ *
72
+ * The ring is an `outline` and never a `box-shadow`: `forced-colors: active`
73
+ * discards box shadows outright and repaints outlines in the user's own
74
+ * highlight colour, so an outline is the only indicator that survives
75
+ * high-contrast mode.
76
+ *
77
+ * **Invalid and focused: the ring turns red, it does not sit beside the rim.**
78
+ * `data-[invalid]:border-danger` does win the cascade over the focus rim, but
79
+ * winning it changes nothing on screen: an outline's band runs from
80
+ * `border-edge + offset` outward by its own width, so a 2px ring at
81
+ * `-outline-offset-1` spans from one pixel inside the border box to one pixel
82
+ * outside it — the whole 1px rim — and outlines paint after borders. Measured
83
+ * in both engines: an invalid control paints 456 danger pixels at rest and zero
84
+ * while focused. Pushing the ring off the rim would mean either floating it on
85
+ * a gap (WCAG 2.4.13 then wants 3px, and the halo is back) or insetting it
86
+ * further (which buries it deeper). So the ring takes the danger colour instead
87
+ * — `data-[invalid]:focus-visible:outline-danger` — which is the ruling shadcn
88
+ * and Radix both reached: the border stays danger, the ring communicates focus,
89
+ * and red communicates invalid whichever of the two is painting.
90
+ *
91
+ * The compound modifier outranks the plain one on specificity — an attribute
92
+ * selector and a pseudo-class against one pseudo-class — so its position in
93
+ * Tailwind's utility order cannot decide it. `focus-visible:outline-solid` and
94
+ * `focus-visible:outline-2` still supply the style and the width in both cases,
95
+ * which is why only the colour is restated.
96
+ *
97
+ * `focus-visible:outline-solid` re-declares the outline style the sibling
98
+ * `outline-none` switched off — see the note on `buttonChassis`.
99
+ */
100
+ declare const controlSurface = "w-full rounded-(--radius-control) border border-border bg-sunken font-mono text-fg placeholder:text-fg-subtle outline-none focus:border-border-strong focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-(--cue-focus) disabled:opacity-40 data-[disabled]:opacity-40 data-[invalid]:border-danger data-[invalid]:focus-visible:outline-danger";
101
+ /**
102
+ * The full recessed-control recipe, one variant per rung of the control ladder.
103
+ *
104
+ * Height, horizontal padding and text size move together — a control that is
105
+ * one rung shorter also needs to be one rung tighter and one rung smaller, or
106
+ * the glyphs collide with the rim.
107
+ *
108
+ * @example
109
+ * <input className={cn(controlVariants({ size: "sm" }), className)} />
110
+ */
111
+ declare const controlVariants: (props?: ({
112
+ size?: "sm" | "md" | "lg" | null | undefined;
113
+ } & ClassProp) | undefined) => string;
114
+ /** `size` prop shape shared by every control that rides the chassis. */
115
+ type ControlVariantProps = VariantProps<typeof controlVariants>;
116
+ /**
117
+ * The chassis at its default `md` rung — the exact class list the spec pins for
118
+ * a plain form control. Kept as a derived constant, never a second copy, so the
119
+ * recipe cannot drift from {@link controlVariants}.
120
+ */
121
+ declare const controlClasses: string;
122
+ /**
123
+ * Ink for a control nested inside something that already paints the rim (an
124
+ * `InputGroup`, a `NumberField.Group`).
125
+ *
126
+ * Strips the box entirely — no border, no fill, no padding, no height — and
127
+ * inherits the font size from the wrapper so the two never disagree about which
128
+ * density rung they are on.
129
+ */
130
+ declare const bareControlClasses = "min-w-0 flex-1 border-0 bg-transparent p-0 font-mono text-[length:inherit] text-fg placeholder:text-fg-subtle outline-none disabled:opacity-40";
131
+ /**
132
+ * Focus feedback for a wrapper that owns the rim on behalf of an inner control.
133
+ *
134
+ * A `<div>` never matches `:focus-visible` itself, so a group has to read the
135
+ * state off its descendants — and the two halves of {@link controlSurface}'s
136
+ * treatment want two different questions asked of them.
137
+ *
138
+ * The rim follows plain `:focus-within`: anything focused inside strengthens the
139
+ * border. That is the quiet half, and it is the right answer however the focus
140
+ * arrived. The ring follows `:has(:focus-visible)`, so it paints only when the
141
+ * descendant that has focus is itself showing a focus ring. Using
142
+ * `:focus-within` for *both* — the recipe this replaced — is what made a mouse
143
+ * click inside a `SearchInput` or a `NumberField` light the whole cluster up
144
+ * with a saturated block, the single loudest thing in a console form.
145
+ *
146
+ * `:has()` is Baseline — Chrome 105, Safari 15.4, Firefox 121 — so no
147
+ * `:focus-within` fallback layer is needed at the floor this library supports.
148
+ *
149
+ * Geometry matches {@link controlSurface} exactly, down to the negative offset:
150
+ * a grouped field and a plain one are the same control, and a rim that differed
151
+ * by a pixel between them would say otherwise. The inner control stays ringless
152
+ * — see {@link bareControlClasses} — because two concentric rings on one field
153
+ * is the halo this treatment exists to remove.
154
+ *
155
+ * The invalid ruling comes with the geometry, for the same reason: at
156
+ * `-outline-offset-1` the ring covers the rim it is drawn over, so an invalid
157
+ * group in focus recolours the ring rather than pretending the red under it is
158
+ * still visible. `data-invalid` is read off the wrapper, which is where Base
159
+ * UI's `Field` stamps it and where the group already takes
160
+ * `data-[invalid]:border-danger` from {@link controlVariants}.
161
+ */
162
+ declare const controlGroupFocusClasses = "focus-within:border-border-strong has-focus-visible:outline-2 has-focus-visible:outline-solid has-focus-visible:-outline-offset-1 has-focus-visible:outline-(--cue-focus) data-[invalid]:has-focus-visible:outline-danger";
163
+ //#endregion
164
+ export { ControlVariantProps, FormControlSize, bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants };
@@ -0,0 +1,159 @@
1
+ import { cva } from "../lib/cva.js";
2
+ //#region src/forms/_chassis.ts
3
+ /**
4
+ * Everything the recessed control chassis paints except the box itself.
5
+ *
6
+ * Split out from the size rung so controls that own their own geometry — a
7
+ * `<textarea>` that must grow, a `NumberField.Group` that packs two buttons and
8
+ * an input into one rim — can reuse the surface without fighting a height or a
9
+ * horizontal padding they do not want.
10
+ *
11
+ * Inputs are **recessed**: `bg-sunken` sets them *into* the panel rather than
12
+ * raising them off it, which is the portfolio-wide convention for anything the
13
+ * user types into.
14
+ *
15
+ * **Focus is one signal, not two.** The rim walks one rung up the border ladder
16
+ * on `:focus` — `border-border` to `border-border-strong` — and `:focus-visible`
17
+ * adds a single 2px outline, pulled back over that rim with
18
+ * `-outline-offset-1` so it sits flush against the control instead of floating
19
+ * a pixel clear of it. The recipe this replaced painted a saturated accent rim
20
+ * *and* an offset accent ring simultaneously, which in a dark, dense console
21
+ * reads as an error or a selection rather than as "the caret is here". No
22
+ * shipping system draws both: Carbon and Radix each draw one flush ring, and
23
+ * shadcn moved off the offset-ring default it used to ship.
24
+ *
25
+ * Flush is also the cheap way to stay correct. WCAG 2.4.13 accepts a 2px
26
+ * perimeter only when it touches the component's own outer edge; an indicator
27
+ * inset further, floating on a gap, has to be 3px thick to cover the same area.
28
+ * And because an outline is painted outside the layout box, none of this moves
29
+ * a control by a pixel or reflows the row it sits in.
30
+ *
31
+ * There is no quieter pointer path to fall back on, which is why the single
32
+ * treatment has to be quiet itself: every engine puts typing surfaces on the
33
+ * `:focus-visible` allowlist, so a text input matches it on a mouse click just
34
+ * as it does on Tab. Only the non-typing controls that ride this chassis — the
35
+ * `Select` trigger, the date triggers — actually distinguish the two.
36
+ *
37
+ * `--cue-focus`, not `--cue-accent`. Every theme ships both roles, and keeping
38
+ * them separable is what WCAG 1.4.11 needs: one role whose job is "read at 3:1
39
+ * against the surface behind the ring", independent of the role whose job is
40
+ * "look like the brand". Seventeen of the twenty theme blocks still set the two
41
+ * to the same value, so there the separation costs nothing on screen — but three
42
+ * light presets can no longer afford it. luma.light, venu.light and hivehub.light
43
+ * each read below 3:1 against surfaces a field actually sits on (luma.light as
44
+ * low as 2.45, and against four of its five grounds), so each now carries its
45
+ * own ring — the accent's hue stepped darker — while the accent itself stays
46
+ * put. Measured across all five grounds a field can land on — the sunken fill,
47
+ * the page background and the three surface rungs — every preset now clears
48
+ * 3:1, the thinnest being signal.light's 3.27. Pointing the ring at the focus
49
+ * role is what made that retune possible without repainting every accent
50
+ * surface in the theme.
51
+ *
52
+ * (Named in prose rather than as `--cue-*` on purpose: `tokensUsed` in the
53
+ * published manifest is scanned out of this file's text, so spelling the other
54
+ * four grounds as tokens would have every control on this chassis claim it
55
+ * paints a surface it never touches.)
56
+ *
57
+ * `--cue-danger` carries the same obligation on an invalid field, where it is
58
+ * the ring rather than only the rim — a 1.4.11 surface, not purely a semantic
59
+ * colour. It needed no retune: the red already clears 3:1 on all five grounds in
60
+ * every preset, thinnest at terminal.dark's 3.13. Both floors are held by
61
+ * `test/theming/contrast.test.ts`, which measures every block on every ground —
62
+ * the guard that was missing when these three shipped a ring nobody could see.
63
+ *
64
+ * The ring is an `outline` and never a `box-shadow`: `forced-colors: active`
65
+ * discards box shadows outright and repaints outlines in the user's own
66
+ * highlight colour, so an outline is the only indicator that survives
67
+ * high-contrast mode.
68
+ *
69
+ * **Invalid and focused: the ring turns red, it does not sit beside the rim.**
70
+ * `data-[invalid]:border-danger` does win the cascade over the focus rim, but
71
+ * winning it changes nothing on screen: an outline's band runs from
72
+ * `border-edge + offset` outward by its own width, so a 2px ring at
73
+ * `-outline-offset-1` spans from one pixel inside the border box to one pixel
74
+ * outside it — the whole 1px rim — and outlines paint after borders. Measured
75
+ * in both engines: an invalid control paints 456 danger pixels at rest and zero
76
+ * while focused. Pushing the ring off the rim would mean either floating it on
77
+ * a gap (WCAG 2.4.13 then wants 3px, and the halo is back) or insetting it
78
+ * further (which buries it deeper). So the ring takes the danger colour instead
79
+ * — `data-[invalid]:focus-visible:outline-danger` — which is the ruling shadcn
80
+ * and Radix both reached: the border stays danger, the ring communicates focus,
81
+ * and red communicates invalid whichever of the two is painting.
82
+ *
83
+ * The compound modifier outranks the plain one on specificity — an attribute
84
+ * selector and a pseudo-class against one pseudo-class — so its position in
85
+ * Tailwind's utility order cannot decide it. `focus-visible:outline-solid` and
86
+ * `focus-visible:outline-2` still supply the style and the width in both cases,
87
+ * which is why only the colour is restated.
88
+ *
89
+ * `focus-visible:outline-solid` re-declares the outline style the sibling
90
+ * `outline-none` switched off — see the note on `buttonChassis`.
91
+ */
92
+ const controlSurface = "w-full rounded-(--radius-control) border border-border bg-sunken font-mono text-fg placeholder:text-fg-subtle outline-none focus:border-border-strong focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-(--cue-focus) disabled:opacity-40 data-[disabled]:opacity-40 data-[invalid]:border-danger data-[invalid]:focus-visible:outline-danger";
93
+ /**
94
+ * The full recessed-control recipe, one variant per rung of the control ladder.
95
+ *
96
+ * Height, horizontal padding and text size move together — a control that is
97
+ * one rung shorter also needs to be one rung tighter and one rung smaller, or
98
+ * the glyphs collide with the rim.
99
+ *
100
+ * @example
101
+ * <input className={cn(controlVariants({ size: "sm" }), className)} />
102
+ */
103
+ const controlVariants = cva(controlSurface, {
104
+ variants: { size: {
105
+ sm: "h-control-sm px-(--cue-space-3) text-(length:--cue-text-label)",
106
+ md: "h-control-md px-(--cue-space-4) text-(length:--cue-text-ui)",
107
+ lg: "h-control-lg px-(--cue-space-5) text-(length:--cue-text-body)"
108
+ } },
109
+ defaultVariants: { size: "md" }
110
+ });
111
+ /**
112
+ * The chassis at its default `md` rung — the exact class list the spec pins for
113
+ * a plain form control. Kept as a derived constant, never a second copy, so the
114
+ * recipe cannot drift from {@link controlVariants}.
115
+ */
116
+ const controlClasses = controlVariants();
117
+ /**
118
+ * Ink for a control nested inside something that already paints the rim (an
119
+ * `InputGroup`, a `NumberField.Group`).
120
+ *
121
+ * Strips the box entirely — no border, no fill, no padding, no height — and
122
+ * inherits the font size from the wrapper so the two never disagree about which
123
+ * density rung they are on.
124
+ */
125
+ const bareControlClasses = "min-w-0 flex-1 border-0 bg-transparent p-0 font-mono text-[length:inherit] text-fg placeholder:text-fg-subtle outline-none disabled:opacity-40";
126
+ /**
127
+ * Focus feedback for a wrapper that owns the rim on behalf of an inner control.
128
+ *
129
+ * A `<div>` never matches `:focus-visible` itself, so a group has to read the
130
+ * state off its descendants — and the two halves of {@link controlSurface}'s
131
+ * treatment want two different questions asked of them.
132
+ *
133
+ * The rim follows plain `:focus-within`: anything focused inside strengthens the
134
+ * border. That is the quiet half, and it is the right answer however the focus
135
+ * arrived. The ring follows `:has(:focus-visible)`, so it paints only when the
136
+ * descendant that has focus is itself showing a focus ring. Using
137
+ * `:focus-within` for *both* — the recipe this replaced — is what made a mouse
138
+ * click inside a `SearchInput` or a `NumberField` light the whole cluster up
139
+ * with a saturated block, the single loudest thing in a console form.
140
+ *
141
+ * `:has()` is Baseline — Chrome 105, Safari 15.4, Firefox 121 — so no
142
+ * `:focus-within` fallback layer is needed at the floor this library supports.
143
+ *
144
+ * Geometry matches {@link controlSurface} exactly, down to the negative offset:
145
+ * a grouped field and a plain one are the same control, and a rim that differed
146
+ * by a pixel between them would say otherwise. The inner control stays ringless
147
+ * — see {@link bareControlClasses} — because two concentric rings on one field
148
+ * is the halo this treatment exists to remove.
149
+ *
150
+ * The invalid ruling comes with the geometry, for the same reason: at
151
+ * `-outline-offset-1` the ring covers the rim it is drawn over, so an invalid
152
+ * group in focus recolours the ring rather than pretending the red under it is
153
+ * still visible. `data-invalid` is read off the wrapper, which is where Base
154
+ * UI's `Field` stamps it and where the group already takes
155
+ * `data-[invalid]:border-danger` from {@link controlVariants}.
156
+ */
157
+ const controlGroupFocusClasses = "focus-within:border-border-strong has-focus-visible:outline-2 has-focus-visible:outline-solid has-focus-visible:-outline-offset-1 has-focus-visible:outline-(--cue-focus) data-[invalid]:has-focus-visible:outline-danger";
158
+ //#endregion
159
+ export { bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants };