@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,63 +12,91 @@
12
12
  "type": "readonly DmxAllocation[]",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "The patch. Order is display order; overlaps are found, not assumed away."
15
+ "description": "The patch. Order is display order; overlaps are found, not assumed away.",
16
+ "control": {
17
+ "kind": "array"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "label",
19
22
  "type": "string",
20
23
  "required": false,
21
24
  "defaultValue": null,
22
- "description": "Which universe this is. Names the graphic; also the group label when selectable."
25
+ "description": "Which universe this is. Names the graphic; also the group label when selectable.",
26
+ "control": {
27
+ "kind": "string"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "slots",
26
32
  "type": "number",
27
33
  "required": false,
28
34
  "defaultValue": "512",
29
- "description": "Frame length. Defaults to a full universe of 512."
35
+ "description": "Frame length. Defaults to a full universe of 512.",
36
+ "control": {
37
+ "kind": "number"
38
+ }
30
39
  },
31
40
  {
32
41
  "name": "height",
33
42
  "type": "number",
34
43
  "required": false,
35
44
  "defaultValue": "18",
36
- "description": "Bar height in px at the 16px root, emitted as `rem`. Defaults to `18`."
45
+ "description": "Bar height in px at the 16px root, emitted as `rem`. Defaults to `18`.",
46
+ "control": {
47
+ "kind": "number"
48
+ }
37
49
  },
38
50
  {
39
51
  "name": "ruler",
40
52
  "type": "boolean",
41
53
  "required": false,
42
54
  "defaultValue": "true",
43
- "description": "Draw the address ruler. Defaults to `true`."
55
+ "description": "Draw the address ruler. Defaults to `true`.",
56
+ "control": {
57
+ "kind": "boolean"
58
+ }
44
59
  },
45
60
  {
46
61
  "name": "legend",
47
62
  "type": "boolean",
48
63
  "required": false,
49
64
  "defaultValue": "true",
50
- "description": "Draw the legend row. Defaults to `true`."
65
+ "description": "Draw the legend row. Defaults to `true`.",
66
+ "control": {
67
+ "kind": "boolean"
68
+ }
51
69
  },
52
70
  {
53
71
  "name": "legendMax",
54
72
  "type": "number",
55
73
  "required": false,
56
74
  "defaultValue": "6",
57
- "description": "Legend entries before the tail collapses. Defaults to `6`."
75
+ "description": "Legend entries before the tail collapses. Defaults to `6`.",
76
+ "control": {
77
+ "kind": "number"
78
+ }
58
79
  },
59
80
  {
60
81
  "name": "onSelect",
61
82
  "type": "((allocation: DmxAllocation) => void)",
62
83
  "required": false,
63
84
  "defaultValue": null,
64
- "description": "Make the blocks buttons. Without it they are decoration inside one\n`role=\"img\"`, which is what keeps a 40-fixture patch from becoming 40 tab\nstops."
85
+ "description": "Make the blocks buttons. Without it they are decoration inside one\n`role=\"img\"`, which is what keeps a 40-fixture patch from becoming 40 tab\nstops.",
86
+ "control": {
87
+ "kind": "callback",
88
+ "fixture": "callback.log"
89
+ }
65
90
  },
66
91
  {
67
92
  "name": "emptyLabel",
68
93
  "type": "string",
69
94
  "required": false,
70
95
  "defaultValue": "No patch assignments",
71
- "description": "What to say when nothing is patched. Defaults to `\"No patch assignments\"`."
96
+ "description": "What to say when nothing is patched. Defaults to `\"No patch assignments\"`.",
97
+ "control": {
98
+ "kind": "string"
99
+ }
72
100
  }
73
101
  ],
74
102
  "typeReferences": [
@@ -84,7 +112,6 @@
84
112
  "--cue-busy",
85
113
  "--cue-danger",
86
114
  "--cue-danger-soft",
87
- "--cue-data-ground",
88
115
  "--cue-fg-muted",
89
116
  "--cue-fg-subtle",
90
117
  "--cue-font-mono",
@@ -12,7 +12,10 @@
12
12
  "type": "string",
13
13
  "required": false,
14
14
  "defaultValue": "New",
15
- "description": "What the rule says. `New` by default — one word, because the row is a place\nmarker and not an announcement, and because the sentence a reader wants is\nthe one below the rule."
15
+ "description": "What the rule says. `New` by default — one word, because the row is a place\nmarker and not an announcement, and because the sentence a reader wants is\nthe one below the rule.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  }
17
20
  ],
18
21
  "typeReferences": [
@@ -12,63 +12,100 @@
12
12
  "type": "readonly UsageChartPoint[]",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "The series. Sorted and cleaned internally; order in is not order out."
15
+ "description": "The series. Sorted and cleaned internally; order in is not order out.",
16
+ "control": {
17
+ "kind": "array"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "tone",
19
22
  "type": "\"danger\" | \"accent\" | \"busy\" | \"ok\" | \"warn\" | \"info\"",
20
23
  "required": false,
21
24
  "defaultValue": "accent",
22
- "description": "Stroke tone. Defaults to `\"accent\"`."
25
+ "description": "Stroke tone. Defaults to `\"accent\"`.",
26
+ "control": {
27
+ "kind": "enum",
28
+ "members": [
29
+ "danger",
30
+ "accent",
31
+ "busy",
32
+ "ok",
33
+ "warn",
34
+ "info"
35
+ ]
36
+ }
23
37
  },
24
38
  {
25
39
  "name": "height",
26
40
  "type": "number",
27
41
  "required": false,
28
42
  "defaultValue": "120",
29
- "description": "Plot height in px at the 16px root. Defaults to `120`."
43
+ "description": "Plot height in px at the 16px root. Defaults to `120`.",
44
+ "control": {
45
+ "kind": "number"
46
+ }
30
47
  },
31
48
  {
32
49
  "name": "gapMs",
33
50
  "type": "number",
34
51
  "required": false,
35
52
  "defaultValue": "15 * 60 * 1000",
36
- "description": "Break the line when consecutive samples are further apart than this, in ms."
53
+ "description": "Break the line when consecutive samples are further apart than this, in ms.",
54
+ "control": {
55
+ "kind": "number"
56
+ }
37
57
  },
38
58
  {
39
59
  "name": "threshold",
40
60
  "type": "number",
41
61
  "required": false,
42
62
  "defaultValue": null,
43
- "description": "Draw a dashed rule at this percentage — where throttling starts, say."
63
+ "description": "Draw a dashed rule at this percentage — where throttling starts, say.",
64
+ "control": {
65
+ "kind": "number"
66
+ }
44
67
  },
45
68
  {
46
69
  "name": "label",
47
70
  "type": "string",
48
71
  "required": false,
49
72
  "defaultValue": null,
50
- "description": "The accessible name. Name the series; the shape is not self-describing."
73
+ "description": "The accessible name. Name the series; the shape is not self-describing.",
74
+ "control": {
75
+ "kind": "string"
76
+ }
51
77
  },
52
78
  {
53
79
  "name": "emptyLabel",
54
80
  "type": "string",
55
81
  "required": false,
56
82
  "defaultValue": "No data yet",
57
- "description": "What to say when there is nothing to plot. Defaults to `\"No data yet\"`."
83
+ "description": "What to say when there is nothing to plot. Defaults to `\"No data yet\"`.",
84
+ "control": {
85
+ "kind": "string"
86
+ }
58
87
  },
59
88
  {
60
89
  "name": "formatTimestamp",
61
90
  "type": "((t: number) => string)",
62
91
  "required": false,
63
92
  "defaultValue": null,
64
- "description": "Format a sample's timestamp for the tooltip. Defaults to a short local date-time."
93
+ "description": "Format a sample's timestamp for the tooltip. Defaults to a short local date-time.",
94
+ "control": {
95
+ "kind": "callback",
96
+ "fixture": "callback.log"
97
+ }
65
98
  },
66
99
  {
67
100
  "name": "formatValue",
68
101
  "type": "((v: number) => string)",
69
102
  "required": false,
70
103
  "defaultValue": "(value) => `${Math.round(value)}%`",
71
- "description": "Format a sample's value for the tooltip. Defaults to `\"87%\"`."
104
+ "description": "Format a sample's value for the tooltip. Defaults to `\"87%\"`.",
105
+ "control": {
106
+ "kind": "callback",
107
+ "fixture": "callback.log"
108
+ }
72
109
  }
73
110
  ],
74
111
  "typeReferences": [
@@ -14,35 +14,50 @@
14
14
  "type": "number",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "What the scorer thought of the work, `0`–`1`. Clamped, and a non-finite\nscore is worth no stars — see {@link verdictStars}."
17
+ "description": "What the scorer thought of the work, `0`–`1`. Clamped, and a non-finite\nscore is worth no stars — see {@link verdictStars}.",
18
+ "control": {
19
+ "kind": "number"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "title",
21
24
  "type": "string",
22
25
  "required": false,
23
26
  "defaultValue": null,
24
- "description": "What the scorer is called. Defaults to `VERDICT_LABELS.title`\n(`Verification`), which is deliberately not `Critic`: the same row fits a\ntest run, a linter or a second model."
27
+ "description": "What the scorer is called. Defaults to `VERDICT_LABELS.title`\n(`Verification`), which is deliberately not `Critic`: the same row fits a\ntest run, a linter or a second model.",
28
+ "control": {
29
+ "kind": "string"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "summary",
28
34
  "type": "string",
29
35
  "required": false,
30
36
  "defaultValue": null,
31
- "description": "One line of the scorer's own prose, under the rating."
37
+ "description": "One line of the scorer's own prose, under the rating.",
38
+ "control": {
39
+ "kind": "string"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "issues",
35
44
  "type": "readonly VerdictIssue[]",
36
45
  "required": false,
37
46
  "defaultValue": null,
38
- "description": "What it thinks is probably wrong, drawn as chips with their probabilities\nand tinted by them. Order is the caller's — most likely first reads best."
47
+ "description": "What it thinks is probably wrong, drawn as chips with their probabilities\nand tinted by them. Order is the caller's — most likely first reads best.",
48
+ "control": {
49
+ "kind": "array"
50
+ }
39
51
  },
40
52
  {
41
53
  "name": "labels",
42
54
  "type": "Partial<VerdictLabels>",
43
55
  "required": false,
44
56
  "defaultValue": null,
45
- "description": "The row's three strings, merged over `VERDICT_LABELS`."
57
+ "description": "The row's three strings, merged over `VERDICT_LABELS`.",
58
+ "control": {
59
+ "kind": "opaque"
60
+ }
46
61
  }
47
62
  ],
48
63
  "typeReferences": [
@@ -14,49 +14,79 @@
14
14
  "type": "\"thinking\" | \"connecting\" | \"listening\" | \"speaking\"",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Drives the orb and the caption. Only listening and speaking react to amplitude."
17
+ "description": "Drives the orb and the caption. Only listening and speaking react to amplitude.",
18
+ "control": {
19
+ "kind": "enum",
20
+ "members": [
21
+ "thinking",
22
+ "connecting",
23
+ "listening",
24
+ "speaking"
25
+ ]
26
+ }
18
27
  },
19
28
  {
20
29
  "name": "amplitude",
21
30
  "type": "number",
22
31
  "required": true,
23
32
  "defaultValue": null,
24
- "description": "Current level from 0 to 1, clamped internally. Feed it from the analyser node."
33
+ "description": "Current level from 0 to 1, clamped internally. Feed it from the analyser node.",
34
+ "control": {
35
+ "kind": "number"
36
+ }
25
37
  },
26
38
  {
27
39
  "name": "transcript",
28
40
  "type": "readonly VoiceTurn[]",
29
41
  "required": true,
30
42
  "defaultValue": null,
31
- "description": "Turns so far, oldest first."
43
+ "description": "Turns so far, oldest first.",
44
+ "control": {
45
+ "kind": "array"
46
+ }
32
47
  },
33
48
  {
34
49
  "name": "muted",
35
50
  "type": "boolean",
36
51
  "required": false,
37
52
  "defaultValue": null,
38
- "description": "Marks the mic control as engaged and swaps the hint."
53
+ "description": "Marks the mic control as engaged and swaps the hint.",
54
+ "control": {
55
+ "kind": "boolean"
56
+ }
39
57
  },
40
58
  {
41
59
  "name": "onToggleMute",
42
60
  "type": "(() => void)",
43
61
  "required": false,
44
62
  "defaultValue": null,
45
- "description": "Called when the mic is muted or unmuted."
63
+ "description": "Called when the mic is muted or unmuted.",
64
+ "control": {
65
+ "kind": "callback",
66
+ "fixture": "callback.log"
67
+ }
46
68
  },
47
69
  {
48
70
  "name": "onInterrupt",
49
71
  "type": "(() => void)",
50
72
  "required": false,
51
73
  "defaultValue": null,
52
- "description": "Called when the orb is pressed while the assistant is speaking. The orb is inert\nin every other mode, so the caption only offers the interrupt when one is\npossible."
74
+ "description": "Called when the orb is pressed while the assistant is speaking. The orb is inert\nin every other mode, so the caption only offers the interrupt when one is\npossible.",
75
+ "control": {
76
+ "kind": "callback",
77
+ "fixture": "callback.log"
78
+ }
53
79
  },
54
80
  {
55
81
  "name": "onEnd",
56
82
  "type": "(() => void)",
57
83
  "required": false,
58
84
  "defaultValue": null,
59
- "description": "Called when the call is ended."
85
+ "description": "Called when the call is ended.",
86
+ "control": {
87
+ "kind": "callback",
88
+ "fixture": "callback.log"
89
+ }
60
90
  }
61
91
  ],
62
92
  "typeReferences": [
@@ -14,35 +14,53 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Host the content is served from. Show the sandbox origin, not your own, so the\nisolation is legible. Displaying it does not create the isolation; the frame you\npass as children must already be sandboxed."
17
+ "description": "Host the content is served from. Show the sandbox origin, not your own, so the\nisolation is legible. Displaying it does not create the isolation; the frame you\npass as children must already be sandboxed.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "loading",
21
24
  "type": "boolean",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Fades the frame out and shimmers a status while the sandbox is being set up."
27
+ "description": "Fades the frame out and shimmers a status while the sandbox is being set up.",
28
+ "control": {
29
+ "kind": "boolean"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "children",
28
34
  "type": "ReactNode",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "The frame itself. In production this is a sandboxed iframe, not inline markup."
37
+ "description": "The frame itself. In production this is a sandboxed iframe, not inline markup.",
38
+ "control": {
39
+ "kind": "node",
40
+ "fixture": "children.text"
41
+ }
32
42
  },
33
43
  {
34
44
  "name": "onReload",
35
45
  "type": "(() => void)",
36
46
  "required": false,
37
47
  "defaultValue": null,
38
- "description": "Called from the reload control."
48
+ "description": "Called from the reload control.",
49
+ "control": {
50
+ "kind": "callback",
51
+ "fixture": "callback.log"
52
+ }
39
53
  },
40
54
  {
41
55
  "name": "onOpenExternal",
42
56
  "type": "(() => void)",
43
57
  "required": false,
44
58
  "defaultValue": null,
45
- "description": "Called from the open-in-new-tab control."
59
+ "description": "Called from the open-in-new-tab control.",
60
+ "control": {
61
+ "kind": "callback",
62
+ "fixture": "callback.log"
63
+ }
46
64
  }
47
65
  ],
48
66
  "typeReferences": [
@@ -14,35 +14,50 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Search query shown in the query pill."
17
+ "description": "Search query shown in the query pill.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "results",
21
24
  "type": "readonly WebSearchResult[]",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Result cards available to reveal one by one."
27
+ "description": "Result cards available to reveal one by one.",
28
+ "control": {
29
+ "kind": "array"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "visibleResults",
28
34
  "type": "number",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "How many results from the start are currently shown."
37
+ "description": "How many results from the start are currently shown.",
38
+ "control": {
39
+ "kind": "number"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "searching",
35
44
  "type": "boolean",
36
45
  "required": true,
37
46
  "defaultValue": null,
38
- "description": "When true a shimmering Searching label replaces the result count."
47
+ "description": "When true a shimmering Searching label replaces the result count.",
48
+ "control": {
49
+ "kind": "boolean"
50
+ }
39
51
  },
40
52
  {
41
53
  "name": "cycle",
42
54
  "type": "number",
43
55
  "required": true,
44
56
  "defaultValue": null,
45
- "description": "Identity key that remounts the list so entrance animation can replay."
57
+ "description": "Identity key that remounts the list so entrance animation can replay.",
58
+ "control": {
59
+ "kind": "number"
60
+ }
46
61
  }
47
62
  ],
48
63
  "typeReferences": [
@@ -14,49 +14,72 @@
14
14
  "type": "number",
15
15
  "required": false,
16
16
  "defaultValue": null,
17
- "description": "How long the run took, in milliseconds. Omit when it is not known."
17
+ "description": "How long the run took, in milliseconds. Omit when it is not known.",
18
+ "control": {
19
+ "kind": "number"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "toolCalls",
21
24
  "type": "number",
22
25
  "required": false,
23
26
  "defaultValue": null,
24
- "description": "How many tool calls it made. Omit when it is not counted."
27
+ "description": "How many tool calls it made. Omit when it is not counted.",
28
+ "control": {
29
+ "kind": "number"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "running",
28
34
  "type": "boolean",
29
35
  "required": false,
30
36
  "defaultValue": "false",
31
- "description": "Whether the run is still going: the label goes present tense and the sweep\nruns. Hermes's rule, and the one that keeps a collapsed live run from\nclaiming to be finished."
37
+ "description": "Whether the run is still going: the label goes present tense and the sweep\nruns. Hermes's rule, and the one that keeps a collapsed live run from\nclaiming to be finished.",
38
+ "control": {
39
+ "kind": "boolean"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "label",
35
44
  "type": "string",
36
45
  "required": false,
37
46
  "defaultValue": null,
38
- "description": "The whole summary line, replacing the one {@link formatWorkLabel} would\nbuild. This is where a category summary goes — \"Explored 3 files, ran 5\ncommands\", composed from `VERB_TRIADS` — which is a sentence no formatter\nover a duration and a count could produce."
47
+ "description": "The whole summary line, replacing the one {@link formatWorkLabel} would\nbuild. This is where a category summary goes — \"Explored 3 files, ran 5\ncommands\", composed from `VERB_TRIADS` — which is a sentence no formatter\nover a duration and a count could produce.",
48
+ "control": {
49
+ "kind": "string"
50
+ }
39
51
  },
40
52
  {
41
53
  "name": "open",
42
54
  "type": "boolean",
43
55
  "required": true,
44
56
  "defaultValue": null,
45
- "description": "Whether the rows are showing."
57
+ "description": "Whether the rows are showing.",
58
+ "control": {
59
+ "kind": "boolean"
60
+ }
46
61
  },
47
62
  {
48
63
  "name": "onOpenChange",
49
64
  "type": "((open: boolean) => void)",
50
65
  "required": false,
51
66
  "defaultValue": null,
52
- "description": "Called when the row is expanded or collapsed."
67
+ "description": "Called when the row is expanded or collapsed.",
68
+ "control": {
69
+ "kind": "callback",
70
+ "fixture": "callback.log"
71
+ }
53
72
  },
54
73
  {
55
74
  "name": "children",
56
75
  "type": "ReactNode",
57
76
  "required": false,
58
77
  "defaultValue": null,
59
- "description": "The rows the run folded away: tool calls, reasoning, whatever ran."
78
+ "description": "The rows the run folded away: tool calls, reasoning, whatever ran.",
79
+ "control": {
80
+ "kind": "node",
81
+ "fixture": "children.text"
82
+ }
60
83
  }
61
84
  ],
62
85
  "typeReferences": [