@cueplusplus/ui 0.9.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.
- package/CHANGELOG.md +195 -0
- package/README.md +91 -9
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -2
- package/dist/instruments/meter.d.ts +5 -1
- package/dist/layout/bento.d.ts +144 -0
- package/dist/layout/bento.js +266 -0
- package/dist/layout/index.d.ts +3 -2
- package/dist/layout/index.js +3 -2
- package/dist/primitives/button.d.ts +12 -0
- package/dist/primitives/chip.d.ts +1 -1
- package/dist/system/index.d.ts +2 -2
- package/dist/system/index.js +2 -1
- package/dist/system/overrides.d.ts +38 -1
- package/dist/system/overrides.js +40 -1
- package/manifest/components/accordion.json +24 -6
- package/manifest/components/activity-graph.json +20 -5
- package/manifest/components/agent-card.json +37 -9
- package/manifest/components/agent-handoff.json +21 -5
- package/manifest/components/agent-mode-badge.json +22 -4
- package/manifest/components/agent-pile.json +38 -8
- package/manifest/components/agent-plan.json +9 -2
- package/manifest/components/agent-status.json +17 -3
- package/manifest/components/agent-surface.json +26 -11
- package/manifest/components/alert-dialog.json +29 -5
- package/manifest/components/animated-number.json +14 -6
- package/manifest/components/app-bar.json +66 -13
- package/manifest/components/app-shell.json +133 -31
- package/manifest/components/app-window-frame.json +28 -6
- package/manifest/components/approval-card.json +37 -7
- package/manifest/components/artifact-card.json +16 -4
- package/manifest/components/ask-box.json +99 -21
- package/manifest/components/audience-icon.json +1 -7
- package/manifest/components/autocomplete.json +80 -18
- package/manifest/components/avatar-group.json +13 -2
- package/manifest/components/avatar.json +22 -4
- package/manifest/components/background-inbox.json +9 -2
- package/manifest/components/bento.json +306 -0
- package/manifest/components/branch-picker.json +29 -7
- package/manifest/components/breadcrumb.json +13 -3
- package/manifest/components/button-group.json +21 -4
- package/manifest/components/button.json +41 -4
- package/manifest/components/canvas-split-body.json +4 -1
- package/manifest/components/canvas-split-header.json +17 -4
- package/manifest/components/canvas-split-line.json +4 -1
- package/manifest/components/canvas-split-message.json +8 -1
- package/manifest/components/card.json +14 -3
- package/manifest/components/carousel.json +54 -12
- package/manifest/components/catalogue-icon.json +1 -7
- package/manifest/components/channel-beta-icon.json +1 -7
- package/manifest/components/channel-matrix.json +80 -15
- package/manifest/components/channel-released-icon.json +1 -7
- package/manifest/components/chart-container.json +26 -10
- package/manifest/components/chart-ramp.json +13 -3
- package/manifest/components/chart-swatch.json +9 -2
- package/manifest/components/chart-tooltip-content.json +31 -7
- package/manifest/components/chart.json +30 -6
- package/manifest/components/chat-panel-composer.json +9 -2
- package/manifest/components/checkbox-group.json +4 -2
- package/manifest/components/checkbox.json +17 -4
- package/manifest/components/checkpoint-history.json +13 -3
- package/manifest/components/chip.json +35 -5
- package/manifest/components/clamp.json +30 -7
- package/manifest/components/cli-tool-icon.json +1 -7
- package/manifest/components/code-diff.json +20 -5
- package/manifest/components/code-runner.json +32 -6
- package/manifest/components/collapsible.json +16 -4
- package/manifest/components/color-area.json +4 -1
- package/manifest/components/color-field.json +13 -3
- package/manifest/components/color-picker.json +75 -17
- package/manifest/components/color-slider.json +12 -3
- package/manifest/components/color-swatch.json +13 -2
- package/manifest/components/colors-section.json +8 -4
- package/manifest/components/combobox.json +81 -18
- package/manifest/components/command-palette.json +57 -13
- package/manifest/components/compaction-row.json +35 -7
- package/manifest/components/comparison-card.json +17 -4
- package/manifest/components/composer-attachment-chip.json +9 -2
- package/manifest/components/composer-bar.json +4 -1
- package/manifest/components/composer-command-item.json +8 -2
- package/manifest/components/composer-context.json +4 -1
- package/manifest/components/composer-input.json +5 -1
- package/manifest/components/composer-menu-item.json +4 -1
- package/manifest/components/composer-menu.json +12 -2
- package/manifest/components/composer-model-item.json +8 -2
- package/manifest/components/composer-model-trigger.json +8 -2
- package/manifest/components/composer-person-item.json +8 -2
- package/manifest/components/composer-send.json +8 -2
- package/manifest/components/composer-voice-button.json +4 -1
- package/manifest/components/composer-voice.json +8 -2
- package/manifest/components/composer.json +76 -17
- package/manifest/components/computer-use.json +17 -4
- package/manifest/components/confidence-marker.json +13 -3
- package/manifest/components/connection-state.json +23 -4
- package/manifest/components/container.json +14 -2
- package/manifest/components/context-breakdown.json +8 -2
- package/manifest/components/context-menu.json +16 -4
- package/manifest/components/context-usage.json +16 -4
- package/manifest/components/conversation-search.json +22 -5
- package/manifest/components/copy-button.json +32 -7
- package/manifest/components/cost-meter.json +12 -3
- package/manifest/components/cue-logotype.json +17 -3
- package/manifest/components/cue-mark.json +17 -3
- package/manifest/components/cue-portal-frame.json +13 -3
- package/manifest/components/data-row.json +21 -7
- package/manifest/components/data-table-pagination.json +18 -4
- package/manifest/components/data-table-toolbar.json +30 -7
- package/manifest/components/data-tree.json +42 -9
- package/manifest/components/date-field.json +13 -2
- package/manifest/components/date-picker.json +81 -19
- package/manifest/components/date-range-picker.json +81 -19
- package/manifest/components/day-separator.json +4 -1
- package/manifest/components/delegation-card.json +64 -12
- package/manifest/components/density.json +24 -4
- package/manifest/components/description-list.json +8 -1
- package/manifest/components/diagram.json +33 -7
- package/manifest/components/dialog.json +29 -6
- package/manifest/components/disclosure.json +31 -7
- package/manifest/components/dmx-bar.json +16 -4
- package/manifest/components/dmx-strip.json +20 -5
- package/manifest/components/document-reference.json +21 -5
- package/manifest/components/draft-restore.json +18 -4
- package/manifest/components/drawer.json +30 -6
- package/manifest/components/dropdown-menu.json +55 -10
- package/manifest/components/edit-message.json +32 -7
- package/manifest/components/elements-command-palette.json +27 -6
- package/manifest/components/elements-data-table.json +9 -2
- package/manifest/components/elements-timeline.json +8 -2
- package/manifest/components/elicitation-form.json +31 -6
- package/manifest/components/empty-state-composer.json +9 -2
- package/manifest/components/empty-state-suggestion.json +4 -1
- package/manifest/components/empty-state.json +25 -5
- package/manifest/components/end-of-turn-summary.json +16 -4
- package/manifest/components/env-var-input.json +54 -12
- package/manifest/components/error-state.json +17 -4
- package/manifest/components/export-dialog.json +27 -8
- package/manifest/components/eyebrow.json +4 -1
- package/manifest/components/feedback-dialog.json +33 -7
- package/manifest/components/field-description.json +4 -1
- package/manifest/components/field-error.json +13 -3
- package/manifest/components/field-label.json +4 -1
- package/manifest/components/field.json +4 -1
- package/manifest/components/file-tree.json +16 -4
- package/manifest/components/file-upload.json +58 -13
- package/manifest/components/flow-graph.json +12 -3
- package/manifest/components/folder-icon.json +1 -7
- package/manifest/components/footer.json +24 -4
- package/manifest/components/frac.json +10 -2
- package/manifest/components/generation-loader.json +17 -3
- package/manifest/components/generative-ui.json +39 -7
- package/manifest/components/grid.json +56 -5
- package/manifest/components/group-bar.json +25 -6
- package/manifest/components/guardrail-notice.json +22 -5
- package/manifest/components/hover-card.json +45 -8
- package/manifest/components/icon-button.json +22 -4
- package/manifest/components/image-generation.json +8 -2
- package/manifest/components/info-tip.json +42 -7
- package/manifest/components/inline-citation.json +14 -3
- package/manifest/components/input-group.json +24 -5
- package/manifest/components/input.json +13 -3
- package/manifest/components/item.json +42 -8
- package/manifest/components/job-progress.json +25 -6
- package/manifest/components/launcher-bubble.json +32 -7
- package/manifest/components/ledger.json +87 -19
- package/manifest/components/link.json +16 -3
- package/manifest/components/live-region-announcer.json +21 -5
- package/manifest/components/log-viewer.json +42 -10
- package/manifest/components/map-answer.json +17 -4
- package/manifest/components/markdown-text.json +36 -5
- package/manifest/components/math-block.json +12 -3
- package/manifest/components/mcp-server-icon.json +1 -7
- package/manifest/components/mcp-server-panel.json +18 -4
- package/manifest/components/memory-chips.json +9 -2
- package/manifest/components/menubar.json +33 -7
- package/manifest/components/message-actions.json +32 -7
- package/manifest/components/message-attachments.json +9 -2
- package/manifest/components/message-branches.json +14 -3
- package/manifest/components/message-list.json +27 -6
- package/manifest/components/message-pair.json +25 -5
- package/manifest/components/message-queue.json +13 -3
- package/manifest/components/message-timing.json +8 -2
- package/manifest/components/message.json +41 -9
- package/manifest/components/meter.json +43 -7
- package/manifest/components/mobile-composer.json +47 -10
- package/manifest/components/model-picker.json +13 -3
- package/manifest/components/multi-select.json +78 -17
- package/manifest/components/musical-time-input.json +34 -8
- package/manifest/components/navigation-menu.json +54 -12
- package/manifest/components/node-card.json +42 -7
- package/manifest/components/node-handle.json +17 -2
- package/manifest/components/number-field.json +28 -6
- package/manifest/components/number-ticker.json +8 -2
- package/manifest/components/onboarding.json +18 -4
- package/manifest/components/otp-field.json +43 -10
- package/manifest/components/page-shell.json +35 -6
- package/manifest/components/pagination.json +21 -5
- package/manifest/components/panel-header.json +15 -3
- package/manifest/components/password-input.json +38 -8
- package/manifest/components/permission-grant.json +28 -5
- package/manifest/components/permission-scopes.json +57 -12
- package/manifest/components/piano-keyboard.json +38 -9
- package/manifest/components/plussie.json +34 -5
- package/manifest/components/popover.json +45 -8
- package/manifest/components/preset-section.json +12 -5
- package/manifest/components/progress.json +25 -6
- package/manifest/components/prompt-library.json +27 -6
- package/manifest/components/queue-dock.json +36 -8
- package/manifest/components/quota-banner.json +25 -6
- package/manifest/components/quote-reply.json +29 -7
- package/manifest/components/radio-group.json +12 -2
- package/manifest/components/radio.json +17 -3
- package/manifest/components/rating.json +60 -13
- package/manifest/components/read-aloud.json +35 -8
- package/manifest/components/reasoning-effort.json +17 -4
- package/manifest/components/reasoning-panel.json +33 -8
- package/manifest/components/recommendation-card.json +35 -10
- package/manifest/components/regenerate-menu.json +22 -5
- package/manifest/components/replay-player.json +29 -7
- package/manifest/components/research-report.json +12 -3
- package/manifest/components/resizable.json +4 -1
- package/manifest/components/retrieval-chunks.json +16 -4
- package/manifest/components/revert-dock.json +61 -14
- package/manifest/components/reviewable-diff.json +23 -5
- package/manifest/components/risk-badge.json +18 -3
- package/manifest/components/row.json +17 -4
- package/manifest/components/schedule-card.json +25 -6
- package/manifest/components/score-breakdown.json +20 -5
- package/manifest/components/scroll-anchor.json +13 -3
- package/manifest/components/scroll-area.json +31 -8
- package/manifest/components/scrollable-tabs-list.json +12 -4
- package/manifest/components/scrub-input.json +84 -18
- package/manifest/components/seam-cell.json +19 -3
- package/manifest/components/seam-grid.json +12 -3
- package/manifest/components/search-input.json +49 -10
- package/manifest/components/section-header.json +36 -8
- package/manifest/components/segmented-control.json +50 -11
- package/manifest/components/select.json +74 -16
- package/manifest/components/separator.json +4 -1
- package/manifest/components/settings-panel.json +41 -9
- package/manifest/components/shape-section.json +8 -4
- package/manifest/components/shared-conversation.json +21 -5
- package/manifest/components/sheet.json +29 -6
- package/manifest/components/shimmer-label.json +4 -2
- package/manifest/components/sidebar.json +60 -13
- package/manifest/components/skill-icon.json +1 -7
- package/manifest/components/slider.json +22 -5
- package/manifest/components/sources.json +17 -4
- package/manifest/components/sparkline.json +17 -4
- package/manifest/components/speaker-identity.json +4 -1
- package/manifest/components/spec-sheet.json +16 -4
- package/manifest/components/spectrum-visualizer.json +41 -10
- package/manifest/components/spinner.json +12 -2
- package/manifest/components/stack-icon.json +1 -7
- package/manifest/components/stack.json +54 -7
- package/manifest/components/stacks-matrix-icon.json +1 -7
- package/manifest/components/stat.json +28 -4
- package/manifest/components/status-bar.json +50 -9
- package/manifest/components/status-dot.json +23 -4
- package/manifest/components/stepper.json +22 -5
- package/manifest/components/stopped-run.json +19 -4
- package/manifest/components/streaming-text.json +12 -3
- package/manifest/components/subagent-list.json +21 -5
- package/manifest/components/suggestions.json +27 -5
- package/manifest/components/swap-label.json +18 -4
- package/manifest/components/switch.json +18 -3
- package/manifest/components/table-scroll-region.json +4 -1
- package/manifest/components/table.json +54 -11
- package/manifest/components/tabs.json +16 -5
- package/manifest/components/tags-input.json +79 -17
- package/manifest/components/tail-status.json +37 -8
- package/manifest/components/terminal-block.json +25 -5
- package/manifest/components/terminal-frame.json +34 -8
- package/manifest/components/textarea.json +8 -3
- package/manifest/components/theme-configurator.json +47 -11
- package/manifest/components/theme-provider.json +79 -15
- package/manifest/components/thinking-indicator.json +8 -2
- package/manifest/components/thread-list.json +13 -3
- package/manifest/components/thread-search.json +22 -5
- package/manifest/components/threshold-rail.json +77 -14
- package/manifest/components/time-boundary.json +8 -2
- package/manifest/components/time-field.json +13 -2
- package/manifest/components/timeline-ruler.json +51 -12
- package/manifest/components/timeline.json +19 -3
- package/manifest/components/title-bar.json +19 -4
- package/manifest/components/toast.json +12 -3
- package/manifest/components/todo-list.json +8 -2
- package/manifest/components/toggle-group.json +33 -7
- package/manifest/components/toggle.json +23 -4
- package/manifest/components/token-editor.json +26 -7
- package/manifest/components/tool-call-card.json +83 -16
- package/manifest/components/tool-call.json +37 -9
- package/manifest/components/tool-error.json +34 -8
- package/manifest/components/tool-group.json +17 -4
- package/manifest/components/tool-timeline.json +37 -9
- package/manifest/components/toolbar.json +37 -8
- package/manifest/components/tooltip.json +41 -7
- package/manifest/components/trace-waterfall.json +12 -3
- package/manifest/components/tree-visibility-toggle.json +18 -3
- package/manifest/components/tree.json +52 -11
- package/manifest/components/turn-footer.json +36 -8
- package/manifest/components/two-step-button.json +46 -9
- package/manifest/components/typing-indicator.json +8 -1
- package/manifest/components/universe-grid.json +37 -10
- package/manifest/components/unread-divider.json +4 -1
- package/manifest/components/usage-chart.json +46 -9
- package/manifest/components/verdict-row.json +20 -5
- package/manifest/components/voice-conversation.json +37 -7
- package/manifest/components/web-preview.json +23 -5
- package/manifest/components/web-search.json +20 -5
- package/manifest/components/work-collapse.json +30 -7
- package/manifest/fixtures.json +106 -0
- package/manifest/manifest.json +315 -297
- package/manifest/tokens.json +2 -2
- package/package.json +7 -6
|
@@ -14,49 +14,74 @@
|
|
|
14
14
|
"type": "boolean",
|
|
15
15
|
"required": true,
|
|
16
16
|
"defaultValue": null,
|
|
17
|
-
"description": "Whether the panel is showing. The trigger icon crossfades either way."
|
|
17
|
+
"description": "Whether the panel is showing. The trigger icon crossfades either way.",
|
|
18
|
+
"control": {
|
|
19
|
+
"kind": "boolean"
|
|
20
|
+
}
|
|
18
21
|
},
|
|
19
22
|
{
|
|
20
23
|
"name": "unread",
|
|
21
24
|
"type": "number",
|
|
22
25
|
"required": true,
|
|
23
26
|
"defaultValue": null,
|
|
24
|
-
"description": "Badge count on the closed bubble. Hidden at zero and while open."
|
|
27
|
+
"description": "Badge count on the closed bubble. Hidden at zero and while open.",
|
|
28
|
+
"control": {
|
|
29
|
+
"kind": "number"
|
|
30
|
+
}
|
|
25
31
|
},
|
|
26
32
|
{
|
|
27
33
|
"name": "greeting",
|
|
28
34
|
"type": "string",
|
|
29
35
|
"required": true,
|
|
30
36
|
"defaultValue": null,
|
|
31
|
-
"description": "Opening line in the panel."
|
|
37
|
+
"description": "Opening line in the panel.",
|
|
38
|
+
"control": {
|
|
39
|
+
"kind": "string"
|
|
40
|
+
}
|
|
32
41
|
},
|
|
33
42
|
{
|
|
34
43
|
"name": "prompts",
|
|
35
44
|
"type": "readonly string[]",
|
|
36
45
|
"required": true,
|
|
37
46
|
"defaultValue": null,
|
|
38
|
-
"description": "Ways in, so the first message does not have to be invented."
|
|
47
|
+
"description": "Ways in, so the first message does not have to be invented.",
|
|
48
|
+
"control": {
|
|
49
|
+
"kind": "array",
|
|
50
|
+
"fixture": "agent.transcript"
|
|
51
|
+
}
|
|
39
52
|
},
|
|
40
53
|
{
|
|
41
54
|
"name": "onToggle",
|
|
42
55
|
"type": "(() => void)",
|
|
43
56
|
"required": false,
|
|
44
57
|
"defaultValue": null,
|
|
45
|
-
"description": "Called when the bubble is pressed."
|
|
58
|
+
"description": "Called when the bubble is pressed.",
|
|
59
|
+
"control": {
|
|
60
|
+
"kind": "callback",
|
|
61
|
+
"fixture": "callback.log"
|
|
62
|
+
}
|
|
46
63
|
},
|
|
47
64
|
{
|
|
48
65
|
"name": "onPick",
|
|
49
66
|
"type": "((prompt: string) => void)",
|
|
50
67
|
"required": false,
|
|
51
68
|
"defaultValue": null,
|
|
52
|
-
"description": "Called when a starter prompt is chosen."
|
|
69
|
+
"description": "Called when a starter prompt is chosen.",
|
|
70
|
+
"control": {
|
|
71
|
+
"kind": "callback",
|
|
72
|
+
"fixture": "callback.log"
|
|
73
|
+
}
|
|
53
74
|
},
|
|
54
75
|
{
|
|
55
76
|
"name": "onStart",
|
|
56
77
|
"type": "(() => void)",
|
|
57
78
|
"required": false,
|
|
58
79
|
"defaultValue": null,
|
|
59
|
-
"description": "Called from the Start a conversation action, for opening an empty thread."
|
|
80
|
+
"description": "Called from the Start a conversation action, for opening an empty thread.",
|
|
81
|
+
"control": {
|
|
82
|
+
"kind": "callback",
|
|
83
|
+
"fixture": "callback.log"
|
|
84
|
+
}
|
|
60
85
|
}
|
|
61
86
|
],
|
|
62
87
|
"typeReferences": [
|
|
@@ -25,7 +25,10 @@
|
|
|
25
25
|
"type": "boolean",
|
|
26
26
|
"required": false,
|
|
27
27
|
"defaultValue": "true",
|
|
28
|
-
"description": "Make the ledger a size container, so a caller's `@container` rules shed\ncolumns against the *pane* rather than the viewport. Defaults to `true`.\n\nThis is the difference between a list that sheds a column when the window\nnarrows and one that also sheds it when a detail drawer opens beside it and\ntakes half the pane — which is the same visual problem and, without a\ncontainer, an entirely separate piece of code. Switch it off only when an\nancestor is already the container the rules name; nesting containers moves\nwhich one a bare `@container` query resolves against."
|
|
28
|
+
"description": "Make the ledger a size container, so a caller's `@container` rules shed\ncolumns against the *pane* rather than the viewport. Defaults to `true`.\n\nThis is the difference between a list that sheds a column when the window\nnarrows and one that also sheds it when a detail drawer opens beside it and\ntakes half the pane — which is the same visual problem and, without a\ncontainer, an entirely separate piece of code. Switch it off only when an\nancestor is already the container the rules name; nesting containers moves\nwhich one a bare `@container` query resolves against.",
|
|
29
|
+
"control": {
|
|
30
|
+
"kind": "boolean"
|
|
31
|
+
}
|
|
29
32
|
}
|
|
30
33
|
],
|
|
31
34
|
"typeReferences": [
|
|
@@ -42,63 +45,100 @@
|
|
|
42
45
|
"type": "ReactNode",
|
|
43
46
|
"required": false,
|
|
44
47
|
"defaultValue": null,
|
|
45
|
-
"description": "The tier's name. Omitted, the tier draws no heading and reserves no space\nfor one — which is how a single unnamed run of rows uses the same component\nas a grouped one."
|
|
48
|
+
"description": "The tier's name. Omitted, the tier draws no heading and reserves no space\nfor one — which is how a single unnamed run of rows uses the same component\nas a grouped one.",
|
|
49
|
+
"control": {
|
|
50
|
+
"kind": "node",
|
|
51
|
+
"fixture": "children.text"
|
|
52
|
+
}
|
|
46
53
|
},
|
|
47
54
|
{
|
|
48
55
|
"name": "count",
|
|
49
56
|
"type": "number",
|
|
50
57
|
"required": false,
|
|
51
58
|
"defaultValue": null,
|
|
52
|
-
"description": "How many rows the tier holds, printed beside its name."
|
|
59
|
+
"description": "How many rows the tier holds, printed beside its name.",
|
|
60
|
+
"control": {
|
|
61
|
+
"kind": "number"
|
|
62
|
+
}
|
|
53
63
|
},
|
|
54
64
|
{
|
|
55
65
|
"name": "sticky",
|
|
56
66
|
"type": "boolean",
|
|
57
67
|
"required": false,
|
|
58
68
|
"defaultValue": "true",
|
|
59
|
-
"description": "Dock the heading to the top of the scroll container while the tier's rows\nscroll past. Defaults to `true`."
|
|
69
|
+
"description": "Dock the heading to the top of the scroll container while the tier's rows\nscroll past. Defaults to `true`.",
|
|
70
|
+
"control": {
|
|
71
|
+
"kind": "boolean"
|
|
72
|
+
}
|
|
60
73
|
},
|
|
61
74
|
{
|
|
62
75
|
"name": "headingLevel",
|
|
63
76
|
"type": "4 | 2 | 3",
|
|
64
77
|
"required": false,
|
|
65
78
|
"defaultValue": "2",
|
|
66
|
-
"description": "Which heading element the tier's name is. Defaults to `2`.\n\nThe outline is the navigation: a screen-reader user moves through a long\nledger by heading, so the levels have to describe the real nesting of the\npage the ledger sits in, not the ledger's own idea of itself."
|
|
79
|
+
"description": "Which heading element the tier's name is. Defaults to `2`.\n\nThe outline is the navigation: a screen-reader user moves through a long\nledger by heading, so the levels have to describe the real nesting of the\npage the ledger sits in, not the ledger's own idea of itself.",
|
|
80
|
+
"control": {
|
|
81
|
+
"kind": "enum",
|
|
82
|
+
"members": [
|
|
83
|
+
4,
|
|
84
|
+
2,
|
|
85
|
+
3
|
|
86
|
+
],
|
|
87
|
+
"min": 2,
|
|
88
|
+
"max": 4
|
|
89
|
+
}
|
|
67
90
|
},
|
|
68
91
|
{
|
|
69
92
|
"name": "note",
|
|
70
93
|
"type": "ReactNode",
|
|
71
94
|
"required": false,
|
|
72
95
|
"defaultValue": null,
|
|
73
|
-
"description": "A qualifier printed after the name — a date, a source, a state."
|
|
96
|
+
"description": "A qualifier printed after the name — a date, a source, a state.",
|
|
97
|
+
"control": {
|
|
98
|
+
"kind": "node",
|
|
99
|
+
"fixture": "children.text"
|
|
100
|
+
}
|
|
74
101
|
},
|
|
75
102
|
{
|
|
76
103
|
"name": "collapsible",
|
|
77
104
|
"type": "boolean",
|
|
78
105
|
"required": false,
|
|
79
106
|
"defaultValue": "false",
|
|
80
|
-
"description": "Put a disclosure in the tier's heading that folds its rows away. Defaults\nto `false`, and a tier with no `heading` has nothing to fold from, so it\nignores this and renders as it always has.\n\n**This is the accordion pattern, not the tree pattern.** What folds is the\nheading — a *place* — and the `<h2>` stays exactly where it was with a real\n`<button aria-expanded aria-controls>` inside it. The rows below are hidden\nwhile it is shut, which takes them out of the accessibility tree and out of\nthe layout but keeps whatever state they hold. If what you are folding is a\n*row*, and the thing under it is that row's children rather than that\nplace's contents, you want `DataTree` and its `treeitem` semantics instead."
|
|
107
|
+
"description": "Put a disclosure in the tier's heading that folds its rows away. Defaults\nto `false`, and a tier with no `heading` has nothing to fold from, so it\nignores this and renders as it always has.\n\n**This is the accordion pattern, not the tree pattern.** What folds is the\nheading — a *place* — and the `<h2>` stays exactly where it was with a real\n`<button aria-expanded aria-controls>` inside it. The rows below are hidden\nwhile it is shut, which takes them out of the accessibility tree and out of\nthe layout but keeps whatever state they hold. If what you are folding is a\n*row*, and the thing under it is that row's children rather than that\nplace's contents, you want `DataTree` and its `treeitem` semantics instead.",
|
|
108
|
+
"control": {
|
|
109
|
+
"kind": "boolean"
|
|
110
|
+
}
|
|
81
111
|
},
|
|
82
112
|
{
|
|
83
113
|
"name": "expanded",
|
|
84
114
|
"type": "boolean",
|
|
85
115
|
"required": false,
|
|
86
116
|
"defaultValue": null,
|
|
87
|
-
"description": "Whether the tier is open, when the caller owns the state.\n\n**Persistence is the caller's.** Which places a reader has folded is a fact\nabout the reader, not about the list, and it belongs wherever that consumer\nkeeps the rest of them — `localStorage`, a URL, a profile. This library\nstores nothing. Pass this with {@link LedgerTierProps.onExpandedChange};\nomit both and the tier keeps its own state from\n{@link LedgerTierProps.defaultExpanded}. Ignored unless `collapsible`."
|
|
117
|
+
"description": "Whether the tier is open, when the caller owns the state.\n\n**Persistence is the caller's.** Which places a reader has folded is a fact\nabout the reader, not about the list, and it belongs wherever that consumer\nkeeps the rest of them — `localStorage`, a URL, a profile. This library\nstores nothing. Pass this with {@link LedgerTierProps.onExpandedChange};\nomit both and the tier keeps its own state from\n{@link LedgerTierProps.defaultExpanded}. Ignored unless `collapsible`.",
|
|
118
|
+
"control": {
|
|
119
|
+
"kind": "boolean"
|
|
120
|
+
}
|
|
88
121
|
},
|
|
89
122
|
{
|
|
90
123
|
"name": "defaultExpanded",
|
|
91
124
|
"type": "boolean",
|
|
92
125
|
"required": false,
|
|
93
126
|
"defaultValue": "true",
|
|
94
|
-
"description": "Whether an uncontrolled tier starts open. Defaults to `true`.\n\nOpen, because a ledger whose content is folded away on first paint has\nhidden the thing the reader came for; the reader folds what they are done\nwith. Ignored unless `collapsible`, and ignored entirely once\n{@link LedgerTierProps.expanded} is passed."
|
|
127
|
+
"description": "Whether an uncontrolled tier starts open. Defaults to `true`.\n\nOpen, because a ledger whose content is folded away on first paint has\nhidden the thing the reader came for; the reader folds what they are done\nwith. Ignored unless `collapsible`, and ignored entirely once\n{@link LedgerTierProps.expanded} is passed.",
|
|
128
|
+
"control": {
|
|
129
|
+
"kind": "boolean"
|
|
130
|
+
}
|
|
95
131
|
},
|
|
96
132
|
{
|
|
97
133
|
"name": "onExpandedChange",
|
|
98
134
|
"type": "((expanded: boolean) => void)",
|
|
99
135
|
"required": false,
|
|
100
136
|
"defaultValue": null,
|
|
101
|
-
"description": "Called with the tier's next state each time the reader presses the\ndisclosure — `true` when it is being opened, `false` when it is being shut.\n\nFires in both the controlled and the uncontrolled form, so a consumer can\nrecord what was folded without also having to own the state."
|
|
137
|
+
"description": "Called with the tier's next state each time the reader presses the\ndisclosure — `true` when it is being opened, `false` when it is being shut.\n\nFires in both the controlled and the uncontrolled form, so a consumer can\nrecord what was folded without also having to own the state.",
|
|
138
|
+
"control": {
|
|
139
|
+
"kind": "callback",
|
|
140
|
+
"fixture": "callback.log"
|
|
141
|
+
}
|
|
102
142
|
}
|
|
103
143
|
],
|
|
104
144
|
"typeReferences": [
|
|
@@ -115,49 +155,78 @@
|
|
|
115
155
|
"type": "ReactNode",
|
|
116
156
|
"required": false,
|
|
117
157
|
"defaultValue": null,
|
|
118
|
-
"description": "The group's slug, printed in the left gutter.\n\nOmitted, the group is a plain block: no gutter, no heading, no indent. A\ngrouped list that has one unnamed run in it should not pay a 7rem empty\ncolumn for it, and an empty gutter reads as a missing label rather than as\nan absent one."
|
|
158
|
+
"description": "The group's slug, printed in the left gutter.\n\nOmitted, the group is a plain block: no gutter, no heading, no indent. A\ngrouped list that has one unnamed run in it should not pay a 7rem empty\ncolumn for it, and an empty gutter reads as a missing label rather than as\nan absent one.",
|
|
159
|
+
"control": {
|
|
160
|
+
"kind": "node",
|
|
161
|
+
"fixture": "children.text"
|
|
162
|
+
}
|
|
119
163
|
},
|
|
120
164
|
{
|
|
121
165
|
"name": "headingLevel",
|
|
122
166
|
"type": "4 | 3",
|
|
123
167
|
"required": false,
|
|
124
168
|
"defaultValue": "3",
|
|
125
|
-
"description": "Which heading element the slug is. Defaults to `3`."
|
|
169
|
+
"description": "Which heading element the slug is. Defaults to `3`.",
|
|
170
|
+
"control": {
|
|
171
|
+
"kind": "enum",
|
|
172
|
+
"members": [
|
|
173
|
+
4,
|
|
174
|
+
3
|
|
175
|
+
],
|
|
176
|
+
"min": 3,
|
|
177
|
+
"max": 4
|
|
178
|
+
}
|
|
126
179
|
},
|
|
127
180
|
{
|
|
128
181
|
"name": "sticky",
|
|
129
182
|
"type": "boolean",
|
|
130
183
|
"required": false,
|
|
131
184
|
"defaultValue": "true",
|
|
132
|
-
"description": "Dock the slug under the tier heading while the group's rows scroll past.\nDefaults to `true`.\n\nThe offset is a custom property, `--cue-ledger-slug-top` (default `2.5rem`):\nhow far down the slug docks depends on how tall the tier heading above it\nrenders, which is a function of the density and the type the *caller*\nconfigured. Set it on the ledger — `className=\"[--cue-ledger-slug-top:2rem]\"` —\nrather than measuring at runtime."
|
|
185
|
+
"description": "Dock the slug under the tier heading while the group's rows scroll past.\nDefaults to `true`.\n\nThe offset is a custom property, `--cue-ledger-slug-top` (default `2.5rem`):\nhow far down the slug docks depends on how tall the tier heading above it\nrenders, which is a function of the density and the type the *caller*\nconfigured. Set it on the ledger — `className=\"[--cue-ledger-slug-top:2rem]\"` —\nrather than measuring at runtime.",
|
|
186
|
+
"control": {
|
|
187
|
+
"kind": "boolean"
|
|
188
|
+
}
|
|
133
189
|
},
|
|
134
190
|
{
|
|
135
191
|
"name": "collapsible",
|
|
136
192
|
"type": "boolean",
|
|
137
193
|
"required": false,
|
|
138
194
|
"defaultValue": "false",
|
|
139
|
-
"description": "Put a disclosure in the group's slug that folds its rows away. Defaults to\n`false`, and an unlabelled group has no slug to fold from, so it ignores\nthis. The same accordion pattern the tier takes — see\n{@link LedgerTierProps.collapsible} for why it is not the tree pattern."
|
|
195
|
+
"description": "Put a disclosure in the group's slug that folds its rows away. Defaults to\n`false`, and an unlabelled group has no slug to fold from, so it ignores\nthis. The same accordion pattern the tier takes — see\n{@link LedgerTierProps.collapsible} for why it is not the tree pattern.",
|
|
196
|
+
"control": {
|
|
197
|
+
"kind": "boolean"
|
|
198
|
+
}
|
|
140
199
|
},
|
|
141
200
|
{
|
|
142
201
|
"name": "expanded",
|
|
143
202
|
"type": "boolean",
|
|
144
203
|
"required": false,
|
|
145
204
|
"defaultValue": null,
|
|
146
|
-
"description": "Whether the group is open, when the caller owns the state. Persistence is\nthe caller's; see {@link LedgerTierProps.expanded}."
|
|
205
|
+
"description": "Whether the group is open, when the caller owns the state. Persistence is\nthe caller's; see {@link LedgerTierProps.expanded}.",
|
|
206
|
+
"control": {
|
|
207
|
+
"kind": "boolean"
|
|
208
|
+
}
|
|
147
209
|
},
|
|
148
210
|
{
|
|
149
211
|
"name": "defaultExpanded",
|
|
150
212
|
"type": "boolean",
|
|
151
213
|
"required": false,
|
|
152
214
|
"defaultValue": "true",
|
|
153
|
-
"description": "Whether an uncontrolled group starts open. Defaults to `true`."
|
|
215
|
+
"description": "Whether an uncontrolled group starts open. Defaults to `true`.",
|
|
216
|
+
"control": {
|
|
217
|
+
"kind": "boolean"
|
|
218
|
+
}
|
|
154
219
|
},
|
|
155
220
|
{
|
|
156
221
|
"name": "onExpandedChange",
|
|
157
222
|
"type": "((expanded: boolean) => void)",
|
|
158
223
|
"required": false,
|
|
159
224
|
"defaultValue": null,
|
|
160
|
-
"description": "Called with the group's next state each time the reader presses the slug."
|
|
225
|
+
"description": "Called with the group's next state each time the reader presses the slug.",
|
|
226
|
+
"control": {
|
|
227
|
+
"kind": "callback",
|
|
228
|
+
"fixture": "callback.log"
|
|
229
|
+
}
|
|
161
230
|
}
|
|
162
231
|
],
|
|
163
232
|
"typeReferences": [
|
|
@@ -179,7 +248,6 @@
|
|
|
179
248
|
"tokensUsed": [
|
|
180
249
|
"--cue-accent",
|
|
181
250
|
"--cue-bg",
|
|
182
|
-
"--cue-data-row-cols",
|
|
183
251
|
"--cue-fg",
|
|
184
252
|
"--cue-fg-subtle",
|
|
185
253
|
"--cue-font-mono",
|
|
@@ -245,7 +313,7 @@
|
|
|
245
313
|
"Ledger"
|
|
246
314
|
],
|
|
247
315
|
"code": "<Panel className=\"w-full\">\n <div className=\"max-h-[18rem] overflow-y-auto\">\n <Ledger.Root className={PATCH_TRACKS}>\n <Ledger.Tier heading=\"Patch\" count={PATCH_DEVICES.length} note=\"polled 18:04\">\n {PATCH_GROUPS.map((group) => (\n <Ledger.Group key={group.id} label={group.label}>\n {group.rows.map((device) => (\n <DataRow.Root key={device.id} interactive>\n <PatchRowSlots device={device} />\n </DataRow.Root>\n ))}\n </Ledger.Group>\n ))}\n <Ledger.Group label=\"spare\">\n <Ledger.Empty>Nothing yet.</Ledger.Empty>\n </Ledger.Group>\n </Ledger.Tier>\n </Ledger.Root>\n </div>\n</Panel>",
|
|
248
|
-
"note": "The same rows as tiers and slugs: sticky headings, a gutter for the group name, and no disclosure
|
|
316
|
+
"note": "The same rows as tiers and slugs: sticky headings, a gutter for the group name, and no disclosure until a heading is asked for one — this bench asks for none, so the whole surface stays static markup. The bench below it asks.",
|
|
249
317
|
"interaction": "the tier heading and the group slug dock as the rows scroll under them; scroll the pane to see it."
|
|
250
318
|
},
|
|
251
319
|
{
|
|
@@ -12,21 +12,34 @@
|
|
|
12
12
|
"type": "boolean",
|
|
13
13
|
"required": false,
|
|
14
14
|
"defaultValue": "false",
|
|
15
|
-
"description": "Open in a new tab, mark the anchor `rel=\"noreferrer noopener\"` and append a\n`↗`. The glyph is not decoration: a link that replaces the user's context\nwithout warning is a WCAG 3.2.5 failure, and the arrow is the warning."
|
|
15
|
+
"description": "Open in a new tab, mark the anchor `rel=\"noreferrer noopener\"` and append a\n`↗`. The glyph is not decoration: a link that replaces the user's context\nwithout warning is a WCAG 3.2.5 failure, and the arrow is the warning.",
|
|
16
|
+
"control": {
|
|
17
|
+
"kind": "boolean"
|
|
18
|
+
}
|
|
16
19
|
},
|
|
17
20
|
{
|
|
18
21
|
"name": "render",
|
|
19
22
|
"type": "RenderProp<Record<string, unknown>>",
|
|
20
23
|
"required": false,
|
|
21
24
|
"defaultValue": null,
|
|
22
|
-
"description": "Replace the rendered element (Base UI render prop). Accepts an element —\n`render={<NextLink href=\"/x\" />}` — or a function returning one. This is\nhow the design system composes with a router without depending on one."
|
|
25
|
+
"description": "Replace the rendered element (Base UI render prop). Accepts an element —\n`render={<NextLink href=\"/x\" />}` — or a function returning one. This is\nhow the design system composes with a router without depending on one.",
|
|
26
|
+
"control": {
|
|
27
|
+
"kind": "opaque"
|
|
28
|
+
}
|
|
23
29
|
},
|
|
24
30
|
{
|
|
25
31
|
"name": "variant",
|
|
26
32
|
"type": "\"plain\" | \"underline\"",
|
|
27
33
|
"required": false,
|
|
28
34
|
"defaultValue": "plain",
|
|
29
|
-
"description": ""
|
|
35
|
+
"description": "",
|
|
36
|
+
"control": {
|
|
37
|
+
"kind": "enum",
|
|
38
|
+
"members": [
|
|
39
|
+
"plain",
|
|
40
|
+
"underline"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
30
43
|
}
|
|
31
44
|
],
|
|
32
45
|
"typeReferences": [
|
|
@@ -12,35 +12,51 @@
|
|
|
12
12
|
"type": "readonly string[]",
|
|
13
13
|
"required": true,
|
|
14
14
|
"defaultValue": null,
|
|
15
|
-
"description": "The log of things worth saying, oldest first. Everything that arrives at\nthe end of it after the announcer last looked is queued and read out in\norder.\n\nAn **append-only** list: the announcer remembers how much of it it has\nseen, so a list that is trimmed at the head loses the announcements that\nwere trimmed with it. Keep the run's log growing, or remount the announcer\nwith a new `key` when you start a new one."
|
|
15
|
+
"description": "The log of things worth saying, oldest first. Everything that arrives at\nthe end of it after the announcer last looked is queued and read out in\norder.\n\nAn **append-only** list: the announcer remembers how much of it it has\nseen, so a list that is trimmed at the head loses the announcements that\nwere trimmed with it. Keep the run's log growing, or remount the announcer\nwith a new `key` when you start a new one.",
|
|
16
|
+
"control": {
|
|
17
|
+
"kind": "array",
|
|
18
|
+
"fixture": "agent.transcript"
|
|
19
|
+
}
|
|
16
20
|
},
|
|
17
21
|
{
|
|
18
22
|
"name": "spacing",
|
|
19
23
|
"type": "number",
|
|
20
24
|
"required": false,
|
|
21
25
|
"defaultValue": "400",
|
|
22
|
-
"description": "Milliseconds between announcements. Defaults to `400`, the reference's own\nspacing, which is roughly how long a short phrase takes to speak.\n\nThis is the whole point of the component: a polite announcement that\narrives while another is being spoken replaces it, so an unspaced queue is\na queue most of which is never heard."
|
|
26
|
+
"description": "Milliseconds between announcements. Defaults to `400`, the reference's own\nspacing, which is roughly how long a short phrase takes to speak.\n\nThis is the whole point of the component: a polite announcement that\narrives while another is being spoken replaces it, so an unspaced queue is\na queue most of which is never heard.",
|
|
27
|
+
"control": {
|
|
28
|
+
"kind": "number"
|
|
29
|
+
}
|
|
23
30
|
},
|
|
24
31
|
{
|
|
25
32
|
"name": "depth",
|
|
26
33
|
"type": "number",
|
|
27
34
|
"required": false,
|
|
28
35
|
"defaultValue": "5",
|
|
29
|
-
"description": "How many announcements may wait at once. Defaults to `5`, and the **oldest**\nare dropped past it — five deep behind a busy run, the newest is the true\none and the backlog is history."
|
|
36
|
+
"description": "How many announcements may wait at once. Defaults to `5`, and the **oldest**\nare dropped past it — five deep behind a busy run, the newest is the true\none and the backlog is history.",
|
|
37
|
+
"control": {
|
|
38
|
+
"kind": "number"
|
|
39
|
+
}
|
|
30
40
|
},
|
|
31
41
|
{
|
|
32
42
|
"name": "paused",
|
|
33
43
|
"type": "boolean",
|
|
34
44
|
"required": false,
|
|
35
45
|
"defaultValue": "false",
|
|
36
|
-
"description": "Hold everything without dropping it: a modal is open, or the surface is\nbehind something a reader is working in. The queue drains from where it\nstopped when this goes back to `false`.\n\nA prop rather than an internal ref-count of open overlays, deliberately:\nthis library has its own portal and overlay contract, and an announcer with\na second opinion about what is on screen would be wrong exactly when it\nmattered."
|
|
46
|
+
"description": "Hold everything without dropping it: a modal is open, or the surface is\nbehind something a reader is working in. The queue drains from where it\nstopped when this goes back to `false`.\n\nA prop rather than an internal ref-count of open overlays, deliberately:\nthis library has its own portal and overlay contract, and an announcer with\na second opinion about what is on screen would be wrong exactly when it\nmattered.",
|
|
47
|
+
"control": {
|
|
48
|
+
"kind": "boolean"
|
|
49
|
+
}
|
|
37
50
|
},
|
|
38
51
|
{
|
|
39
52
|
"name": "announceOnMount",
|
|
40
53
|
"type": "boolean",
|
|
41
54
|
"required": false,
|
|
42
55
|
"defaultValue": "false",
|
|
43
|
-
"description": "Announce the messages that are already in the list at mount. Defaults to\n`false` — the reference's \"skip the first observation\" guard, and the\nreason restoring a session does not read the whole transcript aloud.\n\nThe pause rules still hold over it: a backlog handed to an announcer that\nmounts into a hidden tab, or with `paused` already set, waits there rather\nthan spending its first line. Restoring a session into a background tab is\nthe case, and it is the one the rules exist for."
|
|
56
|
+
"description": "Announce the messages that are already in the list at mount. Defaults to\n`false` — the reference's \"skip the first observation\" guard, and the\nreason restoring a session does not read the whole transcript aloud.\n\nThe pause rules still hold over it: a backlog handed to an announcer that\nmounts into a hidden tab, or with `paused` already set, waits there rather\nthan spending its first line. Restoring a session into a background tab is\nthe case, and it is the one the rules exist for.",
|
|
57
|
+
"control": {
|
|
58
|
+
"kind": "boolean"
|
|
59
|
+
}
|
|
44
60
|
}
|
|
45
61
|
],
|
|
46
62
|
"typeReferences": [
|
|
@@ -15,70 +15,102 @@
|
|
|
15
15
|
"type": "readonly LogLine[]",
|
|
16
16
|
"required": true,
|
|
17
17
|
"defaultValue": null,
|
|
18
|
-
"description": "The buffer, oldest first."
|
|
18
|
+
"description": "The buffer, oldest first.",
|
|
19
|
+
"control": {
|
|
20
|
+
"kind": "array"
|
|
21
|
+
}
|
|
19
22
|
},
|
|
20
23
|
{
|
|
21
24
|
"name": "follow",
|
|
22
25
|
"type": "boolean",
|
|
23
26
|
"required": false,
|
|
24
27
|
"defaultValue": "true",
|
|
25
|
-
"description": "Stick to the bottom as lines arrive. Defaults to `true`."
|
|
28
|
+
"description": "Stick to the bottom as lines arrive. Defaults to `true`.",
|
|
29
|
+
"control": {
|
|
30
|
+
"kind": "boolean"
|
|
31
|
+
}
|
|
26
32
|
},
|
|
27
33
|
{
|
|
28
34
|
"name": "filters",
|
|
29
35
|
"type": "false | readonly LogLevel[]",
|
|
30
36
|
"required": false,
|
|
31
37
|
"defaultValue": null,
|
|
32
|
-
"description": "Which levels get a filter chip. Defaults to the levels present in `lines`;\n`false` hides the strip entirely. Levels with no chip are always shown."
|
|
38
|
+
"description": "Which levels get a filter chip. Defaults to the levels present in `lines`;\n`false` hides the strip entirely. Levels with no chip are always shown.",
|
|
39
|
+
"control": {
|
|
40
|
+
"kind": "opaque"
|
|
41
|
+
}
|
|
33
42
|
},
|
|
34
43
|
{
|
|
35
44
|
"name": "height",
|
|
36
45
|
"type": "number",
|
|
37
46
|
"required": true,
|
|
38
47
|
"defaultValue": null,
|
|
39
|
-
"description": "Viewer height in px at the 16px root."
|
|
48
|
+
"description": "Viewer height in px at the 16px root.",
|
|
49
|
+
"control": {
|
|
50
|
+
"kind": "number"
|
|
51
|
+
}
|
|
40
52
|
},
|
|
41
53
|
{
|
|
42
54
|
"name": "rowHeight",
|
|
43
55
|
"type": "number",
|
|
44
56
|
"required": false,
|
|
45
57
|
"defaultValue": null,
|
|
46
|
-
"description": "Row height in px. Defaults to the short control rung at the ambient density."
|
|
58
|
+
"description": "Row height in px. Defaults to the short control rung at the ambient density.",
|
|
59
|
+
"control": {
|
|
60
|
+
"kind": "number"
|
|
61
|
+
}
|
|
47
62
|
},
|
|
48
63
|
{
|
|
49
64
|
"name": "maxLines",
|
|
50
65
|
"type": "number",
|
|
51
66
|
"required": false,
|
|
52
67
|
"defaultValue": "5000",
|
|
53
|
-
"description": "Cap on retained lines; the oldest are dropped. Defaults to `5000`."
|
|
68
|
+
"description": "Cap on retained lines; the oldest are dropped. Defaults to `5000`.",
|
|
69
|
+
"control": {
|
|
70
|
+
"kind": "number"
|
|
71
|
+
}
|
|
54
72
|
},
|
|
55
73
|
{
|
|
56
74
|
"name": "formatTimestamp",
|
|
57
75
|
"type": "((ts: number) => string)",
|
|
58
76
|
"required": false,
|
|
59
77
|
"defaultValue": "defaultTimestamp",
|
|
60
|
-
"description": "Render a line's timestamp. Defaults to a local `HH:MM:SS`."
|
|
78
|
+
"description": "Render a line's timestamp. Defaults to a local `HH:MM:SS`.",
|
|
79
|
+
"control": {
|
|
80
|
+
"kind": "callback",
|
|
81
|
+
"fixture": "callback.log"
|
|
82
|
+
}
|
|
61
83
|
},
|
|
62
84
|
{
|
|
63
85
|
"name": "emptyLabel",
|
|
64
86
|
"type": "string",
|
|
65
87
|
"required": false,
|
|
66
88
|
"defaultValue": "No output",
|
|
67
|
-
"description": "What to say when there is nothing to show. Defaults to `\"No output\"`."
|
|
89
|
+
"description": "What to say when there is nothing to show. Defaults to `\"No output\"`.",
|
|
90
|
+
"control": {
|
|
91
|
+
"kind": "string"
|
|
92
|
+
}
|
|
68
93
|
},
|
|
69
94
|
{
|
|
70
95
|
"name": "newLinesLabel",
|
|
71
96
|
"type": "((count: number) => string)",
|
|
72
97
|
"required": false,
|
|
73
98
|
"defaultValue": "(count) => `${count} new line${count === 1 ? \"\" : \"s\"}`",
|
|
74
|
-
"description": "Label for the catch-up pill. Defaults to `\"3 new lines\"`."
|
|
99
|
+
"description": "Label for the catch-up pill. Defaults to `\"3 new lines\"`.",
|
|
100
|
+
"control": {
|
|
101
|
+
"kind": "callback",
|
|
102
|
+
"fixture": "callback.log"
|
|
103
|
+
}
|
|
75
104
|
},
|
|
76
105
|
{
|
|
77
106
|
"name": "aria-label",
|
|
78
107
|
"type": "string",
|
|
79
108
|
"required": false,
|
|
80
109
|
"defaultValue": null,
|
|
81
|
-
"description": "Accessible name for the log region. Required in practice — name the stream."
|
|
110
|
+
"description": "Accessible name for the log region. Required in practice — name the stream.",
|
|
111
|
+
"control": {
|
|
112
|
+
"kind": "string"
|
|
113
|
+
}
|
|
82
114
|
}
|
|
83
115
|
],
|
|
84
116
|
"typeReferences": [
|
|
@@ -12,28 +12,41 @@
|
|
|
12
12
|
"type": "readonly MapPin[]",
|
|
13
13
|
"required": true,
|
|
14
14
|
"defaultValue": null,
|
|
15
|
-
"description": "Places in the answer, positioned as percentages so the element needs no tiles."
|
|
15
|
+
"description": "Places in the answer, positioned as percentages so the element needs no tiles.",
|
|
16
|
+
"control": {
|
|
17
|
+
"kind": "array"
|
|
18
|
+
}
|
|
16
19
|
},
|
|
17
20
|
{
|
|
18
21
|
"name": "activeId",
|
|
19
22
|
"type": "string",
|
|
20
23
|
"required": true,
|
|
21
24
|
"defaultValue": null,
|
|
22
|
-
"description": "Which pin is selected, in both the plot and the list."
|
|
25
|
+
"description": "Which pin is selected, in both the plot and the list.",
|
|
26
|
+
"control": {
|
|
27
|
+
"kind": "string"
|
|
28
|
+
}
|
|
23
29
|
},
|
|
24
30
|
{
|
|
25
31
|
"name": "route",
|
|
26
32
|
"type": "boolean",
|
|
27
33
|
"required": false,
|
|
28
34
|
"defaultValue": null,
|
|
29
|
-
"description": "Draws a dashed path through the pins in order."
|
|
35
|
+
"description": "Draws a dashed path through the pins in order.",
|
|
36
|
+
"control": {
|
|
37
|
+
"kind": "boolean"
|
|
38
|
+
}
|
|
30
39
|
},
|
|
31
40
|
{
|
|
32
41
|
"name": "onSelect",
|
|
33
42
|
"type": "((id: string) => void)",
|
|
34
43
|
"required": false,
|
|
35
44
|
"defaultValue": null,
|
|
36
|
-
"description": "Called when a pin or its list row is chosen. Both surfaces report the same id."
|
|
45
|
+
"description": "Called when a pin or its list row is chosen. Both surfaces report the same id.",
|
|
46
|
+
"control": {
|
|
47
|
+
"kind": "callback",
|
|
48
|
+
"fixture": "callback.log"
|
|
49
|
+
}
|
|
37
50
|
}
|
|
38
51
|
],
|
|
39
52
|
"typeReferences": [
|
|
@@ -15,35 +15,62 @@
|
|
|
15
15
|
"type": "string",
|
|
16
16
|
"required": true,
|
|
17
17
|
"defaultValue": null,
|
|
18
|
-
"description": "The markdown source. Untrusted model output is precisely what this prop is\nfor — see the component's own documentation for what is and is not\nrendered."
|
|
18
|
+
"description": "The markdown source. Untrusted model output is precisely what this prop is\nfor — see the component's own documentation for what is and is not\nrendered.",
|
|
19
|
+
"control": {
|
|
20
|
+
"kind": "string"
|
|
21
|
+
}
|
|
19
22
|
},
|
|
20
23
|
{
|
|
21
24
|
"name": "streaming",
|
|
22
25
|
"type": "boolean",
|
|
23
26
|
"required": false,
|
|
24
27
|
"defaultValue": "false",
|
|
25
|
-
"description": "The turn is still arriving, so hide the token being typed.\n\nOff by default, because sealing is a small edit to the source and a\nsettled document should be rendered as written. Turn it on for the tail of\na stream and off again when the turn completes; the rendered output is\nidentical once nothing is half-written."
|
|
28
|
+
"description": "The turn is still arriving, so hide the token being typed.\n\nOff by default, because sealing is a small edit to the source and a\nsettled document should be rendered as written. Turn it on for the tail of\na stream and off again when the turn completes; the rendered output is\nidentical once nothing is half-written.",
|
|
29
|
+
"control": {
|
|
30
|
+
"kind": "boolean"
|
|
31
|
+
}
|
|
26
32
|
},
|
|
27
33
|
{
|
|
28
34
|
"name": "target",
|
|
29
35
|
"type": "\"_self\" | \"_blank\"",
|
|
30
36
|
"required": false,
|
|
31
37
|
"defaultValue": "_blank",
|
|
32
|
-
"description": "Where a link opens. `_blank` by default: a transcript that navigates away\nloses the run. `rel` is not configurable — every link gets\n`noopener noreferrer nofollow` whatever this says."
|
|
38
|
+
"description": "Where a link opens. `_blank` by default: a transcript that navigates away\nloses the run. `rel` is not configurable — every link gets\n`noopener noreferrer nofollow` whatever this says.",
|
|
39
|
+
"control": {
|
|
40
|
+
"kind": "enum",
|
|
41
|
+
"members": [
|
|
42
|
+
"_self",
|
|
43
|
+
"_blank"
|
|
44
|
+
]
|
|
45
|
+
}
|
|
33
46
|
},
|
|
34
47
|
{
|
|
35
48
|
"name": "headingLevel",
|
|
36
49
|
"type": "4 | 2 | 3",
|
|
37
50
|
"required": false,
|
|
38
51
|
"defaultValue": "2",
|
|
39
|
-
"description": "The heading level `#` renders at; `##` and below follow it, clamped at\n`h6`. Defaults to `2`, because model output is a passage inside a page\nthat already owns its `h1`."
|
|
52
|
+
"description": "The heading level `#` renders at; `##` and below follow it, clamped at\n`h6`. Defaults to `2`, because model output is a passage inside a page\nthat already owns its `h1`.",
|
|
53
|
+
"control": {
|
|
54
|
+
"kind": "enum",
|
|
55
|
+
"members": [
|
|
56
|
+
4,
|
|
57
|
+
2,
|
|
58
|
+
3
|
|
59
|
+
],
|
|
60
|
+
"min": 2,
|
|
61
|
+
"max": 4
|
|
62
|
+
}
|
|
40
63
|
},
|
|
41
64
|
{
|
|
42
65
|
"name": "renderCodeBlock",
|
|
43
66
|
"type": "((block: MarkdownCodeBlock) => ReactNode)",
|
|
44
67
|
"required": false,
|
|
45
68
|
"defaultValue": null,
|
|
46
|
-
"description": "Render fenced code blocks with something other than plain text — a\nhighlighter, a copy button, a diff view.\n\nUnset, a block is a `<pre><code>` containing the model's characters and\nnothing else. That is the default on purpose: a highlighter is a second\nparser over the same untrusted string, usually one that emits HTML, and\nopting into it should be a line of code somebody wrote rather than a\nbehaviour they inherited."
|
|
69
|
+
"description": "Render fenced code blocks with something other than plain text — a\nhighlighter, a copy button, a diff view.\n\nUnset, a block is a `<pre><code>` containing the model's characters and\nnothing else. That is the default on purpose: a highlighter is a second\nparser over the same untrusted string, usually one that emits HTML, and\nopting into it should be a line of code somebody wrote rather than a\nbehaviour they inherited.",
|
|
70
|
+
"control": {
|
|
71
|
+
"kind": "callback",
|
|
72
|
+
"fixture": "callback.log"
|
|
73
|
+
}
|
|
47
74
|
}
|
|
48
75
|
],
|
|
49
76
|
"typeReferences": [
|
|
@@ -54,7 +81,11 @@
|
|
|
54
81
|
"variants": {},
|
|
55
82
|
"defaultVariants": {},
|
|
56
83
|
"tokensUsed": [
|
|
84
|
+
"--cue-accent",
|
|
57
85
|
"--cue-border",
|
|
86
|
+
"--cue-fg",
|
|
87
|
+
"--cue-fg-muted",
|
|
88
|
+
"--cue-fg-subtle",
|
|
58
89
|
"--cue-radius-control",
|
|
59
90
|
"--cue-space-1",
|
|
60
91
|
"--cue-space-2",
|