@cueplusplus/ui 0.13.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 +4028 -0
- package/LICENSE +21 -0
- package/NOTICE.md +34 -0
- package/README.md +237 -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 +54 -0
- package/dist/brand/_chassis.js +81 -0
- package/dist/brand/_geometry.js +41 -0
- package/dist/brand/cue-logotype.d.ts +29 -0
- package/dist/brand/cue-logotype.js +60 -0
- package/dist/brand/cue-mark.d.ts +30 -0
- package/dist/brand/cue-mark.js +61 -0
- package/dist/brand/index.d.ts +5 -0
- package/dist/brand/plussie.d.ts +67 -0
- package/dist/brand/plussie.js +125 -0
- package/dist/charts/_token.js +39 -0
- package/dist/charts/container.d.ts +58 -0
- package/dist/charts/container.js +77 -0
- package/dist/charts/index.d.ts +5 -0
- package/dist/charts/index.js +5 -0
- package/dist/charts/ramps.d.ts +140 -0
- package/dist/charts/ramps.js +615 -0
- package/dist/charts/theme.d.ts +112 -0
- package/dist/charts/theme.js +165 -0
- package/dist/charts/tones.d.ts +111 -0
- package/dist/charts/tones.js +127 -0
- package/dist/chat/_glyphs.js +55 -0
- package/dist/chat/agent-color.d.ts +84 -0
- package/dist/chat/agent-color.js +101 -0
- package/dist/chat/agent-pile.d.ts +55 -0
- package/dist/chat/agent-pile.js +121 -0
- package/dist/chat/ask-box.d.ts +88 -0
- package/dist/chat/ask-box.js +341 -0
- package/dist/chat/composer.d.ts +66 -0
- package/dist/chat/composer.js +144 -0
- package/dist/chat/delegation-card.d.ts +60 -0
- package/dist/chat/delegation-card.js +129 -0
- package/dist/chat/index.d.ts +8 -0
- package/dist/chat/index.js +8 -0
- package/dist/chat/message-list.d.ts +45 -0
- package/dist/chat/message-list.js +141 -0
- package/dist/chat/message.d.ts +47 -0
- package/dist/chat/message.js +108 -0
- package/dist/chrome/_band.js +54 -0
- package/dist/chrome/_drag.js +59 -0
- package/dist/chrome/_edge-scroller.d.ts +45 -0
- package/dist/chrome/_edge-scroller.js +149 -0
- package/dist/chrome/_glyphs.js +119 -0
- package/dist/chrome/_status-bar-item.js +85 -0
- package/dist/chrome/_status-bar.d.ts +15 -0
- package/dist/chrome/_status-bar.js +171 -0
- package/dist/chrome/_tabs-scroll.d.ts +67 -0
- package/dist/chrome/_tabs-scroll.js +73 -0
- package/dist/chrome/_tree.d.ts +75 -0
- package/dist/chrome/_tree.js +49 -0
- package/dist/chrome/app-bar.d.ts +103 -0
- package/dist/chrome/app-bar.js +175 -0
- package/dist/chrome/app-shell.d.ts +243 -0
- package/dist/chrome/app-shell.js +266 -0
- package/dist/chrome/band.d.ts +106 -0
- package/dist/chrome/band.js +97 -0
- package/dist/chrome/empty-state.d.ts +37 -0
- package/dist/chrome/empty-state.js +57 -0
- package/dist/chrome/eyebrow.d.ts +29 -0
- package/dist/chrome/eyebrow.js +36 -0
- package/dist/chrome/footer.d.ts +88 -0
- package/dist/chrome/footer.js +83 -0
- package/dist/chrome/index.d.ts +24 -0
- package/dist/chrome/index.js +22 -0
- package/dist/chrome/inspector.d.ts +61 -0
- package/dist/chrome/inspector.js +121 -0
- package/dist/chrome/navigation-menu.d.ts +80 -0
- package/dist/chrome/navigation-menu.js +121 -0
- package/dist/chrome/page-shell.d.ts +38 -0
- package/dist/chrome/page-shell.js +76 -0
- package/dist/chrome/panel.d.ts +55 -0
- package/dist/chrome/panel.js +67 -0
- package/dist/chrome/row.d.ts +82 -0
- package/dist/chrome/row.js +106 -0
- package/dist/chrome/scroll-area.d.ts +39 -0
- package/dist/chrome/scroll-area.js +70 -0
- package/dist/chrome/section-header.d.ts +42 -0
- package/dist/chrome/section-header.js +79 -0
- package/dist/chrome/segmented-control.d.ts +77 -0
- package/dist/chrome/segmented-control.js +95 -0
- package/dist/chrome/status-bar.d.ts +129 -0
- package/dist/chrome/status-bar.js +120 -0
- package/dist/chrome/tabs.d.ts +80 -0
- package/dist/chrome/tabs.js +132 -0
- package/dist/chrome/title-bar.d.ts +47 -0
- package/dist/chrome/title-bar.js +43 -0
- package/dist/chrome/toolbar.d.ts +68 -0
- package/dist/chrome/toolbar.js +83 -0
- package/dist/chrome/tree.d.ts +98 -0
- package/dist/chrome/tree.js +248 -0
- package/dist/color/_checker.js +14 -0
- package/dist/color/_convert.d.ts +52 -0
- package/dist/color/_convert.js +66 -0
- package/dist/color/_glyphs.js +28 -0
- package/dist/color/_thumb.js +15 -0
- package/dist/color/_value.js +28 -0
- package/dist/color/color-area.d.ts +27 -0
- package/dist/color/color-area.js +40 -0
- package/dist/color/color-field.d.ts +32 -0
- package/dist/color/color-field.js +43 -0
- package/dist/color/color-picker.d.ts +71 -0
- package/dist/color/color-picker.js +178 -0
- package/dist/color/color-slider.d.ts +31 -0
- package/dist/color/color-slider.js +51 -0
- package/dist/color/color-swatch.d.ts +32 -0
- package/dist/color/color-swatch.js +44 -0
- package/dist/color/index.d.ts +7 -0
- package/dist/color/index.js +7 -0
- package/dist/configurator/_export.d.ts +78 -0
- package/dist/configurator/_export.js +302 -0
- package/dist/configurator/_glyphs.js +92 -0
- package/dist/configurator/_overrides.d.ts +266 -0
- package/dist/configurator/_overrides.js +541 -0
- package/dist/configurator/configurator.d.ts +71 -0
- package/dist/configurator/configurator.js +284 -0
- package/dist/configurator/export-dialog.d.ts +30 -0
- package/dist/configurator/export-dialog.js +121 -0
- package/dist/configurator/index.d.ts +8 -0
- package/dist/configurator/index.js +8 -0
- package/dist/configurator/panel-sections.d.ts +86 -0
- package/dist/configurator/panel-sections.js +352 -0
- package/dist/configurator/token-editor.d.ts +74 -0
- package/dist/configurator/token-editor.js +152 -0
- package/dist/configurator/use-zoom.d.ts +87 -0
- package/dist/configurator/use-zoom.js +113 -0
- package/dist/date/_glyphs.js +34 -0
- package/dist/date/_segments.js +101 -0
- package/dist/date/_trigger.js +31 -0
- package/dist/date/calendar.d.ts +25 -0
- package/dist/date/calendar.js +125 -0
- package/dist/date/date-field.d.ts +34 -0
- package/dist/date/date-field.js +41 -0
- package/dist/date/date-picker.d.ts +69 -0
- package/dist/date/date-picker.js +89 -0
- package/dist/date/date-range-picker.d.ts +65 -0
- package/dist/date/date-range-picker.js +92 -0
- package/dist/date/index.d.ts +6 -0
- package/dist/date/index.js +6 -0
- package/dist/date/time-field.d.ts +29 -0
- package/dist/date/time-field.js +36 -0
- package/dist/dmx/_ramp.d.ts +77 -0
- package/dist/dmx/_ramp.js +169 -0
- package/dist/dmx/_readout.js +53 -0
- package/dist/dmx/_universe.d.ts +105 -0
- package/dist/dmx/_universe.js +112 -0
- package/dist/dmx/channel-matrix.d.ts +81 -0
- package/dist/dmx/channel-matrix.js +285 -0
- package/dist/dmx/dmx-bar.d.ts +50 -0
- package/dist/dmx/dmx-bar.js +107 -0
- package/dist/dmx/dmx-strip.d.ts +41 -0
- package/dist/dmx/dmx-strip.js +196 -0
- package/dist/dmx/index.d.ts +7 -0
- package/dist/dmx/index.js +7 -0
- package/dist/dmx/universe-grid.d.ts +61 -0
- package/dist/dmx/universe-grid.js +182 -0
- 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 +123 -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 +108 -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/flow/_frame.d.ts +52 -0
- package/dist/flow/_frame.js +38 -0
- package/dist/flow/controls.d.ts +41 -0
- package/dist/flow/controls.js +53 -0
- package/dist/flow/flow.css +121 -0
- package/dist/flow/handles.d.ts +40 -0
- package/dist/flow/handles.js +61 -0
- package/dist/flow/index.d.ts +7 -0
- package/dist/flow/index.js +7 -0
- package/dist/flow/node-card.d.ts +71 -0
- package/dist/flow/node-card.js +102 -0
- package/dist/flow/signal-edge.d.ts +60 -0
- package/dist/flow/signal-edge.js +108 -0
- package/dist/flow/use-flow-theme.d.ts +69 -0
- package/dist/flow/use-flow-theme.js +109 -0
- package/dist/forms/_chassis.d.ts +164 -0
- package/dist/forms/_chassis.js +159 -0
- package/dist/forms/_glyphs.js +143 -0
- package/dist/forms/_listbox.js +55 -0
- package/dist/forms/autocomplete.d.ts +61 -0
- package/dist/forms/autocomplete.js +88 -0
- package/dist/forms/button-group.d.ts +47 -0
- package/dist/forms/button-group.js +52 -0
- package/dist/forms/checkbox.d.ts +51 -0
- package/dist/forms/checkbox.js +98 -0
- package/dist/forms/combobox.d.ts +73 -0
- package/dist/forms/combobox.js +108 -0
- package/dist/forms/env-var-input.d.ts +74 -0
- package/dist/forms/env-var-input.js +116 -0
- package/dist/forms/field.d.ts +89 -0
- package/dist/forms/field.js +102 -0
- package/dist/forms/file-upload.d.ts +113 -0
- package/dist/forms/file-upload.js +232 -0
- package/dist/forms/index.d.ts +26 -0
- package/dist/forms/index.js +26 -0
- package/dist/forms/input-group.d.ts +36 -0
- package/dist/forms/input-group.js +59 -0
- package/dist/forms/input.d.ts +45 -0
- package/dist/forms/input.js +36 -0
- package/dist/forms/multi-select.d.ts +62 -0
- package/dist/forms/multi-select.js +107 -0
- package/dist/forms/number-field.d.ts +39 -0
- package/dist/forms/number-field.js +65 -0
- package/dist/forms/otp-field.d.ts +54 -0
- package/dist/forms/otp-field.js +59 -0
- package/dist/forms/password-input.d.ts +46 -0
- package/dist/forms/password-input.js +62 -0
- package/dist/forms/radio-group.d.ts +50 -0
- package/dist/forms/radio-group.js +64 -0
- package/dist/forms/rating.d.ts +69 -0
- package/dist/forms/rating.js +103 -0
- package/dist/forms/scrub-input.d.ts +81 -0
- package/dist/forms/scrub-input.js +249 -0
- package/dist/forms/search-input.d.ts +54 -0
- package/dist/forms/search-input.js +112 -0
- package/dist/forms/select.d.ts +75 -0
- package/dist/forms/select.js +91 -0
- package/dist/forms/slider.d.ts +44 -0
- package/dist/forms/slider.js +65 -0
- package/dist/forms/switch.d.ts +36 -0
- package/dist/forms/switch.js +71 -0
- package/dist/forms/tags-input.d.ts +69 -0
- package/dist/forms/tags-input.js +148 -0
- package/dist/forms/textarea.d.ts +39 -0
- package/dist/forms/textarea.js +37 -0
- package/dist/forms/toggle-group.d.ts +41 -0
- package/dist/forms/toggle-group.js +56 -0
- package/dist/forms/toggle.d.ts +47 -0
- package/dist/forms/toggle.js +100 -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 +138 -0
- package/dist/index.js +124 -0
- package/dist/instruments/_ansi.js +116 -0
- package/dist/instruments/_data-row.d.ts +68 -0
- package/dist/instruments/_data-row.js +139 -0
- package/dist/instruments/_glyphs.js +90 -0
- package/dist/instruments/_ledger-disclosure.js +103 -0
- package/dist/instruments/_ledger.d.ts +21 -0
- package/dist/instruments/_ledger.js +5 -0
- package/dist/instruments/_motion.js +56 -0
- package/dist/instruments/_rem.js +21 -0
- package/dist/instruments/app-window-frame.d.ts +48 -0
- package/dist/instruments/app-window-frame.js +76 -0
- package/dist/instruments/code-block.d.ts +35 -0
- package/dist/instruments/code-block.js +173 -0
- package/dist/instruments/copy-button.d.ts +41 -0
- package/dist/instruments/copy-button.js +112 -0
- package/dist/instruments/data-row.d.ts +94 -0
- package/dist/instruments/data-row.js +151 -0
- package/dist/instruments/data-table.d.ts +168 -0
- package/dist/instruments/data-table.js +212 -0
- package/dist/instruments/data-tree.d.ts +126 -0
- package/dist/instruments/data-tree.js +303 -0
- package/dist/instruments/group-bar.d.ts +63 -0
- package/dist/instruments/group-bar.js +122 -0
- package/dist/instruments/index.d.ts +18 -0
- package/dist/instruments/index.js +18 -0
- package/dist/instruments/ledger.d.ts +204 -0
- package/dist/instruments/ledger.js +204 -0
- package/dist/instruments/log-viewer.d.ts +74 -0
- package/dist/instruments/log-viewer.js +215 -0
- package/dist/instruments/meter.d.ts +81 -0
- package/dist/instruments/meter.js +96 -0
- package/dist/instruments/progress.d.ts +61 -0
- package/dist/instruments/progress.js +79 -0
- package/dist/instruments/seam-grid.d.ts +66 -0
- package/dist/instruments/seam-grid.js +78 -0
- package/dist/instruments/sparkline.d.ts +39 -0
- package/dist/instruments/sparkline.js +85 -0
- package/dist/instruments/stat.d.ts +35 -0
- package/dist/instruments/stat.js +59 -0
- package/dist/instruments/table.d.ts +170 -0
- package/dist/instruments/table.js +237 -0
- package/dist/instruments/terminal-frame.d.ts +89 -0
- package/dist/instruments/terminal-frame.js +256 -0
- package/dist/instruments/two-step-button.d.ts +47 -0
- package/dist/instruments/two-step-button.js +166 -0
- package/dist/instruments/usage-chart.d.ts +55 -0
- package/dist/instruments/usage-chart.js +235 -0
- package/dist/layout/_collapse.js +46 -0
- package/dist/layout/_glyphs.js +45 -0
- package/dist/layout/_ground.d.ts +22 -0
- package/dist/layout/_ground.js +9 -0
- package/dist/layout/accordion.d.ts +52 -0
- package/dist/layout/accordion.js +81 -0
- package/dist/layout/bento.d.ts +144 -0
- package/dist/layout/bento.js +266 -0
- package/dist/layout/breadcrumb.d.ts +35 -0
- package/dist/layout/breadcrumb.js +67 -0
- package/dist/layout/card.d.ts +51 -0
- package/dist/layout/card.js +76 -0
- package/dist/layout/carousel.d.ts +96 -0
- package/dist/layout/carousel.js +211 -0
- package/dist/layout/collapsible.d.ts +74 -0
- package/dist/layout/collapsible.js +126 -0
- package/dist/layout/container.d.ts +27 -0
- package/dist/layout/container.js +43 -0
- package/dist/layout/description-list.d.ts +24 -0
- package/dist/layout/description-list.js +37 -0
- package/dist/layout/frames.d.ts +70 -0
- package/dist/layout/frames.js +298 -0
- package/dist/layout/grid.d.ts +40 -0
- package/dist/layout/grid.js +48 -0
- package/dist/layout/index.d.ts +19 -0
- package/dist/layout/index.js +18 -0
- package/dist/layout/item.d.ts +65 -0
- package/dist/layout/item.js +100 -0
- package/dist/layout/link.d.ts +48 -0
- package/dist/layout/link.js +63 -0
- package/dist/layout/pagination.d.ts +54 -0
- package/dist/layout/pagination.js +121 -0
- package/dist/layout/preview.d.ts +177 -0
- package/dist/layout/preview.js +628 -0
- package/dist/layout/resizable.d.ts +38 -0
- package/dist/layout/resizable.js +68 -0
- package/dist/layout/sidebar.d.ts +105 -0
- package/dist/layout/sidebar.js +158 -0
- package/dist/layout/stack.d.ts +46 -0
- package/dist/layout/stack.js +62 -0
- package/dist/layout/stepper.d.ts +49 -0
- package/dist/layout/stepper.js +81 -0
- package/dist/layout/timeline.d.ts +43 -0
- package/dist/layout/timeline.js +63 -0
- package/dist/lib/aria-class.js +24 -0
- package/dist/lib/cn.js +18 -0
- package/dist/lib/compose.js +38 -0
- package/dist/lib/cva.d.ts +18 -0
- package/dist/lib/cva.js +65 -0
- package/dist/midi/_notes.d.ts +101 -0
- package/dist/midi/_notes.js +183 -0
- package/dist/midi/_ruler.d.ts +100 -0
- package/dist/midi/_ruler.js +105 -0
- package/dist/midi/_time.d.ts +107 -0
- package/dist/midi/_time.js +130 -0
- package/dist/midi/index.d.ts +9 -0
- package/dist/midi/index.js +9 -0
- package/dist/midi/musical-time-input.d.ts +48 -0
- package/dist/midi/musical-time-input.js +154 -0
- package/dist/midi/piano-keyboard.d.ts +50 -0
- package/dist/midi/piano-keyboard.js +197 -0
- package/dist/midi/spectrum-visualizer.d.ts +65 -0
- package/dist/midi/spectrum-visualizer.js +213 -0
- package/dist/midi/threshold-rail.d.ts +72 -0
- package/dist/midi/threshold-rail.js +214 -0
- package/dist/midi/timeline-ruler.d.ts +83 -0
- package/dist/midi/timeline-ruler.js +152 -0
- package/dist/overlays/_debounce.js +34 -0
- package/dist/overlays/_glyphs.js +59 -0
- package/dist/overlays/_surface.d.ts +70 -0
- package/dist/overlays/_surface.js +70 -0
- package/dist/overlays/_wheel.js +42 -0
- package/dist/overlays/alert-dialog.d.ts +67 -0
- package/dist/overlays/alert-dialog.js +117 -0
- package/dist/overlays/command-palette.d.ts +93 -0
- package/dist/overlays/command-palette.js +193 -0
- package/dist/overlays/context-menu.d.ts +64 -0
- package/dist/overlays/context-menu.js +78 -0
- package/dist/overlays/dialog.d.ts +72 -0
- package/dist/overlays/dialog.js +124 -0
- package/dist/overlays/drawer.d.ts +75 -0
- package/dist/overlays/drawer.js +151 -0
- package/dist/overlays/dropdown-menu.d.ts +79 -0
- package/dist/overlays/dropdown-menu.js +156 -0
- package/dist/overlays/hover-card.d.ts +58 -0
- package/dist/overlays/hover-card.js +91 -0
- package/dist/overlays/index.d.ts +15 -0
- package/dist/overlays/index.js +15 -0
- package/dist/overlays/info-tip.d.ts +41 -0
- package/dist/overlays/info-tip.js +45 -0
- package/dist/overlays/menubar.d.ts +72 -0
- package/dist/overlays/menubar.js +100 -0
- package/dist/overlays/popover.d.ts +66 -0
- package/dist/overlays/popover.js +114 -0
- package/dist/overlays/sheet.d.ts +78 -0
- package/dist/overlays/sheet.js +131 -0
- package/dist/overlays/toast.d.ts +106 -0
- package/dist/overlays/toast.js +146 -0
- package/dist/overlays/tooltip.d.ts +57 -0
- package/dist/overlays/tooltip.js +95 -0
- package/dist/primitives/avatar.d.ts +51 -0
- package/dist/primitives/avatar.js +93 -0
- package/dist/primitives/button.d.ts +58 -0
- package/dist/primitives/button.js +104 -0
- package/dist/primitives/chip.d.ts +73 -0
- package/dist/primitives/chip.js +238 -0
- package/dist/primitives/icon-button.d.ts +41 -0
- package/dist/primitives/icon-button.js +59 -0
- package/dist/primitives/index.d.ts +10 -0
- package/dist/primitives/index.js +10 -0
- package/dist/primitives/kbd.d.ts +17 -0
- package/dist/primitives/kbd.js +24 -0
- package/dist/primitives/separator.d.ts +25 -0
- package/dist/primitives/separator.js +30 -0
- package/dist/primitives/skeleton.d.ts +20 -0
- package/dist/primitives/skeleton.js +27 -0
- package/dist/primitives/spinner.d.ts +26 -0
- package/dist/primitives/spinner.js +31 -0
- package/dist/primitives/status-dot.d.ts +51 -0
- package/dist/primitives/status-dot.js +57 -0
- package/dist/styles.css +97 -0
- package/dist/system/agent-skin.d.ts +27 -0
- package/dist/system/agent-skin.js +20 -0
- package/dist/system/density.d.ts +73 -0
- package/dist/system/density.js +111 -0
- package/dist/system/index.d.ts +12 -0
- package/dist/system/index.js +10 -0
- package/dist/system/overrides.d.ts +80 -0
- package/dist/system/overrides.js +277 -0
- package/dist/system/portal.d.ts +56 -0
- package/dist/system/portal.js +193 -0
- package/dist/system/prepaint.d.ts +134 -0
- package/dist/system/prepaint.js +120 -0
- package/dist/system/theme-provider.d.ts +290 -0
- package/dist/system/theme-provider.js +543 -0
- package/dist/system/theme-registry.d.ts +53 -0
- package/dist/system/theme-registry.js +66 -0
- package/dist/system/use-density.d.ts +50 -0
- package/dist/system/use-density.js +232 -0
- package/dist/system/use-isomorphic-layout-effect.js +33 -0
- package/dist/system/use-theme.d.ts +30 -0
- package/dist/system/use-theme.js +36 -0
- package/dist/system/vocabulary.d.ts +16 -0
- package/dist/system/vocabulary.js +125 -0
- package/dist/theming/contrast.d.ts +2 -0
- package/dist/theming/contrast.js +2 -0
- package/dist/theming/create-theme.d.ts +195 -0
- package/dist/theming/create-theme.js +524 -0
- package/dist/theming/index.d.ts +4 -0
- package/dist/theming/index.js +4 -0
- package/dist/theming/serialize.d.ts +167 -0
- package/dist/theming/serialize.js +241 -0
- package/manifest/components/accordion.json +173 -0
- package/manifest/components/activity-graph.json +104 -0
- package/manifest/components/agent-card.json +150 -0
- package/manifest/components/agent-handoff.json +104 -0
- package/manifest/components/agent-mode-badge.json +102 -0
- package/manifest/components/agent-pile.json +147 -0
- package/manifest/components/agent-plan.json +74 -0
- package/manifest/components/agent-status.json +87 -0
- package/manifest/components/agent-surface.json +93 -0
- package/manifest/components/alert-dialog.json +215 -0
- package/manifest/components/animated-number.json +75 -0
- package/manifest/components/app-bar.json +297 -0
- package/manifest/components/app-shell.json +526 -0
- package/manifest/components/app-window-frame.json +124 -0
- package/manifest/components/approval-card.json +136 -0
- package/manifest/components/artifact-card.json +93 -0
- package/manifest/components/ask-box.json +288 -0
- package/manifest/components/audience-icon.json +46 -0
- package/manifest/components/autocomplete.json +262 -0
- package/manifest/components/avatar-group.json +83 -0
- package/manifest/components/avatar.json +113 -0
- package/manifest/components/background-inbox.json +79 -0
- package/manifest/components/band.json +104 -0
- package/manifest/components/bento.json +306 -0
- package/manifest/components/branch-picker.json +146 -0
- package/manifest/components/breadcrumb.json +85 -0
- package/manifest/components/button-group.json +91 -0
- package/manifest/components/button.json +163 -0
- package/manifest/components/calendar.json +65 -0
- package/manifest/components/canvas-split-body.json +66 -0
- package/manifest/components/canvas-split-document.json +55 -0
- package/manifest/components/canvas-split-header.json +97 -0
- package/manifest/components/canvas-split-line.json +66 -0
- package/manifest/components/canvas-split-message.json +70 -0
- package/manifest/components/canvas-split-thread.json +55 -0
- package/manifest/components/canvas-split.json +61 -0
- package/manifest/components/card.json +152 -0
- package/manifest/components/carousel.json +242 -0
- package/manifest/components/catalogue-icon.json +46 -0
- package/manifest/components/channel-beta-icon.json +46 -0
- package/manifest/components/channel-matrix.json +239 -0
- package/manifest/components/channel-released-icon.json +46 -0
- package/manifest/components/chart-container.json +127 -0
- package/manifest/components/chart-ramp.json +82 -0
- package/manifest/components/chart-swatch.json +72 -0
- package/manifest/components/chart-tooltip-content.json +140 -0
- package/manifest/components/chart.json +117 -0
- package/manifest/components/chat-empty-state.json +55 -0
- package/manifest/components/chat-panel-assistant-message.json +52 -0
- package/manifest/components/chat-panel-composer.json +74 -0
- package/manifest/components/chat-panel-messages.json +52 -0
- package/manifest/components/chat-panel-typing.json +52 -0
- package/manifest/components/chat-panel-user-message.json +52 -0
- package/manifest/components/chat-panel.json +58 -0
- package/manifest/components/checkbox-group.json +70 -0
- package/manifest/components/checkbox.json +106 -0
- package/manifest/components/checkpoint-history.json +91 -0
- package/manifest/components/chip.json +174 -0
- package/manifest/components/clamp.json +125 -0
- package/manifest/components/cli-tool-icon.json +46 -0
- package/manifest/components/code-block.json +107 -0
- package/manifest/components/code-diff.json +104 -0
- package/manifest/components/code-runner.json +124 -0
- package/manifest/components/collapsible.json +133 -0
- package/manifest/components/color-area.json +62 -0
- package/manifest/components/color-field.json +91 -0
- package/manifest/components/color-picker.json +235 -0
- package/manifest/components/color-slider.json +84 -0
- package/manifest/components/color-swatch.json +79 -0
- package/manifest/components/colors-section.json +70 -0
- package/manifest/components/combobox.json +265 -0
- package/manifest/components/command-palette.json +222 -0
- package/manifest/components/compaction-row.json +128 -0
- package/manifest/components/comparison-card.json +98 -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 +83 -0
- package/manifest/components/composer-attachments.json +60 -0
- package/manifest/components/composer-bar.json +76 -0
- package/manifest/components/composer-command-item.json +85 -0
- package/manifest/components/composer-context.json +71 -0
- package/manifest/components/composer-input.json +77 -0
- package/manifest/components/composer-menu-item.json +75 -0
- package/manifest/components/composer-menu.json +89 -0
- package/manifest/components/composer-model-item.json +82 -0
- package/manifest/components/composer-model-trigger.json +81 -0
- package/manifest/components/composer-person-item.json +86 -0
- package/manifest/components/composer-send.json +86 -0
- package/manifest/components/composer-toolbar.json +65 -0
- package/manifest/components/composer-voice-button.json +71 -0
- package/manifest/components/composer-voice.json +81 -0
- package/manifest/components/composer.json +238 -0
- package/manifest/components/computer-use.json +98 -0
- package/manifest/components/confidence-marker.json +86 -0
- package/manifest/components/connection-state.json +103 -0
- package/manifest/components/container.json +75 -0
- package/manifest/components/context-breakdown.json +72 -0
- package/manifest/components/context-menu.json +134 -0
- package/manifest/components/context-usage.json +98 -0
- package/manifest/components/conversation-search.json +111 -0
- package/manifest/components/copy-button.json +118 -0
- package/manifest/components/cost-meter.json +84 -0
- package/manifest/components/cue-logotype.json +110 -0
- package/manifest/components/cue-mark.json +111 -0
- package/manifest/components/cue-portal-frame.json +65 -0
- package/manifest/components/data-row.json +222 -0
- package/manifest/components/data-table-pagination.json +97 -0
- package/manifest/components/data-table-toolbar.json +127 -0
- package/manifest/components/data-tree.json +185 -0
- package/manifest/components/date-field.json +93 -0
- package/manifest/components/date-picker.json +255 -0
- package/manifest/components/date-range-picker.json +255 -0
- package/manifest/components/day-separator.json +63 -0
- package/manifest/components/delegation-card.json +196 -0
- package/manifest/components/density.json +93 -0
- package/manifest/components/description-list.json +91 -0
- package/manifest/components/diagram.json +126 -0
- package/manifest/components/dialog.json +222 -0
- package/manifest/components/disclosure.json +134 -0
- package/manifest/components/dmx-bar.json +107 -0
- package/manifest/components/dmx-strip.json +117 -0
- package/manifest/components/document-reference.json +108 -0
- package/manifest/components/draft-restore.json +96 -0
- package/manifest/components/drawer.json +204 -0
- package/manifest/components/dropdown-menu.json +275 -0
- package/manifest/components/edit-message.json +131 -0
- package/manifest/components/elements-command-palette.json +122 -0
- package/manifest/components/elements-composer.json +71 -0
- package/manifest/components/elements-data-table.json +75 -0
- package/manifest/components/elements-timeline.json +77 -0
- package/manifest/components/elicitation-form.json +130 -0
- package/manifest/components/empty-state-composer.json +71 -0
- package/manifest/components/empty-state-greeting.json +49 -0
- package/manifest/components/empty-state-suggestion.json +60 -0
- package/manifest/components/empty-state-suggestions.json +49 -0
- package/manifest/components/empty-state.json +111 -0
- package/manifest/components/end-of-turn-summary.json +89 -0
- package/manifest/components/env-var-input.json +194 -0
- package/manifest/components/error-state.json +93 -0
- package/manifest/components/export-dialog.json +101 -0
- package/manifest/components/eyebrow.json +59 -0
- package/manifest/components/feedback-dialog.json +133 -0
- package/manifest/components/field-description.json +66 -0
- package/manifest/components/field-error.json +87 -0
- package/manifest/components/field-label.json +66 -0
- package/manifest/components/field.json +82 -0
- package/manifest/components/file-tree.json +96 -0
- package/manifest/components/file-upload.json +204 -0
- package/manifest/components/flow-background.json +50 -0
- package/manifest/components/flow-controls.json +50 -0
- package/manifest/components/flow-graph.json +86 -0
- package/manifest/components/folder-icon.json +46 -0
- package/manifest/components/footer.json +133 -0
- package/manifest/components/frac.json +68 -0
- package/manifest/components/frames.json +210 -0
- package/manifest/components/generation-loader.json +78 -0
- package/manifest/components/generative-ui.json +125 -0
- package/manifest/components/grid.json +132 -0
- package/manifest/components/group-bar.json +122 -0
- package/manifest/components/guardrail-notice.json +109 -0
- package/manifest/components/hover-card.json +189 -0
- package/manifest/components/icon-button.json +106 -0
- package/manifest/components/image-generation.json +73 -0
- package/manifest/components/info-tip.json +133 -0
- package/manifest/components/inline-citation.json +90 -0
- package/manifest/components/input-group.json +112 -0
- package/manifest/components/input.json +121 -0
- package/manifest/components/inspector.json +199 -0
- package/manifest/components/item.json +163 -0
- package/manifest/components/job-progress.json +116 -0
- package/manifest/components/kbd.json +52 -0
- package/manifest/components/launcher-bubble.json +130 -0
- package/manifest/components/ledger.json +330 -0
- package/manifest/components/link.json +94 -0
- package/manifest/components/live-region-announcer.json +95 -0
- package/manifest/components/log-viewer.json +172 -0
- package/manifest/components/map-answer.json +97 -0
- package/manifest/components/markdown-text.json +126 -0
- package/manifest/components/math-block.json +84 -0
- package/manifest/components/mcp-server-icon.json +46 -0
- package/manifest/components/mcp-server-panel.json +102 -0
- package/manifest/components/memory-chips.json +73 -0
- package/manifest/components/menubar.json +184 -0
- package/manifest/components/message-actions.json +125 -0
- package/manifest/components/message-attachments.json +71 -0
- package/manifest/components/message-branches.json +83 -0
- package/manifest/components/message-list.json +121 -0
- package/manifest/components/message-pair.json +107 -0
- package/manifest/components/message-queue.json +85 -0
- package/manifest/components/message-timing.json +69 -0
- package/manifest/components/message.json +149 -0
- package/manifest/components/meter.json +150 -0
- package/manifest/components/mobile-composer.json +163 -0
- package/manifest/components/model-picker.json +87 -0
- package/manifest/components/multi-select.json +255 -0
- package/manifest/components/musical-time-input.json +141 -0
- package/manifest/components/navigation-menu.json +269 -0
- package/manifest/components/node-card.json +144 -0
- package/manifest/components/node-handle.json +84 -0
- package/manifest/components/number-field.json +131 -0
- package/manifest/components/number-ticker.json +67 -0
- package/manifest/components/onboarding.json +100 -0
- package/manifest/components/otp-field.json +163 -0
- package/manifest/components/page-shell.json +129 -0
- package/manifest/components/pagination.json +108 -0
- package/manifest/components/panel-header.json +89 -0
- package/manifest/components/panel.json +71 -0
- package/manifest/components/password-input.json +171 -0
- package/manifest/components/permission-grant.json +115 -0
- package/manifest/components/permission-scopes.json +184 -0
- package/manifest/components/piano-keyboard.json +149 -0
- package/manifest/components/plussie.json +140 -0
- package/manifest/components/popover.json +231 -0
- package/manifest/components/preset-section.json +80 -0
- package/manifest/components/preview.json +294 -0
- package/manifest/components/progress.json +114 -0
- package/manifest/components/prompt-library.json +122 -0
- package/manifest/components/queue-dock.json +139 -0
- package/manifest/components/quota-banner.json +113 -0
- package/manifest/components/quote-reply.json +129 -0
- package/manifest/components/radio-group.json +83 -0
- package/manifest/components/radio.json +94 -0
- package/manifest/components/rating.json +188 -0
- package/manifest/components/read-aloud.json +139 -0
- package/manifest/components/reasoning-effort.json +95 -0
- package/manifest/components/reasoning-panel.json +135 -0
- package/manifest/components/recommendation-card.json +133 -0
- package/manifest/components/regenerate-menu.json +107 -0
- package/manifest/components/replay-player.json +124 -0
- package/manifest/components/research-report.json +87 -0
- package/manifest/components/resizable.json +91 -0
- package/manifest/components/retrieval-chunks.json +98 -0
- package/manifest/components/revert-dock.json +197 -0
- package/manifest/components/reviewable-diff.json +113 -0
- package/manifest/components/risk-badge.json +89 -0
- package/manifest/components/row.json +122 -0
- package/manifest/components/schedule-card.json +121 -0
- package/manifest/components/score-breakdown.json +108 -0
- package/manifest/components/scroll-anchor.json +84 -0
- package/manifest/components/scroll-area.json +114 -0
- package/manifest/components/scrollable-tabs-list.json +91 -0
- package/manifest/components/scrub-input.json +268 -0
- package/manifest/components/seam-cell.json +91 -0
- package/manifest/components/seam-grid.json +84 -0
- package/manifest/components/seam-list.json +56 -0
- package/manifest/components/search-input.json +195 -0
- package/manifest/components/section-header.json +140 -0
- package/manifest/components/segmented-control.json +178 -0
- package/manifest/components/select.json +253 -0
- package/manifest/components/separator.json +56 -0
- package/manifest/components/settings-panel.json +152 -0
- package/manifest/components/shape-section.json +70 -0
- package/manifest/components/shared-conversation.json +107 -0
- package/manifest/components/sheet.json +210 -0
- package/manifest/components/shimmer-label.json +61 -0
- package/manifest/components/sidebar.json +245 -0
- package/manifest/components/signal-edge.json +56 -0
- package/manifest/components/skeleton.json +46 -0
- package/manifest/components/skill-icon.json +46 -0
- package/manifest/components/slider.json +106 -0
- package/manifest/components/sources.json +97 -0
- package/manifest/components/sparkline.json +89 -0
- package/manifest/components/speaker-identity.json +66 -0
- package/manifest/components/spec-sheet.json +93 -0
- package/manifest/components/spectrum-visualizer.json +147 -0
- package/manifest/components/spinner.json +71 -0
- package/manifest/components/stack-icon.json +46 -0
- package/manifest/components/stack.json +143 -0
- package/manifest/components/stacks-matrix-icon.json +46 -0
- package/manifest/components/stat.json +111 -0
- package/manifest/components/status-bar.json +233 -0
- package/manifest/components/status-dot.json +97 -0
- package/manifest/components/stepper.json +107 -0
- package/manifest/components/stopped-run.json +97 -0
- package/manifest/components/streaming-text.json +82 -0
- package/manifest/components/sub.json +45 -0
- package/manifest/components/subagent-list.json +106 -0
- package/manifest/components/suggestions.json +106 -0
- package/manifest/components/sup.json +45 -0
- package/manifest/components/swap-label.json +86 -0
- package/manifest/components/switch.json +102 -0
- package/manifest/components/table-scroll-region.json +78 -0
- package/manifest/components/table.json +306 -0
- package/manifest/components/tabs.json +156 -0
- package/manifest/components/tags-input.json +255 -0
- package/manifest/components/tail-status.json +138 -0
- package/manifest/components/terminal-block.json +111 -0
- package/manifest/components/terminal-frame.json +146 -0
- package/manifest/components/textarea.json +104 -0
- package/manifest/components/theme-configurator.json +158 -0
- package/manifest/components/theme-provider.json +228 -0
- package/manifest/components/thinking-indicator.json +69 -0
- package/manifest/components/thread-list.json +87 -0
- package/manifest/components/thread-search.json +108 -0
- package/manifest/components/threshold-rail.json +223 -0
- package/manifest/components/time-boundary.json +68 -0
- package/manifest/components/time-field.json +93 -0
- package/manifest/components/timeline-ruler.json +178 -0
- package/manifest/components/timeline.json +131 -0
- package/manifest/components/title-bar.json +97 -0
- package/manifest/components/toast.json +140 -0
- package/manifest/components/todo-list.json +76 -0
- package/manifest/components/toggle-group.json +134 -0
- package/manifest/components/toggle.json +140 -0
- package/manifest/components/token-editor.json +106 -0
- package/manifest/components/tool-call-card.json +268 -0
- package/manifest/components/tool-call.json +147 -0
- package/manifest/components/tool-error.json +141 -0
- package/manifest/components/tool-group.json +97 -0
- package/manifest/components/tool-timeline.json +147 -0
- package/manifest/components/toolbar.json +192 -0
- package/manifest/components/tooltip.json +199 -0
- package/manifest/components/trace-waterfall.json +84 -0
- package/manifest/components/tree-visibility-toggle.json +99 -0
- package/manifest/components/tree.json +182 -0
- package/manifest/components/turn-footer.json +133 -0
- package/manifest/components/two-step-button.json +150 -0
- package/manifest/components/typing-indicator.json +60 -0
- package/manifest/components/universe-grid.json +155 -0
- package/manifest/components/unread-divider.json +58 -0
- package/manifest/components/usage-chart.json +162 -0
- package/manifest/components/verdict-row.json +106 -0
- package/manifest/components/voice-conversation.json +141 -0
- package/manifest/components/web-preview.json +105 -0
- package/manifest/components/web-search.json +108 -0
- package/manifest/components/work-collapse.json +125 -0
- package/manifest/fixtures.json +776 -0
- package/manifest/manifest.json +5037 -0
- package/manifest/tokens.json +288 -0
- package/package.json +278 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { ghostButton, mono, paper } from "./surfaces.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { PencilLineIcon, XIcon } from "lucide-react";
|
|
6
|
+
//#region src/elements/draft-restore.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Come back to a thread and the sentence you never sent is still waiting.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* import { DraftRestore } from "@cueplusplus/ui/elements";
|
|
12
|
+
*
|
|
13
|
+
* <DraftRestore
|
|
14
|
+
* draft="Add a regression test for draft restore"
|
|
15
|
+
* savedAt="2 minutes ago"
|
|
16
|
+
* onRestore={restore}
|
|
17
|
+
* onDiscard={discard}
|
|
18
|
+
* />
|
|
19
|
+
*/
|
|
20
|
+
function DraftRestore({ draft, savedAt, onRestore, onDiscard, className, ...props }) {
|
|
21
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
22
|
+
"data-slot": "draft-restore",
|
|
23
|
+
className: cn(paper, "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in flex w-full max-w-sm items-center gap-2.5 rounded-(--radius-overlay) py-2 pr-2 pl-3.5 duration-300", className),
|
|
24
|
+
...props,
|
|
25
|
+
children: [
|
|
26
|
+
/* @__PURE__ */ jsx(PencilLineIcon, { className: "text-fg-subtle size-3.5 shrink-0" }),
|
|
27
|
+
/* @__PURE__ */ jsxs("div", {
|
|
28
|
+
className: "flex min-w-0 flex-1 flex-col",
|
|
29
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
30
|
+
className: "text-fg-muted truncate text-(length:--cue-text-body)",
|
|
31
|
+
children: draft
|
|
32
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
33
|
+
className: cn(mono, "text-fg-subtle"),
|
|
34
|
+
children: ["unsent draft · ", savedAt]
|
|
35
|
+
})]
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ jsx("button", {
|
|
38
|
+
type: "button",
|
|
39
|
+
onClick: onRestore,
|
|
40
|
+
className: "text-fg-muted hover:bg-surface-2 hover:text-fg shrink-0 rounded-full px-2.5 py-1 text-(length:--cue-text-ui) font-medium transition-[background-color,color,scale] duration-150 active:scale-[0.96]",
|
|
41
|
+
children: "Restore"
|
|
42
|
+
}),
|
|
43
|
+
/* @__PURE__ */ jsx("button", {
|
|
44
|
+
type: "button",
|
|
45
|
+
"aria-label": "Discard the draft",
|
|
46
|
+
onClick: onDiscard,
|
|
47
|
+
className: cn(ghostButton, "size-7 shrink-0"),
|
|
48
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "size-3.5" })
|
|
49
|
+
})
|
|
50
|
+
]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { DraftRestore };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/elements/edit-message.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Rewrite a turn in place, told up front how many replies the edit throws away.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import { EditMessage } from "@cueplusplus/ui/elements";
|
|
8
|
+
*
|
|
9
|
+
* <EditMessage
|
|
10
|
+
* value={value}
|
|
11
|
+
* discardedReplies={3}
|
|
12
|
+
* editing={editing}
|
|
13
|
+
* onValueChange={setValue}
|
|
14
|
+
* onStartEdit={() => setEditing(true)}
|
|
15
|
+
* onCancel={cancel}
|
|
16
|
+
* onSave={save}
|
|
17
|
+
* />
|
|
18
|
+
*/
|
|
19
|
+
declare function EditMessage({ value, discardedReplies, editing, onValueChange, onSave, onCancel, onStartEdit, className, ...props }: Omit<ComponentProps<"div">, "children" | "value" | "discardedReplies" | "editing" | "onValueChange" | "onSave" | "onCancel" | "onStartEdit"> & {
|
|
20
|
+
/** The message text, read when resting and edited when open. */
|
|
21
|
+
value: string;
|
|
22
|
+
/** How many replies sending would drop. The warning hides at zero. */
|
|
23
|
+
discardedReplies: number;
|
|
24
|
+
/** Swaps between the resting bubble and the edit composer. */
|
|
25
|
+
editing: boolean;
|
|
26
|
+
/** Called as the message is edited. */
|
|
27
|
+
onValueChange?: (value: string) => void;
|
|
28
|
+
/** Called when the edited message is sent. */
|
|
29
|
+
onSave?: () => void;
|
|
30
|
+
/** Called when the edit is abandoned. Restore the original yourself. */
|
|
31
|
+
onCancel?: () => void;
|
|
32
|
+
/** Called when the resting bubble is clicked. */
|
|
33
|
+
onStartEdit?: () => void;
|
|
34
|
+
}): import("react").JSX.Element;
|
|
35
|
+
//#endregion
|
|
36
|
+
export { EditMessage };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { field, inkButton, paper } from "./surfaces.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { AlertTriangleIcon } from "lucide-react";
|
|
6
|
+
//#region src/elements/edit-message.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Rewrite a turn in place, told up front how many replies the edit throws away.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* import { EditMessage } from "@cueplusplus/ui/elements";
|
|
12
|
+
*
|
|
13
|
+
* <EditMessage
|
|
14
|
+
* value={value}
|
|
15
|
+
* discardedReplies={3}
|
|
16
|
+
* editing={editing}
|
|
17
|
+
* onValueChange={setValue}
|
|
18
|
+
* onStartEdit={() => setEditing(true)}
|
|
19
|
+
* onCancel={cancel}
|
|
20
|
+
* onSave={save}
|
|
21
|
+
* />
|
|
22
|
+
*/
|
|
23
|
+
function EditMessage({ value, discardedReplies, editing, onValueChange, onSave, onCancel, onStartEdit, className, ...props }) {
|
|
24
|
+
if (!editing) return /* @__PURE__ */ jsx("div", {
|
|
25
|
+
"data-slot": "edit-message",
|
|
26
|
+
className: cn("flex w-full max-w-sm justify-end", className),
|
|
27
|
+
...props,
|
|
28
|
+
children: /* @__PURE__ */ jsx("button", {
|
|
29
|
+
type: "button",
|
|
30
|
+
onClick: onStartEdit,
|
|
31
|
+
className: cn(field, "hover:bg-surface-2 max-w-[85%] rounded-(--radius-overlay) px-3.5 py-2.5 text-start text-(length:--cue-text-body) transition-colors"),
|
|
32
|
+
children: value
|
|
33
|
+
})
|
|
34
|
+
});
|
|
35
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
36
|
+
"data-slot": "edit-message",
|
|
37
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-(--radius-overlay) p-3.5", className),
|
|
38
|
+
...props,
|
|
39
|
+
children: [
|
|
40
|
+
/* @__PURE__ */ jsx("textarea", {
|
|
41
|
+
value,
|
|
42
|
+
onChange: (event) => onValueChange?.(event.target.value),
|
|
43
|
+
rows: 2,
|
|
44
|
+
"aria-label": "Edit your message",
|
|
45
|
+
className: cn(field, "text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent resize-none rounded-(--radius-surface) px-3 py-2.5 text-(length:--cue-text-body) leading-(--cue-leading-ui) outline-none")
|
|
46
|
+
}),
|
|
47
|
+
discardedReplies > 0 && /* @__PURE__ */ jsxs("div", {
|
|
48
|
+
className: "flex items-center gap-2 text-warn",
|
|
49
|
+
children: [/* @__PURE__ */ jsx(AlertTriangleIcon, { className: "size-3.5 shrink-0" }), /* @__PURE__ */ jsxs("span", {
|
|
50
|
+
className: cn("font-mono text-(length:--cue-text-label) tracking-tight", "tabular-nums"),
|
|
51
|
+
children: [
|
|
52
|
+
"sending discards ",
|
|
53
|
+
discardedReplies,
|
|
54
|
+
" ",
|
|
55
|
+
discardedReplies === 1 ? "reply" : "replies"
|
|
56
|
+
]
|
|
57
|
+
})]
|
|
58
|
+
}),
|
|
59
|
+
/* @__PURE__ */ jsxs("div", {
|
|
60
|
+
className: "flex items-center justify-end gap-2",
|
|
61
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
62
|
+
type: "button",
|
|
63
|
+
onClick: onCancel,
|
|
64
|
+
className: "text-fg-muted hover:bg-surface-2 hover:text-fg h-8 rounded-full px-3.5 text-(length:--cue-text-ui) font-medium transition-[background-color,color,scale] duration-150 active:scale-[0.96]",
|
|
65
|
+
children: "Cancel"
|
|
66
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
67
|
+
type: "button",
|
|
68
|
+
onClick: onSave,
|
|
69
|
+
className: cn(inkButton, "flex h-8 items-center rounded-full px-3.5 text-(length:--cue-text-ui) font-medium"),
|
|
70
|
+
children: "Send"
|
|
71
|
+
})]
|
|
72
|
+
})
|
|
73
|
+
]
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { EditMessage };
|
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
/*! @cueplusplus/ui — the elements family's stylesheet.
|
|
2
|
+
*
|
|
3
|
+
* Consumer app CSS, in this order:
|
|
4
|
+
* @import "tailwindcss";
|
|
5
|
+
* @import "@cueplusplus/ui/styles.css";
|
|
6
|
+
* @import "@cueplusplus/ui/elements.css";
|
|
7
|
+
*
|
|
8
|
+
* Optional. The vendored elements were rewritten onto `--cue-*` tokens by
|
|
9
|
+
* `scripts/elements-sync`, so in cue mode they are already this system's
|
|
10
|
+
* components and need no stylesheet at all. This file exists for the three
|
|
11
|
+
* things a codemod could not produce:
|
|
12
|
+
*
|
|
13
|
+
* 1. **The vocabularies upstream never shipped.** assistant-ui's elements spend
|
|
14
|
+
* `tw-shimmer` and `tw-animate-css` classes that its own registry does not
|
|
15
|
+
* declare (internals report §3). Rewriting entrance motion would have been a
|
|
16
|
+
* design decision inside a mechanical transform, so the effect below is
|
|
17
|
+
* upstream's — but the *names* are not: they are `tw-animate-css`'s, the
|
|
18
|
+
* animation library shadcn installs by default, and an app that has both
|
|
19
|
+
* would get two `.animate-in` rules with import order deciding. So the
|
|
20
|
+
* codemod renames them at emit and everything here is declared under
|
|
21
|
+
* `cue-elements-`. The debt and the rename table are both in
|
|
22
|
+
* `scripts/elements-sync/elements-sync.lock.json` (`unresolvedVocabularies`,
|
|
23
|
+
* `classRenames`), and a test holds this file against them.
|
|
24
|
+
* 2. **The supersede island.** `<AgentSurface skin="aui">` stamps two
|
|
25
|
+
* attributes; the rules below re-declare, under them, the tokens the family
|
|
26
|
+
* reads. Because every element utility dereferences its variable at the
|
|
27
|
+
* point of use — cue's Tailwind bridge and shadcn's are both `@theme inline`
|
|
28
|
+
* — a value-set is all it takes. No layers, no `!important`, no `:where`.
|
|
29
|
+
* 3. **The mode ladder.** `data-agent-mode` and the quadruple it drives — the
|
|
30
|
+
* one idea in the field study that is a *token contract* rather than a
|
|
31
|
+
* component, and the reason `AgentModeBadge` is four properties and a chip
|
|
32
|
+
* rather than a colour prop. The section below carries the reasoning.
|
|
33
|
+
*
|
|
34
|
+
* Plain CSS, no Tailwind at-rules: a values sheet has to work in an app that
|
|
35
|
+
* imports it after everything else.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/* ── The sweep ─────────────────────────────────────────────────────────
|
|
39
|
+
*
|
|
40
|
+
* Upstream's `ShimmerLabel` takes its animation from `tw-shimmer`, a package
|
|
41
|
+
* this system does not add as a dependency. This is the same effect out of
|
|
42
|
+
* cue's own tokens: a band of full-strength ink travelling through a muted
|
|
43
|
+
* label, clipped to the glyphs.
|
|
44
|
+
*
|
|
45
|
+
* The ink and the sheen are named properties so a caller can retune one label
|
|
46
|
+
* without re-deriving the gradient.
|
|
47
|
+
*/
|
|
48
|
+
@keyframes cue-elements-shimmer {
|
|
49
|
+
from {
|
|
50
|
+
background-position: 150% center;
|
|
51
|
+
}
|
|
52
|
+
to {
|
|
53
|
+
background-position: -50% center;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.cue-elements-shimmer {
|
|
58
|
+
--cue-elements-shimmer-ink: var(--cue-fg-muted);
|
|
59
|
+
--cue-elements-shimmer-sheen: var(--cue-fg);
|
|
60
|
+
background-image: linear-gradient(
|
|
61
|
+
90deg,
|
|
62
|
+
var(--cue-elements-shimmer-ink) 0%,
|
|
63
|
+
var(--cue-elements-shimmer-ink) 35%,
|
|
64
|
+
var(--cue-elements-shimmer-sheen) 50%,
|
|
65
|
+
var(--cue-elements-shimmer-ink) 65%,
|
|
66
|
+
var(--cue-elements-shimmer-ink) 100%
|
|
67
|
+
);
|
|
68
|
+
background-size: 250% 100%;
|
|
69
|
+
background-repeat: no-repeat;
|
|
70
|
+
-webkit-background-clip: text;
|
|
71
|
+
background-clip: text;
|
|
72
|
+
color: transparent;
|
|
73
|
+
animation: cue-elements-shimmer 1.8s linear infinite;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* ── The entrance ──────────────────────────────────────────────────────
|
|
77
|
+
*
|
|
78
|
+
* `tw-animate-css`'s nine-utility subset, as the vendored spine uses it: one
|
|
79
|
+
* keyframe reading five custom properties, and a modifier class per property.
|
|
80
|
+
* The duration comes from the `duration-*` utility written beside it, which is
|
|
81
|
+
* what upstream expects — Tailwind publishes it as `--tw-duration`.
|
|
82
|
+
*
|
|
83
|
+
* The names are this family's, not upstream's. `.animate-in` and its eight
|
|
84
|
+
* companions belong to `tw-animate-css`; declaring them here would collide,
|
|
85
|
+
* silently, with any app that has it installed. `scripts/elements-sync` renames
|
|
86
|
+
* every one at emit (`rules.mjs`, `CLASS_RENAMES`), so the emitted tree writes
|
|
87
|
+
* `cue-elements-animate-in` and this file is the only thing that answers it.
|
|
88
|
+
*/
|
|
89
|
+
@keyframes cue-elements-enter {
|
|
90
|
+
from {
|
|
91
|
+
opacity: var(--cue-elements-enter-opacity, 1);
|
|
92
|
+
filter: blur(var(--cue-elements-enter-blur, 0));
|
|
93
|
+
transform: translate3d(
|
|
94
|
+
var(--cue-elements-enter-translate-x, 0),
|
|
95
|
+
var(--cue-elements-enter-translate-y, 0),
|
|
96
|
+
0
|
|
97
|
+
)
|
|
98
|
+
scale3d(
|
|
99
|
+
var(--cue-elements-enter-scale, 1),
|
|
100
|
+
var(--cue-elements-enter-scale, 1),
|
|
101
|
+
1
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.cue-elements-animate-in {
|
|
107
|
+
animation-name: cue-elements-enter;
|
|
108
|
+
animation-duration: var(--tw-duration, 150ms);
|
|
109
|
+
animation-timing-function: var(--tw-ease, ease-out);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.cue-elements-fill-mode-both {
|
|
113
|
+
animation-fill-mode: both;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.cue-elements-fade-in {
|
|
117
|
+
--cue-elements-enter-opacity: 0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.cue-elements-zoom-in-90 {
|
|
121
|
+
--cue-elements-enter-scale: 0.9;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.cue-elements-zoom-in-95 {
|
|
125
|
+
--cue-elements-enter-scale: 0.95;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* Upstream writes this one as `blur-in-[2px]`, an arbitrary value; it is a
|
|
129
|
+
* class like the other eight here. */
|
|
130
|
+
.cue-elements-blur-in-2 {
|
|
131
|
+
--cue-elements-enter-blur: 2px;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.cue-elements-slide-in-from-top-1 {
|
|
135
|
+
--cue-elements-enter-translate-y: calc(var(--spacing, 0.25rem) * -1);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.cue-elements-slide-in-from-bottom-1 {
|
|
139
|
+
--cue-elements-enter-translate-y: var(--spacing, 0.25rem);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.cue-elements-slide-in-from-bottom-2 {
|
|
143
|
+
--cue-elements-enter-translate-y: calc(var(--spacing, 0.25rem) * 2);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.cue-elements-slide-in-from-left-1 {
|
|
147
|
+
--cue-elements-enter-translate-x: calc(var(--spacing, 0.25rem) * -1);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* A reader who asked for less motion gets none of it. The sweep has to be
|
|
151
|
+
* undone rather than paused: the label's own colour is transparent and its
|
|
152
|
+
* glyphs are painted by a clipped gradient, so a stopped animation would leave
|
|
153
|
+
* the text frozen wherever the sweep happened to be — including nowhere. */
|
|
154
|
+
@media (prefers-reduced-motion: reduce) {
|
|
155
|
+
.cue-elements-shimmer {
|
|
156
|
+
background-image: none;
|
|
157
|
+
color: var(--cue-elements-shimmer-ink);
|
|
158
|
+
animation: none;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.cue-elements-animate-in {
|
|
162
|
+
animation: none;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/* ── The mode ladder ───────────────────────────────────────────────────
|
|
167
|
+
*
|
|
168
|
+
* The most distinctive systemic idea in the field study, as four custom
|
|
169
|
+
* properties. Claude Code's panel puts `data-permission-mode` on the composer,
|
|
170
|
+
* the send button and the spinner, and each one re-derives its accent from it —
|
|
171
|
+
* six modes painted in four colours, because the thing a mode *means* is how
|
|
172
|
+
* much authority the run is holding and that ladder has four rungs everywhere.
|
|
173
|
+
* Cursor keeps the same idea as tokens: a quadruple per mode (`background`,
|
|
174
|
+
* `text`, `border`, `icon`) that the mode chip, the composer border and the
|
|
175
|
+
* transcript accent all read.
|
|
176
|
+
*
|
|
177
|
+
* So: sixteen properties, four per rung, declared on the element that carries
|
|
178
|
+
* `data-agent-mode`; then four aliases — the unprefixed quadruple — pointing at
|
|
179
|
+
* whichever rung the attribute names. A composer stamped
|
|
180
|
+
* `data-agent-mode="unsafe"` tints its focus ring, its send button and its rail
|
|
181
|
+
* out of `var(--cue-elements-mode-icon)` with no branch in any component, and a
|
|
182
|
+
* mode picker sitting inside it can still reach every rung by name.
|
|
183
|
+
*
|
|
184
|
+
* Three decisions worth writing down:
|
|
185
|
+
*
|
|
186
|
+
* - **They are declared here and not at `:root`.** A custom property's `var()`
|
|
187
|
+
* references are substituted at the element that declares them, so a rung
|
|
188
|
+
* declared at `:root` would resolve against the *page's* accent and a badge
|
|
189
|
+
* inside an `<AgentSurface skin="aui">` would paint in the console's palette
|
|
190
|
+
* while everything around it painted in the island's. Declared on
|
|
191
|
+
* `[data-agent-mode]`, each rung resolves wherever the attribute lands —
|
|
192
|
+
* which is the same reasoning that keeps the derived `*-soft` tokens out of
|
|
193
|
+
* the island block below.
|
|
194
|
+
*
|
|
195
|
+
* - **The default is neutral, not `manual`.** `[data-agent-mode="something-we-
|
|
196
|
+
* do-not-know"]` gets the family's plain chip, because the two failure modes
|
|
197
|
+
* are not symmetric: an unmapped mode painted brand-orange would be claiming
|
|
198
|
+
* the run asks before it acts, and that is exactly the claim nobody should
|
|
199
|
+
* make on a guess. These four neutrals are the same values
|
|
200
|
+
* `agent-mode-badge.tsx` falls back to when this stylesheet is not imported
|
|
201
|
+
* at all, so the unpainted and the unmapped chip look alike on purpose.
|
|
202
|
+
*
|
|
203
|
+
* - **`plan` is `--cue-stream`.** The reference paints it in the host's focus
|
|
204
|
+
* blue; this family's blue is the streaming hue the codemod already put every
|
|
205
|
+
* upstream `blue-500` on, and a second blue would be a second meaning.
|
|
206
|
+
*/
|
|
207
|
+
|
|
208
|
+
[data-agent-mode] {
|
|
209
|
+
--cue-elements-mode-manual-background: color-mix(in oklab, var(--cue-accent) 14%, transparent);
|
|
210
|
+
--cue-elements-mode-manual-text: var(--cue-fg);
|
|
211
|
+
--cue-elements-mode-manual-border: color-mix(in oklab, var(--cue-accent) 40%, transparent);
|
|
212
|
+
--cue-elements-mode-manual-icon: var(--cue-accent);
|
|
213
|
+
|
|
214
|
+
--cue-elements-mode-auto-edit-background: color-mix(in oklab, var(--cue-fg) 10%, transparent);
|
|
215
|
+
--cue-elements-mode-auto-edit-text: var(--cue-fg);
|
|
216
|
+
--cue-elements-mode-auto-edit-border: color-mix(in oklab, var(--cue-fg) 28%, transparent);
|
|
217
|
+
--cue-elements-mode-auto-edit-icon: var(--cue-fg);
|
|
218
|
+
|
|
219
|
+
--cue-elements-mode-plan-background: color-mix(in oklab, var(--cue-stream) 14%, transparent);
|
|
220
|
+
--cue-elements-mode-plan-text: var(--cue-fg);
|
|
221
|
+
--cue-elements-mode-plan-border: color-mix(in oklab, var(--cue-stream) 40%, transparent);
|
|
222
|
+
--cue-elements-mode-plan-icon: var(--cue-stream);
|
|
223
|
+
|
|
224
|
+
--cue-elements-mode-unsafe-background: color-mix(in oklab, var(--cue-danger) 16%, transparent);
|
|
225
|
+
--cue-elements-mode-unsafe-text: var(--cue-fg);
|
|
226
|
+
--cue-elements-mode-unsafe-border: color-mix(in oklab, var(--cue-danger) 45%, transparent);
|
|
227
|
+
--cue-elements-mode-unsafe-icon: var(--cue-danger);
|
|
228
|
+
|
|
229
|
+
/* The active four, which is what every mode-aware surface reads. */
|
|
230
|
+
--cue-elements-mode-background: var(--cue-surface-2);
|
|
231
|
+
--cue-elements-mode-text: var(--cue-fg-muted);
|
|
232
|
+
--cue-elements-mode-border: var(--cue-border);
|
|
233
|
+
--cue-elements-mode-icon: var(--cue-fg-subtle);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
[data-agent-mode="manual"] {
|
|
237
|
+
--cue-elements-mode-background: var(--cue-elements-mode-manual-background);
|
|
238
|
+
--cue-elements-mode-text: var(--cue-elements-mode-manual-text);
|
|
239
|
+
--cue-elements-mode-border: var(--cue-elements-mode-manual-border);
|
|
240
|
+
--cue-elements-mode-icon: var(--cue-elements-mode-manual-icon);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
[data-agent-mode="auto-edit"] {
|
|
244
|
+
--cue-elements-mode-background: var(--cue-elements-mode-auto-edit-background);
|
|
245
|
+
--cue-elements-mode-text: var(--cue-elements-mode-auto-edit-text);
|
|
246
|
+
--cue-elements-mode-border: var(--cue-elements-mode-auto-edit-border);
|
|
247
|
+
--cue-elements-mode-icon: var(--cue-elements-mode-auto-edit-icon);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
[data-agent-mode="plan"] {
|
|
251
|
+
--cue-elements-mode-background: var(--cue-elements-mode-plan-background);
|
|
252
|
+
--cue-elements-mode-text: var(--cue-elements-mode-plan-text);
|
|
253
|
+
--cue-elements-mode-border: var(--cue-elements-mode-plan-border);
|
|
254
|
+
--cue-elements-mode-icon: var(--cue-elements-mode-plan-icon);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
[data-agent-mode="unsafe"] {
|
|
258
|
+
--cue-elements-mode-background: var(--cue-elements-mode-unsafe-background);
|
|
259
|
+
--cue-elements-mode-text: var(--cue-elements-mode-unsafe-text);
|
|
260
|
+
--cue-elements-mode-border: var(--cue-elements-mode-unsafe-border);
|
|
261
|
+
--cue-elements-mode-icon: var(--cue-elements-mode-unsafe-icon);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/* ── Supersede mode: assistant-ui's values ─────────────────────────────
|
|
265
|
+
*
|
|
266
|
+
* The whole of upstream's colour system is four shadcn variables —
|
|
267
|
+
* `--background`, `--foreground`, `--popover`, `--border` — plus four literal
|
|
268
|
+
* Tailwind hues (internals report §2 and §3). Below, those eight are spelled
|
|
269
|
+
* into the cue tokens the emitted tree reads, so one DOM paints two ways.
|
|
270
|
+
*
|
|
271
|
+
* Two are not literal transcriptions and say so:
|
|
272
|
+
*
|
|
273
|
+
* - The ink ramp. Upstream has no muted/subtle tokens; it writes
|
|
274
|
+
* `text-foreground/45` and `text-foreground/30` by hand, ~380 times between
|
|
275
|
+
* them. The two alphas here are the centroids of those two clusters, derived
|
|
276
|
+
* from the island's own foreground so light and dark need one rule.
|
|
277
|
+
* - `--cue-sunken`, the terminal slab. Upstream paints it
|
|
278
|
+
* `bg-foreground dark:bg-popover` — near-black in light — while keeping the
|
|
279
|
+
* text on `--foreground`, which only reads because its own demos are dark.
|
|
280
|
+
* The vendored tree inherits that ink, so the island spends shadcn's own
|
|
281
|
+
* recessed greys instead and the slab stays both a slab and readable.
|
|
282
|
+
*
|
|
283
|
+
* What is NOT here, and why — the same accounting the metrics block below
|
|
284
|
+
* carries for `--radius-*`:
|
|
285
|
+
*
|
|
286
|
+
* - **Absent by choice:** `--cue-busy`, `--cue-info`, `--cue-selection`,
|
|
287
|
+
* `--cue-focus`, `--cue-scrim`. No element in this family reads them — the
|
|
288
|
+
* codemod maps upstream's blue onto `--cue-stream`, and upstream has no
|
|
289
|
+
* selection or scrim of its own to transcribe. The consequence is worth
|
|
290
|
+
* knowing before you mix families: a *cue* component rendered inside an
|
|
291
|
+
* island — a `Chip tone="busy"`, a `Toast`, anything that draws a focus ring
|
|
292
|
+
* — paints half in each palette, its ground and ink from assistant-ui and its
|
|
293
|
+
* tone from the console's theme. That is a mixed surface, not a bug, and the
|
|
294
|
+
* island is not the place to fix it: re-pointing the whole contract here
|
|
295
|
+
* would make this a theme, which is exactly what `AgentSurface` is documented
|
|
296
|
+
* not to be.
|
|
297
|
+
*
|
|
298
|
+
* - **Absent by construction:** every derived token —
|
|
299
|
+
* `--cue-ok-soft`, `--cue-stream-border`, `--cue-accent-soft`, `--cue-hair`,
|
|
300
|
+
* `--cue-row-hover` and the rest. They cannot follow the island. Each is a
|
|
301
|
+
* `color-mix()` over `var(--cue-<base>)` declared on the theme block at
|
|
302
|
+
* `:root`, and a custom property's `var()` references are substituted at the
|
|
303
|
+
* element that declares them — a descendant inherits the resolved colour, not
|
|
304
|
+
* the recipe. So a `bg-ok-soft` inside an island would keep painting the
|
|
305
|
+
* console's green while every `bg-ok/10` beside it turned assistant-ui's, and
|
|
306
|
+
* nothing anywhere would be red. (Restating all sixteen derivations in both
|
|
307
|
+
* halves of this island would work, and is the trade the metrics block makes
|
|
308
|
+
* for three radii; sixteen colours in two modes is a second palette to keep
|
|
309
|
+
* in step, which is how two copies drift.) The family is therefore
|
|
310
|
+
* written in the alpha form — `bg-ok/10`, `border-stream/30`, which
|
|
311
|
+
* composites at the point of use — and `scripts/elements-sync/rules.mjs`
|
|
312
|
+
* refuses to emit a derived token at all: the sync fails loudly rather than
|
|
313
|
+
* writing a file whose island silently half-applies.
|
|
314
|
+
*/
|
|
315
|
+
[data-cue-skin="aui"] {
|
|
316
|
+
color-scheme: dark;
|
|
317
|
+
--cue-bg: oklch(0.141 0.005 285.823);
|
|
318
|
+
--cue-fg: oklch(0.985 0 0);
|
|
319
|
+
--cue-fg-muted: color-mix(in oklab, var(--cue-fg) 50%, transparent);
|
|
320
|
+
--cue-fg-subtle: color-mix(in oklab, var(--cue-fg) 32%, transparent);
|
|
321
|
+
--cue-sunken: oklch(0.141 0.005 285.823);
|
|
322
|
+
--cue-surface-1: oklch(0.21 0.006 285.885);
|
|
323
|
+
--cue-surface-2: color-mix(in oklab, var(--cue-fg) 6%, transparent);
|
|
324
|
+
--cue-surface-3: color-mix(in oklab, var(--cue-fg) 15%, transparent);
|
|
325
|
+
--cue-border: color-mix(in oklab, oklch(1 0 0 / 10%) 60%, transparent);
|
|
326
|
+
--cue-border-strong: color-mix(in oklab, var(--cue-fg) 20%, transparent);
|
|
327
|
+
--cue-border-overlay: color-mix(in oklab, oklch(1 0 0 / 10%) 60%, transparent);
|
|
328
|
+
--cue-accent: var(--cue-fg);
|
|
329
|
+
--cue-accent-hover: color-mix(in oklab, var(--cue-fg) 90%, transparent);
|
|
330
|
+
--cue-accent-fg: var(--cue-bg);
|
|
331
|
+
--cue-ok: oklch(0.765 0.177 163.223);
|
|
332
|
+
--cue-danger: oklch(0.704 0.191 22.216);
|
|
333
|
+
/* The ink on the red. Upstream has no such token — it writes `text-white` on
|
|
334
|
+
* `bg-destructive` and its own demos are dark, where that happens to read.
|
|
335
|
+
* Here the two halves of the island disagree, which is the whole reason the
|
|
336
|
+
* token exists: this dark red is light enough to carry the island's ground
|
|
337
|
+
* (6.93:1) and the light half's red is bright enough that the same white ink
|
|
338
|
+
* reaches only 3.82:1 and its ink has to be the island's type instead. */
|
|
339
|
+
--cue-danger-fg: var(--cue-bg);
|
|
340
|
+
--cue-warn: oklch(0.828 0.189 84.429);
|
|
341
|
+
/* The ink on the amber, here for the same reason: this block re-tints
|
|
342
|
+
* `--cue-warn`, so an ink the app chose against its own amber would be an ink
|
|
343
|
+
* chosen against a colour nobody is looking at in here. The amber splits the
|
|
344
|
+
* same way the red above does, with more room on both sides — the island's
|
|
345
|
+
* ground on this half at 11.56:1, its type on the light half at 9.25:1. */
|
|
346
|
+
--cue-warn-fg: var(--cue-bg);
|
|
347
|
+
--cue-stream: oklch(0.707 0.165 254.624);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/* The light half. Two selectors, because the stamp lands two ways: on an
|
|
351
|
+
* ancestor for an app in light mode, and on the island itself for a portal
|
|
352
|
+
* container, which carries every axis at once. */
|
|
353
|
+
[data-mode="light"] [data-cue-skin="aui"],
|
|
354
|
+
[data-cue-skin="aui"][data-mode="light"] {
|
|
355
|
+
color-scheme: light;
|
|
356
|
+
--cue-bg: oklch(1 0 0);
|
|
357
|
+
--cue-fg: oklch(0.141 0.005 285.823);
|
|
358
|
+
--cue-fg-muted: color-mix(in oklab, var(--cue-fg) 50%, transparent);
|
|
359
|
+
--cue-fg-subtle: color-mix(in oklab, var(--cue-fg) 32%, transparent);
|
|
360
|
+
--cue-sunken: oklch(0.967 0.001 286.375);
|
|
361
|
+
--cue-surface-1: oklch(1 0 0);
|
|
362
|
+
--cue-surface-2: color-mix(in oklab, var(--cue-fg) 6%, transparent);
|
|
363
|
+
--cue-surface-3: color-mix(in oklab, var(--cue-fg) 15%, transparent);
|
|
364
|
+
--cue-border: color-mix(in oklab, oklch(0.92 0.004 286.32) 60%, transparent);
|
|
365
|
+
--cue-border-strong: color-mix(in oklab, var(--cue-fg) 20%, transparent);
|
|
366
|
+
--cue-border-overlay: color-mix(in oklab, oklch(0.92 0.004 286.32) 60%, transparent);
|
|
367
|
+
--cue-accent: var(--cue-fg);
|
|
368
|
+
--cue-accent-hover: color-mix(in oklab, var(--cue-fg) 90%, transparent);
|
|
369
|
+
--cue-accent-fg: var(--cue-bg);
|
|
370
|
+
--cue-ok: oklch(0.696 0.17 162.48);
|
|
371
|
+
--cue-danger: oklch(0.637 0.237 25.331);
|
|
372
|
+
/* The other half of the asymmetry above: dark ink on the light half's red. */
|
|
373
|
+
--cue-danger-fg: var(--cue-fg);
|
|
374
|
+
--cue-warn: oklch(0.769 0.188 70.08);
|
|
375
|
+
/* And the amber's other half: the island's type on the light amber, 9.25:1. */
|
|
376
|
+
--cue-warn-fg: var(--cue-fg);
|
|
377
|
+
--cue-stream: oklch(0.623 0.214 259.815);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
/* And the same again for an app whose mode is `system`, mirroring the
|
|
381
|
+
* `mode-light` variant in `styles.css`. */
|
|
382
|
+
@media (prefers-color-scheme: light) {
|
|
383
|
+
[data-mode="system"] [data-cue-skin="aui"],
|
|
384
|
+
[data-cue-skin="aui"][data-mode="system"] {
|
|
385
|
+
color-scheme: light;
|
|
386
|
+
--cue-bg: oklch(1 0 0);
|
|
387
|
+
--cue-fg: oklch(0.141 0.005 285.823);
|
|
388
|
+
--cue-fg-muted: color-mix(in oklab, var(--cue-fg) 50%, transparent);
|
|
389
|
+
--cue-fg-subtle: color-mix(in oklab, var(--cue-fg) 32%, transparent);
|
|
390
|
+
--cue-sunken: oklch(0.967 0.001 286.375);
|
|
391
|
+
--cue-surface-1: oklch(1 0 0);
|
|
392
|
+
--cue-surface-2: color-mix(in oklab, var(--cue-fg) 6%, transparent);
|
|
393
|
+
--cue-surface-3: color-mix(in oklab, var(--cue-fg) 15%, transparent);
|
|
394
|
+
--cue-border: color-mix(in oklab, oklch(0.92 0.004 286.32) 60%, transparent);
|
|
395
|
+
--cue-border-strong: color-mix(in oklab, var(--cue-fg) 20%, transparent);
|
|
396
|
+
--cue-border-overlay: color-mix(in oklab, oklch(0.92 0.004 286.32) 60%, transparent);
|
|
397
|
+
--cue-accent: var(--cue-fg);
|
|
398
|
+
--cue-accent-hover: color-mix(in oklab, var(--cue-fg) 90%, transparent);
|
|
399
|
+
--cue-accent-fg: var(--cue-bg);
|
|
400
|
+
--cue-ok: oklch(0.696 0.17 162.48);
|
|
401
|
+
--cue-danger: oklch(0.637 0.237 25.331);
|
|
402
|
+
/* The other half of the asymmetry above: dark ink on the light half's red. */
|
|
403
|
+
--cue-danger-fg: var(--cue-fg);
|
|
404
|
+
--cue-warn: oklch(0.769 0.188 70.08);
|
|
405
|
+
/* And the amber's other half: the island's type on the light amber, 9.25:1. */
|
|
406
|
+
--cue-warn-fg: var(--cue-fg);
|
|
407
|
+
--cue-stream: oklch(0.623 0.214 259.815);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/* ── Metrics ───────────────────────────────────────────────────────────
|
|
412
|
+
*
|
|
413
|
+
* `fidelity="upstream"` pins geometry to assistant-ui's, which means the
|
|
414
|
+
* density ladder stops here. Three groups of numbers, all of them upstream's:
|
|
415
|
+
*
|
|
416
|
+
* - Radii, from shadcn's `--radius: 0.625rem` ladder as the codemod banded it:
|
|
417
|
+
* `rounded-2xl` (18px) became the overlay rung, `rounded-xl` (14px) the
|
|
418
|
+
* surface rung, and bare `rounded` (4px) the control rung.
|
|
419
|
+
* - Type, from the literal pixel sizes the codemod could not keep: `text-xs`
|
|
420
|
+
* is 12px, `text-[13px]` and `text-[13.5px]` share the body rung, `mono` is
|
|
421
|
+
* 11px. Written as pixels rather than rem multiples, which is also what pins
|
|
422
|
+
* the font scale.
|
|
423
|
+
* - `--spacing`, Tailwind's own default, which every `gap-*`, `p-*` and
|
|
424
|
+
* `size-*` in the family multiplies.
|
|
425
|
+
*
|
|
426
|
+
* Both halves of the radius ladder are set, and that is not redundancy. cue's
|
|
427
|
+
* Tailwind bridge declares `--radius-overlay` as
|
|
428
|
+
* `calc(var(--cue-radius-overlay) * var(--cue-radius-scale))`, and Tailwind
|
|
429
|
+
* emits that on `:root` — where the substitution happens. A descendant
|
|
430
|
+
* inherits the answer, not the sum, so an island that re-pointed only the
|
|
431
|
+
* `--cue-` token would change nothing a `rounded-(--radius-overlay)` renders.
|
|
432
|
+
*/
|
|
433
|
+
[data-cue-fidelity="upstream"] {
|
|
434
|
+
--spacing: 0.25rem;
|
|
435
|
+
--cue-radius-scale: 1;
|
|
436
|
+
--cue-radius-control: 0.25rem;
|
|
437
|
+
--cue-radius-surface: 0.875rem;
|
|
438
|
+
--cue-radius-overlay: 1.125rem;
|
|
439
|
+
--radius-control: 0.25rem;
|
|
440
|
+
--radius-surface: 0.875rem;
|
|
441
|
+
--radius-overlay: 1.125rem;
|
|
442
|
+
--cue-text-micro: 10px;
|
|
443
|
+
--cue-text-label: 11px;
|
|
444
|
+
--cue-text-ui: 12px;
|
|
445
|
+
--cue-text-body: 13.5px;
|
|
446
|
+
--cue-text-emphasis: 16px;
|
|
447
|
+
--cue-text-title: 24px;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/* `fidelity="cue-metrics"` is the default and changes only one thing — but it
|
|
451
|
+
* is the thing the density ladder could not otherwise reach. Every box size and
|
|
452
|
+
* gap in the family is a Tailwind spacing utility, which multiplies
|
|
453
|
+
* `--spacing`; the ladder's own `--cue-space-*` tokens are never named by
|
|
454
|
+
* vendored code. Scaling `--spacing` by `--cue-density` is what makes an island
|
|
455
|
+
* tighten with the console around it. At the default rung the multiplier is 1,
|
|
456
|
+
* so this costs nothing until somebody changes density. */
|
|
457
|
+
[data-cue-fidelity="cue-metrics"] {
|
|
458
|
+
--spacing: calc(0.25rem * var(--cue-density, 1));
|
|
459
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/elements/elicitation-form.d.ts
|
|
3
|
+
type ElicitationState = "request" | "accepted" | "declined";
|
|
4
|
+
interface ElicitationField {
|
|
5
|
+
/** Field name sent back to the server. */
|
|
6
|
+
name: string;
|
|
7
|
+
/** Label shown above the control. */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Current value, already resolved to what should be displayed. */
|
|
10
|
+
value: string;
|
|
11
|
+
/** Chooses the control: a value chip, a row of options, or a switch. */
|
|
12
|
+
kind: "text" | "choice" | "toggle";
|
|
13
|
+
/** Choices rendered when kind is choice. */
|
|
14
|
+
options?: readonly string[];
|
|
15
|
+
/** Marks the label with an asterisk. */
|
|
16
|
+
required?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A server pausing mid-tool-call to ask you for the fields it still needs.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* import { ElicitationForm } from "@cueplusplus/ui/elements";
|
|
23
|
+
*
|
|
24
|
+
* <ElicitationForm
|
|
25
|
+
* server="github-mcp"
|
|
26
|
+
* message="Confirm where the release notes should be published."
|
|
27
|
+
* fields={fields}
|
|
28
|
+
* state="request"
|
|
29
|
+
* onAccept={send}
|
|
30
|
+
* onDecline={decline}
|
|
31
|
+
* />
|
|
32
|
+
*/
|
|
33
|
+
declare function ElicitationForm({ server, message, fields, state, onAccept, onDecline, className, ...props }: Omit<ComponentProps<"div">, "children" | "server" | "message" | "fields" | "state" | "onAccept" | "onDecline"> & {
|
|
34
|
+
/** Which server paused to ask. */
|
|
35
|
+
server: string;
|
|
36
|
+
/** Why the input is needed, in the server's words. */
|
|
37
|
+
message: string;
|
|
38
|
+
/** The schema the server sent, already resolved to display values. */
|
|
39
|
+
fields: readonly ElicitationField[];
|
|
40
|
+
/** Swaps the action row for the outcome once the user answers. */
|
|
41
|
+
state: ElicitationState;
|
|
42
|
+
/** Called when the filled form is sent back. */
|
|
43
|
+
onAccept?: () => void;
|
|
44
|
+
/** Called when the request is refused. */
|
|
45
|
+
onDecline?: () => void;
|
|
46
|
+
}): import("react").JSX.Element;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { ElicitationField, ElicitationForm, ElicitationState };
|