@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
@@ -14,42 +14,62 @@
14
14
  "type": "Record<string, string>",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Current values, keyed by `--cue-*` property."
17
+ "description": "Current values, keyed by `--cue-*` property.",
18
+ "control": {
19
+ "kind": "opaque"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "overridden",
21
24
  "type": "ReadonlySet<string>",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Which properties carry an override rather than the preset's value."
27
+ "description": "Which properties carry an override rather than the preset's value.",
28
+ "control": {
29
+ "kind": "opaque"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "onTokenChange",
28
34
  "type": "(token: string, value: string) => void",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "Called with the `--cue-*` property and its new value."
37
+ "description": "Called with the `--cue-*` property and its new value.",
38
+ "control": {
39
+ "kind": "callback",
40
+ "fixture": "callback.log"
41
+ }
32
42
  },
33
43
  {
34
44
  "name": "onTokenReset",
35
45
  "type": "(token: string) => void",
36
46
  "required": true,
37
47
  "defaultValue": null,
38
- "description": "Called with the `--cue-*` property to put back to the preset's value."
48
+ "description": "Called with the `--cue-*` property to put back to the preset's value.",
49
+ "control": {
50
+ "kind": "callback",
51
+ "fixture": "callback.log"
52
+ }
39
53
  },
40
54
  {
41
55
  "name": "groups",
42
56
  "type": "readonly TokenGroup[]",
43
57
  "required": false,
44
58
  "defaultValue": "[\n {\n id: \"ground\",\n label: \"Ground & surfaces\",\n tokens: [\"bg\", \"sunken\", \"surface-1\", \"surface-2\", \"surface-3\", \"data-ground\", \"scrim\"],\n },\n { id: \"ink\", label: \"Ink\", tokens: [\"fg\", \"fg-muted\", \"fg-subtle\"] },\n { id: \"borders\", label: \"Borders\", tokens: [\"border\", \"border-strong\", \"border-overlay\"] },\n {\n id: \"accent\",\n label: \"Accent\",\n tokens: [\"accent\", \"accent-hover\", \"accent-fg\", \"focus\", \"selection\"],\n },\n {\n id: \"status\",\n label: \"Status\",\n // `stream` is the live hue rather than a sixth tone, and it sits in this\n // group because this is where somebody looking for \"the colour a running\n // tool is\" will look for it. `warn-fg` and `danger-fg` each sit next to the\n // tone they are chosen against: they are the inks on the two solid fills\n // this system paints, and moving a tone without looking at its ink is how a\n // confirm button stops being readable.\n tokens: [\"ok\", \"busy\", \"warn\", \"warn-fg\", \"danger\", \"danger-fg\", \"info\", \"stream\"],\n },\n]",
45
- "description": "Groups to render. Defaults to {@link COLOR_TOKEN_GROUPS}."
59
+ "description": "Groups to render. Defaults to {@link COLOR_TOKEN_GROUPS}.",
60
+ "control": {
61
+ "kind": "array"
62
+ }
46
63
  },
47
64
  {
48
65
  "name": "className",
49
66
  "type": "string",
50
67
  "required": false,
51
68
  "defaultValue": null,
52
- "description": "Extra classes for the list."
69
+ "description": "Extra classes for the list.",
70
+ "control": {
71
+ "kind": "string"
72
+ }
53
73
  }
54
74
  ],
55
75
  "typeReferences": [],
@@ -64,11 +84,7 @@
64
84
  "--cue-fg-muted",
65
85
  "--cue-fg-subtle",
66
86
  "--cue-font-mono",
67
- "--cue-font-pairing-mono",
68
87
  "--cue-font-sans",
69
- "--cue-font-scale",
70
- "--cue-font-theme-mono",
71
- "--cue-radius-scale",
72
88
  "--cue-space-2",
73
89
  "--cue-space-4",
74
90
  "--cue-text-label",
@@ -12,112 +12,179 @@
12
12
  "type": "string",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Name of the tool being called."
15
+ "description": "Name of the tool being called.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "args",
19
22
  "type": "string",
20
23
  "required": false,
21
24
  "defaultValue": null,
22
- "description": "The call's arguments, rendered verbatim as preformatted text. Pass a string you already formatted — JSON, a command line. An empty string counts as absent."
25
+ "description": "The call's arguments, rendered verbatim as preformatted text. Pass a string you already formatted — JSON, a command line. An empty string counts as absent.",
26
+ "control": {
27
+ "kind": "string"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "result",
26
32
  "type": "ReactNode",
27
33
  "required": false,
28
34
  "defaultValue": null,
29
- "description": "What the tool returned, rendered verbatim. A string is shown as text; pass your own renderer for rich output and own that decision. `null`, `false`, an empty string or an empty array count as absent."
35
+ "description": "What the tool returned, rendered verbatim. A string is shown as text; pass your own renderer for rich output and own that decision. `null`, `false`, an empty string or an empty array count as absent.",
36
+ "control": {
37
+ "kind": "node",
38
+ "fixture": "children.text"
39
+ }
30
40
  },
31
41
  {
32
42
  "name": "status",
33
43
  "type": "\"done\" | \"working\" | \"failed\" | \"idle\"",
34
44
  "required": false,
35
45
  "defaultValue": null,
36
- "description": "Where the call has got to. Omit to draw no status line at all."
46
+ "description": "Where the call has got to. Omit to draw no status line at all.",
47
+ "control": {
48
+ "kind": "enum",
49
+ "members": [
50
+ "done",
51
+ "working",
52
+ "failed",
53
+ "idle"
54
+ ]
55
+ }
37
56
  },
38
57
  {
39
58
  "name": "activity",
40
59
  "type": "ReactNode",
41
60
  "required": false,
42
61
  "defaultValue": null,
43
- "description": "What the tool is doing right now. Shown beside the spinner while `working`, and as the text while `idle`."
62
+ "description": "What the tool is doing right now. Shown beside the spinner while `working`, and as the text while `idle`.",
63
+ "control": {
64
+ "kind": "node",
65
+ "fixture": "children.text"
66
+ }
44
67
  },
45
68
  {
46
69
  "name": "danger",
47
70
  "type": "\"low\" | \"high\" | \"critical\"",
48
71
  "required": false,
49
72
  "defaultValue": null,
50
- "description": "Risk rating for the call, chipped the way an AskBox approval is. Omit for a routine call."
73
+ "description": "Risk rating for the call, chipped the way an AskBox approval is. Omit for a routine call.",
74
+ "control": {
75
+ "kind": "enum",
76
+ "members": [
77
+ "low",
78
+ "high",
79
+ "critical"
80
+ ]
81
+ }
51
82
  },
52
83
  {
53
84
  "name": "agent",
54
85
  "type": "string",
55
86
  "required": false,
56
87
  "defaultValue": null,
57
- "description": "Slug of the agent making the call, so the rail takes its colour. Named in assistive text as well as inked."
88
+ "description": "Slug of the agent making the call, so the rail takes its colour. Named in assistive text as well as inked.",
89
+ "control": {
90
+ "kind": "string"
91
+ }
58
92
  },
59
93
  {
60
94
  "name": "rootAgent",
61
95
  "type": "string",
62
96
  "required": false,
63
97
  "defaultValue": null,
64
- "description": "Slug of the orchestrator, so its calls take the theme accent."
98
+ "description": "Slug of the orchestrator, so its calls take the theme accent.",
99
+ "control": {
100
+ "kind": "string"
101
+ }
65
102
  },
66
103
  {
67
104
  "name": "open",
68
105
  "type": "boolean",
69
106
  "required": false,
70
107
  "defaultValue": null,
71
- "description": "Open state when controlled. Pass with `onOpenChange`."
108
+ "description": "Open state when controlled. Pass with `onOpenChange`.",
109
+ "control": {
110
+ "kind": "boolean"
111
+ }
72
112
  },
73
113
  {
74
114
  "name": "defaultOpen",
75
115
  "type": "boolean",
76
116
  "required": false,
77
117
  "defaultValue": null,
78
- "description": "Initial open state. Defaults to `false`."
118
+ "description": "Initial open state. Defaults to `false`.",
119
+ "control": {
120
+ "kind": "boolean"
121
+ }
79
122
  },
80
123
  {
81
124
  "name": "onOpenChange",
82
125
  "type": "((open: boolean) => void)",
83
126
  "required": false,
84
127
  "defaultValue": null,
85
- "description": "Called with the state the card is asking to move to."
128
+ "description": "Called with the state the card is asking to move to.",
129
+ "control": {
130
+ "kind": "callback",
131
+ "fixture": "callback.log"
132
+ }
86
133
  },
87
134
  {
88
135
  "name": "argsLabel",
89
136
  "type": "ReactNode",
90
137
  "required": false,
91
138
  "defaultValue": "arguments",
92
- "description": "Eyebrow over the arguments block. Defaults to `\"arguments\"`."
139
+ "description": "Eyebrow over the arguments block. Defaults to `\"arguments\"`.",
140
+ "control": {
141
+ "kind": "node",
142
+ "fixture": "children.text"
143
+ }
93
144
  },
94
145
  {
95
146
  "name": "resultLabel",
96
147
  "type": "ReactNode",
97
148
  "required": false,
98
149
  "defaultValue": "result",
99
- "description": "Eyebrow over the result block. Defaults to `\"result\"`."
150
+ "description": "Eyebrow over the result block. Defaults to `\"result\"`.",
151
+ "control": {
152
+ "kind": "node",
153
+ "fixture": "children.text"
154
+ }
100
155
  },
101
156
  {
102
157
  "name": "doneLabel",
103
158
  "type": "ReactNode",
104
159
  "required": false,
105
160
  "defaultValue": "Completed",
106
- "description": "What a finished call says. Defaults to `\"Completed\"`."
161
+ "description": "What a finished call says. Defaults to `\"Completed\"`.",
162
+ "control": {
163
+ "kind": "node",
164
+ "fixture": "children.text"
165
+ }
107
166
  },
108
167
  {
109
168
  "name": "failedLabel",
110
169
  "type": "ReactNode",
111
170
  "required": false,
112
171
  "defaultValue": "Failed",
113
- "description": "What a failed call says. Defaults to `\"Failed\"`."
172
+ "description": "What a failed call says. Defaults to `\"Failed\"`.",
173
+ "control": {
174
+ "kind": "node",
175
+ "fixture": "children.text"
176
+ }
114
177
  },
115
178
  {
116
179
  "name": "children",
117
180
  "type": "ReactNode",
118
181
  "required": false,
119
182
  "defaultValue": null,
120
- "description": "Extra detail under the result — an approval `AskBox`, a nested transcript."
183
+ "description": "Extra detail under the result — an approval `AskBox`, a nested transcript.",
184
+ "control": {
185
+ "kind": "node",
186
+ "fixture": "children.text"
187
+ }
121
188
  }
122
189
  ],
123
190
  "typeReferences": [
@@ -14,63 +14,91 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Tool name shown on the collapsed trigger row."
17
+ "description": "Tool name shown on the collapsed trigger row.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "activeLabel",
21
24
  "type": "string",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Verb shown with a shimmer while the tool is running, for example Searching the docs."
27
+ "description": "Verb shown with a shimmer while the tool is running, for example Searching the docs.",
28
+ "control": {
29
+ "kind": "string"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "query",
28
34
  "type": "string",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "Short chip next to the label summarizing the call target."
37
+ "description": "Short chip next to the label summarizing the call target.",
38
+ "control": {
39
+ "kind": "string"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "request",
35
44
  "type": "string",
36
45
  "required": true,
37
46
  "defaultValue": null,
38
- "description": "Request payload shown inside the expanded disclosure."
47
+ "description": "Request payload shown inside the expanded disclosure.",
48
+ "control": {
49
+ "kind": "string"
50
+ }
39
51
  },
40
52
  {
41
53
  "name": "result",
42
54
  "type": "string",
43
55
  "required": true,
44
56
  "defaultValue": null,
45
- "description": "Result payload shown once the call is no longer running."
57
+ "description": "Result payload shown once the call is no longer running.",
58
+ "control": {
59
+ "kind": "string"
60
+ }
46
61
  },
47
62
  {
48
63
  "name": "running",
49
64
  "type": "boolean",
50
65
  "required": true,
51
66
  "defaultValue": null,
52
- "description": "When true a spinner replaces the success check on the trigger."
67
+ "description": "When true a spinner replaces the success check on the trigger.",
68
+ "control": {
69
+ "kind": "boolean"
70
+ }
53
71
  },
54
72
  {
55
73
  "name": "open",
56
74
  "type": "boolean",
57
75
  "required": true,
58
76
  "defaultValue": null,
59
- "description": "Whether the request and result panel is expanded."
77
+ "description": "Whether the request and result panel is expanded.",
78
+ "control": {
79
+ "kind": "boolean"
80
+ }
60
81
  },
61
82
  {
62
83
  "name": "onOpenChange",
63
84
  "type": "(open: boolean) => void",
64
85
  "required": true,
65
86
  "defaultValue": null,
66
- "description": "Called when the user expands or collapses the call."
87
+ "description": "Called when the user expands or collapses the call.",
88
+ "control": {
89
+ "kind": "callback",
90
+ "fixture": "callback.log"
91
+ }
67
92
  },
68
93
  {
69
94
  "name": "className",
70
95
  "type": "string",
71
96
  "required": false,
72
97
  "defaultValue": null,
73
- "description": "Extra classes merged onto the root."
98
+ "description": "Extra classes merged onto the root.",
99
+ "control": {
100
+ "kind": "string"
101
+ }
74
102
  }
75
103
  ],
76
104
  "typeReferences": [],
@@ -14,56 +14,82 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Tool that failed."
17
+ "description": "Tool that failed.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "target",
21
24
  "type": "string",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "What it was called against."
27
+ "description": "What it was called against.",
28
+ "control": {
29
+ "kind": "string"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "message",
28
34
  "type": "string",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "The raw error, shown in mono rather than reworded."
37
+ "description": "The raw error, shown in mono rather than reworded.",
38
+ "control": {
39
+ "kind": "string"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "attempt",
35
44
  "type": "number",
36
45
  "required": true,
37
46
  "defaultValue": null,
38
- "description": "Which attempt this was."
47
+ "description": "Which attempt this was.",
48
+ "control": {
49
+ "kind": "number"
50
+ }
39
51
  },
40
52
  {
41
53
  "name": "maxAttempts",
42
54
  "type": "number",
43
55
  "required": true,
44
56
  "defaultValue": null,
45
- "description": "How many the runtime will make."
57
+ "description": "How many the runtime will make.",
58
+ "control": {
59
+ "kind": "number"
60
+ }
46
61
  },
47
62
  {
48
63
  "name": "retrying",
49
64
  "type": "boolean",
50
65
  "required": true,
51
66
  "defaultValue": null,
52
- "description": "Swaps the retry control for a spinner and disables it."
67
+ "description": "Swaps the retry control for a spinner and disables it.",
68
+ "control": {
69
+ "kind": "boolean"
70
+ }
53
71
  },
54
72
  {
55
73
  "name": "onRetry",
56
74
  "type": "(() => void)",
57
75
  "required": false,
58
76
  "defaultValue": null,
59
- "description": "Called to run the call again without restarting the turn."
77
+ "description": "Called to run the call again without restarting the turn.",
78
+ "control": {
79
+ "kind": "callback",
80
+ "fixture": "callback.log"
81
+ }
60
82
  },
61
83
  {
62
84
  "name": "onSkip",
63
85
  "type": "(() => void)",
64
86
  "required": false,
65
87
  "defaultValue": null,
66
- "description": "Called to give up on this call and let the turn continue."
88
+ "description": "Called to give up on this call and let the turn continue.",
89
+ "control": {
90
+ "kind": "callback",
91
+ "fixture": "callback.log"
92
+ }
67
93
  }
68
94
  ],
69
95
  "typeReferences": [
@@ -14,28 +14,41 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "What the group did, as one line."
17
+ "description": "What the group did, as one line.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "tools",
21
24
  "type": "readonly GroupedTool[]",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Calls issued together. The header summarizes them: progress while any run,\nfailures if any failed, otherwise the count."
27
+ "description": "Calls issued together. The header summarizes them: progress while any run,\nfailures if any failed, otherwise the count.",
28
+ "control": {
29
+ "kind": "array"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "open",
28
34
  "type": "boolean",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "Whether the per-call list is expanded."
37
+ "description": "Whether the per-call list is expanded.",
38
+ "control": {
39
+ "kind": "boolean"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "onOpenChange",
35
44
  "type": "((open: boolean) => void)",
36
45
  "required": false,
37
46
  "defaultValue": null,
38
- "description": "Called when the group is expanded or collapsed."
47
+ "description": "Called when the group is expanded or collapsed.",
48
+ "control": {
49
+ "kind": "callback",
50
+ "fixture": "callback.log"
51
+ }
39
52
  }
40
53
  ],
41
54
  "typeReferences": [
@@ -14,63 +14,91 @@
14
14
  "type": "readonly TimelineStep[]",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Working-session verbs, chips, and icons to reveal over time."
17
+ "description": "Working-session verbs, chips, and icons to reveal over time.",
18
+ "control": {
19
+ "kind": "array"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "visibleSteps",
21
24
  "type": "number",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "How many steps from the start are currently shown."
27
+ "description": "How many steps from the start are currently shown.",
28
+ "control": {
29
+ "kind": "number"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "streaming",
28
34
  "type": "boolean",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "When true the trigger shows Working with a shimmer and elapsed timer."
37
+ "description": "When true the trigger shows Working with a shimmer and elapsed timer.",
38
+ "control": {
39
+ "kind": "boolean"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "open",
35
44
  "type": "boolean",
36
45
  "required": true,
37
46
  "defaultValue": null,
38
- "description": "Whether the collapsible timeline body is expanded."
47
+ "description": "Whether the collapsible timeline body is expanded.",
48
+ "control": {
49
+ "kind": "boolean"
50
+ }
39
51
  },
40
52
  {
41
53
  "name": "onOpenChange",
42
54
  "type": "(open: boolean) => void",
43
55
  "required": true,
44
56
  "defaultValue": null,
45
- "description": "Called when the user expands or collapses the timeline."
57
+ "description": "Called when the user expands or collapses the timeline.",
58
+ "control": {
59
+ "kind": "callback",
60
+ "fixture": "callback.log"
61
+ }
46
62
  },
47
63
  {
48
64
  "name": "restingLabel",
49
65
  "type": "string",
50
66
  "required": true,
51
67
  "defaultValue": null,
52
- "description": "Trigger label once streaming finishes."
68
+ "description": "Trigger label once streaming finishes.",
69
+ "control": {
70
+ "kind": "string"
71
+ }
53
72
  },
54
73
  {
55
74
  "name": "activeLabel",
56
75
  "type": "string",
57
76
  "required": true,
58
77
  "defaultValue": null,
59
- "description": "Full-size live label while streaming, for example Working for 12s."
78
+ "description": "Full-size live label while streaming, for example Working for 12s.",
79
+ "control": {
80
+ "kind": "string"
81
+ }
60
82
  },
61
83
  {
62
84
  "name": "stats",
63
85
  "type": "TimelineStat[]",
64
86
  "required": true,
65
87
  "defaultValue": null,
66
- "description": "Per-file addition and removal counts listed under the steps."
88
+ "description": "Per-file addition and removal counts listed under the steps.",
89
+ "control": {
90
+ "kind": "array"
91
+ }
67
92
  },
68
93
  {
69
94
  "name": "className",
70
95
  "type": "string",
71
96
  "required": false,
72
97
  "defaultValue": null,
73
- "description": "Extra classes merged onto the root."
98
+ "description": "Extra classes merged onto the root.",
99
+ "control": {
100
+ "kind": "string"
101
+ }
74
102
  }
75
103
  ],
76
104
  "typeReferences": [],