@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,66 @@
1
+ import { clampChroma, converter, formatHex, formatHex8, inGamut, parse } from "culori";
2
+ //#region src/color/_convert.ts
3
+ const toOklch = converter("oklch");
4
+ const srgb = inGamut("rgb");
5
+ /** Round to `digits` and drop trailing zeros, so `0.70000` prints as `0.7`. */
6
+ function round(value, digits) {
7
+ return String(Number(value.toFixed(digits)));
8
+ }
9
+ /**
10
+ * Convert any CSS colour string to `#rrggbb` (or `#rrggbbaa` when it carries
11
+ * alpha).
12
+ *
13
+ * The bridge into React Aria's colour parts, which only parse sRGB notations —
14
+ * hand them an `oklch()` token value and they throw. Colours outside the sRGB
15
+ * gamut have their **chroma** pulled in rather than their channels clipped:
16
+ * clipping `oklch(0.7 0.4 30)` gives pure red, losing the lightness the author
17
+ * chose, while clamping keeps it at `#ff6551`.
18
+ *
19
+ * @param input - Any CSS colour string.
20
+ * @returns The lower-case hex string, or `null` if the input is not a colour.
21
+ * @example
22
+ * toHexString("oklch(0.7 0.15 30)") // "#ed7665"
23
+ */
24
+ function toHexString(input) {
25
+ const parsed = parse(input);
26
+ if (parsed === void 0) return null;
27
+ const inSrgb = srgb(parsed) ? parsed : clampChroma(parsed, "oklch", "rgb");
28
+ const alpha = parsed.alpha;
29
+ return alpha === void 0 || alpha >= 1 ? formatHex(inSrgb) : formatHex8(inSrgb);
30
+ }
31
+ /**
32
+ * Re-print a colour in one of the two notations the suite writes.
33
+ *
34
+ * The oklch form is emitted at the precision a round trip needs — four decimals
35
+ * of lightness and chroma, two of hue — which is exactly enough for
36
+ * `toHexString(formatColorString(hex, "oklch")) === hex` across the sRGB cube.
37
+ * An achromatic colour has no hue, so it prints `0` rather than `NaN`.
38
+ *
39
+ * @param input - Any CSS colour string.
40
+ * @param format - The notation to write.
41
+ * @returns The formatted colour, or `null` if the input is not a colour.
42
+ * @example
43
+ * formatColorString("#3fa9f5", "oklch") // "oklch(0.7083 0.1466 244.05)"
44
+ */
45
+ function formatColorString(input, format) {
46
+ const hex = toHexString(input);
47
+ if (hex === null) return null;
48
+ if (format === "hex") return hex;
49
+ const color = toOklch(parse(hex));
50
+ if (color === void 0) return null;
51
+ const body = `${round(color.l, 4)} ${round(color.c, 4)} ${round(color.h ?? 0, 2)}`;
52
+ const alpha = color.alpha;
53
+ return alpha === void 0 || alpha >= 1 ? `oklch(${body})` : `oklch(${body} / ${round(alpha, 3)})`;
54
+ }
55
+ /**
56
+ * Which notation a value is authored in, so a control can hand back what it was
57
+ * given instead of quietly rewriting a token file into hex.
58
+ *
59
+ * @param input - Any CSS colour string.
60
+ * @returns `"oklch"` for an `oklch()` value, `"hex"` for everything else.
61
+ */
62
+ function detectColorFormat(input) {
63
+ return /^\s*oklch\(/i.test(input) ? "oklch" : "hex";
64
+ }
65
+ //#endregion
66
+ export { detectColorFormat, formatColorString, toHexString };
@@ -0,0 +1,28 @@
1
+ import "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/color/_glyphs.tsx
4
+ /**
5
+ * Glyphs for the colour group.
6
+ *
7
+ * Drawn inline for the same reason as `forms/_glyphs.tsx`: one icon on one
8
+ * button should not put an icon dependency on the render path, and hand-set
9
+ * strokes stay hairline-thin at the 8–12px sizes console density asks for.
10
+ *
11
+ * @internal Not part of the public API.
12
+ */
13
+ /** An eyedropper: sample a colour from anywhere on the screen. */
14
+ function EyedropperGlyph(props) {
15
+ return /* @__PURE__ */ jsx("svg", {
16
+ viewBox: "0 0 16 16",
17
+ fill: "none",
18
+ stroke: "currentColor",
19
+ strokeWidth: "1.25",
20
+ strokeLinecap: "round",
21
+ strokeLinejoin: "round",
22
+ "aria-hidden": "true",
23
+ ...props,
24
+ children: /* @__PURE__ */ jsx("path", { d: "M10.5 2.5a1.8 1.8 0 0 1 2.5 2.5l-1.4 1.4 1 1-1.2 1.2-1-1-4.3 4.3-2.6.6.6-2.6 4.3-4.3-1-1L8.6 3.4l1 1z" })
25
+ });
26
+ }
27
+ //#endregion
28
+ export { EyedropperGlyph };
@@ -0,0 +1,15 @@
1
+ //#region src/color/_thumb.ts
2
+ /**
3
+ * The draggable puck shared by the colour area and every colour rail.
4
+ *
5
+ * The one place in this system where a ring is not a token colour: the thumb
6
+ * sits on top of arbitrary user colour, so it needs a light rim *and* a dark
7
+ * halo to stay visible against both ends of the spectrum. `--cue-fg` /
8
+ * `--cue-bg` supply the pair, which keeps it theme-driven without pretending a
9
+ * single token could do the job.
10
+ *
11
+ * @internal Not part of the public API.
12
+ */
13
+ const colorThumbClasses = "size-[0.875rem] rounded-full border-2 border-fg shadow-[0_0_0_1px_var(--cue-bg)] outline-none data-[focus-visible]:outline-2 data-[focus-visible]:outline-solid data-[focus-visible]:outline-offset-2 data-[focus-visible]:outline-accent data-[dragging]:scale-110 data-[disabled]:opacity-40";
14
+ //#endregion
15
+ export { colorThumbClasses };
@@ -0,0 +1,28 @@
1
+ import { toHexString } from "./_convert.js";
2
+ import { parseColor } from "react-aria-components";
3
+ //#region src/color/_value.ts
4
+ /**
5
+ * Turn whatever the caller passed into something React Aria can hold.
6
+ *
7
+ * React Aria parses `#rgb`, `rgb()`, `hsl()` and `hsb()` and *keeps the space
8
+ * it was given* — which matters, because a slider for `channel="hue"` only
9
+ * exists on an HSL or HSB colour. So the library gets first refusal: only when
10
+ * it cannot parse the string (an `oklch()` token, a named colour) does this
11
+ * fall back to converting through culori, which necessarily lands in sRGB.
12
+ *
13
+ * Converting unconditionally would be simpler and wrong: it would quietly turn
14
+ * every `hsl()` into a hex value and break the hue rail.
15
+ *
16
+ * @internal Not part of the public API.
17
+ */
18
+ function toAriaColor(value) {
19
+ if (typeof value !== "string") return value;
20
+ try {
21
+ return parseColor(value);
22
+ } catch {
23
+ const hex = toHexString(value);
24
+ return parseColor(hex ?? value);
25
+ }
26
+ }
27
+ //#endregion
28
+ export { toAriaColor };
@@ -0,0 +1,27 @@
1
+ import * as React from "react";
2
+ import { ColorAreaProps } from "react-aria-components";
3
+ //#region src/color/color-area.d.ts
4
+ interface ColorAreaProps$1 extends Omit<ColorAreaProps, "children"> {
5
+ /** Extra classes for the thumb. */
6
+ thumbClassName?: string;
7
+ }
8
+ /**
9
+ * The two-axis colour field — saturation against brightness, by default.
10
+ *
11
+ * Wraps React Aria's `ColorArea`, so the pointer maths, the two hidden range
12
+ * inputs that make it keyboard- and screen-reader-operable, and the gradient
13
+ * background are the library's. This layer adds the rim, the radius and the
14
+ * shared thumb.
15
+ *
16
+ * String values may be written in any notation this suite reads, `oklch()`
17
+ * included — React Aria only parses sRGB, so they are converted on the way in.
18
+ *
19
+ * `react-aria-components` is an **optional peer**: import this from
20
+ * `@cueplusplus/ui/color`.
21
+ *
22
+ * @example
23
+ * <ColorArea aria-label="Saturation and brightness" value={color} onChange={setColor} />
24
+ */
25
+ declare function ColorArea$1({ className, thumbClassName, value, defaultValue, ...areaProps }: ColorAreaProps$1): React.JSX.Element;
26
+ //#endregion
27
+ export { ColorArea$1 as ColorArea, ColorAreaProps$1 as ColorAreaProps };
@@ -0,0 +1,40 @@
1
+ "use client";
2
+ import { ariaClassName } from "../lib/aria-class.js";
3
+ import { colorThumbClasses } from "./_thumb.js";
4
+ import { toAriaColor } from "./_value.js";
5
+ import "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ import { ColorArea, ColorThumb } from "react-aria-components";
8
+ //#region src/color/color-area.tsx
9
+ /**
10
+ * The two-axis colour field — saturation against brightness, by default.
11
+ *
12
+ * Wraps React Aria's `ColorArea`, so the pointer maths, the two hidden range
13
+ * inputs that make it keyboard- and screen-reader-operable, and the gradient
14
+ * background are the library's. This layer adds the rim, the radius and the
15
+ * shared thumb.
16
+ *
17
+ * String values may be written in any notation this suite reads, `oklch()`
18
+ * included — React Aria only parses sRGB, so they are converted on the way in.
19
+ *
20
+ * `react-aria-components` is an **optional peer**: import this from
21
+ * `@cueplusplus/ui/color`.
22
+ *
23
+ * @example
24
+ * <ColorArea aria-label="Saturation and brightness" value={color} onChange={setColor} />
25
+ */
26
+ function ColorArea$1({ className, thumbClassName, value, defaultValue, ...areaProps }) {
27
+ return /* @__PURE__ */ jsx(ColorArea, {
28
+ "data-slot": "color-area",
29
+ className: ariaClassName("relative h-[9rem] w-full touch-none rounded-(--radius-control) border border-border outline-none data-[disabled]:opacity-40", className),
30
+ value: toAriaColor(value),
31
+ defaultValue: toAriaColor(defaultValue),
32
+ ...areaProps,
33
+ children: /* @__PURE__ */ jsx(ColorThumb, {
34
+ "data-slot": "color-thumb",
35
+ className: ariaClassName(colorThumbClasses, thumbClassName)
36
+ })
37
+ });
38
+ }
39
+ //#endregion
40
+ export { ColorArea$1 as ColorArea };
@@ -0,0 +1,32 @@
1
+ import { FormControlSize } from "../forms/_chassis.js";
2
+ import * as React from "react";
3
+ import { ColorFieldProps, InputProps } from "react-aria-components";
4
+ //#region src/color/color-field.d.ts
5
+ interface ColorFieldProps$1 extends Omit<ColorFieldProps, "children"> {
6
+ /** Rung of the control ladder. Defaults to `"md"`. */
7
+ size?: FormControlSize;
8
+ /** Extra classes for the input itself. */
9
+ inputClassName?: InputProps["className"];
10
+ }
11
+ /**
12
+ * A typed colour value — the whole colour as hex, or one channel as a number.
13
+ *
14
+ * Wraps React Aria's `ColorField`, so parsing, arrow-key stepping and the
15
+ * commit-on-blur behaviour are the library's; the input rides the same recessed
16
+ * chassis as every other text control.
17
+ *
18
+ * React Aria only parses sRGB notations, so it edits **hex**. For a field that
19
+ * also accepts `oklch()` — the notation this system's tokens are authored in —
20
+ * use `ColorPicker`, which owns the conversion.
21
+ *
22
+ * `react-aria-components` is an **optional peer**: import this from
23
+ * `@cueplusplus/ui/color`.
24
+ *
25
+ * @example
26
+ * <ColorField aria-label="Accent" value={color} onChange={setColor} />
27
+ * @example
28
+ * <ColorField aria-label="Red" channel="red" colorSpace="rgb" size="sm" />
29
+ */
30
+ declare function ColorField$1({ size, className, inputClassName, value, defaultValue, ...fieldProps }: ColorFieldProps$1): React.JSX.Element;
31
+ //#endregion
32
+ export { ColorField$1 as ColorField, ColorFieldProps$1 as ColorFieldProps };
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { controlVariants } from "../forms/_chassis.js";
4
+ import { ariaClassName } from "../lib/aria-class.js";
5
+ import { toAriaColor } from "./_value.js";
6
+ import "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ import { ColorField, Input } from "react-aria-components";
9
+ //#region src/color/color-field.tsx
10
+ /**
11
+ * A typed colour value — the whole colour as hex, or one channel as a number.
12
+ *
13
+ * Wraps React Aria's `ColorField`, so parsing, arrow-key stepping and the
14
+ * commit-on-blur behaviour are the library's; the input rides the same recessed
15
+ * chassis as every other text control.
16
+ *
17
+ * React Aria only parses sRGB notations, so it edits **hex**. For a field that
18
+ * also accepts `oklch()` — the notation this system's tokens are authored in —
19
+ * use `ColorPicker`, which owns the conversion.
20
+ *
21
+ * `react-aria-components` is an **optional peer**: import this from
22
+ * `@cueplusplus/ui/color`.
23
+ *
24
+ * @example
25
+ * <ColorField aria-label="Accent" value={color} onChange={setColor} />
26
+ * @example
27
+ * <ColorField aria-label="Red" channel="red" colorSpace="rgb" size="sm" />
28
+ */
29
+ function ColorField$1({ size, className, inputClassName, value, defaultValue, ...fieldProps }) {
30
+ return /* @__PURE__ */ jsx(ColorField, {
31
+ "data-slot": "color-field",
32
+ className: ariaClassName("inline-flex flex-col gap-(--cue-space-1)", className),
33
+ value: toAriaColor(value),
34
+ defaultValue: toAriaColor(defaultValue),
35
+ ...fieldProps,
36
+ children: /* @__PURE__ */ jsx(Input, {
37
+ "data-slot": "color-field-input",
38
+ className: ariaClassName(cn(controlVariants({ size }), "uppercase"), inputClassName)
39
+ })
40
+ });
41
+ }
42
+ //#endregion
43
+ export { ColorField$1 as ColorField };
@@ -0,0 +1,71 @@
1
+ import { ColorFormat } from "./_convert.js";
2
+ import { FormControlSize } from "../forms/_chassis.js";
3
+ import * as React from "react";
4
+ //#region src/color/color-picker.d.ts
5
+ interface ColorPickerProps {
6
+ /** The colour, in any notation this suite reads. Use with `onValueChange`. */
7
+ value?: string;
8
+ /** Initial colour for an uncontrolled picker. Defaults to `"#000000"`. */
9
+ defaultValue?: string;
10
+ /** Called with the new colour, written in the picker's output notation. */
11
+ onValueChange?: (value: string) => void;
12
+ /**
13
+ * Notation to write back. Defaults to the notation the current value arrived
14
+ * in — hand it an `oklch()` token and you get `oklch()` back, so editing a
15
+ * theme file never silently rewrites it into hex.
16
+ */
17
+ format?: ColorFormat;
18
+ /** Show the alpha rail and keep alpha in the output. Defaults to `false`. */
19
+ alpha?: boolean;
20
+ /** Accessible name for the trigger. Defaults to `"Color"`. */
21
+ label?: 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
+ /** Print the value beside the swatch on the trigger. Defaults to `true`. */
27
+ showValue?: boolean;
28
+ /** Name for the hidden input, when the picker is part of a form. */
29
+ name?: string;
30
+ /** Id forwarded to the trigger. */
31
+ id?: string;
32
+ /** Extra classes for the trigger. */
33
+ className?: string;
34
+ /** Extra classes for the popup surface. */
35
+ popupClassName?: string;
36
+ /** Open state, for a controlled popover. */
37
+ open?: boolean;
38
+ /** Initial open state. */
39
+ defaultOpen?: boolean;
40
+ /** Called when the popover opens or closes. */
41
+ onOpenChange?: (open: boolean) => void;
42
+ }
43
+ /**
44
+ * A colour, edited in a popover: two-axis area, hue rail, optional alpha rail,
45
+ * a text field that speaks hex *and* oklch, and an eyedropper where the browser
46
+ * has one.
47
+ *
48
+ * Composed from the React Aria colour parts rather than wrapping a single
49
+ * primitive, because no primitive owns the combination. Two decisions are this
50
+ * component's own:
51
+ *
52
+ * - **Notation in, notation out.** React Aria only parses sRGB; this system's
53
+ * tokens are authored in `oklch()`. The picker converts on both edges
54
+ * (culori), and writes back in the notation it was given unless `format` says
55
+ * otherwise. This is what makes it usable as the theme configurator's editor.
56
+ * - **Hue survives black.** The working colour is held as HSB and only re-read
57
+ * from the incoming string when that string changes for some *other* reason,
58
+ * so dragging the area down to black and back does not reset the hue — the
59
+ * defect every naive "derive state from the value" picker has.
60
+ *
61
+ * `react-aria-components` is an **optional peer**: import this from
62
+ * `@cueplusplus/ui/color`.
63
+ *
64
+ * @example
65
+ * <ColorPicker label="Accent" value={accent} onValueChange={setAccent} />
66
+ * @example
67
+ * <ColorPicker label="Scrim" value="oklch(0.2 0 0 / 0.55)" alpha format="oklch" />
68
+ */
69
+ declare function ColorPicker({ value, defaultValue, onValueChange, format, alpha, label, size, disabled, showValue, name, id, className, popupClassName, open, defaultOpen, onOpenChange }: ColorPickerProps): React.JSX.Element;
70
+ //#endregion
71
+ export { ColorPicker, ColorPickerProps };
@@ -0,0 +1,178 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { controlVariants } from "../forms/_chassis.js";
4
+ import { IconButton } from "../primitives/icon-button.js";
5
+ import { Popover } from "../overlays/popover.js";
6
+ import { detectColorFormat, formatColorString, toHexString } from "./_convert.js";
7
+ import { ColorArea as ColorArea$1 } from "./color-area.js";
8
+ import { EyedropperGlyph } from "./_glyphs.js";
9
+ import { ColorSlider as ColorSlider$1 } from "./color-slider.js";
10
+ import { ColorSwatch as ColorSwatch$1 } from "./color-swatch.js";
11
+ import * as React from "react";
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ import { parseColor } from "react-aria-components";
14
+ //#region src/color/color-picker.tsx
15
+ /** Fallback when a caller opens the picker with nothing selected. */
16
+ const FALLBACK_COLOR = "#000000";
17
+ /** Parse anything the suite reads into the HSB colour the parts work in. */
18
+ function toHsb(input) {
19
+ return parseColor(toHexString(input) ?? FALLBACK_COLOR).toFormat("hsb");
20
+ }
21
+ /**
22
+ * A colour, edited in a popover: two-axis area, hue rail, optional alpha rail,
23
+ * a text field that speaks hex *and* oklch, and an eyedropper where the browser
24
+ * has one.
25
+ *
26
+ * Composed from the React Aria colour parts rather than wrapping a single
27
+ * primitive, because no primitive owns the combination. Two decisions are this
28
+ * component's own:
29
+ *
30
+ * - **Notation in, notation out.** React Aria only parses sRGB; this system's
31
+ * tokens are authored in `oklch()`. The picker converts on both edges
32
+ * (culori), and writes back in the notation it was given unless `format` says
33
+ * otherwise. This is what makes it usable as the theme configurator's editor.
34
+ * - **Hue survives black.** The working colour is held as HSB and only re-read
35
+ * from the incoming string when that string changes for some *other* reason,
36
+ * so dragging the area down to black and back does not reset the hue — the
37
+ * defect every naive "derive state from the value" picker has.
38
+ *
39
+ * `react-aria-components` is an **optional peer**: import this from
40
+ * `@cueplusplus/ui/color`.
41
+ *
42
+ * @example
43
+ * <ColorPicker label="Accent" value={accent} onValueChange={setAccent} />
44
+ * @example
45
+ * <ColorPicker label="Scrim" value="oklch(0.2 0 0 / 0.55)" alpha format="oklch" />
46
+ */
47
+ function ColorPicker({ value, defaultValue, onValueChange, format, alpha = false, label = "Color", size, disabled, showValue = true, name, id, className, popupClassName, open, defaultOpen, onOpenChange }) {
48
+ const [uncontrolled, setUncontrolled] = React.useState(defaultValue ?? FALLBACK_COLOR);
49
+ const current = value ?? uncontrolled;
50
+ const outputFormat = format ?? detectColorFormat(current);
51
+ const [color, setColor] = React.useState(() => toHsb(current));
52
+ const emitted = React.useRef(null);
53
+ React.useEffect(() => {
54
+ if (current === emitted.current) return;
55
+ setColor(toHsb(current));
56
+ }, [current]);
57
+ const [draft, setDraft] = React.useState(current);
58
+ const [draftInvalid, setDraftInvalid] = React.useState(false);
59
+ React.useEffect(() => {
60
+ setDraft(current);
61
+ setDraftInvalid(false);
62
+ }, [current]);
63
+ const [hasEyeDropper, setHasEyeDropper] = React.useState(false);
64
+ React.useEffect(() => {
65
+ setHasEyeDropper(typeof window !== "undefined" && "EyeDropper" in window);
66
+ }, []);
67
+ const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false);
68
+ const isOpen = open ?? uncontrolledOpen;
69
+ const setOpen = (next) => {
70
+ if (open === void 0) setUncontrolledOpen(next);
71
+ onOpenChange?.(next);
72
+ };
73
+ const applyColor = (next) => {
74
+ setColor(next);
75
+ const hex = next.toString(alpha ? "hexa" : "hex");
76
+ const out = formatColorString(hex, outputFormat) ?? hex;
77
+ emitted.current = out;
78
+ if (value === void 0) setUncontrolled(out);
79
+ onValueChange?.(out);
80
+ };
81
+ const applyString = (next) => {
82
+ const hex = toHexString(next);
83
+ if (hex === null) {
84
+ setDraftInvalid(true);
85
+ return;
86
+ }
87
+ setDraftInvalid(false);
88
+ applyColor(parseColor(hex).toFormat("hsb"));
89
+ };
90
+ const pickFromScreen = () => {
91
+ const EyeDropper = globalThis.EyeDropper;
92
+ if (EyeDropper === void 0) return;
93
+ new EyeDropper().open().then((result) => applyString(result.sRGBHex)).catch(() => {});
94
+ };
95
+ return /* @__PURE__ */ jsxs(Popover.Root, {
96
+ open: isOpen,
97
+ onOpenChange: setOpen,
98
+ children: [
99
+ /* @__PURE__ */ jsxs(Popover.Trigger, {
100
+ render: /* @__PURE__ */ jsx("button", {
101
+ type: "button",
102
+ id,
103
+ disabled,
104
+ "aria-label": label,
105
+ "data-slot": "color-picker-trigger",
106
+ className: cn(controlVariants({ size }), "flex w-auto cursor-pointer items-center gap-(--cue-space-2) text-left", className)
107
+ }),
108
+ children: [/* @__PURE__ */ jsx(ColorSwatch$1, {
109
+ color,
110
+ size: "sm"
111
+ }), showValue ? /* @__PURE__ */ jsx("span", {
112
+ className: "truncate tabular-nums",
113
+ children: current
114
+ }) : null]
115
+ }),
116
+ /* @__PURE__ */ jsxs(Popover.Content, {
117
+ className: cn("w-[14rem] gap-(--cue-space-3) p-(--cue-space-3)", popupClassName),
118
+ align: "start",
119
+ "data-slot": "color-picker-popup",
120
+ children: [
121
+ /* @__PURE__ */ jsx(ColorArea$1, {
122
+ "aria-label": "Saturation and brightness",
123
+ xChannel: "saturation",
124
+ yChannel: "brightness",
125
+ value: color,
126
+ onChange: applyColor
127
+ }),
128
+ /* @__PURE__ */ jsxs("div", {
129
+ className: "flex items-center gap-(--cue-space-2)",
130
+ children: [/* @__PURE__ */ jsxs("div", {
131
+ className: "flex min-w-0 flex-1 flex-col gap-(--cue-space-2)",
132
+ children: [/* @__PURE__ */ jsx(ColorSlider$1, {
133
+ "aria-label": "Hue",
134
+ channel: "hue",
135
+ value: color,
136
+ onChange: applyColor
137
+ }), alpha ? /* @__PURE__ */ jsx(ColorSlider$1, {
138
+ "aria-label": "Alpha",
139
+ channel: "alpha",
140
+ value: color,
141
+ onChange: applyColor
142
+ }) : null]
143
+ }), hasEyeDropper ? /* @__PURE__ */ jsx(IconButton, {
144
+ "aria-label": "Pick a color from the screen",
145
+ icon: EyedropperGlyph,
146
+ size: "sm",
147
+ onClick: pickFromScreen
148
+ }) : null]
149
+ }),
150
+ /* @__PURE__ */ jsx("input", {
151
+ type: "text",
152
+ "aria-label": "Color value",
153
+ "aria-invalid": draftInvalid ? "true" : void 0,
154
+ spellCheck: false,
155
+ autoComplete: "off",
156
+ "data-slot": "color-picker-value",
157
+ className: cn(controlVariants({ size: "sm" }), "font-mono"),
158
+ value: draft,
159
+ onChange: (event) => setDraft(event.target.value),
160
+ onBlur: () => applyString(draft),
161
+ onKeyDown: (event) => {
162
+ if (event.key !== "Enter") return;
163
+ event.preventDefault();
164
+ applyString(draft);
165
+ }
166
+ })
167
+ ]
168
+ }),
169
+ name === void 0 ? null : /* @__PURE__ */ jsx("input", {
170
+ type: "hidden",
171
+ name,
172
+ value: current
173
+ })
174
+ ]
175
+ });
176
+ }
177
+ //#endregion
178
+ export { ColorPicker };
@@ -0,0 +1,31 @@
1
+ import * as React from "react";
2
+ import { ColorSliderProps } from "react-aria-components";
3
+ //#region src/color/color-slider.d.ts
4
+ interface ColorSliderProps$1 extends Omit<ColorSliderProps, "children"> {
5
+ /** Extra classes for the frame around the track. */
6
+ frameClassName?: string;
7
+ /** Extra classes for the gradient track. */
8
+ trackClassName?: string;
9
+ /** Extra classes for the thumb. */
10
+ thumbClassName?: string;
11
+ }
12
+ /**
13
+ * One channel of a colour, as a rail: hue, alpha, lightness, a single RGB
14
+ * channel.
15
+ *
16
+ * Wraps React Aria's `ColorSlider`, which paints the channel's gradient and
17
+ * owns the keyboard and pointer behaviour. The alpha channel gets the
18
+ * transparency checkerboard — without it, "half transparent" and "half grey"
19
+ * are the same picture. It goes on the frame rather than the track because
20
+ * React Aria writes the gradient into the track's inline `background`, which
21
+ * would paint straight over a checkerboard set by a class.
22
+ *
23
+ * `react-aria-components` is an **optional peer**: import this from
24
+ * `@cueplusplus/ui/color`.
25
+ *
26
+ * @example
27
+ * <ColorSlider aria-label="Hue" channel="hue" value={color} onChange={setColor} />
28
+ */
29
+ declare function ColorSlider$1({ className, frameClassName, trackClassName, thumbClassName, channel, value, defaultValue, ...sliderProps }: ColorSliderProps$1): React.JSX.Element;
30
+ //#endregion
31
+ export { ColorSlider$1 as ColorSlider, ColorSliderProps$1 as ColorSliderProps };
@@ -0,0 +1,51 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { ariaClassName } from "../lib/aria-class.js";
4
+ import { colorThumbClasses } from "./_thumb.js";
5
+ import { toAriaColor } from "./_value.js";
6
+ import "./_checker.js";
7
+ import "react";
8
+ import { jsx } from "react/jsx-runtime";
9
+ import { ColorSlider, ColorThumb, SliderTrack } from "react-aria-components";
10
+ //#region src/color/color-slider.tsx
11
+ /**
12
+ * One channel of a colour, as a rail: hue, alpha, lightness, a single RGB
13
+ * channel.
14
+ *
15
+ * Wraps React Aria's `ColorSlider`, which paints the channel's gradient and
16
+ * owns the keyboard and pointer behaviour. The alpha channel gets the
17
+ * transparency checkerboard — without it, "half transparent" and "half grey"
18
+ * are the same picture. It goes on the frame rather than the track because
19
+ * React Aria writes the gradient into the track's inline `background`, which
20
+ * would paint straight over a checkerboard set by a class.
21
+ *
22
+ * `react-aria-components` is an **optional peer**: import this from
23
+ * `@cueplusplus/ui/color`.
24
+ *
25
+ * @example
26
+ * <ColorSlider aria-label="Hue" channel="hue" value={color} onChange={setColor} />
27
+ */
28
+ function ColorSlider$1({ className, frameClassName, trackClassName, thumbClassName, channel, value, defaultValue, ...sliderProps }) {
29
+ return /* @__PURE__ */ jsx(ColorSlider, {
30
+ "data-slot": "color-slider",
31
+ channel,
32
+ className: ariaClassName("w-full touch-none data-[disabled]:opacity-40", className),
33
+ value: toAriaColor(value),
34
+ defaultValue: toAriaColor(defaultValue),
35
+ ...sliderProps,
36
+ children: /* @__PURE__ */ jsx("div", {
37
+ "data-slot": "color-slider-frame",
38
+ className: cn("relative rounded-full border border-border", channel === "alpha" && "bg-[repeating-conic-gradient(var(--cue-surface-3)_0%_25%,var(--cue-surface-1)_0%_50%)] bg-[length:0.5rem_0.5rem]", frameClassName),
39
+ children: /* @__PURE__ */ jsx(SliderTrack, {
40
+ "data-slot": "color-slider-track",
41
+ className: ariaClassName("relative h-icon-sm w-full rounded-full", trackClassName),
42
+ children: /* @__PURE__ */ jsx(ColorThumb, {
43
+ "data-slot": "color-thumb",
44
+ className: ariaClassName(cn(colorThumbClasses, "top-1/2"), thumbClassName)
45
+ })
46
+ })
47
+ })
48
+ });
49
+ }
50
+ //#endregion
51
+ export { ColorSlider$1 as ColorSlider };
@@ -0,0 +1,32 @@
1
+ import * as React from "react";
2
+ import { ColorSwatchProps } from "react-aria-components";
3
+ //#region src/color/color-swatch.d.ts
4
+ /** Rung of the icon ladder a swatch sits on. */
5
+ type ColorSwatchSize = "sm" | "md" | "lg";
6
+ interface ColorSwatchProps$1 extends Omit<ColorSwatchProps, "className"> {
7
+ /** Rung of the icon ladder. Defaults to `"md"`. */
8
+ size?: ColorSwatchSize;
9
+ /** Extra classes for the frame. */
10
+ className?: string;
11
+ }
12
+ /**
13
+ * A colour, shown as a chip.
14
+ *
15
+ * Two elements rather than one: the frame carries the rim, the radius and the
16
+ * transparency checkerboard, and React Aria's `ColorSwatch` paints the colour
17
+ * on top of it. One element cannot do both — the library writes the colour into
18
+ * the inline `background-color`, which paints *behind* a background image, so a
19
+ * checkerboard set on the same element would cover the colour instead of
20
+ * backing it.
21
+ *
22
+ * Takes any notation this suite reads, `oklch()` included.
23
+ *
24
+ * `react-aria-components` is an **optional peer**: import this from
25
+ * `@cueplusplus/ui/color`.
26
+ *
27
+ * @example
28
+ * <ColorSwatch color="oklch(0.7 0.15 30)" />
29
+ */
30
+ declare function ColorSwatch$1({ size, className, color, ...swatchProps }: ColorSwatchProps$1): React.JSX.Element;
31
+ //#endregion
32
+ export { ColorSwatch$1 as ColorSwatch, ColorSwatchProps$1 as ColorSwatchProps, ColorSwatchSize };