@cueplusplus/ui 0.16.0 → 0.17.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 (480) hide show
  1. package/CHANGELOG.md +825 -0
  2. package/README.md +1 -1
  3. package/dist/agent-runtime/tool-call-card.js +7 -3
  4. package/dist/brand/_chassis.d.ts +1 -1
  5. package/dist/brand/cue-mark.d.ts +1 -1
  6. package/dist/brand/cue-mark.js +1 -1
  7. package/dist/charts/ramps.js +1 -1
  8. package/dist/chat/agent-pile.js +2 -1
  9. package/dist/chat/ask-box.js +4 -3
  10. package/dist/chat/delegation-card.js +3 -2
  11. package/dist/chat/message-list.js +3 -2
  12. package/dist/chat/message.js +17 -7
  13. package/dist/chrome/_edge-scroller.js +2 -1
  14. package/dist/chrome/_status-bar.js +9 -3
  15. package/dist/chrome/_tabs-scroll.d.ts +1 -1
  16. package/dist/chrome/_tabs-scroll.js +1 -1
  17. package/dist/chrome/app-bar.js +9 -3
  18. package/dist/chrome/app-shell.js +2 -1
  19. package/dist/chrome/band.d.ts +18 -12
  20. package/dist/chrome/band.js +18 -32
  21. package/dist/chrome/eyebrow.d.ts +13 -5
  22. package/dist/chrome/eyebrow.js +18 -7
  23. package/dist/chrome/footer.d.ts +5 -0
  24. package/dist/chrome/footer.js +14 -3
  25. package/dist/chrome/navigation-menu.js +4 -2
  26. package/dist/chrome/page-shell.js +8 -5
  27. package/dist/chrome/panel.d.ts +5 -2
  28. package/dist/chrome/panel.js +8 -4
  29. package/dist/chrome/row.js +6 -3
  30. package/dist/chrome/scroll-area.js +2 -1
  31. package/dist/chrome/section-header.js +13 -4
  32. package/dist/chrome/segmented-control.js +12 -3
  33. package/dist/chrome/status-bar.js +2 -1
  34. package/dist/chrome/tabs.js +11 -3
  35. package/dist/chrome/toolbar.js +2 -1
  36. package/dist/chrome/tree.js +3 -2
  37. package/dist/color/_thumb.js +9 -3
  38. package/dist/color/color-area.js +1 -1
  39. package/dist/color/color-swatch.js +1 -1
  40. package/dist/configurator/_overrides.js +13 -4
  41. package/dist/configurator/configurator.js +4 -1
  42. package/dist/configurator/export-dialog.js +5 -2
  43. package/dist/configurator/panel-sections.js +6 -2
  44. package/dist/configurator/token-editor.js +4 -1
  45. package/dist/date/calendar.js +12 -8
  46. package/dist/dmx/channel-matrix.js +3 -2
  47. package/dist/dmx/dmx-bar.js +1 -1
  48. package/dist/dmx/dmx-strip.js +1 -1
  49. package/dist/dmx/universe-grid.js +3 -2
  50. package/dist/elements/activity-graph.js +3 -3
  51. package/dist/elements/agent-card.js +3 -3
  52. package/dist/elements/approval-card.js +3 -3
  53. package/dist/elements/artifact-card.js +2 -2
  54. package/dist/elements/background-inbox.js +2 -2
  55. package/dist/elements/canvas-split.js +2 -2
  56. package/dist/elements/chart.js +1 -1
  57. package/dist/elements/chat-panel.js +2 -2
  58. package/dist/elements/checkpoint-history.js +2 -2
  59. package/dist/elements/clamp.js +2 -1
  60. package/dist/elements/code-diff.js +1 -1
  61. package/dist/elements/code-runner.js +1 -1
  62. package/dist/elements/command-palette.js +6 -5
  63. package/dist/elements/comparison-card.js +2 -2
  64. package/dist/elements/composer.js +9 -8
  65. package/dist/elements/computer-use.js +1 -1
  66. package/dist/elements/confidence-marker.js +2 -1
  67. package/dist/elements/connection-state.js +1 -1
  68. package/dist/elements/context-breakdown.js +1 -1
  69. package/dist/elements/context-usage.js +1 -1
  70. package/dist/elements/conversation-search.js +4 -3
  71. package/dist/elements/cost-meter.js +1 -1
  72. package/dist/elements/data-table.js +2 -2
  73. package/dist/elements/day-separator.js +1 -1
  74. package/dist/elements/diagram.js +1 -1
  75. package/dist/elements/document-reference.js +3 -3
  76. package/dist/elements/draft-restore.js +1 -1
  77. package/dist/elements/edit-message.js +4 -3
  78. package/dist/elements/elements.css +26 -5
  79. package/dist/elements/elicitation-form.js +3 -3
  80. package/dist/elements/empty-state.js +2 -1
  81. package/dist/elements/error-state.js +1 -1
  82. package/dist/elements/feedback-dialog.js +4 -3
  83. package/dist/elements/file-tree.js +2 -2
  84. package/dist/elements/flow-graph.js +2 -2
  85. package/dist/elements/guardrail-notice.js +3 -3
  86. package/dist/elements/image-generation.js +1 -1
  87. package/dist/elements/inline-citation.js +3 -3
  88. package/dist/elements/job-progress.js +3 -3
  89. package/dist/elements/launcher-bubble.js +2 -2
  90. package/dist/elements/loading-state.js +1 -1
  91. package/dist/elements/map-answer.js +3 -2
  92. package/dist/elements/markdown.js +5 -4
  93. package/dist/elements/math-block.js +1 -1
  94. package/dist/elements/mcp-server-panel.js +3 -3
  95. package/dist/elements/message-attachment.js +4 -4
  96. package/dist/elements/message-pair.js +1 -1
  97. package/dist/elements/message-queue.js +2 -2
  98. package/dist/elements/mobile-composer.js +4 -3
  99. package/dist/elements/model-picker.js +3 -3
  100. package/dist/elements/onboarding.js +2 -2
  101. package/dist/elements/permission-grant.js +2 -2
  102. package/dist/elements/permission-scopes.js +5 -4
  103. package/dist/elements/prompt-library.js +7 -6
  104. package/dist/elements/queue-dock.js +4 -3
  105. package/dist/elements/quota-banner.js +1 -1
  106. package/dist/elements/quote-reply.js +1 -1
  107. package/dist/elements/read-aloud.js +2 -2
  108. package/dist/elements/reasoning-panel.js +2 -1
  109. package/dist/elements/recommendation-card.d.ts +1 -1
  110. package/dist/elements/recommendation-card.js +2 -2
  111. package/dist/elements/regenerate-menu.js +2 -2
  112. package/dist/elements/research-report.js +1 -1
  113. package/dist/elements/retrieval-chunks.js +1 -1
  114. package/dist/elements/revert-dock.js +5 -4
  115. package/dist/elements/reviewable-diff.js +1 -1
  116. package/dist/elements/schedule-card.js +3 -3
  117. package/dist/elements/score-breakdown.js +1 -1
  118. package/dist/elements/scroll-anchor.js +2 -2
  119. package/dist/elements/settings-panel.js +3 -2
  120. package/dist/elements/shared-conversation.js +2 -2
  121. package/dist/elements/sources.js +4 -3
  122. package/dist/elements/speaker-identity.js +1 -1
  123. package/dist/elements/spec-sheet.js +1 -1
  124. package/dist/elements/streaming-text.js +1 -1
  125. package/dist/elements/subagent-list.js +2 -2
  126. package/dist/elements/suggestions.js +1 -1
  127. package/dist/elements/surfaces.d.ts +1 -1
  128. package/dist/elements/surfaces.js +2 -1
  129. package/dist/elements/tail-status.js +1 -1
  130. package/dist/elements/terminal-block.js +1 -1
  131. package/dist/elements/thread-list.js +1 -1
  132. package/dist/elements/thread-search.js +5 -4
  133. package/dist/elements/timeline.js +1 -1
  134. package/dist/elements/todo-list.js +2 -2
  135. package/dist/elements/tool-call.js +4 -3
  136. package/dist/elements/tool-error.js +2 -2
  137. package/dist/elements/tool-group.js +1 -1
  138. package/dist/elements/tool-timeline.js +4 -3
  139. package/dist/elements/trace-waterfall.js +1 -1
  140. package/dist/elements/verdict-row.js +2 -2
  141. package/dist/elements/voice-conversation.js +3 -2
  142. package/dist/elements/web-preview.js +1 -1
  143. package/dist/elements/web-search.js +2 -2
  144. package/dist/elements/work-collapse.js +2 -1
  145. package/dist/flow/node-card.js +3 -2
  146. package/dist/flow/use-flow-theme.js +2 -1
  147. package/dist/forms/_chassis.d.ts +26 -6
  148. package/dist/forms/_chassis.js +33 -8
  149. package/dist/forms/_listbox.js +8 -5
  150. package/dist/forms/checkbox.js +8 -2
  151. package/dist/forms/env-var-input.js +3 -2
  152. package/dist/forms/field.d.ts +2 -1
  153. package/dist/forms/field.js +15 -4
  154. package/dist/forms/file-upload.js +3 -2
  155. package/dist/forms/number-field.js +2 -1
  156. package/dist/forms/password-input.js +4 -2
  157. package/dist/forms/radio-group.js +6 -2
  158. package/dist/forms/rating.js +2 -1
  159. package/dist/forms/scrub-input.js +2 -1
  160. package/dist/forms/search-input.js +2 -1
  161. package/dist/forms/select.js +5 -2
  162. package/dist/forms/slider.js +6 -2
  163. package/dist/forms/switch.js +6 -2
  164. package/dist/forms/textarea.js +2 -1
  165. package/dist/forms/toggle.js +3 -1
  166. package/dist/index.d.ts +2 -2
  167. package/dist/index.js +2 -2
  168. package/dist/instruments/_data-row.js +2 -1
  169. package/dist/instruments/app-window-frame.js +1 -1
  170. package/dist/instruments/code-block.js +8 -2
  171. package/dist/instruments/group-bar.js +1 -1
  172. package/dist/instruments/ledger.js +6 -2
  173. package/dist/instruments/log-viewer.js +4 -3
  174. package/dist/instruments/progress.js +5 -2
  175. package/dist/instruments/seam-grid.js +5 -3
  176. package/dist/instruments/stat.js +10 -3
  177. package/dist/instruments/table.js +28 -10
  178. package/dist/instruments/terminal-frame.js +4 -2
  179. package/dist/instruments/usage-chart.js +1 -1
  180. package/dist/layout/_collapse.js +6 -1
  181. package/dist/layout/bento.js +7 -4
  182. package/dist/layout/breadcrumb.js +7 -3
  183. package/dist/layout/card.js +12 -6
  184. package/dist/layout/carousel.js +3 -2
  185. package/dist/layout/collapsible.js +5 -1
  186. package/dist/layout/container.js +2 -1
  187. package/dist/layout/description-list.js +4 -1
  188. package/dist/layout/frames.js +11 -5
  189. package/dist/layout/item.js +3 -2
  190. package/dist/layout/link.d.ts +16 -0
  191. package/dist/layout/link.js +22 -3
  192. package/dist/layout/pagination.js +2 -1
  193. package/dist/layout/preview.d.ts +32 -12
  194. package/dist/layout/preview.js +149 -40
  195. package/dist/layout/resizable.js +2 -1
  196. package/dist/layout/sidebar.js +11 -3
  197. package/dist/layout/stepper.js +6 -2
  198. package/dist/lib/cn.js +29 -2
  199. package/dist/midi/piano-keyboard.js +3 -2
  200. package/dist/midi/spectrum-visualizer.js +1 -1
  201. package/dist/midi/threshold-rail.js +2 -1
  202. package/dist/midi/timeline-ruler.js +1 -1
  203. package/dist/overlays/_surface.d.ts +72 -12
  204. package/dist/overlays/_surface.js +84 -12
  205. package/dist/overlays/command-palette.js +9 -5
  206. package/dist/overlays/dialog.d.ts +5 -0
  207. package/dist/overlays/dialog.js +6 -1
  208. package/dist/overlays/info-tip.js +2 -1
  209. package/dist/overlays/menubar.js +3 -1
  210. package/dist/overlays/popover.js +2 -1
  211. package/dist/overlays/toast.js +6 -2
  212. package/dist/overlays/tooltip.js +4 -1
  213. package/dist/primitives/button.d.ts +15 -0
  214. package/dist/primitives/button.js +40 -11
  215. package/dist/primitives/chip.d.ts +19 -1
  216. package/dist/primitives/chip.js +39 -17
  217. package/dist/primitives/kbd.d.ts +6 -0
  218. package/dist/primitives/kbd.js +10 -1
  219. package/dist/primitives/skeleton.js +1 -1
  220. package/dist/system/_focus-ring-field.js +29 -0
  221. package/dist/system/_focus-ring.js +125 -0
  222. package/dist/system/_paint-glow.js +22 -3
  223. package/dist/system/_paint-rest-shade.js +32 -0
  224. package/dist/system/_paint-rim.js +22 -4
  225. package/dist/system/_paint-stroke-surface-1.js +1 -1
  226. package/dist/system/_paint-stroke-surface-2.js +14 -1
  227. package/dist/system/_paint-texture.js +5 -2
  228. package/dist/system/_style-app-bar.js +65 -0
  229. package/dist/system/_style-band.js +57 -0
  230. package/dist/system/_style-body-leading.js +21 -0
  231. package/dist/system/_style-body-size.js +30 -0
  232. package/dist/system/_style-body-weight.js +24 -0
  233. package/dist/system/_style-body.js +27 -0
  234. package/dist/system/_style-caption.js +19 -0
  235. package/dist/system/_style-card-pad.js +43 -0
  236. package/dist/system/_style-check.js +33 -0
  237. package/dist/system/_style-chip.js +103 -0
  238. package/dist/system/_style-code.js +13 -0
  239. package/dist/system/_style-collapse.js +14 -0
  240. package/dist/system/_style-control-face.js +29 -0
  241. package/dist/system/_style-control-label.js +22 -0
  242. package/dist/system/_style-control-step.js +22 -0
  243. package/dist/system/_style-control.js +76 -0
  244. package/dist/system/_style-data-face.js +28 -0
  245. package/dist/system/_style-description.js +23 -0
  246. package/dist/system/_style-eyebrow.js +43 -0
  247. package/dist/system/_style-footer-rule.js +47 -0
  248. package/dist/system/_style-gutter.js +17 -0
  249. package/dist/system/_style-help-ink.js +14 -0
  250. package/dist/system/_style-help.js +29 -0
  251. package/dist/system/_style-input-face.js +34 -0
  252. package/dist/system/_style-kbd.js +46 -0
  253. package/dist/system/_style-label-case.js +36 -0
  254. package/dist/system/_style-label-face.js +32 -0
  255. package/dist/system/_style-label-ink.js +29 -0
  256. package/dist/system/_style-label-leading.js +14 -0
  257. package/dist/system/_style-label-size.js +36 -0
  258. package/dist/system/_style-label-tracking.js +45 -0
  259. package/dist/system/_style-label-weight.js +40 -0
  260. package/dist/system/_style-lede.js +49 -0
  261. package/dist/system/_style-link.js +46 -0
  262. package/dist/system/_style-menu.js +30 -0
  263. package/dist/system/_style-nav-item.js +41 -0
  264. package/dist/system/_style-nav-voice.js +43 -0
  265. package/dist/system/_style-option.js +42 -0
  266. package/dist/system/_style-overlay-title.js +35 -0
  267. package/dist/system/_style-page-title.js +48 -0
  268. package/dist/system/_style-popover-pad.js +13 -0
  269. package/dist/system/_style-quiet-ink.js +13 -0
  270. package/dist/system/_style-row-pad.js +13 -0
  271. package/dist/system/_style-seam.js +43 -0
  272. package/dist/system/_style-section-rule.js +26 -0
  273. package/dist/system/_style-segment.js +30 -0
  274. package/dist/system/_style-segmented-control.js +86 -0
  275. package/dist/system/_style-selected.js +36 -0
  276. package/dist/system/_style-stage-marks.js +26 -0
  277. package/dist/system/_style-tab.js +71 -0
  278. package/dist/system/_style-textarea.js +21 -0
  279. package/dist/system/_style-title.js +37 -0
  280. package/dist/system/_style-tooltip.js +17 -0
  281. package/dist/system/density.d.ts +15 -5
  282. package/dist/system/density.js +188 -25
  283. package/dist/system/index.d.ts +2 -2
  284. package/dist/system/index.js +2 -2
  285. package/dist/system/overrides.d.ts +1 -0
  286. package/dist/system/overrides.js +151 -3
  287. package/dist/system/portal.d.ts +3 -2
  288. package/dist/system/portal.js +22 -10
  289. package/dist/system/prepaint.d.ts +21 -5
  290. package/dist/system/prepaint.js +3 -1
  291. package/dist/system/published.d.ts +1 -0
  292. package/dist/system/published.js +131 -0
  293. package/dist/system/theme-provider.d.ts +118 -21
  294. package/dist/system/theme-provider.js +362 -73
  295. package/dist/system/theme-registry.d.ts +2 -1
  296. package/dist/system/theme-registry.js +27 -10
  297. package/dist/system/use-density.js +4 -3
  298. package/dist/system/use-theme.d.ts +5 -2
  299. package/dist/system/use-theme.js +7 -4
  300. package/dist/system/vocabulary.js +2 -2
  301. package/dist/theming/create-theme.js +12 -6
  302. package/dist/theming/serialize.d.ts +34 -2
  303. package/dist/theming/serialize.js +86 -4
  304. package/manifest/components/accordion.json +7 -1
  305. package/manifest/components/agent-pile.json +3 -0
  306. package/manifest/components/alert-dialog.json +29 -3
  307. package/manifest/components/app-bar.json +19 -2
  308. package/manifest/components/app-shell.json +5 -0
  309. package/manifest/components/ask-box.json +3 -1
  310. package/manifest/components/autocomplete.json +38 -1
  311. package/manifest/components/band.json +7 -3
  312. package/manifest/components/bento.json +12 -1
  313. package/manifest/components/breadcrumb.json +8 -1
  314. package/manifest/components/button.json +27 -3
  315. package/manifest/components/calendar.json +7 -0
  316. package/manifest/components/card.json +22 -1
  317. package/manifest/components/carousel.json +4 -1
  318. package/manifest/components/channel-matrix.json +31 -3
  319. package/manifest/components/chart-tooltip-content.json +29 -3
  320. package/manifest/components/chat-empty-state.json +3 -1
  321. package/manifest/components/checkbox-group.json +14 -0
  322. package/manifest/components/checkbox.json +14 -0
  323. package/manifest/components/chip.json +16 -1
  324. package/manifest/components/clamp.json +3 -1
  325. package/manifest/components/code-block.json +10 -1
  326. package/manifest/components/collapsible.json +13 -2
  327. package/manifest/components/color-area.json +4 -2
  328. package/manifest/components/color-field.json +10 -0
  329. package/manifest/components/color-picker.json +10 -0
  330. package/manifest/components/color-slider.json +3 -1
  331. package/manifest/components/colors-section.json +9 -1
  332. package/manifest/components/combobox.json +38 -1
  333. package/manifest/components/command-palette.json +28 -3
  334. package/manifest/components/composer-actions.json +3 -0
  335. package/manifest/components/composer-attach-button.json +3 -0
  336. package/manifest/components/composer-attachment-chip.json +3 -0
  337. package/manifest/components/composer-attachments.json +3 -0
  338. package/manifest/components/composer-bar.json +3 -0
  339. package/manifest/components/composer-command-item.json +3 -0
  340. package/manifest/components/composer-context.json +3 -0
  341. package/manifest/components/composer-input.json +3 -0
  342. package/manifest/components/composer-menu-item.json +3 -0
  343. package/manifest/components/composer-menu.json +3 -0
  344. package/manifest/components/composer-model-item.json +3 -0
  345. package/manifest/components/composer-model-trigger.json +3 -0
  346. package/manifest/components/composer-person-item.json +3 -0
  347. package/manifest/components/composer-send.json +3 -0
  348. package/manifest/components/composer-toolbar.json +3 -0
  349. package/manifest/components/composer-voice-button.json +3 -0
  350. package/manifest/components/composer-voice.json +3 -0
  351. package/manifest/components/composer.json +10 -0
  352. package/manifest/components/confidence-marker.json +3 -1
  353. package/manifest/components/container.json +2 -1
  354. package/manifest/components/context-menu.json +29 -3
  355. package/manifest/components/conversation-search.json +3 -1
  356. package/manifest/components/cue-mark.json +2 -2
  357. package/manifest/components/cue-portal-frame.json +1 -1
  358. package/manifest/components/data-row.json +3 -1
  359. package/manifest/components/data-tree.json +3 -1
  360. package/manifest/components/date-field.json +10 -0
  361. package/manifest/components/date-picker.json +10 -0
  362. package/manifest/components/date-range-picker.json +10 -0
  363. package/manifest/components/delegation-card.json +3 -1
  364. package/manifest/components/density.json +15 -7
  365. package/manifest/components/description-list.json +6 -1
  366. package/manifest/components/dialog.json +30 -3
  367. package/manifest/components/disclosure.json +13 -2
  368. package/manifest/components/dmx-bar.json +28 -3
  369. package/manifest/components/dmx-strip.json +28 -3
  370. package/manifest/components/drawer.json +29 -3
  371. package/manifest/components/dropdown-menu.json +29 -3
  372. package/manifest/components/edit-message.json +3 -1
  373. package/manifest/components/elements-command-palette.json +3 -1
  374. package/manifest/components/elements-composer.json +3 -0
  375. package/manifest/components/empty-state-composer.json +3 -1
  376. package/manifest/components/empty-state-greeting.json +3 -1
  377. package/manifest/components/empty-state-suggestion.json +3 -1
  378. package/manifest/components/empty-state-suggestions.json +3 -1
  379. package/manifest/components/env-var-input.json +10 -1
  380. package/manifest/components/export-dialog.json +6 -1
  381. package/manifest/components/eyebrow.json +13 -2
  382. package/manifest/components/feedback-dialog.json +3 -0
  383. package/manifest/components/field-description.json +14 -0
  384. package/manifest/components/field-error.json +14 -0
  385. package/manifest/components/field-label.json +15 -1
  386. package/manifest/components/field.json +14 -0
  387. package/manifest/components/file-upload.json +3 -0
  388. package/manifest/components/footer.json +14 -1
  389. package/manifest/components/frames.json +14 -1
  390. package/manifest/components/hover-card.json +29 -3
  391. package/manifest/components/info-tip.json +3 -0
  392. package/manifest/components/input-group.json +10 -0
  393. package/manifest/components/input.json +10 -0
  394. package/manifest/components/item.json +3 -1
  395. package/manifest/components/kbd.json +10 -1
  396. package/manifest/components/ledger.json +9 -2
  397. package/manifest/components/link.json +10 -0
  398. package/manifest/components/log-viewer.json +3 -0
  399. package/manifest/components/map-answer.json +3 -1
  400. package/manifest/components/markdown-text.json +3 -0
  401. package/manifest/components/menubar.json +32 -4
  402. package/manifest/components/message-list.json +3 -0
  403. package/manifest/components/message.json +6 -1
  404. package/manifest/components/mobile-composer.json +3 -1
  405. package/manifest/components/multi-select.json +38 -1
  406. package/manifest/components/musical-time-input.json +10 -0
  407. package/manifest/components/navigation-menu.json +32 -3
  408. package/manifest/components/node-card.json +3 -0
  409. package/manifest/components/number-field.json +10 -1
  410. package/manifest/components/otp-field.json +9 -0
  411. package/manifest/components/page-shell.json +14 -0
  412. package/manifest/components/pagination.json +3 -0
  413. package/manifest/components/panel-header.json +10 -0
  414. package/manifest/components/panel.json +11 -1
  415. package/manifest/components/password-input.json +10 -1
  416. package/manifest/components/permission-scopes.json +3 -1
  417. package/manifest/components/piano-keyboard.json +3 -0
  418. package/manifest/components/popover.json +30 -3
  419. package/manifest/components/preset-section.json +9 -1
  420. package/manifest/components/preview.json +24 -10
  421. package/manifest/components/progress.json +6 -1
  422. package/manifest/components/prompt-library.json +3 -1
  423. package/manifest/components/queue-dock.json +3 -1
  424. package/manifest/components/radio-group.json +8 -0
  425. package/manifest/components/radio.json +8 -0
  426. package/manifest/components/rating.json +4 -1
  427. package/manifest/components/reasoning-panel.json +3 -1
  428. package/manifest/components/recommendation-card.json +1 -1
  429. package/manifest/components/resizable.json +4 -1
  430. package/manifest/components/revert-dock.json +3 -1
  431. package/manifest/components/row.json +5 -1
  432. package/manifest/components/scroll-area.json +4 -2
  433. package/manifest/components/scrollable-tabs-list.json +18 -0
  434. package/manifest/components/scrub-input.json +10 -1
  435. package/manifest/components/seam-cell.json +1 -0
  436. package/manifest/components/seam-grid.json +1 -0
  437. package/manifest/components/seam-list.json +5 -1
  438. package/manifest/components/search-input.json +10 -1
  439. package/manifest/components/section-header.json +15 -2
  440. package/manifest/components/segmented-control.json +16 -0
  441. package/manifest/components/select.json +17 -0
  442. package/manifest/components/settings-panel.json +3 -0
  443. package/manifest/components/shape-section.json +9 -1
  444. package/manifest/components/sheet.json +29 -3
  445. package/manifest/components/shimmer-label.json +3 -0
  446. package/manifest/components/sidebar.json +19 -2
  447. package/manifest/components/slider.json +8 -0
  448. package/manifest/components/sources.json +3 -1
  449. package/manifest/components/stat.json +9 -0
  450. package/manifest/components/status-bar.json +4 -0
  451. package/manifest/components/stepper.json +8 -0
  452. package/manifest/components/swap-label.json +3 -0
  453. package/manifest/components/switch.json +8 -0
  454. package/manifest/components/table-scroll-region.json +20 -2
  455. package/manifest/components/table.json +20 -2
  456. package/manifest/components/tabs.json +19 -1
  457. package/manifest/components/tags-input.json +38 -1
  458. package/manifest/components/terminal-frame.json +3 -0
  459. package/manifest/components/textarea.json +12 -0
  460. package/manifest/components/theme-configurator.json +29 -3
  461. package/manifest/components/theme-provider.json +31 -19
  462. package/manifest/components/thread-search.json +3 -1
  463. package/manifest/components/threshold-rail.json +3 -0
  464. package/manifest/components/time-field.json +10 -0
  465. package/manifest/components/toast.json +30 -2
  466. package/manifest/components/toggle.json +4 -0
  467. package/manifest/components/token-editor.json +6 -1
  468. package/manifest/components/tool-call-card.json +9 -2
  469. package/manifest/components/tool-call.json +3 -1
  470. package/manifest/components/tool-timeline.json +3 -1
  471. package/manifest/components/toolbar.json +3 -1
  472. package/manifest/components/tooltip.json +31 -3
  473. package/manifest/components/tree-visibility-toggle.json +3 -0
  474. package/manifest/components/tree.json +3 -0
  475. package/manifest/components/universe-grid.json +3 -0
  476. package/manifest/components/voice-conversation.json +3 -0
  477. package/manifest/components/work-collapse.json +3 -1
  478. package/manifest/manifest.json +204 -184
  479. package/manifest/tokens.json +241 -4
  480. package/package.json +5 -5
@@ -1,5 +1,15 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { LABEL_INK } from "../system/_style-label-ink.js";
4
+ import { BODY_WEIGHT } from "../system/_style-body-weight.js";
5
+ import { LABEL_FACE } from "../system/_style-label-face.js";
6
+ import { LABEL_WEIGHT } from "../system/_style-label-weight.js";
7
+ import { LABEL_CASE } from "../system/_style-label-case.js";
8
+ import { LABEL_TRACKING_TIGHT } from "../system/_style-label-tracking.js";
9
+ import { LABEL_SIZE } from "../system/_style-label-size.js";
10
+ import { BODY_LEADING_INHERIT } from "../system/_style-body-leading.js";
11
+ import { HELP_INK, HELP_SIZE } from "../system/_style-help.js";
12
+ import { LABEL_LEADING } from "../system/_style-label-leading.js";
3
13
  import * as React from "react";
4
14
  import { jsx } from "react/jsx-runtime";
5
15
  import { Field } from "@base-ui/react/field";
@@ -31,7 +41,8 @@ const Field$1 = React.forwardRef(function Field$2({ className, ...elementProps }
31
41
  });
32
42
  });
33
43
  /**
34
- * The name of a field: mono, uppercase, tracked out, one rung below body text.
44
+ * The name of a field: mono, uppercase, tracked out, one rung below body
45
+ * text — by default, the style set's choice inside one.
35
46
  *
36
47
  * Renders a real `<label>` wired to the field's control, so clicking it focuses
37
48
  * (or toggles) that control.
@@ -43,7 +54,7 @@ const FieldLabel = React.forwardRef(function FieldLabel({ className, ...elementP
43
54
  return /* @__PURE__ */ jsx(Field.Label, {
44
55
  ref,
45
56
  "data-slot": "field-label",
46
- className: cn("font-mono text-(length:--cue-text-label) leading-none tracking-(--cue-tracking-caps-tight) text-fg-muted uppercase select-none data-[disabled]:opacity-40", className),
57
+ className: cn(LABEL_SIZE, LABEL_LEADING, "select-none data-[disabled]:opacity-40", LABEL_INK, LABEL_WEIGHT, LABEL_FACE, LABEL_TRACKING_TIGHT, LABEL_CASE, className),
47
58
  ...elementProps
48
59
  });
49
60
  });
@@ -58,7 +69,7 @@ const FieldDescription = React.forwardRef(function FieldDescription({ className,
58
69
  return /* @__PURE__ */ jsx(Field.Description, {
59
70
  ref,
60
71
  "data-slot": "field-description",
61
- className: cn("font-mono text-(length:--cue-text-micro) text-fg-subtle", className),
72
+ className: cn(LABEL_FACE, HELP_SIZE, BODY_LEADING_INHERIT, HELP_INK, BODY_WEIGHT, className),
62
73
  ...elementProps
63
74
  });
64
75
  });
@@ -77,7 +88,7 @@ const FieldDescription = React.forwardRef(function FieldDescription({ className,
77
88
  */
78
89
  const FieldError = React.forwardRef(function FieldError({ className, issues, match, children, ...elementProps }, ref) {
79
90
  if (issues !== void 0 && issues.length === 0) return null;
80
- const classes = cn("font-mono text-(length:--cue-text-micro) text-danger", className);
91
+ const classes = cn(LABEL_FACE, HELP_SIZE, "text-danger", BODY_WEIGHT, className);
81
92
  if (issues === void 0) return /* @__PURE__ */ jsx(Field.Error, {
82
93
  ref,
83
94
  "data-slot": "field-error",
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING } from "../system/_focus-ring.js";
3
4
  import { CrossGlyph } from "./_glyphs.js";
4
5
  import * as React from "react";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -143,7 +144,7 @@ const FileUpload = React.forwardRef(function FileUpload({ className, zoneClassNa
143
144
  setDragging(false);
144
145
  intake(event.dataTransfer?.files ?? null);
145
146
  },
146
- className: cn("flex w-full cursor-pointer flex-col items-center justify-center gap-(--cue-space-1) rounded-(--radius-control) border border-dashed border-border bg-sunken px-(--cue-space-4) py-(--cue-space-5) font-mono text-(length:--cue-text-ui) text-fg-muted outline-none transition-colors duration-150 hover:border-border-strong hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-40 data-[dragging=true]:border-accent data-[dragging=true]:bg-accent-soft data-[dragging=true]:text-fg motion-reduce:transition-none", zoneClassName),
147
+ className: cn(`flex w-full cursor-pointer flex-col items-center justify-center gap-(--cue-space-1) rounded-control border border-dashed border-border bg-sunken px-(--cue-space-4) py-(--cue-space-5) font-mono text-(length:--cue-text-ui) text-fg-muted outline-none transition-colors duration-150 hover:border-border-strong hover:text-fg ${FOCUS_RING} disabled:pointer-events-none disabled:opacity-40 data-[dragging=true]:border-accent data-[dragging=true]:bg-accent-soft data-[dragging=true]:text-fg motion-reduce:transition-none`, zoneClassName),
147
148
  children: [/* @__PURE__ */ jsx("span", { children: label }), hint === void 0 ? null : /* @__PURE__ */ jsx("span", {
148
149
  className: "text-(length:--cue-text-label) text-fg-subtle",
149
150
  children: hint
@@ -222,7 +223,7 @@ function FileUploadRow({ file, onRemove, removeLabel }) {
222
223
  "aria-label": removeLabel(file),
223
224
  "data-slot": "file-upload-remove",
224
225
  onClick: () => onRemove(file.id),
225
- className: "flex size-icon-sm shrink-0 cursor-pointer items-center justify-center rounded-(--radius-control) border-0 bg-transparent p-0 text-fg-subtle outline-none transition-colors hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent motion-reduce:transition-none",
226
+ className: `flex size-icon-sm shrink-0 cursor-pointer items-center justify-center rounded-control border-0 bg-transparent p-0 text-fg-subtle outline-none transition-colors hover:text-fg ${FOCUS_RING} motion-reduce:transition-none`,
226
227
  children: /* @__PURE__ */ jsx(CrossGlyph, { className: "size-full" })
227
228
  })
228
229
  ]
@@ -1,12 +1,13 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING_INSET } from "../system/_focus-ring.js";
3
4
  import { bareControlClasses, controlGroupFocusClasses, controlSurface } from "./_chassis.js";
4
5
  import * as React from "react";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
7
  import { NumberField } from "@base-ui/react/number-field";
7
8
  //#region src/forms/number-field.tsx
8
9
  /** The − and + affordances: square, borderless, and quiet until hovered. */
9
- const stepperClasses = "flex shrink-0 items-center justify-center border-0 bg-transparent p-0 font-mono text-fg-muted leading-none select-none outline-none transition-colors hover:bg-surface-2 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-40";
10
+ const stepperClasses = `flex shrink-0 items-center justify-center border-0 bg-transparent p-0 font-mono text-fg-muted leading-none select-none outline-none transition-colors hover:bg-surface-2 hover:text-fg ${FOCUS_RING_INSET} data-[disabled]:pointer-events-none data-[disabled]:opacity-40`;
10
11
  /**
11
12
  * A numeric control with explicit − / + affordances and no native spinners.
12
13
  *
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING } from "../system/_focus-ring.js";
3
4
  import { InputGroup } from "./input-group.js";
4
5
  import { Input } from "./input.js";
5
6
  import { EyeGlyph, EyeOffGlyph } from "./_glyphs.js";
@@ -35,6 +36,7 @@ const PasswordInput = React.forwardRef(function PasswordInput({ className, revea
35
36
  revealed,
36
37
  revealedProp
37
38
  ]);
39
+ const RevealGlyph = revealed ? EyeOffGlyph : EyeGlyph;
38
40
  return /* @__PURE__ */ jsx(InputGroup, {
39
41
  size,
40
42
  className,
@@ -44,8 +46,8 @@ const PasswordInput = React.forwardRef(function PasswordInput({ className, revea
44
46
  "aria-label": revealed ? hideLabel : revealLabel,
45
47
  disabled,
46
48
  onClick: toggle,
47
- className: "flex shrink-0 cursor-pointer items-center justify-center rounded-(--radius-control) text-fg-subtle outline-none transition-colors hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-40 aria-pressed:text-fg",
48
- children: /* @__PURE__ */ jsx(revealed ? EyeOffGlyph : EyeGlyph, { className: "size-icon-md" })
49
+ className: `flex shrink-0 cursor-pointer items-center justify-center rounded-control text-fg-subtle outline-none transition-colors hover:text-fg ${FOCUS_RING} disabled:pointer-events-none disabled:opacity-40 aria-pressed:text-fg`,
50
+ children: /* @__PURE__ */ jsx(RevealGlyph, { className: "size-icon-md" })
49
51
  }) : void 0,
50
52
  children: /* @__PURE__ */ jsx(Input, {
51
53
  ref,
@@ -1,5 +1,9 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING } from "../system/_focus-ring.js";
4
+ import { CONTROL_FACE } from "../system/_style-control-face.js";
5
+ import { LABEL_INK } from "../system/_style-label-ink.js";
6
+ import { CONTROL_LABEL_WEIGHT } from "../system/_style-control-label.js";
3
7
  import * as React from "react";
4
8
  import { jsx, jsxs } from "react/jsx-runtime";
5
9
  import { Radio } from "@base-ui/react/radio";
@@ -46,14 +50,14 @@ const Radio$1 = React.forwardRef(function Radio$2({ className, label, size = "md
46
50
  ref,
47
51
  "data-slot": "radio",
48
52
  "aria-labelledby": hasLabel ? labelId : void 0,
49
- className: cn("flex shrink-0 items-center justify-center rounded-full border border-border bg-sunken text-accent outline-none transition-colors", size === "sm" ? "size-icon-sm" : "size-icon-md", "hover:border-border-strong", "data-[checked]:border-accent", "focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent", "data-[disabled]:pointer-events-none data-[disabled]:opacity-40", "data-[invalid]:border-danger", className),
53
+ className: cn("flex shrink-0 items-center justify-center rounded-full border border-border bg-sunken text-accent outline-none transition-colors", size === "sm" ? "size-icon-sm" : "size-icon-md", "hover:border-border-strong", "data-[checked]:border-accent", `${FOCUS_RING}`, "data-[disabled]:pointer-events-none data-[disabled]:opacity-40", "data-[invalid]:border-danger", className),
50
54
  ...elementProps,
51
55
  children: /* @__PURE__ */ jsx(Radio.Indicator, { className: "block size-1/2 rounded-full bg-accent data-[unchecked]:hidden" })
52
56
  });
53
57
  if (!hasLabel) return dot;
54
58
  return /* @__PURE__ */ jsxs("label", {
55
59
  "data-slot": "radio-label",
56
- className: "inline-flex cursor-pointer items-center gap-(--cue-space-3) font-mono text-(length:--cue-text-ui) text-fg-muted select-none has-[[data-disabled]]:cursor-default has-[[data-disabled]]:opacity-40",
60
+ className: cn("inline-flex cursor-pointer items-center gap-(--cue-space-3) text-(length:--cue-text-ui) select-none has-[[data-disabled]]:cursor-default has-[[data-disabled]]:opacity-40", LABEL_INK, CONTROL_LABEL_WEIGHT, CONTROL_FACE),
57
61
  children: [dot, /* @__PURE__ */ jsx("span", {
58
62
  id: labelId,
59
63
  children: label
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING_OFFSET_2 } from "../system/_focus-ring.js";
3
4
  import { StarGlyph } from "./_glyphs.js";
4
5
  import * as React from "react";
5
6
  import { jsx } from "react/jsx-runtime";
@@ -10,7 +11,7 @@ const MARK_SIZES = {
10
11
  md: "size-icon-md",
11
12
  lg: "size-[calc(var(--cue-icon-md)*1.35)]"
12
13
  };
13
- const MARK_CLASSES = "flex cursor-pointer items-center justify-center border-0 bg-transparent p-0 text-fg-subtle transition-colors duration-150 outline-none hover:text-accent focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-40 aria-checked:text-accent";
14
+ const MARK_CLASSES = `flex cursor-pointer items-center justify-center border-0 bg-transparent p-0 text-fg-subtle transition-colors duration-150 outline-none hover:text-accent ${FOCUS_RING_OFFSET_2} disabled:pointer-events-none disabled:opacity-40 aria-checked:text-accent`;
14
15
  /**
15
16
  * A 0–N rating, drawn as marks.
16
17
  *
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING } from "../system/_focus-ring.js";
3
4
  import { bareControlClasses, controlGroupFocusClasses, controlVariants } from "./_chassis.js";
4
5
  import * as React from "react";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -240,7 +241,7 @@ const ScrubInput = React.forwardRef(function ScrubInput({ className, value, onCh
240
241
  disabled,
241
242
  onPointerDown: (event) => event.stopPropagation(),
242
243
  onClick: cycleUnit,
243
- className: "shrink-0 cursor-pointer rounded-(--radius-control) border-0 bg-transparent p-0 font-mono text-[length:inherit] text-fg-subtle outline-none transition-colors hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none",
244
+ className: `shrink-0 cursor-pointer rounded-control border-0 bg-transparent p-0 font-mono text-[length:inherit] text-fg-subtle outline-none transition-colors hover:text-fg ${FOCUS_RING} disabled:pointer-events-none`,
244
245
  children: unit
245
246
  })]
246
247
  });
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING } from "../system/_focus-ring.js";
3
4
  import { InputGroup } from "./input-group.js";
4
5
  import { Input } from "./input.js";
5
6
  import { CrossGlyph, SearchGlyph } from "./_glyphs.js";
@@ -93,7 +94,7 @@ const SearchInput = React.forwardRef(function SearchInput({ className, value, de
93
94
  type: "button",
94
95
  "aria-label": clearLabel,
95
96
  onClick: clear,
96
- className: "flex shrink-0 cursor-pointer items-center justify-center rounded-(--radius-control) text-fg-subtle outline-none transition-colors hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent",
97
+ className: `flex shrink-0 cursor-pointer items-center justify-center rounded-control text-fg-subtle outline-none transition-colors hover:text-fg ${FOCUS_RING}`,
97
98
  children: /* @__PURE__ */ jsx(CrossGlyph, { className: "size-icon-sm" })
98
99
  }),
99
100
  children: /* @__PURE__ */ jsx(Input, {
@@ -1,9 +1,12 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { CONTROL_FACE } from "../system/_style-control-face.js";
3
4
  import { controlVariants } from "./_chassis.js";
4
5
  import { ELEVATION_2 } from "../system/_paint-elevation.js";
5
6
  import { useCuePortalProps } from "../system/portal.js";
7
+ import { STROKE_SURFACE_2 } from "../system/_paint-stroke-surface-2.js";
6
8
  import { CaretGlyph, TickGlyph } from "./_glyphs.js";
9
+ import { OPTION_ROW } from "../system/_style-option.js";
7
10
  import * as React from "react";
8
11
  import { jsx, jsxs } from "react/jsx-runtime";
9
12
  import { Select } from "@base-ui/react/select";
@@ -66,14 +69,14 @@ const Select$1 = React.forwardRef(function Select$2({ items, value, defaultValue
66
69
  alignItemWithTrigger: false,
67
70
  children: /* @__PURE__ */ jsx(Select.Popup, {
68
71
  "data-slot": "select-popup",
69
- className: cn(`min-w-(--anchor-width) origin-(--transform-origin) overflow-hidden rounded-(--radius-overlay) border border-border-overlay bg-surface-2 py-(--cue-space-1) ${ELEVATION_2} outline-none`, "transition-[opacity,scale] duration-100 ease-out motion-reduce:transition-none", "data-[starting-style]:scale-[0.98] data-[starting-style]:opacity-0", "data-[ending-style]:scale-[0.98] data-[ending-style]:opacity-0", popupClassName),
72
+ className: cn(`min-w-(--anchor-width) origin-(--transform-origin) overflow-hidden rounded-overlay ${STROKE_SURFACE_2} py-(--cue-space-1) ${ELEVATION_2} outline-none`, "transition-[opacity,scale] duration-100 ease-out motion-reduce:transition-none", "data-[starting-style]:scale-[0.98] data-[starting-style]:opacity-0", "data-[ending-style]:scale-[0.98] data-[ending-style]:opacity-0", popupClassName),
70
73
  children: /* @__PURE__ */ jsx(Select.List, {
71
74
  className: "max-h-(--available-height) overflow-y-auto",
72
75
  children: items.map((item) => /* @__PURE__ */ jsxs(Select.Item, {
73
76
  value: item.value,
74
77
  disabled: item.disabled,
75
78
  "data-slot": "select-item",
76
- className: "flex h-control-sm cursor-default items-center gap-(--cue-space-2) px-(--cue-space-3) font-mono text-(length:--cue-text-ui) text-fg-muted outline-none select-none data-[highlighted]:bg-accent-soft data-[highlighted]:text-fg data-[selected]:text-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-40",
79
+ className: cn("flex h-control-sm cursor-default items-center gap-(--cue-space-2) px-(--cue-space-3) text-(length:--cue-text-ui) outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40", OPTION_ROW, CONTROL_FACE),
77
80
  children: [/* @__PURE__ */ jsx("span", {
78
81
  className: "flex size-icon-sm shrink-0 items-center justify-center",
79
82
  children: /* @__PURE__ */ jsx(Select.ItemIndicator, { children: /* @__PURE__ */ jsx(TickGlyph, { className: "size-icon-sm" }) })
@@ -1,5 +1,9 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING_OFFSET_2 } from "../system/_focus-ring.js";
4
+ import { LABEL_FACE } from "../system/_style-label-face.js";
5
+ import { LABEL_CASE } from "../system/_style-label-case.js";
6
+ import { LABEL_TRACKING_TIGHT } from "../system/_style-label-tracking.js";
3
7
  import * as React from "react";
4
8
  import { jsx, jsxs } from "react/jsx-runtime";
5
9
  import { Slider } from "@base-ui/react/slider";
@@ -40,7 +44,7 @@ const Slider$1 = React.forwardRef(function Slider$2({ className, onCommit, label
40
44
  className: cn("flex w-full flex-col gap-(--cue-space-2)", className),
41
45
  ...elementProps,
42
46
  children: [label === void 0 && !showValue ? null : /* @__PURE__ */ jsxs("div", {
43
- className: "flex items-baseline justify-between gap-(--cue-space-3) font-mono text-(length:--cue-text-label) tracking-(--cue-tracking-caps-tight) text-fg-muted uppercase",
47
+ className: cn("flex items-baseline justify-between gap-(--cue-space-3) text-(length:--cue-text-label) text-fg-muted", LABEL_FACE, LABEL_TRACKING_TIGHT, LABEL_CASE),
44
48
  children: [label === void 0 ? /* @__PURE__ */ jsx("span", {}) : /* @__PURE__ */ jsx(Slider.Label, { children: label }), showValue ? /* @__PURE__ */ jsx(Slider.Value, { className: "tabular-nums text-fg normal-case tracking-normal" }) : null]
45
49
  }), /* @__PURE__ */ jsx(Slider.Control, {
46
50
  "data-slot": "slider-control",
@@ -55,7 +59,7 @@ const Slider$1 = React.forwardRef(function Slider$2({ className, onCommit, label
55
59
  index,
56
60
  "data-slot": "slider-thumb",
57
61
  "aria-label": ariaLabel === void 0 ? void 0 : count > 1 ? `${ariaLabel} ${index + 1}` : ariaLabel,
58
- className: "size-[0.5rem] rounded-full bg-accent outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-accent data-[disabled]:opacity-40"
62
+ className: `size-[0.5rem] rounded-full bg-accent outline-none ${FOCUS_RING_OFFSET_2} data-[disabled]:opacity-40`
59
63
  }, index))]
60
64
  })
61
65
  })]
@@ -1,5 +1,9 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING } from "../system/_focus-ring.js";
4
+ import { CONTROL_FACE } from "../system/_style-control-face.js";
5
+ import { LABEL_INK } from "../system/_style-label-ink.js";
6
+ import { CONTROL_LABEL_WEIGHT } from "../system/_style-control-label.js";
3
7
  import * as React from "react";
4
8
  import { jsx, jsxs } from "react/jsx-runtime";
5
9
  import { Switch } from "@base-ui/react/switch";
@@ -50,7 +54,7 @@ const Switch$1 = React.forwardRef(function Switch$2({ className, label, size = "
50
54
  ref,
51
55
  "data-slot": "switch",
52
56
  "aria-labelledby": hasLabel ? labelId : void 0,
53
- className: cn("relative inline-flex shrink-0 items-center rounded-full border border-border bg-surface-3 p-0 outline-none transition-colors duration-150 motion-reduce:transition-none", geometry.track, "hover:border-border-strong", "data-[checked]:border-accent data-[checked]:bg-accent", "focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent", "data-[disabled]:pointer-events-none data-[disabled]:opacity-40", "data-[invalid]:border-danger", className),
57
+ className: cn("relative inline-flex shrink-0 items-center rounded-full border border-border bg-surface-3 p-0 outline-none transition-colors duration-150 motion-reduce:transition-none", geometry.track, "hover:border-border-strong", "data-[checked]:border-accent data-[checked]:bg-accent", `${FOCUS_RING}`, "data-[disabled]:pointer-events-none data-[disabled]:opacity-40", "data-[invalid]:border-danger", className),
54
58
  ...elementProps,
55
59
  children: /* @__PURE__ */ jsx(Switch.Thumb, {
56
60
  "data-slot": "switch-thumb",
@@ -60,7 +64,7 @@ const Switch$1 = React.forwardRef(function Switch$2({ className, label, size = "
60
64
  if (!hasLabel) return control;
61
65
  return /* @__PURE__ */ jsxs("label", {
62
66
  "data-slot": "switch-label",
63
- className: "inline-flex cursor-pointer items-center gap-(--cue-space-3) font-mono text-(length:--cue-text-ui) text-fg-muted select-none has-[[data-disabled]]:cursor-default has-[[data-disabled]]:opacity-40",
67
+ className: cn("inline-flex cursor-pointer items-center gap-(--cue-space-3) text-(length:--cue-text-ui) select-none has-[[data-disabled]]:cursor-default has-[[data-disabled]]:opacity-40", LABEL_INK, CONTROL_LABEL_WEIGHT, CONTROL_FACE),
64
68
  children: [control, /* @__PURE__ */ jsx("span", {
65
69
  id: labelId,
66
70
  children: label
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
3
  import { controlSurface } from "./_chassis.js";
4
+ import { TEXTAREA_LEADING, TEXTAREA_PAD_Y } from "../system/_style-textarea.js";
4
5
  import * as React from "react";
5
6
  import { jsx } from "react/jsx-runtime";
6
7
  import { Field } from "@base-ui/react/field";
@@ -29,7 +30,7 @@ const Textarea = React.forwardRef(function Textarea({ className, rows = 3, ...el
29
30
  rows
30
31
  }),
31
32
  "data-slot": "textarea",
32
- className: cn(controlSurface, "resize-y px-(--cue-space-4) py-(--cue-space-3) text-(length:--cue-text-ui) leading-(--cue-leading-ui)", className),
33
+ className: cn(controlSurface, `resize-y px-(--cue-space-4) ${TEXTAREA_PAD_Y} text-(length:--cue-text-ui) ${TEXTAREA_LEADING}`, className),
33
34
  ...controlProps
34
35
  });
35
36
  });
@@ -1,5 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING } from "../system/_focus-ring.js";
4
+ import { CONTROL_FACE } from "../system/_style-control-face.js";
3
5
  import { cva } from "../lib/cva.js";
4
6
  import { ToggleGroupSizeContext } from "./toggle-group.js";
5
7
  import * as React from "react";
@@ -12,7 +14,7 @@ import { Toggle } from "@base-ui/react/toggle";
12
14
  * the highlighted menu row. A solid accent block on a 22px control reads as a
13
15
  * second, louder button and drowns the labels beside it.
14
16
  */
15
- const toggleVariants = cva("inline-flex shrink-0 cursor-pointer select-none items-center justify-center gap-[0.4em] whitespace-nowrap rounded-(--radius-control) border border-transparent bg-transparent font-mono font-medium text-fg-muted transition-colors duration-150 outline-none hover:bg-surface-2 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent data-[pressed]:bg-accent-soft data-[pressed]:text-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-40", {
17
+ const toggleVariants = cva(`inline-flex shrink-0 cursor-pointer select-none items-center justify-center gap-[0.4em] whitespace-nowrap rounded-control border border-transparent bg-transparent ${CONTROL_FACE} font-medium text-fg-muted transition-colors duration-150 outline-none hover:bg-surface-2 hover:text-fg ${FOCUS_RING} data-[pressed]:bg-accent-soft data-[pressed]:text-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-40`, {
16
18
  variants: {
17
19
  size: {
18
20
  sm: "text-(length:--cue-text-label)",
package/dist/index.d.ts CHANGED
@@ -135,5 +135,5 @@ import { ThemeRegistry } from "./system/vocabulary.js";
135
135
  import { useDensities, useFonts, useThemes } from "./system/theme-registry.js";
136
136
  import { ControlSize, useControlHeight, useDensity } from "./system/use-density.js";
137
137
  import { useTheme } from "./system/use-theme.js";
138
- import { DEFAULT_STYLE_SET, DensityEntry, DensityLevel, FontEntry, FontName, Mode, STYLE_SETS, StyleSet, ThemeManifest, ThemeName } from "./system/index.js";
139
- export { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, Accordion, type AccordionHeaderProps, type AccordionItemProps, type AccordionPanelProps, type AccordionRootProps, type AccordionTriggerProps, type AgentColorOptions, AgentPile, type AgentPileEntry, type AgentPileProps, type AgentPileSize, AlertDialog, type AlertDialogActionProps, type AlertDialogCancelProps, type AlertDialogContentProps, type AlertDialogDescriptionProps, type AlertDialogFooterProps, type AlertDialogRootProps, type AlertDialogTitleProps, type AlertDialogTriggerProps, AppBar, type AppBarActionsProps, type AppBarBrandProps, type AppBarLinkProps, type AppBarNavProps, type AppBarRegister, type AppBarRootProps, type AppBarSeparatorProps, AppShell, type AppShellAsideProps, type AppShellBarProps, type AppShellBodyProps, type AppShellContentProps, type AppShellNavTriggerProps, type AppShellRootProps, type AppShellScrollerProps, type AppShellSidebarProps, AppWindowFrame, type AppWindowFrameProps, type AskAnswer, AskBox, type AskBoxProps, type AskDanger, type AskKind, type AskOption, AudienceIcon, Autocomplete, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, Band, type BandProps, type BandSeparation, type BandWidth, type BarOverflow, Bento, type BentoColumns, type BentoMinHeight, type BentoRootProps, type BentoRowSpan, type BentoRows, type BentoSpan, type BentoTileProps, type BrandAssetProps, type BrandSize, type BrandTone, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, ButtonGroup, type ButtonGroupOrientation, type ButtonGroupProps, type ButtonProps, Card, type CardContentProps, type CardDescriptionProps, type CardFooterProps, type CardHeaderProps, type CardRootProps, type CardTitleProps, CatalogueIcon, ChannelBetaIcon, ChannelReleasedIcon, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, Chip, type ChipProps, CliToolIcon, CodeBlock, type CodeBlockProps, Collapsible, type CollapsiblePanelProps, type CollapsibleRootProps, type CollapsibleTriggerProps, Combobox, type ComboboxOption, type ComboboxProps, CommandPalette, type CommandPaletteItem, type CommandPaletteProps, Composer, type ComposerProps, type ComposerSubmitKey, Container, type ContainerProps, type ContainerWidth, ContextMenu, type ContextMenuContentProps, type ContextMenuRootProps, type ContextMenuTriggerProps, type ControlSize, type ControlVariantProps, CopyButton, type CopyButtonProps, CueLogotype, type CueLogotypeProps, CueMark, type CueMarkProps, CuePortalFrame, type CuePortalFrameProps, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, DataRow, type DataRowDisclosure, type DataRowRootProps, type DataRowSlotProps, DataTree, type DataTreeItem, type DataTreeProps, type DataTreeRowState, DelegationCard, type DelegationCardProps, type DelegationDirection, type DelegationStatus, Density, type DensityEntry, type DensityLevel, type DensityProps, DescriptionList, type DescriptionListDetailProps, type DescriptionListLayout, type DescriptionListRootProps, type DescriptionListTermProps, Dialog, type DialogCloseProps, type DialogContentProps, type DialogDescriptionProps, type DialogFooterProps, type DialogRootProps, type DialogTitleProps, type DialogTriggerProps, Disclosure, type DisclosureProps, Drawer, type DrawerCloseProps, type DrawerContentProps, type DrawerDescriptionProps, type DrawerFooterProps, type DrawerRootProps, type DrawerSwipeDirection, type DrawerTitleProps, type DrawerTriggerProps, DropdownMenu, type DropdownMenuCheckboxItemProps, type DropdownMenuContentProps, type DropdownMenuGroupProps, type DropdownMenuItemProps, type DropdownMenuLabelProps, type DropdownMenuRootProps, type DropdownMenuSeparatorProps, type DropdownMenuTriggerProps, EmptyState, type EmptyStateProps, EnvVarInput, type EnvVarInputProps, Eyebrow, type EyebrowProps, Field, FieldDescription, type FieldDescriptionProps, FieldError, type FieldErrorProps, type FieldIssue, FieldLabel, type FieldLabelProps, type FieldProps, type FilePartition, type FilePartitionOptions, type FileRejectReason, type FileRejection, FileUpload, type FileUploadProps, FolderIcon, type FontEntry, type FontFamilies, type FontName, Footer, type FooterProps, type FormControlSize, Frames, type FramesHeight, type FramesItemProps, type FramesLayout, type FramesRootProps, Grid, type GridColumns, type GridProps, GroupBar, type GroupBarItem, type GroupBarProps, type GroupBarTone, HoverCard, type HoverCardContentProps, type HoverCardRootProps, type HoverCardTriggerProps, IconButton, type IconButtonProps, InfoTip, type InfoTipProps, Input, InputGroup, type InputGroupProps, type InputProps, Inspector, type InspectorFooterProps, type InspectorRootProps, type InspectorRowProps, type InspectorSectionProps, Item, type ItemProps, Kbd, type KbdProps, Ledger, type LedgerEmptyProps, type LedgerGroupProps, type LedgerRootProps, type LedgerTierProps, Link, type LinkProps, McpServerIcon, Menubar, type MenubarContentProps, type MenubarMenuProps, type MenubarRootProps, type MenubarTriggerProps, Message, MessageList, type MessageListProps, type MessageProps, type MessageRole, Meter, type MeterProps, type MeterProvenance, type MeterTone, type Mode, MultiSelect, type MultiSelectProps, NavigationMenu, type NavigationMenuContentProps, type NavigationMenuItemProps, type NavigationMenuLinkProps, type NavigationMenuListProps, type NavigationMenuRootProps, type NavigationMenuTriggerProps, type NavigationMenuViewportProps, NumberField, type NumberFieldProps, OTPField, type OTPFieldProps, OVERLAY_SIDE_OFFSET, PageShell, type PageShellProps, type PageWidth, Pagination, type PaginationEntry, type PaginationProps, Panel, PanelHeader, type PanelHeaderProps, type PanelProps, PasswordInput, type PasswordInputProps, type PersistedPreferences, Plussie, type PlussieExpression, type PlussieProps, Popover, type PopoverCloseProps, type PopoverContentProps, type PopoverDescriptionProps, type PopoverRootProps, type PopoverTitleProps, type PopoverTriggerProps, type PrepaintDefaults, type PrepaintOptions, Preview, type PreviewAxis, type PreviewGround, type PreviewPresentation, type PreviewProps, type PreviewResizeOptions, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, Rating, type RatingProps, type RatingSize, type ResolvedMode, Row, type RowProps, STYLE_SETS, ScrollArea, type ScrollAreaOrientation, type ScrollAreaProps, type ScrollEdges, ScrollableTabsList, type ScrollableTabsListProps, ScrubInput, type ScrubInputProps, SeamCell, type SeamCellProps, SeamGrid, type SeamGridProps, type SeamGround, SeamList, type SeamListProps, SearchInput, type SearchInputProps, SectionHeader, type SectionHeaderProps, SegmentedControl, type SegmentedControlItem, type SegmentedControlProps, type SegmentedControlSize, Select, type SelectOption, type SelectProps, Separator, type SeparatorProps, Sheet, type SheetCloseProps, type SheetContentProps, type SheetDescriptionProps, type SheetFooterProps, type SheetRootProps, type SheetTitleProps, type SheetTriggerProps, Sidebar, type SidebarItemProps, type SidebarRailProps, type SidebarRootProps, type SidebarSectionProps, Skeleton, type SkeletonProps, SkillIcon, Slider, type SliderProps, type SpaceStep, Sparkline, type SparklineProps, Spinner, type SpinnerProps, Stack, type StackAlign, StackIcon, type StackJustify, type StackProps, StacksMatrixIcon, Stat, type StatProps, type StatTone, StatusBar, type StatusBarGroupProps, type StatusBarItemProps, type StatusBarProminence, type StatusBarProps, type StatusBarTone, StatusDot, type StatusDotProps, type StatusTone, Stepper, type StepperProps, type StepperState, type StepperStep, type StyleSet, Switch, type SwitchProps, TAB_FADE_PX, TREE_GUIDE_GLYPHS, Table, type TableCaptionProps, type TableCellProps, type TableGroupRowProps, type TableHeadProps, type TableRootProps, type TableRowProps, TableScrollRegion, type TableScrollRegionProps, type TableSectionProps, Tabs, type TabsListProps, type TabsPanelProps, type TabsRootProps, type TabsTabProps, TagsInput, type TagsInputProps, TerminalFrame, type TerminalFrameLine, type TerminalFrameProps, type TerminalLine, type TerminalLineTone, type TerminalScript, type TerminalStep, Textarea, type TextareaProps, type ThemeContextValue, type ThemeManifest, type ThemeName, ThemeProvider, type ThemeProviderProps, type ThemeRegistry, Timeline, type TimelineContentProps, type TimelineItemProps, type TimelineMarkerProps, type TimelineRootProps, TitleBar, type TitleBarProps, Toast, type ToastManager, type ToastOptions, type ToastProviderProps, type ToastTone, type ToastViewportProps, Toggle, ToggleGroup, type ToggleGroupProps, type ToggleProps, type TokenOverrides, Toolbar, type ToolbarButtonProps, type ToolbarGroupProps, type ToolbarRootProps, type ToolbarSeparatorProps, Tooltip, type TooltipContentProps, type TooltipProviderProps, type TooltipRootProps, type TooltipTriggerProps, Tree, type TreeGuide, type TreeItem, type TreeProps, type TreeRow, type TreeVisibility, TreeVisibilityToggle, type TreeVisibilityToggleProps, TwoStepButton, type TwoStepButtonProps, type TwoStepTone, type UploadFile, type UploadStatus, UsageChart, type UsageChartPoint, type UsageChartProps, type UsageChartTone, activateRowFromClick, activateRowFromKeyDown, agentColor, agentColorStyle, bareControlClasses, buttonVariants, chipVariants, computeScrollEdges, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants, edgeFadeMask, envReference, flattenTree, isSafeTokenValue, itemVariants, linkVariants, menuItemClasses, menuLabelClasses, menuPopupClasses, menuSeparatorClasses, overlayDescriptionClasses, overlayFooterClasses, overlayModalTransitionClasses, overlayPopupTransitionClasses, overlayPositionerClasses, overlaySurfaceClasses, overlayTextClasses, overlayTitleClasses, paginationRange, parseEnvReference, partitionFiles, prepaintScript, rowVariants, scrimClasses, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useSidebar, useTheme, useThemes, useToast };
138
+ import { DEFAULT_PAINT, DEFAULT_STYLE_SET, DensityEntry, DensityLevel, FontEntry, FontName, Mode, PAINTS, Paint, STYLE_SETS, StyleSet, ThemeManifest, ThemeName } from "./system/index.js";
139
+ export { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, Accordion, type AccordionHeaderProps, type AccordionItemProps, type AccordionPanelProps, type AccordionRootProps, type AccordionTriggerProps, type AgentColorOptions, AgentPile, type AgentPileEntry, type AgentPileProps, type AgentPileSize, AlertDialog, type AlertDialogActionProps, type AlertDialogCancelProps, type AlertDialogContentProps, type AlertDialogDescriptionProps, type AlertDialogFooterProps, type AlertDialogRootProps, type AlertDialogTitleProps, type AlertDialogTriggerProps, AppBar, type AppBarActionsProps, type AppBarBrandProps, type AppBarLinkProps, type AppBarNavProps, type AppBarRegister, type AppBarRootProps, type AppBarSeparatorProps, AppShell, type AppShellAsideProps, type AppShellBarProps, type AppShellBodyProps, type AppShellContentProps, type AppShellNavTriggerProps, type AppShellRootProps, type AppShellScrollerProps, type AppShellSidebarProps, AppWindowFrame, type AppWindowFrameProps, type AskAnswer, AskBox, type AskBoxProps, type AskDanger, type AskKind, type AskOption, AudienceIcon, Autocomplete, type AutocompleteProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, Band, type BandProps, type BandSeparation, type BandWidth, type BarOverflow, Bento, type BentoColumns, type BentoMinHeight, type BentoRootProps, type BentoRowSpan, type BentoRows, type BentoSpan, type BentoTileProps, type BrandAssetProps, type BrandSize, type BrandTone, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, ButtonGroup, type ButtonGroupOrientation, type ButtonGroupProps, type ButtonProps, Card, type CardContentProps, type CardDescriptionProps, type CardFooterProps, type CardHeaderProps, type CardRootProps, type CardTitleProps, CatalogueIcon, ChannelBetaIcon, ChannelReleasedIcon, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, Chip, type ChipProps, CliToolIcon, CodeBlock, type CodeBlockProps, Collapsible, type CollapsiblePanelProps, type CollapsibleRootProps, type CollapsibleTriggerProps, Combobox, type ComboboxOption, type ComboboxProps, CommandPalette, type CommandPaletteItem, type CommandPaletteProps, Composer, type ComposerProps, type ComposerSubmitKey, Container, type ContainerProps, type ContainerWidth, ContextMenu, type ContextMenuContentProps, type ContextMenuRootProps, type ContextMenuTriggerProps, type ControlSize, type ControlVariantProps, CopyButton, type CopyButtonProps, CueLogotype, type CueLogotypeProps, CueMark, type CueMarkProps, CuePortalFrame, type CuePortalFrameProps, DEFAULT_PAINT, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, DataRow, type DataRowDisclosure, type DataRowRootProps, type DataRowSlotProps, DataTree, type DataTreeItem, type DataTreeProps, type DataTreeRowState, DelegationCard, type DelegationCardProps, type DelegationDirection, type DelegationStatus, Density, type DensityEntry, type DensityLevel, type DensityProps, DescriptionList, type DescriptionListDetailProps, type DescriptionListLayout, type DescriptionListRootProps, type DescriptionListTermProps, Dialog, type DialogCloseProps, type DialogContentProps, type DialogDescriptionProps, type DialogFooterProps, type DialogRootProps, type DialogTitleProps, type DialogTriggerProps, Disclosure, type DisclosureProps, Drawer, type DrawerCloseProps, type DrawerContentProps, type DrawerDescriptionProps, type DrawerFooterProps, type DrawerRootProps, type DrawerSwipeDirection, type DrawerTitleProps, type DrawerTriggerProps, DropdownMenu, type DropdownMenuCheckboxItemProps, type DropdownMenuContentProps, type DropdownMenuGroupProps, type DropdownMenuItemProps, type DropdownMenuLabelProps, type DropdownMenuRootProps, type DropdownMenuSeparatorProps, type DropdownMenuTriggerProps, EmptyState, type EmptyStateProps, EnvVarInput, type EnvVarInputProps, Eyebrow, type EyebrowProps, Field, FieldDescription, type FieldDescriptionProps, FieldError, type FieldErrorProps, type FieldIssue, FieldLabel, type FieldLabelProps, type FieldProps, type FilePartition, type FilePartitionOptions, type FileRejectReason, type FileRejection, FileUpload, type FileUploadProps, FolderIcon, type FontEntry, type FontFamilies, type FontName, Footer, type FooterProps, type FormControlSize, Frames, type FramesHeight, type FramesItemProps, type FramesLayout, type FramesRootProps, Grid, type GridColumns, type GridProps, GroupBar, type GroupBarItem, type GroupBarProps, type GroupBarTone, HoverCard, type HoverCardContentProps, type HoverCardRootProps, type HoverCardTriggerProps, IconButton, type IconButtonProps, InfoTip, type InfoTipProps, Input, InputGroup, type InputGroupProps, type InputProps, Inspector, type InspectorFooterProps, type InspectorRootProps, type InspectorRowProps, type InspectorSectionProps, Item, type ItemProps, Kbd, type KbdProps, Ledger, type LedgerEmptyProps, type LedgerGroupProps, type LedgerRootProps, type LedgerTierProps, Link, type LinkProps, McpServerIcon, Menubar, type MenubarContentProps, type MenubarMenuProps, type MenubarRootProps, type MenubarTriggerProps, Message, MessageList, type MessageListProps, type MessageProps, type MessageRole, Meter, type MeterProps, type MeterProvenance, type MeterTone, type Mode, MultiSelect, type MultiSelectProps, NavigationMenu, type NavigationMenuContentProps, type NavigationMenuItemProps, type NavigationMenuLinkProps, type NavigationMenuListProps, type NavigationMenuRootProps, type NavigationMenuTriggerProps, type NavigationMenuViewportProps, NumberField, type NumberFieldProps, OTPField, type OTPFieldProps, OVERLAY_SIDE_OFFSET, PAINTS, PageShell, type PageShellProps, type PageWidth, Pagination, type PaginationEntry, type PaginationProps, type Paint, Panel, PanelHeader, type PanelHeaderProps, type PanelProps, PasswordInput, type PasswordInputProps, type PersistedPreferences, Plussie, type PlussieExpression, type PlussieProps, Popover, type PopoverCloseProps, type PopoverContentProps, type PopoverDescriptionProps, type PopoverRootProps, type PopoverTitleProps, type PopoverTriggerProps, type PrepaintDefaults, type PrepaintOptions, Preview, type PreviewAxis, type PreviewGround, type PreviewPresentation, type PreviewProps, type PreviewResizeOptions, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, Rating, type RatingProps, type RatingSize, type ResolvedMode, Row, type RowProps, STYLE_SETS, ScrollArea, type ScrollAreaOrientation, type ScrollAreaProps, type ScrollEdges, ScrollableTabsList, type ScrollableTabsListProps, ScrubInput, type ScrubInputProps, SeamCell, type SeamCellProps, SeamGrid, type SeamGridProps, type SeamGround, SeamList, type SeamListProps, SearchInput, type SearchInputProps, SectionHeader, type SectionHeaderProps, SegmentedControl, type SegmentedControlItem, type SegmentedControlProps, type SegmentedControlSize, Select, type SelectOption, type SelectProps, Separator, type SeparatorProps, Sheet, type SheetCloseProps, type SheetContentProps, type SheetDescriptionProps, type SheetFooterProps, type SheetRootProps, type SheetTitleProps, type SheetTriggerProps, Sidebar, type SidebarItemProps, type SidebarRailProps, type SidebarRootProps, type SidebarSectionProps, Skeleton, type SkeletonProps, SkillIcon, Slider, type SliderProps, type SpaceStep, Sparkline, type SparklineProps, Spinner, type SpinnerProps, Stack, type StackAlign, StackIcon, type StackJustify, type StackProps, StacksMatrixIcon, Stat, type StatProps, type StatTone, StatusBar, type StatusBarGroupProps, type StatusBarItemProps, type StatusBarProminence, type StatusBarProps, type StatusBarTone, StatusDot, type StatusDotProps, type StatusTone, Stepper, type StepperProps, type StepperState, type StepperStep, type StyleSet, Switch, type SwitchProps, TAB_FADE_PX, TREE_GUIDE_GLYPHS, Table, type TableCaptionProps, type TableCellProps, type TableGroupRowProps, type TableHeadProps, type TableRootProps, type TableRowProps, TableScrollRegion, type TableScrollRegionProps, type TableSectionProps, Tabs, type TabsListProps, type TabsPanelProps, type TabsRootProps, type TabsTabProps, TagsInput, type TagsInputProps, TerminalFrame, type TerminalFrameLine, type TerminalFrameProps, type TerminalLine, type TerminalLineTone, type TerminalScript, type TerminalStep, Textarea, type TextareaProps, type ThemeContextValue, type ThemeManifest, type ThemeName, ThemeProvider, type ThemeProviderProps, type ThemeRegistry, Timeline, type TimelineContentProps, type TimelineItemProps, type TimelineMarkerProps, type TimelineRootProps, TitleBar, type TitleBarProps, Toast, type ToastManager, type ToastOptions, type ToastProviderProps, type ToastTone, type ToastViewportProps, Toggle, ToggleGroup, type ToggleGroupProps, type ToggleProps, type TokenOverrides, Toolbar, type ToolbarButtonProps, type ToolbarGroupProps, type ToolbarRootProps, type ToolbarSeparatorProps, Tooltip, type TooltipContentProps, type TooltipProviderProps, type TooltipRootProps, type TooltipTriggerProps, Tree, type TreeGuide, type TreeItem, type TreeProps, type TreeRow, type TreeVisibility, TreeVisibilityToggle, type TreeVisibilityToggleProps, TwoStepButton, type TwoStepButtonProps, type TwoStepTone, type UploadFile, type UploadStatus, UsageChart, type UsageChartPoint, type UsageChartProps, type UsageChartTone, activateRowFromClick, activateRowFromKeyDown, agentColor, agentColorStyle, bareControlClasses, buttonVariants, chipVariants, computeScrollEdges, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants, edgeFadeMask, envReference, flattenTree, isSafeTokenValue, itemVariants, linkVariants, menuItemClasses, menuLabelClasses, menuPopupClasses, menuSeparatorClasses, overlayDescriptionClasses, overlayFooterClasses, overlayModalTransitionClasses, overlayPopupTransitionClasses, overlayPositionerClasses, overlaySurfaceClasses, overlayTextClasses, overlayTitleClasses, paginationRange, parseEnvReference, partitionFiles, prepaintScript, rowVariants, scrimClasses, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useSidebar, useTheme, useThemes, useToast };
package/dist/index.js CHANGED
@@ -120,5 +120,5 @@ import { Kbd } from "./primitives/kbd.js";
120
120
  import { Skeleton } from "./primitives/skeleton.js";
121
121
  import { useControlHeight, useDensity } from "./system/use-density.js";
122
122
  import { useTheme } from "./system/use-theme.js";
123
- import { DEFAULT_STYLE_SET, STYLE_SETS } from "./system/index.js";
124
- export { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, Accordion, AgentPile, AlertDialog, AppBar, AppShell, AppWindowFrame, AskBox, AudienceIcon, Autocomplete, Avatar, AvatarGroup, Band, Bento, Breadcrumb, Button, ButtonGroup, Card, CatalogueIcon, ChannelBetaIcon, ChannelReleasedIcon, Checkbox, CheckboxGroup, Chip, CliToolIcon, CodeBlock, Collapsible, Combobox, CommandPalette, Composer, Container, ContextMenu, CopyButton, CueLogotype, CueMark, CuePortalFrame, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, DataRow, DataTree, DelegationCard, Density, DescriptionList, Dialog, Disclosure, Drawer, DropdownMenu, EmptyState, EnvVarInput, Eyebrow, Field, FieldDescription, FieldError, FieldLabel, FileUpload, FolderIcon, Footer, Frames, Grid, GroupBar, HoverCard, IconButton, InfoTip, Input, InputGroup, Inspector, Item, Kbd, Ledger, Link, McpServerIcon, Menubar, Message, MessageList, Meter, MultiSelect, NavigationMenu, NumberField, OTPField, OVERLAY_SIDE_OFFSET, PageShell, Pagination, Panel, PanelHeader, PasswordInput, Plussie, Popover, Preview, Progress, Radio, RadioGroup, Rating, Row, STYLE_SETS, ScrollArea, ScrollableTabsList, ScrubInput, SeamCell, SeamGrid, SeamList, SearchInput, SectionHeader, SegmentedControl, Select, Separator, Sheet, Sidebar, Skeleton, SkillIcon, Slider, Sparkline, Spinner, Stack, StackIcon, StacksMatrixIcon, Stat, StatusBar, StatusDot, Stepper, Switch, TAB_FADE_PX, TREE_GUIDE_GLYPHS, Table, TableScrollRegion, Tabs, TagsInput, TerminalFrame, Textarea, ThemeProvider, Timeline, TitleBar, Toast, Toggle, ToggleGroup, Toolbar, Tooltip, Tree, TreeVisibilityToggle, TwoStepButton, UsageChart, activateRowFromClick, activateRowFromKeyDown, agentColor, agentColorStyle, bareControlClasses, buttonVariants, chipVariants, computeScrollEdges, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants, edgeFadeMask, envReference, flattenTree, isSafeTokenValue, itemVariants, linkVariants, menuItemClasses, menuLabelClasses, menuPopupClasses, menuSeparatorClasses, overlayDescriptionClasses, overlayFooterClasses, overlayModalTransitionClasses, overlayPopupTransitionClasses, overlayPositionerClasses, overlaySurfaceClasses, overlayTextClasses, overlayTitleClasses, paginationRange, parseEnvReference, partitionFiles, prepaintScript, rowVariants, scrimClasses, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useSidebar, useTheme, useThemes, useToast };
123
+ import { DEFAULT_PAINT, DEFAULT_STYLE_SET, PAINTS, STYLE_SETS } from "./system/index.js";
124
+ export { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, Accordion, AgentPile, AlertDialog, AppBar, AppShell, AppWindowFrame, AskBox, AudienceIcon, Autocomplete, Avatar, AvatarGroup, Band, Bento, Breadcrumb, Button, ButtonGroup, Card, CatalogueIcon, ChannelBetaIcon, ChannelReleasedIcon, Checkbox, CheckboxGroup, Chip, CliToolIcon, CodeBlock, Collapsible, Combobox, CommandPalette, Composer, Container, ContextMenu, CopyButton, CueLogotype, CueMark, CuePortalFrame, DEFAULT_PAINT, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, DataRow, DataTree, DelegationCard, Density, DescriptionList, Dialog, Disclosure, Drawer, DropdownMenu, EmptyState, EnvVarInput, Eyebrow, Field, FieldDescription, FieldError, FieldLabel, FileUpload, FolderIcon, Footer, Frames, Grid, GroupBar, HoverCard, IconButton, InfoTip, Input, InputGroup, Inspector, Item, Kbd, Ledger, Link, McpServerIcon, Menubar, Message, MessageList, Meter, MultiSelect, NavigationMenu, NumberField, OTPField, OVERLAY_SIDE_OFFSET, PAINTS, PageShell, Pagination, Panel, PanelHeader, PasswordInput, Plussie, Popover, Preview, Progress, Radio, RadioGroup, Rating, Row, STYLE_SETS, ScrollArea, ScrollableTabsList, ScrubInput, SeamCell, SeamGrid, SeamList, SearchInput, SectionHeader, SegmentedControl, Select, Separator, Sheet, Sidebar, Skeleton, SkillIcon, Slider, Sparkline, Spinner, Stack, StackIcon, StacksMatrixIcon, Stat, StatusBar, StatusDot, Stepper, Switch, TAB_FADE_PX, TREE_GUIDE_GLYPHS, Table, TableScrollRegion, Tabs, TagsInput, TerminalFrame, Textarea, ThemeProvider, Timeline, TitleBar, Toast, Toggle, ToggleGroup, Toolbar, Tooltip, Tree, TreeVisibilityToggle, TwoStepButton, UsageChart, activateRowFromClick, activateRowFromKeyDown, agentColor, agentColorStyle, bareControlClasses, buttonVariants, chipVariants, computeScrollEdges, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants, edgeFadeMask, envReference, flattenTree, isSafeTokenValue, itemVariants, linkVariants, menuItemClasses, menuLabelClasses, menuPopupClasses, menuSeparatorClasses, overlayDescriptionClasses, overlayFooterClasses, overlayModalTransitionClasses, overlayPopupTransitionClasses, overlayPositionerClasses, overlaySurfaceClasses, overlayTextClasses, overlayTitleClasses, paginationRange, parseEnvReference, partitionFiles, prepaintScript, rowVariants, scrimClasses, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useSidebar, useTheme, useThemes, useToast };
@@ -1,3 +1,4 @@
1
+ import { FOCUS_RING_INSET_2 } from "../system/_focus-ring.js";
1
2
  import { cva } from "../lib/cva.js";
2
3
  //#region src/instruments/_data-row.ts
3
4
  /**
@@ -46,7 +47,7 @@ const dataRowVariants = cva([
46
47
  false: "px-(--cue-pad-row-x)"
47
48
  },
48
49
  interactive: {
49
- true: "cursor-pointer outline-none hover:bg-(--cue-row-hover) focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent",
50
+ true: `cursor-pointer outline-none hover:bg-(--cue-row-hover) ${FOCUS_RING_INSET_2}`,
50
51
  false: ""
51
52
  }
52
53
  },
@@ -43,7 +43,7 @@ const AppWindowFrame = React.forwardRef(function AppWindowFrame({ className, tit
43
43
  return /* @__PURE__ */ jsxs("div", {
44
44
  ref,
45
45
  "data-slot": "app-window-frame",
46
- className: cn("flex min-w-0 flex-col overflow-hidden rounded-(--radius-surface) border border-border bg-bg", elevated ? "shadow-[0_40px_120px_-40px_rgba(0,0,0,0.9)]" : null, className),
46
+ className: cn("flex min-w-0 flex-col overflow-hidden rounded-surface border border-border bg-bg", elevated ? "shadow-[0_40px_120px_-40px_rgba(0,0,0,0.9)]" : null, className),
47
47
  ...elementProps,
48
48
  children: [
49
49
  /* @__PURE__ */ jsx(TitleBar, {
@@ -1,6 +1,12 @@
1
1
  import { cn } from "../lib/cn.js";
2
+ import { LABEL_INK_SUBTLE } from "../system/_style-label-ink.js";
3
+ import { LABEL_FACE } from "../system/_style-label-face.js";
4
+ import { LABEL_CASE } from "../system/_style-label-case.js";
5
+ import { LABEL_TRACKING } from "../system/_style-label-tracking.js";
6
+ import { LABEL_SIZE_MICRO } from "../system/_style-label-size.js";
2
7
  import { Panel } from "../chrome/panel.js";
3
8
  import { CopyButton } from "./copy-button.js";
9
+ import { CODE_WEIGHT } from "../system/_style-code.js";
4
10
  import * as React from "react";
5
11
  import { jsx, jsxs } from "react/jsx-runtime";
6
12
  //#region src/instruments/code-block.tsx
@@ -159,12 +165,12 @@ const CodeBlock = React.forwardRef(function CodeBlock({ code, label, language =
159
165
  className: "flex items-center justify-between gap-(--cue-space-4) border-b border-border px-(--cue-pad-row-x) py-(--cue-pad-row-y)",
160
166
  children: [/* @__PURE__ */ jsx("span", {
161
167
  "data-slot": "code-block-label",
162
- className: "font-mono text-(length:--cue-text-micro) tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
168
+ className: cn(LABEL_SIZE_MICRO, LABEL_INK_SUBTLE, LABEL_FACE, LABEL_TRACKING, LABEL_CASE),
163
169
  children: label ?? language
164
170
  }), /* @__PURE__ */ jsx(CopyButton, { value: code })]
165
171
  }), /* @__PURE__ */ jsx("pre", {
166
172
  "data-language": language,
167
- className: "overflow-x-auto p-(--cue-space-4) font-mono text-(length:--cue-text-ui) leading-(--cue-leading-ui) text-fg",
173
+ className: `overflow-x-auto p-(--cue-space-4) font-mono text-(length:--cue-text-ui) leading-(--cue-leading-ui) ${CODE_WEIGHT} text-fg`,
168
174
  children: /* @__PURE__ */ jsx("code", { children: body })
169
175
  })]
170
176
  });
@@ -88,7 +88,7 @@ const GroupBar = React.forwardRef(function GroupBar({ className, items, height =
88
88
  role: "img",
89
89
  "aria-label": label === void 0 ? summary : `${label}: ${summary}`,
90
90
  "data-slot": "group-bar-track",
91
- className: "flex w-full gap-px overflow-hidden rounded-(--radius-control) bg-border",
91
+ className: "flex w-full gap-px overflow-hidden rounded-control bg-border",
92
92
  style: { height: toRem(height) },
93
93
  children: present.map((item) => /* @__PURE__ */ jsx("span", {
94
94
  "aria-hidden": "true",
@@ -1,4 +1,8 @@
1
1
  import { cn } from "../lib/cn.js";
2
+ import { FOCUS_RING_INSET_2 } from "../system/_focus-ring.js";
3
+ import { LABEL_FACE } from "../system/_style-label-face.js";
4
+ import { LABEL_CASE } from "../system/_style-label-case.js";
5
+ import { LABEL_TRACKING } from "../system/_style-label-tracking.js";
2
6
  import { headingTag } from "./_ledger.js";
3
7
  import { LedgerDisclosure } from "./_ledger-disclosure.js";
4
8
  import * as React from "react";
@@ -13,7 +17,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
17
  * be said out loud, because `<h2>` and `<h3>` come bold by default and a bold
14
18
  * micro-label in a dense list reads as a second kind of emphasis.
15
19
  */
16
- const LEDGER_LABEL = "font-mono text-(length:--cue-text-label) font-normal tracking-(--cue-tracking-caps) text-fg-subtle uppercase";
20
+ const LEDGER_LABEL = `${LABEL_FACE} text-(length:--cue-text-label) font-normal ${LABEL_TRACKING} text-fg-subtle ${LABEL_CASE}`;
17
21
  /**
18
22
  * The disclosure button a collapsible heading holds.
19
23
  *
@@ -29,7 +33,7 @@ const LEDGER_LABEL = "font-mono text-(length:--cue-text-label) font-normal track
29
33
  * reason `_data-row.ts` gives: these headings dock at the top of clipped panes,
30
34
  * where an outset ring on the first one is cut off by the pane's own rim.
31
35
  */
32
- const LEDGER_TOGGLE = "flex w-full min-w-0 cursor-pointer items-baseline gap-(--cue-space-2) text-left outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent";
36
+ const LEDGER_TOGGLE = `flex w-full min-w-0 cursor-pointer items-baseline gap-(--cue-space-2) text-left outline-none ${FOCUS_RING_INSET_2}`;
33
37
  /**
34
38
  * A grouped run of dense rows under sticky headings: the ledger idiom.
35
39
  *
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { FOCUS_RING, FOCUS_RING_INSET_2 } from "../system/_focus-ring.js";
3
4
  import { Chip } from "../primitives/chip.js";
4
5
  import { useIsomorphicLayoutEffect } from "../system/use-isomorphic-layout-effect.js";
5
6
  import { ELEVATION_2 } from "../system/_paint-elevation.js";
@@ -131,7 +132,7 @@ const LogViewer = React.forwardRef(function LogViewer({ className, lines, follow
131
132
  return /* @__PURE__ */ jsxs("div", {
132
133
  ref,
133
134
  "data-slot": "log-viewer",
134
- className: cn("relative flex min-w-0 flex-col overflow-hidden rounded-(--radius-surface) border border-border bg-sunken", className),
135
+ className: cn("relative flex min-w-0 flex-col overflow-hidden rounded-surface border border-border bg-sunken", className),
135
136
  style: { height: toRem(height) },
136
137
  ...elementProps,
137
138
  children: [
@@ -158,7 +159,7 @@ const LogViewer = React.forwardRef(function LogViewer({ className, lines, follow
158
159
  "aria-label": ariaLabel,
159
160
  tabIndex: 0,
160
161
  "data-slot": "log-viewer-scroller",
161
- className: "min-h-0 flex-1 overflow-auto font-mono text-(length:--cue-text-label) leading-none outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent",
162
+ className: `min-h-0 flex-1 overflow-auto font-mono text-(length:--cue-text-label) leading-none outline-none ${FOCUS_RING_INSET_2}`,
162
163
  onScroll,
163
164
  children: visible.length === 0 ? /* @__PURE__ */ jsx("div", {
164
165
  "data-slot": "log-viewer-empty",
@@ -205,7 +206,7 @@ const LogViewer = React.forwardRef(function LogViewer({ className, lines, follow
205
206
  pending > 0 ? /* @__PURE__ */ jsx("button", {
206
207
  type: "button",
207
208
  "data-slot": "log-viewer-jump",
208
- className: `absolute bottom-(--cue-space-4) left-1/2 -translate-x-1/2 cursor-pointer rounded-(--radius-control) border border-border-overlay bg-surface-2 px-(--cue-space-4) py-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg ${ELEVATION_2} outline-none hover:border-accent hover:text-accent focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent`,
209
+ className: `absolute bottom-(--cue-space-4) left-1/2 -translate-x-1/2 cursor-pointer rounded-control border border-border-overlay bg-surface-2 px-(--cue-space-4) py-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg ${ELEVATION_2} outline-none hover:border-accent hover:text-accent ${FOCUS_RING}`,
209
210
  onClick: jumpToBottom,
210
211
  children: newLinesLabel(pending)
211
212
  }) : null
@@ -1,4 +1,7 @@
1
1
  import { cn } from "../lib/cn.js";
2
+ import { LABEL_FACE } from "../system/_style-label-face.js";
3
+ import { LABEL_CASE } from "../system/_style-label-case.js";
4
+ import { LABEL_TRACKING } from "../system/_style-label-tracking.js";
2
5
  import { toRem } from "./_rem.js";
3
6
  import * as React from "react";
4
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -54,11 +57,11 @@ const Progress$1 = React.forwardRef(function Progress$2({ className, trackClassN
54
57
  ...rootProps,
55
58
  children: [hasHeader ? /* @__PURE__ */ jsxs("div", {
56
59
  "data-slot": "progress-header",
57
- className: "flex items-baseline gap-(--cue-space-3) font-mono text-(length:--cue-text-label)",
60
+ className: cn("flex items-baseline gap-(--cue-space-3) text-(length:--cue-text-label)", LABEL_FACE),
58
61
  children: [label === void 0 ? null : /* @__PURE__ */ jsx(Progress.Label, {
59
62
  id: namedByCaption ? captionId : void 0,
60
63
  "data-slot": "progress-label",
61
- className: "truncate tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
64
+ className: cn("truncate text-fg-subtle", LABEL_TRACKING, LABEL_CASE),
62
65
  children: label
63
66
  }), showValue ? /* @__PURE__ */ jsx(Progress.Value, {
64
67
  "data-slot": "progress-value",
@@ -1,4 +1,5 @@
1
1
  import { cn } from "../lib/cn.js";
2
+ import { SEAM_INK, SEAM_RIM } from "../system/_style-seam.js";
2
3
  import { toRem } from "./_rem.js";
3
4
  import * as React from "react";
4
5
  import { jsx } from "react/jsx-runtime";
@@ -11,14 +12,15 @@ const GROUNDS = {
11
12
  "surface-3": "bg-surface-3"
12
13
  };
13
14
  /**
14
- * The seam recipe itself: a 1px gap over the border colour.
15
+ * The seam recipe itself: a 1px gap over the seam's ink — the border colour,
16
+ * unless a style set names a lighter one (`SEAM_INK` says why).
15
17
  *
16
18
  * No borders anywhere. Two adjacent bordered cells stack into a 2px rule and
17
19
  * the grid's outer edge gets a rim nobody asked for; a gap over a coloured
18
20
  * ground gives exactly one hairline between every pair of neighbours and
19
21
  * nothing at all around the outside.
20
22
  */
21
- const SEAM_CONTAINER = "gap-px bg-border";
23
+ const SEAM_CONTAINER = `gap-px ${SEAM_INK}`;
22
24
  /**
23
25
  * The seam idiom as a component: cells separated by hairlines, no borders.
24
26
  *
@@ -45,7 +47,7 @@ const SeamGrid = React.forwardRef(function SeamGrid({ className, columns, min, b
45
47
  return /* @__PURE__ */ jsx("div", {
46
48
  ref,
47
49
  "data-slot": "seam-grid",
48
- className: cn("grid", SEAM_CONTAINER, bordered ? "overflow-hidden rounded-(--radius-surface) border border-border" : null, className),
50
+ className: cn("grid", SEAM_CONTAINER, bordered ? `overflow-hidden rounded-surface border ${SEAM_RIM}` : null, className),
49
51
  style: {
50
52
  ...gridTemplateColumns === void 0 ? null : { gridTemplateColumns },
51
53
  ...style