@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,35 +12,57 @@
12
12
  "type": "boolean",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Whether the dialog is showing."
15
+ "description": "Whether the dialog is showing.",
16
+ "control": {
17
+ "kind": "boolean"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "onOpenChange",
19
22
  "type": "(open: boolean) => void",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "Called when it should open or close."
25
+ "description": "Called when it should open or close.",
26
+ "control": {
27
+ "kind": "callback",
28
+ "fixture": "callback.log"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "overrides",
26
33
  "type": "ThemeOverrides",
27
34
  "required": true,
28
35
  "defaultValue": null,
29
- "description": "The overrides to export."
36
+ "description": "The overrides to export.",
37
+ "control": {
38
+ "kind": "opaque"
39
+ }
30
40
  },
31
41
  {
32
42
  "name": "scope",
33
43
  "type": "ThemeScope",
34
44
  "required": true,
35
45
  "defaultValue": null,
36
- "description": "The theme and mode they were made in."
46
+ "description": "The theme and mode they were made in.",
47
+ "control": {
48
+ "kind": "opaque"
49
+ }
37
50
  },
38
51
  {
39
52
  "name": "defaultFormat",
40
53
  "type": "\"css\" | \"dtcg\" | \"create-theme\" | \"registry\"",
41
54
  "required": false,
42
55
  "defaultValue": "css",
43
- "description": "Format shown first. Defaults to `\"css\"`."
56
+ "description": "Format shown first. Defaults to `\"css\"`.",
57
+ "control": {
58
+ "kind": "enum",
59
+ "members": [
60
+ "css",
61
+ "dtcg",
62
+ "create-theme",
63
+ "registry"
64
+ ]
65
+ }
44
66
  }
45
67
  ],
46
68
  "typeReferences": [],
@@ -49,18 +71,12 @@
49
71
  "variants": {},
50
72
  "defaultVariants": {},
51
73
  "tokensUsed": [
52
- "--cue-accent",
53
74
  "--cue-border",
54
- "--cue-density",
55
75
  "--cue-fg",
56
76
  "--cue-fg-muted",
57
77
  "--cue-font-mono",
58
- "--cue-font-pairing-mono",
59
78
  "--cue-font-sans",
60
- "--cue-font-scale",
61
- "--cue-font-theme-mono",
62
79
  "--cue-radius-control",
63
- "--cue-radius-scale",
64
80
  "--cue-space-1",
65
81
  "--cue-space-3",
66
82
  "--cue-space-4",
@@ -12,7 +12,10 @@
12
12
  "type": "boolean",
13
13
  "required": false,
14
14
  "defaultValue": "true",
15
- "description": "Print the `//` motif ahead of the label. Defaults to `true` — the slashes\nare the brand mark of this system, and an eyebrow without them is just\nsmall uppercase text. Pass `false` for a plain kicker."
15
+ "description": "Print the `//` motif ahead of the label. Defaults to `true` — the slashes\nare the brand mark of this system, and an eyebrow without them is just\nsmall uppercase text. Pass `false` for a plain kicker.",
16
+ "control": {
17
+ "kind": "boolean"
18
+ }
16
19
  }
17
20
  ],
18
21
  "typeReferences": [
@@ -14,49 +14,75 @@
14
14
  "type": "readonly string[]",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "The reason chips offered. Keep them short enough to scan in one line."
17
+ "description": "The reason chips offered. Keep them short enough to scan in one line.",
18
+ "control": {
19
+ "kind": "array",
20
+ "fixture": "agent.transcript"
21
+ }
18
22
  },
19
23
  {
20
24
  "name": "selected",
21
25
  "type": "readonly string[]",
22
26
  "required": true,
23
27
  "defaultValue": null,
24
- "description": "Which reasons are currently picked. More than one is allowed."
28
+ "description": "Which reasons are currently picked. More than one is allowed.",
29
+ "control": {
30
+ "kind": "array",
31
+ "fixture": "agent.transcript"
32
+ }
25
33
  },
26
34
  {
27
35
  "name": "note",
28
36
  "type": "string",
29
37
  "required": true,
30
38
  "defaultValue": null,
31
- "description": "Free-text detail, always optional."
39
+ "description": "Free-text detail, always optional.",
40
+ "control": {
41
+ "kind": "string"
42
+ }
32
43
  },
33
44
  {
34
45
  "name": "sent",
35
46
  "type": "boolean",
36
47
  "required": true,
37
48
  "defaultValue": null,
38
- "description": "Replaces the whole form with an acknowledgement once the report is filed."
49
+ "description": "Replaces the whole form with an acknowledgement once the report is filed.",
50
+ "control": {
51
+ "kind": "boolean"
52
+ }
39
53
  },
40
54
  {
41
55
  "name": "onToggleReason",
42
56
  "type": "((reason: string) => void)",
43
57
  "required": false,
44
58
  "defaultValue": null,
45
- "description": "Called when a reason chip is picked or unpicked."
59
+ "description": "Called when a reason chip is picked or unpicked.",
60
+ "control": {
61
+ "kind": "callback",
62
+ "fixture": "callback.log"
63
+ }
46
64
  },
47
65
  {
48
66
  "name": "onNoteChange",
49
67
  "type": "((note: string) => void)",
50
68
  "required": false,
51
69
  "defaultValue": null,
52
- "description": "Called as the free-text note is typed."
70
+ "description": "Called as the free-text note is typed.",
71
+ "control": {
72
+ "kind": "callback",
73
+ "fixture": "callback.log"
74
+ }
53
75
  },
54
76
  {
55
77
  "name": "onSubmit",
56
78
  "type": "(() => void)",
57
79
  "required": false,
58
80
  "defaultValue": null,
59
- "description": "Called when the report is sent."
81
+ "description": "Called when the report is sent.",
82
+ "control": {
83
+ "kind": "callback",
84
+ "fixture": "callback.log"
85
+ }
60
86
  }
61
87
  ],
62
88
  "typeReferences": [
@@ -12,7 +12,10 @@
12
12
  "type": "string",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "Extra classes, merged over the helper-text defaults."
15
+ "description": "Extra classes, merged over the helper-text defaults.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  }
17
20
  ],
18
21
  "typeReferences": [
@@ -12,21 +12,31 @@
12
12
  "type": "string",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "Extra classes, merged over the danger-text defaults."
15
+ "description": "Extra classes, merged over the danger-text defaults.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "children",
19
22
  "type": "ReactNode",
20
23
  "required": false,
21
24
  "defaultValue": null,
22
- "description": "Message to show when driving visibility from `match` instead of `issues`."
25
+ "description": "Message to show when driving visibility from `match` instead of `issues`.",
26
+ "control": {
27
+ "kind": "node",
28
+ "fixture": "children.text"
29
+ }
23
30
  },
24
31
  {
25
32
  "name": "issues",
26
33
  "type": "readonly FieldIssue[]",
27
34
  "required": false,
28
35
  "defaultValue": null,
29
- "description": "Standard Schema issues for this field. When supplied, the component shows\nexactly these messages and stops consulting native `ValidityState`: an\nempty array renders nothing, one issue renders inline, several render as a\nlist. Leave it `undefined` to fall back to `match` + `children`."
36
+ "description": "Standard Schema issues for this field. When supplied, the component shows\nexactly these messages and stops consulting native `ValidityState`: an\nempty array renders nothing, one issue renders inline, several render as a\nlist. Leave it `undefined` to fall back to `match` + `children`.",
37
+ "control": {
38
+ "kind": "array"
39
+ }
30
40
  }
31
41
  ],
32
42
  "typeReferences": [
@@ -12,7 +12,10 @@
12
12
  "type": "string",
13
13
  "required": false,
14
14
  "defaultValue": null,
15
- "description": "Extra classes, merged over the label typography."
15
+ "description": "Extra classes, merged over the label typography.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  }
17
20
  ],
18
21
  "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": [
@@ -14,28 +14,40 @@
14
14
  "type": "readonly FileTreeNode[]",
15
15
  "required": true,
16
16
  "defaultValue": null,
17
- "description": "Flat list in display order. Nesting comes from each node's depth, not from\nchildren arrays."
17
+ "description": "Flat list in display order. Nesting comes from each node's depth, not from\nchildren arrays.",
18
+ "control": {
19
+ "kind": "array"
20
+ }
18
21
  },
19
22
  {
20
23
  "name": "visibleCount",
21
24
  "type": "number",
22
25
  "required": true,
23
26
  "defaultValue": null,
24
- "description": "How many nodes have landed. Raise it as the run touches more files."
27
+ "description": "How many nodes have landed. Raise it as the run touches more files.",
28
+ "control": {
29
+ "kind": "number"
30
+ }
25
31
  },
26
32
  {
27
33
  "name": "totalAdditions",
28
34
  "type": "number",
29
35
  "required": true,
30
36
  "defaultValue": null,
31
- "description": "Added lines across the whole change."
37
+ "description": "Added lines across the whole change.",
38
+ "control": {
39
+ "kind": "number"
40
+ }
32
41
  },
33
42
  {
34
43
  "name": "totalDeletions",
35
44
  "type": "number",
36
45
  "required": true,
37
46
  "defaultValue": null,
38
- "description": "Removed lines across the whole change."
47
+ "description": "Removed lines across the whole change.",
48
+ "control": {
49
+ "kind": "number"
50
+ }
39
51
  }
40
52
  ],
41
53
  "typeReferences": [
@@ -12,91 +12,136 @@
12
12
  "type": "ReactNode",
13
13
  "required": false,
14
14
  "defaultValue": "Drop files",
15
- "description": "The zone's own copy, and its accessible name. Defaults to `\"Drop files\"`."
15
+ "description": "The zone's own copy, and its accessible name. Defaults to `\"Drop files\"`.",
16
+ "control": {
17
+ "kind": "node",
18
+ "fixture": "children.text"
19
+ }
16
20
  },
17
21
  {
18
22
  "name": "hint",
19
23
  "type": "ReactNode",
20
24
  "required": false,
21
25
  "defaultValue": null,
22
- "description": "A second line under the label — the rules, in plain words."
26
+ "description": "A second line under the label — the rules, in plain words.",
27
+ "control": {
28
+ "kind": "node",
29
+ "fixture": "children.text"
30
+ }
23
31
  },
24
32
  {
25
33
  "name": "accept",
26
34
  "type": "string",
27
35
  "required": false,
28
36
  "defaultValue": null,
29
- "description": "`accept` string forwarded to the input and used for rejection."
37
+ "description": "`accept` string forwarded to the input and used for rejection.",
38
+ "control": {
39
+ "kind": "string"
40
+ }
30
41
  },
31
42
  {
32
43
  "name": "multiple",
33
44
  "type": "boolean",
34
45
  "required": false,
35
46
  "defaultValue": "false",
36
- "description": "Allow more than one file per drop."
47
+ "description": "Allow more than one file per drop.",
48
+ "control": {
49
+ "kind": "boolean"
50
+ }
37
51
  },
38
52
  {
39
53
  "name": "maxSize",
40
54
  "type": "number",
41
55
  "required": false,
42
56
  "defaultValue": null,
43
- "description": "Largest accepted file, in bytes."
57
+ "description": "Largest accepted file, in bytes.",
58
+ "control": {
59
+ "kind": "number"
60
+ }
44
61
  },
45
62
  {
46
63
  "name": "maxFiles",
47
64
  "type": "number",
48
65
  "required": false,
49
66
  "defaultValue": null,
50
- "description": "How many files may be accepted per drop."
67
+ "description": "How many files may be accepted per drop.",
68
+ "control": {
69
+ "kind": "number"
70
+ }
51
71
  },
52
72
  {
53
73
  "name": "disabled",
54
74
  "type": "boolean",
55
75
  "required": false,
56
76
  "defaultValue": "false",
57
- "description": "Refuse drops and grey the zone out."
77
+ "description": "Refuse drops and grey the zone out.",
78
+ "control": {
79
+ "kind": "boolean"
80
+ }
58
81
  },
59
82
  {
60
83
  "name": "files",
61
84
  "type": "readonly UploadFile[]",
62
85
  "required": false,
63
86
  "defaultValue": null,
64
- "description": "Rows to render under the zone. The caller owns upload state."
87
+ "description": "Rows to render under the zone. The caller owns upload state.",
88
+ "control": {
89
+ "kind": "array"
90
+ }
65
91
  },
66
92
  {
67
93
  "name": "onFilesAccepted",
68
94
  "type": "((files: File[]) => void)",
69
95
  "required": false,
70
96
  "defaultValue": null,
71
- "description": "Called with the files that passed the rules."
97
+ "description": "Called with the files that passed the rules.",
98
+ "control": {
99
+ "kind": "callback",
100
+ "fixture": "callback.log"
101
+ }
72
102
  },
73
103
  {
74
104
  "name": "onFilesRejected",
75
105
  "type": "((rejections: FileRejection[]) => void)",
76
106
  "required": false,
77
107
  "defaultValue": null,
78
- "description": "Called with the files that did not, each with its reason."
108
+ "description": "Called with the files that did not, each with its reason.",
109
+ "control": {
110
+ "kind": "callback",
111
+ "fixture": "callback.log"
112
+ }
79
113
  },
80
114
  {
81
115
  "name": "onRemove",
82
116
  "type": "((id: string) => void)",
83
117
  "required": false,
84
118
  "defaultValue": null,
85
- "description": "Called with a row's `id` when its remove control is pressed."
119
+ "description": "Called with a row's `id` when its remove control is pressed.",
120
+ "control": {
121
+ "kind": "callback",
122
+ "fixture": "callback.log"
123
+ }
86
124
  },
87
125
  {
88
126
  "name": "removeLabel",
89
127
  "type": "((file: UploadFile) => string)",
90
128
  "required": false,
91
129
  "defaultValue": "(file) => `Remove ${file.name}`",
92
- "description": "Spoken name of a row's remove control. Defaults to `Remove <name>`."
130
+ "description": "Spoken name of a row's remove control. Defaults to `Remove <name>`.",
131
+ "control": {
132
+ "kind": "callback",
133
+ "fixture": "callback.log"
134
+ }
93
135
  },
94
136
  {
95
137
  "name": "zoneClassName",
96
138
  "type": "string",
97
139
  "required": false,
98
140
  "defaultValue": null,
99
- "description": "Extra classes for the drop zone."
141
+ "description": "Extra classes for the drop zone.",
142
+ "control": {
143
+ "kind": "string"
144
+ }
100
145
  }
101
146
  ],
102
147
  "typeReferences": [
@@ -12,21 +12,30 @@
12
12
  "type": "readonly FlowNode[]",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Every node with its grid position. Layout is explicit; the element runs no solver."
15
+ "description": "Every node with its grid position. Layout is explicit; the element runs no solver.",
16
+ "control": {
17
+ "kind": "array"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "edges",
19
22
  "type": "readonly FlowEdge[]",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "Connections by node id. An edge dims until both of its ends are visible."
25
+ "description": "Connections by node id. An edge dims until both of its ends are visible.",
26
+ "control": {
27
+ "kind": "array"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "visibleCount",
26
32
  "type": "number",
27
33
  "required": true,
28
34
  "defaultValue": null,
29
- "description": "How many nodes have been reached so far."
35
+ "description": "How many nodes have been reached so far.",
36
+ "control": {
37
+ "kind": "number"
38
+ }
30
39
  }
31
40
  ],
32
41
  "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 folder somebody made: a shelf of bookmarks, filed by hand.",
25
19
  "examples": [],
26
20
  "status": "todo-docs",
@@ -12,28 +12,48 @@
12
12
  "type": "\"narrow\" | \"wide\" | \"broad\" | \"full\"",
13
13
  "required": false,
14
14
  "defaultValue": "broad",
15
- "description": "Which measure the footer's column takes. Defaults to `\"broad\"`.\n\nThe same four rungs `Container` and `PageShell` offer, so a footer lines up\nwith the page above it by naming the same width — `broad` rather than\n`narrow` by default because a footer is usually the widest thing on a page,\nand a row of columns inside a 42rem reading measure is four squeezed lists."
15
+ "description": "Which measure the footer's column takes. Defaults to `\"broad\"`.\n\nThe same four rungs `Container` and `PageShell` offer, so a footer lines up\nwith the page above it by naming the same width — `broad` rather than\n`narrow` by default because a footer is usually the widest thing on a page,\nand a row of columns inside a 42rem reading measure is four squeezed lists.",
16
+ "control": {
17
+ "kind": "enum",
18
+ "members": [
19
+ "narrow",
20
+ "wide",
21
+ "broad",
22
+ "full"
23
+ ]
24
+ }
16
25
  },
17
26
  {
18
27
  "name": "meta",
19
28
  "type": "ReactNode",
20
29
  "required": false,
21
30
  "defaultValue": null,
22
- "description": "The fine print, under a hairline of its own: copyright, a licence, a build\nnumber.\n\nA slot rather than a component, because that row is a sentence and a couple\nof links — but it is a *separated* sentence, and hand-rolling the rule and\nthe space above it in every app is exactly the kind of repetition this\ncomponent exists to end."
31
+ "description": "The fine print, under a hairline of its own: copyright, a licence, a build\nnumber.\n\nA slot rather than a component, because that row is a sentence and a couple\nof links — but it is a *separated* sentence, and hand-rolling the rule and\nthe space above it in every app is exactly the kind of repetition this\ncomponent exists to end.",
32
+ "control": {
33
+ "kind": "node",
34
+ "fixture": "children.text"
35
+ }
23
36
  },
24
37
  {
25
38
  "name": "columnClassName",
26
39
  "type": "string",
27
40
  "required": false,
28
41
  "defaultValue": null,
29
- "description": "Extra classes for the centred column inside the landmark."
42
+ "description": "Extra classes for the centred column inside the landmark.",
43
+ "control": {
44
+ "kind": "string"
45
+ }
30
46
  },
31
47
  {
32
48
  "name": "children",
33
49
  "type": "ReactNode",
34
50
  "required": false,
35
51
  "defaultValue": null,
36
- "description": "The footer's body — normally a `Grid` of `Stack`s of `Link`s."
52
+ "description": "The footer's body — normally a `Grid` of `Stack`s of `Link`s.",
53
+ "control": {
54
+ "kind": "node",
55
+ "fixture": "children.text"
56
+ }
37
57
  }
38
58
  ],
39
59
  "typeReferences": [
@@ -12,14 +12,22 @@
12
12
  "type": "ReactNode",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Numerator."
15
+ "description": "Numerator.",
16
+ "control": {
17
+ "kind": "node",
18
+ "fixture": "children.text"
19
+ }
16
20
  },
17
21
  {
18
22
  "name": "under",
19
23
  "type": "ReactNode",
20
24
  "required": true,
21
25
  "defaultValue": null,
22
- "description": "Denominator."
26
+ "description": "Denominator.",
27
+ "control": {
28
+ "kind": "node",
29
+ "fixture": "children.text"
30
+ }
23
31
  }
24
32
  ],
25
33
  "typeReferences": [],
@@ -12,21 +12,35 @@
12
12
  "type": "string",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
- "description": "Status copy shown under the pixel grid while the model has nothing else to show."
15
+ "description": "Status copy shown under the pixel grid while the model has nothing else to show.",
16
+ "control": {
17
+ "kind": "string"
18
+ }
16
19
  },
17
20
  {
18
21
  "name": "tick",
19
22
  "type": "number",
20
23
  "required": true,
21
24
  "defaultValue": null,
22
- "description": "Animation clock that advances the pixel pattern and the elapsed seconds counter."
25
+ "description": "Animation clock that advances the pixel pattern and the elapsed seconds counter.",
26
+ "control": {
27
+ "kind": "number"
28
+ }
23
29
  },
24
30
  {
25
31
  "name": "variant",
26
32
  "type": "\"dots\" | \"squares\" | \"rounded\"",
27
33
  "required": false,
28
34
  "defaultValue": "dots",
29
- "description": "Cell shape of the pixel matrix."
35
+ "description": "Cell shape of the pixel matrix.",
36
+ "control": {
37
+ "kind": "enum",
38
+ "members": [
39
+ "dots",
40
+ "squares",
41
+ "rounded"
42
+ ]
43
+ }
30
44
  }
31
45
  ],
32
46
  "typeReferences": [