@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,42 +12,63 @@
12
12
  "type": "ReactNode",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "The turns, oldest first — normally {@link Message }s."
15
+ "description": "The turns, oldest first — normally {@link Message }s.",
16
+ "control": {
17
+ "kind": "node",
18
+ "fixture": "children.text"
19
+ }
16
20
  },
17
21
  {
18
22
  "name": "follow",
19
23
  "type": "boolean",
20
24
  "required": false,
21
25
  "defaultValue": "true",
22
- "description": "Stick to the bottom as turns arrive. Defaults to `true`."
26
+ "description": "Stick to the bottom as turns arrive. Defaults to `true`.",
27
+ "control": {
28
+ "kind": "boolean"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "height",
26
33
  "type": "number",
27
34
  "required": false,
28
35
  "defaultValue": null,
29
- "description": "Fixed height in px at the 16px root, emitted as rem. Omit to fill the parent."
36
+ "description": "Fixed height in px at the 16px root, emitted as rem. Omit to fill the parent.",
37
+ "control": {
38
+ "kind": "number"
39
+ }
30
40
  },
31
41
  {
32
42
  "name": "jumpLabel",
33
43
  "type": "ReactNode",
34
44
  "required": false,
35
45
  "defaultValue": "Jump to latest",
36
- "description": "Label on the catch-up pill. Defaults to `\"Jump to latest\"`."
46
+ "description": "Label on the catch-up pill. Defaults to `\"Jump to latest\"`.",
47
+ "control": {
48
+ "kind": "node",
49
+ "fixture": "children.text"
50
+ }
37
51
  },
38
52
  {
39
53
  "name": "emptyLabel",
40
54
  "type": "ReactNode",
41
55
  "required": false,
42
56
  "defaultValue": "No messages yet",
43
- "description": "What to say before the first turn. Defaults to `\"No messages yet\"`."
57
+ "description": "What to say before the first turn. Defaults to `\"No messages yet\"`.",
58
+ "control": {
59
+ "kind": "node",
60
+ "fixture": "children.text"
61
+ }
44
62
  },
45
63
  {
46
64
  "name": "aria-label",
47
65
  "type": "string",
48
66
  "required": false,
49
67
  "defaultValue": null,
50
- "description": "Accessible name for the transcript. Required in practice — name the thread."
68
+ "description": "Accessible name for the transcript. Required in practice — name the thread.",
69
+ "control": {
70
+ "kind": "string"
71
+ }
51
72
  }
52
73
  ],
53
74
  "typeReferences": [
@@ -14,35 +14,55 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Text shown in the user bubble on the right."
17
+ "description": "Text shown in the user bubble on the right.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "words",
21
24
  "type": "readonly string[]",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Assistant reply broken into words for streaming."
27
+ "description": "Assistant reply broken into words for streaming.",
28
+ "control": {
29
+ "kind": "array",
30
+ "fixture": "agent.transcript"
31
+ }
25
32
  },
26
33
  {
27
34
  "name": "visibleWords",
28
35
  "type": "number",
29
36
  "required": true,
30
37
  "defaultValue": null,
31
- "description": "How many assistant words are currently visible."
38
+ "description": "How many assistant words are currently visible.",
39
+ "control": {
40
+ "kind": "number"
41
+ }
32
42
  },
33
43
  {
34
44
  "name": "streaming",
35
45
  "type": "boolean",
36
46
  "required": true,
37
47
  "defaultValue": null,
38
- "description": "When true the newest assistant words tint blue as they arrive."
48
+ "description": "When true the newest assistant words tint blue as they arrive.",
49
+ "control": {
50
+ "kind": "boolean"
51
+ }
39
52
  },
40
53
  {
41
54
  "name": "variant",
42
55
  "type": "\"flat\" | \"bubble\"",
43
56
  "required": false,
44
57
  "defaultValue": "bubble",
45
- "description": "bubble wraps the user message in a surface; flat renders it as plain right-aligned\ntext."
58
+ "description": "bubble wraps the user message in a surface; flat renders it as plain right-aligned\ntext.",
59
+ "control": {
60
+ "kind": "enum",
61
+ "members": [
62
+ "flat",
63
+ "bubble"
64
+ ]
65
+ }
46
66
  }
47
67
  ],
48
68
  "typeReferences": [
@@ -14,21 +14,31 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "The turn currently in flight, shown above the queue."
17
+ "description": "The turn currently in flight, shown above the queue.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "queued",
21
24
  "type": "readonly QueuedMessage[]",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Turns waiting to send, in the order they will drain once the run finishes."
27
+ "description": "Turns waiting to send, in the order they will drain once the run finishes.",
28
+ "control": {
29
+ "kind": "array"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "onCancel",
28
34
  "type": "((id: string) => void)",
29
35
  "required": false,
30
36
  "defaultValue": null,
31
- "description": "Called when a queued turn is removed before it ever sends."
37
+ "description": "Called when a queued turn is removed before it ever sends.",
38
+ "control": {
39
+ "kind": "callback",
40
+ "fixture": "callback.log"
41
+ }
32
42
  }
33
43
  ],
34
44
  "typeReferences": [
@@ -12,14 +12,20 @@
12
12
  "type": "readonly TimingStat[]",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Label and value pairs, pre-formatted. Show fewer while streaming and the full set\nonce the turn settles."
15
+ "description": "Label and value pairs, pre-formatted. Show fewer while streaming and the full set\nonce the turn settles.",
16
+ "control": {
17
+ "kind": "array"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "streaming",
19
22
  "type": "boolean",
20
23
  "required": false,
21
24
  "defaultValue": null,
22
- "description": "Tints the values blue while they are still moving."
25
+ "description": "Tints the values blue while they are still moving.",
26
+ "control": {
27
+ "kind": "boolean"
28
+ }
23
29
  }
24
30
  ],
25
31
  "typeReferences": [
@@ -12,56 +12,89 @@
12
12
  "type": "\"agent\" | \"user\" | \"system\"",
13
13
  "required": false,
14
14
  "defaultValue": "agent",
15
- "description": "Who is speaking. Defaults to `\"agent\"`."
15
+ "description": "Who is speaking. Defaults to `\"agent\"`.",
16
+ "control": {
17
+ "kind": "enum",
18
+ "members": [
19
+ "agent",
20
+ "user",
21
+ "system"
22
+ ]
23
+ }
16
24
  },
17
25
  {
18
26
  "name": "agent",
19
27
  "type": "string",
20
28
  "required": false,
21
29
  "defaultValue": null,
22
- "description": "The speaking agent's slug. Names the turn and inks the author line and the\n`--agent-color` custom property, which anything nested reads."
30
+ "description": "The speaking agent's slug. Names the turn and inks the author line and the\n`--agent-color` custom property, which anything nested reads.",
31
+ "control": {
32
+ "kind": "string"
33
+ }
23
34
  },
24
35
  {
25
36
  "name": "rootAgent",
26
37
  "type": "string",
27
38
  "required": false,
28
39
  "defaultValue": null,
29
- "description": "Slug of the orchestrator, so its turns take the theme accent."
40
+ "description": "Slug of the orchestrator, so its turns take the theme accent.",
41
+ "control": {
42
+ "kind": "string"
43
+ }
30
44
  },
31
45
  {
32
46
  "name": "author",
33
47
  "type": "ReactNode",
34
48
  "required": false,
35
49
  "defaultValue": null,
36
- "description": "Author line override. Defaults to `\"You\"` for the user and to `agent` otherwise."
50
+ "description": "Author line override. Defaults to `\"You\"` for the user and to `agent` otherwise.",
51
+ "control": {
52
+ "kind": "node",
53
+ "fixture": "children.text"
54
+ }
37
55
  },
38
56
  {
39
57
  "name": "timestamp",
40
58
  "type": "ReactNode",
41
59
  "required": false,
42
60
  "defaultValue": null,
43
- "description": "Rendered opposite the author — pass a formatted time, not a `Date`."
61
+ "description": "Rendered opposite the author — pass a formatted time, not a `Date`.",
62
+ "control": {
63
+ "kind": "node",
64
+ "fixture": "children.text"
65
+ }
44
66
  },
45
67
  {
46
68
  "name": "pending",
47
69
  "type": "boolean",
48
70
  "required": false,
49
71
  "defaultValue": "false",
50
- "description": "The turn is still streaming: shows a caret and announces it."
72
+ "description": "The turn is still streaming: shows a caret and announces it.",
73
+ "control": {
74
+ "kind": "boolean"
75
+ }
51
76
  },
52
77
  {
53
78
  "name": "footer",
54
79
  "type": "ReactNode",
55
80
  "required": false,
56
81
  "defaultValue": null,
57
- "description": "Slot under the body — attachments, warnings, retry actions."
82
+ "description": "Slot under the body — attachments, warnings, retry actions.",
83
+ "control": {
84
+ "kind": "node",
85
+ "fixture": "children.text"
86
+ }
58
87
  },
59
88
  {
60
89
  "name": "children",
61
90
  "type": "ReactNode",
62
91
  "required": false,
63
92
  "defaultValue": null,
64
- "description": "The turn itself."
93
+ "description": "The turn itself.",
94
+ "control": {
95
+ "kind": "node",
96
+ "fixture": "children.text"
97
+ }
65
98
  }
66
99
  ],
67
100
  "typeReferences": [
@@ -80,7 +113,6 @@
80
113
  "--cue-font-mono",
81
114
  "--cue-radius-control",
82
115
  "--cue-radius-overlay",
83
- "--cue-radius-scale",
84
116
  "--cue-space-2",
85
117
  "--cue-space-3",
86
118
  "--cue-space-4",
@@ -12,49 +12,85 @@
12
12
  "type": "number",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "How full, 0–100. Clamped; a non-finite value reads as 0."
15
+ "description": "How full, 0–100. Clamped; a non-finite value reads as 0.",
16
+ "control": {
17
+ "kind": "number",
18
+ "min": 0,
19
+ "max": 100
20
+ }
16
21
  },
17
22
  {
18
23
  "name": "tone",
19
24
  "type": "\"danger\" | \"busy\" | \"ok\" | \"warn\"",
20
25
  "required": false,
21
26
  "defaultValue": "ok",
22
- "description": "Status colour for the fill. Defaults to `\"ok\"`."
27
+ "description": "Status colour for the fill. Defaults to `\"ok\"`.",
28
+ "control": {
29
+ "kind": "enum",
30
+ "members": [
31
+ "danger",
32
+ "busy",
33
+ "ok",
34
+ "warn"
35
+ ]
36
+ }
23
37
  },
24
38
  {
25
39
  "name": "paceTick",
26
40
  "type": "number | null",
27
41
  "required": false,
28
42
  "defaultValue": null,
29
- "description": "How far through the window we are *by time*, 0–1. Drawn as a 1px rule\nacross the bar so the fill can be read against its pace: fill ahead of the\ntick means burning faster than the window refills. Pass `null` when there\nis no window."
43
+ "description": "How far through the window we are *by time*, 0–1. Drawn as a 1px rule\nacross the bar so the fill can be read against its pace: fill ahead of the\ntick means burning faster than the window refills. Pass `null` when there\nis no window.",
44
+ "control": {
45
+ "kind": "number",
46
+ "nullable": true
47
+ }
30
48
  },
31
49
  {
32
50
  "name": "empty",
33
51
  "type": "boolean",
34
52
  "required": false,
35
53
  "defaultValue": "false",
36
- "description": "Render the striped \"no data\" treatment instead of a level."
54
+ "description": "Render the striped \"no data\" treatment instead of a level.",
55
+ "control": {
56
+ "kind": "boolean"
57
+ }
37
58
  },
38
59
  {
39
60
  "name": "provenance",
40
61
  "type": "\"none\" | \"vendor\" | \"estimated\" | \"unbounded\"",
41
62
  "required": false,
42
63
  "defaultValue": "vendor",
43
- "description": "Where the ceiling came from. Defaults to `\"vendor\"`."
64
+ "description": "Where the ceiling came from. Defaults to `\"vendor\"`.",
65
+ "control": {
66
+ "kind": "enum",
67
+ "members": [
68
+ "none",
69
+ "vendor",
70
+ "estimated",
71
+ "unbounded"
72
+ ]
73
+ }
44
74
  },
45
75
  {
46
76
  "name": "height",
47
77
  "type": "number",
48
78
  "required": false,
49
79
  "defaultValue": "4",
50
- "description": "Bar height in px at the 16px root, emitted as `rem`. Defaults to `4`."
80
+ "description": "Bar height in px at the 16px root, emitted as `rem`. Defaults to `4`.",
81
+ "control": {
82
+ "kind": "number"
83
+ }
51
84
  },
52
85
  {
53
86
  "name": "label",
54
87
  "type": "string",
55
88
  "required": false,
56
89
  "defaultValue": "Usage",
57
- "description": "The accessible name. A meter is nearly always a usage readout, so that is\nthe default; override it for anything else. When there is no level to\nreport (`empty`, or an unbounded ceiling) the state is appended to it, as\nin `\"Usage: No data\"`."
90
+ "description": "The accessible name. A meter is nearly always a usage readout, so that is\nthe default; override it for anything else. When there is no level to\nreport (`empty`, or an unbounded ceiling) the state is appended to it, as\nin `\"Usage: No data\"`.",
91
+ "control": {
92
+ "kind": "string"
93
+ }
58
94
  }
59
95
  ],
60
96
  "typeReferences": [
@@ -14,70 +14,107 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Current input. The field is 16px so iOS does not zoom on focus."
17
+ "description": "Current input. The field is 16px so iOS does not zoom on focus.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "keyboardOpen",
21
24
  "type": "boolean",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Collapses the quick actions and the home indicator inset when the keyboard is up."
27
+ "description": "Collapses the quick actions and the home indicator inset when the keyboard is up.",
28
+ "control": {
29
+ "kind": "boolean"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "running",
28
34
  "type": "boolean",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "Swaps send for stop, and suppresses Return-to-send while a run is in flight."
37
+ "description": "Swaps send for stop, and suppresses Return-to-send while a run is in flight.",
38
+ "control": {
39
+ "kind": "boolean"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "actions",
35
44
  "type": "readonly string[]",
36
45
  "required": true,
37
46
  "defaultValue": null,
38
- "description": "Quick actions above the field, scrolled horizontally."
47
+ "description": "Quick actions above the field, scrolled horizontally.",
48
+ "control": {
49
+ "kind": "array",
50
+ "fixture": "agent.transcript"
51
+ }
39
52
  },
40
53
  {
41
54
  "name": "onAction",
42
55
  "type": "((action: string) => void)",
43
56
  "required": false,
44
57
  "defaultValue": null,
45
- "description": "Called when a quick action is tapped. Omit it and the chips render disabled, since\nactions is required and the row would otherwise be inert."
58
+ "description": "Called when a quick action is tapped. Omit it and the chips render disabled, since\nactions is required and the row would otherwise be inert.",
59
+ "control": {
60
+ "kind": "callback",
61
+ "fixture": "callback.log"
62
+ }
46
63
  },
47
64
  {
48
65
  "name": "onAttach",
49
66
  "type": "(() => void)",
50
67
  "required": false,
51
68
  "defaultValue": null,
52
- "description": "Called from the attachment control. Omit it and the control renders disabled."
69
+ "description": "Called from the attachment control. Omit it and the control renders disabled.",
70
+ "control": {
71
+ "kind": "callback",
72
+ "fixture": "callback.log"
73
+ }
53
74
  },
54
75
  {
55
76
  "name": "onValueChange",
56
77
  "type": "((value: string) => void)",
57
78
  "required": false,
58
79
  "defaultValue": null,
59
- "description": "Called as the message is typed."
80
+ "description": "Called as the message is typed.",
81
+ "control": {
82
+ "kind": "callback",
83
+ "fixture": "callback.log"
84
+ }
60
85
  },
61
86
  {
62
87
  "name": "onSend",
63
88
  "type": "(() => void)",
64
89
  "required": false,
65
90
  "defaultValue": null,
66
- "description": "Called to send."
91
+ "description": "Called to send.",
92
+ "control": {
93
+ "kind": "callback",
94
+ "fixture": "callback.log"
95
+ }
67
96
  },
68
97
  {
69
98
  "name": "onStop",
70
99
  "type": "(() => void)",
71
100
  "required": false,
72
101
  "defaultValue": null,
73
- "description": "Called to stop a run in flight."
102
+ "description": "Called to stop a run in flight.",
103
+ "control": {
104
+ "kind": "callback",
105
+ "fixture": "callback.log"
106
+ }
74
107
  },
75
108
  {
76
109
  "name": "onFocus",
77
110
  "type": "(() => void)",
78
111
  "required": false,
79
112
  "defaultValue": null,
80
- "description": "Called when the field takes focus; drive keyboardOpen from it."
113
+ "description": "Called when the field takes focus; drive keyboardOpen from it.",
114
+ "control": {
115
+ "kind": "callback",
116
+ "fixture": "callback.log"
117
+ }
81
118
  }
82
119
  ],
83
120
  "typeReferences": [
@@ -14,21 +14,31 @@
14
14
  "type": "readonly PickableModel[]",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Every model on offer. Families are derived from the entries and keep their\nfirst-seen order."
17
+ "description": "Every model on offer. Families are derived from the entries and keep their\nfirst-seen order.",
18
+ "control": {
19
+ "kind": "array"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "selectedId",
21
24
  "type": "string",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Which model is active."
27
+ "description": "Which model is active.",
28
+ "control": {
29
+ "kind": "string"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "onSelect",
28
34
  "type": "((id: string) => void)",
29
35
  "required": false,
30
36
  "defaultValue": null,
31
- "description": "Called when a model is picked."
37
+ "description": "Called when a model is picked.",
38
+ "control": {
39
+ "kind": "callback",
40
+ "fixture": "callback.log"
41
+ }
32
42
  }
33
43
  ],
34
44
  "typeReferences": [