@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,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CatalogueIcon",
|
|
3
|
+
"slug": "catalogue-icon",
|
|
4
|
+
"group": "icons",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": false,
|
|
8
|
+
"description": "The catalogue itself: everything there is, before anything has been narrowed.\n\nOne tile repeated over a 2×2 rather than a stack of rows, because the row\nthis marks is the one that *undoes* a filter — \"all of it\" is a shape, and a\nlist glyph would have promised an ordering the row does not have.",
|
|
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": "The catalogue itself: everything there is, before anything has been narrowed.",
|
|
25
|
+
"examples": [],
|
|
26
|
+
"status": "todo-docs",
|
|
27
|
+
"url": "/docs/components/catalogue-icon",
|
|
28
|
+
"mdUrl": "/docs/components/catalogue-icon.md",
|
|
29
|
+
"jsonUrl": "/r/components/catalogue-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": "ChannelBetaIcon",
|
|
3
|
+
"slug": "channel-beta-icon",
|
|
4
|
+
"group": "icons",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": false,
|
|
8
|
+
"description": "The beta channel: the same things, one merge earlier.\n\nThe released ring at half fill. Half rather than empty because a beta is not\nan absence of a release — it is a release that has not finished happening,\nand an empty ring would have read as \"nothing here yet\".",
|
|
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": "The beta channel: the same things, one merge earlier.",
|
|
25
|
+
"examples": [],
|
|
26
|
+
"status": "todo-docs",
|
|
27
|
+
"url": "/docs/components/channel-beta-icon",
|
|
28
|
+
"mdUrl": "/docs/components/channel-beta-icon.md",
|
|
29
|
+
"jsonUrl": "/r/components/channel-beta-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": "ChannelReleasedIcon",
|
|
3
|
+
"slug": "channel-released-icon",
|
|
4
|
+
"group": "icons",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": false,
|
|
8
|
+
"description": "The released channel: what a colleague gets when they install without asking\nfor anything in particular.\n\nA ring filled solid. Its pair, {@link ChannelBetaIcon}, is the same ring\nfilled halfway — the two are one mark told twice, so a reader never has to\nlearn which of two unrelated pictures means \"finished\".",
|
|
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": "The released channel: what a colleague gets when they install without asking for anything in particular.",
|
|
25
|
+
"examples": [],
|
|
26
|
+
"status": "todo-docs",
|
|
27
|
+
"url": "/docs/components/channel-released-icon",
|
|
28
|
+
"mdUrl": "/docs/components/channel-released-icon.md",
|
|
29
|
+
"jsonUrl": "/r/components/channel-released-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,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Chart",
|
|
3
|
+
"slug": "chart",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "Area, line, and bars, with points landing one at a time as the series streams in.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "label",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "What the series measures."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "value",
|
|
19
|
+
"type": "string",
|
|
20
|
+
"required": true,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "The headline figure, pre-formatted. The chart never formats numbers itself."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "delta",
|
|
26
|
+
"type": "string",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Change against the previous window. Renders green unless it starts with a minus sign."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "points",
|
|
33
|
+
"type": "readonly number[]",
|
|
34
|
+
"required": true,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "The full series. The scale is computed from all of it, so the axis does not jump\nwhile streaming."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "visibleCount",
|
|
40
|
+
"type": "number",
|
|
41
|
+
"required": true,
|
|
42
|
+
"defaultValue": null,
|
|
43
|
+
"description": "How many points have arrived."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "variant",
|
|
47
|
+
"type": "\"area\" | \"line\" | \"bars\"",
|
|
48
|
+
"required": false,
|
|
49
|
+
"defaultValue": "area",
|
|
50
|
+
"description": "Mark type. The last point stays emphasized in all three."
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"typeReferences": [
|
|
54
|
+
"Omit<\n ComponentProps<\"div\">,\n | \"children\"\n | \"label\"\n | \"value\"\n | \"delta\"\n | \"points\"\n | \"visibleCount\"\n | \"variant\"\n> & {\n /** What the series measures. */\n label: string;\n /** The headline figure, pre-formatted. The chart never formats numbers itself. */\n value: string;\n /** Change against the previous window. Renders green unless it starts with a minus sign. */\n delta?: string;\n /**\n * The full series. The scale is computed from all of it, so the axis does not jump\n * while streaming.\n */\n points: readonly number[];\n /** How many points have arrived. */\n visibleCount: number;\n /** Mark type. The last point stays emphasized in all three. */\n variant?: ChartVariant;\n}"
|
|
55
|
+
],
|
|
56
|
+
"subcomponents": [],
|
|
57
|
+
"parts": [],
|
|
58
|
+
"variants": {},
|
|
59
|
+
"defaultVariants": {},
|
|
60
|
+
"tokensUsed": [
|
|
61
|
+
"--cue-danger",
|
|
62
|
+
"--cue-fg-subtle",
|
|
63
|
+
"--cue-ok",
|
|
64
|
+
"--cue-radius-overlay",
|
|
65
|
+
"--cue-stream",
|
|
66
|
+
"--cue-text-title"
|
|
67
|
+
],
|
|
68
|
+
"summary": "Area, line, and bars, with points landing one at a time as the series streams in.",
|
|
69
|
+
"examples": [
|
|
70
|
+
{
|
|
71
|
+
"title": "Usage",
|
|
72
|
+
"code": "import { Chart } from \"@cueplusplus/ui/elements\";\n\n<Chart\n label=\"Runs this week\"\n value=\"92\"\n delta=\"+34%\"\n points={points}\n visibleCount={points.length}\n variant=\"area\"\n/>",
|
|
73
|
+
"language": "tsx"
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"status": "todo-docs",
|
|
77
|
+
"url": "/docs/components/chart",
|
|
78
|
+
"mdUrl": "/docs/components/chart.md",
|
|
79
|
+
"jsonUrl": "/r/components/chart.json",
|
|
80
|
+
"specimens": [
|
|
81
|
+
{
|
|
82
|
+
"title": "Chart",
|
|
83
|
+
"group": "elements-knowledge",
|
|
84
|
+
"components": [
|
|
85
|
+
"Chart"
|
|
86
|
+
],
|
|
87
|
+
"code": "<Specimens>\n <Specimen label=\"area\" wide>\n <Chart\n label=\"FOH leg\"\n value=\"29.1 A\"\n delta=\"+18.1\"\n points={LOAD}\n visibleCount={LOAD.length}\n />\n </Specimen>\n <Specimen label=\"line, still arriving\" wide>\n <Chart label=\"FOH leg\" value=\"17.4 A\" points={LOAD} visibleCount={4} variant=\"line\" />\n </Specimen>\n <Specimen label=\"bars, falling\" wide>\n <Chart\n label=\"Headroom\"\n value=\"2.9 A\"\n delta=\"−8.1\"\n points={[...LOAD].reverse()}\n visibleCount={LOAD.length}\n variant=\"bars\"\n />\n </Specimen>\n</Specimens>",
|
|
88
|
+
"note": "One series, three ways, on one scale: an area, a bare line, or bars with the newest one lit. It draws its own SVG at a fixed viewBox and stretches — there is no charting library under this, which is the point of it being an element rather than an instrument.",
|
|
89
|
+
"interaction": "none, and it is not a substitute for the charts group: no axes, no legend, no tooltip. The `<svg>` carries role='img' and a label built from the figure beside it."
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"todo": true
|
|
93
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ChatEmptyState",
|
|
3
|
+
"slug": "chat-empty-state",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The first screen: a greeting, three ways in, and the composer front and center.",
|
|
11
|
+
"props": [],
|
|
12
|
+
"typeReferences": [
|
|
13
|
+
"ComponentProps<\"div\">"
|
|
14
|
+
],
|
|
15
|
+
"subcomponents": [],
|
|
16
|
+
"parts": [],
|
|
17
|
+
"variants": {},
|
|
18
|
+
"defaultVariants": {},
|
|
19
|
+
"tokensUsed": [
|
|
20
|
+
"--cue-accent",
|
|
21
|
+
"--cue-fg-subtle",
|
|
22
|
+
"--cue-text-body",
|
|
23
|
+
"--cue-text-emphasis",
|
|
24
|
+
"--cue-text-title"
|
|
25
|
+
],
|
|
26
|
+
"summary": "The first screen: a greeting, three ways in, and the composer front and center.",
|
|
27
|
+
"examples": [
|
|
28
|
+
{
|
|
29
|
+
"title": "Usage",
|
|
30
|
+
"code": "import {\n EmptyState,\n EmptyStateComposer,\n EmptyStateGreeting,\n EmptyStateSuggestion,\n EmptyStateSuggestions,\n} from \"@cueplusplus/ui/elements\";\n\n<EmptyState>\n <EmptyStateGreeting>What are we building?</EmptyStateGreeting>\n <EmptyStateSuggestions>\n {items.map((item, i) => (\n <EmptyStateSuggestion key={item} index={i} onClick={() => send(item)}>\n {item}\n </EmptyStateSuggestion>\n ))}\n </EmptyStateSuggestions>\n <EmptyStateComposer placeholder=\"Ask anything\" onSend={send} />\n</EmptyState>",
|
|
31
|
+
"language": "tsx"
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"status": "todo-docs",
|
|
35
|
+
"url": "/docs/components/chat-empty-state",
|
|
36
|
+
"mdUrl": "/docs/components/chat-empty-state.md",
|
|
37
|
+
"jsonUrl": "/r/components/chat-empty-state.json",
|
|
38
|
+
"specimens": [
|
|
39
|
+
{
|
|
40
|
+
"title": "ChatEmptyState",
|
|
41
|
+
"group": "elements-composer",
|
|
42
|
+
"components": [
|
|
43
|
+
"ChatEmptyState",
|
|
44
|
+
"EmptyStateGreeting",
|
|
45
|
+
"EmptyStateSuggestions",
|
|
46
|
+
"EmptyStateSuggestion",
|
|
47
|
+
"EmptyStateComposer"
|
|
48
|
+
],
|
|
49
|
+
"code": "<Specimens>\n <Specimen label=\"greeting, ways in, composer\" wide>\n <ChatEmptyState>\n <EmptyStateGreeting>What is the rig doing tonight?</EmptyStateGreeting>\n <EmptyStateSuggestions>\n {OPENERS.map((opener, index) => (\n <EmptyStateSuggestion key={opener} index={index}>\n {opener}\n </EmptyStateSuggestion>\n ))}\n </EmptyStateSuggestions>\n <EmptyStateComposer placeholder=\"Ask about the rig\" onSend={() => undefined} />\n </ChatEmptyState>\n </Specimen>\n <Specimen label=\"greeting only\" wide>\n <ChatEmptyState>\n <EmptyStateGreeting>Ready when you are.</EmptyStateGreeting>\n <EmptyStateComposer placeholder=\"Ask about the rig\" />\n </ChatEmptyState>\n </Specimen>\n</Specimens>",
|
|
50
|
+
"note": "The first screen, composed rather than configured: a greeting, some ways in, and a composer-shaped invitation. `EmptyStateComposer` is a display and not a working input — the placeholder is a string and send takes a handler — for the screen whose real composer is somewhere else. The suggestions stagger their entrance from `index`, so the row arrives left to right instead of all at once. Named `ChatEmptyState` because cue already publishes a layout `EmptyState`.",
|
|
51
|
+
"interaction": "each suggestion is a button with cue's focus ring; the greeting is an `h2`, so a screen reader lands on the sentence rather than the pills."
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"todo": true
|
|
55
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ChatPanelAssistantMessage",
|
|
3
|
+
"slug": "chat-panel-assistant-message",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "One message from the model: plain text on the leading edge, no bubble.",
|
|
11
|
+
"props": [],
|
|
12
|
+
"typeReferences": [
|
|
13
|
+
"ComponentProps<\"p\">"
|
|
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": "One message from the model: plain text on the leading edge, no bubble.",
|
|
28
|
+
"examples": [],
|
|
29
|
+
"status": "todo-docs",
|
|
30
|
+
"url": "/docs/components/chat-panel-assistant-message",
|
|
31
|
+
"mdUrl": "/docs/components/chat-panel-assistant-message.md",
|
|
32
|
+
"jsonUrl": "/r/components/chat-panel-assistant-message.json",
|
|
33
|
+
"specimens": [
|
|
34
|
+
{
|
|
35
|
+
"title": "ChatPanel",
|
|
36
|
+
"group": "elements",
|
|
37
|
+
"components": [
|
|
38
|
+
"ChatPanel",
|
|
39
|
+
"ChatPanelMessages",
|
|
40
|
+
"ChatPanelUserMessage",
|
|
41
|
+
"ChatPanelAssistantMessage",
|
|
42
|
+
"ChatPanelTyping",
|
|
43
|
+
"ChatPanelComposer"
|
|
44
|
+
],
|
|
45
|
+
"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>",
|
|
46
|
+
"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.",
|
|
47
|
+
"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."
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"todo": true
|
|
51
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ChatPanelComposer",
|
|
3
|
+
"slug": "chat-panel-composer",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The panel's composer row. It is a display of a composer rather than a working one —\nthe placeholder is a string and the send button takes a handler.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "placeholder",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Resting text in the input bar."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "onSend",
|
|
21
|
+
"type": "(() => void)",
|
|
22
|
+
"required": false,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "Called from the send control. Omit it and the control renders disabled."
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"typeReferences": [
|
|
28
|
+
"Omit<ComponentProps<\"div\">, \"children\" | \"placeholder\"> & {\n /** Resting text in the input bar. */\n placeholder: string;\n /** Called from the send control. Omit it and the control renders disabled. */\n onSend?: () => void;\n}"
|
|
29
|
+
],
|
|
30
|
+
"subcomponents": [],
|
|
31
|
+
"parts": [],
|
|
32
|
+
"variants": {},
|
|
33
|
+
"defaultVariants": {},
|
|
34
|
+
"tokensUsed": [
|
|
35
|
+
"--cue-fg-muted",
|
|
36
|
+
"--cue-fg-subtle",
|
|
37
|
+
"--cue-radius-overlay",
|
|
38
|
+
"--cue-surface-3",
|
|
39
|
+
"--cue-text-body",
|
|
40
|
+
"--cue-text-ui"
|
|
41
|
+
],
|
|
42
|
+
"summary": "The panel's composer row.",
|
|
43
|
+
"examples": [],
|
|
44
|
+
"status": "todo-docs",
|
|
45
|
+
"url": "/docs/components/chat-panel-composer",
|
|
46
|
+
"mdUrl": "/docs/components/chat-panel-composer.md",
|
|
47
|
+
"jsonUrl": "/r/components/chat-panel-composer.json",
|
|
48
|
+
"specimens": [
|
|
49
|
+
{
|
|
50
|
+
"title": "ChatPanel",
|
|
51
|
+
"group": "elements",
|
|
52
|
+
"components": [
|
|
53
|
+
"ChatPanel",
|
|
54
|
+
"ChatPanelMessages",
|
|
55
|
+
"ChatPanelUserMessage",
|
|
56
|
+
"ChatPanelAssistantMessage",
|
|
57
|
+
"ChatPanelTyping",
|
|
58
|
+
"ChatPanelComposer"
|
|
59
|
+
],
|
|
60
|
+
"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>",
|
|
61
|
+
"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.",
|
|
62
|
+
"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."
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"todo": true
|
|
66
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ChatPanelMessages",
|
|
3
|
+
"slug": "chat-panel-messages",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The scrolling transcript inside a `ChatPanel`. Bottom-aligned, so a short\nconversation sits on the composer rather than floating at the top of the panel.",
|
|
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 scrolling transcript inside a `ChatPanel`.",
|
|
28
|
+
"examples": [],
|
|
29
|
+
"status": "todo-docs",
|
|
30
|
+
"url": "/docs/components/chat-panel-messages",
|
|
31
|
+
"mdUrl": "/docs/components/chat-panel-messages.md",
|
|
32
|
+
"jsonUrl": "/r/components/chat-panel-messages.json",
|
|
33
|
+
"specimens": [
|
|
34
|
+
{
|
|
35
|
+
"title": "ChatPanel",
|
|
36
|
+
"group": "elements",
|
|
37
|
+
"components": [
|
|
38
|
+
"ChatPanel",
|
|
39
|
+
"ChatPanelMessages",
|
|
40
|
+
"ChatPanelUserMessage",
|
|
41
|
+
"ChatPanelAssistantMessage",
|
|
42
|
+
"ChatPanelTyping",
|
|
43
|
+
"ChatPanelComposer"
|
|
44
|
+
],
|
|
45
|
+
"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>",
|
|
46
|
+
"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.",
|
|
47
|
+
"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."
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"todo": true
|
|
51
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ChatPanelTyping",
|
|
3
|
+
"slug": "chat-panel-typing",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The three-dot rest state, for the gap between sending and the first token.",
|
|
11
|
+
"props": [],
|
|
12
|
+
"typeReferences": [
|
|
13
|
+
"Omit<ComponentProps<\"div\">, \"children\">"
|
|
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 three-dot rest state, for the gap between sending and the first token.",
|
|
28
|
+
"examples": [],
|
|
29
|
+
"status": "todo-docs",
|
|
30
|
+
"url": "/docs/components/chat-panel-typing",
|
|
31
|
+
"mdUrl": "/docs/components/chat-panel-typing.md",
|
|
32
|
+
"jsonUrl": "/r/components/chat-panel-typing.json",
|
|
33
|
+
"specimens": [
|
|
34
|
+
{
|
|
35
|
+
"title": "ChatPanel",
|
|
36
|
+
"group": "elements",
|
|
37
|
+
"components": [
|
|
38
|
+
"ChatPanel",
|
|
39
|
+
"ChatPanelMessages",
|
|
40
|
+
"ChatPanelUserMessage",
|
|
41
|
+
"ChatPanelAssistantMessage",
|
|
42
|
+
"ChatPanelTyping",
|
|
43
|
+
"ChatPanelComposer"
|
|
44
|
+
],
|
|
45
|
+
"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>",
|
|
46
|
+
"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.",
|
|
47
|
+
"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."
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"todo": true
|
|
51
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ChatPanelUserMessage",
|
|
3
|
+
"slug": "chat-panel-user-message",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "One message from the person, drawn as a filled bubble on the trailing edge.",
|
|
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": "One message from the person, drawn as a filled bubble on the trailing edge.",
|
|
28
|
+
"examples": [],
|
|
29
|
+
"status": "todo-docs",
|
|
30
|
+
"url": "/docs/components/chat-panel-user-message",
|
|
31
|
+
"mdUrl": "/docs/components/chat-panel-user-message.md",
|
|
32
|
+
"jsonUrl": "/r/components/chat-panel-user-message.json",
|
|
33
|
+
"specimens": [
|
|
34
|
+
{
|
|
35
|
+
"title": "ChatPanel",
|
|
36
|
+
"group": "elements",
|
|
37
|
+
"components": [
|
|
38
|
+
"ChatPanel",
|
|
39
|
+
"ChatPanelMessages",
|
|
40
|
+
"ChatPanelUserMessage",
|
|
41
|
+
"ChatPanelAssistantMessage",
|
|
42
|
+
"ChatPanelTyping",
|
|
43
|
+
"ChatPanelComposer"
|
|
44
|
+
],
|
|
45
|
+
"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>",
|
|
46
|
+
"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.",
|
|
47
|
+
"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."
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"todo": true
|
|
51
|
+
}
|