@cueplusplus/ui 0.14.0 → 0.15.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 +340 -0
- package/dist/agent-runtime/tool-call-card.js +1 -1
- package/dist/chat/message.js +1 -1
- package/dist/chrome/band.js +10 -4
- package/dist/chrome/eyebrow.js +1 -1
- package/dist/chrome/footer.js +1 -1
- package/dist/chrome/section-header.js +1 -1
- package/dist/configurator/configurator.js +1 -1
- package/dist/configurator/export-dialog.js +1 -1
- package/dist/configurator/panel-sections.js +1 -1
- package/dist/configurator/token-editor.js +1 -1
- package/dist/date/calendar.js +2 -2
- package/dist/elements/context-usage.js +3 -3
- package/dist/elements/transcript-rules.js +1 -1
- package/dist/forms/field.js +1 -1
- package/dist/forms/slider.js +1 -1
- package/dist/instruments/code-block.js +1 -1
- package/dist/instruments/ledger.js +1 -1
- package/dist/instruments/progress.js +1 -1
- package/dist/instruments/stat.js +1 -1
- package/dist/instruments/table.js +2 -2
- package/dist/instruments/terminal-frame.js +1 -1
- package/dist/layout/_ground.js +1 -1
- package/dist/layout/collapsible.js +1 -1
- package/dist/layout/description-list.js +1 -1
- package/dist/layout/preview.d.ts +13 -1
- package/dist/layout/preview.js +16 -9
- package/dist/layout/sidebar.js +1 -1
- package/dist/layout/stepper.js +1 -1
- package/dist/overlays/_surface.d.ts +1 -1
- package/dist/overlays/_surface.js +1 -1
- package/dist/overlays/command-palette.js +1 -1
- package/dist/overlays/toast.js +1 -1
- package/dist/primitives/chip.d.ts +1 -1
- package/dist/primitives/chip.js +2 -2
- package/dist/system/density.d.ts +11 -2
- package/dist/system/density.js +29 -9
- package/dist/system/portal.js +8 -2
- package/dist/system/prepaint.d.ts +18 -1
- package/dist/system/prepaint.js +8 -2
- package/dist/system/theme-provider.d.ts +42 -5
- package/dist/system/theme-provider.js +84 -19
- package/dist/system/vocabulary.d.ts +1 -1
- package/dist/system/vocabulary.js +14 -2
- package/manifest/components/accordion.json +16 -4
- package/manifest/components/activity-graph.json +15 -3
- package/manifest/components/agent-card.json +15 -3
- package/manifest/components/agent-handoff.json +14 -3
- package/manifest/components/agent-mode-badge.json +12 -3
- package/manifest/components/agent-pile.json +13 -3
- package/manifest/components/agent-plan.json +13 -3
- package/manifest/components/agent-status.json +14 -3
- package/manifest/components/agent-surface.json +12 -3
- package/manifest/components/alert-dialog.json +16 -4
- package/manifest/components/animated-number.json +12 -3
- package/manifest/components/app-window-frame.json +13 -3
- package/manifest/components/approval-card.json +14 -3
- package/manifest/components/artifact-card.json +14 -3
- package/manifest/components/ask-box.json +13 -3
- package/manifest/components/audience-icon.json +11 -3
- package/manifest/components/autocomplete.json +17 -4
- package/manifest/components/avatar-group.json +15 -4
- package/manifest/components/avatar.json +16 -4
- package/manifest/components/background-inbox.json +14 -3
- package/manifest/components/band.json +15 -5
- package/manifest/components/breadcrumb.json +14 -3
- package/manifest/components/button-group.json +13 -3
- package/manifest/components/calendar.json +18 -5
- package/manifest/components/canvas-split-body.json +13 -3
- package/manifest/components/canvas-split-document.json +11 -3
- package/manifest/components/canvas-split-header.json +13 -3
- package/manifest/components/canvas-split-line.json +13 -3
- package/manifest/components/canvas-split-message.json +13 -3
- package/manifest/components/canvas-split-thread.json +11 -3
- package/manifest/components/canvas-split.json +13 -3
- package/manifest/components/card.json +14 -3
- package/manifest/components/carousel.json +12 -3
- package/manifest/components/catalogue-icon.json +11 -3
- package/manifest/components/channel-beta-icon.json +11 -3
- package/manifest/components/channel-matrix.json +13 -4
- package/manifest/components/channel-released-icon.json +11 -3
- package/manifest/components/chart-container.json +11 -3
- package/manifest/components/chart-ramp.json +12 -3
- package/manifest/components/chart-swatch.json +11 -3
- package/manifest/components/chart-tooltip-content.json +14 -5
- package/manifest/components/chart.json +14 -3
- package/manifest/components/chat-empty-state.json +13 -3
- package/manifest/components/chat-panel-assistant-message.json +11 -3
- package/manifest/components/chat-panel-composer.json +11 -3
- package/manifest/components/chat-panel-messages.json +11 -3
- package/manifest/components/chat-panel-typing.json +11 -3
- package/manifest/components/chat-panel-user-message.json +11 -3
- package/manifest/components/chat-panel.json +13 -3
- package/manifest/components/checkbox-group.json +15 -4
- package/manifest/components/checkpoint-history.json +13 -3
- package/manifest/components/chip.json +1 -0
- package/manifest/components/clamp.json +12 -3
- package/manifest/components/cli-tool-icon.json +11 -3
- package/manifest/components/code-block.json +2 -1
- package/manifest/components/code-diff.json +14 -3
- package/manifest/components/code-runner.json +13 -3
- package/manifest/components/collapsible.json +15 -4
- package/manifest/components/color-area.json +12 -4
- package/manifest/components/color-field.json +12 -3
- package/manifest/components/color-picker.json +14 -4
- package/manifest/components/color-slider.json +12 -3
- package/manifest/components/color-swatch.json +13 -3
- package/manifest/components/colors-section.json +13 -4
- package/manifest/components/combobox.json +17 -5
- package/manifest/components/command-palette.json +2 -1
- package/manifest/components/compaction-row.json +12 -3
- package/manifest/components/comparison-card.json +12 -3
- package/manifest/components/composer-actions.json +11 -3
- package/manifest/components/composer-attach-button.json +11 -3
- package/manifest/components/composer-attachment-chip.json +13 -3
- package/manifest/components/composer-attachments.json +11 -3
- package/manifest/components/composer-bar.json +12 -3
- package/manifest/components/composer-command-item.json +13 -3
- package/manifest/components/composer-context.json +13 -3
- package/manifest/components/composer-input.json +11 -3
- package/manifest/components/composer-menu-item.json +12 -3
- package/manifest/components/composer-menu.json +13 -3
- package/manifest/components/composer-model-item.json +13 -3
- package/manifest/components/composer-model-trigger.json +13 -3
- package/manifest/components/composer-person-item.json +13 -3
- package/manifest/components/composer-send.json +13 -3
- package/manifest/components/composer-toolbar.json +11 -3
- package/manifest/components/composer-voice-button.json +11 -3
- package/manifest/components/composer-voice.json +13 -3
- package/manifest/components/composer.json +14 -4
- package/manifest/components/computer-use.json +13 -3
- package/manifest/components/confidence-marker.json +11 -3
- package/manifest/components/connection-state.json +12 -3
- package/manifest/components/container.json +12 -3
- package/manifest/components/context-breakdown.json +12 -4
- package/manifest/components/context-menu.json +16 -5
- package/manifest/components/context-usage.json +15 -4
- package/manifest/components/conversation-search.json +13 -3
- package/manifest/components/copy-button.json +14 -3
- package/manifest/components/cost-meter.json +12 -3
- package/manifest/components/cue-portal-frame.json +12 -3
- package/manifest/components/data-table-pagination.json +13 -3
- package/manifest/components/data-table-toolbar.json +12 -3
- package/manifest/components/date-field.json +12 -3
- package/manifest/components/date-picker.json +13 -3
- package/manifest/components/date-range-picker.json +11 -3
- package/manifest/components/day-separator.json +12 -3
- package/manifest/components/delegation-card.json +14 -4
- package/manifest/components/density.json +25 -2
- package/manifest/components/description-list.json +17 -5
- package/manifest/components/diagram.json +13 -3
- package/manifest/components/dialog.json +2 -1
- package/manifest/components/disclosure.json +17 -5
- package/manifest/components/dmx-bar.json +14 -4
- package/manifest/components/dmx-strip.json +13 -4
- package/manifest/components/document-reference.json +13 -3
- package/manifest/components/draft-restore.json +13 -3
- package/manifest/components/drawer.json +15 -5
- package/manifest/components/dropdown-menu.json +2 -1
- package/manifest/components/edit-message.json +13 -3
- package/manifest/components/elements-command-palette.json +13 -3
- package/manifest/components/elements-composer.json +13 -3
- package/manifest/components/elements-data-table.json +11 -3
- package/manifest/components/elements-timeline.json +13 -3
- package/manifest/components/elicitation-form.json +13 -3
- package/manifest/components/empty-state-composer.json +11 -3
- package/manifest/components/empty-state-greeting.json +11 -3
- package/manifest/components/empty-state-suggestion.json +11 -3
- package/manifest/components/empty-state-suggestions.json +11 -3
- package/manifest/components/empty-state.json +15 -4
- package/manifest/components/end-of-turn-summary.json +14 -3
- package/manifest/components/env-var-input.json +15 -4
- package/manifest/components/error-state.json +13 -3
- package/manifest/components/export-dialog.json +12 -3
- package/manifest/components/eyebrow.json +16 -5
- package/manifest/components/feedback-dialog.json +13 -3
- package/manifest/components/field-description.json +17 -5
- package/manifest/components/field-error.json +17 -5
- package/manifest/components/field-label.json +17 -5
- package/manifest/components/field.json +2 -1
- package/manifest/components/file-tree.json +13 -3
- package/manifest/components/file-upload.json +14 -4
- package/manifest/components/flow-background.json +11 -3
- package/manifest/components/flow-controls.json +11 -3
- package/manifest/components/flow-graph.json +13 -3
- package/manifest/components/folder-icon.json +12 -3
- package/manifest/components/footer.json +1 -0
- package/manifest/components/frac.json +11 -3
- package/manifest/components/frames.json +2 -1
- package/manifest/components/generation-loader.json +13 -3
- package/manifest/components/generative-ui.json +16 -4
- package/manifest/components/grid.json +14 -3
- package/manifest/components/group-bar.json +13 -3
- package/manifest/components/guardrail-notice.json +13 -3
- package/manifest/components/hover-card.json +16 -5
- package/manifest/components/icon-button.json +15 -3
- package/manifest/components/image-generation.json +13 -3
- package/manifest/components/info-tip.json +15 -4
- package/manifest/components/inline-citation.json +13 -3
- package/manifest/components/input-group.json +15 -4
- package/manifest/components/item.json +15 -4
- package/manifest/components/job-progress.json +14 -3
- package/manifest/components/kbd.json +14 -3
- package/manifest/components/launcher-bubble.json +14 -3
- package/manifest/components/ledger.json +2 -1
- package/manifest/components/link.json +13 -3
- package/manifest/components/live-region-announcer.json +16 -4
- package/manifest/components/log-viewer.json +15 -3
- package/manifest/components/map-answer.json +13 -3
- package/manifest/components/markdown-text.json +16 -4
- package/manifest/components/math-block.json +13 -3
- package/manifest/components/mcp-server-icon.json +12 -3
- package/manifest/components/mcp-server-panel.json +13 -3
- package/manifest/components/memory-chips.json +12 -3
- package/manifest/components/menubar.json +15 -4
- package/manifest/components/message-actions.json +14 -4
- package/manifest/components/message-attachments.json +12 -3
- package/manifest/components/message-branches.json +12 -3
- package/manifest/components/message-list.json +12 -3
- package/manifest/components/message-pair.json +12 -3
- package/manifest/components/message-queue.json +13 -3
- package/manifest/components/message-timing.json +13 -3
- package/manifest/components/message.json +14 -4
- package/manifest/components/mobile-composer.json +14 -3
- package/manifest/components/model-picker.json +12 -3
- package/manifest/components/multi-select.json +18 -5
- package/manifest/components/musical-time-input.json +11 -3
- package/manifest/components/navigation-menu.json +15 -4
- package/manifest/components/node-card.json +11 -3
- package/manifest/components/node-handle.json +11 -3
- package/manifest/components/number-field.json +15 -3
- package/manifest/components/number-ticker.json +12 -3
- package/manifest/components/onboarding.json +12 -3
- package/manifest/components/otp-field.json +14 -3
- package/manifest/components/page-shell.json +14 -4
- package/manifest/components/pagination.json +14 -3
- package/manifest/components/panel-header.json +14 -4
- package/manifest/components/password-input.json +15 -4
- package/manifest/components/permission-grant.json +13 -3
- package/manifest/components/permission-scopes.json +14 -3
- package/manifest/components/piano-keyboard.json +11 -3
- package/manifest/components/popover.json +2 -1
- package/manifest/components/preset-section.json +13 -4
- package/manifest/components/preview.json +15 -1
- package/manifest/components/progress.json +16 -4
- package/manifest/components/prompt-library.json +12 -3
- package/manifest/components/queue-dock.json +14 -3
- package/manifest/components/quota-banner.json +12 -3
- package/manifest/components/quote-reply.json +12 -3
- package/manifest/components/radio-group.json +15 -4
- package/manifest/components/radio.json +15 -4
- package/manifest/components/rating.json +15 -4
- package/manifest/components/read-aloud.json +13 -3
- package/manifest/components/reasoning-effort.json +12 -3
- package/manifest/components/reasoning-panel.json +13 -3
- package/manifest/components/recommendation-card.json +12 -3
- package/manifest/components/regenerate-menu.json +12 -3
- package/manifest/components/replay-player.json +14 -3
- package/manifest/components/research-report.json +12 -3
- package/manifest/components/resizable.json +13 -3
- package/manifest/components/retrieval-chunks.json +13 -3
- package/manifest/components/revert-dock.json +14 -3
- package/manifest/components/reviewable-diff.json +12 -3
- package/manifest/components/risk-badge.json +14 -3
- package/manifest/components/schedule-card.json +12 -3
- package/manifest/components/score-breakdown.json +13 -3
- package/manifest/components/scroll-anchor.json +12 -3
- package/manifest/components/scroll-area.json +13 -3
- package/manifest/components/scrollable-tabs-list.json +14 -4
- package/manifest/components/seam-cell.json +13 -4
- package/manifest/components/seam-grid.json +14 -3
- package/manifest/components/seam-list.json +13 -3
- package/manifest/components/search-input.json +15 -4
- package/manifest/components/section-header.json +16 -4
- package/manifest/components/segmented-control.json +15 -3
- package/manifest/components/separator.json +14 -3
- package/manifest/components/settings-panel.json +13 -3
- package/manifest/components/shape-section.json +13 -4
- package/manifest/components/shared-conversation.json +12 -3
- package/manifest/components/sheet.json +16 -5
- package/manifest/components/shimmer-label.json +12 -3
- package/manifest/components/sidebar.json +17 -5
- package/manifest/components/signal-edge.json +13 -4
- package/manifest/components/skeleton.json +16 -4
- package/manifest/components/skill-icon.json +12 -3
- package/manifest/components/slider.json +16 -4
- package/manifest/components/sources.json +12 -3
- package/manifest/components/sparkline.json +14 -4
- package/manifest/components/speaker-identity.json +11 -3
- package/manifest/components/spec-sheet.json +13 -4
- package/manifest/components/spectrum-visualizer.json +11 -3
- package/manifest/components/spinner.json +16 -4
- package/manifest/components/stack-icon.json +12 -3
- package/manifest/components/stack.json +14 -3
- package/manifest/components/stacks-matrix-icon.json +11 -3
- package/manifest/components/stat.json +15 -3
- package/manifest/components/status-dot.json +16 -4
- package/manifest/components/stepper.json +17 -5
- package/manifest/components/stopped-run.json +13 -4
- package/manifest/components/streaming-text.json +12 -3
- package/manifest/components/sub.json +11 -3
- package/manifest/components/subagent-list.json +13 -3
- package/manifest/components/suggestions.json +12 -3
- package/manifest/components/sup.json +11 -3
- package/manifest/components/swap-label.json +12 -3
- package/manifest/components/table-scroll-region.json +2 -1
- package/manifest/components/table.json +2 -1
- package/manifest/components/tags-input.json +17 -5
- package/manifest/components/tail-status.json +14 -3
- package/manifest/components/terminal-block.json +13 -3
- package/manifest/components/terminal-frame.json +15 -3
- package/manifest/components/textarea.json +15 -4
- package/manifest/components/theme-configurator.json +14 -4
- package/manifest/components/theme-provider.json +14 -1
- package/manifest/components/thinking-indicator.json +12 -3
- package/manifest/components/thread-list.json +12 -3
- package/manifest/components/thread-search.json +12 -3
- package/manifest/components/threshold-rail.json +13 -3
- package/manifest/components/time-boundary.json +15 -4
- package/manifest/components/time-field.json +15 -4
- package/manifest/components/timeline-ruler.json +13 -3
- package/manifest/components/timeline.json +13 -3
- package/manifest/components/title-bar.json +13 -3
- package/manifest/components/toast.json +2 -0
- package/manifest/components/todo-list.json +12 -3
- package/manifest/components/toggle-group.json +15 -4
- package/manifest/components/toggle.json +15 -4
- package/manifest/components/token-editor.json +14 -4
- package/manifest/components/tool-call-card.json +2 -1
- package/manifest/components/tool-call.json +13 -3
- package/manifest/components/tool-error.json +14 -4
- package/manifest/components/tool-group.json +12 -3
- package/manifest/components/tool-timeline.json +14 -4
- package/manifest/components/toolbar.json +14 -4
- package/manifest/components/tooltip.json +2 -1
- package/manifest/components/trace-waterfall.json +12 -3
- package/manifest/components/tree-visibility-toggle.json +13 -3
- package/manifest/components/tree.json +14 -3
- package/manifest/components/turn-footer.json +14 -3
- package/manifest/components/two-step-button.json +14 -3
- package/manifest/components/typing-indicator.json +12 -3
- package/manifest/components/universe-grid.json +14 -4
- package/manifest/components/unread-divider.json +16 -5
- package/manifest/components/usage-chart.json +14 -3
- package/manifest/components/verdict-row.json +14 -3
- package/manifest/components/voice-conversation.json +13 -3
- package/manifest/components/web-preview.json +13 -3
- package/manifest/components/web-search.json +13 -3
- package/manifest/components/work-collapse.json +15 -4
- package/manifest/manifest.json +667 -667
- package/manifest/tokens.json +29 -2
- package/package.json +2 -2
|
@@ -55,10 +55,20 @@
|
|
|
55
55
|
"language": "tsx"
|
|
56
56
|
}
|
|
57
57
|
],
|
|
58
|
-
"status": "
|
|
58
|
+
"status": "stable",
|
|
59
59
|
"url": "/docs/components/container",
|
|
60
60
|
"mdUrl": "/docs/components/container.md",
|
|
61
61
|
"jsonUrl": "/r/components/container.json",
|
|
62
|
+
"whenToUse": [
|
|
63
|
+
"A page that already has its own heading — a route opening with a `TitleBar`, or a section inside a shell — where all you need is the measure."
|
|
64
|
+
],
|
|
65
|
+
"whenNotToUse": [
|
|
66
|
+
"A page that needs a header too. Use `PageShell`, which is this plus one.",
|
|
67
|
+
"A full-bleed surface. The gutters are the point; wrapping and then cancelling them is a sign the shell is wrong."
|
|
68
|
+
],
|
|
69
|
+
"commonMistakes": [
|
|
70
|
+
"Nesting one inside another, which applies the gutters twice and narrows the measure without anyone choosing to."
|
|
71
|
+
],
|
|
62
72
|
"specimens": [
|
|
63
73
|
{
|
|
64
74
|
"title": "Container",
|
|
@@ -70,6 +80,5 @@
|
|
|
70
80
|
"note": "Three measures. The one place a max-width is allowed to be hardcoded, because a measure is typographic, not thematic.",
|
|
71
81
|
"interaction": "none."
|
|
72
82
|
}
|
|
73
|
-
]
|
|
74
|
-
"todo": true
|
|
83
|
+
]
|
|
75
84
|
}
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"--cue-text-body",
|
|
45
45
|
"--cue-warn"
|
|
46
46
|
],
|
|
47
|
-
"summary": "Where the window actually went: prompt, tools, files, conversation, and what
|
|
47
|
+
"summary": "Where the window actually went: prompt, tools, files, conversation, and what is left.",
|
|
48
48
|
"examples": [
|
|
49
49
|
{
|
|
50
50
|
"title": "Usage",
|
|
@@ -52,10 +52,19 @@
|
|
|
52
52
|
"language": "tsx"
|
|
53
53
|
}
|
|
54
54
|
],
|
|
55
|
-
"status": "
|
|
55
|
+
"status": "stable",
|
|
56
56
|
"url": "/docs/components/context-breakdown",
|
|
57
57
|
"mdUrl": "/docs/components/context-breakdown.md",
|
|
58
58
|
"jsonUrl": "/r/components/context-breakdown.json",
|
|
59
|
+
"whenToUse": [
|
|
60
|
+
"Showing the shape of context use without the cost argument around it."
|
|
61
|
+
],
|
|
62
|
+
"whenNotToUse": [
|
|
63
|
+
"A full accounting with cost. Use `ContextUsage`."
|
|
64
|
+
],
|
|
65
|
+
"commonMistakes": [
|
|
66
|
+
"Omitting `limit`, which leaves the segments with nothing to be a share of."
|
|
67
|
+
],
|
|
59
68
|
"specimens": [
|
|
60
69
|
{
|
|
61
70
|
"title": "ContextBreakdown",
|
|
@@ -67,6 +76,5 @@
|
|
|
67
76
|
"note": "Where the window actually went, which is the question a context limit never answers on its own. Headroom is derived rather than passed — it is whatever the segments left — and the header turns warn once they pass 85 per cent of the limit. The tint is the caller's: the same class paints the bar slice and its legend dot, so the two cannot drift apart.",
|
|
68
77
|
"interaction": "none. The legend dots are `aria-hidden`; the label beside each one carries the meaning."
|
|
69
78
|
}
|
|
70
|
-
]
|
|
71
|
-
"todo": true
|
|
79
|
+
]
|
|
72
80
|
}
|
|
@@ -104,9 +104,10 @@
|
|
|
104
104
|
"--cue-surface-2",
|
|
105
105
|
"--cue-text-emphasis",
|
|
106
106
|
"--cue-text-label",
|
|
107
|
-
"--cue-text-ui"
|
|
107
|
+
"--cue-text-ui",
|
|
108
|
+
"--cue-tracking-caps"
|
|
108
109
|
],
|
|
109
|
-
"summary": "The menu a right click raises: row actions on a cue list,
|
|
110
|
+
"summary": "The menu a right click raises: row actions on a cue list, node actions on a canvas.",
|
|
110
111
|
"examples": [
|
|
111
112
|
{
|
|
112
113
|
"title": "Usage",
|
|
@@ -114,10 +115,21 @@
|
|
|
114
115
|
"language": "tsx"
|
|
115
116
|
}
|
|
116
117
|
],
|
|
117
|
-
"status": "
|
|
118
|
+
"status": "stable",
|
|
118
119
|
"url": "/docs/components/context-menu",
|
|
119
120
|
"mdUrl": "/docs/components/context-menu.md",
|
|
120
121
|
"jsonUrl": "/r/components/context-menu.json",
|
|
122
|
+
"whenToUse": [
|
|
123
|
+
"Actions that belong to the thing under the pointer.",
|
|
124
|
+
"Anywhere the same actions should also be reachable another way — a right click is not discoverable on its own."
|
|
125
|
+
],
|
|
126
|
+
"whenNotToUse": [
|
|
127
|
+
"The only path to an action. Keyboard users never right-click.",
|
|
128
|
+
"Navigation. Use links."
|
|
129
|
+
],
|
|
130
|
+
"commonMistakes": [
|
|
131
|
+
"Restyling the rows. They *are* `DropdownMenu`'s rows, re-exported rather than re-skinned — a user should never be able to tell from a row how they got to it."
|
|
132
|
+
],
|
|
121
133
|
"specimens": [
|
|
122
134
|
{
|
|
123
135
|
"title": "ContextMenu",
|
|
@@ -129,6 +141,5 @@
|
|
|
129
141
|
"note": "The same menu surface, opened by a right-click on a region rather than by a button.",
|
|
130
142
|
"interaction": "the Menu key and Shift+F10 open it from the keyboard, which is the part most implementations forget."
|
|
131
143
|
}
|
|
132
|
-
]
|
|
133
|
-
"todo": true
|
|
144
|
+
]
|
|
134
145
|
}
|
|
@@ -68,9 +68,10 @@
|
|
|
68
68
|
"--cue-stream",
|
|
69
69
|
"--cue-surface-2",
|
|
70
70
|
"--cue-text-body",
|
|
71
|
+
"--cue-tracking-label",
|
|
71
72
|
"--cue-warn"
|
|
72
73
|
],
|
|
73
|
-
"summary": "Where the window went, what share each part
|
|
74
|
+
"summary": "Where the window went, what share each part took, and what that cost.",
|
|
74
75
|
"examples": [
|
|
75
76
|
{
|
|
76
77
|
"title": "Usage",
|
|
@@ -78,10 +79,21 @@
|
|
|
78
79
|
"language": "tsx"
|
|
79
80
|
}
|
|
80
81
|
],
|
|
81
|
-
"status": "
|
|
82
|
+
"status": "stable",
|
|
82
83
|
"url": "/docs/components/context-usage",
|
|
83
84
|
"mdUrl": "/docs/components/context-usage.md",
|
|
84
85
|
"jsonUrl": "/r/components/context-usage.json",
|
|
86
|
+
"whenToUse": [
|
|
87
|
+
"Answering 'why did it forget the thing I said an hour ago' with *the venue's documents are 38k of it* rather than a number going up.",
|
|
88
|
+
"Anywhere the cost belongs beside the shape — the bar, the table and the stat rows are three readings of one thing."
|
|
89
|
+
],
|
|
90
|
+
"whenNotToUse": [
|
|
91
|
+
"A limit alone. A context limit tells a reader nothing they can act on.",
|
|
92
|
+
"The breakdown without the bill. Use `ContextBreakdown`."
|
|
93
|
+
],
|
|
94
|
+
"commonMistakes": [
|
|
95
|
+
"Rebuilding the breakdown as a grid of divs. It is a real table with real column headers, because three columns of numbers whose meaning is carried by the header is exactly what a table is for."
|
|
96
|
+
],
|
|
85
97
|
"specimens": [
|
|
86
98
|
{
|
|
87
99
|
"title": "ContextUsage",
|
|
@@ -93,6 +105,5 @@
|
|
|
93
105
|
"note": "Where the window went, what share each part took, and what that cost — Cursor's tray, opencode's labels and Claude Code's table, which between them are a complete spec. The breakdown is a real table with real column headers because three columns of numbers whose meaning lives in the heading above them is exactly what a table is for. A category that names no tone takes the next hue in the family's rotation, so five rows are legible without the caller choosing five colours that fight.",
|
|
94
106
|
"interaction": "none. The bar is aria-hidden — every figure in it is written out in the table under it — and pressure is stated on the element as `data-pressure`, so a console can style the whole card from one attribute rather than from a threshold of its own."
|
|
95
107
|
}
|
|
96
|
-
]
|
|
97
|
-
"todo": true
|
|
108
|
+
]
|
|
98
109
|
}
|
|
@@ -91,10 +91,21 @@
|
|
|
91
91
|
"language": "tsx"
|
|
92
92
|
}
|
|
93
93
|
],
|
|
94
|
-
"status": "
|
|
94
|
+
"status": "stable",
|
|
95
95
|
"url": "/docs/components/conversation-search",
|
|
96
96
|
"mdUrl": "/docs/components/conversation-search.md",
|
|
97
97
|
"jsonUrl": "/r/components/conversation-search.json",
|
|
98
|
+
"whenToUse": [
|
|
99
|
+
"Searching a long transcript, where the hits should be visible on the scroll rail and not only in a list."
|
|
100
|
+
],
|
|
101
|
+
"whenNotToUse": [
|
|
102
|
+
"Searching across threads rather than inside one."
|
|
103
|
+
],
|
|
104
|
+
"commonMistakes": [
|
|
105
|
+
"Looking up surrounding text per hit. Each `SearchHit` carries its own, so nothing needs fetching to render the preview.",
|
|
106
|
+
"Expecting `onStep` to hand you a new index. It is called with -1 or 1 and you wrap the index yourself.",
|
|
107
|
+
"Re-clamping `activeIndex` when the results narrow. It is already clamped to the current hit set, so narrowing cannot strand it out of range."
|
|
108
|
+
],
|
|
98
109
|
"specimens": [
|
|
99
110
|
{
|
|
100
111
|
"title": "ConversationSearch",
|
|
@@ -106,6 +117,5 @@
|
|
|
106
117
|
"note": "Find inside one long thread, with every hit marked down the scrollbar so the shape of the answer is visible before you walk it. Each hit carries its own surrounding text, so the preview needs no lookup back into the transcript — which is what lets a search box render before the thread it is searching has loaded.",
|
|
107
118
|
"interaction": "the counter and the rail agree because `activeIndex` is clamped to the current hit set: narrowing the results cannot strand the marker out of range. Stepping is `-1` and `1`; wrapping is the caller's."
|
|
108
119
|
}
|
|
109
|
-
]
|
|
110
|
-
"todo": true
|
|
120
|
+
]
|
|
111
121
|
}
|
|
@@ -98,10 +98,22 @@
|
|
|
98
98
|
"language": "tsx"
|
|
99
99
|
}
|
|
100
100
|
],
|
|
101
|
-
"status": "
|
|
101
|
+
"status": "stable",
|
|
102
102
|
"url": "/docs/components/copy-button",
|
|
103
103
|
"mdUrl": "/docs/components/copy-button.md",
|
|
104
104
|
"jsonUrl": "/r/components/copy-button.json",
|
|
105
|
+
"whenToUse": [
|
|
106
|
+
"Any value the reader is meant to take elsewhere: an id, a token, a command.",
|
|
107
|
+
"Anywhere the confirmation must be heard as well as seen — the label lives in an `aria-live` region."
|
|
108
|
+
],
|
|
109
|
+
"whenNotToUse": [
|
|
110
|
+
"A whole document or a selection. That is the browser's copy, not a button."
|
|
111
|
+
],
|
|
112
|
+
"commonMistakes": [
|
|
113
|
+
"Replacing the label swap with a toast. At console density a toast for 'copied an id' is heavier than the action itself.",
|
|
114
|
+
"Confirming on a colour change alone, which is never announced (WCAG 1.4.1).",
|
|
115
|
+
"Treating a failed copy as success. Both the async clipboard and the fallback can fail, and `onCopyError` is how you find out."
|
|
116
|
+
],
|
|
105
117
|
"specimens": [
|
|
106
118
|
{
|
|
107
119
|
"title": "CopyButton",
|
|
@@ -113,6 +125,5 @@
|
|
|
113
125
|
"note": "Copies, then says so for a beat. The confirmation is text, not a colour change.",
|
|
114
126
|
"interaction": "the label swaps to the copied state and reverts after the timeout; the accessible name swaps with it."
|
|
115
127
|
}
|
|
116
|
-
]
|
|
117
|
-
"todo": true
|
|
128
|
+
]
|
|
118
129
|
}
|
|
@@ -64,10 +64,20 @@
|
|
|
64
64
|
"language": "tsx"
|
|
65
65
|
}
|
|
66
66
|
],
|
|
67
|
-
"status": "
|
|
67
|
+
"status": "stable",
|
|
68
68
|
"url": "/docs/components/cost-meter",
|
|
69
69
|
"mdUrl": "/docs/components/cost-meter.md",
|
|
70
70
|
"jsonUrl": "/r/components/cost-meter.json",
|
|
71
|
+
"whenToUse": [
|
|
72
|
+
"Any surface where spend is a fact the user acts on.",
|
|
73
|
+
"Multi-model runs, where the split is the interesting part."
|
|
74
|
+
],
|
|
75
|
+
"whenNotToUse": [
|
|
76
|
+
"Context pressure. Use `ContextUsage` — tokens held and money spent are different questions."
|
|
77
|
+
],
|
|
78
|
+
"commonMistakes": [
|
|
79
|
+
"Showing the run cost with no session total, which removes the only context that makes it mean anything."
|
|
80
|
+
],
|
|
71
81
|
"specimens": [
|
|
72
82
|
{
|
|
73
83
|
"title": "CostMeter",
|
|
@@ -79,6 +89,5 @@
|
|
|
79
89
|
"note": "What the run spent, against what the session has spent — two numbers, then the arithmetic under them. Every figure arrives pre-formatted: the element does no currency maths and no rounding, so a bench and a billing page cannot disagree about what `$3.12` means.",
|
|
80
90
|
"interaction": "none. `share` drives the bar and the lines are given largest-first, so the bar reads left to right in the same order as the rows."
|
|
81
91
|
}
|
|
82
|
-
]
|
|
83
|
-
"todo": true
|
|
92
|
+
]
|
|
84
93
|
}
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"--cue-font-sans",
|
|
50
50
|
"--cue-font-scale"
|
|
51
51
|
],
|
|
52
|
-
"summary": "Inline version of the portal contract, for portals whose container cannot
|
|
52
|
+
"summary": "Inline version of the portal contract, for portals whose container you cannot choose.",
|
|
53
53
|
"examples": [
|
|
54
54
|
{
|
|
55
55
|
"title": "Usage",
|
|
@@ -57,9 +57,18 @@
|
|
|
57
57
|
"language": "tsx"
|
|
58
58
|
}
|
|
59
59
|
],
|
|
60
|
-
"status": "
|
|
60
|
+
"status": "stable",
|
|
61
61
|
"url": "/docs/components/cue-portal-frame",
|
|
62
62
|
"mdUrl": "/docs/components/cue-portal-frame.md",
|
|
63
63
|
"jsonUrl": "/r/components/cue-portal-frame.json",
|
|
64
|
-
"
|
|
64
|
+
"whenToUse": [
|
|
65
|
+
"A third-party overlay, or content already portalled by something else, that must still carry the theme, density, font, mode and style stamps."
|
|
66
|
+
],
|
|
67
|
+
"whenNotToUse": [
|
|
68
|
+
"A portal you control. Prefer the `useCuePortalProps` hook — this exists for the case where you cannot reach the container."
|
|
69
|
+
],
|
|
70
|
+
"commonMistakes": [
|
|
71
|
+
"Reaching for it first. It is the fallback, not the default, and wrapping in `display: contents` where the hook would do is one more element for nothing.",
|
|
72
|
+
"Stamping only `data-theme`. The contract is the whole set — theme, density, font, mode, style, skin, fidelity, font scale and overrides — or a portal renders half-themed."
|
|
73
|
+
]
|
|
65
74
|
}
|
|
@@ -76,10 +76,21 @@
|
|
|
76
76
|
"language": "tsx"
|
|
77
77
|
}
|
|
78
78
|
],
|
|
79
|
-
"status": "
|
|
79
|
+
"status": "stable",
|
|
80
80
|
"url": "/docs/components/data-table-pagination",
|
|
81
81
|
"mdUrl": "/docs/components/data-table-pagination.md",
|
|
82
82
|
"jsonUrl": "/r/components/data-table-pagination.json",
|
|
83
|
+
"whenToUse": [
|
|
84
|
+
"Any paged table.",
|
|
85
|
+
"Tables that get sorted to put the interesting row at one end — first and last exist because stepping there one page at a time is not a navigation strategy."
|
|
86
|
+
],
|
|
87
|
+
"whenNotToUse": [
|
|
88
|
+
"A table short enough to scroll.",
|
|
89
|
+
"A non-table list. Use `Pagination`."
|
|
90
|
+
],
|
|
91
|
+
"commonMistakes": [
|
|
92
|
+
"Rebuilding the buttons as bare glyphs. Every one is an `IconButton` with a real accessible name — an arrow alone announces as nothing."
|
|
93
|
+
],
|
|
83
94
|
"specimens": [
|
|
84
95
|
{
|
|
85
96
|
"title": "DataTable recipe",
|
|
@@ -92,6 +103,5 @@
|
|
|
92
103
|
"note": "Not a component: `useCueTable` wires four TanStack v9 features, `DataTableToolbar` and `DataTablePagination` supply the chrome, and the markup stays at the call site. Rendered through the same Table above.",
|
|
93
104
|
"interaction": "the header cells are buttons that toggle sorting; the pager disables at the ends rather than hiding."
|
|
94
105
|
}
|
|
95
|
-
]
|
|
96
|
-
"todo": true
|
|
106
|
+
]
|
|
97
107
|
}
|
|
@@ -106,10 +106,20 @@
|
|
|
106
106
|
"language": "tsx"
|
|
107
107
|
}
|
|
108
108
|
],
|
|
109
|
-
"status": "
|
|
109
|
+
"status": "stable",
|
|
110
110
|
"url": "/docs/components/data-table-toolbar",
|
|
111
111
|
"mdUrl": "/docs/components/data-table-toolbar.md",
|
|
112
112
|
"jsonUrl": "/r/components/data-table-toolbar.json",
|
|
113
|
+
"whenToUse": [
|
|
114
|
+
"Any filterable table.",
|
|
115
|
+
"Anywhere the reader needs to tell an empty table from an over-tight filter — that is what `count`/`total` is for."
|
|
116
|
+
],
|
|
117
|
+
"whenNotToUse": [
|
|
118
|
+
"A table with nothing to filter or act on."
|
|
119
|
+
],
|
|
120
|
+
"commonMistakes": [
|
|
121
|
+
"Leaving out the count. '12/340' beside a filter box is the difference between 'the table is empty' and 'the filter is too tight', and it is the first thing a hand-rolled toolbar drops."
|
|
122
|
+
],
|
|
113
123
|
"specimens": [
|
|
114
124
|
{
|
|
115
125
|
"title": "DataTable recipe",
|
|
@@ -122,6 +132,5 @@
|
|
|
122
132
|
"note": "Not a component: `useCueTable` wires four TanStack v9 features, `DataTableToolbar` and `DataTablePagination` supply the chrome, and the markup stays at the call site. Rendered through the same Table above.",
|
|
123
133
|
"interaction": "the header cells are buttons that toggle sorting; the pager disables at the ends rather than hiding."
|
|
124
134
|
}
|
|
125
|
-
]
|
|
126
|
-
"todo": true
|
|
135
|
+
]
|
|
127
136
|
}
|
|
@@ -73,10 +73,20 @@
|
|
|
73
73
|
"language": "tsx"
|
|
74
74
|
}
|
|
75
75
|
],
|
|
76
|
-
"status": "
|
|
76
|
+
"status": "stable",
|
|
77
77
|
"url": "/docs/components/date-field",
|
|
78
78
|
"mdUrl": "/docs/components/date-field.md",
|
|
79
79
|
"jsonUrl": "/r/components/date-field.json",
|
|
80
|
+
"whenToUse": [
|
|
81
|
+
"A date the user already knows. Typing is faster than three clicks.",
|
|
82
|
+
"Anywhere `03/04` must not be ambiguous — segments cannot produce it."
|
|
83
|
+
],
|
|
84
|
+
"whenNotToUse": [
|
|
85
|
+
"A date the user needs to *find*. Use `DatePicker`, which shows the month."
|
|
86
|
+
],
|
|
87
|
+
"commonMistakes": [
|
|
88
|
+
"Rebuilding it from three number inputs, which loses locale-aware segment order, overflow between segments and the `spinbutton` ARIA."
|
|
89
|
+
],
|
|
80
90
|
"specimens": [
|
|
81
91
|
{
|
|
82
92
|
"title": "DateField",
|
|
@@ -88,6 +98,5 @@
|
|
|
88
98
|
"note": "Typed, one segment at a time, with no calendar. Values are `@internationalized/date` objects, which can hold a day without a timezone attached.",
|
|
89
99
|
"interaction": "each segment is a `spinbutton`: arrow keys step it, typing overflows into the next one."
|
|
90
100
|
}
|
|
91
|
-
]
|
|
92
|
-
"todo": true
|
|
101
|
+
]
|
|
93
102
|
}
|
|
@@ -235,10 +235,21 @@
|
|
|
235
235
|
"language": "tsx"
|
|
236
236
|
}
|
|
237
237
|
],
|
|
238
|
-
"status": "
|
|
238
|
+
"status": "stable",
|
|
239
239
|
"url": "/docs/components/date-picker",
|
|
240
240
|
"mdUrl": "/docs/components/date-picker.md",
|
|
241
241
|
"jsonUrl": "/r/components/date-picker.json",
|
|
242
|
+
"whenToUse": [
|
|
243
|
+
"A date the user wants to see in context — weekends, a month's shape.",
|
|
244
|
+
"Anywhere the trigger must line up with the inputs beside it: it is a control-chassis button at every density."
|
|
245
|
+
],
|
|
246
|
+
"whenNotToUse": [
|
|
247
|
+
"A known date. Use `DateField`.",
|
|
248
|
+
"A span. Use `DateRangePicker`."
|
|
249
|
+
],
|
|
250
|
+
"commonMistakes": [
|
|
251
|
+
"Rendering the calendar outside the kit's `Popover`, which drops it out of the portal contract and renders it at the wrong theme and density."
|
|
252
|
+
],
|
|
242
253
|
"specimens": [
|
|
243
254
|
{
|
|
244
255
|
"title": "DatePicker",
|
|
@@ -250,6 +261,5 @@
|
|
|
250
261
|
"note": "The calendar inside a popover, on the form chassis. The trigger prints the formatted date, or the placeholder when there is none.",
|
|
251
262
|
"interaction": "the popup is portalled through the stamping contract, so it keeps the theme and density of the island it was opened from."
|
|
252
263
|
}
|
|
253
|
-
]
|
|
254
|
-
"todo": true
|
|
264
|
+
]
|
|
255
265
|
}
|
|
@@ -235,10 +235,19 @@
|
|
|
235
235
|
"language": "tsx"
|
|
236
236
|
}
|
|
237
237
|
],
|
|
238
|
-
"status": "
|
|
238
|
+
"status": "stable",
|
|
239
239
|
"url": "/docs/components/date-range-picker",
|
|
240
240
|
"mdUrl": "/docs/components/date-range-picker.md",
|
|
241
241
|
"jsonUrl": "/r/components/date-range-picker.json",
|
|
242
|
+
"whenToUse": [
|
|
243
|
+
"A from/to range — a report window, a run of shows."
|
|
244
|
+
],
|
|
245
|
+
"whenNotToUse": [
|
|
246
|
+
"One day. Use `DatePicker`."
|
|
247
|
+
],
|
|
248
|
+
"commonMistakes": [
|
|
249
|
+
"Expecting it to dismiss like `DatePicker`. A range takes two clicks, so the popup stays open through the first and the caller hears about both — close it from `onValueChange` when `to` arrives if a one-shot flow suits the page."
|
|
250
|
+
],
|
|
242
251
|
"specimens": [
|
|
243
252
|
{
|
|
244
253
|
"title": "DateRangePicker",
|
|
@@ -250,6 +259,5 @@
|
|
|
250
259
|
"note": "Two days in one control, formatted as one string.",
|
|
251
260
|
"interaction": "the first click sets the start, the second the end; clicking before the start restarts the range."
|
|
252
261
|
}
|
|
253
|
-
]
|
|
254
|
-
"todo": true
|
|
262
|
+
]
|
|
255
263
|
}
|
|
@@ -43,10 +43,20 @@
|
|
|
43
43
|
"language": "tsx"
|
|
44
44
|
}
|
|
45
45
|
],
|
|
46
|
-
"status": "
|
|
46
|
+
"status": "stable",
|
|
47
47
|
"url": "/docs/components/day-separator",
|
|
48
48
|
"mdUrl": "/docs/components/day-separator.md",
|
|
49
49
|
"jsonUrl": "/r/components/day-separator.json",
|
|
50
|
+
"whenToUse": [
|
|
51
|
+
"Threads long enough that 'when' stops being obvious."
|
|
52
|
+
],
|
|
53
|
+
"whenNotToUse": [
|
|
54
|
+
"A compaction. Use `CompactionRow`.",
|
|
55
|
+
"A short conversation, where every message is clearly from the same sitting."
|
|
56
|
+
],
|
|
57
|
+
"commonMistakes": [
|
|
58
|
+
"Stamping every message with a full date, which is the noise this replaces."
|
|
59
|
+
],
|
|
50
60
|
"specimens": [
|
|
51
61
|
{
|
|
52
62
|
"title": "DaySeparator",
|
|
@@ -58,6 +68,5 @@
|
|
|
58
68
|
"note": "Chronology in a thread long enough to have some: a rule wherever the day changes, and per-message times that only appear when you go looking. The caller pre-formats both — the element compares the day strings and does no date arithmetic at all.",
|
|
59
69
|
"interaction": "hover a turn and its timestamp fades up beside it. The rules are decorative; nothing here is a control."
|
|
60
70
|
}
|
|
61
|
-
]
|
|
62
|
-
"todo": true
|
|
71
|
+
]
|
|
63
72
|
}
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
"--cue-text-micro",
|
|
169
169
|
"--cue-text-ui"
|
|
170
170
|
],
|
|
171
|
-
"summary": "One delegation, folded into a card.",
|
|
171
|
+
"summary": "One delegation, folded into a card: who was asked, what for, and their transcript behind a disclosure.",
|
|
172
172
|
"examples": [
|
|
173
173
|
{
|
|
174
174
|
"title": "Usage",
|
|
@@ -176,10 +176,21 @@
|
|
|
176
176
|
"language": "tsx"
|
|
177
177
|
}
|
|
178
178
|
],
|
|
179
|
-
"status": "
|
|
179
|
+
"status": "stable",
|
|
180
180
|
"url": "/docs/components/delegation-card",
|
|
181
181
|
"mdUrl": "/docs/components/delegation-card.md",
|
|
182
182
|
"jsonUrl": "/r/components/delegation-card.json",
|
|
183
|
+
"whenToUse": [
|
|
184
|
+
"Any multi-agent run. A tree rendered flat is what turns a transcript into noise.",
|
|
185
|
+
"Anywhere nesting depth must stay legible — the rail takes the sub-agent's colour."
|
|
186
|
+
],
|
|
187
|
+
"whenNotToUse": [
|
|
188
|
+
"A single-agent conversation. Use `Message`."
|
|
189
|
+
],
|
|
190
|
+
"commonMistakes": [
|
|
191
|
+
"Rendering sub-agent turns inline beside the parent's, which loses which turns belong to whom and how deep they are.",
|
|
192
|
+
"Opening every delegation by default, which undoes the fold."
|
|
193
|
+
],
|
|
183
194
|
"specimens": [
|
|
184
195
|
{
|
|
185
196
|
"title": "DelegationCard",
|
|
@@ -191,6 +202,5 @@
|
|
|
191
202
|
"note": "A nested transcript with a per-agent left rail in that agent's colour. Collapsible, because a delegation is usually a detail.",
|
|
192
203
|
"interaction": "the header row is the toggle; the status is spelled out as well as tinted."
|
|
193
204
|
}
|
|
194
|
-
]
|
|
195
|
-
"todo": true
|
|
205
|
+
]
|
|
196
206
|
}
|
|
@@ -24,6 +24,19 @@
|
|
|
24
24
|
]
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
|
+
{
|
|
28
|
+
"name": "paint",
|
|
29
|
+
"type": "\"none\"",
|
|
30
|
+
"required": false,
|
|
31
|
+
"defaultValue": null,
|
|
32
|
+
"description": "A look pack for this subtree.\n\nOptional, and **absent means inherit**, exactly as `styleSet` is: an island\nthat names none stamps no `data-paint` and passes the ambient pack straight\nthrough. `none` is a *value*, not an absence — it restates the `:root`\ndefaults, so a subtree stamps it to opt out of a pack its parent set.",
|
|
33
|
+
"control": {
|
|
34
|
+
"kind": "enum",
|
|
35
|
+
"members": [
|
|
36
|
+
"none"
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
27
40
|
{
|
|
28
41
|
"name": "styleSet",
|
|
29
42
|
"type": "\"console\" | \"editorial\" | \"marketing\"",
|
|
@@ -85,9 +98,19 @@
|
|
|
85
98
|
"language": "tsx"
|
|
86
99
|
}
|
|
87
100
|
],
|
|
88
|
-
"status": "
|
|
101
|
+
"status": "stable",
|
|
89
102
|
"url": "/docs/components/density",
|
|
90
103
|
"mdUrl": "/docs/components/density.md",
|
|
91
104
|
"jsonUrl": "/r/components/density.json",
|
|
92
|
-
"
|
|
105
|
+
"whenToUse": [
|
|
106
|
+
"A region that should be denser or roomier than the page around it — a compact table inside a comfortable page.",
|
|
107
|
+
"Anywhere nesting must be free: it renders a plain `<div>` and the geometry properties inherit down, so no JS runs."
|
|
108
|
+
],
|
|
109
|
+
"whenNotToUse": [
|
|
110
|
+
"The whole document. Set density on the provider.",
|
|
111
|
+
"One control's height. Use that control's `size`."
|
|
112
|
+
],
|
|
113
|
+
"commonMistakes": [
|
|
114
|
+
"Reading the React context to style something. The DOM attributes are the source of truth; the context exists for the rare JS reads like portal stamping."
|
|
115
|
+
]
|
|
93
116
|
}
|
|
@@ -67,14 +67,27 @@
|
|
|
67
67
|
"--cue-space-3",
|
|
68
68
|
"--cue-space-5",
|
|
69
69
|
"--cue-text-label",
|
|
70
|
-
"--cue-text-ui"
|
|
70
|
+
"--cue-text-ui",
|
|
71
|
+
"--cue-tracking-caps"
|
|
71
72
|
],
|
|
72
|
-
"summary": "The `<dl>` family:
|
|
73
|
+
"summary": "The `<dl>` family: a root, `Term` and `Detail`.",
|
|
73
74
|
"examples": [],
|
|
74
|
-
"status": "
|
|
75
|
+
"status": "stable",
|
|
75
76
|
"url": "/docs/components/description-list",
|
|
76
77
|
"mdUrl": "/docs/components/description-list.md",
|
|
77
78
|
"jsonUrl": "/r/components/description-list.json",
|
|
79
|
+
"whenToUse": [
|
|
80
|
+
"Name/value pairs that belong together: metadata, a settings summary, a specification.",
|
|
81
|
+
"Anywhere the pairing should exist in the accessibility tree rather than only in the layout."
|
|
82
|
+
],
|
|
83
|
+
"whenNotToUse": [
|
|
84
|
+
"Tabular data with more than one value per row. Use a table.",
|
|
85
|
+
"A form. A description list shows values; it does not edit them."
|
|
86
|
+
],
|
|
87
|
+
"commonMistakes": [
|
|
88
|
+
"Faking it with a two-column `Grid`, which loses the `<dl>` semantics that make the pairing real.",
|
|
89
|
+
"Putting a `Detail` with no `Term`, which leaves a value nothing names."
|
|
90
|
+
],
|
|
78
91
|
"specimens": [
|
|
79
92
|
{
|
|
80
93
|
"title": "DescriptionList",
|
|
@@ -86,6 +99,5 @@
|
|
|
86
99
|
"note": "Two layouts: inline pairs for a sidebar, stacked for a page.",
|
|
87
100
|
"interaction": "none."
|
|
88
101
|
}
|
|
89
|
-
]
|
|
90
|
-
"todo": true
|
|
102
|
+
]
|
|
91
103
|
}
|
|
@@ -106,10 +106,21 @@
|
|
|
106
106
|
"language": "tsx"
|
|
107
107
|
}
|
|
108
108
|
],
|
|
109
|
-
"status": "
|
|
109
|
+
"status": "stable",
|
|
110
110
|
"url": "/docs/components/diagram",
|
|
111
111
|
"mdUrl": "/docs/components/diagram.md",
|
|
112
112
|
"jsonUrl": "/r/components/diagram.json",
|
|
113
|
+
"whenToUse": [
|
|
114
|
+
"A rendered graphic that needs a titled frame with zoom, reset and expand around it.",
|
|
115
|
+
"A drawing small enough to sit inline but worth opening full screen, through `onExpand`."
|
|
116
|
+
],
|
|
117
|
+
"whenNotToUse": [
|
|
118
|
+
"Markup you want the element to parse. It never parses or injects markup itself, so whatever renders your chart stays your choice."
|
|
119
|
+
],
|
|
120
|
+
"commonMistakes": [
|
|
121
|
+
"Expecting the zoom controls to clamp. `onZoomIn` and `onZoomOut` only report the press — clamp the range yourself.",
|
|
122
|
+
"Passing `zoom` as a percentage. 1 is fit, and the header prints the percentage for you."
|
|
123
|
+
],
|
|
113
124
|
"specimens": [
|
|
114
125
|
{
|
|
115
126
|
"title": "Diagram",
|
|
@@ -121,6 +132,5 @@
|
|
|
121
132
|
"note": "A drawn answer with a viewport around it: zoom, reset, full-bleed. The graphic is yours — the element supplies the frame, the percentage readout and the transform, and never parses or renders anything itself.",
|
|
122
133
|
"interaction": "four named icon buttons; expand disables itself when no handler is given, which is the honest state for a bench with nowhere to expand to. The scale transition stops under reduced motion."
|
|
123
134
|
}
|
|
124
|
-
]
|
|
125
|
-
"todo": true
|
|
135
|
+
]
|
|
126
136
|
}
|