@cueplusplus/ui 0.2.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 +2250 -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/brand/_chassis.d.ts +1 -1
- package/dist/brand/cue-mark.d.ts +1 -1
- package/dist/brand/cue-mark.js +1 -1
- 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/_edge-scroller.js +12 -1
- package/dist/chrome/_tabs-scroll.d.ts +1 -1
- package/dist/chrome/_tabs-scroll.js +1 -1
- 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/_overrides.js +18 -6
- 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 +9 -7
- package/dist/index.js +3 -2
- package/dist/instruments/index.d.ts +2 -2
- package/dist/instruments/index.js +2 -2
- package/dist/instruments/table.d.ts +14 -1
- package/dist/instruments/table.js +20 -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 +34 -8
- package/dist/primitives/chip.js +97 -11
- package/dist/styles.css +11 -1
- package/dist/system/agent-skin.d.ts +27 -0
- package/dist/system/agent-skin.js +20 -0
- package/dist/system/index.d.ts +3 -3
- package/dist/system/portal.d.ts +5 -3
- package/dist/system/portal.js +36 -8
- package/dist/system/prepaint.d.ts +20 -2
- package/dist/system/prepaint.js +39 -33
- package/dist/system/theme-provider.d.ts +13 -2
- package/dist/system/theme-provider.js +107 -26
- 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 +124 -8
- package/dist/theming/contrast.d.ts +16 -4
- package/dist/theming/contrast.js +33 -6
- package/dist/theming/create-theme.d.ts +8 -4
- package/dist/theming/create-theme.js +56 -20
- package/dist/theming/serialize.d.ts +11 -2
- package/dist/theming/serialize.js +87 -9
- package/manifest/components/accordion.json +154 -0
- 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-pile.json +116 -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 +190 -0
- package/manifest/components/animated-number.json +67 -0
- package/manifest/components/app-bar.json +244 -0
- package/manifest/components/app-shell.json +383 -0
- package/manifest/components/app-window-frame.json +102 -0
- package/manifest/components/approval-card.json +106 -0
- package/manifest/components/artifact-card.json +81 -0
- package/manifest/components/ask-box.json +209 -0
- package/manifest/components/audience-icon.json +52 -0
- package/manifest/components/autocomplete.json +197 -0
- package/manifest/components/avatar-group.json +72 -0
- package/manifest/components/avatar.json +95 -0
- package/manifest/components/background-inbox.json +71 -0
- package/manifest/components/branch-picker.json +124 -0
- package/manifest/components/breadcrumb.json +74 -0
- package/manifest/components/button-group.json +74 -0
- package/manifest/components/button.json +126 -0
- package/manifest/components/calendar.json +65 -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/card.json +140 -0
- package/manifest/components/carousel.json +200 -0
- package/manifest/components/catalogue-icon.json +52 -0
- package/manifest/components/channel-beta-icon.json +52 -0
- package/manifest/components/channel-matrix.json +173 -0
- package/manifest/components/channel-released-icon.json +52 -0
- package/manifest/components/chart-container.json +111 -0
- package/manifest/components/chart-ramp.json +72 -0
- package/manifest/components/chart-swatch.json +65 -0
- package/manifest/components/chart-tooltip-content.json +114 -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/checkbox-group.json +68 -0
- package/manifest/components/checkbox.json +93 -0
- package/manifest/components/checkpoint-history.json +80 -0
- package/manifest/components/chip.json +144 -0
- 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/collapsible.json +120 -0
- package/manifest/components/color-area.json +59 -0
- package/manifest/components/color-field.json +79 -0
- package/manifest/components/color-picker.json +175 -0
- package/manifest/components/color-slider.json +75 -0
- package/manifest/components/color-swatch.json +68 -0
- package/manifest/components/colors-section.json +66 -0
- package/manifest/components/combobox.json +198 -0
- package/manifest/components/command-palette.json +177 -0
- package/manifest/components/compaction-row.json +100 -0
- package/manifest/components/comparison-card.json +83 -0
- package/manifest/components/composer-actions.json +65 -0
- package/manifest/components/composer-attach-button.json +65 -0
- package/manifest/components/composer-attachment-chip.json +75 -0
- package/manifest/components/composer-attachments.json +60 -0
- package/manifest/components/composer-bar.json +73 -0
- package/manifest/components/composer-command-item.json +79 -0
- package/manifest/components/composer-context.json +67 -0
- package/manifest/components/composer-input.json +73 -0
- package/manifest/components/composer-menu-item.json +72 -0
- package/manifest/components/composer-menu.json +79 -0
- package/manifest/components/composer-model-item.json +75 -0
- package/manifest/components/composer-model-trigger.json +75 -0
- package/manifest/components/composer-person-item.json +79 -0
- package/manifest/components/composer-send.json +80 -0
- package/manifest/components/composer-toolbar.json +65 -0
- package/manifest/components/composer-voice-button.json +68 -0
- package/manifest/components/composer-voice.json +75 -0
- package/manifest/components/composer.json +176 -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/container.json +60 -0
- package/manifest/components/context-breakdown.json +65 -0
- package/manifest/components/context-menu.json +121 -0
- package/manifest/components/context-usage.json +85 -0
- package/manifest/components/conversation-search.json +92 -0
- package/manifest/components/copy-button.json +93 -0
- package/manifest/components/cost-meter.json +74 -0
- package/manifest/components/cue-logotype.json +96 -0
- package/manifest/components/cue-mark.json +97 -0
- package/manifest/components/cue-portal-frame.json +55 -0
- package/manifest/components/data-table-pagination.json +83 -0
- package/manifest/components/data-table-toolbar.json +104 -0
- package/manifest/components/date-field.json +80 -0
- package/manifest/components/date-picker.json +191 -0
- package/manifest/components/date-range-picker.json +191 -0
- package/manifest/components/day-separator.json +58 -0
- package/manifest/components/delegation-card.json +144 -0
- package/manifest/components/density.json +58 -0
- package/manifest/components/description-list.json +84 -0
- package/manifest/components/diagram.json +100 -0
- package/manifest/components/dialog.json +198 -0
- package/manifest/components/disclosure.json +109 -0
- package/manifest/components/dmx-bar.json +94 -0
- package/manifest/components/dmx-strip.json +101 -0
- package/manifest/components/document-reference.json +90 -0
- package/manifest/components/draft-restore.json +82 -0
- package/manifest/components/drawer.json +179 -0
- package/manifest/components/dropdown-menu.json +229 -0
- 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/empty-state.json +90 -0
- package/manifest/components/end-of-turn-summary.json +77 -0
- package/manifest/components/env-var-input.json +150 -0
- package/manifest/components/error-state.json +80 -0
- package/manifest/components/export-dialog.json +84 -0
- package/manifest/components/eyebrow.json +56 -0
- package/manifest/components/feedback-dialog.json +107 -0
- package/manifest/components/field-description.json +63 -0
- package/manifest/components/field-error.json +77 -0
- package/manifest/components/field-label.json +63 -0
- package/manifest/components/field.json +79 -0
- package/manifest/components/file-tree.json +83 -0
- package/manifest/components/file-upload.json +159 -0
- package/manifest/components/flow-background.json +50 -0
- package/manifest/components/flow-controls.json +50 -0
- package/manifest/components/flow-graph.json +75 -0
- package/manifest/components/folder-icon.json +52 -0
- package/manifest/components/footer.json +112 -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/grid.json +81 -0
- package/manifest/components/group-bar.json +102 -0
- package/manifest/components/guardrail-notice.json +91 -0
- package/manifest/components/hover-card.json +151 -0
- package/manifest/components/icon-button.json +88 -0
- package/manifest/components/image-generation.json +67 -0
- package/manifest/components/info-tip.json +98 -0
- package/manifest/components/inline-citation.json +77 -0
- package/manifest/components/input-group.json +91 -0
- package/manifest/components/input.json +89 -0
- package/manifest/components/item.json +129 -0
- package/manifest/components/job-progress.json +96 -0
- package/manifest/components/kbd.json +52 -0
- package/manifest/components/launcher-bubble.json +105 -0
- package/manifest/components/link.json +81 -0
- package/manifest/components/live-region-announcer.json +79 -0
- package/manifest/components/log-viewer.json +139 -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/menubar.json +157 -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 +100 -0
- 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/message.json +116 -0
- package/manifest/components/meter.json +114 -0
- package/manifest/components/mobile-composer.json +126 -0
- package/manifest/components/model-picker.json +76 -0
- package/manifest/components/multi-select.json +190 -0
- package/manifest/components/musical-time-input.json +113 -0
- package/manifest/components/navigation-menu.json +226 -0
- package/manifest/components/node-card.json +109 -0
- package/manifest/components/node-handle.json +69 -0
- package/manifest/components/number-field.json +107 -0
- package/manifest/components/number-ticker.json +61 -0
- package/manifest/components/onboarding.json +84 -0
- package/manifest/components/otp-field.json +128 -0
- package/manifest/components/page-shell.json +96 -0
- package/manifest/components/pagination.json +92 -0
- package/manifest/components/panel-header.json +77 -0
- package/manifest/components/panel.json +71 -0
- package/manifest/components/password-input.json +119 -0
- package/manifest/components/permission-grant.json +92 -0
- package/manifest/components/permission-scopes.json +139 -0
- package/manifest/components/piano-keyboard.json +120 -0
- package/manifest/components/plussie.json +111 -0
- package/manifest/components/popover.json +193 -0
- package/manifest/components/preset-section.json +73 -0
- package/manifest/components/progress.json +95 -0
- 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/radio-group.json +73 -0
- package/manifest/components/radio.json +80 -0
- package/manifest/components/rating.json +141 -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/resizable.json +88 -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/row.json +109 -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 +91 -0
- package/manifest/components/scrollable-tabs-list.json +83 -0
- package/manifest/components/scrub-input.json +200 -0
- package/manifest/components/seam-cell.json +75 -0
- package/manifest/components/seam-grid.json +75 -0
- package/manifest/components/seam-list.json +56 -0
- package/manifest/components/search-input.json +134 -0
- package/manifest/components/section-header.json +112 -0
- package/manifest/components/segmented-control.json +138 -0
- package/manifest/components/select.json +194 -0
- package/manifest/components/separator.json +53 -0
- package/manifest/components/settings-panel.json +118 -0
- package/manifest/components/shape-section.json +66 -0
- package/manifest/components/shared-conversation.json +89 -0
- package/manifest/components/sheet.json +186 -0
- package/manifest/components/shimmer-label.json +59 -0
- package/manifest/components/sidebar.json +198 -0
- package/manifest/components/signal-edge.json +56 -0
- package/manifest/components/skeleton.json +46 -0
- package/manifest/components/skill-icon.json +52 -0
- package/manifest/components/slider.json +89 -0
- package/manifest/components/sources.json +83 -0
- package/manifest/components/sparkline.json +76 -0
- package/manifest/components/speaker-identity.json +61 -0
- package/manifest/components/spec-sheet.json +80 -0
- package/manifest/components/spectrum-visualizer.json +115 -0
- package/manifest/components/spinner.json +61 -0
- package/manifest/components/stack-icon.json +52 -0
- package/manifest/components/stack.json +96 -0
- package/manifest/components/stacks-matrix-icon.json +52 -0
- package/manifest/components/stat.json +87 -0
- package/manifest/components/status-bar.json +58 -0
- package/manifest/components/status-dot.json +78 -0
- package/manifest/components/stepper.json +89 -0
- 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/switch.json +87 -0
- package/manifest/components/table-scroll-region.json +69 -0
- package/manifest/components/table.json +155 -0
- package/manifest/components/tabs.json +145 -0
- package/manifest/components/tags-input.json +190 -0
- package/manifest/components/tail-status.json +109 -0
- package/manifest/components/terminal-block.json +91 -0
- package/manifest/components/terminal-frame.json +119 -0
- package/manifest/components/textarea.json +76 -0
- package/manifest/components/theme-configurator.json +124 -0
- package/manifest/components/theme-provider.json +134 -0
- 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 +160 -0
- package/manifest/components/time-boundary.json +62 -0
- package/manifest/components/time-field.json +80 -0
- package/manifest/components/timeline-ruler.json +139 -0
- package/manifest/components/timeline.json +115 -0
- package/manifest/components/title-bar.json +82 -0
- package/manifest/components/toast.json +130 -0
- package/manifest/components/todo-list.json +69 -0
- package/manifest/components/toggle-group.json +106 -0
- package/manifest/components/toggle.json +109 -0
- package/manifest/components/token-editor.json +90 -0
- 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 +163 -0
- package/manifest/components/tooltip.json +164 -0
- package/manifest/components/trace-waterfall.json +74 -0
- package/manifest/components/tree-visibility-toggle.json +84 -0
- package/manifest/components/tree.json +140 -0
- package/manifest/components/turn-footer.json +105 -0
- package/manifest/components/two-step-button.json +113 -0
- package/manifest/components/typing-indicator.json +53 -0
- package/manifest/components/universe-grid.json +127 -0
- package/manifest/components/unread-divider.json +55 -0
- package/manifest/components/usage-chart.json +124 -0
- 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 +4779 -0
- package/manifest/tokens.json +159 -0
- package/package.json +54 -5
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CanvasSplitBody",
|
|
3
|
+
"slug": "canvas-split-body",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The document's text, scrolling on its own, with a caret while it is still being\nwritten.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "writing",
|
|
14
|
+
"type": "boolean",
|
|
15
|
+
"required": false,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Trails a caret after the last line while the document is still being written."
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"typeReferences": [
|
|
21
|
+
"ComponentProps<\"div\"> & {\n /** Trails a caret after the last line while the document is still being written. */\n writing?: boolean;\n}"
|
|
22
|
+
],
|
|
23
|
+
"subcomponents": [],
|
|
24
|
+
"parts": [],
|
|
25
|
+
"variants": {},
|
|
26
|
+
"defaultVariants": {},
|
|
27
|
+
"tokensUsed": [
|
|
28
|
+
"--cue-accent",
|
|
29
|
+
"--cue-border",
|
|
30
|
+
"--cue-fg",
|
|
31
|
+
"--cue-fg-muted",
|
|
32
|
+
"--cue-fg-subtle",
|
|
33
|
+
"--cue-ok",
|
|
34
|
+
"--cue-radius-overlay",
|
|
35
|
+
"--cue-text-body"
|
|
36
|
+
],
|
|
37
|
+
"summary": "The document's text, scrolling on its own, with a caret while it is still being written.",
|
|
38
|
+
"examples": [],
|
|
39
|
+
"status": "todo-docs",
|
|
40
|
+
"url": "/docs/components/canvas-split-body",
|
|
41
|
+
"mdUrl": "/docs/components/canvas-split-body.md",
|
|
42
|
+
"jsonUrl": "/r/components/canvas-split-body.json",
|
|
43
|
+
"specimens": [
|
|
44
|
+
{
|
|
45
|
+
"title": "CanvasSplit",
|
|
46
|
+
"group": "elements-knowledge",
|
|
47
|
+
"components": [
|
|
48
|
+
"CanvasSplit",
|
|
49
|
+
"CanvasSplitThread",
|
|
50
|
+
"CanvasSplitMessage",
|
|
51
|
+
"CanvasSplitDocument",
|
|
52
|
+
"CanvasSplitHeader",
|
|
53
|
+
"CanvasSplitBody",
|
|
54
|
+
"CanvasSplitLine"
|
|
55
|
+
],
|
|
56
|
+
"code": "<Specimens>\n <Specimen label=\"still writing\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">\n Write up the fixture decision for the front truss.\n </CanvasSplitMessage>\n <CanvasSplitMessage speaker=\"assistant\">\n Drafting it now — spec, power and the load check.\n </CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader title=\"Front truss — fixture spec\" version={3} saved={false} />\n <CanvasSplitBody writing>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n <CanvasSplitLine heading>Power</CanvasSplitLine>\n <CanvasSplitLine>\n 1,180 W each brings the FOH leg to 29.1 A of the 32 A available.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n <Specimen label=\"saved\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">Looks right. Keep it.</CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader\n title=\"Front truss — fixture spec\"\n version={3}\n saved\n onCopy={() => undefined}\n onClose={() => undefined}\n />\n <CanvasSplitBody>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n</Specimens>",
|
|
57
|
+
"note": "The thread steps aside and the document takes the room. Seven parts: the split itself, a narrowed conversation rail, and a document half with its own header, body and lines — still being written while you read it, which is what the caret at the end of the body is for. On a narrow viewport the two halves stack instead of shrinking.",
|
|
58
|
+
"interaction": "copy and close are named buttons and disable themselves without a handler. `saved` is the only state the header animates, and it swaps a word for a check rather than moving anything."
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"todo": true
|
|
62
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CanvasSplitDocument",
|
|
3
|
+
"slug": "canvas-split-document",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The document half of the split: the header, and the body under it.",
|
|
11
|
+
"props": [],
|
|
12
|
+
"typeReferences": [
|
|
13
|
+
"ComponentProps<\"div\">"
|
|
14
|
+
],
|
|
15
|
+
"subcomponents": [],
|
|
16
|
+
"parts": [],
|
|
17
|
+
"variants": {},
|
|
18
|
+
"defaultVariants": {},
|
|
19
|
+
"tokensUsed": [
|
|
20
|
+
"--cue-accent",
|
|
21
|
+
"--cue-border",
|
|
22
|
+
"--cue-fg",
|
|
23
|
+
"--cue-fg-muted",
|
|
24
|
+
"--cue-fg-subtle",
|
|
25
|
+
"--cue-ok",
|
|
26
|
+
"--cue-radius-overlay",
|
|
27
|
+
"--cue-text-body"
|
|
28
|
+
],
|
|
29
|
+
"summary": "The document half of the split: the header, and the body under it.",
|
|
30
|
+
"examples": [],
|
|
31
|
+
"status": "todo-docs",
|
|
32
|
+
"url": "/docs/components/canvas-split-document",
|
|
33
|
+
"mdUrl": "/docs/components/canvas-split-document.md",
|
|
34
|
+
"jsonUrl": "/r/components/canvas-split-document.json",
|
|
35
|
+
"specimens": [
|
|
36
|
+
{
|
|
37
|
+
"title": "CanvasSplit",
|
|
38
|
+
"group": "elements-knowledge",
|
|
39
|
+
"components": [
|
|
40
|
+
"CanvasSplit",
|
|
41
|
+
"CanvasSplitThread",
|
|
42
|
+
"CanvasSplitMessage",
|
|
43
|
+
"CanvasSplitDocument",
|
|
44
|
+
"CanvasSplitHeader",
|
|
45
|
+
"CanvasSplitBody",
|
|
46
|
+
"CanvasSplitLine"
|
|
47
|
+
],
|
|
48
|
+
"code": "<Specimens>\n <Specimen label=\"still writing\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">\n Write up the fixture decision for the front truss.\n </CanvasSplitMessage>\n <CanvasSplitMessage speaker=\"assistant\">\n Drafting it now — spec, power and the load check.\n </CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader title=\"Front truss — fixture spec\" version={3} saved={false} />\n <CanvasSplitBody writing>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n <CanvasSplitLine heading>Power</CanvasSplitLine>\n <CanvasSplitLine>\n 1,180 W each brings the FOH leg to 29.1 A of the 32 A available.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n <Specimen label=\"saved\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">Looks right. Keep it.</CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader\n title=\"Front truss — fixture spec\"\n version={3}\n saved\n onCopy={() => undefined}\n onClose={() => undefined}\n />\n <CanvasSplitBody>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n</Specimens>",
|
|
49
|
+
"note": "The thread steps aside and the document takes the room. Seven parts: the split itself, a narrowed conversation rail, and a document half with its own header, body and lines — still being written while you read it, which is what the caret at the end of the body is for. On a narrow viewport the two halves stack instead of shrinking.",
|
|
50
|
+
"interaction": "copy and close are named buttons and disable themselves without a handler. `saved` is the only state the header animates, and it swaps a word for a check rather than moving anything."
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"todo": true
|
|
54
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CanvasSplitHeader",
|
|
3
|
+
"slug": "canvas-split-header",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "What the document is, which version this is, and whether it has been written down\nyet — with copy and close beside them.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "title",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Document name."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "version",
|
|
21
|
+
"type": "number",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "Which revision is on screen."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "saved",
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"required": true,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "Swaps the status between editing and saved."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "onClose",
|
|
35
|
+
"type": "(() => void)",
|
|
36
|
+
"required": false,
|
|
37
|
+
"defaultValue": null,
|
|
38
|
+
"description": "Called when the canvas is dismissed."
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"typeReferences": [
|
|
42
|
+
"Omit<ComponentProps<\"div\">, \"children\" | \"title\"> & {\n /** Document name. */\n title: string;\n /** Which revision is on screen. */\n version: number;\n /** Swaps the status between editing and saved. */\n saved: boolean;\n /** Called from the copy action. Omit it and the control renders disabled. */\n onCopy?: () => void;\n /** Called when the canvas is dismissed. */\n onClose?: () => void;\n}"
|
|
43
|
+
],
|
|
44
|
+
"subcomponents": [],
|
|
45
|
+
"parts": [],
|
|
46
|
+
"variants": {},
|
|
47
|
+
"defaultVariants": {},
|
|
48
|
+
"tokensUsed": [
|
|
49
|
+
"--cue-accent",
|
|
50
|
+
"--cue-border",
|
|
51
|
+
"--cue-fg",
|
|
52
|
+
"--cue-fg-muted",
|
|
53
|
+
"--cue-fg-subtle",
|
|
54
|
+
"--cue-ok",
|
|
55
|
+
"--cue-radius-overlay",
|
|
56
|
+
"--cue-text-body"
|
|
57
|
+
],
|
|
58
|
+
"summary": "What the document is, which version this is, and whether it has been written down yet — with copy and close beside them.",
|
|
59
|
+
"examples": [],
|
|
60
|
+
"status": "todo-docs",
|
|
61
|
+
"url": "/docs/components/canvas-split-header",
|
|
62
|
+
"mdUrl": "/docs/components/canvas-split-header.md",
|
|
63
|
+
"jsonUrl": "/r/components/canvas-split-header.json",
|
|
64
|
+
"specimens": [
|
|
65
|
+
{
|
|
66
|
+
"title": "CanvasSplit",
|
|
67
|
+
"group": "elements-knowledge",
|
|
68
|
+
"components": [
|
|
69
|
+
"CanvasSplit",
|
|
70
|
+
"CanvasSplitThread",
|
|
71
|
+
"CanvasSplitMessage",
|
|
72
|
+
"CanvasSplitDocument",
|
|
73
|
+
"CanvasSplitHeader",
|
|
74
|
+
"CanvasSplitBody",
|
|
75
|
+
"CanvasSplitLine"
|
|
76
|
+
],
|
|
77
|
+
"code": "<Specimens>\n <Specimen label=\"still writing\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">\n Write up the fixture decision for the front truss.\n </CanvasSplitMessage>\n <CanvasSplitMessage speaker=\"assistant\">\n Drafting it now — spec, power and the load check.\n </CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader title=\"Front truss — fixture spec\" version={3} saved={false} />\n <CanvasSplitBody writing>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n <CanvasSplitLine heading>Power</CanvasSplitLine>\n <CanvasSplitLine>\n 1,180 W each brings the FOH leg to 29.1 A of the 32 A available.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n <Specimen label=\"saved\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">Looks right. Keep it.</CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader\n title=\"Front truss — fixture spec\"\n version={3}\n saved\n onCopy={() => undefined}\n onClose={() => undefined}\n />\n <CanvasSplitBody>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n</Specimens>",
|
|
78
|
+
"note": "The thread steps aside and the document takes the room. Seven parts: the split itself, a narrowed conversation rail, and a document half with its own header, body and lines — still being written while you read it, which is what the caret at the end of the body is for. On a narrow viewport the two halves stack instead of shrinking.",
|
|
79
|
+
"interaction": "copy and close are named buttons and disable themselves without a handler. `saved` is the only state the header animates, and it swaps a word for a check rather than moving anything."
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"todo": true
|
|
83
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CanvasSplitLine",
|
|
3
|
+
"slug": "canvas-split-line",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "One line of the document, arriving as it is written. `heading` sets it apart.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "heading",
|
|
14
|
+
"type": "boolean",
|
|
15
|
+
"required": false,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Renders the line as a heading rather than body text."
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"typeReferences": [
|
|
21
|
+
"ComponentProps<\"p\"> & {\n /** Renders the line as a heading rather than body text. */\n heading?: boolean;\n}"
|
|
22
|
+
],
|
|
23
|
+
"subcomponents": [],
|
|
24
|
+
"parts": [],
|
|
25
|
+
"variants": {},
|
|
26
|
+
"defaultVariants": {},
|
|
27
|
+
"tokensUsed": [
|
|
28
|
+
"--cue-accent",
|
|
29
|
+
"--cue-border",
|
|
30
|
+
"--cue-fg",
|
|
31
|
+
"--cue-fg-muted",
|
|
32
|
+
"--cue-fg-subtle",
|
|
33
|
+
"--cue-ok",
|
|
34
|
+
"--cue-radius-overlay",
|
|
35
|
+
"--cue-text-body"
|
|
36
|
+
],
|
|
37
|
+
"summary": "One line of the document, arriving as it is written.",
|
|
38
|
+
"examples": [],
|
|
39
|
+
"status": "todo-docs",
|
|
40
|
+
"url": "/docs/components/canvas-split-line",
|
|
41
|
+
"mdUrl": "/docs/components/canvas-split-line.md",
|
|
42
|
+
"jsonUrl": "/r/components/canvas-split-line.json",
|
|
43
|
+
"specimens": [
|
|
44
|
+
{
|
|
45
|
+
"title": "CanvasSplit",
|
|
46
|
+
"group": "elements-knowledge",
|
|
47
|
+
"components": [
|
|
48
|
+
"CanvasSplit",
|
|
49
|
+
"CanvasSplitThread",
|
|
50
|
+
"CanvasSplitMessage",
|
|
51
|
+
"CanvasSplitDocument",
|
|
52
|
+
"CanvasSplitHeader",
|
|
53
|
+
"CanvasSplitBody",
|
|
54
|
+
"CanvasSplitLine"
|
|
55
|
+
],
|
|
56
|
+
"code": "<Specimens>\n <Specimen label=\"still writing\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">\n Write up the fixture decision for the front truss.\n </CanvasSplitMessage>\n <CanvasSplitMessage speaker=\"assistant\">\n Drafting it now — spec, power and the load check.\n </CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader title=\"Front truss — fixture spec\" version={3} saved={false} />\n <CanvasSplitBody writing>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n <CanvasSplitLine heading>Power</CanvasSplitLine>\n <CanvasSplitLine>\n 1,180 W each brings the FOH leg to 29.1 A of the 32 A available.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n <Specimen label=\"saved\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">Looks right. Keep it.</CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader\n title=\"Front truss — fixture spec\"\n version={3}\n saved\n onCopy={() => undefined}\n onClose={() => undefined}\n />\n <CanvasSplitBody>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n</Specimens>",
|
|
57
|
+
"note": "The thread steps aside and the document takes the room. Seven parts: the split itself, a narrowed conversation rail, and a document half with its own header, body and lines — still being written while you read it, which is what the caret at the end of the body is for. On a narrow viewport the two halves stack instead of shrinking.",
|
|
58
|
+
"interaction": "copy and close are named buttons and disable themselves without a handler. `saved` is the only state the header animates, and it swaps a word for a check rather than moving anything."
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"todo": true
|
|
62
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CanvasSplitMessage",
|
|
3
|
+
"slug": "canvas-split-message",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "One turn inside the rail — a filled bubble for the person, plain text for the model.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "speaker",
|
|
14
|
+
"type": "\"user\" | \"assistant\"",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "User turns sit right in a bubble, assistant turns run flush left. Emitted as\ndata-speaker for styling from outside; it is deliberately not called role, so the\nARIA attribute stays yours to set."
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"typeReferences": [
|
|
21
|
+
"ComponentProps<\"div\"> & {\n /**\n * User turns sit right in a bubble, assistant turns run flush left. Emitted as\n * data-speaker for styling from outside; it is deliberately not called role, so the\n * ARIA attribute stays yours to set.\n */\n speaker: \"user\" | \"assistant\";\n}"
|
|
22
|
+
],
|
|
23
|
+
"subcomponents": [],
|
|
24
|
+
"parts": [],
|
|
25
|
+
"variants": {},
|
|
26
|
+
"defaultVariants": {},
|
|
27
|
+
"tokensUsed": [
|
|
28
|
+
"--cue-accent",
|
|
29
|
+
"--cue-border",
|
|
30
|
+
"--cue-fg",
|
|
31
|
+
"--cue-fg-muted",
|
|
32
|
+
"--cue-fg-subtle",
|
|
33
|
+
"--cue-ok",
|
|
34
|
+
"--cue-radius-overlay",
|
|
35
|
+
"--cue-text-body"
|
|
36
|
+
],
|
|
37
|
+
"summary": "One turn inside the rail — a filled bubble for the person, plain text for the model.",
|
|
38
|
+
"examples": [],
|
|
39
|
+
"status": "todo-docs",
|
|
40
|
+
"url": "/docs/components/canvas-split-message",
|
|
41
|
+
"mdUrl": "/docs/components/canvas-split-message.md",
|
|
42
|
+
"jsonUrl": "/r/components/canvas-split-message.json",
|
|
43
|
+
"specimens": [
|
|
44
|
+
{
|
|
45
|
+
"title": "CanvasSplit",
|
|
46
|
+
"group": "elements-knowledge",
|
|
47
|
+
"components": [
|
|
48
|
+
"CanvasSplit",
|
|
49
|
+
"CanvasSplitThread",
|
|
50
|
+
"CanvasSplitMessage",
|
|
51
|
+
"CanvasSplitDocument",
|
|
52
|
+
"CanvasSplitHeader",
|
|
53
|
+
"CanvasSplitBody",
|
|
54
|
+
"CanvasSplitLine"
|
|
55
|
+
],
|
|
56
|
+
"code": "<Specimens>\n <Specimen label=\"still writing\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">\n Write up the fixture decision for the front truss.\n </CanvasSplitMessage>\n <CanvasSplitMessage speaker=\"assistant\">\n Drafting it now — spec, power and the load check.\n </CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader title=\"Front truss — fixture spec\" version={3} saved={false} />\n <CanvasSplitBody writing>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n <CanvasSplitLine heading>Power</CanvasSplitLine>\n <CanvasSplitLine>\n 1,180 W each brings the FOH leg to 29.1 A of the 32 A available.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n <Specimen label=\"saved\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">Looks right. Keep it.</CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader\n title=\"Front truss — fixture spec\"\n version={3}\n saved\n onCopy={() => undefined}\n onClose={() => undefined}\n />\n <CanvasSplitBody>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n</Specimens>",
|
|
57
|
+
"note": "The thread steps aside and the document takes the room. Seven parts: the split itself, a narrowed conversation rail, and a document half with its own header, body and lines — still being written while you read it, which is what the caret at the end of the body is for. On a narrow viewport the two halves stack instead of shrinking.",
|
|
58
|
+
"interaction": "copy and close are named buttons and disable themselves without a handler. `saved` is the only state the header animates, and it swaps a word for a check rather than moving anything."
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"todo": true
|
|
62
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CanvasSplitThread",
|
|
3
|
+
"slug": "canvas-split-thread",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The conversation, narrowed to a rail beside the document. It keeps scrolling while\nthe document is written, so the turn that asked for the artifact stays in view.",
|
|
11
|
+
"props": [],
|
|
12
|
+
"typeReferences": [
|
|
13
|
+
"ComponentProps<\"div\">"
|
|
14
|
+
],
|
|
15
|
+
"subcomponents": [],
|
|
16
|
+
"parts": [],
|
|
17
|
+
"variants": {},
|
|
18
|
+
"defaultVariants": {},
|
|
19
|
+
"tokensUsed": [
|
|
20
|
+
"--cue-accent",
|
|
21
|
+
"--cue-border",
|
|
22
|
+
"--cue-fg",
|
|
23
|
+
"--cue-fg-muted",
|
|
24
|
+
"--cue-fg-subtle",
|
|
25
|
+
"--cue-ok",
|
|
26
|
+
"--cue-radius-overlay",
|
|
27
|
+
"--cue-text-body"
|
|
28
|
+
],
|
|
29
|
+
"summary": "The conversation, narrowed to a rail beside the document.",
|
|
30
|
+
"examples": [],
|
|
31
|
+
"status": "todo-docs",
|
|
32
|
+
"url": "/docs/components/canvas-split-thread",
|
|
33
|
+
"mdUrl": "/docs/components/canvas-split-thread.md",
|
|
34
|
+
"jsonUrl": "/r/components/canvas-split-thread.json",
|
|
35
|
+
"specimens": [
|
|
36
|
+
{
|
|
37
|
+
"title": "CanvasSplit",
|
|
38
|
+
"group": "elements-knowledge",
|
|
39
|
+
"components": [
|
|
40
|
+
"CanvasSplit",
|
|
41
|
+
"CanvasSplitThread",
|
|
42
|
+
"CanvasSplitMessage",
|
|
43
|
+
"CanvasSplitDocument",
|
|
44
|
+
"CanvasSplitHeader",
|
|
45
|
+
"CanvasSplitBody",
|
|
46
|
+
"CanvasSplitLine"
|
|
47
|
+
],
|
|
48
|
+
"code": "<Specimens>\n <Specimen label=\"still writing\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">\n Write up the fixture decision for the front truss.\n </CanvasSplitMessage>\n <CanvasSplitMessage speaker=\"assistant\">\n Drafting it now — spec, power and the load check.\n </CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader title=\"Front truss — fixture spec\" version={3} saved={false} />\n <CanvasSplitBody writing>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n <CanvasSplitLine heading>Power</CanvasSplitLine>\n <CanvasSplitLine>\n 1,180 W each brings the FOH leg to 29.1 A of the 32 A available.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n <Specimen label=\"saved\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">Looks right. Keep it.</CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader\n title=\"Front truss — fixture spec\"\n version={3}\n saved\n onCopy={() => undefined}\n onClose={() => undefined}\n />\n <CanvasSplitBody>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n</Specimens>",
|
|
49
|
+
"note": "The thread steps aside and the document takes the room. Seven parts: the split itself, a narrowed conversation rail, and a document half with its own header, body and lines — still being written while you read it, which is what the caret at the end of the body is for. On a narrow viewport the two halves stack instead of shrinking.",
|
|
50
|
+
"interaction": "copy and close are named buttons and disable themselves without a handler. `saved` is the only state the header animates, and it swaps a word for a check rather than moving anything."
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"todo": true
|
|
54
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CanvasSplit",
|
|
3
|
+
"slug": "canvas-split",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The thread steps aside and the document takes the room, still being written as you\nread.",
|
|
11
|
+
"props": [],
|
|
12
|
+
"typeReferences": [
|
|
13
|
+
"ComponentProps<\"div\">"
|
|
14
|
+
],
|
|
15
|
+
"subcomponents": [],
|
|
16
|
+
"parts": [],
|
|
17
|
+
"variants": {},
|
|
18
|
+
"defaultVariants": {},
|
|
19
|
+
"tokensUsed": [
|
|
20
|
+
"--cue-accent",
|
|
21
|
+
"--cue-border",
|
|
22
|
+
"--cue-fg",
|
|
23
|
+
"--cue-fg-muted",
|
|
24
|
+
"--cue-fg-subtle",
|
|
25
|
+
"--cue-ok",
|
|
26
|
+
"--cue-radius-overlay",
|
|
27
|
+
"--cue-text-body"
|
|
28
|
+
],
|
|
29
|
+
"summary": "The thread steps aside and the document takes the room, still being written as you read.",
|
|
30
|
+
"examples": [
|
|
31
|
+
{
|
|
32
|
+
"title": "Usage",
|
|
33
|
+
"code": "import {\n CanvasSplit,\n CanvasSplitBody,\n CanvasSplitDocument,\n CanvasSplitHeader,\n CanvasSplitLine,\n CanvasSplitMessage,\n CanvasSplitThread,\n} from \"@cueplusplus/ui/elements\";\n\n<CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">Draft the note</CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader title=\"note.md\" version={3} saved onCopy={copy} />\n <CanvasSplitBody writing>\n <CanvasSplitLine heading>Migrating to 0.14</CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n</CanvasSplit>",
|
|
34
|
+
"language": "tsx"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"status": "todo-docs",
|
|
38
|
+
"url": "/docs/components/canvas-split",
|
|
39
|
+
"mdUrl": "/docs/components/canvas-split.md",
|
|
40
|
+
"jsonUrl": "/r/components/canvas-split.json",
|
|
41
|
+
"specimens": [
|
|
42
|
+
{
|
|
43
|
+
"title": "CanvasSplit",
|
|
44
|
+
"group": "elements-knowledge",
|
|
45
|
+
"components": [
|
|
46
|
+
"CanvasSplit",
|
|
47
|
+
"CanvasSplitThread",
|
|
48
|
+
"CanvasSplitMessage",
|
|
49
|
+
"CanvasSplitDocument",
|
|
50
|
+
"CanvasSplitHeader",
|
|
51
|
+
"CanvasSplitBody",
|
|
52
|
+
"CanvasSplitLine"
|
|
53
|
+
],
|
|
54
|
+
"code": "<Specimens>\n <Specimen label=\"still writing\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">\n Write up the fixture decision for the front truss.\n </CanvasSplitMessage>\n <CanvasSplitMessage speaker=\"assistant\">\n Drafting it now — spec, power and the load check.\n </CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader title=\"Front truss — fixture spec\" version={3} saved={false} />\n <CanvasSplitBody writing>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n <CanvasSplitLine heading>Power</CanvasSplitLine>\n <CanvasSplitLine>\n 1,180 W each brings the FOH leg to 29.1 A of the 32 A available.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n <Specimen label=\"saved\" wide>\n <CanvasSplit>\n <CanvasSplitThread>\n <CanvasSplitMessage speaker=\"user\">Looks right. Keep it.</CanvasSplitMessage>\n </CanvasSplitThread>\n <CanvasSplitDocument>\n <CanvasSplitHeader\n title=\"Front truss — fixture spec\"\n version={3}\n saved\n onCopy={() => undefined}\n onClose={() => undefined}\n />\n <CanvasSplitBody>\n <CanvasSplitLine heading>Fixture</CanvasSplitLine>\n <CanvasSplitLine>\n Six Robe ESPRITEs on 3.2 m centres, 8.4 m trim, mode 1 at 8 channels each.\n </CanvasSplitLine>\n </CanvasSplitBody>\n </CanvasSplitDocument>\n </CanvasSplit>\n </Specimen>\n</Specimens>",
|
|
55
|
+
"note": "The thread steps aside and the document takes the room. Seven parts: the split itself, a narrowed conversation rail, and a document half with its own header, body and lines — still being written while you read it, which is what the caret at the end of the body is for. On a narrow viewport the two halves stack instead of shrinking.",
|
|
56
|
+
"interaction": "copy and close are named buttons and disable themselves without a handler. `saved` is the only state the header animates, and it swaps a word for a check rather than moving anything."
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"todo": true
|
|
60
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Card",
|
|
3
|
+
"slug": "card",
|
|
4
|
+
"group": "layout",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": false,
|
|
8
|
+
"description": "A padded container for one thing: a summary, a setting group, a preview.\n\nEvery section paints its own `surface-1` ground, which is what lets the root\nswitch to the seam idiom without any of the parts knowing.",
|
|
9
|
+
"props": [],
|
|
10
|
+
"typeReferences": [],
|
|
11
|
+
"subcomponents": [
|
|
12
|
+
"Root",
|
|
13
|
+
"Header",
|
|
14
|
+
"Title",
|
|
15
|
+
"Description",
|
|
16
|
+
"Content",
|
|
17
|
+
"Footer"
|
|
18
|
+
],
|
|
19
|
+
"parts": [
|
|
20
|
+
{
|
|
21
|
+
"name": "Root",
|
|
22
|
+
"usage": "Card.Root",
|
|
23
|
+
"description": "The card frame: one hairline rim, one raised surface, one radius.\n\nDeliberately the same shape as `Panel` — a console must not have two\ncompeting container languages. What differs is the inside: a `Panel` holds\nrows that reach its rim, a `Card` holds a padded block of prose, numbers or\ncontrols. Reach for `Panel` when the content is a list; reach for `Card` when\nthe content is a thing.\n\nStatic markup — no `\"use client\"`.",
|
|
24
|
+
"props": [
|
|
25
|
+
{
|
|
26
|
+
"name": "seam",
|
|
27
|
+
"type": "boolean",
|
|
28
|
+
"required": false,
|
|
29
|
+
"defaultValue": "false",
|
|
30
|
+
"description": "Separate the card's sections with hairline seams instead of whitespace.\n\nThe card is then filled with the border colour and its sections sit `1px`\napart, each painting its own opaque ground — the same idiom as `SeamList`,\nwhere the gap *is* the rule and can never double up with a border."
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"typeReferences": [
|
|
34
|
+
"React.ComponentPropsWithoutRef<\"div\">"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "Header",
|
|
39
|
+
"usage": "Card.Header",
|
|
40
|
+
"description": "The card's title block: heading column left, actions right.\n\nCarries no bottom padding of its own, so the body's own `p-(--cue-space-5)`\nis the whole gap between the two. Under `seam` it takes its full padding\nback, because the hairline — not the whitespace — is then the separator.",
|
|
41
|
+
"props": [
|
|
42
|
+
{
|
|
43
|
+
"name": "actions",
|
|
44
|
+
"type": "ReactNode",
|
|
45
|
+
"required": false,
|
|
46
|
+
"defaultValue": null,
|
|
47
|
+
"description": "Right-hand slot: the controls that act on the whole card (a menu, a status\nchip, a count)."
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "children",
|
|
51
|
+
"type": "ReactNode",
|
|
52
|
+
"required": false,
|
|
53
|
+
"defaultValue": null,
|
|
54
|
+
"description": "The leading cluster — normally a {@link CardTitle} and a description."
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"typeReferences": [
|
|
58
|
+
"React.ComponentPropsWithoutRef<\"div\">"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "Title",
|
|
63
|
+
"usage": "Card.Title",
|
|
64
|
+
"description": "The card's name, one type rung above body text.\n\nAn `<h3>`, because a card is almost always nested under a page `<h1>` and a\nsection `<h2>`. Where that is wrong, style your own heading with these\nclasses rather than nesting the wrong level.",
|
|
65
|
+
"props": [],
|
|
66
|
+
"typeReferences": [
|
|
67
|
+
"React.ComponentPropsWithoutRef<\"h3\">"
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "Description",
|
|
72
|
+
"usage": "Card.Description",
|
|
73
|
+
"description": "One supporting line under a {@link CardTitle}.",
|
|
74
|
+
"props": [],
|
|
75
|
+
"typeReferences": [
|
|
76
|
+
"React.ComponentPropsWithoutRef<\"p\">"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "Content",
|
|
81
|
+
"usage": "Card.Content",
|
|
82
|
+
"description": "The card's body, on the card padding rung.",
|
|
83
|
+
"props": [],
|
|
84
|
+
"typeReferences": [
|
|
85
|
+
"React.ComponentPropsWithoutRef<\"div\">"
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "Footer",
|
|
90
|
+
"usage": "Card.Footer",
|
|
91
|
+
"description": "The action strip at the foot of a card. Right-aligned, like a dialog's.",
|
|
92
|
+
"props": [],
|
|
93
|
+
"typeReferences": [
|
|
94
|
+
"React.ComponentPropsWithoutRef<\"div\">"
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"variants": {},
|
|
99
|
+
"defaultVariants": {},
|
|
100
|
+
"tokensUsed": [
|
|
101
|
+
"--cue-border",
|
|
102
|
+
"--cue-fg",
|
|
103
|
+
"--cue-fg-muted",
|
|
104
|
+
"--cue-font-mono",
|
|
105
|
+
"--cue-radius-surface",
|
|
106
|
+
"--cue-space-1",
|
|
107
|
+
"--cue-space-2",
|
|
108
|
+
"--cue-space-3",
|
|
109
|
+
"--cue-space-4",
|
|
110
|
+
"--cue-space-5",
|
|
111
|
+
"--cue-surface-1",
|
|
112
|
+
"--cue-text-emphasis",
|
|
113
|
+
"--cue-text-ui"
|
|
114
|
+
],
|
|
115
|
+
"summary": "A padded container for one thing: a summary, a setting group, a preview.",
|
|
116
|
+
"examples": [
|
|
117
|
+
{
|
|
118
|
+
"title": "Usage",
|
|
119
|
+
"code": "<Card.Root seam>\n <Card.Header><Card.Title>Failover</Card.Title></Card.Header>\n <Card.Content>…</Card.Content>\n</Card.Root>",
|
|
120
|
+
"language": "tsx"
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"status": "todo-docs",
|
|
124
|
+
"url": "/docs/components/card",
|
|
125
|
+
"mdUrl": "/docs/components/card.md",
|
|
126
|
+
"jsonUrl": "/r/components/card.json",
|
|
127
|
+
"specimens": [
|
|
128
|
+
{
|
|
129
|
+
"title": "Card",
|
|
130
|
+
"group": "layout",
|
|
131
|
+
"components": [
|
|
132
|
+
"Card"
|
|
133
|
+
],
|
|
134
|
+
"code": "<div className=\"grid w-full gap-(--cue-space-5) lg:grid-cols-2\">\n <Card.Root>\n <Card.Header actions={<Chip tone=\"ok\">patched</Chip>}>\n <Card.Title>Front truss</Card.Title>\n <Card.Description>6 fixtures, universe 1.</Card.Description>\n </Card.Header>\n <Card.Content>\n <DescriptionList.Root>\n <DescriptionList.Term>Type</DescriptionList.Term>\n <DescriptionList.Detail>Source Four 26°</DescriptionList.Detail>\n <DescriptionList.Term>Channels</DescriptionList.Term>\n <DescriptionList.Detail>1 to 48</DescriptionList.Detail>\n </DescriptionList.Root>\n </Card.Content>\n <Card.Footer>\n <Button size=\"sm\">Inspect</Button>\n </Card.Footer>\n </Card.Root>\n <Card.Root seam>\n <Card.Header>\n <Card.Title>Seam card</Card.Title>\n <Card.Description>Separated by gaps, not rules.</Card.Description>\n </Card.Header>\n <Card.Content>The 1px-gap idiom, at card scale.</Card.Content>\n </Card.Root>\n</div>",
|
|
135
|
+
"note": "A panel with body padding and a title family. `seam` swaps the hairline separation for the 1px-gap idiom.",
|
|
136
|
+
"interaction": "none by default; wrap the header in a button if the card is a link."
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"todo": true
|
|
140
|
+
}
|