@cueplusplus/ui 0.9.0 → 0.11.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 (330) hide show
  1. package/CHANGELOG.md +337 -0
  2. package/README.md +197 -9
  3. package/dist/chrome/index.d.ts +2 -1
  4. package/dist/chrome/index.js +3 -2
  5. package/dist/chrome/inspector.d.ts +61 -0
  6. package/dist/chrome/inspector.js +121 -0
  7. package/dist/forms/input.d.ts +12 -0
  8. package/dist/forms/textarea.d.ts +12 -0
  9. package/dist/forms/toggle.d.ts +6 -0
  10. package/dist/index.d.ts +7 -3
  11. package/dist/index.js +8 -3
  12. package/dist/instruments/code-block.d.ts +35 -0
  13. package/dist/instruments/code-block.js +173 -0
  14. package/dist/instruments/index.d.ts +2 -1
  15. package/dist/instruments/index.js +2 -1
  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 +4 -2
  20. package/dist/layout/index.js +4 -2
  21. package/dist/layout/preview.d.ts +110 -0
  22. package/dist/layout/preview.js +459 -0
  23. package/dist/primitives/button.d.ts +12 -0
  24. package/dist/primitives/chip.d.ts +1 -1
  25. package/dist/system/index.d.ts +2 -2
  26. package/dist/system/index.js +2 -1
  27. package/dist/system/overrides.d.ts +38 -1
  28. package/dist/system/overrides.js +40 -1
  29. package/manifest/components/accordion.json +24 -6
  30. package/manifest/components/activity-graph.json +20 -5
  31. package/manifest/components/agent-card.json +37 -9
  32. package/manifest/components/agent-handoff.json +21 -5
  33. package/manifest/components/agent-mode-badge.json +22 -4
  34. package/manifest/components/agent-pile.json +38 -8
  35. package/manifest/components/agent-plan.json +9 -2
  36. package/manifest/components/agent-status.json +17 -3
  37. package/manifest/components/agent-surface.json +26 -11
  38. package/manifest/components/alert-dialog.json +29 -5
  39. package/manifest/components/animated-number.json +14 -6
  40. package/manifest/components/app-bar.json +66 -13
  41. package/manifest/components/app-shell.json +133 -31
  42. package/manifest/components/app-window-frame.json +28 -6
  43. package/manifest/components/approval-card.json +37 -7
  44. package/manifest/components/artifact-card.json +16 -4
  45. package/manifest/components/ask-box.json +99 -21
  46. package/manifest/components/audience-icon.json +1 -7
  47. package/manifest/components/autocomplete.json +80 -18
  48. package/manifest/components/avatar-group.json +13 -2
  49. package/manifest/components/avatar.json +22 -4
  50. package/manifest/components/background-inbox.json +9 -2
  51. package/manifest/components/bento.json +306 -0
  52. package/manifest/components/branch-picker.json +29 -7
  53. package/manifest/components/breadcrumb.json +13 -3
  54. package/manifest/components/button-group.json +21 -4
  55. package/manifest/components/button.json +41 -4
  56. package/manifest/components/canvas-split-body.json +4 -1
  57. package/manifest/components/canvas-split-header.json +17 -4
  58. package/manifest/components/canvas-split-line.json +4 -1
  59. package/manifest/components/canvas-split-message.json +8 -1
  60. package/manifest/components/card.json +14 -3
  61. package/manifest/components/carousel.json +54 -12
  62. package/manifest/components/catalogue-icon.json +1 -7
  63. package/manifest/components/channel-beta-icon.json +1 -7
  64. package/manifest/components/channel-matrix.json +80 -15
  65. package/manifest/components/channel-released-icon.json +1 -7
  66. package/manifest/components/chart-container.json +26 -10
  67. package/manifest/components/chart-ramp.json +13 -3
  68. package/manifest/components/chart-swatch.json +9 -2
  69. package/manifest/components/chart-tooltip-content.json +31 -7
  70. package/manifest/components/chart.json +30 -6
  71. package/manifest/components/chat-panel-composer.json +9 -2
  72. package/manifest/components/checkbox-group.json +4 -2
  73. package/manifest/components/checkbox.json +17 -4
  74. package/manifest/components/checkpoint-history.json +13 -3
  75. package/manifest/components/chip.json +35 -5
  76. package/manifest/components/clamp.json +30 -7
  77. package/manifest/components/cli-tool-icon.json +1 -7
  78. package/manifest/components/code-block.json +106 -0
  79. package/manifest/components/code-diff.json +20 -5
  80. package/manifest/components/code-runner.json +32 -6
  81. package/manifest/components/collapsible.json +16 -4
  82. package/manifest/components/color-area.json +4 -1
  83. package/manifest/components/color-field.json +13 -3
  84. package/manifest/components/color-picker.json +75 -17
  85. package/manifest/components/color-slider.json +12 -3
  86. package/manifest/components/color-swatch.json +13 -2
  87. package/manifest/components/colors-section.json +8 -4
  88. package/manifest/components/combobox.json +81 -18
  89. package/manifest/components/command-palette.json +57 -13
  90. package/manifest/components/compaction-row.json +35 -7
  91. package/manifest/components/comparison-card.json +17 -4
  92. package/manifest/components/composer-attachment-chip.json +9 -2
  93. package/manifest/components/composer-bar.json +4 -1
  94. package/manifest/components/composer-command-item.json +8 -2
  95. package/manifest/components/composer-context.json +4 -1
  96. package/manifest/components/composer-input.json +5 -1
  97. package/manifest/components/composer-menu-item.json +4 -1
  98. package/manifest/components/composer-menu.json +12 -2
  99. package/manifest/components/composer-model-item.json +8 -2
  100. package/manifest/components/composer-model-trigger.json +8 -2
  101. package/manifest/components/composer-person-item.json +8 -2
  102. package/manifest/components/composer-send.json +8 -2
  103. package/manifest/components/composer-voice-button.json +4 -1
  104. package/manifest/components/composer-voice.json +8 -2
  105. package/manifest/components/composer.json +76 -17
  106. package/manifest/components/computer-use.json +17 -4
  107. package/manifest/components/confidence-marker.json +13 -3
  108. package/manifest/components/connection-state.json +23 -4
  109. package/manifest/components/container.json +14 -2
  110. package/manifest/components/context-breakdown.json +8 -2
  111. package/manifest/components/context-menu.json +16 -4
  112. package/manifest/components/context-usage.json +16 -4
  113. package/manifest/components/conversation-search.json +22 -5
  114. package/manifest/components/copy-button.json +32 -7
  115. package/manifest/components/cost-meter.json +12 -3
  116. package/manifest/components/cue-logotype.json +17 -3
  117. package/manifest/components/cue-mark.json +17 -3
  118. package/manifest/components/cue-portal-frame.json +13 -3
  119. package/manifest/components/data-row.json +21 -7
  120. package/manifest/components/data-table-pagination.json +18 -4
  121. package/manifest/components/data-table-toolbar.json +30 -7
  122. package/manifest/components/data-tree.json +42 -9
  123. package/manifest/components/date-field.json +13 -2
  124. package/manifest/components/date-picker.json +81 -19
  125. package/manifest/components/date-range-picker.json +81 -19
  126. package/manifest/components/day-separator.json +4 -1
  127. package/manifest/components/delegation-card.json +64 -12
  128. package/manifest/components/density.json +24 -4
  129. package/manifest/components/description-list.json +8 -1
  130. package/manifest/components/diagram.json +33 -7
  131. package/manifest/components/dialog.json +29 -6
  132. package/manifest/components/disclosure.json +31 -7
  133. package/manifest/components/dmx-bar.json +16 -4
  134. package/manifest/components/dmx-strip.json +20 -5
  135. package/manifest/components/document-reference.json +21 -5
  136. package/manifest/components/draft-restore.json +18 -4
  137. package/manifest/components/drawer.json +30 -6
  138. package/manifest/components/dropdown-menu.json +55 -10
  139. package/manifest/components/edit-message.json +32 -7
  140. package/manifest/components/elements-command-palette.json +27 -6
  141. package/manifest/components/elements-data-table.json +9 -2
  142. package/manifest/components/elements-timeline.json +8 -2
  143. package/manifest/components/elicitation-form.json +31 -6
  144. package/manifest/components/empty-state-composer.json +9 -2
  145. package/manifest/components/empty-state-suggestion.json +4 -1
  146. package/manifest/components/empty-state.json +25 -5
  147. package/manifest/components/end-of-turn-summary.json +16 -4
  148. package/manifest/components/env-var-input.json +54 -12
  149. package/manifest/components/error-state.json +17 -4
  150. package/manifest/components/export-dialog.json +27 -8
  151. package/manifest/components/eyebrow.json +4 -1
  152. package/manifest/components/feedback-dialog.json +33 -7
  153. package/manifest/components/field-description.json +4 -1
  154. package/manifest/components/field-error.json +13 -3
  155. package/manifest/components/field-label.json +4 -1
  156. package/manifest/components/field.json +4 -1
  157. package/manifest/components/file-tree.json +16 -4
  158. package/manifest/components/file-upload.json +58 -13
  159. package/manifest/components/flow-graph.json +12 -3
  160. package/manifest/components/folder-icon.json +1 -7
  161. package/manifest/components/footer.json +24 -4
  162. package/manifest/components/frac.json +10 -2
  163. package/manifest/components/generation-loader.json +17 -3
  164. package/manifest/components/generative-ui.json +39 -7
  165. package/manifest/components/grid.json +56 -5
  166. package/manifest/components/group-bar.json +25 -6
  167. package/manifest/components/guardrail-notice.json +22 -5
  168. package/manifest/components/hover-card.json +45 -8
  169. package/manifest/components/icon-button.json +22 -4
  170. package/manifest/components/image-generation.json +8 -2
  171. package/manifest/components/info-tip.json +42 -7
  172. package/manifest/components/inline-citation.json +14 -3
  173. package/manifest/components/input-group.json +24 -5
  174. package/manifest/components/input.json +33 -3
  175. package/manifest/components/inspector.json +199 -0
  176. package/manifest/components/item.json +42 -8
  177. package/manifest/components/job-progress.json +25 -6
  178. package/manifest/components/launcher-bubble.json +32 -7
  179. package/manifest/components/ledger.json +87 -19
  180. package/manifest/components/link.json +16 -3
  181. package/manifest/components/live-region-announcer.json +21 -5
  182. package/manifest/components/log-viewer.json +42 -10
  183. package/manifest/components/map-answer.json +17 -4
  184. package/manifest/components/markdown-text.json +36 -5
  185. package/manifest/components/math-block.json +12 -3
  186. package/manifest/components/mcp-server-icon.json +1 -7
  187. package/manifest/components/mcp-server-panel.json +18 -4
  188. package/manifest/components/memory-chips.json +9 -2
  189. package/manifest/components/menubar.json +33 -7
  190. package/manifest/components/message-actions.json +32 -7
  191. package/manifest/components/message-attachments.json +9 -2
  192. package/manifest/components/message-branches.json +14 -3
  193. package/manifest/components/message-list.json +27 -6
  194. package/manifest/components/message-pair.json +25 -5
  195. package/manifest/components/message-queue.json +13 -3
  196. package/manifest/components/message-timing.json +8 -2
  197. package/manifest/components/message.json +41 -9
  198. package/manifest/components/meter.json +43 -7
  199. package/manifest/components/mobile-composer.json +47 -10
  200. package/manifest/components/model-picker.json +13 -3
  201. package/manifest/components/multi-select.json +78 -17
  202. package/manifest/components/musical-time-input.json +34 -8
  203. package/manifest/components/navigation-menu.json +54 -12
  204. package/manifest/components/node-card.json +42 -7
  205. package/manifest/components/node-handle.json +17 -2
  206. package/manifest/components/number-field.json +28 -6
  207. package/manifest/components/number-ticker.json +8 -2
  208. package/manifest/components/onboarding.json +18 -4
  209. package/manifest/components/otp-field.json +43 -10
  210. package/manifest/components/page-shell.json +35 -6
  211. package/manifest/components/pagination.json +21 -5
  212. package/manifest/components/panel-header.json +15 -3
  213. package/manifest/components/password-input.json +58 -8
  214. package/manifest/components/permission-grant.json +28 -5
  215. package/manifest/components/permission-scopes.json +57 -12
  216. package/manifest/components/piano-keyboard.json +38 -9
  217. package/manifest/components/plussie.json +34 -5
  218. package/manifest/components/popover.json +45 -8
  219. package/manifest/components/preset-section.json +12 -5
  220. package/manifest/components/preview.json +202 -0
  221. package/manifest/components/progress.json +25 -6
  222. package/manifest/components/prompt-library.json +27 -6
  223. package/manifest/components/queue-dock.json +36 -8
  224. package/manifest/components/quota-banner.json +25 -6
  225. package/manifest/components/quote-reply.json +29 -7
  226. package/manifest/components/radio-group.json +12 -2
  227. package/manifest/components/radio.json +17 -3
  228. package/manifest/components/rating.json +60 -13
  229. package/manifest/components/read-aloud.json +35 -8
  230. package/manifest/components/reasoning-effort.json +17 -4
  231. package/manifest/components/reasoning-panel.json +33 -8
  232. package/manifest/components/recommendation-card.json +35 -10
  233. package/manifest/components/regenerate-menu.json +22 -5
  234. package/manifest/components/replay-player.json +29 -7
  235. package/manifest/components/research-report.json +12 -3
  236. package/manifest/components/resizable.json +4 -1
  237. package/manifest/components/retrieval-chunks.json +16 -4
  238. package/manifest/components/revert-dock.json +61 -14
  239. package/manifest/components/reviewable-diff.json +23 -5
  240. package/manifest/components/risk-badge.json +18 -3
  241. package/manifest/components/row.json +17 -4
  242. package/manifest/components/schedule-card.json +25 -6
  243. package/manifest/components/score-breakdown.json +20 -5
  244. package/manifest/components/scroll-anchor.json +13 -3
  245. package/manifest/components/scroll-area.json +31 -8
  246. package/manifest/components/scrollable-tabs-list.json +12 -4
  247. package/manifest/components/scrub-input.json +84 -18
  248. package/manifest/components/seam-cell.json +19 -3
  249. package/manifest/components/seam-grid.json +12 -3
  250. package/manifest/components/search-input.json +69 -10
  251. package/manifest/components/section-header.json +36 -8
  252. package/manifest/components/segmented-control.json +50 -11
  253. package/manifest/components/select.json +74 -16
  254. package/manifest/components/separator.json +4 -1
  255. package/manifest/components/settings-panel.json +41 -9
  256. package/manifest/components/shape-section.json +8 -4
  257. package/manifest/components/shared-conversation.json +21 -5
  258. package/manifest/components/sheet.json +29 -6
  259. package/manifest/components/shimmer-label.json +4 -2
  260. package/manifest/components/sidebar.json +60 -13
  261. package/manifest/components/skill-icon.json +1 -7
  262. package/manifest/components/slider.json +22 -5
  263. package/manifest/components/sources.json +17 -4
  264. package/manifest/components/sparkline.json +17 -4
  265. package/manifest/components/speaker-identity.json +4 -1
  266. package/manifest/components/spec-sheet.json +16 -4
  267. package/manifest/components/spectrum-visualizer.json +41 -10
  268. package/manifest/components/spinner.json +12 -2
  269. package/manifest/components/stack-icon.json +1 -7
  270. package/manifest/components/stack.json +54 -7
  271. package/manifest/components/stacks-matrix-icon.json +1 -7
  272. package/manifest/components/stat.json +28 -4
  273. package/manifest/components/status-bar.json +50 -9
  274. package/manifest/components/status-dot.json +23 -4
  275. package/manifest/components/stepper.json +22 -5
  276. package/manifest/components/stopped-run.json +19 -4
  277. package/manifest/components/streaming-text.json +12 -3
  278. package/manifest/components/subagent-list.json +21 -5
  279. package/manifest/components/suggestions.json +27 -5
  280. package/manifest/components/swap-label.json +18 -4
  281. package/manifest/components/switch.json +18 -3
  282. package/manifest/components/table-scroll-region.json +4 -1
  283. package/manifest/components/table.json +54 -11
  284. package/manifest/components/tabs.json +16 -5
  285. package/manifest/components/tags-input.json +79 -17
  286. package/manifest/components/tail-status.json +37 -8
  287. package/manifest/components/terminal-block.json +25 -5
  288. package/manifest/components/terminal-frame.json +34 -8
  289. package/manifest/components/textarea.json +28 -3
  290. package/manifest/components/theme-configurator.json +47 -11
  291. package/manifest/components/theme-provider.json +79 -15
  292. package/manifest/components/thinking-indicator.json +8 -2
  293. package/manifest/components/thread-list.json +13 -3
  294. package/manifest/components/thread-search.json +22 -5
  295. package/manifest/components/threshold-rail.json +77 -14
  296. package/manifest/components/time-boundary.json +8 -2
  297. package/manifest/components/time-field.json +13 -2
  298. package/manifest/components/timeline-ruler.json +51 -12
  299. package/manifest/components/timeline.json +19 -3
  300. package/manifest/components/title-bar.json +19 -4
  301. package/manifest/components/toast.json +12 -3
  302. package/manifest/components/todo-list.json +8 -2
  303. package/manifest/components/toggle-group.json +33 -7
  304. package/manifest/components/toggle.json +33 -4
  305. package/manifest/components/token-editor.json +26 -7
  306. package/manifest/components/tool-call-card.json +83 -16
  307. package/manifest/components/tool-call.json +37 -9
  308. package/manifest/components/tool-error.json +34 -8
  309. package/manifest/components/tool-group.json +17 -4
  310. package/manifest/components/tool-timeline.json +37 -9
  311. package/manifest/components/toolbar.json +37 -8
  312. package/manifest/components/tooltip.json +41 -7
  313. package/manifest/components/trace-waterfall.json +12 -3
  314. package/manifest/components/tree-visibility-toggle.json +18 -3
  315. package/manifest/components/tree.json +52 -11
  316. package/manifest/components/turn-footer.json +36 -8
  317. package/manifest/components/two-step-button.json +46 -9
  318. package/manifest/components/typing-indicator.json +8 -1
  319. package/manifest/components/universe-grid.json +37 -10
  320. package/manifest/components/unread-divider.json +4 -1
  321. package/manifest/components/usage-chart.json +46 -9
  322. package/manifest/components/verdict-row.json +20 -5
  323. package/manifest/components/voice-conversation.json +37 -7
  324. package/manifest/components/web-preview.json +23 -5
  325. package/manifest/components/web-search.json +20 -5
  326. package/manifest/components/work-collapse.json +30 -7
  327. package/manifest/fixtures.json +111 -0
  328. package/manifest/manifest.json +354 -297
  329. package/manifest/tokens.json +2 -2
  330. package/package.json +8 -7
@@ -12,119 +12,181 @@
12
12
  "type": "readonly string[]",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "The tags. Use with `onValueChange` for a controlled field."
15
+ "description": "The tags. Use with `onValueChange` for a controlled field.",
16
+ "control": {
17
+ "kind": "array",
18
+ "fixture": "agent.transcript"
19
+ }
16
20
  },
17
21
  {
18
22
  "name": "defaultValue",
19
23
  "type": "readonly string[]",
20
24
  "required": false,
21
25
  "defaultValue": null,
22
- "description": "Initial tags for an uncontrolled field."
26
+ "description": "Initial tags for an uncontrolled field.",
27
+ "control": {
28
+ "kind": "array",
29
+ "fixture": "agent.transcript"
30
+ }
23
31
  },
24
32
  {
25
33
  "name": "onValueChange",
26
34
  "type": "((value: string[]) => void)",
27
35
  "required": false,
28
36
  "defaultValue": null,
29
- "description": "Called with the full list after every add or remove."
37
+ "description": "Called with the full list after every add or remove.",
38
+ "control": {
39
+ "kind": "callback",
40
+ "fixture": "callback.log"
41
+ }
30
42
  },
31
43
  {
32
44
  "name": "suggestions",
33
45
  "type": "readonly string[]",
34
46
  "required": false,
35
47
  "defaultValue": null,
36
- "description": "Optional known tags, offered in a popup as the user types. Free-form entry\nworks with or without them — a suggestion is a shortcut, never a constraint."
48
+ "description": "Optional known tags, offered in a popup as the user types. Free-form entry\nworks with or without them — a suggestion is a shortcut, never a constraint.",
49
+ "control": {
50
+ "kind": "array",
51
+ "fixture": "agent.transcript"
52
+ }
37
53
  },
38
54
  {
39
55
  "name": "placeholder",
40
56
  "type": "string",
41
57
  "required": false,
42
58
  "defaultValue": null,
43
- "description": "Shown while there are no tags."
59
+ "description": "Shown while there are no tags.",
60
+ "control": {
61
+ "kind": "string"
62
+ }
44
63
  },
45
64
  {
46
65
  "name": "size",
47
66
  "type": "\"sm\" | \"md\" | \"lg\"",
48
67
  "required": false,
49
68
  "defaultValue": "md",
50
- "description": "Rung of the control ladder. Defaults to `\"md\"`."
69
+ "description": "Rung of the control ladder. Defaults to `\"md\"`.",
70
+ "control": {
71
+ "kind": "enum",
72
+ "members": [
73
+ "sm",
74
+ "md",
75
+ "lg"
76
+ ]
77
+ }
51
78
  },
52
79
  {
53
80
  "name": "separators",
54
81
  "type": "readonly string[]",
55
82
  "required": false,
56
83
  "defaultValue": "[\",\"]",
57
- "description": "Extra keys that commit the pending tag, on top of Enter. Defaults to `[\",\"]`\n— the separator every \"type a list\" field in the wild accepts."
84
+ "description": "Extra keys that commit the pending tag, on top of Enter. Defaults to `[\",\"]`\n— the separator every \"type a list\" field in the wild accepts.",
85
+ "control": {
86
+ "kind": "array",
87
+ "fixture": "agent.transcript"
88
+ }
58
89
  },
59
90
  {
60
91
  "name": "max",
61
92
  "type": "number",
62
93
  "required": false,
63
94
  "defaultValue": null,
64
- "description": "Refuse further tags past this many."
95
+ "description": "Refuse further tags past this many.",
96
+ "control": {
97
+ "kind": "number"
98
+ }
65
99
  },
66
100
  {
67
101
  "name": "disabled",
68
102
  "type": "boolean",
69
103
  "required": false,
70
104
  "defaultValue": null,
71
- "description": "Prevent entry and grey the field out."
105
+ "description": "Prevent entry and grey the field out.",
106
+ "control": {
107
+ "kind": "boolean"
108
+ }
72
109
  },
73
110
  {
74
111
  "name": "name",
75
112
  "type": "string",
76
113
  "required": false,
77
114
  "defaultValue": null,
78
- "description": "Name for the hidden input, when the field is part of a form."
115
+ "description": "Name for the hidden input, when the field is part of a form.",
116
+ "control": {
117
+ "kind": "string"
118
+ }
79
119
  },
80
120
  {
81
121
  "name": "id",
82
122
  "type": "string",
83
123
  "required": false,
84
124
  "defaultValue": null,
85
- "description": "Id forwarded to the text input."
125
+ "description": "Id forwarded to the text input.",
126
+ "control": {
127
+ "kind": "string"
128
+ }
86
129
  },
87
130
  {
88
131
  "name": "aria-label",
89
132
  "type": "string",
90
133
  "required": false,
91
134
  "defaultValue": null,
92
- "description": "Accessible name for the input, when no {@link FieldLabel } names it."
135
+ "description": "Accessible name for the input, when no {@link FieldLabel } names it.",
136
+ "control": {
137
+ "kind": "string"
138
+ }
93
139
  },
94
140
  {
95
141
  "name": "aria-labelledby",
96
142
  "type": "string",
97
143
  "required": false,
98
144
  "defaultValue": null,
99
- "description": "Id of the element naming the input."
145
+ "description": "Id of the element naming the input.",
146
+ "control": {
147
+ "kind": "string"
148
+ }
100
149
  },
101
150
  {
102
151
  "name": "removeLabel",
103
152
  "type": "((tag: string) => string)",
104
153
  "required": false,
105
154
  "defaultValue": "(tag) => `Remove ${tag}`",
106
- "description": "Accessible name for a tag's remove button. Defaults to\n``(tag) => `Remove ${tag}` ``."
155
+ "description": "Accessible name for a tag's remove button. Defaults to\n``(tag) => `Remove ${tag}` ``.",
156
+ "control": {
157
+ "kind": "callback",
158
+ "fixture": "callback.log"
159
+ }
107
160
  },
108
161
  {
109
162
  "name": "className",
110
163
  "type": "string",
111
164
  "required": false,
112
165
  "defaultValue": null,
113
- "description": "Extra classes for the field."
166
+ "description": "Extra classes for the field.",
167
+ "control": {
168
+ "kind": "string"
169
+ }
114
170
  },
115
171
  {
116
172
  "name": "popupClassName",
117
173
  "type": "string",
118
174
  "required": false,
119
175
  "defaultValue": null,
120
- "description": "Extra classes for the popup surface."
176
+ "description": "Extra classes for the popup surface.",
177
+ "control": {
178
+ "kind": "string"
179
+ }
121
180
  },
122
181
  {
123
182
  "name": "sideOffset",
124
183
  "type": "number",
125
184
  "required": false,
126
185
  "defaultValue": "4",
127
- "description": "Distance in px between the field and the popup. Defaults to `4`."
186
+ "description": "Distance in px between the field and the popup. Defaults to `4`.",
187
+ "control": {
188
+ "kind": "number"
189
+ }
128
190
  }
129
191
  ],
130
192
  "typeReferences": [],
@@ -14,56 +14,85 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "What is happening, in two or three words: `Running commands`,\n`Searching the codebase`. `TAIL_ACTIONS` is the shipped vocabulary and this\nprop is a plain string, so a product with its own verbs is not stuck with\nthese ten."
17
+ "description": "What is happening, in two or three words: `Running commands`,\n`Searching the codebase`. `TAIL_ACTIONS` is the shipped vocabulary and this\nprop is a plain string, so a product with its own verbs is not stuck with\nthese ten.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "detail",
21
24
  "type": "string",
22
25
  "required": false,
23
26
  "defaultValue": null,
24
- "description": "The thing the action is happening to — a path, a query, a topic. Truncates\non its own so the action never has to; a sidebar transcript is 280px wide\nand a status line that elides its verb has said nothing."
27
+ "description": "The thing the action is happening to — a path, a query, a topic. Truncates\non its own so the action never has to; a sidebar transcript is 280px wide\nand a status line that elides its verb has said nothing.",
28
+ "control": {
29
+ "kind": "string"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "active",
28
34
  "type": "boolean",
29
35
  "required": false,
30
36
  "defaultValue": "true",
31
- "description": "Whether the action is still going. `true` by default, because this row is\nthe live one; turn it off for `Idle`, `Interrupted` and `Aborted`, which\nstops the sweep and empties the spinner's slot without moving the text."
37
+ "description": "Whether the action is still going. `true` by default, because this row is\nthe live one; turn it off for `Idle`, `Interrupted` and `Aborted`, which\nstops the sweep and empties the spinner's slot without moving the text.",
38
+ "control": {
39
+ "kind": "boolean"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "updatesInPlace",
35
44
  "type": "boolean",
36
45
  "required": false,
37
46
  "defaultValue": "true",
38
- "description": "Whether a new `action` animates into the row that is already there, or\nsimply replaces the text.\n\nCursor's flag, and the reason it needs one: a narration line that changes\nevery few hundred milliseconds should read as one row being updated, while\na line that means something *different* should read as a new row. `true`\n(the default) keys the label on its own text so each new action fades in\nwhere the last one was; `false` leaves it unkeyed, and the words change\nwith no motion at all. A reduced-motion reader gets the second behaviour\neither way."
47
+ "description": "Whether a new `action` animates into the row that is already there, or\nsimply replaces the text.\n\nCursor's flag, and the reason it needs one: a narration line that changes\nevery few hundred milliseconds should read as one row being updated, while\na line that means something *different* should read as a new row. `true`\n(the default) keys the label on its own text so each new action fades in\nwhere the last one was; `false` leaves it unkeyed, and the words change\nwith no motion at all. A reduced-motion reader gets the second behaviour\neither way.",
48
+ "control": {
49
+ "kind": "boolean"
50
+ }
39
51
  },
40
52
  {
41
53
  "name": "priority",
42
54
  "type": "\"normal\" | \"attention\"",
43
55
  "required": false,
44
56
  "defaultValue": "normal",
45
- "description": "How loudly this row is speaking. See {@link TailPriority}."
57
+ "description": "How loudly this row is speaking. See {@link TailPriority}.",
58
+ "control": {
59
+ "kind": "enum",
60
+ "members": [
61
+ "normal",
62
+ "attention"
63
+ ]
64
+ }
46
65
  },
47
66
  {
48
67
  "name": "onCancel",
49
68
  "type": "(() => void)",
50
69
  "required": false,
51
70
  "defaultValue": null,
52
- "description": "Stop the run. The inline control exists only when this is given — Cursor's\nrule, and the right one: a Cancel that cannot cancel is worse than no\nCancel."
71
+ "description": "Stop the run. The inline control exists only when this is given — Cursor's\nrule, and the right one: a Cancel that cannot cancel is worse than no\nCancel.",
72
+ "control": {
73
+ "kind": "callback",
74
+ "fixture": "callback.log"
75
+ }
53
76
  },
54
77
  {
55
78
  "name": "cancelLabel",
56
79
  "type": "string",
57
80
  "required": false,
58
81
  "defaultValue": "Cancel",
59
- "description": "What the stop control is called. `Cancel` is Cursor's word; opencode uses\n`Interrupt` and `Stop` for the same button."
82
+ "description": "What the stop control is called. `Cancel` is Cursor's word; opencode uses\n`Interrupt` and `Stop` for the same button.",
83
+ "control": {
84
+ "kind": "string"
85
+ }
60
86
  },
61
87
  {
62
88
  "name": "announce",
63
89
  "type": "boolean",
64
90
  "required": false,
65
91
  "defaultValue": null,
66
- "description": "Whether this row is a live region — whether a screen reader is told each\ntime the action changes.\n\n**Answers itself by default, and that default is the interesting part.**\nLeft alone the row speaks when it is the only thing that can, and goes\nquiet the moment a {@link LiveRegionAnnouncer } is mounted anywhere on the\npage: the announcer's table covers the same transitions this row narrates,\nso a console with both — the ordinary composition — would otherwise have\nevery state read out twice, out of step, because the two regions update at\ndifferent moments.\n\nThe row is the one that defers because the announcer is the better speaker:\nit is a queue, spaced and depth-limited and paused while the page is hidden\nor a modal has the reader, and it is mounted empty and left mounted, which\nis the only way a live region is reliably announced. This row changes\nseveral times a second and comes and goes with the run.\n\nSet it explicitly to overrule that — `true` for a console whose announcer\nis fed something other than these actions, `false` for one that narrates\nthe foot of the transcript some other way. An explicit answer always wins."
92
+ "description": "Whether this row is a live region — whether a screen reader is told each\ntime the action changes.\n\n**Answers itself by default, and that default is the interesting part.**\nLeft alone the row speaks when it is the only thing that can, and goes\nquiet the moment a {@link LiveRegionAnnouncer } is mounted anywhere on the\npage: the announcer's table covers the same transitions this row narrates,\nso a console with both — the ordinary composition — would otherwise have\nevery state read out twice, out of step, because the two regions update at\ndifferent moments.\n\nThe row is the one that defers because the announcer is the better speaker:\nit is a queue, spaced and depth-limited and paused while the page is hidden\nor a modal has the reader, and it is mounted empty and left mounted, which\nis the only way a live region is reliably announced. This row changes\nseveral times a second and comes and goes with the run.\n\nSet it explicitly to overrule that — `true` for a console whose announcer\nis fed something other than these actions, `false` for one that narrates\nthe foot of the transcript some other way. An explicit answer always wins.",
93
+ "control": {
94
+ "kind": "boolean"
95
+ }
67
96
  }
68
97
  ],
69
98
  "typeReferences": [
@@ -14,35 +14,55 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Command string shown in the terminal header."
17
+ "description": "Command string shown in the terminal header.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "lines",
21
24
  "type": "readonly string[]",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Output lines available to stream into the body."
27
+ "description": "Output lines available to stream into the body.",
28
+ "control": {
29
+ "kind": "array",
30
+ "fixture": "agent.transcript"
31
+ }
25
32
  },
26
33
  {
27
34
  "name": "visibleCount",
28
35
  "type": "number",
29
36
  "required": true,
30
37
  "defaultValue": null,
31
- "description": "How many output lines from the start are currently shown."
38
+ "description": "How many output lines from the start are currently shown.",
39
+ "control": {
40
+ "kind": "number"
41
+ }
32
42
  },
33
43
  {
34
44
  "name": "done",
35
45
  "type": "boolean",
36
46
  "required": true,
37
47
  "defaultValue": null,
38
- "description": "When true the header shows exit 0; otherwise a spinner keeps spinning."
48
+ "description": "When true the header shows exit 0; otherwise a spinner keeps spinning.",
49
+ "control": {
50
+ "kind": "boolean"
51
+ }
39
52
  },
40
53
  {
41
54
  "name": "variant",
42
55
  "type": "\"paper\" | \"ink\"",
43
56
  "required": false,
44
57
  "defaultValue": "paper",
45
- "description": "paper matches the surrounding surfaces; ink renders the classic dark terminal slab."
58
+ "description": "paper matches the surrounding surfaces; ink renders the classic dark terminal slab.",
59
+ "control": {
60
+ "kind": "enum",
61
+ "members": [
62
+ "paper",
63
+ "ink"
64
+ ]
65
+ }
46
66
  }
47
67
  ],
48
68
  "typeReferences": [
@@ -12,56 +12,82 @@
12
12
  "type": "ReactNode",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "Name above the transcript — a log file, a host, a task."
15
+ "description": "Name above the transcript — a log file, a host, a task.",
16
+ "control": {
17
+ "kind": "node",
18
+ "fixture": "children.text"
19
+ }
16
20
  },
17
21
  {
18
22
  "name": "lines",
19
23
  "type": "readonly TerminalFrameLine[]",
20
24
  "required": false,
21
25
  "defaultValue": null,
22
- "description": "Static transcript. Rendered as a preamble when `simulate` is also set."
26
+ "description": "Static transcript. Rendered as a preamble when `simulate` is also set.",
27
+ "control": {
28
+ "kind": "array"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "prompt",
26
33
  "type": "string",
27
34
  "required": false,
28
35
  "defaultValue": "$",
29
- "description": "The prompt glyph in front of a command line. Defaults to `\"$\"`."
36
+ "description": "The prompt glyph in front of a command line. Defaults to `\"$\"`.",
37
+ "control": {
38
+ "kind": "string"
39
+ }
30
40
  },
31
41
  {
32
42
  "name": "copy",
33
43
  "type": "boolean",
34
44
  "required": false,
35
45
  "defaultValue": "false",
36
- "description": "Show a `CopyButton` in the title bar for the commands in the transcript."
46
+ "description": "Show a `CopyButton` in the title bar for the commands in the transcript.",
47
+ "control": {
48
+ "kind": "boolean"
49
+ }
37
50
  },
38
51
  {
39
52
  "name": "copyValue",
40
53
  "type": "string",
41
54
  "required": false,
42
55
  "defaultValue": null,
43
- "description": "What the copy button puts on the clipboard. Defaults to the command lines, one per line."
56
+ "description": "What the copy button puts on the clipboard. Defaults to the command lines, one per line.",
57
+ "control": {
58
+ "kind": "string"
59
+ }
44
60
  },
45
61
  {
46
62
  "name": "simulate",
47
63
  "type": "TerminalScript",
48
64
  "required": false,
49
65
  "defaultValue": null,
50
- "description": "Play the transcript out as a typed session.\n\nPass a stable reference (a module constant, or memoised) — the player\nrestarts whenever this prop changes identity. Under\n`prefers-reduced-motion` the finished transcript renders instantly and no\ntimer is ever scheduled."
66
+ "description": "Play the transcript out as a typed session.\n\nPass a stable reference (a module constant, or memoised) — the player\nrestarts whenever this prop changes identity. Under\n`prefers-reduced-motion` the finished transcript renders instantly and no\ntimer is ever scheduled.",
67
+ "control": {
68
+ "kind": "opaque"
69
+ }
51
70
  },
52
71
  {
53
72
  "name": "height",
54
73
  "type": "number",
55
74
  "required": false,
56
75
  "defaultValue": null,
57
- "description": "Fixed body height in px at the 16px root. Leave unset to grow with the content."
76
+ "description": "Fixed body height in px at the 16px root. Leave unset to grow with the content.",
77
+ "control": {
78
+ "kind": "number"
79
+ }
58
80
  },
59
81
  {
60
82
  "name": "children",
61
83
  "type": "ReactNode",
62
84
  "required": false,
63
85
  "defaultValue": null,
64
- "description": "Extra content under the transcript — an input row, a hint strip."
86
+ "description": "Extra content under the transcript — an input row, a hint strip.",
87
+ "control": {
88
+ "kind": "node",
89
+ "fixture": "children.text"
90
+ }
65
91
  }
66
92
  ],
67
93
  "typeReferences": [
@@ -12,14 +12,40 @@
12
12
  "type": "string",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "Extra classes, merged over the chassis."
15
+ "description": "Extra classes, merged over the chassis.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "rows",
19
22
  "type": "number",
20
23
  "required": false,
21
24
  "defaultValue": "3",
22
- "description": "Visible rows before the box starts scrolling. Defaults to `3`."
25
+ "description": "Visible rows before the box starts scrolling. Defaults to `3`.",
26
+ "control": {
27
+ "kind": "number"
28
+ }
29
+ },
30
+ {
31
+ "name": "aria-label",
32
+ "type": "string",
33
+ "required": false,
34
+ "defaultValue": null,
35
+ "description": "Accessible name for the textarea, when no `FieldLabel` names it. Declared\nhere rather than left to the inherited attribute so the props table carries\nthe row: a bare textarea outside a `Field` has no other way to be named.",
36
+ "control": {
37
+ "kind": "string"
38
+ }
39
+ },
40
+ {
41
+ "name": "placeholder",
42
+ "type": "string",
43
+ "required": false,
44
+ "defaultValue": null,
45
+ "description": "An example of what goes in the box, shown while it is empty. Not a name:\nit disappears on the first keystroke, so pair it with `aria-label` or a\n`FieldLabel`. Declared for the props-table row, as `aria-label` is above.",
46
+ "control": {
47
+ "kind": "string"
48
+ }
23
49
  }
24
50
  ],
25
51
  "typeReferences": [
@@ -30,7 +56,6 @@
30
56
  "variants": {},
31
57
  "defaultVariants": {},
32
58
  "tokensUsed": [
33
- "--cue-accent",
34
59
  "--cue-border",
35
60
  "--cue-border-strong",
36
61
  "--cue-control-lg",
@@ -14,63 +14,101 @@
14
14
  "type": "\"floating\" | \"docked-right\"",
15
15
  "required": false,
16
16
  "defaultValue": null,
17
- "description": "Placement, controlled. Pair with `onPositionChange`."
17
+ "description": "Placement, controlled. Pair with `onPositionChange`.",
18
+ "control": {
19
+ "kind": "enum",
20
+ "members": [
21
+ "floating",
22
+ "docked-right"
23
+ ]
24
+ }
18
25
  },
19
26
  {
20
27
  "name": "defaultPosition",
21
28
  "type": "\"floating\" | \"docked-right\"",
22
29
  "required": false,
23
30
  "defaultValue": "floating",
24
- "description": "Initial placement. A stored one wins. Defaults to `\"floating\"`."
31
+ "description": "Initial placement. A stored one wins. Defaults to `\"floating\"`.",
32
+ "control": {
33
+ "kind": "enum",
34
+ "members": [
35
+ "floating",
36
+ "docked-right"
37
+ ]
38
+ }
25
39
  },
26
40
  {
27
41
  "name": "onPositionChange",
28
42
  "type": "((position: ConfiguratorPosition) => void)",
29
43
  "required": false,
30
44
  "defaultValue": null,
31
- "description": "Called when the user docks or floats the panel."
45
+ "description": "Called when the user docks or floats the panel.",
46
+ "control": {
47
+ "kind": "callback",
48
+ "fixture": "callback.log"
49
+ }
32
50
  },
33
51
  {
34
52
  "name": "defaultCollapsed",
35
53
  "type": "boolean",
36
54
  "required": false,
37
55
  "defaultValue": "false",
38
- "description": "Start furled to the title bar. A stored value wins. Defaults to `false`."
56
+ "description": "Start furled to the title bar. A stored value wins. Defaults to `false`.",
57
+ "control": {
58
+ "kind": "boolean"
59
+ }
39
60
  },
40
61
  {
41
62
  "name": "storageKey",
42
63
  "type": "string",
43
64
  "required": false,
44
65
  "defaultValue": "cue-configurator",
45
- "description": "`localStorage` key holding the overrides, the placement and the zoom.\nDefaults to `\"cue-configurator\"`."
66
+ "description": "`localStorage` key holding the overrides, the placement and the zoom.\nDefaults to `\"cue-configurator\"`.",
67
+ "control": {
68
+ "kind": "string"
69
+ }
46
70
  },
47
71
  {
48
72
  "name": "onChange",
49
73
  "type": "((tokens: Record<string, string>) => void)",
50
74
  "required": false,
51
75
  "defaultValue": null,
52
- "description": "Called with the full resolved `--cue-*` map — never a diff — whenever the\noverrides, the theme or the mode change, and once on mount."
76
+ "description": "Called with the full resolved `--cue-*` map — never a diff — whenever the\noverrides, the theme or the mode change, and once on mount.",
77
+ "control": {
78
+ "kind": "callback",
79
+ "fixture": "callback.log"
80
+ }
53
81
  },
54
82
  {
55
83
  "name": "zoomShortcuts",
56
84
  "type": "boolean",
57
85
  "required": false,
58
86
  "defaultValue": "true",
59
- "description": "Bind ⌘/Ctrl with `+`, `-` and `0` to the zoom valve. Defaults to `true`."
87
+ "description": "Bind ⌘/Ctrl with `+`, `-` and `0` to the zoom valve. Defaults to `true`.",
88
+ "control": {
89
+ "kind": "boolean"
90
+ }
60
91
  },
61
92
  {
62
93
  "name": "title",
63
94
  "type": "ReactNode",
64
95
  "required": false,
65
96
  "defaultValue": "Theme",
66
- "description": "Panel heading. Defaults to `\"Theme\"`."
97
+ "description": "Panel heading. Defaults to `\"Theme\"`.",
98
+ "control": {
99
+ "kind": "node",
100
+ "fixture": "children.text"
101
+ }
67
102
  },
68
103
  {
69
104
  "name": "className",
70
105
  "type": "string",
71
106
  "required": false,
72
107
  "defaultValue": null,
73
- "description": "Extra classes for the panel."
108
+ "description": "Extra classes for the panel.",
109
+ "control": {
110
+ "kind": "string"
111
+ }
74
112
  }
75
113
  ],
76
114
  "typeReferences": [],
@@ -79,7 +117,6 @@
79
117
  "variants": {},
80
118
  "defaultVariants": {},
81
119
  "tokensUsed": [
82
- "--cue-accent",
83
120
  "--cue-accent-soft",
84
121
  "--cue-border",
85
122
  "--cue-border-overlay",
@@ -90,7 +127,6 @@
90
127
  "--cue-fg-subtle",
91
128
  "--cue-font-mono",
92
129
  "--cue-font-sans",
93
- "--cue-font-scale",
94
130
  "--cue-icon-sm",
95
131
  "--cue-radius-control",
96
132
  "--cue-radius-overlay",