@cueplusplus/ui 0.3.0 → 0.5.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 +2229 -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/app-shell.d.ts +52 -2
- package/dist/chrome/app-shell.js +80 -8
- package/dist/chrome/index.d.ts +2 -2
- 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 +37 -2
- 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/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 +6 -4
- package/dist/index.js +2 -1
- 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 +71 -8
- 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 +99 -7
- 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/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/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/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/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/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/job-progress.json +96 -0
- package/manifest/components/launcher-bubble.json +105 -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/node-card.json +1 -1
- package/manifest/components/node-handle.json +1 -1
- package/manifest/components/number-ticker.json +61 -0
- package/manifest/components/onboarding.json +84 -0
- package/manifest/components/otp-field.json +7 -7
- 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/search-input.json +7 -7
- package/manifest/components/segmented-control.json +21 -21
- 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-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/tail-status.json +109 -0
- package/manifest/components/terminal-block.json +91 -0
- 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/timeline.json +1 -1
- package/manifest/components/todo-list.json +69 -0
- package/manifest/components/toggle-group.json +7 -7
- 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 +2670 -33
- package/manifest/tokens.json +22 -1
- package/package.json +46 -4
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SettingsPanel",
|
|
3
|
+
"slug": "settings-panel",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "Model, system prompt, temperature, and what the assistant is allowed to do.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "model",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Selected model."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "models",
|
|
19
|
+
"type": "readonly string[]",
|
|
20
|
+
"required": true,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "Models offered in the segmented control. Keep it to a few; more wants the model\npicker."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "systemPrompt",
|
|
26
|
+
"type": "string",
|
|
27
|
+
"required": true,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Current system prompt."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "temperature",
|
|
33
|
+
"type": "number",
|
|
34
|
+
"required": true,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "Current temperature, 0 to 2."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "toggles",
|
|
40
|
+
"type": "readonly SettingToggle[]",
|
|
41
|
+
"required": true,
|
|
42
|
+
"defaultValue": null,
|
|
43
|
+
"description": "Capability switches with a line each explaining what they turn on."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "onModelChange",
|
|
47
|
+
"type": "((model: string) => void)",
|
|
48
|
+
"required": false,
|
|
49
|
+
"defaultValue": null,
|
|
50
|
+
"description": "Called when the model changes."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "onSystemPromptChange",
|
|
54
|
+
"type": "((prompt: string) => void)",
|
|
55
|
+
"required": false,
|
|
56
|
+
"defaultValue": null,
|
|
57
|
+
"description": "Called as the prompt is edited."
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "onTemperatureChange",
|
|
61
|
+
"type": "((temperature: number) => void)",
|
|
62
|
+
"required": false,
|
|
63
|
+
"defaultValue": null,
|
|
64
|
+
"description": "Called as the slider moves."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "onToggle",
|
|
68
|
+
"type": "((key: string) => void)",
|
|
69
|
+
"required": false,
|
|
70
|
+
"defaultValue": null,
|
|
71
|
+
"description": "Called with the switched capability's key."
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"typeReferences": [
|
|
75
|
+
"Omit<\n ComponentProps<\"div\">,\n | \"children\"\n | \"model\"\n | \"models\"\n | \"systemPrompt\"\n | \"temperature\"\n | \"toggles\"\n | \"onModelChange\"\n | \"onSystemPromptChange\"\n | \"onTemperatureChange\"\n | \"onToggle\"\n> & {\n /** Selected model. */\n model: string;\n /**\n * Models offered in the segmented control. Keep it to a few; more wants the model\n * picker.\n */\n models: readonly string[];\n /** Current system prompt. */\n systemPrompt: string;\n /** Current temperature, 0 to 2. */\n temperature: number;\n /** Capability switches with a line each explaining what they turn on. */\n toggles: readonly SettingToggle[];\n /** Called when the model changes. */\n onModelChange?: (model: string) => void;\n /** Called as the prompt is edited. */\n onSystemPromptChange?: (prompt: string) => void;\n /** Called as the slider moves. */\n onTemperatureChange?: (temperature: number) => void;\n /** Called with the switched capability's key. */\n onToggle?: (key: string) => void;\n}"
|
|
76
|
+
],
|
|
77
|
+
"subcomponents": [],
|
|
78
|
+
"parts": [],
|
|
79
|
+
"variants": {},
|
|
80
|
+
"defaultVariants": {},
|
|
81
|
+
"tokensUsed": [
|
|
82
|
+
"--cue-accent",
|
|
83
|
+
"--cue-bg",
|
|
84
|
+
"--cue-fg",
|
|
85
|
+
"--cue-fg-muted",
|
|
86
|
+
"--cue-fg-subtle",
|
|
87
|
+
"--cue-radius-overlay",
|
|
88
|
+
"--cue-radius-surface",
|
|
89
|
+
"--cue-surface-3",
|
|
90
|
+
"--cue-text-body",
|
|
91
|
+
"--cue-text-ui"
|
|
92
|
+
],
|
|
93
|
+
"summary": "Model, system prompt, temperature, and what the assistant is allowed to do.",
|
|
94
|
+
"examples": [
|
|
95
|
+
{
|
|
96
|
+
"title": "Usage",
|
|
97
|
+
"code": "import { SettingsPanel } from \"@cueplusplus/ui/elements\";\n\n<SettingsPanel\n model={model}\n models={models}\n systemPrompt={prompt}\n temperature={0.7}\n toggles={toggles}\n onModelChange={setModel}\n/>",
|
|
98
|
+
"language": "tsx"
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"status": "todo-docs",
|
|
102
|
+
"url": "/docs/components/settings-panel",
|
|
103
|
+
"mdUrl": "/docs/components/settings-panel.md",
|
|
104
|
+
"jsonUrl": "/r/components/settings-panel.json",
|
|
105
|
+
"specimens": [
|
|
106
|
+
{
|
|
107
|
+
"title": "SettingsPanel",
|
|
108
|
+
"group": "elements-composer",
|
|
109
|
+
"components": [
|
|
110
|
+
"SettingsPanel"
|
|
111
|
+
],
|
|
112
|
+
"code": "<Specimens>\n <Specimen label=\"live\" wide>\n <SettingsPanel\n model={settingsModel}\n models={[\"Opus 5\", \"Sonnet 5\", \"Haiku 5\"]}\n systemPrompt={prompt}\n temperature={temperature}\n toggles={toggles}\n onModelChange={setSettingsModel}\n onSystemPromptChange={setPrompt}\n onTemperatureChange={setTemperature}\n onToggle={(key) =>\n setToggles((current) =>\n current.map((item) => (item.key === key ? { ...item, on: !item.on } : item)),\n )\n }\n />\n </Specimen>\n <Specimen label=\"locked down for a show\" wide>\n <SettingsPanel\n model=\"Haiku 5\"\n models={[\"Opus 5\", \"Sonnet 5\", \"Haiku 5\"]}\n systemPrompt=\"Read-only. Answer questions about the rig; change nothing.\"\n temperature={0}\n toggles={TOGGLES.map((item) => ({ ...item, on: false }))}\n />\n </Specimen>\n</Specimens>",
|
|
113
|
+
"note": "Model, system prompt, temperature, and what the assistant is allowed to do — the four settings a chat product actually has, on one card. The capability switches each carry a line saying what turning them on does, which is the difference between a settings page and a list of nouns. The panel holds none of it: every value here is the caller's.",
|
|
114
|
+
"interaction": "the segmented model control is a row of `aria-pressed` buttons, and both the prompt textarea and the temperature slider carry their own labels, so nothing on the card depends on the mono caption above it being read."
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"todo": true
|
|
118
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SharedConversation",
|
|
3
|
+
"slug": "shared-conversation",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "A read-only transcript someone sent you, with a way to pick it up yourself.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "title",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Name of the shared thread."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "sharedBy",
|
|
21
|
+
"type": "string",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "Who shared it."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "sharedAt",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"required": true,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "Pre-formatted share time."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "turns",
|
|
35
|
+
"type": "readonly SharedTurn[]",
|
|
36
|
+
"required": true,
|
|
37
|
+
"defaultValue": null,
|
|
38
|
+
"description": "The transcript, read only."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "onContinue",
|
|
42
|
+
"type": "(() => void)",
|
|
43
|
+
"required": false,
|
|
44
|
+
"defaultValue": null,
|
|
45
|
+
"description": "Called to fork the transcript into the reader's own thread."
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"typeReferences": [
|
|
49
|
+
"Omit<\n ComponentProps<\"div\">,\n \"children\" | \"title\" | \"sharedBy\" | \"sharedAt\" | \"turns\" | \"onContinue\"\n> & {\n /** Name of the shared thread. */\n title: string;\n /** Who shared it. */\n sharedBy: string;\n /** Pre-formatted share time. */\n sharedAt: string;\n /** The transcript, read only. */\n turns: readonly SharedTurn[];\n /** Called to fork the transcript into the reader's own thread. */\n onContinue?: () => void;\n}"
|
|
50
|
+
],
|
|
51
|
+
"subcomponents": [],
|
|
52
|
+
"parts": [],
|
|
53
|
+
"variants": {},
|
|
54
|
+
"defaultVariants": {},
|
|
55
|
+
"tokensUsed": [
|
|
56
|
+
"--cue-border",
|
|
57
|
+
"--cue-fg-muted",
|
|
58
|
+
"--cue-fg-subtle",
|
|
59
|
+
"--cue-radius-overlay",
|
|
60
|
+
"--cue-surface-1",
|
|
61
|
+
"--cue-text-body",
|
|
62
|
+
"--cue-text-ui"
|
|
63
|
+
],
|
|
64
|
+
"summary": "A read-only transcript someone sent you, with a way to pick it up yourself.",
|
|
65
|
+
"examples": [
|
|
66
|
+
{
|
|
67
|
+
"title": "Usage",
|
|
68
|
+
"code": "import { SharedConversation } from \"@cueplusplus/ui/elements\";\n\n<SharedConversation\n title=\"Draft restore across threads\"\n sharedBy=\"harry\"\n sharedAt=\"2 days ago\"\n turns={turns}\n onContinue={fork}\n/>",
|
|
69
|
+
"language": "tsx"
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"status": "todo-docs",
|
|
73
|
+
"url": "/docs/components/shared-conversation",
|
|
74
|
+
"mdUrl": "/docs/components/shared-conversation.md",
|
|
75
|
+
"jsonUrl": "/r/components/shared-conversation.json",
|
|
76
|
+
"specimens": [
|
|
77
|
+
{
|
|
78
|
+
"title": "SharedConversation",
|
|
79
|
+
"group": "elements-composer",
|
|
80
|
+
"components": [
|
|
81
|
+
"SharedConversation"
|
|
82
|
+
],
|
|
83
|
+
"code": "<Specimens>\n <Specimen label=\"with a way in\" wide>\n <SharedConversation\n title=\"Why the desk refused universe 3\"\n sharedBy=\"priya\"\n sharedAt=\"2 days ago\"\n turns={SHARED}\n onContinue={() => undefined}\n />\n </Specimen>\n <Specimen label=\"read only\" wide>\n <SharedConversation\n title=\"Why the desk refused universe 3\"\n sharedBy=\"priya\"\n sharedAt=\"2 days ago\"\n turns={SHARED.slice(0, 2)}\n />\n </Specimen>\n</Specimens>",
|
|
84
|
+
"note": "A read-only transcript somebody sent you, with the one action a reader ever wants: pick it up yourself. The header says who shared it and when, because a published thread with no attribution is a screenshot. Turns render verbatim — this is somebody else's conversation, and it is not the place to start interpreting markdown.",
|
|
85
|
+
"interaction": "continuing forks the transcript into the reader's own thread rather than joining the original, which is why the action is offered and not implied by clicking a turn."
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"todo": true
|
|
89
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ShimmerLabel",
|
|
3
|
+
"slug": "shimmer-label",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A label that sweeps while something is still happening.\n\nThe sweep is `.cue-elements-shimmer`, declared with its keyframes in\n`@cueplusplus/ui/elements.css`; without that stylesheet the label simply\nsits still, which is also what it does under `prefers-reduced-motion`.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "active",
|
|
12
|
+
"type": "boolean",
|
|
13
|
+
"required": false,
|
|
14
|
+
"defaultValue": "true",
|
|
15
|
+
"description": "Whether the sweep is running. Defaults to `true`."
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"typeReferences": [
|
|
19
|
+
"ComponentProps<\"span\"> & {\n /** Whether the sweep is running. Defaults to `true`. */\n active?: boolean;\n}"
|
|
20
|
+
],
|
|
21
|
+
"subcomponents": [],
|
|
22
|
+
"parts": [],
|
|
23
|
+
"variants": {},
|
|
24
|
+
"defaultVariants": {},
|
|
25
|
+
"tokensUsed": [
|
|
26
|
+
"--cue-accent",
|
|
27
|
+
"--cue-accent-fg",
|
|
28
|
+
"--cue-accent-hover",
|
|
29
|
+
"--cue-border",
|
|
30
|
+
"--cue-border-overlay",
|
|
31
|
+
"--cue-fg",
|
|
32
|
+
"--cue-fg-muted",
|
|
33
|
+
"--cue-font-mono",
|
|
34
|
+
"--cue-stream",
|
|
35
|
+
"--cue-sunken",
|
|
36
|
+
"--cue-surface-1",
|
|
37
|
+
"--cue-surface-2",
|
|
38
|
+
"--cue-text-label"
|
|
39
|
+
],
|
|
40
|
+
"summary": "A label that sweeps while something is still happening.",
|
|
41
|
+
"examples": [],
|
|
42
|
+
"status": "todo-docs",
|
|
43
|
+
"url": "/docs/components/shimmer-label",
|
|
44
|
+
"mdUrl": "/docs/components/shimmer-label.md",
|
|
45
|
+
"jsonUrl": "/r/components/shimmer-label.json",
|
|
46
|
+
"specimens": [
|
|
47
|
+
{
|
|
48
|
+
"title": "ShimmerLabel",
|
|
49
|
+
"group": "elements",
|
|
50
|
+
"components": [
|
|
51
|
+
"ShimmerLabel"
|
|
52
|
+
],
|
|
53
|
+
"code": "<Specimens>\n <Specimen label=\"active\">\n <ShimmerLabel>Patching universe 3</ShimmerLabel>\n </Specimen>\n <Specimen label=\"resting\">\n <ShimmerLabel active={false}>Patched universe 3</ShimmerLabel>\n </Specimen>\n</Specimens>",
|
|
54
|
+
"note": "A band of full-strength ink travelling through a muted label, clipped to the glyphs. It is the family's one ambient animation and it means exactly one thing: this is happening now. A reader who asked for less motion gets the muted label and no sweep at all.",
|
|
55
|
+
"interaction": "none. It is text, and it stays selectable text."
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"todo": true
|
|
59
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SkillIcon",
|
|
3
|
+
"slug": "skill-icon",
|
|
4
|
+
"group": "icons",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": false,
|
|
8
|
+
"description": "A skill: the thing every other container in this set holds.\n\nOne mark, and a spark rather than a document, because what is being filed is\na capability. The file it happens to be written in is an implementation\ndetail of how it travels, and a page glyph would have made the catalogue look\nlike a folder of documents rather than a list of things an agent can now do.",
|
|
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 skill: the thing every other container in this set holds.",
|
|
25
|
+
"examples": [],
|
|
26
|
+
"status": "todo-docs",
|
|
27
|
+
"url": "/docs/components/skill-icon",
|
|
28
|
+
"mdUrl": "/docs/components/skill-icon.md",
|
|
29
|
+
"jsonUrl": "/r/components/skill-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,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Sources",
|
|
3
|
+
"slug": "sources",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "Citations collapsed into a pill, expanding into scannable source cards.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "sources",
|
|
14
|
+
"type": "readonly Source[]",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Citation cards revealed when the sources pill expands."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "open",
|
|
21
|
+
"type": "boolean",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "Whether the source list is expanded under the pill."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "onOpenChange",
|
|
28
|
+
"type": "(open: boolean) => void",
|
|
29
|
+
"required": true,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "Called when the user expands or collapses the sources."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "className",
|
|
35
|
+
"type": "string",
|
|
36
|
+
"required": false,
|
|
37
|
+
"defaultValue": null,
|
|
38
|
+
"description": "Extra classes merged onto the root."
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"typeReferences": [],
|
|
42
|
+
"subcomponents": [],
|
|
43
|
+
"parts": [],
|
|
44
|
+
"variants": {},
|
|
45
|
+
"defaultVariants": {},
|
|
46
|
+
"tokensUsed": [
|
|
47
|
+
"--cue-accent",
|
|
48
|
+
"--cue-fg",
|
|
49
|
+
"--cue-fg-muted",
|
|
50
|
+
"--cue-fg-subtle",
|
|
51
|
+
"--cue-radius-control",
|
|
52
|
+
"--cue-radius-overlay",
|
|
53
|
+
"--cue-surface-2",
|
|
54
|
+
"--cue-text-body",
|
|
55
|
+
"--cue-text-micro",
|
|
56
|
+
"--cue-text-ui"
|
|
57
|
+
],
|
|
58
|
+
"summary": "Citations collapsed into a pill, expanding into scannable source cards.",
|
|
59
|
+
"examples": [
|
|
60
|
+
{
|
|
61
|
+
"title": "Usage",
|
|
62
|
+
"code": "import { Sources } from \"@cueplusplus/ui/elements\";\n\n<Sources\n sources={[{ domain: \"docs.example.com\", title: \"Composer guide\" }]}\n open\n onOpenChange={setOpen}\n/>",
|
|
63
|
+
"language": "tsx"
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"status": "todo-docs",
|
|
67
|
+
"url": "/docs/components/sources",
|
|
68
|
+
"mdUrl": "/docs/components/sources.md",
|
|
69
|
+
"jsonUrl": "/r/components/sources.json",
|
|
70
|
+
"specimens": [
|
|
71
|
+
{
|
|
72
|
+
"title": "Sources",
|
|
73
|
+
"group": "elements-knowledge",
|
|
74
|
+
"components": [
|
|
75
|
+
"Sources"
|
|
76
|
+
],
|
|
77
|
+
"code": "<Specimens>\n <Specimen label=\"open\" wide>\n <Sources sources={SOURCES} open={sourcesOpen} onOpenChange={setSourcesOpen} />\n </Specimen>\n <Specimen label=\"collapsed\" wide>\n <Sources sources={SOURCES} open={false} onOpenChange={() => undefined} />\n </Specimen>\n</Specimens>",
|
|
78
|
+
"note": "Citations folded into a pill until somebody wants them. Collapsed it is a count — four sources, no argument; open it is a scannable grid of cards, one per site, each lifting a pixel under the pointer. The count is the whole affordance: it says provenance exists without spending a paragraph on it.",
|
|
79
|
+
"interaction": "the pill is the trigger and takes cue's focus ring; the chevron turns with the panel, which animates its own height through Base UI rather than a max-height guess."
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"todo": true
|
|
83
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SpeakerIdentity",
|
|
3
|
+
"slug": "speaker-identity",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "Who is talking, once a thread holds more than a user and one model.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "turns",
|
|
14
|
+
"type": "readonly SpeakerTurn[]",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Turns in order, each naming who produced it."
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"typeReferences": [
|
|
21
|
+
"Omit<ComponentProps<\"div\">, \"children\" | \"turns\"> & {\n /** Turns in order, each naming who produced it. */\n turns: readonly SpeakerTurn[];\n}"
|
|
22
|
+
],
|
|
23
|
+
"subcomponents": [],
|
|
24
|
+
"parts": [],
|
|
25
|
+
"variants": {},
|
|
26
|
+
"defaultVariants": {},
|
|
27
|
+
"tokensUsed": [
|
|
28
|
+
"--cue-fg-muted",
|
|
29
|
+
"--cue-fg-subtle",
|
|
30
|
+
"--cue-radius-surface",
|
|
31
|
+
"--cue-stream",
|
|
32
|
+
"--cue-surface-1",
|
|
33
|
+
"--cue-surface-2",
|
|
34
|
+
"--cue-text-body"
|
|
35
|
+
],
|
|
36
|
+
"summary": "Who is talking, once a thread holds more than a user and one model.",
|
|
37
|
+
"examples": [
|
|
38
|
+
{
|
|
39
|
+
"title": "Usage",
|
|
40
|
+
"code": "import { SpeakerIdentity } from \"@cueplusplus/ui/elements\";\n\n<SpeakerIdentity turns={turns} />",
|
|
41
|
+
"language": "tsx"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"status": "todo-docs",
|
|
45
|
+
"url": "/docs/components/speaker-identity",
|
|
46
|
+
"mdUrl": "/docs/components/speaker-identity.md",
|
|
47
|
+
"jsonUrl": "/r/components/speaker-identity.json",
|
|
48
|
+
"specimens": [
|
|
49
|
+
{
|
|
50
|
+
"title": "SpeakerIdentity",
|
|
51
|
+
"group": "elements-composer",
|
|
52
|
+
"components": [
|
|
53
|
+
"SpeakerIdentity"
|
|
54
|
+
],
|
|
55
|
+
"code": "<Specimens>\n <Specimen label=\"four voices\" wide>\n <SpeakerIdentity turns={SPEAKERS} />\n </Specimen>\n <Specimen label=\"just the two of you\" wide>\n <SpeakerIdentity turns={SPEAKERS.slice(0, 2)} />\n </Specimen>\n</Specimens>",
|
|
56
|
+
"note": "Who is talking, once a thread holds more than a user and one model. Four kinds — you, the agent, a subagent it delegated to, and a tool that answered — with the subagent's badge rounded so a delegated turn reads as delegated at a glance. `detail` is the second fact the name needs: which model spoke, or how long the tool took.",
|
|
57
|
+
"interaction": "none. It is a transcript, not a control; the badges are the only thing distinguishing four voices that would otherwise be four paragraphs."
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"todo": true
|
|
61
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SpecSheet",
|
|
3
|
+
"slug": "spec-sheet",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "The most common structured answer after a table: one object, labeled.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "title",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "What the sheet describes."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "subtitle",
|
|
19
|
+
"type": "string",
|
|
20
|
+
"required": false,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "Secondary identifier: a model id, a SKU, a version."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "rows",
|
|
26
|
+
"type": "readonly SpecRow[]",
|
|
27
|
+
"required": true,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Label and value pairs. Values are pre-formatted and right-aligned on tabular figures."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "visibleCount",
|
|
33
|
+
"type": "number",
|
|
34
|
+
"required": true,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "How many rows have landed."
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"typeReferences": [
|
|
40
|
+
"Omit<\n ComponentProps<\"div\">,\n \"children\" | \"title\" | \"subtitle\" | \"rows\" | \"visibleCount\"\n> & {\n /** What the sheet describes. */\n title: string;\n /** Secondary identifier: a model id, a SKU, a version. */\n subtitle?: string;\n /** Label and value pairs. Values are pre-formatted and right-aligned on tabular figures. */\n rows: readonly SpecRow[];\n /** How many rows have landed. */\n visibleCount: number;\n}"
|
|
41
|
+
],
|
|
42
|
+
"subcomponents": [],
|
|
43
|
+
"parts": [],
|
|
44
|
+
"variants": {},
|
|
45
|
+
"defaultVariants": {},
|
|
46
|
+
"tokensUsed": [
|
|
47
|
+
"--cue-border",
|
|
48
|
+
"--cue-fg",
|
|
49
|
+
"--cue-fg-muted",
|
|
50
|
+
"--cue-fg-subtle",
|
|
51
|
+
"--cue-radius-overlay",
|
|
52
|
+
"--cue-text-body",
|
|
53
|
+
"--cue-text-ui"
|
|
54
|
+
],
|
|
55
|
+
"summary": "The most common structured answer after a table: one object, labeled.",
|
|
56
|
+
"examples": [
|
|
57
|
+
{
|
|
58
|
+
"title": "Usage",
|
|
59
|
+
"code": "import { SpecSheet } from \"@cueplusplus/ui/elements\";\n\n<SpecSheet title=\"Opus 5\" subtitle=\"claude-opus-5\" rows={rows} visibleCount={6} />",
|
|
60
|
+
"language": "tsx"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"status": "todo-docs",
|
|
64
|
+
"url": "/docs/components/spec-sheet",
|
|
65
|
+
"mdUrl": "/docs/components/spec-sheet.md",
|
|
66
|
+
"jsonUrl": "/r/components/spec-sheet.json",
|
|
67
|
+
"specimens": [
|
|
68
|
+
{
|
|
69
|
+
"title": "SpecSheet",
|
|
70
|
+
"group": "elements-knowledge",
|
|
71
|
+
"components": [
|
|
72
|
+
"SpecSheet"
|
|
73
|
+
],
|
|
74
|
+
"code": "<Specimens>\n <Specimen label=\"the whole sheet\" wide>\n <SpecSheet\n title=\"Robe ESPRITE\"\n subtitle=\"as configured for the front truss\"\n rows={SPEC}\n visibleCount={SPEC.length}\n />\n </Specimen>\n <Specimen label=\"arriving\" wide>\n <SpecSheet title=\"Robe ESPRITE\" rows={SPEC} visibleCount={3} />\n </Specimen>\n</Specimens>",
|
|
75
|
+
"note": "One object, labelled — the commonest structured answer after a table. Labels sit in mono on the leading edge and values in tabular figures on the trailing one, so a column of numbers lines up even though nothing here is a table. `emphasis` promotes the one row that answers the question.",
|
|
76
|
+
"interaction": "none. `visibleCount` is what makes it arrive a row at a time instead of appearing whole."
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"todo": true
|
|
80
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "StackIcon",
|
|
3
|
+
"slug": "stack-icon",
|
|
4
|
+
"group": "icons",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": false,
|
|
8
|
+
"description": "One person's stack: the set of things they have actually installed.\n\nPlates seen edge-on — the layers idiom — because a stack is an accumulation\nand not a container: things go into it one at a time and the order they went\nin is part of what it is.",
|
|
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": "One person's stack: the set of things they have actually installed.",
|
|
25
|
+
"examples": [],
|
|
26
|
+
"status": "todo-docs",
|
|
27
|
+
"url": "/docs/components/stack-icon",
|
|
28
|
+
"mdUrl": "/docs/components/stack-icon.md",
|
|
29
|
+
"jsonUrl": "/r/components/stack-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,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "StacksMatrixIcon",
|
|
3
|
+
"slug": "stacks-matrix-icon",
|
|
4
|
+
"group": "icons",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": false,
|
|
8
|
+
"description": "Every stack at once, one column each: who has what, read across.\n\nA table rather than more plates. The head rule and the name column are what\nmake it a matrix instead of a grid — the question it answers is \"which of\nthese does that person not have\", and that is a question with two axes.",
|
|
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": "Every stack at once, one column each: who has what, read across.",
|
|
25
|
+
"examples": [],
|
|
26
|
+
"status": "todo-docs",
|
|
27
|
+
"url": "/docs/components/stacks-matrix-icon",
|
|
28
|
+
"mdUrl": "/docs/components/stacks-matrix-icon.md",
|
|
29
|
+
"jsonUrl": "/r/components/stacks-matrix-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
|
+
}
|