@cueplusplus/ui 0.3.0 → 0.6.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 +2263 -0
- package/dist/agent-runtime/_glyphs.js +43 -0
- package/dist/agent-runtime/branch-picker.d.ts +45 -0
- package/dist/agent-runtime/branch-picker.js +87 -0
- package/dist/agent-runtime/index.d.ts +4 -0
- package/dist/agent-runtime/index.js +4 -0
- package/dist/agent-runtime/tool-call-card.d.ts +69 -0
- package/dist/agent-runtime/tool-call-card.js +187 -0
- package/dist/agent-runtime/use-agent-thread.d.ts +164 -0
- package/dist/agent-runtime/use-agent-thread.js +251 -0
- package/dist/chat/index.d.ts +2 -2
- package/dist/chat/message-list.d.ts +6 -0
- package/dist/chat/message-list.js +35 -0
- package/dist/chrome/_drag.js +59 -0
- package/dist/chrome/_status-bar-item.js +85 -0
- package/dist/chrome/_status-bar.d.ts +15 -0
- package/dist/chrome/_status-bar.js +171 -0
- package/dist/chrome/app-shell.d.ts +120 -2
- package/dist/chrome/app-shell.js +107 -8
- package/dist/chrome/index.d.ts +4 -3
- package/dist/chrome/status-bar.d.ts +87 -4
- package/dist/chrome/status-bar.js +80 -16
- package/dist/chrome/title-bar.d.ts +11 -1
- package/dist/chrome/title-bar.js +1 -3
- package/dist/configurator/_export.js +3 -2
- package/dist/configurator/_overrides.d.ts +1 -1
- package/dist/configurator/token-editor.js +4 -1
- package/dist/date/_segments.js +52 -6
- package/dist/elements/activity-graph.d.ts +40 -0
- package/dist/elements/activity-graph.js +81 -0
- package/dist/elements/agent-card.d.ts +49 -0
- package/dist/elements/agent-card.js +91 -0
- package/dist/elements/agent-handoff.d.ts +24 -0
- package/dist/elements/agent-handoff.js +53 -0
- package/dist/elements/agent-mode-badge.d.ts +72 -0
- package/dist/elements/agent-mode-badge.js +110 -0
- package/dist/elements/agent-plan.d.ts +24 -0
- package/dist/elements/agent-plan.js +74 -0
- package/dist/elements/agent-status.d.ts +29 -0
- package/dist/elements/agent-status.js +46 -0
- package/dist/elements/agent-surface.d.ts +65 -0
- package/dist/elements/agent-surface.js +68 -0
- package/dist/elements/animated-number.d.ts +86 -0
- package/dist/elements/animated-number.js +118 -0
- package/dist/elements/approval-card.d.ts +40 -0
- package/dist/elements/approval-card.js +78 -0
- package/dist/elements/artifact-card.d.ts +30 -0
- package/dist/elements/artifact-card.js +58 -0
- package/dist/elements/background-inbox.d.ts +39 -0
- package/dist/elements/background-inbox.js +60 -0
- package/dist/elements/canvas-split.d.ts +77 -0
- package/dist/elements/canvas-split.js +138 -0
- package/dist/elements/chart.d.ts +41 -0
- package/dist/elements/chart.js +117 -0
- package/dist/elements/chat-panel.d.ts +46 -0
- package/dist/elements/chat-panel.js +104 -0
- package/dist/elements/checkpoint-history.d.ts +31 -0
- package/dist/elements/checkpoint-history.js +65 -0
- package/dist/elements/clamp.d.ts +90 -0
- package/dist/elements/clamp.js +109 -0
- package/dist/elements/code-diff.d.ts +42 -0
- package/dist/elements/code-diff.js +69 -0
- package/dist/elements/code-runner.d.ts +38 -0
- package/dist/elements/code-runner.js +84 -0
- package/dist/elements/command-palette.d.ts +48 -0
- package/dist/elements/command-palette.js +129 -0
- package/dist/elements/compaction-row.d.ts +63 -0
- package/dist/elements/compaction-row.js +110 -0
- package/dist/elements/comparison-card.d.ts +47 -0
- package/dist/elements/comparison-card.js +69 -0
- package/dist/elements/composer.d.ts +274 -0
- package/dist/elements/composer.js +505 -0
- package/dist/elements/computer-use.d.ts +40 -0
- package/dist/elements/computer-use.js +92 -0
- package/dist/elements/confidence-marker.d.ts +39 -0
- package/dist/elements/confidence-marker.js +64 -0
- package/dist/elements/connection-state.d.ts +29 -0
- package/dist/elements/connection-state.js +66 -0
- package/dist/elements/context-breakdown.d.ts +30 -0
- package/dist/elements/context-breakdown.js +86 -0
- package/dist/elements/context-usage.d.ts +99 -0
- package/dist/elements/context-usage.js +225 -0
- package/dist/elements/conversation-search.d.ts +48 -0
- package/dist/elements/conversation-search.js +88 -0
- package/dist/elements/cost-meter.d.ts +33 -0
- package/dist/elements/cost-meter.js +75 -0
- package/dist/elements/data-table.d.ts +31 -0
- package/dist/elements/data-table.js +67 -0
- package/dist/elements/day-separator.d.ts +34 -0
- package/dist/elements/day-separator.js +50 -0
- package/dist/elements/diagram.d.ts +34 -0
- package/dist/elements/diagram.js +75 -0
- package/dist/elements/document-reference.d.ts +37 -0
- package/dist/elements/document-reference.js +66 -0
- package/dist/elements/draft-restore.d.ts +27 -0
- package/dist/elements/draft-restore.js +54 -0
- package/dist/elements/edit-message.d.ts +36 -0
- package/dist/elements/edit-message.js +77 -0
- package/dist/elements/elements.css +459 -0
- package/dist/elements/elicitation-form.d.ts +48 -0
- package/dist/elements/elicitation-form.js +106 -0
- package/dist/elements/empty-state.d.ts +52 -0
- package/dist/elements/empty-state.js +98 -0
- package/dist/elements/end-of-turn-summary.d.ts +60 -0
- package/dist/elements/end-of-turn-summary.js +75 -0
- package/dist/elements/error-state.d.ts +29 -0
- package/dist/elements/error-state.js +55 -0
- package/dist/elements/feedback-dialog.d.ts +36 -0
- package/dist/elements/feedback-dialog.js +81 -0
- package/dist/elements/file-tree.d.ts +45 -0
- package/dist/elements/file-tree.js +84 -0
- package/dist/elements/flow-graph.d.ts +45 -0
- package/dist/elements/flow-graph.js +78 -0
- package/dist/elements/generative/chart.js +200 -0
- package/dist/elements/generative/faults.js +111 -0
- package/dist/elements/generative/icons.d.ts +41 -0
- package/dist/elements/generative/icons.js +190 -0
- package/dist/elements/generative/intrinsics.js +483 -0
- package/dist/elements/generative/spec.d.ts +110 -0
- package/dist/elements/generative/spec.js +366 -0
- package/dist/elements/generative.css +1145 -0
- package/dist/elements/generative.d.ts +144 -0
- package/dist/elements/generative.js +126 -0
- package/dist/elements/guardrail-notice.d.ts +29 -0
- package/dist/elements/guardrail-notice.js +63 -0
- package/dist/elements/image-generation.d.ts +18 -0
- package/dist/elements/image-generation.js +64 -0
- package/dist/elements/index.d.ts +116 -0
- package/dist/elements/index.js +115 -0
- package/dist/elements/inline-citation.d.ts +43 -0
- package/dist/elements/inline-citation.js +93 -0
- package/dist/elements/job-progress.d.ts +49 -0
- package/dist/elements/job-progress.js +74 -0
- package/dist/elements/launcher-bubble.d.ts +34 -0
- package/dist/elements/launcher-bubble.js +72 -0
- package/dist/elements/live-region-announcer.d.ts +130 -0
- package/dist/elements/live-region-announcer.js +230 -0
- package/dist/elements/loading-state.d.ts +27 -0
- package/dist/elements/loading-state.js +36 -0
- package/dist/elements/map-answer.d.ts +38 -0
- package/dist/elements/map-answer.js +93 -0
- package/dist/elements/markdown.d.ts +131 -0
- package/dist/elements/markdown.js +528 -0
- package/dist/elements/math-block.d.ts +51 -0
- package/dist/elements/math-block.js +70 -0
- package/dist/elements/mcp-server-panel.d.ts +41 -0
- package/dist/elements/mcp-server-panel.js +115 -0
- package/dist/elements/memory-chips.d.ts +30 -0
- package/dist/elements/memory-chips.js +43 -0
- package/dist/elements/message-actions.d.ts +38 -0
- package/dist/elements/message-actions.js +71 -0
- package/dist/elements/message-attachment.d.ts +48 -0
- package/dist/elements/message-attachment.js +63 -0
- package/dist/elements/message-branches.d.ts +25 -0
- package/dist/elements/message-branches.js +65 -0
- package/dist/elements/message-pair.d.ts +33 -0
- package/dist/elements/message-pair.js +65 -0
- package/dist/elements/message-queue.d.ts +31 -0
- package/dist/elements/message-queue.js +80 -0
- package/dist/elements/message-timing.d.ts +33 -0
- package/dist/elements/message-timing.js +37 -0
- package/dist/elements/mobile-composer.d.ts +44 -0
- package/dist/elements/mobile-composer.js +88 -0
- package/dist/elements/model-picker.d.ts +38 -0
- package/dist/elements/model-picker.js +69 -0
- package/dist/elements/number-ticker.d.ts +18 -0
- package/dist/elements/number-ticker.js +47 -0
- package/dist/elements/onboarding.d.ts +30 -0
- package/dist/elements/onboarding.js +75 -0
- package/dist/elements/permission-grant.d.ts +35 -0
- package/dist/elements/permission-grant.js +86 -0
- package/dist/elements/permission-scopes.d.ts +215 -0
- package/dist/elements/permission-scopes.js +249 -0
- package/dist/elements/prompt-library.d.ts +43 -0
- package/dist/elements/prompt-library.js +117 -0
- package/dist/elements/queue-dock.d.ts +101 -0
- package/dist/elements/queue-dock.js +132 -0
- package/dist/elements/quota-banner.d.ts +26 -0
- package/dist/elements/quota-banner.js +66 -0
- package/dist/elements/quote-reply.d.ts +44 -0
- package/dist/elements/quote-reply.js +79 -0
- package/dist/elements/range.d.ts +29 -0
- package/dist/elements/range.js +45 -0
- package/dist/elements/read-aloud.d.ts +45 -0
- package/dist/elements/read-aloud.js +75 -0
- package/dist/elements/reasoning-effort.d.ts +36 -0
- package/dist/elements/reasoning-effort.js +67 -0
- package/dist/elements/reasoning-panel.d.ts +46 -0
- package/dist/elements/reasoning-panel.js +75 -0
- package/dist/elements/recommendation-card.d.ts +45 -0
- package/dist/elements/recommendation-card.js +83 -0
- package/dist/elements/regenerate-menu.d.ts +45 -0
- package/dist/elements/regenerate-menu.js +51 -0
- package/dist/elements/replay.d.ts +217 -0
- package/dist/elements/replay.js +498 -0
- package/dist/elements/research-report.d.ts +38 -0
- package/dist/elements/research-report.js +69 -0
- package/dist/elements/retrieval-chunks.d.ts +43 -0
- package/dist/elements/retrieval-chunks.js +81 -0
- package/dist/elements/revert-dock.d.ts +159 -0
- package/dist/elements/revert-dock.js +327 -0
- package/dist/elements/reviewable-diff.d.ts +45 -0
- package/dist/elements/reviewable-diff.js +110 -0
- package/dist/elements/risk-badge.d.ts +52 -0
- package/dist/elements/risk-badge.js +91 -0
- package/dist/elements/schedule-card.d.ts +42 -0
- package/dist/elements/schedule-card.js +90 -0
- package/dist/elements/score-breakdown.d.ts +47 -0
- package/dist/elements/score-breakdown.js +82 -0
- package/dist/elements/scroll-anchor.d.ts +32 -0
- package/dist/elements/scroll-anchor.js +121 -0
- package/dist/elements/settings-panel.d.ts +52 -0
- package/dist/elements/settings-panel.js +107 -0
- package/dist/elements/shared-conversation.d.ts +39 -0
- package/dist/elements/shared-conversation.js +68 -0
- package/dist/elements/sources.d.ts +33 -0
- package/dist/elements/sources.js +61 -0
- package/dist/elements/speaker-identity.d.ts +32 -0
- package/dist/elements/speaker-identity.js +51 -0
- package/dist/elements/spec-sheet.d.ts +31 -0
- package/dist/elements/spec-sheet.js +45 -0
- package/dist/elements/stopped-run.d.ts +22 -0
- package/dist/elements/stopped-run.js +50 -0
- package/dist/elements/streaming-text.d.ts +31 -0
- package/dist/elements/streaming-text.js +45 -0
- package/dist/elements/subagent-list.d.ts +37 -0
- package/dist/elements/subagent-list.js +79 -0
- package/dist/elements/suggestions.d.ts +30 -0
- package/dist/elements/suggestions.js +36 -0
- package/dist/elements/surfaces.d.ts +85 -0
- package/dist/elements/surfaces.js +107 -0
- package/dist/elements/tail-status.d.ts +131 -0
- package/dist/elements/tail-status.js +94 -0
- package/dist/elements/terminal-block.d.ts +29 -0
- package/dist/elements/terminal-block.js +54 -0
- package/dist/elements/thinking-indicator.d.ts +18 -0
- package/dist/elements/thinking-indicator.js +36 -0
- package/dist/elements/thread-list.d.ts +35 -0
- package/dist/elements/thread-list.js +68 -0
- package/dist/elements/thread-search.d.ts +42 -0
- package/dist/elements/thread-search.js +99 -0
- package/dist/elements/timeline.d.ts +37 -0
- package/dist/elements/timeline.js +46 -0
- package/dist/elements/todo-list.d.ts +42 -0
- package/dist/elements/todo-list.js +59 -0
- package/dist/elements/tool-call.d.ts +41 -0
- package/dist/elements/tool-call.js +85 -0
- package/dist/elements/tool-error.d.ts +39 -0
- package/dist/elements/tool-error.js +76 -0
- package/dist/elements/tool-group.d.ts +45 -0
- package/dist/elements/tool-group.js +71 -0
- package/dist/elements/tool-timeline.d.ts +65 -0
- package/dist/elements/tool-timeline.js +88 -0
- package/dist/elements/trace-waterfall.d.ts +37 -0
- package/dist/elements/trace-waterfall.js +69 -0
- package/dist/elements/transcript-rules.d.ts +67 -0
- package/dist/elements/transcript-rules.js +95 -0
- package/dist/elements/turn-footer.d.ts +74 -0
- package/dist/elements/turn-footer.js +101 -0
- package/dist/elements/typing-indicator.d.ts +16 -0
- package/dist/elements/typing-indicator.js +51 -0
- package/dist/elements/verdict-row.d.ts +89 -0
- package/dist/elements/verdict-row.js +150 -0
- package/dist/elements/vocabulary.d.ts +612 -0
- package/dist/elements/vocabulary.js +611 -0
- package/dist/elements/voice-conversation.d.ts +49 -0
- package/dist/elements/voice-conversation.js +123 -0
- package/dist/elements/web-preview.d.ts +32 -0
- package/dist/elements/web-preview.js +66 -0
- package/dist/elements/web-search.d.ts +37 -0
- package/dist/elements/web-search.js +66 -0
- package/dist/elements/work-collapse.d.ts +103 -0
- package/dist/elements/work-collapse.js +131 -0
- package/dist/forms/_chassis.d.ts +104 -4
- package/dist/forms/_chassis.js +104 -4
- package/dist/forms/input-group.d.ts +8 -3
- package/dist/forms/input-group.js +8 -3
- package/dist/forms/number-field.d.ts +3 -2
- package/dist/forms/number-field.js +3 -2
- package/dist/icons/containers.d.ts +89 -0
- package/dist/icons/containers.js +295 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/index.d.ts +12 -6
- package/dist/index.js +5 -1
- package/dist/instruments/_data-row.js +118 -0
- package/dist/instruments/data-row.d.ts +94 -0
- package/dist/instruments/data-row.js +151 -0
- package/dist/instruments/data-tree.d.ts +126 -0
- package/dist/instruments/data-tree.js +303 -0
- package/dist/instruments/index.d.ts +5 -2
- package/dist/instruments/index.js +4 -1
- package/dist/instruments/ledger.d.ts +105 -0
- package/dist/instruments/ledger.js +114 -0
- package/dist/instruments/table.d.ts +70 -2
- package/dist/instruments/table.js +133 -39
- package/dist/instruments/two-step-button.js +25 -6
- package/dist/layout/sidebar.d.ts +19 -1
- package/dist/layout/sidebar.js +19 -1
- package/dist/primitives/button.js +11 -1
- package/dist/primitives/chip.d.ts +35 -9
- package/dist/primitives/chip.js +97 -11
- package/dist/system/agent-skin.d.ts +27 -0
- package/dist/system/agent-skin.js +20 -0
- package/dist/system/portal.d.ts +5 -3
- package/dist/system/portal.js +19 -5
- package/dist/system/theme-provider.js +54 -9
- package/dist/system/use-density.d.ts +9 -0
- package/dist/system/use-density.js +9 -0
- package/dist/system/use-isomorphic-layout-effect.js +19 -1
- package/dist/theming/_presets.d.ts +1 -1
- package/dist/theming/_presets.js +74 -11
- package/dist/theming/contrast.d.ts +16 -4
- package/dist/theming/contrast.js +33 -6
- package/dist/theming/create-theme.d.ts +6 -2
- package/dist/theming/create-theme.js +32 -5
- package/dist/theming/serialize.d.ts +10 -1
- package/dist/theming/serialize.js +62 -8
- package/manifest/components/activity-graph.json +88 -0
- package/manifest/components/agent-card.json +120 -0
- package/manifest/components/agent-handoff.json +87 -0
- package/manifest/components/agent-mode-badge.json +84 -0
- package/manifest/components/agent-plan.json +67 -0
- package/manifest/components/agent-status.json +73 -0
- package/manifest/components/agent-surface.json +78 -0
- package/manifest/components/alert-dialog.json +1 -1
- package/manifest/components/animated-number.json +67 -0
- package/manifest/components/app-shell.json +142 -9
- package/manifest/components/approval-card.json +106 -0
- package/manifest/components/artifact-card.json +81 -0
- package/manifest/components/audience-icon.json +52 -0
- package/manifest/components/autocomplete.json +2 -0
- package/manifest/components/background-inbox.json +71 -0
- package/manifest/components/branch-picker.json +124 -0
- package/manifest/components/button.json +1 -0
- package/manifest/components/canvas-split-body.json +62 -0
- package/manifest/components/canvas-split-document.json +54 -0
- package/manifest/components/canvas-split-header.json +83 -0
- package/manifest/components/canvas-split-line.json +62 -0
- package/manifest/components/canvas-split-message.json +62 -0
- package/manifest/components/canvas-split-thread.json +54 -0
- package/manifest/components/canvas-split.json +60 -0
- package/manifest/components/catalogue-icon.json +52 -0
- package/manifest/components/channel-beta-icon.json +52 -0
- package/manifest/components/channel-released-icon.json +52 -0
- package/manifest/components/chart.json +93 -0
- package/manifest/components/chat-empty-state.json +55 -0
- package/manifest/components/chat-panel-assistant-message.json +51 -0
- package/manifest/components/chat-panel-composer.json +66 -0
- package/manifest/components/chat-panel-messages.json +51 -0
- package/manifest/components/chat-panel-typing.json +51 -0
- package/manifest/components/chat-panel-user-message.json +51 -0
- package/manifest/components/chat-panel.json +57 -0
- package/manifest/components/checkpoint-history.json +80 -0
- package/manifest/components/chip.json +24 -12
- package/manifest/components/clamp.json +102 -0
- package/manifest/components/cli-tool-icon.json +52 -0
- package/manifest/components/code-diff.json +87 -0
- package/manifest/components/code-runner.json +97 -0
- package/manifest/components/color-field.json +2 -0
- package/manifest/components/color-picker.json +2 -0
- package/manifest/components/combobox.json +2 -0
- package/manifest/components/compaction-row.json +100 -0
- package/manifest/components/comparison-card.json +83 -0
- package/manifest/components/composer-actions.json +65 -0
- package/manifest/components/composer-attach-button.json +65 -0
- package/manifest/components/composer-attachment-chip.json +75 -0
- package/manifest/components/composer-attachments.json +60 -0
- package/manifest/components/composer-bar.json +73 -0
- package/manifest/components/composer-command-item.json +79 -0
- package/manifest/components/composer-context.json +67 -0
- package/manifest/components/composer-input.json +73 -0
- package/manifest/components/composer-menu-item.json +72 -0
- package/manifest/components/composer-menu.json +79 -0
- package/manifest/components/composer-model-item.json +75 -0
- package/manifest/components/composer-model-trigger.json +75 -0
- package/manifest/components/composer-person-item.json +79 -0
- package/manifest/components/composer-send.json +80 -0
- package/manifest/components/composer-toolbar.json +65 -0
- package/manifest/components/composer-voice-button.json +68 -0
- package/manifest/components/composer-voice.json +75 -0
- package/manifest/components/composer.json +2 -0
- package/manifest/components/computer-use.json +84 -0
- package/manifest/components/confidence-marker.json +74 -0
- package/manifest/components/connection-state.json +84 -0
- package/manifest/components/context-breakdown.json +65 -0
- package/manifest/components/context-usage.json +85 -0
- package/manifest/components/conversation-search.json +92 -0
- package/manifest/components/cost-meter.json +74 -0
- package/manifest/components/cue-portal-frame.json +1 -1
- package/manifest/components/data-row.json +203 -0
- package/manifest/components/data-tree.json +151 -0
- package/manifest/components/date-field.json +2 -0
- package/manifest/components/date-picker.json +2 -0
- package/manifest/components/date-range-picker.json +2 -0
- package/manifest/components/day-separator.json +58 -0
- package/manifest/components/delegation-card.json +1 -1
- package/manifest/components/density.json +1 -1
- package/manifest/components/diagram.json +100 -0
- package/manifest/components/document-reference.json +90 -0
- package/manifest/components/draft-restore.json +82 -0
- package/manifest/components/drawer.json +1 -1
- package/manifest/components/dropdown-menu.json +1 -1
- package/manifest/components/edit-message.json +105 -0
- package/manifest/components/elements-command-palette.json +100 -0
- package/manifest/components/elements-composer.json +71 -0
- package/manifest/components/elements-data-table.json +68 -0
- package/manifest/components/elements-timeline.json +69 -0
- package/manifest/components/elicitation-form.json +103 -0
- package/manifest/components/empty-state-composer.json +64 -0
- package/manifest/components/empty-state-greeting.json +49 -0
- package/manifest/components/empty-state-suggestion.json +57 -0
- package/manifest/components/empty-state-suggestions.json +49 -0
- package/manifest/components/end-of-turn-summary.json +77 -0
- package/manifest/components/env-var-input.json +2 -0
- package/manifest/components/error-state.json +80 -0
- package/manifest/components/feedback-dialog.json +107 -0
- package/manifest/components/file-tree.json +83 -0
- package/manifest/components/flow-graph.json +75 -0
- package/manifest/components/folder-icon.json +52 -0
- package/manifest/components/frac.json +59 -0
- package/manifest/components/generation-loader.json +64 -0
- package/manifest/components/generative-ui.json +93 -0
- package/manifest/components/guardrail-notice.json +91 -0
- package/manifest/components/hover-card.json +1 -1
- package/manifest/components/image-generation.json +67 -0
- package/manifest/components/info-tip.json +1 -1
- package/manifest/components/inline-citation.json +77 -0
- package/manifest/components/input-group.json +4 -2
- package/manifest/components/input.json +3 -1
- package/manifest/components/job-progress.json +96 -0
- package/manifest/components/launcher-bubble.json +105 -0
- package/manifest/components/ledger.json +187 -0
- package/manifest/components/live-region-announcer.json +79 -0
- package/manifest/components/map-answer.json +83 -0
- package/manifest/components/markdown-text.json +94 -0
- package/manifest/components/math-block.json +74 -0
- package/manifest/components/mcp-server-icon.json +52 -0
- package/manifest/components/mcp-server-panel.json +87 -0
- package/manifest/components/memory-chips.json +65 -0
- package/manifest/components/message-actions.json +99 -0
- package/manifest/components/message-attachments.json +63 -0
- package/manifest/components/message-branches.json +71 -0
- package/manifest/components/message-list.json +1 -1
- package/manifest/components/message-pair.json +86 -0
- package/manifest/components/message-queue.json +74 -0
- package/manifest/components/message-timing.json +62 -0
- package/manifest/components/mobile-composer.json +126 -0
- package/manifest/components/model-picker.json +76 -0
- package/manifest/components/multi-select.json +2 -0
- package/manifest/components/musical-time-input.json +2 -0
- package/manifest/components/node-card.json +1 -1
- package/manifest/components/node-handle.json +1 -1
- package/manifest/components/number-field.json +3 -1
- package/manifest/components/number-ticker.json +61 -0
- package/manifest/components/onboarding.json +84 -0
- package/manifest/components/otp-field.json +9 -7
- package/manifest/components/password-input.json +2 -0
- package/manifest/components/permission-grant.json +92 -0
- package/manifest/components/permission-scopes.json +139 -0
- package/manifest/components/popover.json +1 -1
- package/manifest/components/prompt-library.json +99 -0
- package/manifest/components/queue-dock.json +110 -0
- package/manifest/components/quota-banner.json +94 -0
- package/manifest/components/quote-reply.json +105 -0
- package/manifest/components/read-aloud.json +111 -0
- package/manifest/components/reasoning-effort.json +81 -0
- package/manifest/components/reasoning-panel.json +108 -0
- package/manifest/components/recommendation-card.json +107 -0
- package/manifest/components/regenerate-menu.json +89 -0
- package/manifest/components/replay-player.json +102 -0
- package/manifest/components/research-report.json +76 -0
- package/manifest/components/retrieval-chunks.json +84 -0
- package/manifest/components/revert-dock.json +150 -0
- package/manifest/components/reviewable-diff.json +93 -0
- package/manifest/components/risk-badge.json +74 -0
- package/manifest/components/schedule-card.json +101 -0
- package/manifest/components/score-breakdown.json +91 -0
- package/manifest/components/scroll-anchor.json +72 -0
- package/manifest/components/scroll-area.json +7 -7
- package/manifest/components/scrub-input.json +2 -0
- package/manifest/components/search-input.json +9 -7
- package/manifest/components/segmented-control.json +21 -21
- package/manifest/components/select.json +1 -0
- package/manifest/components/settings-panel.json +118 -0
- package/manifest/components/shared-conversation.json +89 -0
- package/manifest/components/shimmer-label.json +59 -0
- package/manifest/components/skill-icon.json +52 -0
- package/manifest/components/sources.json +83 -0
- package/manifest/components/speaker-identity.json +61 -0
- package/manifest/components/spec-sheet.json +80 -0
- package/manifest/components/stack-icon.json +52 -0
- package/manifest/components/stacks-matrix-icon.json +52 -0
- package/manifest/components/stat.json +1 -1
- package/manifest/components/status-bar.json +146 -12
- package/manifest/components/status-dot.json +1 -1
- package/manifest/components/stopped-run.json +81 -0
- package/manifest/components/streaming-text.json +71 -0
- package/manifest/components/sub.json +44 -0
- package/manifest/components/subagent-list.json +88 -0
- package/manifest/components/suggestions.json +84 -0
- package/manifest/components/sup.json +44 -0
- package/manifest/components/swap-label.json +71 -0
- package/manifest/components/table-scroll-region.json +6 -0
- package/manifest/components/table.json +88 -4
- package/manifest/components/tags-input.json +2 -0
- package/manifest/components/tail-status.json +109 -0
- package/manifest/components/terminal-block.json +91 -0
- package/manifest/components/textarea.json +3 -1
- package/manifest/components/theme-provider.json +2 -2
- package/manifest/components/thinking-indicator.json +63 -0
- package/manifest/components/thread-list.json +76 -0
- package/manifest/components/thread-search.json +90 -0
- package/manifest/components/threshold-rail.json +2 -2
- package/manifest/components/time-boundary.json +62 -0
- package/manifest/components/time-field.json +2 -0
- package/manifest/components/timeline.json +1 -1
- package/manifest/components/title-bar.json +1 -1
- package/manifest/components/todo-list.json +69 -0
- package/manifest/components/toggle-group.json +9 -7
- package/manifest/components/toggle.json +2 -0
- package/manifest/components/token-editor.json +1 -1
- package/manifest/components/tool-call-card.json +200 -0
- package/manifest/components/tool-call.json +119 -0
- package/manifest/components/tool-error.json +114 -0
- package/manifest/components/tool-group.json +83 -0
- package/manifest/components/tool-timeline.json +119 -0
- package/manifest/components/toolbar.json +7 -7
- package/manifest/components/tooltip.json +1 -1
- package/manifest/components/trace-waterfall.json +74 -0
- package/manifest/components/turn-footer.json +105 -0
- package/manifest/components/typing-indicator.json +53 -0
- package/manifest/components/unread-divider.json +55 -0
- package/manifest/components/usage-chart.json +1 -1
- package/manifest/components/verdict-row.json +91 -0
- package/manifest/components/voice-conversation.json +109 -0
- package/manifest/components/web-preview.json +87 -0
- package/manifest/components/web-search.json +92 -0
- package/manifest/components/work-collapse.json +102 -0
- package/manifest/manifest.json +2736 -60
- package/manifest/tokens.json +22 -1
- package/package.json +44 -2
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ChatPanel",
|
|
3
|
+
"slug": "chat-panel",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The whole family working together: a message, a pause, a streamed reply.",
|
|
11
|
+
"props": [],
|
|
12
|
+
"typeReferences": [
|
|
13
|
+
"ComponentProps<\"div\">"
|
|
14
|
+
],
|
|
15
|
+
"subcomponents": [],
|
|
16
|
+
"parts": [],
|
|
17
|
+
"variants": {},
|
|
18
|
+
"defaultVariants": {},
|
|
19
|
+
"tokensUsed": [
|
|
20
|
+
"--cue-fg-muted",
|
|
21
|
+
"--cue-fg-subtle",
|
|
22
|
+
"--cue-radius-overlay",
|
|
23
|
+
"--cue-surface-3",
|
|
24
|
+
"--cue-text-body",
|
|
25
|
+
"--cue-text-ui"
|
|
26
|
+
],
|
|
27
|
+
"summary": "The whole family working together: a message, a pause, a streamed reply.",
|
|
28
|
+
"examples": [
|
|
29
|
+
{
|
|
30
|
+
"title": "Usage",
|
|
31
|
+
"code": "import {\n ChatPanel,\n ChatPanelComposer,\n ChatPanelMessages,\n ChatPanelTyping,\n ChatPanelUserMessage,\n} from \"@cueplusplus/ui/elements\";\n\n<ChatPanel>\n <ChatPanelMessages>\n <ChatPanelUserMessage>Why did my draft disappear?</ChatPanelUserMessage>\n <ChatPanelTyping />\n </ChatPanelMessages>\n <ChatPanelComposer placeholder=\"Message\" onSend={send} />\n</ChatPanel>",
|
|
32
|
+
"language": "tsx"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"status": "todo-docs",
|
|
36
|
+
"url": "/docs/components/chat-panel",
|
|
37
|
+
"mdUrl": "/docs/components/chat-panel.md",
|
|
38
|
+
"jsonUrl": "/r/components/chat-panel.json",
|
|
39
|
+
"specimens": [
|
|
40
|
+
{
|
|
41
|
+
"title": "ChatPanel",
|
|
42
|
+
"group": "elements",
|
|
43
|
+
"components": [
|
|
44
|
+
"ChatPanel",
|
|
45
|
+
"ChatPanelMessages",
|
|
46
|
+
"ChatPanelUserMessage",
|
|
47
|
+
"ChatPanelAssistantMessage",
|
|
48
|
+
"ChatPanelTyping",
|
|
49
|
+
"ChatPanelComposer"
|
|
50
|
+
],
|
|
51
|
+
"code": "<Specimens>\n <Specimen label=\"a turn\" wide>\n <ChatPanel>\n <ChatPanelMessages>\n <ChatPanelUserMessage>\n Patch the front truss on universe 3 and tell me what moved.\n </ChatPanelUserMessage>\n {replied ? (\n <ChatPanelAssistantMessage>\n 6 fixtures on channels 1 to 48. Cue 1 holds at 3.0s.\n </ChatPanelAssistantMessage>\n ) : (\n <ChatPanelTyping />\n )}\n </ChatPanelMessages>\n <ChatPanelComposer\n placeholder=\"Ask the rig\"\n onSend={() => setReplied((was) => !was)}\n />\n </ChatPanel>\n </Specimen>\n</Specimens>",
|
|
52
|
+
"note": "The six parts working together, which is what the whole family is for. The person's turn is a filled bubble on the trailing edge, the model's is plain text on the leading one, and the transcript is bottom-aligned so a short conversation sits on the composer rather than floating.",
|
|
53
|
+
"interaction": "the send control is the only live thing here; use it and the reply is replaced by the three-dot pause, then comes back."
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"todo": true
|
|
57
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CheckpointHistory",
|
|
3
|
+
"slug": "checkpoint-history",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "Points you can fall back to, with what each one would give back.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "checkpoints",
|
|
14
|
+
"type": "readonly Checkpoint[]",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Points in the run you can fall back to, oldest first."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "currentId",
|
|
21
|
+
"type": "string",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "Where the run stands. Everything after it dims, since restoring would discard it."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "onRestore",
|
|
28
|
+
"type": "((id: string) => void)",
|
|
29
|
+
"required": false,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "Called with the checkpoint to return to."
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"typeReferences": [
|
|
35
|
+
"Omit<\n ComponentProps<\"div\">,\n \"children\" | \"checkpoints\" | \"currentId\" | \"onRestore\"\n> & {\n /** Points in the run you can fall back to, oldest first. */\n checkpoints: readonly Checkpoint[];\n /** Where the run stands. Everything after it dims, since restoring would discard it. */\n currentId: string;\n /** Called with the checkpoint to return to. */\n onRestore?: (id: string) => void;\n}"
|
|
36
|
+
],
|
|
37
|
+
"subcomponents": [],
|
|
38
|
+
"parts": [],
|
|
39
|
+
"variants": {},
|
|
40
|
+
"defaultVariants": {},
|
|
41
|
+
"tokensUsed": [
|
|
42
|
+
"--cue-border-strong",
|
|
43
|
+
"--cue-fg",
|
|
44
|
+
"--cue-fg-muted",
|
|
45
|
+
"--cue-fg-subtle",
|
|
46
|
+
"--cue-radius-overlay",
|
|
47
|
+
"--cue-radius-surface",
|
|
48
|
+
"--cue-stream",
|
|
49
|
+
"--cue-surface-1",
|
|
50
|
+
"--cue-surface-2",
|
|
51
|
+
"--cue-surface-3",
|
|
52
|
+
"--cue-text-body",
|
|
53
|
+
"--cue-text-label"
|
|
54
|
+
],
|
|
55
|
+
"summary": "Points you can fall back to, with what each one would give back.",
|
|
56
|
+
"examples": [
|
|
57
|
+
{
|
|
58
|
+
"title": "Usage",
|
|
59
|
+
"code": "import { CheckpointHistory } from \"@cueplusplus/ui/elements\";\n\n<CheckpointHistory checkpoints={checkpoints} currentId=\"3\" onRestore={restore} />",
|
|
60
|
+
"language": "tsx"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"status": "todo-docs",
|
|
64
|
+
"url": "/docs/components/checkpoint-history",
|
|
65
|
+
"mdUrl": "/docs/components/checkpoint-history.md",
|
|
66
|
+
"jsonUrl": "/r/components/checkpoint-history.json",
|
|
67
|
+
"specimens": [
|
|
68
|
+
{
|
|
69
|
+
"title": "CheckpointHistory",
|
|
70
|
+
"group": "elements-agents",
|
|
71
|
+
"components": [
|
|
72
|
+
"CheckpointHistory"
|
|
73
|
+
],
|
|
74
|
+
"code": "<Specimens>\n <Specimen label=\"mid-run\" wide>\n <CheckpointHistory\n checkpoints={CHECKPOINTS}\n currentId={checkpoint}\n onRestore={setCheckpoint}\n />\n </Specimen>\n <Specimen label=\"at the head, nothing to discard\" wide>\n <CheckpointHistory checkpoints={CHECKPOINTS} currentId=\"c-plot\" />\n </Specimen>\n</Specimens>",
|
|
75
|
+
"note": "Points the run can be put back to, oldest first, each with what a fallback would cost in files. Everything after the current point dims, because restoring would discard it — the list is the undo stack drawn as a place rather than a count.",
|
|
76
|
+
"interaction": "each row carries a labelled restore button (`Restore to …`), so the control is named even though it draws as a glyph."
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"todo": true
|
|
80
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"importPath": "@cueplusplus/ui",
|
|
6
6
|
"peerDependencies": [],
|
|
7
7
|
"clientOnly": true,
|
|
8
|
-
"description": "A compact status/label pill: mono, uppercase, wide-tracked, one line tall.\n\n`tone` uses the shared status vocabulary (`ok | busy | warn | danger | info`)\nplus `neutral` and `accent`, so a chip, a `StatusDot` and a `Meter` always\nagree on what \"warn\" looks like.",
|
|
8
|
+
"description": "A compact status/label pill: mono, uppercase, wide-tracked, one line tall.\n\n`tone` uses the shared status vocabulary (`ok | busy | warn | danger | info`)\nplus `neutral` and `accent`, so a chip, a `StatusDot` and a `Meter` always\nagree on what \"warn\" looks like.\n\n`variant` sets how loudly it says it. `tinted` is the chip proper — a tone\ntint behind tone ink. `outline` drops the fill and keeps the voice, for a\nchip on an already-busy ground. `tag` drops both: a hairline rim, micro type\nand closed tracking, for the facts that sit *beside* a row's name — a kind, a\nlifecycle, a scope — where a row full of tinted chips would read as a row of\nbuttons. All three keep `h-chip`, so a mixed row still has one baseline.",
|
|
9
9
|
"props": [
|
|
10
10
|
{
|
|
11
11
|
"name": "interactive",
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"name": "tone",
|
|
33
|
-
"type": "\"
|
|
33
|
+
"type": "\"danger\" | \"accent\" | \"busy\" | \"neutral\" | \"ok\" | \"warn\" | \"info\"",
|
|
34
34
|
"required": false,
|
|
35
35
|
"defaultValue": "neutral",
|
|
36
36
|
"description": ""
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"name": "variant",
|
|
40
|
-
"type": "\"outline\" | \"tinted\"",
|
|
40
|
+
"type": "\"outline\" | \"tinted\" | \"tag\"",
|
|
41
41
|
"required": false,
|
|
42
42
|
"defaultValue": "tinted",
|
|
43
43
|
"description": ""
|
|
@@ -61,7 +61,8 @@
|
|
|
61
61
|
],
|
|
62
62
|
"variant": [
|
|
63
63
|
"tinted",
|
|
64
|
-
"outline"
|
|
64
|
+
"outline",
|
|
65
|
+
"tag"
|
|
65
66
|
],
|
|
66
67
|
"interactive": [
|
|
67
68
|
"true",
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
"--cue-fg",
|
|
84
85
|
"--cue-fg-muted",
|
|
85
86
|
"--cue-font-mono",
|
|
87
|
+
"--cue-hair-strong",
|
|
86
88
|
"--cue-info",
|
|
87
89
|
"--cue-ok",
|
|
88
90
|
"--cue-radius-control",
|
|
@@ -90,13 +92,19 @@
|
|
|
90
92
|
"--cue-space-3",
|
|
91
93
|
"--cue-surface-2",
|
|
92
94
|
"--cue-text-label",
|
|
95
|
+
"--cue-text-micro",
|
|
93
96
|
"--cue-warn"
|
|
94
97
|
],
|
|
95
|
-
"summary": "The status pill: tinted fill,
|
|
98
|
+
"summary": "The status pill, at three volumes: tinted fill, bare outline, or a hairline tag.",
|
|
96
99
|
"examples": [
|
|
100
|
+
{
|
|
101
|
+
"title": "A row's tags",
|
|
102
|
+
"code": "<Chip variant=\"tag\">mcp</Chip>\n<Chip tone=\"accent\" variant=\"tag\">beta</Chip>\n<Chip tone=\"danger\" variant=\"tag\">needs auth</Chip>",
|
|
103
|
+
"language": "tsx"
|
|
104
|
+
},
|
|
97
105
|
{
|
|
98
106
|
"title": "Usage",
|
|
99
|
-
"code": "<Chip tone=\"ok\">online</Chip>\n<Chip tone=\"accent\" variant=\"outline\" interactive onClick={toggle}>dimmer</Chip>",
|
|
107
|
+
"code": "<Chip tone=\"ok\">online</Chip>\n<Chip tone=\"accent\" variant=\"outline\" interactive onClick={toggle}>dimmer</Chip>\n<Chip variant=\"tag\">mcp</Chip>\n<Chip tone=\"danger\" variant=\"tag\">needs auth</Chip>",
|
|
100
108
|
"language": "tsx"
|
|
101
109
|
}
|
|
102
110
|
],
|
|
@@ -106,16 +114,20 @@
|
|
|
106
114
|
"jsonUrl": "/r/components/chip.json",
|
|
107
115
|
"whenToUse": [
|
|
108
116
|
"A state, a tag or a short count sitting beside the thing it describes.",
|
|
109
|
-
"Filter pills, with `interactive` for the button semantics."
|
|
117
|
+
"Filter pills, with `interactive` for the button semantics.",
|
|
118
|
+
"`variant=\"tag\"` for the flat facts beside a row's name — a kind, a lifecycle, a scope, a permission. A list of them stays a list."
|
|
110
119
|
],
|
|
111
120
|
"whenNotToUse": [
|
|
112
121
|
"A single live state where a dot carries it. Use `StatusDot`.",
|
|
113
122
|
"A message the user has to read and act on. Use `Toast` or `FieldError`.",
|
|
114
|
-
"Anything that runs something. Use `Button`."
|
|
123
|
+
"Anything that runs something. Use `Button`.",
|
|
124
|
+
"Tokens the user typed and can remove. That is `TagsInput`, which owns the editing and the keyboard."
|
|
115
125
|
],
|
|
116
126
|
"commonMistakes": [
|
|
117
127
|
"Writing a sentence in a chip. One or two words, or a count.",
|
|
118
|
-
"Picking a tone for decoration. Tones are the status vocabulary shared with `StatusDot`, `Meter` and `Toast`."
|
|
128
|
+
"Picking a tone for decoration. Tones are the status vocabulary shared with `StatusDot`, `Meter` and `Toast`.",
|
|
129
|
+
"Reaching for `tag` because the chip looked too big. It is the quiet reading, not the small one — the height is still `h-chip`, so a mixed row keeps one baseline.",
|
|
130
|
+
"Putting three tinted chips on every row of a list. Repeat a fill thirty times and the list reads as thirty buttons. That is what `tag` is for."
|
|
119
131
|
],
|
|
120
132
|
"specimens": [
|
|
121
133
|
{
|
|
@@ -124,9 +136,9 @@
|
|
|
124
136
|
"components": [
|
|
125
137
|
"Chip"
|
|
126
138
|
],
|
|
127
|
-
"code": "<Specimens>\n {CHIP_TONES.map((tone) => (\n <Specimen key={tone} label={tone}>\n <Chip tone={tone}>{tone}</Chip>\n </Specimen>\n ))}\n</Specimens>\n<Specimens>\n {CHIP_TONES.map((tone) => (\n <Specimen key={tone} label={`${tone} outline`}>\n <Chip tone={tone} variant=\"outline\">\n {tone}\n </Chip>\n </Specimen>\n ))}\n</Specimens>\n<Specimens>\n <Specimen label=\"interactive\">\n <Chip tone=\"accent\" interactive>\n Universe 1\n </Chip>\n </Specimen>\n <Specimen label=\"disabled\">\n <Chip tone=\"accent\" interactive disabled>\n Universe 9\n </Chip>\n </Specimen>\n</Specimens>",
|
|
128
|
-
"note": "The tinted-chip recipe: a tone tint at low alpha, tone ink, tone border. Seven tones,
|
|
129
|
-
"interaction": "static by default; pass `interactive` and it takes a hover ground and a focus ring."
|
|
139
|
+
"code": "<Specimens>\n {CHIP_TONES.map((tone) => (\n <Specimen key={tone} label={tone}>\n <Chip tone={tone}>{tone}</Chip>\n </Specimen>\n ))}\n</Specimens>\n<Specimens>\n {CHIP_TONES.map((tone) => (\n <Specimen key={tone} label={`${tone} outline`}>\n <Chip tone={tone} variant=\"outline\">\n {tone}\n </Chip>\n </Specimen>\n ))}\n</Specimens>\n<Specimens>\n {CHIP_TONES.map((tone) => (\n <Specimen key={tone} label={`${tone} tag`}>\n <Chip tone={tone} variant=\"tag\">\n {tone}\n </Chip>\n </Specimen>\n ))}\n</Specimens>\n<Specimens>\n <Specimen label=\"a row's tags\">\n <span className=\"inline-flex items-center gap-(--cue-space-2)\">\n <Chip variant=\"tag\">mcp</Chip>\n <Chip tone=\"accent\" variant=\"tag\">\n beta\n </Chip>\n <Chip tone=\"danger\" variant=\"tag\">\n needs auth\n </Chip>\n </span>\n </Specimen>\n</Specimens>\n<Specimens>\n <Specimen label=\"interactive\">\n <Chip tone=\"accent\" interactive>\n Universe 1\n </Chip>\n </Specimen>\n <Specimen label=\"disabled\">\n <Chip tone=\"accent\" interactive disabled>\n Universe 9\n </Chip>\n </Specimen>\n <Specimen label=\"interactive tag\">\n <Chip tone=\"accent\" variant=\"tag\" interactive>\n beta only\n </Chip>\n </Specimen>\n</Specimens>",
|
|
140
|
+
"note": "The tinted-chip recipe: a tone tint at low alpha, tone ink, tone border. Seven tones, three variants — `tag` drops the fill and the type size for the facts that sit beside a row's name.",
|
|
141
|
+
"interaction": "static by default; pass `interactive` and it takes a hover ground and a focus ring. An interactive tag brightens its rim instead."
|
|
130
142
|
}
|
|
131
143
|
]
|
|
132
144
|
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Clamp",
|
|
3
|
+
"slug": "clamp",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "Long content, cut to a height, dissolving at the cut, with a way back.\n\nThe truncation trio as one element. Everything a transcript truncates —\ncommand output, a pasted file, a reasoning trace, a quoted message — wants\nexactly these three things, and a family that leaves them to each component\ngets five slightly different cuts and one of them hard-coded to a colour that\nbreaks in light mode.\n\nThe fade is a **mask**, not an overlay: it fades the content rather than\npainting a gradient of the surface colour over it, so it needs no idea of\nwhat is behind it and cannot drift when the theme changes. The height and the\ndepth are published as custom properties on the root, so a console can retune\na clamp from CSS — and because the mask is expressed in terms of them, a\nheight overridden in a stylesheet moves the fade with it.\n\nThe reveal is the part this element does not copy exactly. The reference\nshows its `Show more` chip on hover only, which is unreachable for anyone\nwho is not holding a mouse; here the control is always in the DOM and always\nfocusable, and hover and focus only decide how loudly it is drawn. Once the\ncontent is open, `Show less` is drawn at full strength — a long expansion you\ncannot close without hunting for the control is a real defect.\n\nOpen state is a prop, like everything else in this family: a scripted replay\nof this component is a caller changing `open`.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "height",
|
|
12
|
+
"type": "string | number",
|
|
13
|
+
"required": false,
|
|
14
|
+
"defaultValue": "250",
|
|
15
|
+
"description": "How tall the content may be before it is cut, as a number of pixels or any\nCSS length. Defaults to `250` — the reference's own default, with `60` the\nvalue it uses for a quoted user message.\n\nPublished as `--cue-elements-clamp-height` on the root, so a console can\nretune one clamp from a stylesheet without a prop."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "fade",
|
|
19
|
+
"type": "number",
|
|
20
|
+
"required": false,
|
|
21
|
+
"defaultValue": "50",
|
|
22
|
+
"description": "How deep the dissolve at the cut is, in pixels. Defaults to `50`, the\nreference's most-used depth.\n\nFixed pixels rather than a fraction, deliberately: a percentage fade is a\ndifferent effect on a short row than on a long one. Published as\n`--cue-elements-clamp-fade`."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "open",
|
|
26
|
+
"type": "boolean",
|
|
27
|
+
"required": true,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Whether the content is showing in full."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "onOpenChange",
|
|
33
|
+
"type": "((open: boolean) => void)",
|
|
34
|
+
"required": false,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "Called when the reveal is used. Omit it and the clamp is a hard cut with a\nfade and no promise of more — which is the reference's own tool-result row,\nwhere the full text opens somewhere else entirely."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "overflows",
|
|
40
|
+
"type": "boolean",
|
|
41
|
+
"required": false,
|
|
42
|
+
"defaultValue": null,
|
|
43
|
+
"description": "Whether the content is taller than `height`, when the caller already knows.\nLeft out, the clamp measures itself and re-measures as the content and the\nbox change.\n\nThe measurement is the right default and the override is for the cases it\ncannot serve: a virtualised row that knows its own text, a replay frame\nthat must paint the same way on every mount, a server render."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "labels",
|
|
47
|
+
"type": "Partial<ClampLabels>",
|
|
48
|
+
"required": false,
|
|
49
|
+
"defaultValue": null,
|
|
50
|
+
"description": "The two words on the reveal. Defaults to {@link CLAMP_LABELS} — `Show more`\nand `Show less`, which is the reference's copy verbatim."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "children",
|
|
54
|
+
"type": "ReactNode",
|
|
55
|
+
"required": false,
|
|
56
|
+
"defaultValue": null,
|
|
57
|
+
"description": "The content being clamped."
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"typeReferences": [
|
|
61
|
+
"Omit<React.ComponentPropsWithoutRef<\"div\">, \"onToggle\">"
|
|
62
|
+
],
|
|
63
|
+
"subcomponents": [],
|
|
64
|
+
"parts": [],
|
|
65
|
+
"variants": {},
|
|
66
|
+
"defaultVariants": {},
|
|
67
|
+
"tokensUsed": [
|
|
68
|
+
"--cue-accent",
|
|
69
|
+
"--cue-elements-clamp-fade",
|
|
70
|
+
"--cue-elements-clamp-height",
|
|
71
|
+
"--cue-elements-clamp-mask",
|
|
72
|
+
"--cue-fg",
|
|
73
|
+
"--cue-fg-muted",
|
|
74
|
+
"--cue-radius-control",
|
|
75
|
+
"--cue-text-ui"
|
|
76
|
+
],
|
|
77
|
+
"summary": "Long content, cut to a height, dissolving at the cut, with a way back.",
|
|
78
|
+
"examples": [
|
|
79
|
+
{
|
|
80
|
+
"title": "Usage",
|
|
81
|
+
"code": "import { Clamp } from \"@cueplusplus/ui/elements\";\n\n<Clamp open={open} onOpenChange={setOpen}>\n <pre>{output}</pre>\n</Clamp>\n// The reference's tool-result row: 60px of output, a 10px dissolve, and no\n// reveal at all — the full text opens in an editor tab instead.\n<Clamp height={60} fade={10} open={false} overflows onClick={openInEditor}>\n {result}\n</Clamp>",
|
|
82
|
+
"language": "tsx"
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"status": "todo-docs",
|
|
86
|
+
"url": "/docs/components/clamp",
|
|
87
|
+
"mdUrl": "/docs/components/clamp.md",
|
|
88
|
+
"jsonUrl": "/r/components/clamp.json",
|
|
89
|
+
"specimens": [
|
|
90
|
+
{
|
|
91
|
+
"title": "Clamp",
|
|
92
|
+
"group": "elements",
|
|
93
|
+
"components": [
|
|
94
|
+
"Clamp"
|
|
95
|
+
],
|
|
96
|
+
"code": "<Specimens>\n <Specimen label=\"clamped, with a way back\" wide>\n <div className=\"w-full max-w-md\">\n <Clamp\n height={120}\n fade={40}\n open={shownInFull}\n onOpenChange={setShownInFull}\n >\n <pre className=\"font-mono text-(length:--cue-text-ui) whitespace-pre-wrap text-fg-muted\">\n {PATCH_REPORT}\n </pre>\n </Clamp>\n </div>\n </Specimen>\n <Specimen label=\"a hard cut, and the full text opens elsewhere\" wide>\n <div className=\"w-full max-w-md\">\n <Clamp height={60} fade={10} open={false} overflows>\n <pre className=\"font-mono text-(length:--cue-text-ui) whitespace-pre-wrap text-fg-muted\">\n {PATCH_REPORT}\n </pre>\n </Clamp>\n </div>\n </Specimen>\n</Specimens>",
|
|
97
|
+
"note": "The truncation trio as one element: a height, a dissolve of a fixed number of pixels at the cut, and a way back. The fixed depth is the part worth copying — ten pixels of dissolve is the same cut over a two-line row and a forty-line one, which is why the reference's five different truncations read as one idea. The fade is a mask rather than a gradient of the surface colour, which is the bug the reference shipped: its diff variant hard-codes a dark grey and smears on a light theme. A mask fades the content itself, so it has no colour to get wrong in any theme, either mode, or inside the island.",
|
|
98
|
+
"interaction": "the reveal is always present and always focusable; hover and focus decide only how loudly it is drawn, and Show less is never dimmed at all. That is the one place this does not copy the reference, whose Show more chip appears on hover only and is unreachable for anyone not holding a pointer. The height and the fade are published as custom properties on the root, and the mask is written in terms of them, so a height overridden in a stylesheet moves the dissolve with it."
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"todo": true
|
|
102
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CliToolIcon",
|
|
3
|
+
"slug": "cli-tool-icon",
|
|
4
|
+
"group": "icons",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": false,
|
|
8
|
+
"description": "A CLI tool in the registry: a thing that runs in a terminal.\n\nA window with a prompt in it, rather than a bare chevron. A chevron on its\nown is a disclosure everywhere else in this library, and a navigation row\nthat appeared to expand and then navigated instead is a worse failure than a\nslightly busier glyph at 10px.",
|
|
9
|
+
"props": [],
|
|
10
|
+
"typeReferences": [
|
|
11
|
+
"React.SVGProps<SVGSVGElement>"
|
|
12
|
+
],
|
|
13
|
+
"subcomponents": [],
|
|
14
|
+
"parts": [],
|
|
15
|
+
"variants": {},
|
|
16
|
+
"defaultVariants": {},
|
|
17
|
+
"tokensUsed": [
|
|
18
|
+
"--cue-danger",
|
|
19
|
+
"--cue-fg",
|
|
20
|
+
"--cue-icon-",
|
|
21
|
+
"--cue-icon-md",
|
|
22
|
+
"--cue-icon-sm"
|
|
23
|
+
],
|
|
24
|
+
"summary": "A CLI tool in the registry: a thing that runs in a terminal.",
|
|
25
|
+
"examples": [],
|
|
26
|
+
"status": "todo-docs",
|
|
27
|
+
"url": "/docs/components/cli-tool-icon",
|
|
28
|
+
"mdUrl": "/docs/components/cli-tool-icon.md",
|
|
29
|
+
"jsonUrl": "/r/components/cli-tool-icon.json",
|
|
30
|
+
"specimens": [
|
|
31
|
+
{
|
|
32
|
+
"title": "The container icon set",
|
|
33
|
+
"group": "icons",
|
|
34
|
+
"components": [
|
|
35
|
+
"CatalogueIcon",
|
|
36
|
+
"StackIcon",
|
|
37
|
+
"StacksMatrixIcon",
|
|
38
|
+
"AudienceIcon",
|
|
39
|
+
"ChannelReleasedIcon",
|
|
40
|
+
"ChannelBetaIcon",
|
|
41
|
+
"FolderIcon",
|
|
42
|
+
"McpServerIcon",
|
|
43
|
+
"CliToolIcon",
|
|
44
|
+
"SkillIcon"
|
|
45
|
+
],
|
|
46
|
+
"code": "<Specimens>\n {CONTAINERS.map(([label, name, Icon]) => (\n <Specimen key={name} label={label}>\n <Icon className=\"size-icon-md text-fg\" />\n </Specimen>\n ))}\n</Specimens>\n<Specimens>\n <Specimen label=\"icon-sm\">\n <SkillIcon className=\"size-icon-sm text-fg\" />\n </Specimen>\n <Specimen label=\"icon-md\">\n <SkillIcon className=\"size-icon-md text-fg\" />\n </Specimen>\n <Specimen label=\"inherited\">\n <SkillIcon className=\"size-icon-md\" />\n </Specimen>\n <Specimen label=\"muted\">\n <SkillIcon className=\"size-icon-md text-fg-muted\" />\n </Specimen>\n <Specimen label=\"accent\">\n <SkillIcon className=\"size-icon-md text-accent\" />\n </Specimen>\n <Specimen label=\"danger\">\n <SkillIcon className=\"size-icon-md text-danger\" />\n </Specimen>\n</Specimens>\n<Specimens>\n <Specimen label=\"in a row\" wide>\n <span className=\"inline-flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-ui) text-fg-muted\">\n <ChannelReleasedIcon className=\"size-icon-md shrink-0\" />\n Our skills · released\n </span>\n </Specimen>\n <Specimen label=\"current row\" wide>\n <span className=\"inline-flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-ui) text-fg\">\n <ChannelBetaIcon className=\"size-icon-md shrink-0\" />\n Our skills · beta\n </span>\n </Specimen>\n</Specimens>",
|
|
47
|
+
"note": "One grid and one weight across all ten, at size-icon-md — the size a navigation row draws them at. Each is a plain <svg> that takes every SVG prop.",
|
|
48
|
+
"interaction": "none. They are decorative by default: aria-hidden, announced by nothing, because the row they mark already carries its name."
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"todo": true
|
|
52
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CodeDiff",
|
|
3
|
+
"slug": "code-diff",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A unified diff with tinted additions and removals, sized for chat.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "filename",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "File path shown in the diff header."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "additions",
|
|
19
|
+
"type": "number",
|
|
20
|
+
"required": true,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "Addition count rendered in green next to the filename."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "deletions",
|
|
26
|
+
"type": "number",
|
|
27
|
+
"required": true,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Deletion count rendered in red next to the filename."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "lines",
|
|
33
|
+
"type": "readonly DiffLine[]",
|
|
34
|
+
"required": true,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "Unified diff lines with context, added, or removed kind."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "cycle",
|
|
40
|
+
"type": "number",
|
|
41
|
+
"required": true,
|
|
42
|
+
"defaultValue": null,
|
|
43
|
+
"description": "Identity key that remounts the body so entrance animation can replay."
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"typeReferences": [
|
|
47
|
+
"Omit<\n ComponentProps<\"div\">,\n \"children\" | \"filename\" | \"additions\" | \"deletions\" | \"lines\" | \"cycle\"\n> & {\n /** File path shown in the diff header. */\n filename: string;\n /** Addition count rendered in green next to the filename. */\n additions: number;\n /** Deletion count rendered in red next to the filename. */\n deletions: number;\n /** Unified diff lines with context, added, or removed kind. */\n lines: readonly DiffLine[];\n /** Identity key that remounts the body so entrance animation can replay. */\n cycle: number;\n}"
|
|
48
|
+
],
|
|
49
|
+
"subcomponents": [],
|
|
50
|
+
"parts": [],
|
|
51
|
+
"variants": {},
|
|
52
|
+
"defaultVariants": {},
|
|
53
|
+
"tokensUsed": [
|
|
54
|
+
"--cue-danger",
|
|
55
|
+
"--cue-fg",
|
|
56
|
+
"--cue-fg-muted",
|
|
57
|
+
"--cue-font-mono",
|
|
58
|
+
"--cue-ok",
|
|
59
|
+
"--cue-radius-overlay",
|
|
60
|
+
"--cue-text-ui"
|
|
61
|
+
],
|
|
62
|
+
"summary": "A unified diff with tinted additions and removals, sized for chat.",
|
|
63
|
+
"examples": [
|
|
64
|
+
{
|
|
65
|
+
"title": "Usage",
|
|
66
|
+
"code": "import { CodeDiff } from \"@cueplusplus/ui/elements\";\n\n<CodeDiff\n filename=\"thread.tsx\"\n additions={2}\n deletions={1}\n lines={[\n { kind: \"removed\", text: \"const x = 1\" },\n { kind: \"added\", text: \"const x = 2\" },\n ]}\n cycle={0}\n/>",
|
|
67
|
+
"language": "tsx"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"status": "todo-docs",
|
|
71
|
+
"url": "/docs/components/code-diff",
|
|
72
|
+
"mdUrl": "/docs/components/code-diff.md",
|
|
73
|
+
"jsonUrl": "/r/components/code-diff.json",
|
|
74
|
+
"specimens": [
|
|
75
|
+
{
|
|
76
|
+
"title": "CodeDiff",
|
|
77
|
+
"group": "elements",
|
|
78
|
+
"components": [
|
|
79
|
+
"CodeDiff"
|
|
80
|
+
],
|
|
81
|
+
"code": "<Specimens>\n <Specimen label=\"+3 −1\" wide>\n <CodeDiff\n filename=\"show/main-stage.cue\"\n additions={3}\n deletions={1}\n lines={CUE_DIFF}\n cycle={0}\n />\n </Specimen>\n</Specimens>",
|
|
82
|
+
"note": "A unified diff sized for a chat column: added and removed rows carry both a gutter mark and a tint, so the diff survives being read in greyscale. Rows animate in on `cycle`, which is an identity rather than a trigger.",
|
|
83
|
+
"interaction": "none. Scrolls sideways rather than wrapping, because a wrapped diff line is a lie about the file."
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
"todo": true
|
|
87
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CodeRunner",
|
|
3
|
+
"slug": "code-runner",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "A snippet with a run button, and the output it produced attached below it.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "language",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Language label above the snippet."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "code",
|
|
21
|
+
"type": "string",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "The snippet. Rendered as plain mono; wrap it yourself for highlighting."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "state",
|
|
28
|
+
"type": "\"idle\" | \"ok\" | \"running\" | \"error\"",
|
|
29
|
+
"required": true,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "idle hides the output pane entirely; error tints the output red."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "output",
|
|
35
|
+
"type": "readonly string[]",
|
|
36
|
+
"required": true,
|
|
37
|
+
"defaultValue": null,
|
|
38
|
+
"description": "Output lines, revealed in sequence."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "durationMs",
|
|
42
|
+
"type": "number",
|
|
43
|
+
"required": false,
|
|
44
|
+
"defaultValue": null,
|
|
45
|
+
"description": "How long the run took, printed once it settles."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "onRun",
|
|
49
|
+
"type": "(() => void)",
|
|
50
|
+
"required": false,
|
|
51
|
+
"defaultValue": null,
|
|
52
|
+
"description": "Called when the run control is pressed."
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"typeReferences": [
|
|
56
|
+
"Omit<\n ComponentProps<\"div\">,\n \"children\" | \"language\" | \"code\" | \"state\" | \"output\" | \"durationMs\" | \"onRun\"\n> & {\n /** Language label above the snippet. */\n language: string;\n /** The snippet. Rendered as plain mono; wrap it yourself for highlighting. */\n code: string;\n /** idle hides the output pane entirely; error tints the output red. */\n state: RunState;\n /** Output lines, revealed in sequence. */\n output: readonly string[];\n /** How long the run took, printed once it settles. */\n durationMs?: number;\n /** Called when the run control is pressed. */\n onRun?: () => void;\n}"
|
|
57
|
+
],
|
|
58
|
+
"subcomponents": [],
|
|
59
|
+
"parts": [],
|
|
60
|
+
"variants": {},
|
|
61
|
+
"defaultVariants": {},
|
|
62
|
+
"tokensUsed": [
|
|
63
|
+
"--cue-border",
|
|
64
|
+
"--cue-danger",
|
|
65
|
+
"--cue-fg-muted",
|
|
66
|
+
"--cue-fg-subtle",
|
|
67
|
+
"--cue-font-mono",
|
|
68
|
+
"--cue-radius-overlay",
|
|
69
|
+
"--cue-surface-3",
|
|
70
|
+
"--cue-text-ui"
|
|
71
|
+
],
|
|
72
|
+
"summary": "A snippet with a run button, and the output it produced attached below it.",
|
|
73
|
+
"examples": [
|
|
74
|
+
{
|
|
75
|
+
"title": "Usage",
|
|
76
|
+
"code": "import { CodeRunner } from \"@cueplusplus/ui/elements\";\n\n<CodeRunner\n language=\"typescript\"\n code={code}\n state=\"ok\"\n output={[\"1\"]}\n durationMs={38}\n onRun={run}\n/>",
|
|
77
|
+
"language": "tsx"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"status": "todo-docs",
|
|
81
|
+
"url": "/docs/components/code-runner",
|
|
82
|
+
"mdUrl": "/docs/components/code-runner.md",
|
|
83
|
+
"jsonUrl": "/r/components/code-runner.json",
|
|
84
|
+
"specimens": [
|
|
85
|
+
{
|
|
86
|
+
"title": "CodeRunner",
|
|
87
|
+
"group": "elements-agents",
|
|
88
|
+
"components": [
|
|
89
|
+
"CodeRunner"
|
|
90
|
+
],
|
|
91
|
+
"code": "<Specimens>\n <Specimen label=\"idle\" wide>\n <CodeRunner\n language=\"bash\"\n code={\"cue patch --universe 3 --fixture esprite --count 6\"}\n state={run}\n output={OUTPUT}\n onRun={() => setRun(\"ok\")}\n />\n </Specimen>\n <Specimen label=\"running\" wide>\n <CodeRunner\n language=\"bash\"\n code={\"cue patch --universe 3 --fixture esprite --count 6\"}\n state=\"running\"\n output={OUTPUT.slice(0, 2)}\n />\n </Specimen>\n <Specimen label=\"finished\" wide>\n <CodeRunner\n language=\"bash\"\n code={\"cue patch --universe 3 --fixture esprite --count 6\"}\n state=\"ok\"\n output={OUTPUT}\n durationMs={412}\n />\n </Specimen>\n <Specimen label=\"failed\" wide>\n <CodeRunner\n language=\"bash\"\n code={\"cue patch --universe 4 --fixture esprite --count 6\"}\n state=\"error\"\n output={[\"universe 4 is not enabled on this show file\", \"exit 1\"]}\n durationMs={88}\n />\n </Specimen>\n</Specimens>",
|
|
92
|
+
"note": "A snippet with a run button and the output it produced attached underneath, rather than in a console somewhere else. `idle` hides the output pane entirely — an empty black box is not a result — `error` tints what came back in the danger hue, and the duration prints once it settles.",
|
|
93
|
+
"interaction": "the run control is a labelled icon button (`Run this snippet`); while running it spins and the output arrives a line at a time."
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"todo": true
|
|
97
|
+
}
|
|
@@ -34,12 +34,14 @@
|
|
|
34
34
|
"tokensUsed": [
|
|
35
35
|
"--cue-accent",
|
|
36
36
|
"--cue-border",
|
|
37
|
+
"--cue-border-strong",
|
|
37
38
|
"--cue-control-lg",
|
|
38
39
|
"--cue-control-md",
|
|
39
40
|
"--cue-control-sm",
|
|
40
41
|
"--cue-danger",
|
|
41
42
|
"--cue-fg",
|
|
42
43
|
"--cue-fg-subtle",
|
|
44
|
+
"--cue-focus",
|
|
43
45
|
"--cue-font-mono",
|
|
44
46
|
"--cue-radius-control",
|
|
45
47
|
"--cue-space-1",
|
|
@@ -130,12 +130,14 @@
|
|
|
130
130
|
"tokensUsed": [
|
|
131
131
|
"--cue-accent",
|
|
132
132
|
"--cue-border",
|
|
133
|
+
"--cue-border-strong",
|
|
133
134
|
"--cue-control-lg",
|
|
134
135
|
"--cue-control-md",
|
|
135
136
|
"--cue-control-sm",
|
|
136
137
|
"--cue-danger",
|
|
137
138
|
"--cue-fg",
|
|
138
139
|
"--cue-fg-subtle",
|
|
140
|
+
"--cue-focus",
|
|
139
141
|
"--cue-font-mono",
|
|
140
142
|
"--cue-radius-control",
|
|
141
143
|
"--cue-space-2",
|
|
@@ -144,6 +144,7 @@
|
|
|
144
144
|
"--cue-accent-soft",
|
|
145
145
|
"--cue-border",
|
|
146
146
|
"--cue-border-overlay",
|
|
147
|
+
"--cue-border-strong",
|
|
147
148
|
"--cue-chip-h",
|
|
148
149
|
"--cue-control-lg",
|
|
149
150
|
"--cue-control-md",
|
|
@@ -152,6 +153,7 @@
|
|
|
152
153
|
"--cue-fg",
|
|
153
154
|
"--cue-fg-muted",
|
|
154
155
|
"--cue-fg-subtle",
|
|
156
|
+
"--cue-focus",
|
|
155
157
|
"--cue-font-mono",
|
|
156
158
|
"--cue-icon-md",
|
|
157
159
|
"--cue-icon-sm",
|