@cueplusplus/ui 0.8.0 → 0.10.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 (352) hide show
  1. package/CHANGELOG.md +457 -0
  2. package/README.md +131 -0
  3. package/dist/chat/message-list.js +2 -1
  4. package/dist/configurator/_export.d.ts +1 -1
  5. package/dist/configurator/_export.js +53 -13
  6. package/dist/configurator/_overrides.d.ts +25 -6
  7. package/dist/configurator/_overrides.js +30 -17
  8. package/dist/configurator/configurator.js +8 -3
  9. package/dist/configurator/panel-sections.js +43 -13
  10. package/dist/elements/command-palette.js +1 -1
  11. package/dist/elements/flow-graph.js +2 -2
  12. package/dist/elements/markdown.js +1 -1
  13. package/dist/elements/surfaces.js +4 -3
  14. package/dist/index.d.ts +7 -3
  15. package/dist/index.js +5 -2
  16. package/dist/instruments/meter.d.ts +5 -1
  17. package/dist/layout/bento.d.ts +144 -0
  18. package/dist/layout/bento.js +266 -0
  19. package/dist/layout/index.d.ts +3 -2
  20. package/dist/layout/index.js +3 -2
  21. package/dist/midi/piano-keyboard.js +5 -1
  22. package/dist/primitives/button.d.ts +12 -0
  23. package/dist/styles.css +23 -1
  24. package/dist/system/density.d.ts +17 -8
  25. package/dist/system/density.js +39 -16
  26. package/dist/system/index.d.ts +5 -2
  27. package/dist/system/index.js +3 -1
  28. package/dist/system/overrides.d.ts +80 -0
  29. package/dist/system/overrides.js +277 -0
  30. package/dist/system/portal.d.ts +4 -2
  31. package/dist/system/portal.js +34 -3
  32. package/dist/system/prepaint.d.ts +58 -7
  33. package/dist/system/prepaint.js +72 -20
  34. package/dist/system/theme-provider.d.ts +133 -8
  35. package/dist/system/theme-provider.js +203 -72
  36. package/dist/system/theme-registry.d.ts +53 -0
  37. package/dist/system/theme-registry.js +66 -0
  38. package/dist/system/use-density.d.ts +13 -5
  39. package/dist/system/use-density.js +142 -13
  40. package/dist/system/use-theme.d.ts +5 -3
  41. package/dist/system/use-theme.js +5 -3
  42. package/dist/system/vocabulary.d.ts +15 -0
  43. package/dist/system/vocabulary.js +111 -0
  44. package/dist/theming/contrast.d.ts +2 -122
  45. package/dist/theming/contrast.js +2 -194
  46. package/dist/theming/create-theme.d.ts +37 -11
  47. package/dist/theming/create-theme.js +54 -17
  48. package/dist/theming/index.d.ts +3 -4
  49. package/dist/theming/index.js +3 -4
  50. package/dist/theming/serialize.d.ts +24 -11
  51. package/dist/theming/serialize.js +16 -18
  52. package/manifest/components/accordion.json +24 -6
  53. package/manifest/components/activity-graph.json +20 -5
  54. package/manifest/components/agent-card.json +37 -9
  55. package/manifest/components/agent-handoff.json +21 -5
  56. package/manifest/components/agent-mode-badge.json +22 -4
  57. package/manifest/components/agent-pile.json +38 -8
  58. package/manifest/components/agent-plan.json +9 -2
  59. package/manifest/components/agent-status.json +17 -3
  60. package/manifest/components/agent-surface.json +26 -11
  61. package/manifest/components/alert-dialog.json +29 -5
  62. package/manifest/components/animated-number.json +14 -6
  63. package/manifest/components/app-bar.json +66 -13
  64. package/manifest/components/app-shell.json +133 -31
  65. package/manifest/components/app-window-frame.json +28 -6
  66. package/manifest/components/approval-card.json +37 -7
  67. package/manifest/components/artifact-card.json +16 -4
  68. package/manifest/components/ask-box.json +99 -21
  69. package/manifest/components/audience-icon.json +1 -7
  70. package/manifest/components/autocomplete.json +80 -18
  71. package/manifest/components/avatar-group.json +13 -2
  72. package/manifest/components/avatar.json +22 -4
  73. package/manifest/components/background-inbox.json +9 -2
  74. package/manifest/components/bento.json +306 -0
  75. package/manifest/components/branch-picker.json +29 -7
  76. package/manifest/components/breadcrumb.json +13 -3
  77. package/manifest/components/button-group.json +21 -4
  78. package/manifest/components/button.json +41 -4
  79. package/manifest/components/canvas-split-body.json +4 -1
  80. package/manifest/components/canvas-split-header.json +17 -4
  81. package/manifest/components/canvas-split-line.json +4 -1
  82. package/manifest/components/canvas-split-message.json +8 -1
  83. package/manifest/components/card.json +14 -3
  84. package/manifest/components/carousel.json +54 -12
  85. package/manifest/components/catalogue-icon.json +1 -7
  86. package/manifest/components/channel-beta-icon.json +1 -7
  87. package/manifest/components/channel-matrix.json +80 -15
  88. package/manifest/components/channel-released-icon.json +1 -7
  89. package/manifest/components/chart-container.json +26 -10
  90. package/manifest/components/chart-ramp.json +13 -3
  91. package/manifest/components/chart-swatch.json +9 -2
  92. package/manifest/components/chart-tooltip-content.json +31 -7
  93. package/manifest/components/chart.json +30 -6
  94. package/manifest/components/chat-panel-composer.json +9 -2
  95. package/manifest/components/checkbox-group.json +4 -2
  96. package/manifest/components/checkbox.json +17 -4
  97. package/manifest/components/checkpoint-history.json +13 -3
  98. package/manifest/components/chip.json +35 -5
  99. package/manifest/components/clamp.json +30 -7
  100. package/manifest/components/cli-tool-icon.json +1 -7
  101. package/manifest/components/code-diff.json +20 -5
  102. package/manifest/components/code-runner.json +32 -6
  103. package/manifest/components/collapsible.json +16 -4
  104. package/manifest/components/color-area.json +4 -1
  105. package/manifest/components/color-field.json +13 -3
  106. package/manifest/components/color-picker.json +75 -17
  107. package/manifest/components/color-slider.json +12 -3
  108. package/manifest/components/color-swatch.json +13 -2
  109. package/manifest/components/colors-section.json +10 -7
  110. package/manifest/components/combobox.json +81 -18
  111. package/manifest/components/command-palette.json +57 -13
  112. package/manifest/components/compaction-row.json +35 -7
  113. package/manifest/components/comparison-card.json +17 -4
  114. package/manifest/components/composer-attachment-chip.json +9 -2
  115. package/manifest/components/composer-bar.json +4 -1
  116. package/manifest/components/composer-command-item.json +8 -2
  117. package/manifest/components/composer-context.json +4 -1
  118. package/manifest/components/composer-input.json +5 -1
  119. package/manifest/components/composer-menu-item.json +4 -1
  120. package/manifest/components/composer-menu.json +12 -2
  121. package/manifest/components/composer-model-item.json +8 -2
  122. package/manifest/components/composer-model-trigger.json +8 -2
  123. package/manifest/components/composer-person-item.json +8 -2
  124. package/manifest/components/composer-send.json +8 -2
  125. package/manifest/components/composer-voice-button.json +4 -1
  126. package/manifest/components/composer-voice.json +8 -2
  127. package/manifest/components/composer.json +76 -17
  128. package/manifest/components/computer-use.json +17 -4
  129. package/manifest/components/confidence-marker.json +13 -3
  130. package/manifest/components/connection-state.json +23 -4
  131. package/manifest/components/container.json +14 -2
  132. package/manifest/components/context-breakdown.json +8 -2
  133. package/manifest/components/context-menu.json +16 -4
  134. package/manifest/components/context-usage.json +16 -4
  135. package/manifest/components/conversation-search.json +22 -5
  136. package/manifest/components/copy-button.json +32 -7
  137. package/manifest/components/cost-meter.json +12 -3
  138. package/manifest/components/cue-logotype.json +17 -3
  139. package/manifest/components/cue-mark.json +17 -3
  140. package/manifest/components/cue-portal-frame.json +14 -4
  141. package/manifest/components/data-row.json +21 -7
  142. package/manifest/components/data-table-pagination.json +18 -4
  143. package/manifest/components/data-table-toolbar.json +30 -7
  144. package/manifest/components/data-tree.json +42 -9
  145. package/manifest/components/date-field.json +13 -2
  146. package/manifest/components/date-picker.json +81 -19
  147. package/manifest/components/date-range-picker.json +81 -19
  148. package/manifest/components/day-separator.json +4 -1
  149. package/manifest/components/delegation-card.json +64 -12
  150. package/manifest/components/density.json +25 -5
  151. package/manifest/components/description-list.json +8 -1
  152. package/manifest/components/diagram.json +33 -7
  153. package/manifest/components/dialog.json +29 -6
  154. package/manifest/components/disclosure.json +31 -7
  155. package/manifest/components/dmx-bar.json +16 -4
  156. package/manifest/components/dmx-strip.json +20 -5
  157. package/manifest/components/document-reference.json +21 -5
  158. package/manifest/components/draft-restore.json +18 -4
  159. package/manifest/components/drawer.json +30 -6
  160. package/manifest/components/dropdown-menu.json +55 -10
  161. package/manifest/components/edit-message.json +32 -7
  162. package/manifest/components/elements-command-palette.json +27 -6
  163. package/manifest/components/elements-data-table.json +9 -2
  164. package/manifest/components/elements-timeline.json +8 -2
  165. package/manifest/components/elicitation-form.json +31 -6
  166. package/manifest/components/empty-state-composer.json +9 -2
  167. package/manifest/components/empty-state-suggestion.json +4 -1
  168. package/manifest/components/empty-state.json +25 -5
  169. package/manifest/components/end-of-turn-summary.json +16 -4
  170. package/manifest/components/env-var-input.json +54 -12
  171. package/manifest/components/error-state.json +17 -4
  172. package/manifest/components/export-dialog.json +27 -11
  173. package/manifest/components/eyebrow.json +4 -1
  174. package/manifest/components/feedback-dialog.json +33 -7
  175. package/manifest/components/field-description.json +4 -1
  176. package/manifest/components/field-error.json +13 -3
  177. package/manifest/components/field-label.json +4 -1
  178. package/manifest/components/field.json +4 -1
  179. package/manifest/components/file-tree.json +16 -4
  180. package/manifest/components/file-upload.json +58 -13
  181. package/manifest/components/flow-graph.json +12 -3
  182. package/manifest/components/folder-icon.json +1 -7
  183. package/manifest/components/footer.json +24 -4
  184. package/manifest/components/frac.json +10 -2
  185. package/manifest/components/generation-loader.json +17 -3
  186. package/manifest/components/generative-ui.json +39 -7
  187. package/manifest/components/grid.json +56 -5
  188. package/manifest/components/group-bar.json +25 -6
  189. package/manifest/components/guardrail-notice.json +22 -5
  190. package/manifest/components/hover-card.json +45 -8
  191. package/manifest/components/icon-button.json +22 -4
  192. package/manifest/components/image-generation.json +8 -2
  193. package/manifest/components/info-tip.json +42 -7
  194. package/manifest/components/inline-citation.json +14 -3
  195. package/manifest/components/input-group.json +24 -5
  196. package/manifest/components/input.json +13 -3
  197. package/manifest/components/item.json +42 -8
  198. package/manifest/components/job-progress.json +25 -6
  199. package/manifest/components/launcher-bubble.json +32 -7
  200. package/manifest/components/ledger.json +87 -19
  201. package/manifest/components/link.json +16 -3
  202. package/manifest/components/live-region-announcer.json +21 -5
  203. package/manifest/components/log-viewer.json +42 -10
  204. package/manifest/components/map-answer.json +17 -4
  205. package/manifest/components/markdown-text.json +36 -5
  206. package/manifest/components/math-block.json +12 -3
  207. package/manifest/components/mcp-server-icon.json +1 -7
  208. package/manifest/components/mcp-server-panel.json +18 -4
  209. package/manifest/components/memory-chips.json +9 -2
  210. package/manifest/components/menubar.json +33 -7
  211. package/manifest/components/message-actions.json +32 -7
  212. package/manifest/components/message-attachments.json +9 -2
  213. package/manifest/components/message-branches.json +14 -3
  214. package/manifest/components/message-list.json +27 -6
  215. package/manifest/components/message-pair.json +25 -5
  216. package/manifest/components/message-queue.json +13 -3
  217. package/manifest/components/message-timing.json +8 -2
  218. package/manifest/components/message.json +41 -9
  219. package/manifest/components/meter.json +43 -7
  220. package/manifest/components/mobile-composer.json +47 -10
  221. package/manifest/components/model-picker.json +13 -3
  222. package/manifest/components/multi-select.json +78 -17
  223. package/manifest/components/musical-time-input.json +34 -8
  224. package/manifest/components/navigation-menu.json +54 -12
  225. package/manifest/components/node-card.json +42 -7
  226. package/manifest/components/node-handle.json +17 -2
  227. package/manifest/components/number-field.json +28 -6
  228. package/manifest/components/number-ticker.json +8 -2
  229. package/manifest/components/onboarding.json +18 -4
  230. package/manifest/components/otp-field.json +43 -10
  231. package/manifest/components/page-shell.json +35 -6
  232. package/manifest/components/pagination.json +21 -5
  233. package/manifest/components/panel-header.json +15 -3
  234. package/manifest/components/password-input.json +38 -8
  235. package/manifest/components/permission-grant.json +28 -5
  236. package/manifest/components/permission-scopes.json +57 -12
  237. package/manifest/components/piano-keyboard.json +38 -9
  238. package/manifest/components/plussie.json +34 -5
  239. package/manifest/components/popover.json +45 -8
  240. package/manifest/components/preset-section.json +14 -8
  241. package/manifest/components/progress.json +25 -6
  242. package/manifest/components/prompt-library.json +27 -6
  243. package/manifest/components/queue-dock.json +36 -8
  244. package/manifest/components/quota-banner.json +25 -6
  245. package/manifest/components/quote-reply.json +29 -7
  246. package/manifest/components/radio-group.json +12 -2
  247. package/manifest/components/radio.json +17 -3
  248. package/manifest/components/rating.json +60 -13
  249. package/manifest/components/read-aloud.json +35 -8
  250. package/manifest/components/reasoning-effort.json +17 -4
  251. package/manifest/components/reasoning-panel.json +33 -8
  252. package/manifest/components/recommendation-card.json +35 -10
  253. package/manifest/components/regenerate-menu.json +22 -5
  254. package/manifest/components/replay-player.json +29 -7
  255. package/manifest/components/research-report.json +12 -3
  256. package/manifest/components/resizable.json +4 -1
  257. package/manifest/components/retrieval-chunks.json +16 -4
  258. package/manifest/components/revert-dock.json +61 -14
  259. package/manifest/components/reviewable-diff.json +23 -5
  260. package/manifest/components/risk-badge.json +18 -3
  261. package/manifest/components/row.json +17 -4
  262. package/manifest/components/schedule-card.json +25 -6
  263. package/manifest/components/score-breakdown.json +20 -5
  264. package/manifest/components/scroll-anchor.json +13 -3
  265. package/manifest/components/scroll-area.json +31 -8
  266. package/manifest/components/scrollable-tabs-list.json +12 -4
  267. package/manifest/components/scrub-input.json +84 -18
  268. package/manifest/components/seam-cell.json +19 -3
  269. package/manifest/components/seam-grid.json +12 -3
  270. package/manifest/components/search-input.json +49 -10
  271. package/manifest/components/section-header.json +36 -8
  272. package/manifest/components/segmented-control.json +50 -11
  273. package/manifest/components/select.json +74 -16
  274. package/manifest/components/separator.json +4 -1
  275. package/manifest/components/settings-panel.json +41 -9
  276. package/manifest/components/shape-section.json +10 -7
  277. package/manifest/components/shared-conversation.json +21 -5
  278. package/manifest/components/sheet.json +29 -6
  279. package/manifest/components/shimmer-label.json +4 -2
  280. package/manifest/components/sidebar.json +60 -13
  281. package/manifest/components/skill-icon.json +1 -7
  282. package/manifest/components/slider.json +22 -5
  283. package/manifest/components/sources.json +17 -4
  284. package/manifest/components/sparkline.json +17 -4
  285. package/manifest/components/speaker-identity.json +4 -1
  286. package/manifest/components/spec-sheet.json +16 -4
  287. package/manifest/components/spectrum-visualizer.json +41 -10
  288. package/manifest/components/spinner.json +12 -2
  289. package/manifest/components/stack-icon.json +1 -7
  290. package/manifest/components/stack.json +54 -7
  291. package/manifest/components/stacks-matrix-icon.json +1 -7
  292. package/manifest/components/stat.json +28 -4
  293. package/manifest/components/status-bar.json +50 -9
  294. package/manifest/components/status-dot.json +23 -4
  295. package/manifest/components/stepper.json +22 -5
  296. package/manifest/components/stopped-run.json +19 -4
  297. package/manifest/components/streaming-text.json +12 -3
  298. package/manifest/components/subagent-list.json +21 -5
  299. package/manifest/components/suggestions.json +27 -5
  300. package/manifest/components/swap-label.json +18 -4
  301. package/manifest/components/switch.json +18 -3
  302. package/manifest/components/table-scroll-region.json +4 -1
  303. package/manifest/components/table.json +54 -11
  304. package/manifest/components/tabs.json +16 -5
  305. package/manifest/components/tags-input.json +79 -17
  306. package/manifest/components/tail-status.json +37 -8
  307. package/manifest/components/terminal-block.json +25 -5
  308. package/manifest/components/terminal-frame.json +34 -8
  309. package/manifest/components/textarea.json +8 -3
  310. package/manifest/components/theme-configurator.json +47 -14
  311. package/manifest/components/theme-provider.json +97 -18
  312. package/manifest/components/thinking-indicator.json +8 -2
  313. package/manifest/components/thread-list.json +13 -3
  314. package/manifest/components/thread-search.json +22 -5
  315. package/manifest/components/threshold-rail.json +77 -14
  316. package/manifest/components/time-boundary.json +8 -2
  317. package/manifest/components/time-field.json +13 -2
  318. package/manifest/components/timeline-ruler.json +51 -12
  319. package/manifest/components/timeline.json +19 -3
  320. package/manifest/components/title-bar.json +19 -4
  321. package/manifest/components/toast.json +12 -3
  322. package/manifest/components/todo-list.json +8 -2
  323. package/manifest/components/toggle-group.json +33 -7
  324. package/manifest/components/toggle.json +23 -4
  325. package/manifest/components/token-editor.json +26 -10
  326. package/manifest/components/tool-call-card.json +83 -16
  327. package/manifest/components/tool-call.json +37 -9
  328. package/manifest/components/tool-error.json +34 -8
  329. package/manifest/components/tool-group.json +17 -4
  330. package/manifest/components/tool-timeline.json +37 -9
  331. package/manifest/components/toolbar.json +37 -8
  332. package/manifest/components/tooltip.json +41 -7
  333. package/manifest/components/trace-waterfall.json +12 -3
  334. package/manifest/components/tree-visibility-toggle.json +18 -3
  335. package/manifest/components/tree.json +52 -11
  336. package/manifest/components/turn-footer.json +36 -8
  337. package/manifest/components/two-step-button.json +46 -9
  338. package/manifest/components/typing-indicator.json +8 -1
  339. package/manifest/components/universe-grid.json +37 -10
  340. package/manifest/components/unread-divider.json +4 -1
  341. package/manifest/components/usage-chart.json +46 -9
  342. package/manifest/components/verdict-row.json +20 -5
  343. package/manifest/components/voice-conversation.json +37 -7
  344. package/manifest/components/web-preview.json +23 -5
  345. package/manifest/components/web-search.json +20 -5
  346. package/manifest/components/work-collapse.json +30 -7
  347. package/manifest/fixtures.json +106 -0
  348. package/manifest/manifest.json +449 -310
  349. package/manifest/tokens.json +122 -12
  350. package/package.json +16 -6
  351. package/dist/theming/_presets.d.ts +0 -11
  352. package/dist/theming/_presets.js +0 -678
@@ -12,98 +12,161 @@
12
12
  "type": "number",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "The (upper) threshold, `0`–`1`. Always controlled."
15
+ "description": "The (upper) threshold, `0`–`1`. Always controlled.",
16
+ "control": {
17
+ "kind": "number"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "onChange",
19
22
  "type": "(value: number) => void",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "Called with the next upper threshold."
25
+ "description": "Called with the next upper threshold.",
26
+ "control": {
27
+ "kind": "callback",
28
+ "fixture": "callback.log"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "lower",
26
33
  "type": "number",
27
34
  "required": false,
28
35
  "defaultValue": null,
29
- "description": "The lower threshold. Supplying it turns the rail into a window."
36
+ "description": "The lower threshold. Supplying it turns the rail into a window.",
37
+ "control": {
38
+ "kind": "number"
39
+ }
30
40
  },
31
41
  {
32
42
  "name": "onLowerChange",
33
43
  "type": "((value: number) => void)",
34
44
  "required": false,
35
45
  "defaultValue": null,
36
- "description": "Called with the next lower threshold."
46
+ "description": "Called with the next lower threshold.",
47
+ "control": {
48
+ "kind": "callback",
49
+ "fixture": "callback.log"
50
+ }
37
51
  },
38
52
  {
39
53
  "name": "onCommit",
40
54
  "type": "((thresholds: { upper: number; lower?: number; }) => void)",
41
55
  "required": false,
42
56
  "defaultValue": null,
43
- "description": "Called once per finished gesture with both thresholds: pointer-up after a\ndrag, or each key step. Hang undo entries and network writes here —\n`onChange` fires on every frame of a drag."
57
+ "description": "Called once per finished gesture with both thresholds: pointer-up after a\ndrag, or each key step. Hang undo entries and network writes here —\n`onChange` fires on every frame of a drag.",
58
+ "control": {
59
+ "kind": "callback",
60
+ "fixture": "callback.log"
61
+ }
44
62
  },
45
63
  {
46
64
  "name": "level",
47
65
  "type": "number",
48
66
  "required": false,
49
67
  "defaultValue": null,
50
- "description": "Live signal level, `0`–`1`, drawn as a fill. Absent draws no fill."
68
+ "description": "Live signal level, `0`–`1`, drawn as a fill. Absent draws no fill.",
69
+ "control": {
70
+ "kind": "number"
71
+ }
51
72
  },
52
73
  {
53
74
  "name": "peak",
54
75
  "type": "number | null",
55
76
  "required": false,
56
77
  "defaultValue": null,
57
- "description": "Peak-hold position, `0`–`1`. `null` or absent draws no needle."
78
+ "description": "Peak-hold position, `0`–`1`. `null` or absent draws no needle.",
79
+ "control": {
80
+ "kind": "number",
81
+ "nullable": true
82
+ }
58
83
  },
59
84
  {
60
85
  "name": "step",
61
86
  "type": "number",
62
87
  "required": false,
63
88
  "defaultValue": "0.01",
64
- "description": "Grid the handles snap to. Defaults to `0.01`."
89
+ "description": "Grid the handles snap to. Defaults to `0.01`.",
90
+ "control": {
91
+ "kind": "number"
92
+ }
65
93
  },
66
94
  {
67
95
  "name": "minGap",
68
96
  "type": "number",
69
97
  "required": false,
70
98
  "defaultValue": "0.01",
71
- "description": "Closest the two handles may get. Defaults to `0.01`."
99
+ "description": "Closest the two handles may get. Defaults to `0.01`.",
100
+ "control": {
101
+ "kind": "number"
102
+ }
72
103
  },
73
104
  {
74
105
  "name": "belowTone",
75
106
  "type": "\"danger\" | \"accent\" | \"busy\" | \"ok\" | \"warn\" | \"info\"",
76
107
  "required": false,
77
108
  "defaultValue": "danger",
78
- "description": "Ink for the zones outside the window. Defaults to `\"danger\"`."
109
+ "description": "Ink for the zones outside the window. Defaults to `\"danger\"`.",
110
+ "control": {
111
+ "kind": "enum",
112
+ "members": [
113
+ "danger",
114
+ "accent",
115
+ "busy",
116
+ "ok",
117
+ "warn",
118
+ "info"
119
+ ]
120
+ }
79
121
  },
80
122
  {
81
123
  "name": "aboveTone",
82
124
  "type": "\"danger\" | \"accent\" | \"busy\" | \"ok\" | \"warn\" | \"info\"",
83
125
  "required": false,
84
126
  "defaultValue": "ok",
85
- "description": "Ink for the armed zone. Defaults to `\"ok\"`."
127
+ "description": "Ink for the armed zone. Defaults to `\"ok\"`.",
128
+ "control": {
129
+ "kind": "enum",
130
+ "members": [
131
+ "danger",
132
+ "accent",
133
+ "busy",
134
+ "ok",
135
+ "warn",
136
+ "info"
137
+ ]
138
+ }
86
139
  },
87
140
  {
88
141
  "name": "disabled",
89
142
  "type": "boolean",
90
143
  "required": false,
91
144
  "defaultValue": "false",
92
- "description": "Refuse every gesture."
145
+ "description": "Refuse every gesture.",
146
+ "control": {
147
+ "kind": "boolean"
148
+ }
93
149
  },
94
150
  {
95
151
  "name": "label",
96
152
  "type": "string",
97
153
  "required": false,
98
154
  "defaultValue": "Threshold",
99
- "description": "What is being thresholded. Names the handles. Defaults to `\"Threshold\"`."
155
+ "description": "What is being thresholded. Names the handles. Defaults to `\"Threshold\"`.",
156
+ "control": {
157
+ "kind": "string"
158
+ }
100
159
  },
101
160
  {
102
161
  "name": "formatValue",
103
162
  "type": "((value: number) => string)",
104
163
  "required": false,
105
164
  "defaultValue": "(fraction) => `${Math.round(fraction * 100)}%`",
106
- "description": "Format a value for the handle's spoken text. Defaults to `\"62%\"`."
165
+ "description": "Format a value for the handle's spoken text. Defaults to `\"62%\"`.",
166
+ "control": {
167
+ "kind": "callback",
168
+ "fixture": "callback.log"
169
+ }
107
170
  }
108
171
  ],
109
172
  "typeReferences": [
@@ -12,14 +12,20 @@
12
12
  "type": "string",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "The label, pre-formatted: `Today`, `Yesterday`, `14 March`. This family\ndoes no date arithmetic and owns no locale — the caller knows which one the\nconsole is in, and `DaySeparator` next door takes its days the same way."
15
+ "description": "The label, pre-formatted: `Today`, `Yesterday`, `14 March`. This family\ndoes no date arithmetic and owns no locale — the caller knows which one the\nconsole is in, and `DaySeparator` next door takes its days the same way.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "dateTime",
19
22
  "type": "string",
20
23
  "required": false,
21
24
  "defaultValue": null,
22
- "description": "The machine-readable instant, rendering the label inside a `<time>`. Worth\ngiving: it is what lets a test, a scraper or a deep link find the boundary\nwithout parsing the words a human reads."
25
+ "description": "The machine-readable instant, rendering the label inside a `<time>`. Worth\ngiving: it is what lets a test, a scraper or a deep link find the boundary\nwithout parsing the words a human reads.",
26
+ "control": {
27
+ "kind": "string"
28
+ }
23
29
  }
24
30
  ],
25
31
  "typeReferences": [
@@ -14,14 +14,25 @@
14
14
  "type": "\"sm\" | \"md\" | \"lg\"",
15
15
  "required": false,
16
16
  "defaultValue": null,
17
- "description": "Rung of the control ladder. Defaults to `\"md\"`."
17
+ "description": "Rung of the control ladder. Defaults to `\"md\"`.",
18
+ "control": {
19
+ "kind": "enum",
20
+ "members": [
21
+ "sm",
22
+ "md",
23
+ "lg"
24
+ ]
25
+ }
18
26
  },
19
27
  {
20
28
  "name": "inputClassName",
21
29
  "type": "ClassNameOrFunction<DateInputRenderProps>",
22
30
  "required": false,
23
31
  "defaultValue": null,
24
- "description": "Extra classes for the segment group itself."
32
+ "description": "Extra classes for the segment group itself.",
33
+ "control": {
34
+ "kind": "opaque"
35
+ }
25
36
  }
26
37
  ],
27
38
  "typeReferences": [
@@ -12,84 +12,123 @@
12
12
  "type": "number",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Length of the song, in quarter-note beats."
15
+ "description": "Length of the song, in quarter-note beats.",
16
+ "control": {
17
+ "kind": "number"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "pxPerBeat",
19
22
  "type": "number",
20
23
  "required": false,
21
24
  "defaultValue": "20",
22
- "description": "Zoom, in px per quarter-note beat. Defaults to `20`."
25
+ "description": "Zoom, in px per quarter-note beat. Defaults to `20`.",
26
+ "control": {
27
+ "kind": "number"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "viewport",
26
32
  "type": "RulerViewport",
27
33
  "required": false,
28
34
  "defaultValue": null,
29
- "description": "What is on screen, in the same pixel coordinates.\n\nSupply it when the host already tracks its own scroll — a timeline usually\ndoes, and one source of truth scrolls in step. Omitted, the ruler watches\nits own scroll parent instead."
35
+ "description": "What is on screen, in the same pixel coordinates.\n\nSupply it when the host already tracks its own scroll — a timeline usually\ndoes, and one source of truth scrolls in step. Omitted, the ruler watches\nits own scroll parent instead.",
36
+ "control": {
37
+ "kind": "opaque"
38
+ }
30
39
  },
31
40
  {
32
41
  "name": "timeSignature",
33
42
  "type": "TimeSignature",
34
43
  "required": false,
35
44
  "defaultValue": "{ numerator: 4, denominator: 4 }",
36
- "description": "The signature the bars are counted in. Defaults to 4/4."
45
+ "description": "The signature the bars are counted in. Defaults to 4/4.",
46
+ "control": {
47
+ "kind": "opaque"
48
+ }
37
49
  },
38
50
  {
39
51
  "name": "tempo",
40
52
  "type": "number | null",
41
53
  "required": false,
42
54
  "defaultValue": null,
43
- "description": "Tempo in BPM. Only used for the readout and the accessible name."
55
+ "description": "Tempo in BPM. Only used for the readout and the accessible name.",
56
+ "control": {
57
+ "kind": "number",
58
+ "nullable": true
59
+ }
44
60
  },
45
61
  {
46
62
  "name": "playhead",
47
63
  "type": "number | null",
48
64
  "required": false,
49
65
  "defaultValue": null,
50
- "description": "Transport position in quarter-note beats. `null` or absent draws no playhead."
66
+ "description": "Transport position in quarter-note beats. `null` or absent draws no playhead.",
67
+ "control": {
68
+ "kind": "number",
69
+ "nullable": true
70
+ }
51
71
  },
52
72
  {
53
73
  "name": "loop",
54
74
  "type": "LoopRegion | null",
55
75
  "required": false,
56
76
  "defaultValue": null,
57
- "description": "The loop bracket, if there is one."
77
+ "description": "The loop bracket, if there is one.",
78
+ "control": {
79
+ "kind": "opaque",
80
+ "nullable": true
81
+ }
58
82
  },
59
83
  {
60
84
  "name": "markers",
61
85
  "type": "readonly RulerMarker[]",
62
86
  "required": false,
63
87
  "defaultValue": null,
64
- "description": "Cue points to pin along the ruler."
88
+ "description": "Cue points to pin along the ruler.",
89
+ "control": {
90
+ "kind": "array"
91
+ }
65
92
  },
66
93
  {
67
94
  "name": "height",
68
95
  "type": "number",
69
96
  "required": false,
70
97
  "defaultValue": "40",
71
- "description": "Ruler height in px at the 16px root, emitted as `rem`. Defaults to `40`."
98
+ "description": "Ruler height in px at the 16px root, emitted as `rem`. Defaults to `40`.",
99
+ "control": {
100
+ "kind": "number"
101
+ }
72
102
  },
73
103
  {
74
104
  "name": "targetPx",
75
105
  "type": "number",
76
106
  "required": false,
77
107
  "defaultValue": null,
78
- "description": "Pixel spacing the ticks aim for. Defaults to one centimetre."
108
+ "description": "Pixel spacing the ticks aim for. Defaults to one centimetre.",
109
+ "control": {
110
+ "kind": "number"
111
+ }
79
112
  },
80
113
  {
81
114
  "name": "bufferPx",
82
115
  "type": "number",
83
116
  "required": false,
84
117
  "defaultValue": null,
85
- "description": "How far past the viewport to keep ruling, in px. Defaults to `120`."
118
+ "description": "How far past the viewport to keep ruling, in px. Defaults to `120`.",
119
+ "control": {
120
+ "kind": "number"
121
+ }
86
122
  },
87
123
  {
88
124
  "name": "label",
89
125
  "type": "string",
90
126
  "required": false,
91
127
  "defaultValue": "Timeline",
92
- "description": "What this timeline is. Defaults to `\"Timeline\"`."
128
+ "description": "What this timeline is. Defaults to `\"Timeline\"`.",
129
+ "control": {
130
+ "kind": "string"
131
+ }
93
132
  }
94
133
  ],
95
134
  "typeReferences": [
@@ -43,21 +43,37 @@
43
43
  "type": "\"danger\" | \"idle\" | \"busy\" | \"ok\" | \"warn\"",
44
44
  "required": true,
45
45
  "defaultValue": null,
46
- "description": "Which state this event is in. The shared `StatusDot` vocabulary."
46
+ "description": "Which state this event is in. The shared `StatusDot` vocabulary.",
47
+ "control": {
48
+ "kind": "enum",
49
+ "members": [
50
+ "danger",
51
+ "idle",
52
+ "busy",
53
+ "ok",
54
+ "warn"
55
+ ]
56
+ }
47
57
  },
48
58
  {
49
59
  "name": "label",
50
60
  "type": "string",
51
61
  "required": false,
52
62
  "defaultValue": null,
53
- "description": "Screen-reader text for the dot. Defaults to the tone name."
63
+ "description": "Screen-reader text for the dot. Defaults to the tone name.",
64
+ "control": {
65
+ "kind": "string"
66
+ }
54
67
  },
55
68
  {
56
69
  "name": "pulse",
57
70
  "type": "boolean",
58
71
  "required": false,
59
72
  "defaultValue": null,
60
- "description": "Pulse the dot for an event still in progress."
73
+ "description": "Pulse the dot for an event still in progress.",
74
+ "control": {
75
+ "kind": "boolean"
76
+ }
61
77
  }
62
78
  ],
63
79
  "typeReferences": [
@@ -12,28 +12,43 @@
12
12
  "type": "boolean",
13
13
  "required": false,
14
14
  "defaultValue": "false",
15
- "description": "Make the bar a window drag handle.\n\nEmits `data-tauri-drag-region` (Tauri reads the attribute) *and* the\n`app-region: drag` CSS property (Electron and Chromium read that), because\nthe same component ships into both shells and neither one recognises the\nother's contract. The interactive clusters are carved back out with\n`app-region: no-drag`, or the buttons in the bar would only ever move the\nwindow instead of firing. Both halves of that contract live in\n`./_drag.ts`, which `AppShell.Bar` emits from as well — the two bars are\ndraggable the same way or they are not draggable the same way.\n\nDouble-click-to-maximise is not wired here. Tauri's own injected script\nalready provides it on any drag region, cancel-by-dragging-away on macOS\nincluded; Electron provides nothing, and an Electron app has to listen for\n`dblclick` and toggle the window itself. Neither is a decision a component\nin a design system can make on the window's behalf.\n\nDefaults to `false`."
15
+ "description": "Make the bar a window drag handle.\n\nEmits `data-tauri-drag-region` (Tauri reads the attribute) *and* the\n`app-region: drag` CSS property (Electron and Chromium read that), because\nthe same component ships into both shells and neither one recognises the\nother's contract. The interactive clusters are carved back out with\n`app-region: no-drag`, or the buttons in the bar would only ever move the\nwindow instead of firing. Both halves of that contract live in\n`./_drag.ts`, which `AppShell.Bar` emits from as well — the two bars are\ndraggable the same way or they are not draggable the same way.\n\nDouble-click-to-maximise is not wired here. Tauri's own injected script\nalready provides it on any drag region, cancel-by-dragging-away on macOS\nincluded; Electron provides nothing, and an Electron app has to listen for\n`dblclick` and toggle the window itself. Neither is a decision a component\nin a design system can make on the window's behalf.\n\nDefaults to `false`.",
16
+ "control": {
17
+ "kind": "boolean"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "center",
19
22
  "type": "ReactNode",
20
23
  "required": false,
21
24
  "defaultValue": null,
22
- "description": "Centre slot: the document name. Absolutely centred on the *bar*, not\nbetween the two clusters, so it does not shift sideways when a button\nappears on one side. `pointer-events-none`, so the dead space around a\nshort title stays draggable."
25
+ "description": "Centre slot: the document name. Absolutely centred on the *bar*, not\nbetween the two clusters, so it does not shift sideways when a button\nappears on one side. `pointer-events-none`, so the dead space around a\nshort title stays draggable.",
26
+ "control": {
27
+ "kind": "node",
28
+ "fixture": "children.text"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "actions",
26
33
  "type": "ReactNode",
27
34
  "required": false,
28
35
  "defaultValue": null,
29
- "description": "Trailing slot: window controls, connection state, an overflow menu."
36
+ "description": "Trailing slot: window controls, connection state, an overflow menu.",
37
+ "control": {
38
+ "kind": "node",
39
+ "fixture": "children.text"
40
+ }
30
41
  },
31
42
  {
32
43
  "name": "children",
33
44
  "type": "ReactNode",
34
45
  "required": false,
35
46
  "defaultValue": null,
36
- "description": "Leading slot: the app mark, a back button, the file menu."
47
+ "description": "Leading slot: the app mark, a back button, the file menu.",
48
+ "control": {
49
+ "kind": "node",
50
+ "fixture": "children.text"
51
+ }
37
52
  }
38
53
  ],
39
54
  "typeReferences": [
@@ -32,21 +32,30 @@
32
32
  "type": "string",
33
33
  "required": false,
34
34
  "defaultValue": null,
35
- "description": "Extra classes for the viewport (move the corner, change the width)."
35
+ "description": "Extra classes for the viewport (move the corner, change the width).",
36
+ "control": {
37
+ "kind": "string"
38
+ }
36
39
  },
37
40
  {
38
41
  "name": "toastClassName",
39
42
  "type": "string",
40
43
  "required": false,
41
44
  "defaultValue": null,
42
- "description": "Extra classes for every toast card."
45
+ "description": "Extra classes for every toast card.",
46
+ "control": {
47
+ "kind": "string"
48
+ }
43
49
  },
44
50
  {
45
51
  "name": "closeLabel",
46
52
  "type": "string",
47
53
  "required": false,
48
54
  "defaultValue": "Dismiss",
49
- "description": "Accessible name for each card's close affordance. Defaults to `\"Dismiss\"`."
55
+ "description": "Accessible name for each card's close affordance. Defaults to `\"Dismiss\"`.",
56
+ "control": {
57
+ "kind": "string"
58
+ }
50
59
  }
51
60
  ],
52
61
  "typeReferences": []
@@ -14,14 +14,20 @@
14
14
  "type": "readonly TodoItem[]",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "The list as it stands right now. Each item carries its own status, so the agent\ncan add, reorder, and complete items in any order between renders."
17
+ "description": "The list as it stands right now. Each item carries its own status, so the agent\ncan add, reorder, and complete items in any order between renders.",
18
+ "control": {
19
+ "kind": "array"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "revision",
21
24
  "type": "number",
22
25
  "required": false,
23
26
  "defaultValue": null,
24
- "description": "Which rewrite of the list this is. Omit to show a plain done/total count instead."
27
+ "description": "Which rewrite of the list this is. Omit to show a plain done/total count instead.",
28
+ "control": {
29
+ "kind": "number"
30
+ }
25
31
  }
26
32
  ],
27
33
  "typeReferences": [
@@ -12,42 +12,69 @@
12
12
  "type": "readonly string[]",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "The initially pressed values when uncontrolled."
15
+ "description": "The initially pressed values when uncontrolled.",
16
+ "control": {
17
+ "kind": "array",
18
+ "fixture": "agent.transcript"
19
+ }
16
20
  },
17
21
  {
18
22
  "name": "className",
19
23
  "type": "string",
20
24
  "required": false,
21
25
  "defaultValue": null,
22
- "description": "Extra classes for the group frame."
26
+ "description": "Extra classes for the group frame.",
27
+ "control": {
28
+ "kind": "string"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "children",
26
33
  "type": "ReactNode",
27
34
  "required": true,
28
35
  "defaultValue": null,
29
- "description": "The {@link Toggle }s, each carrying a `value`."
36
+ "description": "The {@link Toggle }s, each carrying a `value`.",
37
+ "control": {
38
+ "kind": "node",
39
+ "fixture": "children.text"
40
+ }
30
41
  },
31
42
  {
32
43
  "name": "size",
33
44
  "type": "\"sm\" | \"md\" | \"lg\"",
34
45
  "required": false,
35
46
  "defaultValue": "md",
36
- "description": "Rung of the control ladder for every toggle inside. Defaults to `\"md\"`."
47
+ "description": "Rung of the control ladder for every toggle inside. Defaults to `\"md\"`.",
48
+ "control": {
49
+ "kind": "enum",
50
+ "members": [
51
+ "sm",
52
+ "md",
53
+ "lg"
54
+ ]
55
+ }
37
56
  },
38
57
  {
39
58
  "name": "value",
40
59
  "type": "readonly string[]",
41
60
  "required": false,
42
61
  "defaultValue": null,
43
- "description": "The pressed values when controlled. Pass with `onValueChange`."
62
+ "description": "The pressed values when controlled. Pass with `onValueChange`.",
63
+ "control": {
64
+ "kind": "array",
65
+ "fixture": "agent.transcript"
66
+ }
44
67
  },
45
68
  {
46
69
  "name": "onValueChange",
47
70
  "type": "((value: string[]) => void)",
48
71
  "required": false,
49
72
  "defaultValue": null,
50
- "description": "Called with every pressed value, in the order the toggles are declared."
73
+ "description": "Called with every pressed value, in the order the toggles are declared.",
74
+ "control": {
75
+ "kind": "callback",
76
+ "fixture": "callback.log"
77
+ }
51
78
  }
52
79
  ],
53
80
  "typeReferences": [
@@ -58,7 +85,6 @@
58
85
  "variants": {},
59
86
  "defaultVariants": {},
60
87
  "tokensUsed": [
61
- "--cue-accent",
62
88
  "--cue-border",
63
89
  "--cue-border-strong",
64
90
  "--cue-control-lg",
@@ -12,28 +12,47 @@
12
12
  "type": "string",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "Extra classes, merged over the recipe."
15
+ "description": "Extra classes, merged over the recipe.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "children",
19
22
  "type": "ReactNode",
20
23
  "required": false,
21
24
  "defaultValue": null,
22
- "description": "The label. Leave it off for an icon-only toggle — and then pass `aria-label`."
25
+ "description": "The label. Leave it off for an icon-only toggle — and then pass `aria-label`.",
26
+ "control": {
27
+ "kind": "node",
28
+ "fixture": "children.text"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "size",
26
33
  "type": "\"sm\" | \"md\" | \"lg\"",
27
34
  "required": false,
28
35
  "defaultValue": null,
29
- "description": "Rung of the control ladder. Defaults to the enclosing {@link ToggleGroup }'s\nrung, or `\"md\"` outside one."
36
+ "description": "Rung of the control ladder. Defaults to the enclosing {@link ToggleGroup }'s\nrung, or `\"md\"` outside one.",
37
+ "control": {
38
+ "kind": "enum",
39
+ "members": [
40
+ "sm",
41
+ "md",
42
+ "lg"
43
+ ]
44
+ }
30
45
  },
31
46
  {
32
47
  "name": "icon",
33
48
  "type": "ElementType<any, keyof IntrinsicElements>",
34
49
  "required": false,
35
50
  "defaultValue": null,
36
- "description": "Optional leading icon component (e.g. a lucide icon). Rendered `aria-hidden`\nand sized to the density icon token. With no `children` the toggle collapses\nto a square target instead of a wide pill."
51
+ "description": "Optional leading icon component (e.g. a lucide icon). Rendered `aria-hidden`\nand sized to the density icon token. With no `children` the toggle collapses\nto a square target instead of a wide pill.",
52
+ "control": {
53
+ "kind": "opaque",
54
+ "fixture": "icon.play"
55
+ }
37
56
  }
38
57
  ],
39
58
  "typeReferences": [