@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,164 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Tooltip",
|
|
3
|
+
"slug": "tooltip",
|
|
4
|
+
"group": "overlays",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A short label revealed on hover or keyboard focus — what an icon-only control\ndoes, what an abbreviated column header means.\n\nWraps Base UI's `Tooltip` and adds the two things a design system must not\nleave to the caller: the `role=\"tooltip\"` / `aria-describedby` pairing, and\nthe portal theme stamp. For anything longer than a label, reach for\n{@link InfoTip } (a focusable badge) or a `Popover` instead — hover-only\ncontent is unreachable on touch.",
|
|
9
|
+
"props": [],
|
|
10
|
+
"typeReferences": [],
|
|
11
|
+
"subcomponents": [
|
|
12
|
+
"Provider",
|
|
13
|
+
"Root",
|
|
14
|
+
"Trigger",
|
|
15
|
+
"Content"
|
|
16
|
+
],
|
|
17
|
+
"parts": [
|
|
18
|
+
{
|
|
19
|
+
"name": "Provider",
|
|
20
|
+
"usage": "Tooltip.Provider",
|
|
21
|
+
"description": "Shares one hover delay across a group of tooltips: once the first one has\nopened, its neighbours open instantly, so scanning a toolbar does not mean\nwaiting out the delay at every button.",
|
|
22
|
+
"props": [],
|
|
23
|
+
"typeReferences": [
|
|
24
|
+
"BaseTooltip.Provider.Props"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "Root",
|
|
29
|
+
"usage": "Tooltip.Root",
|
|
30
|
+
"description": "Groups the parts of one tooltip. Renders no element.",
|
|
31
|
+
"props": [],
|
|
32
|
+
"typeReferences": [
|
|
33
|
+
"BaseTooltip.Root.Props"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "Trigger",
|
|
38
|
+
"usage": "Tooltip.Trigger",
|
|
39
|
+
"description": "The element the tooltip describes. A `<button>` by default; pass\n`render={…}` to attach the tooltip to something else.\n\nOpens on hover after {@link TooltipTriggerProps.delay} and instantly on\nkeyboard focus — a tooltip nobody can reach with the keyboard is a decoration.",
|
|
40
|
+
"props": [],
|
|
41
|
+
"typeReferences": [
|
|
42
|
+
"BaseTooltip.Trigger.Props"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "Content",
|
|
47
|
+
"usage": "Tooltip.Content",
|
|
48
|
+
"description": "The tooltip's portal, positioner and popup.\n\nCarries `role=\"tooltip\"` and the id the trigger describes itself with.\nPortalled through {@link useCuePortalProps} so it renders in the caller's\ntheme and density.",
|
|
49
|
+
"props": [
|
|
50
|
+
{
|
|
51
|
+
"name": "className",
|
|
52
|
+
"type": "string",
|
|
53
|
+
"required": false,
|
|
54
|
+
"defaultValue": null,
|
|
55
|
+
"description": "Extra classes for the popup surface."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "align",
|
|
59
|
+
"type": "\"center\" | \"end\" | \"start\"",
|
|
60
|
+
"required": false,
|
|
61
|
+
"defaultValue": null,
|
|
62
|
+
"description": "Alignment along that side. Defaults to `\"center\"`."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "keepMounted",
|
|
66
|
+
"type": "boolean",
|
|
67
|
+
"required": false,
|
|
68
|
+
"defaultValue": null,
|
|
69
|
+
"description": "Keep the popup mounted while closed."
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "positionerClassName",
|
|
73
|
+
"type": "string",
|
|
74
|
+
"required": false,
|
|
75
|
+
"defaultValue": null,
|
|
76
|
+
"description": "Extra classes for the positioner that places the popup."
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "sideOffset",
|
|
80
|
+
"type": "number | OffsetFunction",
|
|
81
|
+
"required": false,
|
|
82
|
+
"defaultValue": "4",
|
|
83
|
+
"description": "Gap in px between trigger and popup. Defaults to `4`."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "side",
|
|
87
|
+
"type": "\"left\" | \"right\" | \"bottom\" | \"top\" | \"inline-end\" | \"inline-start\"",
|
|
88
|
+
"required": false,
|
|
89
|
+
"defaultValue": "top",
|
|
90
|
+
"description": "Preferred side of the trigger. Defaults to `\"top\"`."
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "alignOffset",
|
|
94
|
+
"type": "number | OffsetFunction",
|
|
95
|
+
"required": false,
|
|
96
|
+
"defaultValue": null,
|
|
97
|
+
"description": "Nudge along the alignment axis, in px."
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"typeReferences": [
|
|
101
|
+
"Omit<BaseTooltip.Popup.Props, \"className\">"
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"variants": {},
|
|
106
|
+
"defaultVariants": {},
|
|
107
|
+
"tokensUsed": [
|
|
108
|
+
"--cue-accent-soft",
|
|
109
|
+
"--cue-border",
|
|
110
|
+
"--cue-border-overlay",
|
|
111
|
+
"--cue-control-sm",
|
|
112
|
+
"--cue-fg",
|
|
113
|
+
"--cue-fg-muted",
|
|
114
|
+
"--cue-fg-subtle",
|
|
115
|
+
"--cue-font-mono",
|
|
116
|
+
"--cue-radius-control",
|
|
117
|
+
"--cue-radius-overlay",
|
|
118
|
+
"--cue-scrim",
|
|
119
|
+
"--cue-space-1",
|
|
120
|
+
"--cue-space-2",
|
|
121
|
+
"--cue-space-3",
|
|
122
|
+
"--cue-surface-2",
|
|
123
|
+
"--cue-text-emphasis",
|
|
124
|
+
"--cue-text-label",
|
|
125
|
+
"--cue-text-ui"
|
|
126
|
+
],
|
|
127
|
+
"summary": "A short description of the control under the pointer or the focus ring.",
|
|
128
|
+
"examples": [
|
|
129
|
+
{
|
|
130
|
+
"title": "Usage",
|
|
131
|
+
"code": "<Tooltip.Root>\n <Tooltip.Trigger render={<IconButton aria-label=\"Blackout\" icon={Power} />} />\n <Tooltip.Content>Fades every channel to zero</Tooltip.Content>\n</Tooltip.Root>",
|
|
132
|
+
"language": "tsx"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"status": "stable",
|
|
136
|
+
"url": "/docs/components/tooltip",
|
|
137
|
+
"mdUrl": "/docs/components/tooltip.md",
|
|
138
|
+
"jsonUrl": "/r/components/tooltip.json",
|
|
139
|
+
"whenToUse": [
|
|
140
|
+
"Naming an icon-only control, or adding the keyboard shortcut for it.",
|
|
141
|
+
"Around a cluster of them, `Tooltip.Provider` so the open delay is paid once for the whole toolbar."
|
|
142
|
+
],
|
|
143
|
+
"whenNotToUse": [
|
|
144
|
+
"Information the user actually needs. A tooltip is unreachable on touch; put it in the page, or use `InfoTip`.",
|
|
145
|
+
"Anything interactive. Nothing inside a tooltip can be clicked."
|
|
146
|
+
],
|
|
147
|
+
"commonMistakes": [
|
|
148
|
+
"Attaching one to an element that cannot take focus, which hides it from every keyboard user.",
|
|
149
|
+
"Repeating the visible label of the control it points at."
|
|
150
|
+
],
|
|
151
|
+
"specimens": [
|
|
152
|
+
{
|
|
153
|
+
"title": "Tooltip / InfoTip",
|
|
154
|
+
"group": "overlays",
|
|
155
|
+
"components": [
|
|
156
|
+
"Tooltip",
|
|
157
|
+
"InfoTip"
|
|
158
|
+
],
|
|
159
|
+
"code": "<Tooltip.Provider>\n <Specimens>\n <Specimen label=\"tooltip\">\n <Tooltip.Root>\n <Tooltip.Trigger render={<IconButton aria-label=\"Go\" icon={Play} />} />\n <Tooltip.Content>Fire the selected cue</Tooltip.Content>\n </Tooltip.Root>\n </Specimen>\n <Specimen label=\"side bottom\">\n <Tooltip.Root>\n <Tooltip.Trigger render={<IconButton aria-label=\"Copy address\" icon={Copy} />} />\n <Tooltip.Content side=\"bottom\">Copy 10.0.0.42</Tooltip.Content>\n </Tooltip.Root>\n </Specimen>\n <Specimen label=\"info tip\">\n <span className=\"flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-ui) text-fg-muted\">\n Pace tick\n <InfoTip text=\"Where the meter would be if usage were flat across the period.\" />\n </span>\n </Specimen>\n <Specimen label=\"wide info tip\">\n <InfoTip\n width={320}\n label=\"About provenance\"\n text=\"Vendor numbers are measured, estimated ones are hatched, and an unbounded meter draws no percentage at all.\"\n />\n </Specimen>\n </Specimens>\n</Tooltip.Provider>",
|
|
160
|
+
"note": "A tooltip names a control; an InfoTip is the 13px `i` badge that explains one.",
|
|
161
|
+
"interaction": "tooltips open on hover and on keyboard focus, and never on touch; the InfoTip badge is a real button."
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "TraceWaterfall",
|
|
3
|
+
"slug": "trace-waterfall",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "Every span in a run on one time axis, nested, so you can see where it actually went.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "spans",
|
|
12
|
+
"type": "readonly TraceSpan[]",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Flat list in start order. Nesting comes from each span's depth."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "totalMs",
|
|
19
|
+
"type": "number",
|
|
20
|
+
"required": true,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "Width of the axis. Bars are positioned against this, not against the widest span."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "visibleCount",
|
|
26
|
+
"type": "number",
|
|
27
|
+
"required": true,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "How many spans have been reported so far."
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"typeReferences": [
|
|
33
|
+
"Omit<\n ComponentProps<\"div\">,\n \"children\" | \"spans\" | \"totalMs\" | \"visibleCount\"\n> & {\n /** Flat list in start order. Nesting comes from each span's depth. */\n spans: readonly TraceSpan[];\n /** Width of the axis. Bars are positioned against this, not against the widest span. */\n totalMs: number;\n /** How many spans have been reported so far. */\n visibleCount: number;\n}"
|
|
34
|
+
],
|
|
35
|
+
"subcomponents": [],
|
|
36
|
+
"parts": [],
|
|
37
|
+
"variants": {},
|
|
38
|
+
"defaultVariants": {},
|
|
39
|
+
"tokensUsed": [
|
|
40
|
+
"--cue-danger",
|
|
41
|
+
"--cue-fg-muted",
|
|
42
|
+
"--cue-fg-subtle",
|
|
43
|
+
"--cue-radius-overlay",
|
|
44
|
+
"--cue-stream",
|
|
45
|
+
"--cue-surface-3",
|
|
46
|
+
"--cue-text-body",
|
|
47
|
+
"--cue-text-ui"
|
|
48
|
+
],
|
|
49
|
+
"summary": "Every span in a run on one time axis, nested, so you can see where it actually went.",
|
|
50
|
+
"examples": [
|
|
51
|
+
{
|
|
52
|
+
"title": "Usage",
|
|
53
|
+
"code": "import { TraceWaterfall } from \"@cueplusplus/ui/elements\";\n\n<TraceWaterfall spans={spans} totalMs={1840} visibleCount={spans.length} />",
|
|
54
|
+
"language": "tsx"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"status": "todo-docs",
|
|
58
|
+
"url": "/docs/components/trace-waterfall",
|
|
59
|
+
"mdUrl": "/docs/components/trace-waterfall.md",
|
|
60
|
+
"jsonUrl": "/r/components/trace-waterfall.json",
|
|
61
|
+
"specimens": [
|
|
62
|
+
{
|
|
63
|
+
"title": "TraceWaterfall",
|
|
64
|
+
"group": "elements",
|
|
65
|
+
"components": [
|
|
66
|
+
"TraceWaterfall"
|
|
67
|
+
],
|
|
68
|
+
"code": "<Specimens>\n <Specimen label=\"mid-run\" wide>\n <TraceWaterfall spans={SPANS} totalMs={2300} visibleCount={4} />\n </Specimen>\n <Specimen label=\"with a retry\" wide>\n <TraceWaterfall spans={SPANS} totalMs={2300} visibleCount={SPANS.length} />\n </Specimen>\n</Specimens>",
|
|
69
|
+
"note": "Where the run's time actually went. Bars are positioned against `totalMs` rather than against the widest span, which is the difference between a trace and a bar chart: a 20ms retry at the end stays 20ms wide.",
|
|
70
|
+
"interaction": "none. Running spans pulse in the stream hue, failed ones are red, and both are spelled out in the row rather than only tinted."
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"todo": true
|
|
74
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "TreeVisibilityToggle",
|
|
3
|
+
"slug": "tree-visibility-toggle",
|
|
4
|
+
"group": "chrome",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "The outliner's three-state visibility control: shown → ghosted → hidden.\n\nThree states rather than a checkbox because a rig has three answers, not two:\n*there*, *there but out of the way*, and *not drawn*. Ghost is the one that\nearns the extra state — it is how you keep a truss as spatial reference while\nworking behind it — and collapsing it into \"hidden\" is what makes people\ntoggle things off and lose their bearings.\n\nMeant for {@link TreeProps.rowControls}. The accessible name states the\n*current* state (\"Visibility: ghosted\") rather than the next action, because\nwith three states \"toggle\" names nothing useful; pressing cycles.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "value",
|
|
12
|
+
"type": "\"hidden\" | \"visible\" | \"ghost\"",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "The node's current visibility."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "onValueChange",
|
|
19
|
+
"type": "(value: TreeVisibility) => void",
|
|
20
|
+
"required": true,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "Called with the next state in the cycle."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "labels",
|
|
26
|
+
"type": "Partial<Record<TreeVisibility, string>>",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Override the state names used in the accessible label."
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"typeReferences": [
|
|
33
|
+
"Omit<React.ComponentPropsWithoutRef<\"button\">, \"value\" | \"onChange\" | \"children\">"
|
|
34
|
+
],
|
|
35
|
+
"subcomponents": [],
|
|
36
|
+
"parts": [],
|
|
37
|
+
"variants": {},
|
|
38
|
+
"defaultVariants": {},
|
|
39
|
+
"tokensUsed": [
|
|
40
|
+
"--cue-accent",
|
|
41
|
+
"--cue-accent-soft",
|
|
42
|
+
"--cue-control-sm",
|
|
43
|
+
"--cue-fg",
|
|
44
|
+
"--cue-fg-muted",
|
|
45
|
+
"--cue-fg-subtle",
|
|
46
|
+
"--cue-font-mono",
|
|
47
|
+
"--cue-icon-md",
|
|
48
|
+
"--cue-icon-sm",
|
|
49
|
+
"--cue-info",
|
|
50
|
+
"--cue-radius-control",
|
|
51
|
+
"--cue-space-1",
|
|
52
|
+
"--cue-space-2",
|
|
53
|
+
"--cue-space-4",
|
|
54
|
+
"--cue-surface-2",
|
|
55
|
+
"--cue-text-ui",
|
|
56
|
+
"--cue-warn"
|
|
57
|
+
],
|
|
58
|
+
"summary": "The outliner's three-state visibility control: shown → ghosted → hidden.",
|
|
59
|
+
"examples": [
|
|
60
|
+
{
|
|
61
|
+
"title": "Usage",
|
|
62
|
+
"code": "<TreeVisibilityToggle value={state} onValueChange={setState} />",
|
|
63
|
+
"language": "tsx"
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"status": "todo-docs",
|
|
67
|
+
"url": "/docs/components/tree-visibility-toggle",
|
|
68
|
+
"mdUrl": "/docs/components/tree-visibility-toggle.md",
|
|
69
|
+
"jsonUrl": "/r/components/tree-visibility-toggle.json",
|
|
70
|
+
"specimens": [
|
|
71
|
+
{
|
|
72
|
+
"title": "Tree",
|
|
73
|
+
"group": "chrome",
|
|
74
|
+
"components": [
|
|
75
|
+
"Tree",
|
|
76
|
+
"TreeVisibilityToggle"
|
|
77
|
+
],
|
|
78
|
+
"code": "<Panel className=\"w-full max-w-[30rem] p-(--cue-space-2)\">\n <Tree\n items={TREE_ITEMS}\n expanded={expanded}\n onExpandedChange={setExpanded}\n selected={selected}\n onSelect={setSelected}\n rowControls={(item) => (\n <TreeVisibilityToggle\n value={visibility[item.id] ?? \"visible\"}\n onValueChange={(next) =>\n setVisibility((current) => ({ ...current, [item.id]: next }))\n }\n />\n )}\n />\n</Panel>",
|
|
79
|
+
"note": "Roving tabindex, `└` indent guides, a hover-revealed control slot and the three-state visibility toggle.",
|
|
80
|
+
"interaction": "arrow keys move and expand, Enter selects; the row controls appear on hover and stay put for keyboard users."
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"todo": true
|
|
84
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Tree",
|
|
3
|
+
"slug": "tree",
|
|
4
|
+
"group": "chrome",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A hierarchical outline: a rig, a scene graph, a folder of shows.\n\nHand-built rather than wrapped, because the pattern's whole cost is in three\ndetails no primitive here provides together:\n\n- **Roving tabindex.** The tree is one tab stop; the arrow keys move inside\n it. Eighty rows must never mean eighty presses of Tab.\n- **A flat DOM.** Rows carry `aria-level` / `aria-posinset` / `aria-setsize`\n instead of nesting `role=\"group\"` wrappers, which is both valid ARIA and the\n shape a virtualizer needs when the outline grows past a screenful.\n- **The gutter.** `└ ├ │` in the mono grid, `aria-hidden` — structure you can\n see at a glance without indentation alone having to carry it.\n\nSelection is a tint (`accent-soft` ground, accent ink), never a solid fill —\nthe same ruling as the sidebar item and the active tab.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "items",
|
|
12
|
+
"type": "readonly TreeItem[]",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "The roots, in display order."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "expanded",
|
|
19
|
+
"type": "readonly string[]",
|
|
20
|
+
"required": false,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "Expanded ids when controlled. Pass with `onExpandedChange`."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "defaultExpanded",
|
|
26
|
+
"type": "readonly string[]",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Initially expanded ids when uncontrolled."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "onExpandedChange",
|
|
33
|
+
"type": "((expanded: string[]) => void)",
|
|
34
|
+
"required": false,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "Called with the whole next expanded set whenever a row is folded or unfolded."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "selected",
|
|
40
|
+
"type": "string | null",
|
|
41
|
+
"required": false,
|
|
42
|
+
"defaultValue": null,
|
|
43
|
+
"description": "Selected id when controlled. Pass with `onSelect`."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "defaultSelected",
|
|
47
|
+
"type": "string | null",
|
|
48
|
+
"required": false,
|
|
49
|
+
"defaultValue": "null",
|
|
50
|
+
"description": "Initially selected id when uncontrolled."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "onSelect",
|
|
54
|
+
"type": "((id: string) => void)",
|
|
55
|
+
"required": false,
|
|
56
|
+
"defaultValue": null,
|
|
57
|
+
"description": "Called with the id of the row the user selected."
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "renderRow",
|
|
61
|
+
"type": "((row: TreeRow) => ReactNode)",
|
|
62
|
+
"required": false,
|
|
63
|
+
"defaultValue": null,
|
|
64
|
+
"description": "Replace the *body* of a row — the icon, label and badge.\n\nThe row element itself, its ARIA, its tab index and its indent gutter stay\nwith the component on purpose: those are the parts a call site cannot get\nwrong without breaking keyboard navigation for everyone."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "rowControls",
|
|
68
|
+
"type": "((item: TreeItem, row: TreeRow) => ReactNode)",
|
|
69
|
+
"required": false,
|
|
70
|
+
"defaultValue": null,
|
|
71
|
+
"description": "Controls hung off the right of each row, revealed on hover or focus.\n\nThis is where the three-state visibility idiom goes — see\n{@link TreeVisibilityToggle} — along with focus, rename and delete\naffordances. Anything essential belongs in the row body or a context menu\ninstead: hover-revealed controls are invisible on touch."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "guides",
|
|
75
|
+
"type": "boolean",
|
|
76
|
+
"required": false,
|
|
77
|
+
"defaultValue": "true",
|
|
78
|
+
"description": "Draw the box-drawing indent gutter. Defaults to `true`."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"name": "aria-label",
|
|
82
|
+
"type": "string",
|
|
83
|
+
"required": false,
|
|
84
|
+
"defaultValue": null,
|
|
85
|
+
"description": "Accessible name for the tree. Required in practice — name what it lists."
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"typeReferences": [
|
|
89
|
+
"Omit<React.ComponentPropsWithoutRef<\"div\">, \"onSelect\">"
|
|
90
|
+
],
|
|
91
|
+
"subcomponents": [],
|
|
92
|
+
"parts": [],
|
|
93
|
+
"variants": {},
|
|
94
|
+
"defaultVariants": {},
|
|
95
|
+
"tokensUsed": [
|
|
96
|
+
"--cue-accent",
|
|
97
|
+
"--cue-accent-soft",
|
|
98
|
+
"--cue-control-sm",
|
|
99
|
+
"--cue-fg",
|
|
100
|
+
"--cue-fg-muted",
|
|
101
|
+
"--cue-fg-subtle",
|
|
102
|
+
"--cue-font-mono",
|
|
103
|
+
"--cue-icon-md",
|
|
104
|
+
"--cue-icon-sm",
|
|
105
|
+
"--cue-info",
|
|
106
|
+
"--cue-radius-control",
|
|
107
|
+
"--cue-space-1",
|
|
108
|
+
"--cue-space-2",
|
|
109
|
+
"--cue-space-4",
|
|
110
|
+
"--cue-surface-2",
|
|
111
|
+
"--cue-text-ui",
|
|
112
|
+
"--cue-warn"
|
|
113
|
+
],
|
|
114
|
+
"summary": "A hierarchical outline: a rig, a scene graph, a folder of shows.",
|
|
115
|
+
"examples": [
|
|
116
|
+
{
|
|
117
|
+
"title": "Usage",
|
|
118
|
+
"code": "<Tree\n aria-label=\"Rig\"\n items={rig}\n selected={selected}\n onSelect={setSelected}\n rowControls={(item) => (\n <TreeVisibilityToggle value={visibility[item.id]} onValueChange={set(item.id)} />\n )}\n/>",
|
|
119
|
+
"language": "tsx"
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"status": "todo-docs",
|
|
123
|
+
"url": "/docs/components/tree",
|
|
124
|
+
"mdUrl": "/docs/components/tree.md",
|
|
125
|
+
"jsonUrl": "/r/components/tree.json",
|
|
126
|
+
"specimens": [
|
|
127
|
+
{
|
|
128
|
+
"title": "Tree",
|
|
129
|
+
"group": "chrome",
|
|
130
|
+
"components": [
|
|
131
|
+
"Tree",
|
|
132
|
+
"TreeVisibilityToggle"
|
|
133
|
+
],
|
|
134
|
+
"code": "<Panel className=\"w-full max-w-[30rem] p-(--cue-space-2)\">\n <Tree\n items={TREE_ITEMS}\n expanded={expanded}\n onExpandedChange={setExpanded}\n selected={selected}\n onSelect={setSelected}\n rowControls={(item) => (\n <TreeVisibilityToggle\n value={visibility[item.id] ?? \"visible\"}\n onValueChange={(next) =>\n setVisibility((current) => ({ ...current, [item.id]: next }))\n }\n />\n )}\n />\n</Panel>",
|
|
135
|
+
"note": "Roving tabindex, `└` indent guides, a hover-revealed control slot and the three-state visibility toggle.",
|
|
136
|
+
"interaction": "arrow keys move and expand, Enter selects; the row controls appear on hover and stay put for keyboard users."
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"todo": true
|
|
140
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "TurnFooter",
|
|
3
|
+
"slug": "turn-footer",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "The row under a finished turn: copy, reply, fork, and when it happened.\n\nEvery control is opt-in — passing no handler draws no button — because the\nfour are not one set. A read-only shared transcript has a copy button and\nnothing else; a console with branching has all four. A footer that drew\ndisabled controls for the ones a product does not have would be a row of\nthings nobody can press.\n\nThe controls are drawn plainly rather than revealed on hover. Revealing them\nis a decision about the *turn*, not about this row: Cursor keys it off the\nturn's own hover state and Cline's stylesheet explains why the reveal must be\ninstant — \"a fade on hover chrome reads as lag, not polish\" — and float over\nwhat follows rather than reserving space. Both are two lines of CSS on the\nturn, and neither is something this component can decide from inside itself.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "onCopy",
|
|
14
|
+
"type": "(() => void)",
|
|
15
|
+
"required": false,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Copy the turn. The control exists only when this is given."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "copied",
|
|
21
|
+
"type": "boolean",
|
|
22
|
+
"required": false,
|
|
23
|
+
"defaultValue": "false",
|
|
24
|
+
"description": "Whether the clipboard has it: the copy glyph crossfades to a check."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "onReply",
|
|
28
|
+
"type": "(() => void)",
|
|
29
|
+
"required": false,
|
|
30
|
+
"defaultValue": null,
|
|
31
|
+
"description": "Quote this turn into the composer. The control exists only when this is given."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "onFork",
|
|
35
|
+
"type": "(() => void)",
|
|
36
|
+
"required": false,
|
|
37
|
+
"defaultValue": null,
|
|
38
|
+
"description": "Branch the conversation from this turn. The control exists only when this is given."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "onMore",
|
|
42
|
+
"type": "(() => void)",
|
|
43
|
+
"required": false,
|
|
44
|
+
"defaultValue": null,
|
|
45
|
+
"description": "Open the overflow menu — Cursor hangs \"Copy request ID\" off it."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "timestamp",
|
|
49
|
+
"type": "TurnTimestamp",
|
|
50
|
+
"required": false,
|
|
51
|
+
"defaultValue": null,
|
|
52
|
+
"description": "When the turn happened and how long it took. See {@link TurnTimestamp}."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "labels",
|
|
56
|
+
"type": "Partial<TurnActionLabels>",
|
|
57
|
+
"required": false,
|
|
58
|
+
"defaultValue": null,
|
|
59
|
+
"description": "The accessible names of the four controls, merged over\n`TURN_ACTION_LABELS`. Partial on purpose: a console localising two of them\nshould not have to restate the other three."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "label",
|
|
63
|
+
"type": "string",
|
|
64
|
+
"required": false,
|
|
65
|
+
"defaultValue": "Turn actions",
|
|
66
|
+
"description": "What the group of controls is called. Defaults to `Turn actions`."
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"typeReferences": [
|
|
70
|
+
"Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">"
|
|
71
|
+
],
|
|
72
|
+
"subcomponents": [],
|
|
73
|
+
"parts": [],
|
|
74
|
+
"variants": {},
|
|
75
|
+
"defaultVariants": {},
|
|
76
|
+
"tokensUsed": [
|
|
77
|
+
"--cue-fg-subtle",
|
|
78
|
+
"--cue-ok"
|
|
79
|
+
],
|
|
80
|
+
"summary": "The row under a finished turn: copy, reply, fork, and when it happened.",
|
|
81
|
+
"examples": [
|
|
82
|
+
{
|
|
83
|
+
"title": "Usage",
|
|
84
|
+
"code": "import { TurnFooter } from \"@cueplusplus/ui/elements\";\n\n<TurnFooter\n onCopy={copy}\n copied={copied}\n onReply={quote}\n onFork={branch}\n timestamp={{ label: \"2m ago\", title: \"Today at 2:14 PM\", subtitle: \"Worked for 2m 15s\" }}\n/>\n// A shared transcript: one control, and the time it was written.\n<TurnFooter onCopy={copy} timestamp={{ label: \"14 March\" }} />",
|
|
85
|
+
"language": "tsx"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"status": "todo-docs",
|
|
89
|
+
"url": "/docs/components/turn-footer",
|
|
90
|
+
"mdUrl": "/docs/components/turn-footer.md",
|
|
91
|
+
"jsonUrl": "/r/components/turn-footer.json",
|
|
92
|
+
"specimens": [
|
|
93
|
+
{
|
|
94
|
+
"title": "TurnFooter",
|
|
95
|
+
"group": "elements-thread",
|
|
96
|
+
"components": [
|
|
97
|
+
"TurnFooter"
|
|
98
|
+
],
|
|
99
|
+
"code": "<Specimens>\n <Specimen label=\"all four, three-level timestamp\" wide>\n <div className=\"w-full max-w-md\">\n <TurnFooter\n onCopy={() => setTurnCopied((current) => !current)}\n copied={turnCopied}\n onReply={() => {}}\n onFork={() => {}}\n onMore={() => {}}\n timestamp={{\n label: \"2m ago\",\n title: \"Today at 2:14 PM\",\n subtitle: \"Worked for 2m 15s\",\n }}\n />\n </div>\n </Specimen>\n <Specimen label=\"a shared transcript: copy only\" wide>\n <div className=\"w-full max-w-md\">\n <TurnFooter onCopy={() => {}} timestamp={{ label: \"14 March\" }} />\n </div>\n </Specimen>\n <Specimen label=\"relabelled\" wide>\n <div className=\"w-full max-w-md\">\n <TurnFooter\n onCopy={() => {}}\n onFork={() => {}}\n labels={{ fork: \"Branch\" }}\n timestamp={{ label: \"2m ago\" }}\n />\n </div>\n </Specimen>\n</Specimens>",
|
|
100
|
+
"note": "The row under a finished turn: copy, reply, fork, and when it happened. Every control is opt-in, because the four are not one set — a read-only shared transcript has a copy button and nothing else, and a footer that drew disabled controls would be a row of things nobody can press. The timestamp is three levels at once: 2m ago at a glance, the exact time on the title where it costs nothing, and how long the work took beside it, which is the only one of the three that is about the agent rather than the clock.",
|
|
101
|
+
"interaction": "four named icon buttons; copy crossfades to a check in place and renames itself Copied. The four names come from TURN_ACTION_LABELS and a partial override merges over it, so localising two of them does not mean restating the other three."
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"todo": true
|
|
105
|
+
}
|