@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,352 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { Input } from "../forms/input.js";
4
+ import { useDensities, useThemes } from "../system/theme-registry.js";
5
+ import { SectionHeader } from "../chrome/section-header.js";
6
+ import { SegmentedControl } from "../chrome/segmented-control.js";
7
+ import { Field, FieldLabel } from "../forms/field.js";
8
+ import { Slider } from "../forms/slider.js";
9
+ import { Kbd } from "../primitives/kbd.js";
10
+ import { useTheme } from "../system/use-theme.js";
11
+ import { tokenProperty } from "../theming/serialize.js";
12
+ import { COLOR_TOKENS, FONT_TOKENS, isSafeCssValue } from "./_overrides.js";
13
+ import { TokenEditor } from "./token-editor.js";
14
+ import * as React from "react";
15
+ import { jsx, jsxs } from "react/jsx-runtime";
16
+ import { resolve } from "@cueplusplus/theme-base";
17
+ //#region src/configurator/panel-sections.tsx
18
+ /** The five colours a preset is recognisable from, in reading order. */
19
+ const SWATCH_TOKENS = [
20
+ "bg",
21
+ "surface-2",
22
+ "fg",
23
+ "accent",
24
+ "danger"
25
+ ];
26
+ const MODE_ITEMS = [
27
+ {
28
+ value: "dark",
29
+ label: "Dark"
30
+ },
31
+ {
32
+ value: "light",
33
+ label: "Light"
34
+ },
35
+ {
36
+ value: "system",
37
+ label: "System"
38
+ }
39
+ ];
40
+ /**
41
+ * Labels for a 19rem panel. Five rungs will not fit as words — `Ultra-compact`
42
+ * and `Ultra-large` alone are 25 characters — so the segmented control wears
43
+ * the garment sizes and the value it sets is still the ladder's own name.
44
+ */
45
+ const BASE_DENSITY_LABELS = {
46
+ "ultra-compact": "XS",
47
+ "compact": "S",
48
+ "normal": "M",
49
+ "large": "L",
50
+ "ultra-large": "XL"
51
+ };
52
+ /**
53
+ * What a rung is called in the panel.
54
+ *
55
+ * A lookup rather than a table, because the ladder is open now: a theme may add
56
+ * a rung, and this package has no garment size to give it. Its own name is the
57
+ * only label that is certainly true — longer than a letter, and honest about
58
+ * being the theme's rather than the ladder's. The base five keep their sizes,
59
+ * so nothing a user has learned moves.
60
+ */
61
+ function densityLabel(rung) {
62
+ return BASE_DENSITY_LABELS[rung] ?? rung;
63
+ }
64
+ /** Bounds of the text-scale knob, from spec §6's `fontScale`. */
65
+ const FONT_SCALE = {
66
+ min: .8,
67
+ max: 1.3,
68
+ step: .05
69
+ };
70
+ /** Bounds of the corner-radius multiplier. Below 0.5 a control stops reading as a control. */
71
+ const RADIUS_SCALE = {
72
+ min: .5,
73
+ max: 2,
74
+ step: .05
75
+ };
76
+ /** Bounds of the density nudge, either side of the ladder's own 0.85 / 1 / 1.3. */
77
+ const DENSITY_NUDGE = {
78
+ min: .8,
79
+ max: 1.25,
80
+ step: .05
81
+ };
82
+ /** What each type stack is called in the panel. */
83
+ const FONT_LABELS = {
84
+ "font-sans": "Sans stack",
85
+ "font-mono": "Mono stack",
86
+ "font-display": "Display stack"
87
+ };
88
+ /** Base UI hands a range slider an array; every slider here has one thumb. */
89
+ const single = (value) => Array.isArray(value) ? value[0] ?? 0 : value;
90
+ /**
91
+ * A number knob wired to one token, live on drag and persisted on release.
92
+ *
93
+ * The three it is used for are `--cue-radius-scale` and `--cue-density`, both
94
+ * crossed with the density ladder when they are written, and `--cue-font-scale`,
95
+ * which the provider publishes inline. Naming them here is not decoration: the
96
+ * package manifest's token list is scraped for literal `--cue-*` spellings, and
97
+ * a token whose only spelling in this file is the bare `token="radius-scale"`
98
+ * prop is a token the docs page for this section does not list.
99
+ */
100
+ function ScaleSlider({ label, token, edits, bounds }) {
101
+ const value = Number(edits.value(token));
102
+ return /* @__PURE__ */ jsx(Slider, {
103
+ label,
104
+ "aria-label": label,
105
+ showValue: true,
106
+ min: bounds.min,
107
+ max: bounds.max,
108
+ step: bounds.step,
109
+ value: Number.isFinite(value) ? value : 1,
110
+ onValueChange: (next) => edits.set(token, String(single(next))),
111
+ onCommit: () => edits.commit()
112
+ });
113
+ }
114
+ /** A free-text token (a font stack, a tracking value) with a draft the user can fix. */
115
+ function TextTokenField({ label, token, edits, placeholder }) {
116
+ const value = edits.value(token);
117
+ const [draft, setDraft] = React.useState(value);
118
+ const [invalid, setInvalid] = React.useState(false);
119
+ React.useEffect(() => {
120
+ setDraft(value);
121
+ setInvalid(false);
122
+ }, [value]);
123
+ const commit = () => {
124
+ if (draft === value) return;
125
+ if (!isSafeCssValue(draft)) {
126
+ setInvalid(true);
127
+ return;
128
+ }
129
+ setInvalid(false);
130
+ edits.set(token, draft);
131
+ edits.commit();
132
+ };
133
+ return /* @__PURE__ */ jsxs(Field, {
134
+ className: "gap-(--cue-space-1)",
135
+ children: [/* @__PURE__ */ jsx(FieldLabel, {
136
+ className: "font-mono text-(length:--cue-text-micro) tracking-[0.15em] uppercase",
137
+ children: label
138
+ }), /* @__PURE__ */ jsx(Input, {
139
+ size: "sm",
140
+ value: draft,
141
+ placeholder,
142
+ spellCheck: false,
143
+ autoComplete: "off",
144
+ "aria-invalid": invalid ? "true" : void 0,
145
+ onValueChange: (next) => setDraft(next),
146
+ onBlur: commit,
147
+ onKeyDown: (event) => {
148
+ if (event.key !== "Enter") return;
149
+ event.preventDefault();
150
+ commit();
151
+ }
152
+ })]
153
+ });
154
+ }
155
+ /**
156
+ * Section 1 — the four choices that are not token edits at all.
157
+ *
158
+ * Preset, mode and density are *provider* state: picking one restamps the
159
+ * document and every portal under it, which is why they live here rather than
160
+ * in the colour list. Text scale and zoom are the two relief valves the spec
161
+ * pairs with the density ladder — one scales the type ramp inside the layout,
162
+ * the other scales the finished layout itself.
163
+ *
164
+ * @example
165
+ * <PresetSection edits={edits} zoom={zoom} />
166
+ */
167
+ function PresetSection({ edits, zoom, className }) {
168
+ const { theme, density, mode, resolvedMode, setTheme, setDensity, setMode } = useTheme();
169
+ const themes = useThemes();
170
+ const densities = useDensities();
171
+ return /* @__PURE__ */ jsxs(SectionHeader, {
172
+ label: "Preset",
173
+ collapsible: true,
174
+ className,
175
+ children: [
176
+ themes.length === 0 ? /* @__PURE__ */ jsxs("p", {
177
+ className: "text-fg-muted text-ui",
178
+ children: [
179
+ "No themes registered — pass ",
180
+ /* @__PURE__ */ jsx("code", { children: "themes" }),
181
+ " to ",
182
+ /* @__PURE__ */ jsx("code", { children: "ThemeProvider" }),
183
+ "."
184
+ ]
185
+ }) : /* @__PURE__ */ jsx("div", {
186
+ className: "grid grid-cols-2 gap-(--cue-space-2)",
187
+ children: themes.map((manifest) => {
188
+ const name = manifest.name;
189
+ const palette = resolve(manifest, { mode: resolvedMode }).colors;
190
+ const active = name === theme;
191
+ return /* @__PURE__ */ jsxs("button", {
192
+ type: "button",
193
+ "aria-pressed": active,
194
+ "data-slot": "configurator-preset",
195
+ onClick: () => setTheme(name),
196
+ className: cn("flex cursor-pointer flex-col gap-(--cue-space-2) rounded-(--radius-control) border p-(--cue-space-2) text-left outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent", active ? "border-accent text-accent" : "border-border text-fg-muted hover:border-border-strong hover:text-fg"),
197
+ children: [/* @__PURE__ */ jsx("span", {
198
+ className: "truncate font-mono text-(length:--cue-text-label)",
199
+ children: name
200
+ }), /* @__PURE__ */ jsx("span", {
201
+ className: "flex h-(--cue-space-4) overflow-hidden rounded-[2px]",
202
+ children: SWATCH_TOKENS.map((token) => /* @__PURE__ */ jsx("span", {
203
+ "data-slot": "configurator-swatch",
204
+ className: "flex-1 bg-(--swatch)",
205
+ style: { "--swatch": palette[token] }
206
+ }, token))
207
+ })]
208
+ }, name);
209
+ })
210
+ }),
211
+ /* @__PURE__ */ jsx(SegmentedControl, {
212
+ "aria-label": "Mode",
213
+ size: "sm",
214
+ className: "w-full",
215
+ itemClassName: "flex-1",
216
+ value: mode,
217
+ onValueChange: (next) => setMode(next),
218
+ items: MODE_ITEMS.map((item) => ({
219
+ value: item.value,
220
+ label: item.label
221
+ }))
222
+ }),
223
+ /* @__PURE__ */ jsx(SegmentedControl, {
224
+ "aria-label": "Density",
225
+ size: "sm",
226
+ className: "w-full",
227
+ itemClassName: "flex-1",
228
+ value: density,
229
+ onValueChange: (next) => setDensity(next),
230
+ items: densities.map((rung) => ({
231
+ value: rung.name,
232
+ label: densityLabel(rung.name)
233
+ }))
234
+ }),
235
+ /* @__PURE__ */ jsx(ScaleSlider, {
236
+ label: "Text scale",
237
+ token: "font-scale",
238
+ edits,
239
+ bounds: FONT_SCALE
240
+ }),
241
+ /* @__PURE__ */ jsxs("div", {
242
+ className: "flex flex-col gap-(--cue-space-2)",
243
+ children: [/* @__PURE__ */ jsx(Slider, {
244
+ label: "Zoom",
245
+ "aria-label": "Zoom",
246
+ showValue: true,
247
+ min: zoom.min,
248
+ max: zoom.max,
249
+ step: zoom.step,
250
+ value: zoom.zoom,
251
+ onValueChange: (next) => zoom.setZoom(single(next))
252
+ }), /* @__PURE__ */ jsxs("span", {
253
+ className: "flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-micro) text-fg-subtle",
254
+ children: [
255
+ /* @__PURE__ */ jsx(Kbd, { children: "⌘" }),
256
+ /* @__PURE__ */ jsx(Kbd, { children: "+" }),
257
+ /* @__PURE__ */ jsx(Kbd, { children: "−" }),
258
+ /* @__PURE__ */ jsx(Kbd, { children: "0" }),
259
+ "scales the whole page, not the tokens"
260
+ ]
261
+ })]
262
+ })
263
+ ]
264
+ });
265
+ }
266
+ /**
267
+ * Section 2 — every colour the active theme declares, one row each.
268
+ *
269
+ * The rows are grouped by what the colour does; the editing itself lives in
270
+ * {@link TokenEditor}, which is stateless and reusable.
271
+ *
272
+ * @example
273
+ * <ColorsSection edits={edits} />
274
+ */
275
+ function ColorsSection({ edits, className }) {
276
+ const values = Object.fromEntries(COLOR_TOKENS.map((token) => [tokenProperty(token), edits.value(token)]));
277
+ const overridden = new Set(COLOR_TOKENS.filter((token) => edits.overridden(token)).map(tokenProperty));
278
+ return /* @__PURE__ */ jsx(SectionHeader, {
279
+ label: "Colors",
280
+ collapsible: true,
281
+ count: overridden.size || void 0,
282
+ className,
283
+ children: /* @__PURE__ */ jsx(TokenEditor, {
284
+ values,
285
+ overridden,
286
+ onTokenChange: (token, value) => {
287
+ edits.set(token, value);
288
+ edits.commit();
289
+ },
290
+ onTokenReset: (token) => {
291
+ edits.reset(token);
292
+ edits.commit();
293
+ }
294
+ })
295
+ });
296
+ }
297
+ /**
298
+ * Section 3 — the geometry and type knobs, which belong to the *density* axis
299
+ * rather than to the theme.
300
+ *
301
+ * Both multipliers are crossed with the density ladder when they are written, so
302
+ * nudging the radius keeps `ultra-compact` tighter than `large` instead of
303
+ * flattening the two. The density knob is the published `--cue-density` escape
304
+ * hatch (spec §6): the shipped control ladder is three hand-authored blocks, not
305
+ * a multiplier, so this scales bespoke app geometry — `calc(200px *
306
+ * var(--cue-density))` — and the picker above is what moves the controls.
307
+ *
308
+ * @example
309
+ * <ShapeSection edits={edits} />
310
+ */
311
+ function ShapeSection({ edits, className }) {
312
+ return /* @__PURE__ */ jsxs(SectionHeader, {
313
+ label: "Shape & type",
314
+ collapsible: true,
315
+ className,
316
+ children: [
317
+ /* @__PURE__ */ jsx(ScaleSlider, {
318
+ label: "Corner radius",
319
+ token: "radius-scale",
320
+ edits,
321
+ bounds: RADIUS_SCALE
322
+ }),
323
+ /* @__PURE__ */ jsx(ScaleSlider, {
324
+ label: "Density factor",
325
+ token: "density",
326
+ edits,
327
+ bounds: DENSITY_NUDGE
328
+ }),
329
+ /* @__PURE__ */ jsxs("p", {
330
+ className: "font-mono text-(length:--cue-text-micro) leading-(--cue-leading-ui) text-fg-subtle",
331
+ children: [
332
+ "Density factor scales app geometry that reads ",
333
+ /* @__PURE__ */ jsx("code", { children: "var(--cue-density)" }),
334
+ ". The control ladder itself is three authored blocks — use the density picker for it."
335
+ ]
336
+ }),
337
+ FONT_TOKENS.map((token) => /* @__PURE__ */ jsx(TextTokenField, {
338
+ label: FONT_LABELS[token],
339
+ token,
340
+ edits
341
+ }, token)),
342
+ /* @__PURE__ */ jsx(TextTokenField, {
343
+ label: "Label tracking",
344
+ token: "tracking-label",
345
+ edits,
346
+ placeholder: "0.12em"
347
+ })
348
+ ]
349
+ });
350
+ }
351
+ //#endregion
352
+ export { ColorsSection, PresetSection, ShapeSection };
@@ -0,0 +1,74 @@
1
+ import { COLOR_TOKENS } from "./_overrides.js";
2
+ import * as React from "react";
3
+ //#region src/configurator/token-editor.d.ts
4
+ /**
5
+ * The colour half of the configurator: every token a theme block declares, as a
6
+ * row you can pick a colour into.
7
+ *
8
+ * Two decisions worth stating.
9
+ *
10
+ * **The row is named by its property, not by a friendly label.** `--cue-fg-muted`
11
+ * is uglier than "Secondary text" and far more useful: it is the string that
12
+ * goes into the export, the string an app overrides in its own stylesheet, and
13
+ * the string the docs index by. A configurator that teaches a second vocabulary
14
+ * would leave the user to translate it back by hand.
15
+ *
16
+ * **Every row is alpha-capable.** Half the shipped presets author their ink and
17
+ * their borders as `rgba(255,255,255,0.10)` — translucency is how a theme keeps
18
+ * a border tied to whatever surface it lands on — so a picker that quietly
19
+ * dropped alpha would break those themes on the first edit.
20
+ */
21
+ /** One labelled run of token rows. */
22
+ interface TokenGroup {
23
+ /** Stable id, used as the React key. */
24
+ id: string;
25
+ /** What the group is called in the panel. */
26
+ label: string;
27
+ /** Bare token names, in display order. */
28
+ tokens: readonly string[];
29
+ }
30
+ /**
31
+ * The colour tokens, grouped the way the panel shows them.
32
+ *
33
+ * Grouped by *what the colour does* rather than by where it sits in the token
34
+ * file: a user opening the panel is looking for "the accent" or "the status
35
+ * colours", not for declaration seventeen. Covers `THEME_COLOR_TOKENS` exactly —
36
+ * a test enforces it, because a token missing from this list is a theme the
37
+ * configurator silently cannot express.
38
+ */
39
+ declare const COLOR_TOKEN_GROUPS: readonly TokenGroup[];
40
+ interface TokenEditorProps {
41
+ /** Current values, keyed by `--cue-*` property. */
42
+ values: Record<string, string>;
43
+ /** Which properties carry an override rather than the preset's value. */
44
+ overridden: ReadonlySet<string>;
45
+ /** Called with the `--cue-*` property and its new value. */
46
+ onTokenChange: (token: string, value: string) => void;
47
+ /** Called with the `--cue-*` property to put back to the preset's value. */
48
+ onTokenReset: (token: string) => void;
49
+ /** Groups to render. Defaults to {@link COLOR_TOKEN_GROUPS}. */
50
+ groups?: readonly TokenGroup[];
51
+ /** Extra classes for the list. */
52
+ className?: string;
53
+ }
54
+ /**
55
+ * The grouped colour rows.
56
+ *
57
+ * Stateless by design: it renders the values it is handed and reports edits
58
+ * back. The configurator owns the override model, and so does anything else
59
+ * that wants to reuse these rows.
60
+ *
61
+ * `react-aria-components` is an **optional peer** (it arrives with
62
+ * `ColorPicker`): import this from `@cueplusplus/ui/configurator`.
63
+ *
64
+ * @example
65
+ * <TokenEditor
66
+ * values={resolvedTokens(overrides, scope)}
67
+ * overridden={new Set(Object.keys(overrides.themes[scopeKey(scope)] ?? {}))}
68
+ * onTokenChange={(token, value) => setOverrides(setOverride(overrides, scope, token, value))}
69
+ * onTokenReset={(token) => setOverrides(clearOverride(overrides, scope, token))}
70
+ * />
71
+ */
72
+ declare function TokenEditor({ values, overridden, onTokenChange, onTokenReset, groups, className }: TokenEditorProps): React.JSX.Element;
73
+ //#endregion
74
+ export { COLOR_TOKEN_GROUPS, TokenEditor, TokenEditorProps, TokenGroup };
@@ -0,0 +1,152 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { IconButton } from "../primitives/icon-button.js";
4
+ import { tokenProperty } from "../theming/serialize.js";
5
+ import { ColorPicker } from "../color/color-picker.js";
6
+ import "./_overrides.js";
7
+ import { ResetGlyph } from "./_glyphs.js";
8
+ import "react";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ //#region src/configurator/token-editor.tsx
11
+ /**
12
+ * The colour tokens, grouped the way the panel shows them.
13
+ *
14
+ * Grouped by *what the colour does* rather than by where it sits in the token
15
+ * file: a user opening the panel is looking for "the accent" or "the status
16
+ * colours", not for declaration seventeen. Covers `THEME_COLOR_TOKENS` exactly —
17
+ * a test enforces it, because a token missing from this list is a theme the
18
+ * configurator silently cannot express.
19
+ */
20
+ const COLOR_TOKEN_GROUPS = [
21
+ {
22
+ id: "ground",
23
+ label: "Ground & surfaces",
24
+ tokens: [
25
+ "bg",
26
+ "sunken",
27
+ "surface-1",
28
+ "surface-2",
29
+ "surface-3",
30
+ "data-ground",
31
+ "scrim"
32
+ ]
33
+ },
34
+ {
35
+ id: "ink",
36
+ label: "Ink",
37
+ tokens: [
38
+ "fg",
39
+ "fg-muted",
40
+ "fg-subtle"
41
+ ]
42
+ },
43
+ {
44
+ id: "borders",
45
+ label: "Borders",
46
+ tokens: [
47
+ "border",
48
+ "border-strong",
49
+ "border-overlay"
50
+ ]
51
+ },
52
+ {
53
+ id: "accent",
54
+ label: "Accent",
55
+ tokens: [
56
+ "accent",
57
+ "accent-hover",
58
+ "accent-fg",
59
+ "focus",
60
+ "selection"
61
+ ]
62
+ },
63
+ {
64
+ id: "status",
65
+ label: "Status",
66
+ tokens: [
67
+ "ok",
68
+ "busy",
69
+ "warn",
70
+ "warn-fg",
71
+ "danger",
72
+ "danger-fg",
73
+ "info",
74
+ "stream"
75
+ ]
76
+ }
77
+ ];
78
+ /** One token: its name, its swatch, and — once it has moved — its way back. */
79
+ function TokenRow({ property, value, overridden, onTokenChange, onTokenReset }) {
80
+ return /* @__PURE__ */ jsxs("div", {
81
+ "data-slot": "configurator-token",
82
+ "data-token": property,
83
+ "data-overridden": overridden ? "true" : void 0,
84
+ className: "flex items-center gap-(--cue-space-2)",
85
+ children: [
86
+ /* @__PURE__ */ jsx("span", {
87
+ className: cn("min-w-0 flex-1 truncate font-mono text-(length:--cue-text-label)", overridden ? "text-accent" : "text-fg-muted"),
88
+ children: property
89
+ }),
90
+ /* @__PURE__ */ jsx(ColorPicker, {
91
+ label: property,
92
+ value,
93
+ onValueChange: (next) => onTokenChange(property, next),
94
+ size: "sm",
95
+ alpha: true,
96
+ className: "max-w-[9rem] shrink-0"
97
+ }),
98
+ overridden ? /* @__PURE__ */ jsx(IconButton, {
99
+ "aria-label": `Reset ${property}`,
100
+ icon: ResetGlyph,
101
+ size: "sm",
102
+ onClick: () => onTokenReset(property)
103
+ }) : /* @__PURE__ */ jsx("span", {
104
+ "aria-hidden": "true",
105
+ className: "size-control-sm shrink-0"
106
+ })
107
+ ]
108
+ });
109
+ }
110
+ /**
111
+ * The grouped colour rows.
112
+ *
113
+ * Stateless by design: it renders the values it is handed and reports edits
114
+ * back. The configurator owns the override model, and so does anything else
115
+ * that wants to reuse these rows.
116
+ *
117
+ * `react-aria-components` is an **optional peer** (it arrives with
118
+ * `ColorPicker`): import this from `@cueplusplus/ui/configurator`.
119
+ *
120
+ * @example
121
+ * <TokenEditor
122
+ * values={resolvedTokens(overrides, scope)}
123
+ * overridden={new Set(Object.keys(overrides.themes[scopeKey(scope)] ?? {}))}
124
+ * onTokenChange={(token, value) => setOverrides(setOverride(overrides, scope, token, value))}
125
+ * onTokenReset={(token) => setOverrides(clearOverride(overrides, scope, token))}
126
+ * />
127
+ */
128
+ function TokenEditor({ values, overridden, onTokenChange, onTokenReset, groups = COLOR_TOKEN_GROUPS, className }) {
129
+ return /* @__PURE__ */ jsx("div", {
130
+ "data-slot": "configurator-token-editor",
131
+ className: cn("flex flex-col gap-(--cue-space-4)", className),
132
+ children: groups.map((group) => /* @__PURE__ */ jsxs("div", {
133
+ "data-slot": "configurator-token-group",
134
+ className: "flex flex-col gap-(--cue-space-2)",
135
+ children: [/* @__PURE__ */ jsx("span", {
136
+ className: "font-mono text-(length:--cue-text-micro) tracking-[0.15em] text-fg-subtle uppercase",
137
+ children: group.label
138
+ }), group.tokens.map((token) => {
139
+ const property = tokenProperty(token);
140
+ return /* @__PURE__ */ jsx(TokenRow, {
141
+ property,
142
+ value: values[property] ?? "",
143
+ overridden: overridden.has(property),
144
+ onTokenChange,
145
+ onTokenReset
146
+ }, property);
147
+ })]
148
+ }, group.id))
149
+ });
150
+ }
151
+ //#endregion
152
+ export { COLOR_TOKEN_GROUPS, TokenEditor };
@@ -0,0 +1,87 @@
1
+ //#region src/configurator/use-zoom.d.ts
2
+ /**
3
+ * The root zoom valve — luma's relief mechanism, adopted system-wide.
4
+ *
5
+ * Density is a *design* decision made in discrete, hand-authored steps; zoom is
6
+ * a *comfort* decision the person at the keyboard makes, continuously, about
7
+ * this screen at this distance. Conflating the two is how systems end up with a
8
+ * naive multiplier and blurry half-pixel geometry, so this is deliberately not a
9
+ * token: it sets the CSS `zoom` property on one element and lets the browser
10
+ * scale the finished layout, which keeps every hairline crisp and every rem
11
+ * ratio intact.
12
+ *
13
+ * The range is 0.7–1.5 because that is the band luma's console shipped and the
14
+ * spec adopted: below 0.7 the 9px type stops being type, above 1.5 the
15
+ * ultra-compact ladder has stopped being ultra-compact and the density picker is
16
+ * the better tool.
17
+ *
18
+ * @example
19
+ * const zoom = useZoom();
20
+ * <Slider aria-label="Zoom" min={zoom.min} max={zoom.max} value={zoom.zoom} onValueChange={zoom.setZoom} />
21
+ */
22
+ /** Floor of the valve — below this the type ladder stops being legible. */
23
+ declare const MIN_ZOOM = 0.7;
24
+ /** Ceiling of the valve — above this, pick a larger density instead. */
25
+ declare const MAX_ZOOM = 1.5;
26
+ /** One notch of the valve, and of ⌘+ / ⌘−. */
27
+ declare const ZOOM_STEP = 0.1;
28
+ interface UseZoomOptions {
29
+ /** Current zoom, for a controlled valve. Pair with `onZoomChange`. */
30
+ zoom?: number;
31
+ /** Starting zoom for an uncontrolled valve. Defaults to `1`. */
32
+ defaultZoom?: number;
33
+ /** Called with every new value, clamped and rounded. */
34
+ onZoomChange?: (zoom: number) => void;
35
+ /** Floor. Defaults to {@link MIN_ZOOM}. */
36
+ min?: number;
37
+ /** Ceiling. Defaults to {@link MAX_ZOOM}. */
38
+ max?: number;
39
+ /** Size of one notch. Defaults to {@link ZOOM_STEP}. */
40
+ step?: number;
41
+ /**
42
+ * Element to scale. Defaults to `<html>`, which is the point of a *root* zoom;
43
+ * pass `null` to run the valve as state only and apply it yourself.
44
+ */
45
+ target?: HTMLElement | null;
46
+ /**
47
+ * Bind ⌘/Ctrl with `+`, `-` and `0`, taking those combinations away from the
48
+ * browser's own zoom. Defaults to `true`.
49
+ */
50
+ shortcuts?: boolean;
51
+ }
52
+ /** What {@link useZoom} hands back. */
53
+ interface ZoomValve {
54
+ /** Current zoom. */
55
+ zoom: number;
56
+ /** Set it, clamped into range and rounded to two decimals. */
57
+ setZoom: (zoom: number) => void;
58
+ /** One notch up. */
59
+ zoomIn: () => void;
60
+ /** One notch down. */
61
+ zoomOut: () => void;
62
+ /** Back to 1, which also takes the declaration out of the document. */
63
+ reset: () => void;
64
+ /** The floor in force. */
65
+ min: number;
66
+ /** The ceiling in force. */
67
+ max: number;
68
+ /** The notch in force. */
69
+ step: number;
70
+ }
71
+ /**
72
+ * A bounded, stepped root-zoom valve with the usual keyboard shortcuts.
73
+ *
74
+ * Controlled or uncontrolled, the same way every other control in this system
75
+ * is: pass `zoom` to own the value, `defaultZoom` to let the hook own it.
76
+ *
77
+ * The declaration belongs to the hook while it is mounted — unmounting takes it
78
+ * back off, so a configurator that is closed does not leave the page at 1.4.
79
+ *
80
+ * @param options - Range, target, controlled value, shortcut opt-out.
81
+ * @returns The valve: the value and the four ways to move it.
82
+ * @example
83
+ * const { zoom, zoomIn, zoomOut, reset } = useZoom({ shortcuts: false });
84
+ */
85
+ declare function useZoom(options?: UseZoomOptions): ZoomValve;
86
+ //#endregion
87
+ export { MAX_ZOOM, MIN_ZOOM, UseZoomOptions, ZOOM_STEP, ZoomValve, useZoom };