@cueplusplus/ui 0.9.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 (314) hide show
  1. package/CHANGELOG.md +195 -0
  2. package/README.md +91 -9
  3. package/dist/index.d.ts +4 -3
  4. package/dist/index.js +4 -2
  5. package/dist/instruments/meter.d.ts +5 -1
  6. package/dist/layout/bento.d.ts +144 -0
  7. package/dist/layout/bento.js +266 -0
  8. package/dist/layout/index.d.ts +3 -2
  9. package/dist/layout/index.js +3 -2
  10. package/dist/primitives/button.d.ts +12 -0
  11. package/dist/primitives/chip.d.ts +1 -1
  12. package/dist/system/index.d.ts +2 -2
  13. package/dist/system/index.js +2 -1
  14. package/dist/system/overrides.d.ts +38 -1
  15. package/dist/system/overrides.js +40 -1
  16. package/manifest/components/accordion.json +24 -6
  17. package/manifest/components/activity-graph.json +20 -5
  18. package/manifest/components/agent-card.json +37 -9
  19. package/manifest/components/agent-handoff.json +21 -5
  20. package/manifest/components/agent-mode-badge.json +22 -4
  21. package/manifest/components/agent-pile.json +38 -8
  22. package/manifest/components/agent-plan.json +9 -2
  23. package/manifest/components/agent-status.json +17 -3
  24. package/manifest/components/agent-surface.json +26 -11
  25. package/manifest/components/alert-dialog.json +29 -5
  26. package/manifest/components/animated-number.json +14 -6
  27. package/manifest/components/app-bar.json +66 -13
  28. package/manifest/components/app-shell.json +133 -31
  29. package/manifest/components/app-window-frame.json +28 -6
  30. package/manifest/components/approval-card.json +37 -7
  31. package/manifest/components/artifact-card.json +16 -4
  32. package/manifest/components/ask-box.json +99 -21
  33. package/manifest/components/audience-icon.json +1 -7
  34. package/manifest/components/autocomplete.json +80 -18
  35. package/manifest/components/avatar-group.json +13 -2
  36. package/manifest/components/avatar.json +22 -4
  37. package/manifest/components/background-inbox.json +9 -2
  38. package/manifest/components/bento.json +306 -0
  39. package/manifest/components/branch-picker.json +29 -7
  40. package/manifest/components/breadcrumb.json +13 -3
  41. package/manifest/components/button-group.json +21 -4
  42. package/manifest/components/button.json +41 -4
  43. package/manifest/components/canvas-split-body.json +4 -1
  44. package/manifest/components/canvas-split-header.json +17 -4
  45. package/manifest/components/canvas-split-line.json +4 -1
  46. package/manifest/components/canvas-split-message.json +8 -1
  47. package/manifest/components/card.json +14 -3
  48. package/manifest/components/carousel.json +54 -12
  49. package/manifest/components/catalogue-icon.json +1 -7
  50. package/manifest/components/channel-beta-icon.json +1 -7
  51. package/manifest/components/channel-matrix.json +80 -15
  52. package/manifest/components/channel-released-icon.json +1 -7
  53. package/manifest/components/chart-container.json +26 -10
  54. package/manifest/components/chart-ramp.json +13 -3
  55. package/manifest/components/chart-swatch.json +9 -2
  56. package/manifest/components/chart-tooltip-content.json +31 -7
  57. package/manifest/components/chart.json +30 -6
  58. package/manifest/components/chat-panel-composer.json +9 -2
  59. package/manifest/components/checkbox-group.json +4 -2
  60. package/manifest/components/checkbox.json +17 -4
  61. package/manifest/components/checkpoint-history.json +13 -3
  62. package/manifest/components/chip.json +35 -5
  63. package/manifest/components/clamp.json +30 -7
  64. package/manifest/components/cli-tool-icon.json +1 -7
  65. package/manifest/components/code-diff.json +20 -5
  66. package/manifest/components/code-runner.json +32 -6
  67. package/manifest/components/collapsible.json +16 -4
  68. package/manifest/components/color-area.json +4 -1
  69. package/manifest/components/color-field.json +13 -3
  70. package/manifest/components/color-picker.json +75 -17
  71. package/manifest/components/color-slider.json +12 -3
  72. package/manifest/components/color-swatch.json +13 -2
  73. package/manifest/components/colors-section.json +8 -4
  74. package/manifest/components/combobox.json +81 -18
  75. package/manifest/components/command-palette.json +57 -13
  76. package/manifest/components/compaction-row.json +35 -7
  77. package/manifest/components/comparison-card.json +17 -4
  78. package/manifest/components/composer-attachment-chip.json +9 -2
  79. package/manifest/components/composer-bar.json +4 -1
  80. package/manifest/components/composer-command-item.json +8 -2
  81. package/manifest/components/composer-context.json +4 -1
  82. package/manifest/components/composer-input.json +5 -1
  83. package/manifest/components/composer-menu-item.json +4 -1
  84. package/manifest/components/composer-menu.json +12 -2
  85. package/manifest/components/composer-model-item.json +8 -2
  86. package/manifest/components/composer-model-trigger.json +8 -2
  87. package/manifest/components/composer-person-item.json +8 -2
  88. package/manifest/components/composer-send.json +8 -2
  89. package/manifest/components/composer-voice-button.json +4 -1
  90. package/manifest/components/composer-voice.json +8 -2
  91. package/manifest/components/composer.json +76 -17
  92. package/manifest/components/computer-use.json +17 -4
  93. package/manifest/components/confidence-marker.json +13 -3
  94. package/manifest/components/connection-state.json +23 -4
  95. package/manifest/components/container.json +14 -2
  96. package/manifest/components/context-breakdown.json +8 -2
  97. package/manifest/components/context-menu.json +16 -4
  98. package/manifest/components/context-usage.json +16 -4
  99. package/manifest/components/conversation-search.json +22 -5
  100. package/manifest/components/copy-button.json +32 -7
  101. package/manifest/components/cost-meter.json +12 -3
  102. package/manifest/components/cue-logotype.json +17 -3
  103. package/manifest/components/cue-mark.json +17 -3
  104. package/manifest/components/cue-portal-frame.json +13 -3
  105. package/manifest/components/data-row.json +21 -7
  106. package/manifest/components/data-table-pagination.json +18 -4
  107. package/manifest/components/data-table-toolbar.json +30 -7
  108. package/manifest/components/data-tree.json +42 -9
  109. package/manifest/components/date-field.json +13 -2
  110. package/manifest/components/date-picker.json +81 -19
  111. package/manifest/components/date-range-picker.json +81 -19
  112. package/manifest/components/day-separator.json +4 -1
  113. package/manifest/components/delegation-card.json +64 -12
  114. package/manifest/components/density.json +24 -4
  115. package/manifest/components/description-list.json +8 -1
  116. package/manifest/components/diagram.json +33 -7
  117. package/manifest/components/dialog.json +29 -6
  118. package/manifest/components/disclosure.json +31 -7
  119. package/manifest/components/dmx-bar.json +16 -4
  120. package/manifest/components/dmx-strip.json +20 -5
  121. package/manifest/components/document-reference.json +21 -5
  122. package/manifest/components/draft-restore.json +18 -4
  123. package/manifest/components/drawer.json +30 -6
  124. package/manifest/components/dropdown-menu.json +55 -10
  125. package/manifest/components/edit-message.json +32 -7
  126. package/manifest/components/elements-command-palette.json +27 -6
  127. package/manifest/components/elements-data-table.json +9 -2
  128. package/manifest/components/elements-timeline.json +8 -2
  129. package/manifest/components/elicitation-form.json +31 -6
  130. package/manifest/components/empty-state-composer.json +9 -2
  131. package/manifest/components/empty-state-suggestion.json +4 -1
  132. package/manifest/components/empty-state.json +25 -5
  133. package/manifest/components/end-of-turn-summary.json +16 -4
  134. package/manifest/components/env-var-input.json +54 -12
  135. package/manifest/components/error-state.json +17 -4
  136. package/manifest/components/export-dialog.json +27 -8
  137. package/manifest/components/eyebrow.json +4 -1
  138. package/manifest/components/feedback-dialog.json +33 -7
  139. package/manifest/components/field-description.json +4 -1
  140. package/manifest/components/field-error.json +13 -3
  141. package/manifest/components/field-label.json +4 -1
  142. package/manifest/components/field.json +4 -1
  143. package/manifest/components/file-tree.json +16 -4
  144. package/manifest/components/file-upload.json +58 -13
  145. package/manifest/components/flow-graph.json +12 -3
  146. package/manifest/components/folder-icon.json +1 -7
  147. package/manifest/components/footer.json +24 -4
  148. package/manifest/components/frac.json +10 -2
  149. package/manifest/components/generation-loader.json +17 -3
  150. package/manifest/components/generative-ui.json +39 -7
  151. package/manifest/components/grid.json +56 -5
  152. package/manifest/components/group-bar.json +25 -6
  153. package/manifest/components/guardrail-notice.json +22 -5
  154. package/manifest/components/hover-card.json +45 -8
  155. package/manifest/components/icon-button.json +22 -4
  156. package/manifest/components/image-generation.json +8 -2
  157. package/manifest/components/info-tip.json +42 -7
  158. package/manifest/components/inline-citation.json +14 -3
  159. package/manifest/components/input-group.json +24 -5
  160. package/manifest/components/input.json +13 -3
  161. package/manifest/components/item.json +42 -8
  162. package/manifest/components/job-progress.json +25 -6
  163. package/manifest/components/launcher-bubble.json +32 -7
  164. package/manifest/components/ledger.json +87 -19
  165. package/manifest/components/link.json +16 -3
  166. package/manifest/components/live-region-announcer.json +21 -5
  167. package/manifest/components/log-viewer.json +42 -10
  168. package/manifest/components/map-answer.json +17 -4
  169. package/manifest/components/markdown-text.json +36 -5
  170. package/manifest/components/math-block.json +12 -3
  171. package/manifest/components/mcp-server-icon.json +1 -7
  172. package/manifest/components/mcp-server-panel.json +18 -4
  173. package/manifest/components/memory-chips.json +9 -2
  174. package/manifest/components/menubar.json +33 -7
  175. package/manifest/components/message-actions.json +32 -7
  176. package/manifest/components/message-attachments.json +9 -2
  177. package/manifest/components/message-branches.json +14 -3
  178. package/manifest/components/message-list.json +27 -6
  179. package/manifest/components/message-pair.json +25 -5
  180. package/manifest/components/message-queue.json +13 -3
  181. package/manifest/components/message-timing.json +8 -2
  182. package/manifest/components/message.json +41 -9
  183. package/manifest/components/meter.json +43 -7
  184. package/manifest/components/mobile-composer.json +47 -10
  185. package/manifest/components/model-picker.json +13 -3
  186. package/manifest/components/multi-select.json +78 -17
  187. package/manifest/components/musical-time-input.json +34 -8
  188. package/manifest/components/navigation-menu.json +54 -12
  189. package/manifest/components/node-card.json +42 -7
  190. package/manifest/components/node-handle.json +17 -2
  191. package/manifest/components/number-field.json +28 -6
  192. package/manifest/components/number-ticker.json +8 -2
  193. package/manifest/components/onboarding.json +18 -4
  194. package/manifest/components/otp-field.json +43 -10
  195. package/manifest/components/page-shell.json +35 -6
  196. package/manifest/components/pagination.json +21 -5
  197. package/manifest/components/panel-header.json +15 -3
  198. package/manifest/components/password-input.json +38 -8
  199. package/manifest/components/permission-grant.json +28 -5
  200. package/manifest/components/permission-scopes.json +57 -12
  201. package/manifest/components/piano-keyboard.json +38 -9
  202. package/manifest/components/plussie.json +34 -5
  203. package/manifest/components/popover.json +45 -8
  204. package/manifest/components/preset-section.json +12 -5
  205. package/manifest/components/progress.json +25 -6
  206. package/manifest/components/prompt-library.json +27 -6
  207. package/manifest/components/queue-dock.json +36 -8
  208. package/manifest/components/quota-banner.json +25 -6
  209. package/manifest/components/quote-reply.json +29 -7
  210. package/manifest/components/radio-group.json +12 -2
  211. package/manifest/components/radio.json +17 -3
  212. package/manifest/components/rating.json +60 -13
  213. package/manifest/components/read-aloud.json +35 -8
  214. package/manifest/components/reasoning-effort.json +17 -4
  215. package/manifest/components/reasoning-panel.json +33 -8
  216. package/manifest/components/recommendation-card.json +35 -10
  217. package/manifest/components/regenerate-menu.json +22 -5
  218. package/manifest/components/replay-player.json +29 -7
  219. package/manifest/components/research-report.json +12 -3
  220. package/manifest/components/resizable.json +4 -1
  221. package/manifest/components/retrieval-chunks.json +16 -4
  222. package/manifest/components/revert-dock.json +61 -14
  223. package/manifest/components/reviewable-diff.json +23 -5
  224. package/manifest/components/risk-badge.json +18 -3
  225. package/manifest/components/row.json +17 -4
  226. package/manifest/components/schedule-card.json +25 -6
  227. package/manifest/components/score-breakdown.json +20 -5
  228. package/manifest/components/scroll-anchor.json +13 -3
  229. package/manifest/components/scroll-area.json +31 -8
  230. package/manifest/components/scrollable-tabs-list.json +12 -4
  231. package/manifest/components/scrub-input.json +84 -18
  232. package/manifest/components/seam-cell.json +19 -3
  233. package/manifest/components/seam-grid.json +12 -3
  234. package/manifest/components/search-input.json +49 -10
  235. package/manifest/components/section-header.json +36 -8
  236. package/manifest/components/segmented-control.json +50 -11
  237. package/manifest/components/select.json +74 -16
  238. package/manifest/components/separator.json +4 -1
  239. package/manifest/components/settings-panel.json +41 -9
  240. package/manifest/components/shape-section.json +8 -4
  241. package/manifest/components/shared-conversation.json +21 -5
  242. package/manifest/components/sheet.json +29 -6
  243. package/manifest/components/shimmer-label.json +4 -2
  244. package/manifest/components/sidebar.json +60 -13
  245. package/manifest/components/skill-icon.json +1 -7
  246. package/manifest/components/slider.json +22 -5
  247. package/manifest/components/sources.json +17 -4
  248. package/manifest/components/sparkline.json +17 -4
  249. package/manifest/components/speaker-identity.json +4 -1
  250. package/manifest/components/spec-sheet.json +16 -4
  251. package/manifest/components/spectrum-visualizer.json +41 -10
  252. package/manifest/components/spinner.json +12 -2
  253. package/manifest/components/stack-icon.json +1 -7
  254. package/manifest/components/stack.json +54 -7
  255. package/manifest/components/stacks-matrix-icon.json +1 -7
  256. package/manifest/components/stat.json +28 -4
  257. package/manifest/components/status-bar.json +50 -9
  258. package/manifest/components/status-dot.json +23 -4
  259. package/manifest/components/stepper.json +22 -5
  260. package/manifest/components/stopped-run.json +19 -4
  261. package/manifest/components/streaming-text.json +12 -3
  262. package/manifest/components/subagent-list.json +21 -5
  263. package/manifest/components/suggestions.json +27 -5
  264. package/manifest/components/swap-label.json +18 -4
  265. package/manifest/components/switch.json +18 -3
  266. package/manifest/components/table-scroll-region.json +4 -1
  267. package/manifest/components/table.json +54 -11
  268. package/manifest/components/tabs.json +16 -5
  269. package/manifest/components/tags-input.json +79 -17
  270. package/manifest/components/tail-status.json +37 -8
  271. package/manifest/components/terminal-block.json +25 -5
  272. package/manifest/components/terminal-frame.json +34 -8
  273. package/manifest/components/textarea.json +8 -3
  274. package/manifest/components/theme-configurator.json +47 -11
  275. package/manifest/components/theme-provider.json +79 -15
  276. package/manifest/components/thinking-indicator.json +8 -2
  277. package/manifest/components/thread-list.json +13 -3
  278. package/manifest/components/thread-search.json +22 -5
  279. package/manifest/components/threshold-rail.json +77 -14
  280. package/manifest/components/time-boundary.json +8 -2
  281. package/manifest/components/time-field.json +13 -2
  282. package/manifest/components/timeline-ruler.json +51 -12
  283. package/manifest/components/timeline.json +19 -3
  284. package/manifest/components/title-bar.json +19 -4
  285. package/manifest/components/toast.json +12 -3
  286. package/manifest/components/todo-list.json +8 -2
  287. package/manifest/components/toggle-group.json +33 -7
  288. package/manifest/components/toggle.json +23 -4
  289. package/manifest/components/token-editor.json +26 -7
  290. package/manifest/components/tool-call-card.json +83 -16
  291. package/manifest/components/tool-call.json +37 -9
  292. package/manifest/components/tool-error.json +34 -8
  293. package/manifest/components/tool-group.json +17 -4
  294. package/manifest/components/tool-timeline.json +37 -9
  295. package/manifest/components/toolbar.json +37 -8
  296. package/manifest/components/tooltip.json +41 -7
  297. package/manifest/components/trace-waterfall.json +12 -3
  298. package/manifest/components/tree-visibility-toggle.json +18 -3
  299. package/manifest/components/tree.json +52 -11
  300. package/manifest/components/turn-footer.json +36 -8
  301. package/manifest/components/two-step-button.json +46 -9
  302. package/manifest/components/typing-indicator.json +8 -1
  303. package/manifest/components/universe-grid.json +37 -10
  304. package/manifest/components/unread-divider.json +4 -1
  305. package/manifest/components/usage-chart.json +46 -9
  306. package/manifest/components/verdict-row.json +20 -5
  307. package/manifest/components/voice-conversation.json +37 -7
  308. package/manifest/components/web-preview.json +23 -5
  309. package/manifest/components/web-search.json +20 -5
  310. package/manifest/components/work-collapse.json +30 -7
  311. package/manifest/fixtures.json +106 -0
  312. package/manifest/manifest.json +315 -297
  313. package/manifest/tokens.json +2 -2
  314. package/package.json +7 -6
@@ -12,63 +12,100 @@
12
12
  "type": "() => void",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Fired once, when the *second* press lands."
15
+ "description": "Fired once, when the *second* press lands.",
16
+ "control": {
17
+ "kind": "callback",
18
+ "fixture": "callback.log"
19
+ }
16
20
  },
17
21
  {
18
22
  "name": "children",
19
23
  "type": "ReactNode",
20
24
  "required": true,
21
25
  "defaultValue": null,
22
- "description": "The idle label — name the action, not the button (\"Delete rig\", not \"Delete\")."
26
+ "description": "The idle label — name the action, not the button (\"Delete rig\", not \"Delete\").",
27
+ "control": {
28
+ "kind": "node",
29
+ "fixture": "children.text"
30
+ }
23
31
  },
24
32
  {
25
33
  "name": "confirmLabel",
26
34
  "type": "ReactNode",
27
35
  "required": false,
28
36
  "defaultValue": "Confirm",
29
- "description": "Label on the armed half. Defaults to `\"Confirm\"`."
37
+ "description": "Label on the armed half. Defaults to `\"Confirm\"`.",
38
+ "control": {
39
+ "kind": "node",
40
+ "fixture": "children.text"
41
+ }
30
42
  },
31
43
  {
32
44
  "name": "cancelLabel",
33
45
  "type": "ReactNode",
34
46
  "required": false,
35
47
  "defaultValue": "Cancel",
36
- "description": "Label on the escape hatch. Defaults to `\"Cancel\"`."
48
+ "description": "Label on the escape hatch. Defaults to `\"Cancel\"`.",
49
+ "control": {
50
+ "kind": "node",
51
+ "fixture": "children.text"
52
+ }
37
53
  },
38
54
  {
39
55
  "name": "tone",
40
56
  "type": "\"danger\" | \"warn\"",
41
57
  "required": false,
42
58
  "defaultValue": "danger",
43
- "description": "How severe this is. Defaults to `\"danger\"`."
59
+ "description": "How severe this is. Defaults to `\"danger\"`.",
60
+ "control": {
61
+ "kind": "enum",
62
+ "members": [
63
+ "danger",
64
+ "warn"
65
+ ]
66
+ }
44
67
  },
45
68
  {
46
69
  "name": "timeout",
47
70
  "type": "number",
48
71
  "required": false,
49
72
  "defaultValue": "4000",
50
- "description": "ms before an untouched armed state disarms itself. `0` disables. Defaults to `4000`."
73
+ "description": "ms before an untouched armed state disarms itself. `0` disables. Defaults to `4000`.",
74
+ "control": {
75
+ "kind": "number"
76
+ }
51
77
  },
52
78
  {
53
79
  "name": "onArmedChange",
54
80
  "type": "((armed: boolean) => void)",
55
81
  "required": false,
56
82
  "defaultValue": null,
57
- "description": "Called with the new armed state on every arm and disarm."
83
+ "description": "Called with the new armed state on every arm and disarm.",
84
+ "control": {
85
+ "kind": "callback",
86
+ "fixture": "callback.log"
87
+ }
58
88
  },
59
89
  {
60
90
  "name": "render",
61
91
  "type": "RenderProp<Record<string, unknown>>",
62
92
  "required": false,
63
93
  "defaultValue": null,
64
- "description": "Replace the rendered element (Base UI render prop). Accepts an element —\n`render={<a href=\"/x\" />}` — or a function returning one. When set, the\ndefault `type=\"button\"` is dropped so non-button elements stay valid."
94
+ "description": "Replace the rendered element (Base UI render prop). Accepts an element —\n`render={<a href=\"/x\" />}` — or a function returning one. When set, the\ndefault `type=\"button\"` is dropped so non-button elements stay valid.",
95
+ "control": {
96
+ "kind": "opaque"
97
+ }
65
98
  },
66
99
  {
67
100
  "name": "icon",
68
101
  "type": "ElementType<any, keyof IntrinsicElements>",
69
102
  "required": false,
70
103
  "defaultValue": null,
71
- "description": "Optional leading icon component (e.g. a lucide icon). Rendered\n`aria-hidden` and sized to the density icon token, so it tracks the density\nlevel without the caller passing a pixel size."
104
+ "description": "Optional leading icon component (e.g. a lucide icon). Rendered\n`aria-hidden` and sized to the density icon token, so it tracks the density\nlevel without the caller passing a pixel size.",
105
+ "control": {
106
+ "kind": "opaque",
107
+ "fixture": "icon.play"
108
+ }
72
109
  }
73
110
  ],
74
111
  "typeReferences": [
@@ -12,7 +12,14 @@
12
12
  "type": "\"bubble\" | \"bare\"",
13
13
  "required": false,
14
14
  "defaultValue": "bubble",
15
- "description": "bubble wraps the dots in a pill; bare renders only the three dots."
15
+ "description": "bubble wraps the dots in a pill; bare renders only the three dots.",
16
+ "control": {
17
+ "kind": "enum",
18
+ "members": [
19
+ "bubble",
20
+ "bare"
21
+ ]
22
+ }
16
23
  }
17
24
  ],
18
25
  "typeReferences": [
@@ -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": [