@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,112 +12,172 @@
12
12
  "type": "(value: string) => void",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Fired with the trimmed draft. Never fired with an empty string."
15
+ "description": "Fired with the trimmed draft. Never fired with an empty string.",
16
+ "control": {
17
+ "kind": "callback",
18
+ "fixture": "callback.log"
19
+ }
16
20
  },
17
21
  {
18
22
  "name": "value",
19
23
  "type": "string",
20
24
  "required": false,
21
25
  "defaultValue": null,
22
- "description": "Draft when the host owns it. Pass with `onValueChange`."
26
+ "description": "Draft when the host owns it. Pass with `onValueChange`.",
27
+ "control": {
28
+ "kind": "string"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "defaultValue",
26
33
  "type": "string",
27
34
  "required": false,
28
35
  "defaultValue": "",
29
- "description": "Initial draft when uncontrolled."
36
+ "description": "Initial draft when uncontrolled.",
37
+ "control": {
38
+ "kind": "string"
39
+ }
30
40
  },
31
41
  {
32
42
  "name": "onValueChange",
33
43
  "type": "((value: string) => void)",
34
44
  "required": false,
35
45
  "defaultValue": null,
36
- "description": "Called on every keystroke with the new draft."
46
+ "description": "Called on every keystroke with the new draft.",
47
+ "control": {
48
+ "kind": "callback",
49
+ "fixture": "callback.log"
50
+ }
37
51
  },
38
52
  {
39
53
  "name": "placeholder",
40
54
  "type": "string",
41
55
  "required": false,
42
56
  "defaultValue": "Message",
43
- "description": "Placeholder for the empty box. Defaults to `\"Message\"`."
57
+ "description": "Placeholder for the empty box. Defaults to `\"Message\"`.",
58
+ "control": {
59
+ "kind": "string"
60
+ }
44
61
  },
45
62
  {
46
63
  "name": "disabled",
47
64
  "type": "boolean",
48
65
  "required": false,
49
66
  "defaultValue": "false",
50
- "description": "Block sending — a closed thread, a failed connection."
67
+ "description": "Block sending — a closed thread, a failed connection.",
68
+ "control": {
69
+ "kind": "boolean"
70
+ }
51
71
  },
52
72
  {
53
73
  "name": "busy",
54
74
  "type": "boolean",
55
75
  "required": false,
56
76
  "defaultValue": "false",
57
- "description": "A run is in flight. With `onStop`, swaps Send for Stop."
77
+ "description": "A run is in flight. With `onStop`, swaps Send for Stop.",
78
+ "control": {
79
+ "kind": "boolean"
80
+ }
58
81
  },
59
82
  {
60
83
  "name": "onStop",
61
84
  "type": "(() => void)",
62
85
  "required": false,
63
86
  "defaultValue": null,
64
- "description": "Abort the in-flight run. Renders the Stop button while `busy`."
87
+ "description": "Abort the in-flight run. Renders the Stop button while `busy`.",
88
+ "control": {
89
+ "kind": "callback",
90
+ "fixture": "callback.log"
91
+ }
65
92
  },
66
93
  {
67
94
  "name": "submitKey",
68
95
  "type": "\"enter\" | \"mod+enter\"",
69
96
  "required": false,
70
97
  "defaultValue": "enter",
71
- "description": "Which gesture submits. Defaults to `\"enter\"`."
98
+ "description": "Which gesture submits. Defaults to `\"enter\"`.",
99
+ "control": {
100
+ "kind": "enum",
101
+ "members": [
102
+ "enter",
103
+ "mod+enter"
104
+ ]
105
+ }
72
106
  },
73
107
  {
74
108
  "name": "maxRows",
75
109
  "type": "number",
76
110
  "required": false,
77
111
  "defaultValue": "8",
78
- "description": "Rows the box may grow to before it scrolls. Defaults to `8`."
112
+ "description": "Rows the box may grow to before it scrolls. Defaults to `8`.",
113
+ "control": {
114
+ "kind": "number"
115
+ }
79
116
  },
80
117
  {
81
118
  "name": "sendLabel",
82
119
  "type": "ReactNode",
83
120
  "required": false,
84
121
  "defaultValue": "Send",
85
- "description": "Label on the send button. Defaults to `\"Send\"`."
122
+ "description": "Label on the send button. Defaults to `\"Send\"`.",
123
+ "control": {
124
+ "kind": "node",
125
+ "fixture": "children.text"
126
+ }
86
127
  },
87
128
  {
88
129
  "name": "stopLabel",
89
130
  "type": "ReactNode",
90
131
  "required": false,
91
132
  "defaultValue": "Stop",
92
- "description": "Label on the stop button. Defaults to `\"Stop\"`."
133
+ "description": "Label on the stop button. Defaults to `\"Stop\"`.",
134
+ "control": {
135
+ "kind": "node",
136
+ "fixture": "children.text"
137
+ }
93
138
  },
94
139
  {
95
140
  "name": "attachments",
96
141
  "type": "ReactNode",
97
142
  "required": false,
98
143
  "defaultValue": null,
99
- "description": "Tray above the input — attachment chips, a reply-to quote."
144
+ "description": "Tray above the input — attachment chips, a reply-to quote.",
145
+ "control": {
146
+ "kind": "node",
147
+ "fixture": "children.text"
148
+ }
100
149
  },
101
150
  {
102
151
  "name": "toolbar",
103
152
  "type": "ReactNode",
104
153
  "required": false,
105
154
  "defaultValue": null,
106
- "description": "Controls beside the send button — an attach button, a model picker."
155
+ "description": "Controls beside the send button — an attach button, a model picker.",
156
+ "control": {
157
+ "kind": "node",
158
+ "fixture": "children.text"
159
+ }
107
160
  },
108
161
  {
109
162
  "name": "hint",
110
163
  "type": "ReactNode",
111
164
  "required": false,
112
165
  "defaultValue": null,
113
- "description": "Quiet strip under the input — a keyboard hint, a character count."
166
+ "description": "Quiet strip under the input — a keyboard hint, a character count.",
167
+ "control": {
168
+ "kind": "node",
169
+ "fixture": "children.text"
170
+ }
114
171
  },
115
172
  {
116
173
  "name": "aria-label",
117
174
  "type": "string",
118
175
  "required": false,
119
176
  "defaultValue": "Message",
120
- "description": "Accessible name for the input. Defaults to `\"Message\"`."
177
+ "description": "Accessible name for the input. Defaults to `\"Message\"`.",
178
+ "control": {
179
+ "kind": "string"
180
+ }
121
181
  }
122
182
  ],
123
183
  "typeReferences": [
@@ -128,7 +188,6 @@
128
188
  "variants": {},
129
189
  "defaultVariants": {},
130
190
  "tokensUsed": [
131
- "--cue-accent",
132
191
  "--cue-border",
133
192
  "--cue-border-strong",
134
193
  "--cue-control-lg",
@@ -14,28 +14,41 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "What the session is pointed at."
17
+ "description": "What the session is pointed at.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "steps",
21
24
  "type": "readonly ComputerStep[]",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Actions taken, in order. Each carries the coordinates the cursor moved to."
27
+ "description": "Actions taken, in order. Each carries the coordinates the cursor moved to.",
28
+ "control": {
29
+ "kind": "array"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "activeIndex",
28
34
  "type": "number",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "Which step is happening now. The two before it stay as a fading trail."
37
+ "description": "Which step is happening now. The two before it stay as a fading trail.",
38
+ "control": {
39
+ "kind": "number"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "children",
35
44
  "type": "ReactNode",
36
45
  "required": true,
37
46
  "defaultValue": null,
38
- "description": "The viewport being driven: a video stream, a screenshot, an iframe."
47
+ "description": "The viewport being driven: a video stream, a screenshot, an iframe.",
48
+ "control": {
49
+ "kind": "node",
50
+ "fixture": "children.text"
51
+ }
39
52
  }
40
53
  ],
41
54
  "typeReferences": [
@@ -12,21 +12,31 @@
12
12
  "type": "readonly ConfidenceClaim[]",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "The answer split into claims. Each is underlined according to how well it is\nsupported."
15
+ "description": "The answer split into claims. Each is underlined according to how well it is\nsupported.",
16
+ "control": {
17
+ "kind": "array"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "hoveredId",
19
22
  "type": "string",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "Which claim is hovered. Pass an empty string for none."
25
+ "description": "Which claim is hovered. Pass an empty string for none.",
26
+ "control": {
27
+ "kind": "string"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "onHover",
26
32
  "type": "((id: string) => void)",
27
33
  "required": false,
28
34
  "defaultValue": null,
29
- "description": "Called with the hovered claim id, or an empty string on exit."
35
+ "description": "Called with the hovered claim id, or an empty string on exit.",
36
+ "control": {
37
+ "kind": "callback",
38
+ "fixture": "callback.log"
39
+ }
30
40
  }
31
41
  ],
32
42
  "typeReferences": [
@@ -14,28 +14,47 @@
14
14
  "type": "\"online\" | \"dropped\" | \"reconnecting\" | \"resumed\"",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Which banner to show. online renders nothing, so the element can stay mounted."
17
+ "description": "Which banner to show. online renders nothing, so the element can stay mounted.",
18
+ "control": {
19
+ "kind": "enum",
20
+ "members": [
21
+ "online",
22
+ "dropped",
23
+ "reconnecting",
24
+ "resumed"
25
+ ]
26
+ }
18
27
  },
19
28
  {
20
29
  "name": "attempt",
21
30
  "type": "number",
22
31
  "required": false,
23
32
  "defaultValue": null,
24
- "description": "Retry number, shown while reconnecting."
33
+ "description": "Retry number, shown while reconnecting.",
34
+ "control": {
35
+ "kind": "number"
36
+ }
25
37
  },
26
38
  {
27
39
  "name": "resumedTokens",
28
40
  "type": "number",
29
41
  "required": false,
30
42
  "defaultValue": null,
31
- "description": "How much of the stream was recovered, shown once resumed."
43
+ "description": "How much of the stream was recovered, shown once resumed.",
44
+ "control": {
45
+ "kind": "number"
46
+ }
32
47
  },
33
48
  {
34
49
  "name": "onRetry",
35
50
  "type": "(() => void)",
36
51
  "required": false,
37
52
  "defaultValue": null,
38
- "description": "Called from the Reconnect button while dropped."
53
+ "description": "Called from the Reconnect button while dropped.",
54
+ "control": {
55
+ "kind": "callback",
56
+ "fixture": "callback.log"
57
+ }
39
58
  }
40
59
  ],
41
60
  "typeReferences": [
@@ -12,14 +12,26 @@
12
12
  "type": "\"narrow\" | \"wide\" | \"broad\" | \"full\"",
13
13
  "required": false,
14
14
  "defaultValue": "narrow",
15
- "description": "Which measure the column takes. Defaults to `\"narrow\"`."
15
+ "description": "Which measure the column takes. Defaults to `\"narrow\"`.",
16
+ "control": {
17
+ "kind": "enum",
18
+ "members": [
19
+ "narrow",
20
+ "wide",
21
+ "broad",
22
+ "full"
23
+ ]
24
+ }
16
25
  },
17
26
  {
18
27
  "name": "padded",
19
28
  "type": "boolean",
20
29
  "required": false,
21
30
  "defaultValue": "true",
22
- "description": "Draw the standard side gutters. Defaults to `true`."
31
+ "description": "Draw the standard side gutters. Defaults to `true`.",
32
+ "control": {
33
+ "kind": "boolean"
34
+ }
23
35
  }
24
36
  ],
25
37
  "typeReferences": [
@@ -12,14 +12,20 @@
12
12
  "type": "readonly ContextSegment[]",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "What is occupying the window, in stacking order. Headroom is derived, not passed."
15
+ "description": "What is occupying the window, in stacking order. Headroom is derived, not passed.",
16
+ "control": {
17
+ "kind": "array"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "limit",
19
22
  "type": "number",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "Window size. The header turns amber once the segments pass 85 percent of it. A\nzero limit is treated as zero pressure rather than dividing by it."
25
+ "description": "Window size. The header turns amber once the segments pass 85 percent of it. A\nzero limit is treated as zero pressure rather than dividing by it.",
26
+ "control": {
27
+ "kind": "number"
28
+ }
23
29
  }
24
30
  ],
25
31
  "typeReferences": [
@@ -42,28 +42,40 @@
42
42
  "type": "string",
43
43
  "required": false,
44
44
  "defaultValue": null,
45
- "description": "Extra classes for the popup surface."
45
+ "description": "Extra classes for the popup surface.",
46
+ "control": {
47
+ "kind": "string"
48
+ }
46
49
  },
47
50
  {
48
51
  "name": "keepMounted",
49
52
  "type": "boolean",
50
53
  "required": false,
51
54
  "defaultValue": null,
52
- "description": "Keep the popup mounted while closed."
55
+ "description": "Keep the popup mounted while closed.",
56
+ "control": {
57
+ "kind": "boolean"
58
+ }
53
59
  },
54
60
  {
55
61
  "name": "positionerClassName",
56
62
  "type": "string",
57
63
  "required": false,
58
64
  "defaultValue": null,
59
- "description": "Extra classes for the positioner that places the popup."
65
+ "description": "Extra classes for the positioner that places the popup.",
66
+ "control": {
67
+ "kind": "string"
68
+ }
60
69
  },
61
70
  {
62
71
  "name": "sideOffset",
63
72
  "type": "number | OffsetFunction",
64
73
  "required": false,
65
74
  "defaultValue": "0",
66
- "description": "Gap in px between the pointer and the popup. Defaults to `0`.\n\nUnlike an anchored menu, this one is placed at the cursor, and a cursor is\nalready its own offset — the pointer tip should land on the first row."
75
+ "description": "Gap in px between the pointer and the popup. Defaults to `0`.\n\nUnlike an anchored menu, this one is placed at the cursor, and a cursor is\nalready its own offset — the pointer tip should land on the first row.",
76
+ "control": {
77
+ "kind": "opaque"
78
+ }
67
79
  }
68
80
  ],
69
81
  "typeReferences": [
@@ -12,28 +12,40 @@
12
12
  "type": "readonly ContextCategory[]",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "What is occupying the window, in the order it stacks in the bar. Headroom\nis derived from the limit, never passed."
15
+ "description": "What is occupying the window, in the order it stacks in the bar. Headroom\nis derived from the limit, never passed.",
16
+ "control": {
17
+ "kind": "array"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "limit",
19
22
  "type": "number",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "The window's size, in tokens. A limit of zero is treated as no pressure\nrather than divided by."
25
+ "description": "The window's size, in tokens. A limit of zero is treated as no pressure\nrather than divided by.",
26
+ "control": {
27
+ "kind": "number"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "stats",
26
32
  "type": "readonly ContextStat[]",
27
33
  "required": false,
28
34
  "defaultValue": null,
29
- "description": "The numbers under the bar: input, output, reasoning and cache tokens, the\nlimit, the cost. Pre-formatted, and drawn in the order given.\n`CONTEXT_STAT_LABELS` carries opencode's names for them."
35
+ "description": "The numbers under the bar: input, output, reasoning and cache tokens, the\nlimit, the cost. Pre-formatted, and drawn in the order given.\n`CONTEXT_STAT_LABELS` carries opencode's names for them.",
36
+ "control": {
37
+ "kind": "array"
38
+ }
30
39
  },
31
40
  {
32
41
  "name": "labels",
33
42
  "type": "Partial<ContextLabels>",
34
43
  "required": false,
35
44
  "defaultValue": null,
36
- "description": "The meter's own six strings, merged over `CONTEXT_LABELS`: its title, the\nthree column headings, the headroom row and the phrase after the\npercentage."
45
+ "description": "The meter's own six strings, merged over `CONTEXT_LABELS`: its title, the\nthree column headings, the headroom row and the phrase after the\npercentage.",
46
+ "control": {
47
+ "kind": "opaque"
48
+ }
37
49
  }
38
50
  ],
39
51
  "typeReferences": [
@@ -14,35 +14,52 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Current search text."
17
+ "description": "Current search text.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "hits",
21
24
  "type": "readonly SearchHit[]",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Matches in document order. Each carries its own surrounding text so no lookup is\nneeded to render the preview."
27
+ "description": "Matches in document order. Each carries its own surrounding text so no lookup is\nneeded to render the preview.",
28
+ "control": {
29
+ "kind": "array"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "activeIndex",
28
34
  "type": "number",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "Which hit is current, in both the counter and the rail. Clamped to the current hit\nset, so narrowing the results cannot strand it out of range."
37
+ "description": "Which hit is current, in both the counter and the rail. Clamped to the current hit\nset, so narrowing the results cannot strand it out of range.",
38
+ "control": {
39
+ "kind": "number"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "onQueryChange",
35
44
  "type": "((query: string) => void)",
36
45
  "required": false,
37
46
  "defaultValue": null,
38
- "description": "Called as the search is typed."
47
+ "description": "Called as the search is typed.",
48
+ "control": {
49
+ "kind": "callback",
50
+ "fixture": "callback.log"
51
+ }
39
52
  },
40
53
  {
41
54
  "name": "onStep",
42
55
  "type": "((delta: number) => void)",
43
56
  "required": false,
44
57
  "defaultValue": null,
45
- "description": "Called with -1 or 1 to walk the matches. Wrap the index yourself."
58
+ "description": "Called with -1 or 1 to walk the matches. Wrap the index yourself.",
59
+ "control": {
60
+ "kind": "callback",
61
+ "fixture": "callback.log"
62
+ }
46
63
  }
47
64
  ],
48
65
  "typeReferences": [
@@ -12,49 +12,74 @@
12
12
  "type": "string",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "The text to put on the clipboard."
15
+ "description": "The text to put on the clipboard.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "timeout",
19
22
  "type": "number",
20
23
  "required": false,
21
24
  "defaultValue": "1200",
22
- "description": "ms the confirmation stays up before reverting. Defaults to `1200`."
25
+ "description": "ms the confirmation stays up before reverting. Defaults to `1200`.",
26
+ "control": {
27
+ "kind": "number"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "children",
26
32
  "type": "ReactNode",
27
33
  "required": false,
28
34
  "defaultValue": "Copy",
29
- "description": "The idle label. Defaults to `\"Copy\"`."
35
+ "description": "The idle label. Defaults to `\"Copy\"`.",
36
+ "control": {
37
+ "kind": "node",
38
+ "fixture": "children.text"
39
+ }
30
40
  },
31
41
  {
32
42
  "name": "copiedLabel",
33
43
  "type": "ReactNode",
34
44
  "required": false,
35
45
  "defaultValue": "Copied",
36
- "description": "The confirmation label. Defaults to `\"Copied\"`."
46
+ "description": "The confirmation label. Defaults to `\"Copied\"`.",
47
+ "control": {
48
+ "kind": "node",
49
+ "fixture": "children.text"
50
+ }
37
51
  },
38
52
  {
39
53
  "name": "onCopy",
40
54
  "type": "((value: string) => void)",
41
55
  "required": false,
42
56
  "defaultValue": null,
43
- "description": "Called with `value` once it is actually on the clipboard. Replaces the\nnative `onCopy` clipboard-event handler, which is meaningless on a button."
57
+ "description": "Called with `value` once it is actually on the clipboard. Replaces the\nnative `onCopy` clipboard-event handler, which is meaningless on a button.",
58
+ "control": {
59
+ "kind": "callback",
60
+ "fixture": "callback.log"
61
+ }
44
62
  },
45
63
  {
46
64
  "name": "onCopyError",
47
65
  "type": "((error: unknown) => void)",
48
66
  "required": false,
49
67
  "defaultValue": null,
50
- "description": "Called with whatever the clipboard threw. Nothing is claimed on failure."
68
+ "description": "Called with whatever the clipboard threw. Nothing is claimed on failure.",
69
+ "control": {
70
+ "kind": "callback",
71
+ "fixture": "callback.log"
72
+ }
51
73
  },
52
74
  {
53
75
  "name": "render",
54
76
  "type": "RenderProp<Record<string, unknown>>",
55
77
  "required": false,
56
78
  "defaultValue": null,
57
- "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."
79
+ "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.",
80
+ "control": {
81
+ "kind": "opaque"
82
+ }
58
83
  }
59
84
  ],
60
85
  "typeReferences": [
@@ -12,21 +12,30 @@
12
12
  "type": "string",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Pre-formatted cost of this run."
15
+ "description": "Pre-formatted cost of this run.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "sessionCost",
19
22
  "type": "string",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "Pre-formatted cumulative cost."
25
+ "description": "Pre-formatted cumulative cost.",
26
+ "control": {
27
+ "kind": "string"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "lines",
26
32
  "type": "readonly CostLine[]",
27
33
  "required": true,
28
34
  "defaultValue": null,
29
- "description": "Per-model breakdown, ordered largest first so the bar reads left to right."
35
+ "description": "Per-model breakdown, ordered largest first so the bar reads left to right.",
36
+ "control": {
37
+ "kind": "array"
38
+ }
30
39
  }
31
40
  ],
32
41
  "typeReferences": [