@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,49 +12,73 @@
12
12
  "type": "boolean",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "Whether the pointer is on the plot. Recharts supplies this."
15
+ "description": "Whether the pointer is on the plot. Recharts supplies this.",
16
+ "control": {
17
+ "kind": "boolean"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "payload",
19
22
  "type": "readonly ChartTooltipEntry[]",
20
23
  "required": false,
21
24
  "defaultValue": null,
22
- "description": "One entry per series at the hovered index. Recharts supplies this."
25
+ "description": "One entry per series at the hovered index. Recharts supplies this.",
26
+ "control": {
27
+ "kind": "array"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "label",
26
32
  "type": "ReactNode",
27
33
  "required": false,
28
34
  "defaultValue": null,
29
- "description": "The hovered category — the x value. Recharts supplies this."
35
+ "description": "The hovered category — the x value. Recharts supplies this.",
36
+ "control": {
37
+ "kind": "node",
38
+ "fixture": "children.text"
39
+ }
30
40
  },
31
41
  {
32
42
  "name": "hideLabel",
33
43
  "type": "boolean",
34
44
  "required": false,
35
45
  "defaultValue": "false",
36
- "description": "Drop the label line, for a chart whose x axis needs no restating."
46
+ "description": "Drop the label line, for a chart whose x axis needs no restating.",
47
+ "control": {
48
+ "kind": "boolean"
49
+ }
37
50
  },
38
51
  {
39
52
  "name": "hideIndicator",
40
53
  "type": "boolean",
41
54
  "required": false,
42
55
  "defaultValue": "false",
43
- "description": "Drop the per-row colour chips, for a single-series chart."
56
+ "description": "Drop the per-row colour chips, for a single-series chart.",
57
+ "control": {
58
+ "kind": "boolean"
59
+ }
44
60
  },
45
61
  {
46
62
  "name": "labelFormatter",
47
63
  "type": "((label: ReactNode, payload: readonly ChartTooltipEntry[]) => ReactNode)",
48
64
  "required": false,
49
65
  "defaultValue": null,
50
- "description": "Format the label line."
66
+ "description": "Format the label line.",
67
+ "control": {
68
+ "kind": "callback",
69
+ "fixture": "callback.log"
70
+ }
51
71
  },
52
72
  {
53
73
  "name": "formatter",
54
74
  "type": "((value: string | number | readonly (string | number)[], name: ReactNode, entry: ChartTooltipEntry, index: number) => ReactNode)",
55
75
  "required": false,
56
76
  "defaultValue": null,
57
- "description": "Format one row's value. Return the unit too if you want to own it."
77
+ "description": "Format one row's value. Return the unit too if you want to own it.",
78
+ "control": {
79
+ "kind": "callback",
80
+ "fixture": "callback.log"
81
+ }
58
82
  }
59
83
  ],
60
84
  "typeReferences": [
@@ -12,42 +12,66 @@
12
12
  "type": "string",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "What the series measures."
15
+ "description": "What the series measures.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "value",
19
22
  "type": "string",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "The headline figure, pre-formatted. The chart never formats numbers itself."
25
+ "description": "The headline figure, pre-formatted. The chart never formats numbers itself.",
26
+ "control": {
27
+ "kind": "string"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "delta",
26
32
  "type": "string",
27
33
  "required": false,
28
34
  "defaultValue": null,
29
- "description": "Change against the previous window. Renders green unless it starts with a minus sign."
35
+ "description": "Change against the previous window. Renders green unless it starts with a minus sign.",
36
+ "control": {
37
+ "kind": "string"
38
+ }
30
39
  },
31
40
  {
32
41
  "name": "points",
33
42
  "type": "readonly number[]",
34
43
  "required": true,
35
44
  "defaultValue": null,
36
- "description": "The full series. The scale is computed from all of it, so the axis does not jump\nwhile streaming."
45
+ "description": "The full series. The scale is computed from all of it, so the axis does not jump\nwhile streaming.",
46
+ "control": {
47
+ "kind": "array",
48
+ "fixture": "chart.series"
49
+ }
37
50
  },
38
51
  {
39
52
  "name": "visibleCount",
40
53
  "type": "number",
41
54
  "required": true,
42
55
  "defaultValue": null,
43
- "description": "How many points have arrived."
56
+ "description": "How many points have arrived.",
57
+ "control": {
58
+ "kind": "number"
59
+ }
44
60
  },
45
61
  {
46
62
  "name": "variant",
47
63
  "type": "\"area\" | \"line\" | \"bars\"",
48
64
  "required": false,
49
65
  "defaultValue": "area",
50
- "description": "Mark type. The last point stays emphasized in all three."
66
+ "description": "Mark type. The last point stays emphasized in all three.",
67
+ "control": {
68
+ "kind": "enum",
69
+ "members": [
70
+ "area",
71
+ "line",
72
+ "bars"
73
+ ]
74
+ }
51
75
  }
52
76
  ],
53
77
  "typeReferences": [
@@ -14,14 +14,21 @@
14
14
  "type": "string",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Resting text in the input bar."
17
+ "description": "Resting text in the input bar.",
18
+ "control": {
19
+ "kind": "string"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "onSend",
21
24
  "type": "(() => void)",
22
25
  "required": false,
23
26
  "defaultValue": null,
24
- "description": "Called from the send control. Omit it and the control renders disabled."
27
+ "description": "Called from the send control. Omit it and the control renders disabled.",
28
+ "control": {
29
+ "kind": "callback",
30
+ "fixture": "callback.log"
31
+ }
25
32
  }
26
33
  ],
27
34
  "typeReferences": [
@@ -12,7 +12,10 @@
12
12
  "type": "string",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "Extra classes, merged over the vertical stack defaults."
15
+ "description": "Extra classes, merged over the vertical stack defaults.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  }
17
20
  ],
18
21
  "typeReferences": [
@@ -28,7 +31,6 @@
28
31
  "--cue-border",
29
32
  "--cue-border-strong",
30
33
  "--cue-danger",
31
- "--cue-fg",
32
34
  "--cue-fg-muted",
33
35
  "--cue-font-mono",
34
36
  "--cue-icon-md",
@@ -12,21 +12,35 @@
12
12
  "type": "ReactNode",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "Inline label rendered beside the box and wrapped with it in a `<label>`, so\nthe text is both the accessible name and part of the hit target. Omit it and\npass `aria-label`, or let a {@link Field } name the control instead."
15
+ "description": "Inline label rendered beside the box and wrapped with it in a `<label>`, so\nthe text is both the accessible name and part of the hit target. Omit it and\npass `aria-label`, or let a {@link Field } name the control instead.",
16
+ "control": {
17
+ "kind": "node",
18
+ "fixture": "children.text"
19
+ }
16
20
  },
17
21
  {
18
22
  "name": "className",
19
23
  "type": "string",
20
24
  "required": false,
21
25
  "defaultValue": null,
22
- "description": "Extra classes, merged over the box defaults."
26
+ "description": "Extra classes, merged over the box defaults.",
27
+ "control": {
28
+ "kind": "string"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "size",
26
33
  "type": "\"sm\" | \"md\"",
27
34
  "required": false,
28
35
  "defaultValue": "md",
29
- "description": "Rung of the density icon ladder for the box. Defaults to `\"md\"`."
36
+ "description": "Rung of the density icon ladder for the box. Defaults to `\"md\"`.",
37
+ "control": {
38
+ "kind": "enum",
39
+ "members": [
40
+ "sm",
41
+ "md"
42
+ ]
43
+ }
30
44
  }
31
45
  ],
32
46
  "typeReferences": [
@@ -42,7 +56,6 @@
42
56
  "--cue-border",
43
57
  "--cue-border-strong",
44
58
  "--cue-danger",
45
- "--cue-fg",
46
59
  "--cue-fg-muted",
47
60
  "--cue-font-mono",
48
61
  "--cue-icon-md",
@@ -14,21 +14,31 @@
14
14
  "type": "readonly Checkpoint[]",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Points in the run you can fall back to, oldest first."
17
+ "description": "Points in the run you can fall back to, oldest first.",
18
+ "control": {
19
+ "kind": "array"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "currentId",
21
24
  "type": "string",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "Where the run stands. Everything after it dims, since restoring would discard it."
27
+ "description": "Where the run stands. Everything after it dims, since restoring would discard it.",
28
+ "control": {
29
+ "kind": "string"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "onRestore",
28
34
  "type": "((id: string) => void)",
29
35
  "required": false,
30
36
  "defaultValue": null,
31
- "description": "Called with the checkpoint to return to."
37
+ "description": "Called with the checkpoint to return to.",
38
+ "control": {
39
+ "kind": "callback",
40
+ "fixture": "callback.log"
41
+ }
32
42
  }
33
43
  ],
34
44
  "typeReferences": [
@@ -12,35 +12,65 @@
12
12
  "type": "boolean",
13
13
  "required": false,
14
14
  "defaultValue": "false",
15
- "description": "Render as a `<button>` with hover feedback instead of a static `<span>`.\nUse for filter pills and other clickable tags; leave off for pure labels."
15
+ "description": "Render as a `<button>` with hover feedback instead of a static `<span>`.\nUse for filter pills and other clickable tags; leave off for pure labels.",
16
+ "control": {
17
+ "kind": "boolean"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "disabled",
19
22
  "type": "boolean",
20
23
  "required": false,
21
24
  "defaultValue": null,
22
- "description": "Disable the interactive form. Ignored when `interactive` is not set."
25
+ "description": "Disable the interactive form. Ignored when `interactive` is not set.",
26
+ "control": {
27
+ "kind": "boolean"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "children",
26
32
  "type": "ReactNode",
27
33
  "required": false,
28
34
  "defaultValue": null,
29
- "description": "Chip content — normally one or two words, or a short count."
35
+ "description": "Chip content — normally one or two words, or a short count.",
36
+ "control": {
37
+ "kind": "node",
38
+ "fixture": "children.text"
39
+ }
30
40
  },
31
41
  {
32
42
  "name": "tone",
33
43
  "type": "\"danger\" | \"accent\" | \"busy\" | \"neutral\" | \"ok\" | \"warn\" | \"info\"",
34
44
  "required": false,
35
45
  "defaultValue": "neutral",
36
- "description": ""
46
+ "description": "",
47
+ "control": {
48
+ "kind": "enum",
49
+ "members": [
50
+ "neutral",
51
+ "accent",
52
+ "ok",
53
+ "busy",
54
+ "warn",
55
+ "danger",
56
+ "info"
57
+ ]
58
+ }
37
59
  },
38
60
  {
39
61
  "name": "variant",
40
62
  "type": "\"outline\" | \"tinted\" | \"tag\"",
41
63
  "required": false,
42
64
  "defaultValue": "tinted",
43
- "description": ""
65
+ "description": "",
66
+ "control": {
67
+ "kind": "enum",
68
+ "members": [
69
+ "tinted",
70
+ "outline",
71
+ "tag"
72
+ ]
73
+ }
44
74
  }
45
75
  ],
46
76
  "typeReferences": [
@@ -12,49 +12,72 @@
12
12
  "type": "string | number",
13
13
  "required": false,
14
14
  "defaultValue": "250",
15
- "description": "How tall the content may be before it is cut, as a number of pixels or any\nCSS length. Defaults to `250` — the reference's own default, with `60` the\nvalue it uses for a quoted user message.\n\nPublished as `--cue-elements-clamp-height` on the root, so a console can\nretune one clamp from a stylesheet without a prop."
15
+ "description": "How tall the content may be before it is cut, as a number of pixels or any\nCSS length. Defaults to `250` — the reference's own default, with `60` the\nvalue it uses for a quoted user message.\n\nPublished as `--cue-elements-clamp-height` on the root, so a console can\nretune one clamp from a stylesheet without a prop.",
16
+ "control": {
17
+ "kind": "opaque"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "fade",
19
22
  "type": "number",
20
23
  "required": false,
21
24
  "defaultValue": "50",
22
- "description": "How deep the dissolve at the cut is, in pixels. Defaults to `50`, the\nreference's most-used depth.\n\nFixed pixels rather than a fraction, deliberately: a percentage fade is a\ndifferent effect on a short row than on a long one. Published as\n`--cue-elements-clamp-fade`."
25
+ "description": "How deep the dissolve at the cut is, in pixels. Defaults to `50`, the\nreference's most-used depth.\n\nFixed pixels rather than a fraction, deliberately: a percentage fade is a\ndifferent effect on a short row than on a long one. Published as\n`--cue-elements-clamp-fade`.",
26
+ "control": {
27
+ "kind": "number"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "open",
26
32
  "type": "boolean",
27
33
  "required": true,
28
34
  "defaultValue": null,
29
- "description": "Whether the content is showing in full."
35
+ "description": "Whether the content is showing in full.",
36
+ "control": {
37
+ "kind": "boolean"
38
+ }
30
39
  },
31
40
  {
32
41
  "name": "onOpenChange",
33
42
  "type": "((open: boolean) => void)",
34
43
  "required": false,
35
44
  "defaultValue": null,
36
- "description": "Called when the reveal is used. Omit it and the clamp is a hard cut with a\nfade and no promise of more — which is the reference's own tool-result row,\nwhere the full text opens somewhere else entirely."
45
+ "description": "Called when the reveal is used. Omit it and the clamp is a hard cut with a\nfade and no promise of more — which is the reference's own tool-result row,\nwhere the full text opens somewhere else entirely.",
46
+ "control": {
47
+ "kind": "callback",
48
+ "fixture": "callback.log"
49
+ }
37
50
  },
38
51
  {
39
52
  "name": "overflows",
40
53
  "type": "boolean",
41
54
  "required": false,
42
55
  "defaultValue": null,
43
- "description": "Whether the content is taller than `height`, when the caller already knows.\nLeft out, the clamp measures itself and re-measures as the content and the\nbox change.\n\nThe measurement is the right default and the override is for the cases it\ncannot serve: a virtualised row that knows its own text, a replay frame\nthat must paint the same way on every mount, a server render."
56
+ "description": "Whether the content is taller than `height`, when the caller already knows.\nLeft out, the clamp measures itself and re-measures as the content and the\nbox change.\n\nThe measurement is the right default and the override is for the cases it\ncannot serve: a virtualised row that knows its own text, a replay frame\nthat must paint the same way on every mount, a server render.",
57
+ "control": {
58
+ "kind": "boolean"
59
+ }
44
60
  },
45
61
  {
46
62
  "name": "labels",
47
63
  "type": "Partial<ClampLabels>",
48
64
  "required": false,
49
65
  "defaultValue": null,
50
- "description": "The two words on the reveal. Defaults to {@link CLAMP_LABELS} — `Show more`\nand `Show less`, which is the reference's copy verbatim."
66
+ "description": "The two words on the reveal. Defaults to {@link CLAMP_LABELS} — `Show more`\nand `Show less`, which is the reference's copy verbatim.",
67
+ "control": {
68
+ "kind": "opaque"
69
+ }
51
70
  },
52
71
  {
53
72
  "name": "children",
54
73
  "type": "ReactNode",
55
74
  "required": false,
56
75
  "defaultValue": null,
57
- "description": "The content being clamped."
76
+ "description": "The content being clamped.",
77
+ "control": {
78
+ "kind": "node",
79
+ "fixture": "children.text"
80
+ }
58
81
  }
59
82
  ],
60
83
  "typeReferences": [
@@ -14,13 +14,7 @@
14
14
  "parts": [],
15
15
  "variants": {},
16
16
  "defaultVariants": {},
17
- "tokensUsed": [
18
- "--cue-danger",
19
- "--cue-fg",
20
- "--cue-icon-",
21
- "--cue-icon-md",
22
- "--cue-icon-sm"
23
- ],
17
+ "tokensUsed": [],
24
18
  "summary": "A CLI tool in the registry: a thing that runs in a terminal.",
25
19
  "examples": [],
26
20
  "status": "todo-docs",
@@ -0,0 +1,106 @@
1
+ {
2
+ "name": "CodeBlock",
3
+ "slug": "code-block",
4
+ "group": "instruments",
5
+ "importPath": "@cueplusplus/ui",
6
+ "peerDependencies": [],
7
+ "clientOnly": false,
8
+ "description": "A block of code with a copy button and no syntax-highlighter palette.\n\nEvery colour a token-driven site paints has to come from the token layer, and\na highlighter theme is a second palette that would need porting to every\npreset before it could sit beside them — so there is none. What `language=\"jsx\"`\nadds is emphasis in three inks the theme already has: tag names in `--cue-fg`,\nattribute names in `--cue-fg-muted`, punctuation in `--cue-fg-subtle`. Mono\ntype, the sunken ground every input uses, and a copy button that works.\n\nNo directive: the copy button is the only client code, and a server page can\ndraw the rest.",
9
+ "props": [
10
+ {
11
+ "name": "code",
12
+ "type": "string",
13
+ "required": true,
14
+ "defaultValue": null,
15
+ "description": "The code. Printed verbatim, already dedented by whoever produced it; the copy button copies exactly this.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
19
+ },
20
+ {
21
+ "name": "label",
22
+ "type": "string",
23
+ "required": false,
24
+ "defaultValue": null,
25
+ "description": "What the block is, in the caption strip: a filename, an example's title. Defaults to the language.",
26
+ "control": {
27
+ "kind": "string"
28
+ }
29
+ },
30
+ {
31
+ "name": "language",
32
+ "type": "string",
33
+ "required": false,
34
+ "defaultValue": "tsx",
35
+ "description": "The fence language, on the `<pre>` as `data-language`. Defaults to `\"tsx\"`.\n`\"jsx\"` turns on emphasis: tag names, attribute names and punctuation in\nthree inks the theme already has. Every other value prints plain.",
36
+ "control": {
37
+ "kind": "string"
38
+ }
39
+ }
40
+ ],
41
+ "typeReferences": [
42
+ "Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">"
43
+ ],
44
+ "subcomponents": [],
45
+ "parts": [],
46
+ "variants": {},
47
+ "defaultVariants": {},
48
+ "tokensUsed": [
49
+ "--cue-border",
50
+ "--cue-fg",
51
+ "--cue-fg-muted",
52
+ "--cue-fg-subtle",
53
+ "--cue-font-mono",
54
+ "--cue-pad-row-x",
55
+ "--cue-pad-row-y",
56
+ "--cue-space-4",
57
+ "--cue-sunken",
58
+ "--cue-text-micro",
59
+ "--cue-text-ui"
60
+ ],
61
+ "summary": "A block of code with a copy button and no highlighter palette; `language=\"jsx\"` adds emphasis in three inks the theme already has.",
62
+ "examples": [
63
+ {
64
+ "title": "An install line",
65
+ "code": "<CodeBlock label=\"install\" language=\"sh\" code=\"pnpm add @cueplusplus/ui\" />",
66
+ "language": "tsx"
67
+ },
68
+ {
69
+ "title": "JSX, in three inks",
70
+ "code": "<CodeBlock label=\"JSX\" language=\"jsx\" code={'<Button variant=\"primary\">Take cue</Button>'} />",
71
+ "language": "tsx"
72
+ },
73
+ {
74
+ "title": "Usage",
75
+ "code": "<CodeBlock label=\"install\" code=\"pnpm add\n<CodeBlock label=\"JSX\" language=\"jsx\" code={'<Button variant=\"primary\">Take cue</Button>'} />",
76
+ "language": "tsx"
77
+ }
78
+ ],
79
+ "status": "stable",
80
+ "url": "/docs/components/code-block",
81
+ "mdUrl": "/docs/components/code-block.md",
82
+ "jsonUrl": "/r/components/code-block.json",
83
+ "whenToUse": [
84
+ "Any snippet a reader will copy: an install line, an example, the source of a state on screen.",
85
+ "JSX a reader should scan by structure — tag names, then attributes — without a second palette to port to every theme."
86
+ ],
87
+ "whenNotToUse": [
88
+ "Inline code in a sentence. That is a `<code>` in prose.",
89
+ "A diff, or code a reader runs. Those are `CodeDiff` and `CodeRunner`."
90
+ ],
91
+ "commonMistakes": [
92
+ "Expecting colour for a language other than `jsx`. There is no highlighter; every other language prints plain, on purpose.",
93
+ "Passing code that still carries its indentation from the file it came from. The block prints verbatim — dedent it first."
94
+ ],
95
+ "specimens": [
96
+ {
97
+ "title": "CodeBlock",
98
+ "group": "instruments",
99
+ "components": [
100
+ "CodeBlock"
101
+ ],
102
+ "code": "<div className=\"flex w-full flex-col gap-(--cue-space-4)\">\n <CodeBlock label=\"install\" language=\"sh\" code=\"pnpm add @cueplusplus/ui\" />\n <CodeBlock label=\"JSX\" language=\"jsx\" code={'<Button variant=\"primary\" size=\"sm\">\\n Take cue\\n</Button>'} />\n</div>",
103
+ "interaction": "the copy button is the one control; the code is plain, selectable text."
104
+ }
105
+ ]
106
+ }
@@ -12,35 +12,50 @@
12
12
  "type": "string",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "File path shown in the diff header."
15
+ "description": "File path shown in the diff header.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "additions",
19
22
  "type": "number",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "Addition count rendered in green next to the filename."
25
+ "description": "Addition count rendered in green next to the filename.",
26
+ "control": {
27
+ "kind": "number"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "deletions",
26
32
  "type": "number",
27
33
  "required": true,
28
34
  "defaultValue": null,
29
- "description": "Deletion count rendered in red next to the filename."
35
+ "description": "Deletion count rendered in red next to the filename.",
36
+ "control": {
37
+ "kind": "number"
38
+ }
30
39
  },
31
40
  {
32
41
  "name": "lines",
33
42
  "type": "readonly DiffLine[]",
34
43
  "required": true,
35
44
  "defaultValue": null,
36
- "description": "Unified diff lines with context, added, or removed kind."
45
+ "description": "Unified diff lines with context, added, or removed kind.",
46
+ "control": {
47
+ "kind": "array"
48
+ }
37
49
  },
38
50
  {
39
51
  "name": "cycle",
40
52
  "type": "number",
41
53
  "required": true,
42
54
  "defaultValue": null,
43
- "description": "Identity key that remounts the body so entrance animation can replay."
55
+ "description": "Identity key that remounts the body so entrance animation can replay.",
56
+ "control": {
57
+ "kind": "number"
58
+ }
44
59
  }
45
60
  ],
46
61
  "typeReferences": [