@cueplusplus/ui 0.15.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 (508) hide show
  1. package/CHANGELOG.md +1083 -0
  2. package/README.md +26 -0
  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 +4 -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 +17 -1
  16. package/dist/chrome/_tabs-scroll.js +20 -3
  17. package/dist/chrome/app-bar.js +10 -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 +19 -31
  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 +9 -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-field.d.ts +2 -1
  40. package/dist/color/color-picker.d.ts +2 -1
  41. package/dist/color/color-swatch.js +1 -1
  42. package/dist/configurator/_overrides.js +13 -4
  43. package/dist/configurator/configurator.js +4 -1
  44. package/dist/configurator/export-dialog.js +5 -2
  45. package/dist/configurator/panel-sections.js +6 -2
  46. package/dist/configurator/token-editor.js +4 -1
  47. package/dist/date/calendar.js +12 -8
  48. package/dist/date/date-field.d.ts +2 -1
  49. package/dist/date/date-picker.d.ts +2 -1
  50. package/dist/date/date-range-picker.d.ts +2 -1
  51. package/dist/date/time-field.d.ts +2 -1
  52. package/dist/dmx/channel-matrix.js +3 -2
  53. package/dist/dmx/dmx-bar.js +1 -1
  54. package/dist/dmx/dmx-strip.js +1 -1
  55. package/dist/dmx/universe-grid.js +3 -2
  56. package/dist/elements/activity-graph.js +3 -3
  57. package/dist/elements/agent-card.js +3 -3
  58. package/dist/elements/approval-card.js +3 -3
  59. package/dist/elements/artifact-card.js +2 -2
  60. package/dist/elements/background-inbox.js +2 -2
  61. package/dist/elements/canvas-split.js +2 -2
  62. package/dist/elements/chart.js +1 -1
  63. package/dist/elements/chat-panel.js +2 -2
  64. package/dist/elements/checkpoint-history.js +2 -2
  65. package/dist/elements/clamp.js +2 -1
  66. package/dist/elements/code-diff.js +1 -1
  67. package/dist/elements/code-runner.js +1 -1
  68. package/dist/elements/command-palette.js +6 -5
  69. package/dist/elements/comparison-card.js +2 -2
  70. package/dist/elements/composer.js +9 -8
  71. package/dist/elements/computer-use.js +1 -1
  72. package/dist/elements/confidence-marker.js +2 -1
  73. package/dist/elements/connection-state.js +1 -1
  74. package/dist/elements/context-breakdown.js +1 -1
  75. package/dist/elements/context-usage.js +1 -1
  76. package/dist/elements/conversation-search.js +4 -3
  77. package/dist/elements/cost-meter.js +1 -1
  78. package/dist/elements/data-table.js +2 -2
  79. package/dist/elements/day-separator.js +1 -1
  80. package/dist/elements/diagram.js +1 -1
  81. package/dist/elements/document-reference.js +3 -3
  82. package/dist/elements/draft-restore.js +1 -1
  83. package/dist/elements/edit-message.js +4 -3
  84. package/dist/elements/elements.css +26 -5
  85. package/dist/elements/elicitation-form.js +3 -3
  86. package/dist/elements/empty-state.js +2 -1
  87. package/dist/elements/error-state.js +1 -1
  88. package/dist/elements/feedback-dialog.js +4 -3
  89. package/dist/elements/file-tree.js +2 -2
  90. package/dist/elements/flow-graph.js +2 -2
  91. package/dist/elements/guardrail-notice.js +3 -3
  92. package/dist/elements/image-generation.js +1 -1
  93. package/dist/elements/inline-citation.js +3 -3
  94. package/dist/elements/job-progress.js +3 -3
  95. package/dist/elements/launcher-bubble.js +2 -2
  96. package/dist/elements/loading-state.js +1 -1
  97. package/dist/elements/map-answer.js +3 -2
  98. package/dist/elements/markdown.js +5 -4
  99. package/dist/elements/math-block.js +1 -1
  100. package/dist/elements/mcp-server-panel.js +3 -3
  101. package/dist/elements/message-attachment.js +4 -4
  102. package/dist/elements/message-pair.js +1 -1
  103. package/dist/elements/message-queue.js +2 -2
  104. package/dist/elements/mobile-composer.js +4 -3
  105. package/dist/elements/model-picker.js +3 -3
  106. package/dist/elements/onboarding.js +2 -2
  107. package/dist/elements/permission-grant.js +2 -2
  108. package/dist/elements/permission-scopes.js +5 -4
  109. package/dist/elements/prompt-library.js +7 -6
  110. package/dist/elements/queue-dock.js +4 -3
  111. package/dist/elements/quota-banner.js +1 -1
  112. package/dist/elements/quote-reply.js +1 -1
  113. package/dist/elements/read-aloud.js +2 -2
  114. package/dist/elements/reasoning-panel.js +2 -1
  115. package/dist/elements/recommendation-card.d.ts +1 -1
  116. package/dist/elements/recommendation-card.js +2 -2
  117. package/dist/elements/regenerate-menu.js +2 -2
  118. package/dist/elements/research-report.js +1 -1
  119. package/dist/elements/retrieval-chunks.js +1 -1
  120. package/dist/elements/revert-dock.js +5 -4
  121. package/dist/elements/reviewable-diff.js +1 -1
  122. package/dist/elements/schedule-card.js +3 -3
  123. package/dist/elements/score-breakdown.js +1 -1
  124. package/dist/elements/scroll-anchor.js +2 -2
  125. package/dist/elements/settings-panel.js +3 -2
  126. package/dist/elements/shared-conversation.js +2 -2
  127. package/dist/elements/sources.js +4 -3
  128. package/dist/elements/speaker-identity.js +1 -1
  129. package/dist/elements/spec-sheet.js +1 -1
  130. package/dist/elements/streaming-text.js +1 -1
  131. package/dist/elements/subagent-list.js +2 -2
  132. package/dist/elements/suggestions.js +1 -1
  133. package/dist/elements/surfaces.d.ts +1 -1
  134. package/dist/elements/surfaces.js +2 -1
  135. package/dist/elements/tail-status.js +1 -1
  136. package/dist/elements/terminal-block.js +1 -1
  137. package/dist/elements/thread-list.js +1 -1
  138. package/dist/elements/thread-search.js +5 -4
  139. package/dist/elements/timeline.js +1 -1
  140. package/dist/elements/todo-list.js +2 -2
  141. package/dist/elements/tool-call.js +4 -3
  142. package/dist/elements/tool-error.js +2 -2
  143. package/dist/elements/tool-group.js +1 -1
  144. package/dist/elements/tool-timeline.js +4 -3
  145. package/dist/elements/trace-waterfall.js +1 -1
  146. package/dist/elements/verdict-row.js +2 -2
  147. package/dist/elements/voice-conversation.js +3 -2
  148. package/dist/elements/web-preview.js +1 -1
  149. package/dist/elements/web-search.js +2 -2
  150. package/dist/elements/work-collapse.js +2 -1
  151. package/dist/flow/node-card.js +3 -2
  152. package/dist/flow/use-flow-theme.js +2 -1
  153. package/dist/forms/_chassis-size.d.ts +22 -0
  154. package/dist/forms/_chassis.d.ts +28 -15
  155. package/dist/forms/_chassis.js +34 -8
  156. package/dist/forms/_listbox.js +8 -5
  157. package/dist/forms/autocomplete.d.ts +2 -1
  158. package/dist/forms/checkbox.js +8 -2
  159. package/dist/forms/combobox.d.ts +2 -1
  160. package/dist/forms/env-var-input.d.ts +2 -1
  161. package/dist/forms/env-var-input.js +3 -2
  162. package/dist/forms/field.d.ts +2 -1
  163. package/dist/forms/field.js +15 -4
  164. package/dist/forms/file-upload.js +3 -2
  165. package/dist/forms/index.d.ts +2 -1
  166. package/dist/forms/input-group.d.ts +2 -1
  167. package/dist/forms/input.d.ts +2 -1
  168. package/dist/forms/multi-select.d.ts +2 -1
  169. package/dist/forms/number-field.js +2 -1
  170. package/dist/forms/otp-field.d.ts +2 -1
  171. package/dist/forms/password-input.d.ts +2 -1
  172. package/dist/forms/password-input.js +4 -2
  173. package/dist/forms/radio-group.js +6 -2
  174. package/dist/forms/rating.js +2 -1
  175. package/dist/forms/scrub-input.d.ts +2 -1
  176. package/dist/forms/scrub-input.js +2 -1
  177. package/dist/forms/search-input.d.ts +2 -1
  178. package/dist/forms/search-input.js +2 -1
  179. package/dist/forms/select.d.ts +2 -1
  180. package/dist/forms/select.js +6 -2
  181. package/dist/forms/slider.js +6 -2
  182. package/dist/forms/switch.js +6 -2
  183. package/dist/forms/tags-input.d.ts +2 -1
  184. package/dist/forms/textarea.js +2 -1
  185. package/dist/forms/toggle-group.d.ts +1 -1
  186. package/dist/forms/toggle.d.ts +1 -1
  187. package/dist/forms/toggle.js +3 -1
  188. package/dist/index.d.ts +4 -3
  189. package/dist/index.js +2 -2
  190. package/dist/instruments/_data-row.js +2 -1
  191. package/dist/instruments/app-window-frame.js +1 -1
  192. package/dist/instruments/code-block.js +8 -2
  193. package/dist/instruments/group-bar.js +1 -1
  194. package/dist/instruments/ledger.js +6 -2
  195. package/dist/instruments/log-viewer.js +5 -3
  196. package/dist/instruments/progress.js +5 -2
  197. package/dist/instruments/seam-grid.js +5 -3
  198. package/dist/instruments/stat.js +10 -3
  199. package/dist/instruments/table.js +28 -10
  200. package/dist/instruments/terminal-frame.js +4 -2
  201. package/dist/instruments/usage-chart.js +1 -1
  202. package/dist/layout/_collapse.js +6 -1
  203. package/dist/layout/bento.js +7 -4
  204. package/dist/layout/breadcrumb.js +7 -3
  205. package/dist/layout/card.js +14 -6
  206. package/dist/layout/carousel.js +3 -2
  207. package/dist/layout/collapsible.js +5 -1
  208. package/dist/layout/container.js +2 -1
  209. package/dist/layout/description-list.js +4 -1
  210. package/dist/layout/frames.js +11 -5
  211. package/dist/layout/item.js +3 -2
  212. package/dist/layout/link.d.ts +16 -0
  213. package/dist/layout/link.js +22 -3
  214. package/dist/layout/pagination.js +2 -1
  215. package/dist/layout/preview.d.ts +32 -12
  216. package/dist/layout/preview.js +149 -40
  217. package/dist/layout/resizable.js +2 -1
  218. package/dist/layout/sidebar.js +11 -3
  219. package/dist/layout/stepper.js +6 -2
  220. package/dist/lib/cn.js +29 -2
  221. package/dist/midi/musical-time-input.d.ts +2 -1
  222. package/dist/midi/piano-keyboard.js +3 -2
  223. package/dist/midi/spectrum-visualizer.js +1 -1
  224. package/dist/midi/threshold-rail.js +2 -1
  225. package/dist/midi/timeline-ruler.js +1 -1
  226. package/dist/overlays/_surface.d.ts +72 -12
  227. package/dist/overlays/_surface.js +86 -12
  228. package/dist/overlays/command-palette.js +9 -5
  229. package/dist/overlays/dialog.d.ts +5 -0
  230. package/dist/overlays/dialog.js +6 -1
  231. package/dist/overlays/info-tip.js +2 -1
  232. package/dist/overlays/menubar.js +3 -1
  233. package/dist/overlays/popover.js +2 -1
  234. package/dist/overlays/toast.js +6 -2
  235. package/dist/overlays/tooltip.js +4 -1
  236. package/dist/primitives/button.d.ts +15 -0
  237. package/dist/primitives/button.js +40 -10
  238. package/dist/primitives/chip.d.ts +20 -2
  239. package/dist/primitives/chip.js +39 -17
  240. package/dist/primitives/kbd.d.ts +6 -0
  241. package/dist/primitives/kbd.js +10 -1
  242. package/dist/primitives/skeleton.js +1 -1
  243. package/dist/system/_focus-ring-field.js +29 -0
  244. package/dist/system/_focus-ring.js +125 -0
  245. package/dist/system/_paint-elevation.js +9 -0
  246. package/dist/system/_paint-glass.js +46 -0
  247. package/dist/system/_paint-glow.js +51 -0
  248. package/dist/system/_paint-ground-pattern.js +30 -0
  249. package/dist/system/_paint-rest-shade.js +32 -0
  250. package/dist/system/_paint-rim.js +59 -0
  251. package/dist/system/_paint-stroke-sunken.js +19 -0
  252. package/dist/system/_paint-stroke-surface-1.js +19 -0
  253. package/dist/system/_paint-stroke-surface-2.js +40 -0
  254. package/dist/system/_paint-texture.js +56 -0
  255. package/dist/system/_style-app-bar.js +65 -0
  256. package/dist/system/_style-band.js +57 -0
  257. package/dist/system/_style-body-leading.js +21 -0
  258. package/dist/system/_style-body-size.js +30 -0
  259. package/dist/system/_style-body-weight.js +24 -0
  260. package/dist/system/_style-body.js +27 -0
  261. package/dist/system/_style-caption.js +19 -0
  262. package/dist/system/_style-card-pad.js +43 -0
  263. package/dist/system/_style-check.js +33 -0
  264. package/dist/system/_style-chip.js +103 -0
  265. package/dist/system/_style-code.js +13 -0
  266. package/dist/system/_style-collapse.js +14 -0
  267. package/dist/system/_style-control-face.js +29 -0
  268. package/dist/system/_style-control-label.js +22 -0
  269. package/dist/system/_style-control-step.js +22 -0
  270. package/dist/system/_style-control.js +76 -0
  271. package/dist/system/_style-data-face.js +28 -0
  272. package/dist/system/_style-description.js +23 -0
  273. package/dist/system/_style-eyebrow.js +43 -0
  274. package/dist/system/_style-footer-rule.js +47 -0
  275. package/dist/system/_style-gutter.js +17 -0
  276. package/dist/system/_style-help-ink.js +14 -0
  277. package/dist/system/_style-help.js +29 -0
  278. package/dist/system/_style-input-face.js +34 -0
  279. package/dist/system/_style-kbd.js +46 -0
  280. package/dist/system/_style-label-case.js +36 -0
  281. package/dist/system/_style-label-face.js +32 -0
  282. package/dist/system/_style-label-ink.js +29 -0
  283. package/dist/system/_style-label-leading.js +14 -0
  284. package/dist/system/_style-label-size.js +36 -0
  285. package/dist/system/_style-label-tracking.js +45 -0
  286. package/dist/system/_style-label-weight.js +40 -0
  287. package/dist/system/_style-lede.js +49 -0
  288. package/dist/system/_style-link.js +46 -0
  289. package/dist/system/_style-menu.js +30 -0
  290. package/dist/system/_style-nav-item.js +41 -0
  291. package/dist/system/_style-nav-voice.js +43 -0
  292. package/dist/system/_style-option.js +42 -0
  293. package/dist/system/_style-overlay-title.js +35 -0
  294. package/dist/system/_style-page-title.js +48 -0
  295. package/dist/system/_style-popover-pad.js +13 -0
  296. package/dist/system/_style-quiet-ink.js +13 -0
  297. package/dist/system/_style-row-pad.js +13 -0
  298. package/dist/system/_style-seam.js +43 -0
  299. package/dist/system/_style-section-rule.js +26 -0
  300. package/dist/system/_style-segment.js +30 -0
  301. package/dist/system/_style-segmented-control.js +86 -0
  302. package/dist/system/_style-selected.js +36 -0
  303. package/dist/system/_style-stage-marks.js +26 -0
  304. package/dist/system/_style-tab.js +71 -0
  305. package/dist/system/_style-textarea.js +21 -0
  306. package/dist/system/_style-title.js +37 -0
  307. package/dist/system/_style-tooltip.js +17 -0
  308. package/dist/system/density.d.ts +15 -5
  309. package/dist/system/density.js +188 -25
  310. package/dist/system/index.d.ts +2 -2
  311. package/dist/system/index.js +2 -2
  312. package/dist/system/overrides.d.ts +1 -0
  313. package/dist/system/overrides.js +151 -3
  314. package/dist/system/portal.d.ts +3 -2
  315. package/dist/system/portal.js +22 -10
  316. package/dist/system/prepaint.d.ts +21 -5
  317. package/dist/system/prepaint.js +3 -1
  318. package/dist/system/published.d.ts +1 -0
  319. package/dist/system/published.js +131 -0
  320. package/dist/system/theme-provider.d.ts +168 -60
  321. package/dist/system/theme-provider.js +375 -79
  322. package/dist/system/theme-registry.d.ts +2 -1
  323. package/dist/system/theme-registry.js +27 -10
  324. package/dist/system/use-density.js +4 -3
  325. package/dist/system/use-theme.d.ts +5 -2
  326. package/dist/system/use-theme.js +7 -4
  327. package/dist/system/vocabulary.js +2 -2
  328. package/dist/theming/create-theme.js +12 -6
  329. package/dist/theming/serialize.d.ts +34 -2
  330. package/dist/theming/serialize.js +86 -4
  331. package/manifest/components/accordion.json +7 -1
  332. package/manifest/components/agent-pile.json +3 -0
  333. package/manifest/components/alert-dialog.json +38 -1
  334. package/manifest/components/app-bar.json +23 -2
  335. package/manifest/components/app-shell.json +5 -0
  336. package/manifest/components/ask-box.json +3 -1
  337. package/manifest/components/autocomplete.json +49 -1
  338. package/manifest/components/band.json +14 -3
  339. package/manifest/components/bento.json +12 -1
  340. package/manifest/components/breadcrumb.json +8 -1
  341. package/manifest/components/button.json +31 -3
  342. package/manifest/components/calendar.json +7 -0
  343. package/manifest/components/card.json +28 -1
  344. package/manifest/components/carousel.json +4 -1
  345. package/manifest/components/channel-matrix.json +40 -1
  346. package/manifest/components/chart-tooltip-content.json +38 -1
  347. package/manifest/components/chat-empty-state.json +3 -1
  348. package/manifest/components/checkbox-group.json +14 -0
  349. package/manifest/components/checkbox.json +14 -0
  350. package/manifest/components/chip.json +16 -1
  351. package/manifest/components/clamp.json +3 -1
  352. package/manifest/components/code-block.json +10 -1
  353. package/manifest/components/collapsible.json +13 -2
  354. package/manifest/components/color-area.json +4 -2
  355. package/manifest/components/color-field.json +14 -0
  356. package/manifest/components/color-picker.json +14 -0
  357. package/manifest/components/color-slider.json +3 -1
  358. package/manifest/components/colors-section.json +9 -1
  359. package/manifest/components/combobox.json +49 -1
  360. package/manifest/components/command-palette.json +37 -1
  361. package/manifest/components/composer-actions.json +3 -0
  362. package/manifest/components/composer-attach-button.json +3 -0
  363. package/manifest/components/composer-attachment-chip.json +3 -0
  364. package/manifest/components/composer-attachments.json +3 -0
  365. package/manifest/components/composer-bar.json +3 -0
  366. package/manifest/components/composer-command-item.json +3 -0
  367. package/manifest/components/composer-context.json +3 -0
  368. package/manifest/components/composer-input.json +3 -0
  369. package/manifest/components/composer-menu-item.json +3 -0
  370. package/manifest/components/composer-menu.json +3 -0
  371. package/manifest/components/composer-model-item.json +3 -0
  372. package/manifest/components/composer-model-trigger.json +3 -0
  373. package/manifest/components/composer-person-item.json +3 -0
  374. package/manifest/components/composer-send.json +3 -0
  375. package/manifest/components/composer-toolbar.json +3 -0
  376. package/manifest/components/composer-voice-button.json +3 -0
  377. package/manifest/components/composer-voice.json +3 -0
  378. package/manifest/components/composer.json +14 -0
  379. package/manifest/components/confidence-marker.json +3 -1
  380. package/manifest/components/container.json +2 -1
  381. package/manifest/components/context-menu.json +38 -1
  382. package/manifest/components/conversation-search.json +3 -1
  383. package/manifest/components/cue-mark.json +2 -2
  384. package/manifest/components/cue-portal-frame.json +1 -1
  385. package/manifest/components/data-row.json +3 -1
  386. package/manifest/components/data-tree.json +3 -1
  387. package/manifest/components/date-field.json +14 -0
  388. package/manifest/components/date-picker.json +14 -0
  389. package/manifest/components/date-range-picker.json +14 -0
  390. package/manifest/components/delegation-card.json +3 -1
  391. package/manifest/components/density.json +21 -7
  392. package/manifest/components/description-list.json +6 -1
  393. package/manifest/components/dialog.json +39 -1
  394. package/manifest/components/disclosure.json +13 -2
  395. package/manifest/components/dmx-bar.json +37 -1
  396. package/manifest/components/dmx-strip.json +37 -1
  397. package/manifest/components/drawer.json +38 -1
  398. package/manifest/components/dropdown-menu.json +38 -1
  399. package/manifest/components/edit-message.json +3 -1
  400. package/manifest/components/elements-command-palette.json +3 -1
  401. package/manifest/components/elements-composer.json +3 -0
  402. package/manifest/components/empty-state-composer.json +3 -1
  403. package/manifest/components/empty-state-greeting.json +3 -1
  404. package/manifest/components/empty-state-suggestion.json +3 -1
  405. package/manifest/components/empty-state-suggestions.json +3 -1
  406. package/manifest/components/env-var-input.json +14 -1
  407. package/manifest/components/export-dialog.json +6 -1
  408. package/manifest/components/eyebrow.json +13 -2
  409. package/manifest/components/feedback-dialog.json +3 -0
  410. package/manifest/components/field-description.json +14 -0
  411. package/manifest/components/field-error.json +14 -0
  412. package/manifest/components/field-label.json +15 -1
  413. package/manifest/components/field.json +14 -0
  414. package/manifest/components/file-upload.json +3 -0
  415. package/manifest/components/footer.json +14 -1
  416. package/manifest/components/frames.json +14 -1
  417. package/manifest/components/hover-card.json +38 -1
  418. package/manifest/components/info-tip.json +3 -0
  419. package/manifest/components/input-group.json +14 -0
  420. package/manifest/components/input.json +14 -0
  421. package/manifest/components/item.json +3 -1
  422. package/manifest/components/kbd.json +10 -1
  423. package/manifest/components/ledger.json +9 -2
  424. package/manifest/components/link.json +10 -0
  425. package/manifest/components/log-viewer.json +10 -0
  426. package/manifest/components/map-answer.json +3 -1
  427. package/manifest/components/markdown-text.json +3 -0
  428. package/manifest/components/menubar.json +41 -2
  429. package/manifest/components/message-list.json +10 -0
  430. package/manifest/components/message.json +6 -1
  431. package/manifest/components/mobile-composer.json +3 -1
  432. package/manifest/components/multi-select.json +49 -1
  433. package/manifest/components/musical-time-input.json +14 -0
  434. package/manifest/components/navigation-menu.json +41 -1
  435. package/manifest/components/node-card.json +3 -0
  436. package/manifest/components/number-field.json +14 -1
  437. package/manifest/components/otp-field.json +13 -0
  438. package/manifest/components/page-shell.json +14 -0
  439. package/manifest/components/pagination.json +3 -0
  440. package/manifest/components/panel-header.json +12 -0
  441. package/manifest/components/panel.json +13 -1
  442. package/manifest/components/password-input.json +14 -1
  443. package/manifest/components/permission-scopes.json +3 -1
  444. package/manifest/components/piano-keyboard.json +3 -0
  445. package/manifest/components/popover.json +39 -1
  446. package/manifest/components/preset-section.json +9 -1
  447. package/manifest/components/preview.json +30 -10
  448. package/manifest/components/progress.json +6 -1
  449. package/manifest/components/prompt-library.json +3 -1
  450. package/manifest/components/queue-dock.json +3 -1
  451. package/manifest/components/radio-group.json +8 -0
  452. package/manifest/components/radio.json +8 -0
  453. package/manifest/components/rating.json +4 -1
  454. package/manifest/components/reasoning-panel.json +3 -1
  455. package/manifest/components/recommendation-card.json +1 -1
  456. package/manifest/components/resizable.json +4 -1
  457. package/manifest/components/revert-dock.json +3 -1
  458. package/manifest/components/row.json +5 -1
  459. package/manifest/components/scroll-area.json +4 -2
  460. package/manifest/components/scrollable-tabs-list.json +19 -0
  461. package/manifest/components/scrub-input.json +14 -1
  462. package/manifest/components/seam-cell.json +1 -0
  463. package/manifest/components/seam-grid.json +1 -0
  464. package/manifest/components/seam-list.json +5 -1
  465. package/manifest/components/search-input.json +14 -1
  466. package/manifest/components/section-header.json +15 -2
  467. package/manifest/components/segmented-control.json +17 -0
  468. package/manifest/components/select.json +28 -0
  469. package/manifest/components/settings-panel.json +3 -0
  470. package/manifest/components/shape-section.json +9 -1
  471. package/manifest/components/sheet.json +38 -1
  472. package/manifest/components/shimmer-label.json +3 -0
  473. package/manifest/components/sidebar.json +19 -2
  474. package/manifest/components/slider.json +8 -0
  475. package/manifest/components/sources.json +3 -1
  476. package/manifest/components/stat.json +9 -0
  477. package/manifest/components/status-bar.json +4 -0
  478. package/manifest/components/stepper.json +8 -0
  479. package/manifest/components/swap-label.json +3 -0
  480. package/manifest/components/switch.json +8 -0
  481. package/manifest/components/table-scroll-region.json +20 -2
  482. package/manifest/components/table.json +20 -2
  483. package/manifest/components/tabs.json +20 -1
  484. package/manifest/components/tags-input.json +49 -1
  485. package/manifest/components/terminal-frame.json +3 -0
  486. package/manifest/components/textarea.json +16 -0
  487. package/manifest/components/theme-configurator.json +38 -1
  488. package/manifest/components/theme-provider.json +37 -19
  489. package/manifest/components/thread-search.json +3 -1
  490. package/manifest/components/threshold-rail.json +3 -0
  491. package/manifest/components/time-field.json +14 -0
  492. package/manifest/components/toast.json +39 -0
  493. package/manifest/components/toggle-group.json +1 -19
  494. package/manifest/components/toggle.json +3 -5
  495. package/manifest/components/token-editor.json +6 -1
  496. package/manifest/components/tool-call-card.json +9 -2
  497. package/manifest/components/tool-call.json +3 -1
  498. package/manifest/components/tool-timeline.json +3 -1
  499. package/manifest/components/toolbar.json +4 -1
  500. package/manifest/components/tooltip.json +40 -1
  501. package/manifest/components/tree-visibility-toggle.json +3 -0
  502. package/manifest/components/tree.json +3 -0
  503. package/manifest/components/universe-grid.json +3 -0
  504. package/manifest/components/voice-conversation.json +3 -0
  505. package/manifest/components/work-collapse.json +3 -1
  506. package/manifest/manifest.json +205 -185
  507. package/manifest/tokens.json +260 -4
  508. package/package.json +6 -6
@@ -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,4 +1,5 @@
1
- import { FormControlSize } from "./_chassis.js";
1
+ import { FormControlSize } from "./_chassis-size.js";
2
+ import "./_chassis.js";
2
3
  import * as React from "react";
3
4
  //#region src/forms/tags-input.d.ts
4
5
  interface TagsInputProps {
@@ -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,4 +1,4 @@
1
- import { FormControlSize } from "./_chassis.js";
1
+ import { FormControlSize } from "./_chassis-size.js";
2
2
  import * as React from "react";
3
3
  import { ToggleGroup } from "@base-ui/react/toggle-group";
4
4
  //#region src/forms/toggle-group.d.ts
@@ -1,4 +1,4 @@
1
- import { FormControlSize } from "./_chassis.js";
1
+ import { FormControlSize } from "./_chassis-size.js";
2
2
  import * as React from "react";
3
3
  import { Toggle } from "@base-ui/react/toggle";
4
4
  //#region src/forms/toggle.d.ts
@@ -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
@@ -34,7 +34,8 @@ import { TitleBar, TitleBarProps } from "./chrome/title-bar.js";
34
34
  import { Tree, TreeProps, TreeVisibility, TreeVisibilityToggle, TreeVisibilityToggleProps } from "./chrome/tree.js";
35
35
  import { Toolbar, ToolbarButtonProps, ToolbarGroupProps, ToolbarRootProps, ToolbarSeparatorProps } from "./chrome/toolbar.js";
36
36
  import "./chrome/index.js";
37
- import { ControlVariantProps, FormControlSize, bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants } from "./forms/_chassis.js";
37
+ import { FormControlSize } from "./forms/_chassis-size.js";
38
+ import { ControlVariantProps, bareControlClasses, controlClasses, controlGroupFocusClasses, controlSurface, controlVariants } from "./forms/_chassis.js";
38
39
  import { TokenOverrides, isSafeTokenValue } from "./system/overrides.js";
39
40
  import { FontFamilies, ResolvedMode, ThemeContextValue, ThemeProvider, ThemeProviderProps } from "./system/theme-provider.js";
40
41
  import { Autocomplete, AutocompleteProps } from "./forms/autocomplete.js";
@@ -134,5 +135,5 @@ import { ThemeRegistry } from "./system/vocabulary.js";
134
135
  import { useDensities, useFonts, useThemes } from "./system/theme-registry.js";
135
136
  import { ControlSize, useControlHeight, useDensity } from "./system/use-density.js";
136
137
  import { useTheme } from "./system/use-theme.js";
137
- import { DEFAULT_STYLE_SET, DensityEntry, DensityLevel, FontEntry, FontName, Mode, STYLE_SETS, StyleSet, ThemeManifest, ThemeName } from "./system/index.js";
138
- 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,7 +1,9 @@
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";
6
+ import { ELEVATION_2 } from "../system/_paint-elevation.js";
5
7
  import { toRem } from "./_rem.js";
6
8
  import { useControlHeight } from "../system/use-density.js";
7
9
  import { ansiSpans } from "./_ansi.js";
@@ -130,7 +132,7 @@ const LogViewer = React.forwardRef(function LogViewer({ className, lines, follow
130
132
  return /* @__PURE__ */ jsxs("div", {
131
133
  ref,
132
134
  "data-slot": "log-viewer",
133
- 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),
134
136
  style: { height: toRem(height) },
135
137
  ...elementProps,
136
138
  children: [
@@ -157,7 +159,7 @@ const LogViewer = React.forwardRef(function LogViewer({ className, lines, follow
157
159
  "aria-label": ariaLabel,
158
160
  tabIndex: 0,
159
161
  "data-slot": "log-viewer-scroller",
160
- 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}`,
161
163
  onScroll,
162
164
  children: visible.length === 0 ? /* @__PURE__ */ jsx("div", {
163
165
  "data-slot": "log-viewer-empty",
@@ -204,7 +206,7 @@ const LogViewer = React.forwardRef(function LogViewer({ className, lines, follow
204
206
  pending > 0 ? /* @__PURE__ */ jsx("button", {
205
207
  type: "button",
206
208
  "data-slot": "log-viewer-jump",
207
- 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 shadow-[0_8px_24px_rgba(0,0,0,0.4)] 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}`,
208
210
  onClick: jumpToBottom,
209
211
  children: newLinesLabel(pending)
210
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
@@ -1,4 +1,11 @@
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_WEIGHT } from "../system/_style-label-weight.js";
5
+ import { LABEL_CASE } from "../system/_style-label-case.js";
6
+ import { LABEL_TRACKING } from "../system/_style-label-tracking.js";
7
+ import { LABEL_SIZE_MICRO } from "../system/_style-label-size.js";
8
+ import { DATA_FACE } from "../system/_style-data-face.js";
2
9
  import * as React from "react";
3
10
  import { jsx, jsxs } from "react/jsx-runtime";
4
11
  //#region src/instruments/stat.tsx
@@ -39,17 +46,17 @@ const Stat = React.forwardRef(function Stat({ className, label, value, detail, t
39
46
  children: [
40
47
  /* @__PURE__ */ jsx("span", {
41
48
  "data-slot": "stat-label",
42
- className: "truncate font-mono text-(length:--cue-text-micro) tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
49
+ className: cn("truncate", LABEL_SIZE_MICRO, LABEL_INK_SUBTLE, LABEL_WEIGHT, LABEL_FACE, LABEL_TRACKING, LABEL_CASE),
43
50
  children: label
44
51
  }),
45
52
  /* @__PURE__ */ jsx("span", {
46
53
  "data-slot": "stat-value",
47
- className: cn("truncate font-mono text-(length:--cue-text-title) leading-none tabular-nums", VALUE_TONE_CLASSES[tone]),
54
+ className: cn(`truncate ${DATA_FACE} text-(length:--cue-text-title) leading-none tabular-nums`, VALUE_TONE_CLASSES[tone]),
48
55
  children: value
49
56
  }),
50
57
  detail === void 0 ? null : /* @__PURE__ */ jsx("span", {
51
58
  "data-slot": "stat-detail",
52
- className: "truncate font-mono text-(length:--cue-text-label) text-fg-muted",
59
+ className: `truncate ${DATA_FACE} text-(length:--cue-text-label) text-fg-muted`,
53
60
  children: detail
54
61
  })
55
62
  ]
@@ -1,4 +1,16 @@
1
1
  import { cn } from "../lib/cn.js";
2
+ import { FOCUS_RING_INSET_2 } from "../system/_focus-ring.js";
3
+ import { LABEL_INK_SUBTLE } from "../system/_style-label-ink.js";
4
+ import { LABEL_FACE } from "../system/_style-label-face.js";
5
+ import { LABEL_WEIGHT_NORMAL } from "../system/_style-label-weight.js";
6
+ import { LABEL_CASE } from "../system/_style-label-case.js";
7
+ import { LABEL_TRACKING } from "../system/_style-label-tracking.js";
8
+ import { LABEL_SIZE } from "../system/_style-label-size.js";
9
+ import { BODY_SIZE, BODY_SIZE_LABEL } from "../system/_style-body-size.js";
10
+ import { DATA_FACE } from "../system/_style-data-face.js";
11
+ import { SELECTED_ROW } from "../system/_style-selected.js";
12
+ import { HELP_INK } from "../system/_style-help-ink.js";
13
+ import { ROW_PAD_Y } from "../system/_style-row-pad.js";
2
14
  import * as React from "react";
3
15
  import { jsx, jsxs } from "react/jsx-runtime";
4
16
  //#region src/instruments/table.tsx
@@ -16,7 +28,7 @@ const TableScrollRegion = React.forwardRef(function TableScrollRegion({ classNam
16
28
  role: "region",
17
29
  tabIndex: 0,
18
30
  "data-slot": "table-scroll-region",
19
- className: cn("overflow-x-auto outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent", className)
31
+ className: cn(`overflow-x-auto outline-none ${FOCUS_RING_INSET_2}`, className)
20
32
  });
21
33
  });
22
34
  /**
@@ -32,7 +44,7 @@ const TableRoot = React.forwardRef(function TableRoot({ className, ...elementPro
32
44
  return /* @__PURE__ */ jsx("table", {
33
45
  ref,
34
46
  "data-slot": "table",
35
- className: cn("w-full border-collapse font-mono text-(length:--cue-text-ui) text-fg", "[&_[data-numeric]]:text-right [&_[data-numeric]]:tabular-nums", className),
47
+ className: cn(`w-full border-collapse ${DATA_FACE} ${BODY_SIZE} text-fg`, "[&_[data-numeric]]:text-right [&_[data-numeric]]:tabular-nums", className),
36
48
  ...elementProps
37
49
  });
38
50
  });
@@ -93,7 +105,7 @@ const TableRow = React.forwardRef(function TableRow({ className, interactive = f
93
105
  ref,
94
106
  "data-slot": "table-row",
95
107
  "data-selected": selected ? "" : void 0,
96
- className: cn("group/data-row border-b border-border last:border-b-0 data-[selected]:bg-accent-soft", interactive ? "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" : null, className),
108
+ className: cn(`group/data-row border-b border-border last:border-b-0 ${SELECTED_ROW}`, interactive ? `cursor-pointer outline-none hover:bg-(--cue-row-hover) ${FOCUS_RING_INSET_2}` : null, className),
97
109
  ...elementProps
98
110
  });
99
111
  });
@@ -122,7 +134,7 @@ const TableHead = React.forwardRef(function TableHead({ className, numeric = fal
122
134
  scope,
123
135
  "data-slot": "table-head",
124
136
  "data-numeric": numeric ? "" : void 0,
125
- className: cn("border-b border-border bg-surface-1 px-(--cue-pad-row-x) py-(--cue-pad-row-y) text-left font-mono text-(length:--cue-text-label) font-normal tracking-(--cue-tracking-caps) whitespace-nowrap text-fg-subtle uppercase", sticky ? "sticky top-0 z-3 border-b-0 shadow-[inset_0_-1px_0_var(--cue-hair-strong)]" : null, className),
137
+ className: cn(`border-b border-border bg-surface-1 px-(--cue-pad-row-x) ${ROW_PAD_Y} text-left whitespace-nowrap`, LABEL_SIZE, LABEL_INK_SUBTLE, LABEL_WEIGHT_NORMAL, LABEL_FACE, LABEL_TRACKING, LABEL_CASE, sticky ? "sticky top-0 z-3 border-b-0 shadow-[inset_0_-1px_0_var(--cue-hair-strong)]" : null, className),
126
138
  ...elementProps
127
139
  });
128
140
  });
@@ -140,8 +152,14 @@ const headingTag = (level) => `h${level}`;
140
152
  * - `text-[length:inherit]` — `<h2>` is `1.5em` and `<h6>` is `0.67em`, so
141
153
  * without this the divider's type would change with the level it was given,
142
154
  * which is a heading level leaking into the visual design.
143
- * - `font-normal` — headings come bold, and a bold micro-label in a dense list
144
- * reads as a second kind of emphasis (the same ruling as `Ledger`'s heading).
155
+ * - `font-[number:inherit]` — headings come bold, and a bold micro-label in a
156
+ * dense list reads as a second kind of emphasis (the same ruling as
157
+ * `Ledger`'s heading). The weight is *inherited*, not set: the `<th>` reads
158
+ * `--cue-style-label-weight` (falling back to `400`), and a label that
159
+ * declared its own `font-normal` held the group's name at 400 while the cell
160
+ * and the count beside it moved to a style set's weight — two weights in one
161
+ * row. Inheriting also lets a caller's `className="font-medium"`, which lands
162
+ * on the cell, reach the name.
145
163
  * - `m-0` — headings carry a block margin that would thicken the divider row.
146
164
  *
147
165
  * Preflight already does the middle two for consumers who import it, but the
@@ -150,7 +168,7 @@ const headingTag = (level) => `h${level}`;
150
168
  * touches them, so they inherit from the `<th>` that owns the recipe, and a
151
169
  * second copy of a treatment is exactly how two surfaces drift apart.
152
170
  */
153
- const TABLE_GROUP_LABEL = "m-0 inline text-[length:inherit] font-normal";
171
+ const TABLE_GROUP_LABEL = "m-0 inline text-[length:inherit] font-[number:inherit]";
154
172
  /**
155
173
  * The canonical console table: hairlines, mono figures, no zebra striping.
156
174
  *
@@ -201,7 +219,7 @@ const Table = {
201
219
  colSpan: span,
202
220
  scope: "rowgroup",
203
221
  "data-slot": "table-group-cell",
204
- className: cn("bg-bg px-(--cue-pad-row-x) py-(--cue-pad-row-y) text-left font-mono text-(length:--cue-text-label) font-normal tracking-(--cue-tracking-caps) whitespace-nowrap text-fg-subtle uppercase", sticky ? "sticky z-2 [top:var(--cue-table-group-top,0px)]" : null, className),
222
+ className: cn(`bg-bg px-(--cue-pad-row-x) ${ROW_PAD_Y} text-left whitespace-nowrap`, LABEL_SIZE, LABEL_INK_SUBTLE, LABEL_WEIGHT_NORMAL, LABEL_FACE, LABEL_TRACKING, LABEL_CASE, sticky ? "sticky z-2 [top:var(--cue-table-group-top,0px)]" : null, className),
205
223
  children: [/* @__PURE__ */ jsx(Label, {
206
224
  "data-slot": "table-group-label",
207
225
  className: TABLE_GROUP_LABEL,
@@ -220,7 +238,7 @@ const Table = {
220
238
  ref,
221
239
  "data-slot": "table-cell",
222
240
  "data-numeric": numeric ? "" : void 0,
223
- className: cn("px-(--cue-pad-row-x) py-(--cue-pad-row-y) align-middle", className),
241
+ className: cn(`px-(--cue-pad-row-x) ${ROW_PAD_Y} align-middle`, className),
224
242
  ...elementProps
225
243
  });
226
244
  }),
@@ -228,7 +246,7 @@ const Table = {
228
246
  return /* @__PURE__ */ jsx("caption", {
229
247
  ref,
230
248
  "data-slot": "table-caption",
231
- className: cn("caption-bottom pt-(--cue-space-3) text-left font-mono text-(length:--cue-text-label) text-fg-subtle", className),
249
+ className: cn(`caption-bottom pt-(--cue-space-3) text-left ${BODY_SIZE_LABEL} ${HELP_INK}`, LABEL_FACE, className),
232
250
  ...elementProps
233
251
  });
234
252
  })
@@ -1,5 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { LABEL_INK_SUBTLE } from "../system/_style-label-ink.js";
4
+ import { LABEL_SIZE } from "../system/_style-label-size.js";
3
5
  import { CopyButton } from "./copy-button.js";
4
6
  import { toRem } from "./_rem.js";
5
7
  import { mulberry32, usePrefersReducedMotion } from "./_motion.js";
@@ -184,14 +186,14 @@ const TerminalFrame = React.forwardRef(function TerminalFrame({ className, title
184
186
  ref,
185
187
  "data-slot": "terminal-frame",
186
188
  "data-simulating": simulate === void 0 ? void 0 : String(simulating),
187
- className: cn("flex min-w-0 flex-col overflow-hidden rounded-(--radius-surface) border border-border bg-sunken font-mono text-(length:--cue-text-ui) text-fg-muted", className),
189
+ className: cn("flex min-w-0 flex-col overflow-hidden rounded-surface border border-border bg-sunken font-mono text-(length:--cue-text-ui) text-fg-muted", className),
188
190
  ...elementProps,
189
191
  children: [title === void 0 && !copy ? null : /* @__PURE__ */ jsxs("div", {
190
192
  "data-slot": "terminal-frame-bar",
191
193
  className: "flex h-control-md shrink-0 items-center justify-between gap-(--cue-space-3) border-b border-border px-(--cue-pad-row-x)",
192
194
  children: [/* @__PURE__ */ jsx("span", {
193
195
  "data-slot": "terminal-frame-title",
194
- className: "min-w-0 truncate text-(length:--cue-text-label) tracking-(--cue-tracking-caps) text-fg-subtle uppercase",
196
+ className: `min-w-0 truncate ${LABEL_SIZE} tracking-(--cue-tracking-caps) ${LABEL_INK_SUBTLE} uppercase`,
195
197
  children: title
196
198
  }), copy ? /* @__PURE__ */ jsx("span", {
197
199
  "data-slot": "terminal-frame-copy",
@@ -220,7 +220,7 @@ const UsageChart = React.forwardRef(function UsageChart({ className, points, ton
220
220
  ]
221
221
  }), hover === null ? null : /* @__PURE__ */ jsx("div", {
222
222
  "data-slot": "usage-chart-tooltip",
223
- className: "pointer-events-none absolute top-0 -translate-x-1/2 rounded-(--radius-control) border border-border-overlay bg-surface-2 px-(--cue-space-3) py-(--cue-space-1) font-mono text-(length:--cue-text-label) tabular-nums text-fg",
223
+ className: "pointer-events-none absolute top-0 -translate-x-1/2 rounded-control border border-border-overlay bg-surface-2 px-(--cue-space-3) py-(--cue-space-1) font-mono text-(length:--cue-text-label) tabular-nums text-fg",
224
224
  style: { left: `${Math.min(88, Math.max(2, hover.x / VIEW_WIDTH * 100))}%` },
225
225
  children: `${formatValue(hover.point.v)} · ${formatTimestamp === void 0 ? new Date(hover.point.t).toLocaleString(void 0, {
226
226
  month: "short",
@@ -1,3 +1,8 @@
1
+ import { FOCUS_RING_INSET_2 } from "../system/_focus-ring.js";
2
+ import { CONTROL_FACE } from "../system/_style-control-face.js";
3
+ import { LABEL_WEIGHT_NORMAL } from "../system/_style-label-weight.js";
4
+ import { COLLAPSE_HEIGHT } from "../system/_style-collapse.js";
5
+ import { QUIET_INK } from "../system/_style-quiet-ink.js";
1
6
  //#region src/layout/_collapse.ts
2
7
  /**
3
8
  * The one disclosure recipe, shared by `Accordion` and `Collapsible`.
@@ -19,7 +24,7 @@
19
24
  * inset (`-outline-offset-2`) because sections live inside `overflow-hidden`
20
25
  * panels, where an outset ring on the first row would be clipped by the rim.
21
26
  */
22
- const collapseTriggerClasses = "group/collapse flex h-control-md w-full cursor-pointer items-center gap-(--cue-space-3) px-(--cue-pad-row-x) text-left font-mono text-(length:--cue-text-ui) text-fg-muted transition-colors duration-150 outline-none select-none hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent data-[panel-open]:text-fg data-[disabled]:pointer-events-none data-[disabled]:opacity-40";
27
+ const collapseTriggerClasses = `group/collapse flex ${COLLAPSE_HEIGHT} w-full cursor-pointer items-center gap-(--cue-space-3) px-(--cue-pad-row-x) text-left ${CONTROL_FACE} text-(length:--cue-text-ui) ${QUIET_INK} ${LABEL_WEIGHT_NORMAL} transition-colors duration-150 outline-none select-none hover:text-fg ${FOCUS_RING_INSET_2} data-[panel-open]:text-fg data-[disabled]:pointer-events-none data-[disabled]:opacity-40`;
23
28
  /** The label between the summary row's gutters — truncates, never wraps. */
24
29
  const collapseLabelClasses = "min-w-0 flex-1 truncate";
25
30
  /**
@@ -1,4 +1,7 @@
1
1
  import { cn } from "../lib/cn.js";
2
+ import { FOCUS_RING_OFFSET_2 } from "../system/_focus-ring.js";
3
+ import { DATA_FACE } from "../system/_style-data-face.js";
4
+ import { TITLE_VOICE } from "../system/_style-title.js";
2
5
  import { GAP_CLASSES } from "./stack.js";
3
6
  import * as React from "react";
4
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -53,9 +56,9 @@ const MIN_HEIGHT_CLASSES = {
53
56
  hero: "min-h-[calc(var(--cue-space-8)*8)]"
54
57
  };
55
58
  /** The tile surface, shared by both variants so a link tile is not a second look. */
56
- const TILE_CLASS = "flex flex-col gap-(--cue-space-3) overflow-hidden rounded-(--radius-surface) border border-border bg-surface-1 p-(--cue-space-5)";
59
+ const TILE_CLASS = "flex flex-col gap-(--cue-space-3) overflow-hidden rounded-surface border border-border bg-surface-1 p-(--cue-space-5)";
57
60
  /** What a link tile adds: the hover tint and the focus ring the whole surface takes. */
58
- const LINK_TILE_CLASS = "no-underline transition-colors duration-150 outline-none hover:bg-surface-2 focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-accent";
61
+ const LINK_TILE_CLASS = `no-underline transition-colors duration-150 outline-none hover:bg-surface-2 ${FOCUS_RING_OFFSET_2}`;
59
62
  /** The host elements a link tile may not contain, plus anything carrying `tabIndex`. */
60
63
  const INTERACTIVE_TAGS = /* @__PURE__ */ new Set([
61
64
  "a",
@@ -169,11 +172,11 @@ const BentoTile = React.forwardRef(function BentoTile(props, ref) {
169
172
  className: "flex min-w-0 flex-col gap-(--cue-space-1)",
170
173
  children: [eyebrow === void 0 ? null : /* @__PURE__ */ jsx("span", {
171
174
  "data-slot": "bento-tile-eyebrow",
172
- className: "min-w-0 truncate font-mono text-(length:--cue-text-micro) text-fg-muted",
175
+ className: `min-w-0 truncate ${DATA_FACE} text-(length:--cue-text-micro) text-fg-muted`,
173
176
  children: eyebrow
174
177
  }), title === void 0 ? null : /* @__PURE__ */ jsx("span", {
175
178
  "data-slot": "bento-tile-title",
176
- className: "font-mono text-(length:--cue-text-emphasis) font-medium text-fg",
179
+ className: TITLE_VOICE,
177
180
  children: title
178
181
  })]
179
182
  }) : null, tail ? /* @__PURE__ */ jsxs("div", {