@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,95 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { mono } from "./surfaces.js";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/elements/transcript-rules.tsx
|
|
7
|
+
/**
|
|
8
|
+
* The rule that says the day changed: a label centred between two hairlines.
|
|
9
|
+
*
|
|
10
|
+
* One row, placed by the caller. That is the difference between this and
|
|
11
|
+
* `DaySeparator`, which takes a whole message list and inserts its own rules:
|
|
12
|
+
* a transcript assembled from a row union — the shape every shipping agent UI
|
|
13
|
+
* converged on — needs the boundary as a *member of that union*, not as a
|
|
14
|
+
* component that owns the list around it.
|
|
15
|
+
*
|
|
16
|
+
* It is a `role="separator"` carrying its label as an accessible name, and the
|
|
17
|
+
* text inside it is `aria-hidden`. A reader hears "Today, separator" once
|
|
18
|
+
* rather than twice, and the hairlines are never announced at all.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* import { TimeBoundary } from "@cueplusplus/ui/elements";
|
|
22
|
+
*
|
|
23
|
+
* <TimeBoundary label="Today" dateTime="2026-08-22" />
|
|
24
|
+
*/
|
|
25
|
+
const TimeBoundary = React.forwardRef(function TimeBoundary({ label, dateTime, className, ...elementProps }, ref) {
|
|
26
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
27
|
+
ref,
|
|
28
|
+
role: "separator",
|
|
29
|
+
"aria-label": label,
|
|
30
|
+
"data-slot": "time-boundary",
|
|
31
|
+
className: cn("flex w-full items-center gap-2.5 py-1", className),
|
|
32
|
+
...elementProps,
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ jsx("span", {
|
|
35
|
+
"aria-hidden": true,
|
|
36
|
+
className: "bg-border h-px flex-1"
|
|
37
|
+
}),
|
|
38
|
+
dateTime === void 0 ? /* @__PURE__ */ jsx("span", {
|
|
39
|
+
"aria-hidden": true,
|
|
40
|
+
className: cn(mono, "text-fg-subtle shrink-0"),
|
|
41
|
+
children: label
|
|
42
|
+
}) : /* @__PURE__ */ jsx("time", {
|
|
43
|
+
"aria-hidden": true,
|
|
44
|
+
dateTime,
|
|
45
|
+
className: cn(mono, "text-fg-subtle shrink-0"),
|
|
46
|
+
children: label
|
|
47
|
+
}),
|
|
48
|
+
/* @__PURE__ */ jsx("span", {
|
|
49
|
+
"aria-hidden": true,
|
|
50
|
+
className: "bg-border h-px flex-1"
|
|
51
|
+
})
|
|
52
|
+
]
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* The rule that says "you have read down to here": an accented line with its
|
|
57
|
+
* label at the end.
|
|
58
|
+
*
|
|
59
|
+
* The second row of Cursor's union that no catalogue ships, and the one with a
|
|
60
|
+
* rule of its own that is easy to get wrong: it marks where the reader *was*,
|
|
61
|
+
* so it does not move while they read. A divider that chased the last-seen
|
|
62
|
+
* message would vanish the moment it appeared, which is why this component
|
|
63
|
+
* takes no messages, no counts and no scroll position — the caller decides
|
|
64
|
+
* where it goes and when it leaves, and the row is only ever the mark.
|
|
65
|
+
*
|
|
66
|
+
* Accented rather than neutral, and asymmetric rather than centred, so it can
|
|
67
|
+
* never be mistaken for a {@link TimeBoundary} two rows above it.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* import { UnreadDivider } from "@cueplusplus/ui/elements";
|
|
71
|
+
*
|
|
72
|
+
* <UnreadDivider />
|
|
73
|
+
* @example
|
|
74
|
+
* <UnreadDivider label="New since you left" />
|
|
75
|
+
*/
|
|
76
|
+
const UnreadDivider = React.forwardRef(function UnreadDivider({ label = "New", className, ...elementProps }, ref) {
|
|
77
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
78
|
+
ref,
|
|
79
|
+
role: "separator",
|
|
80
|
+
"aria-label": label,
|
|
81
|
+
"data-slot": "unread-divider",
|
|
82
|
+
className: cn("flex w-full items-center gap-2.5 py-1", className),
|
|
83
|
+
...elementProps,
|
|
84
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
85
|
+
"aria-hidden": true,
|
|
86
|
+
className: "bg-accent/40 h-px flex-1"
|
|
87
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
88
|
+
"aria-hidden": true,
|
|
89
|
+
className: cn(mono, "text-accent shrink-0 tracking-[0.15em] uppercase"),
|
|
90
|
+
children: label
|
|
91
|
+
})]
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
//#endregion
|
|
95
|
+
export { TimeBoundary, UnreadDivider };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { TurnActionLabels } from "./vocabulary.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/elements/turn-footer.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A turn's time, at the three levels Cursor shows it at.
|
|
6
|
+
*
|
|
7
|
+
* Three, and each answers a different question. The label answers "how long
|
|
8
|
+
* ago" at a glance; the title answers "exactly when" on hover, where it costs
|
|
9
|
+
* nothing; the subtitle answers "how long did it take", which is the only one
|
|
10
|
+
* of the three that is about the *agent* rather than about the clock.
|
|
11
|
+
*/
|
|
12
|
+
interface TurnTimestamp {
|
|
13
|
+
/** The glanceable one, always shown: `2m ago`. */
|
|
14
|
+
label: string;
|
|
15
|
+
/** The exact one, carried on the row's `title` attribute: `Today at 2:14 PM`. */
|
|
16
|
+
title?: string;
|
|
17
|
+
/** How long the work took: `Worked for 2m 15s`. Shown beside the label. */
|
|
18
|
+
subtitle?: string;
|
|
19
|
+
}
|
|
20
|
+
interface TurnFooterProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
|
|
21
|
+
/** Copy the turn. The control exists only when this is given. */
|
|
22
|
+
onCopy?: () => void;
|
|
23
|
+
/** Whether the clipboard has it: the copy glyph crossfades to a check. */
|
|
24
|
+
copied?: boolean;
|
|
25
|
+
/** Quote this turn into the composer. The control exists only when this is given. */
|
|
26
|
+
onReply?: () => void;
|
|
27
|
+
/** Branch the conversation from this turn. The control exists only when this is given. */
|
|
28
|
+
onFork?: () => void;
|
|
29
|
+
/** Open the overflow menu — Cursor hangs "Copy request ID" off it. */
|
|
30
|
+
onMore?: () => void;
|
|
31
|
+
/** When the turn happened and how long it took. See {@link TurnTimestamp}. */
|
|
32
|
+
timestamp?: TurnTimestamp;
|
|
33
|
+
/**
|
|
34
|
+
* The accessible names of the four controls, merged over
|
|
35
|
+
* `TURN_ACTION_LABELS`. Partial on purpose: a console localising two of them
|
|
36
|
+
* should not have to restate the other three.
|
|
37
|
+
*/
|
|
38
|
+
labels?: Partial<TurnActionLabels>;
|
|
39
|
+
/** What the group of controls is called. Defaults to `Turn actions`. */
|
|
40
|
+
label?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The row under a finished turn: copy, reply, fork, and when it happened.
|
|
44
|
+
*
|
|
45
|
+
* Every control is opt-in — passing no handler draws no button — because the
|
|
46
|
+
* four are not one set. A read-only shared transcript has a copy button and
|
|
47
|
+
* nothing else; a console with branching has all four. A footer that drew
|
|
48
|
+
* disabled controls for the ones a product does not have would be a row of
|
|
49
|
+
* things nobody can press.
|
|
50
|
+
*
|
|
51
|
+
* The controls are drawn plainly rather than revealed on hover. Revealing them
|
|
52
|
+
* is a decision about the *turn*, not about this row: Cursor keys it off the
|
|
53
|
+
* turn's own hover state and Cline's stylesheet explains why the reveal must be
|
|
54
|
+
* instant — "a fade on hover chrome reads as lag, not polish" — and float over
|
|
55
|
+
* what follows rather than reserving space. Both are two lines of CSS on the
|
|
56
|
+
* turn, and neither is something this component can decide from inside itself.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* import { TurnFooter } from "@cueplusplus/ui/elements";
|
|
60
|
+
*
|
|
61
|
+
* <TurnFooter
|
|
62
|
+
* onCopy={copy}
|
|
63
|
+
* copied={copied}
|
|
64
|
+
* onReply={quote}
|
|
65
|
+
* onFork={branch}
|
|
66
|
+
* timestamp={{ label: "2m ago", title: "Today at 2:14 PM", subtitle: "Worked for 2m 15s" }}
|
|
67
|
+
* />
|
|
68
|
+
* @example
|
|
69
|
+
* // A shared transcript: one control, and the time it was written.
|
|
70
|
+
* <TurnFooter onCopy={copy} timestamp={{ label: "14 March" }} />
|
|
71
|
+
*/
|
|
72
|
+
declare const TurnFooter: React.ForwardRefExoticComponent<TurnFooterProps & React.RefAttributes<HTMLDivElement>>;
|
|
73
|
+
//#endregion
|
|
74
|
+
export { TurnFooter, TurnFooterProps, TurnTimestamp };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { ghostButton, iconSwap, iconSwapIn, iconSwapOut, mono } from "./surfaces.js";
|
|
4
|
+
import { TURN_ACTION_LABELS } from "./vocabulary.js";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { CheckIcon, CopyIcon, CornerUpLeftIcon, EllipsisIcon, GitBranchIcon } from "lucide-react";
|
|
8
|
+
//#region src/elements/turn-footer.tsx
|
|
9
|
+
/**
|
|
10
|
+
* The row under a finished turn: copy, reply, fork, and when it happened.
|
|
11
|
+
*
|
|
12
|
+
* Every control is opt-in — passing no handler draws no button — because the
|
|
13
|
+
* four are not one set. A read-only shared transcript has a copy button and
|
|
14
|
+
* nothing else; a console with branching has all four. A footer that drew
|
|
15
|
+
* disabled controls for the ones a product does not have would be a row of
|
|
16
|
+
* things nobody can press.
|
|
17
|
+
*
|
|
18
|
+
* The controls are drawn plainly rather than revealed on hover. Revealing them
|
|
19
|
+
* is a decision about the *turn*, not about this row: Cursor keys it off the
|
|
20
|
+
* turn's own hover state and Cline's stylesheet explains why the reveal must be
|
|
21
|
+
* instant — "a fade on hover chrome reads as lag, not polish" — and float over
|
|
22
|
+
* what follows rather than reserving space. Both are two lines of CSS on the
|
|
23
|
+
* turn, and neither is something this component can decide from inside itself.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* import { TurnFooter } from "@cueplusplus/ui/elements";
|
|
27
|
+
*
|
|
28
|
+
* <TurnFooter
|
|
29
|
+
* onCopy={copy}
|
|
30
|
+
* copied={copied}
|
|
31
|
+
* onReply={quote}
|
|
32
|
+
* onFork={branch}
|
|
33
|
+
* timestamp={{ label: "2m ago", title: "Today at 2:14 PM", subtitle: "Worked for 2m 15s" }}
|
|
34
|
+
* />
|
|
35
|
+
* @example
|
|
36
|
+
* // A shared transcript: one control, and the time it was written.
|
|
37
|
+
* <TurnFooter onCopy={copy} timestamp={{ label: "14 March" }} />
|
|
38
|
+
*/
|
|
39
|
+
const TurnFooter = React.forwardRef(function TurnFooter({ onCopy, copied = false, onReply, onFork, onMore, timestamp, labels, label = "Turn actions", className, ...elementProps }, ref) {
|
|
40
|
+
const copy = {
|
|
41
|
+
...TURN_ACTION_LABELS,
|
|
42
|
+
...labels
|
|
43
|
+
};
|
|
44
|
+
const buttonClassName = cn(ghostButton, "size-7");
|
|
45
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
46
|
+
ref,
|
|
47
|
+
role: "group",
|
|
48
|
+
"aria-label": label,
|
|
49
|
+
"data-slot": "turn-footer",
|
|
50
|
+
className: cn("flex w-full items-center gap-1", className),
|
|
51
|
+
...elementProps,
|
|
52
|
+
children: [
|
|
53
|
+
onCopy === void 0 ? null : /* @__PURE__ */ jsxs("button", {
|
|
54
|
+
type: "button",
|
|
55
|
+
"aria-label": copied ? copy.copied : copy.copy,
|
|
56
|
+
onClick: onCopy,
|
|
57
|
+
className: cn(buttonClassName, "grid place-items-center", copied && "text-ok"),
|
|
58
|
+
children: [/* @__PURE__ */ jsx(CopyIcon, { className: cn(iconSwap, "size-3.5", copied ? iconSwapOut : iconSwapIn) }), /* @__PURE__ */ jsx(CheckIcon, { className: cn(iconSwap, "size-3.5", copied ? iconSwapIn : iconSwapOut) })]
|
|
59
|
+
}),
|
|
60
|
+
onReply === void 0 ? null : /* @__PURE__ */ jsx("button", {
|
|
61
|
+
type: "button",
|
|
62
|
+
"aria-label": copy.reply,
|
|
63
|
+
onClick: onReply,
|
|
64
|
+
className: buttonClassName,
|
|
65
|
+
children: /* @__PURE__ */ jsx(CornerUpLeftIcon, { className: "size-3.5" })
|
|
66
|
+
}),
|
|
67
|
+
onFork === void 0 ? null : /* @__PURE__ */ jsx("button", {
|
|
68
|
+
type: "button",
|
|
69
|
+
"aria-label": copy.fork,
|
|
70
|
+
onClick: onFork,
|
|
71
|
+
className: buttonClassName,
|
|
72
|
+
children: /* @__PURE__ */ jsx(GitBranchIcon, { className: "size-3.5" })
|
|
73
|
+
}),
|
|
74
|
+
onMore === void 0 ? null : /* @__PURE__ */ jsx("button", {
|
|
75
|
+
type: "button",
|
|
76
|
+
"aria-label": copy.more,
|
|
77
|
+
onClick: onMore,
|
|
78
|
+
className: buttonClassName,
|
|
79
|
+
children: /* @__PURE__ */ jsx(EllipsisIcon, { className: "size-3.5" })
|
|
80
|
+
}),
|
|
81
|
+
timestamp === void 0 ? null : /* @__PURE__ */ jsxs("span", {
|
|
82
|
+
"data-slot": "turn-timestamp",
|
|
83
|
+
title: timestamp.title,
|
|
84
|
+
className: cn(mono, "text-fg-subtle ms-auto flex min-w-0 items-baseline gap-1.5"),
|
|
85
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
86
|
+
className: "shrink-0",
|
|
87
|
+
children: timestamp.label
|
|
88
|
+
}), timestamp.subtitle === void 0 ? null : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
|
|
89
|
+
"aria-hidden": true,
|
|
90
|
+
className: "shrink-0",
|
|
91
|
+
children: "·"
|
|
92
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
93
|
+
className: "min-w-0 truncate",
|
|
94
|
+
children: timestamp.subtitle
|
|
95
|
+
})] })]
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
//#endregion
|
|
101
|
+
export { TurnFooter };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/elements/typing-indicator.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* The classic three dots, tuned to read as presence rather than noise.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import { TypingIndicator } from "@cueplusplus/ui/elements";
|
|
8
|
+
*
|
|
9
|
+
* <TypingIndicator />
|
|
10
|
+
*/
|
|
11
|
+
declare function TypingIndicator({ variant, className, ...props }: Omit<ComponentProps<"div">, "children" | "variant" | "role" | "aria-label"> & {
|
|
12
|
+
/** bubble wraps the dots in a pill; bare renders only the three dots. */
|
|
13
|
+
variant?: "bubble" | "bare";
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { TypingIndicator };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { paper } from "./surfaces.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/elements/typing-indicator.tsx
|
|
6
|
+
const DOT_DELAYS = [
|
|
7
|
+
"-0.32s",
|
|
8
|
+
"-0.16s",
|
|
9
|
+
"0s"
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* The classic three dots, tuned to read as presence rather than noise.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { TypingIndicator } from "@cueplusplus/ui/elements";
|
|
16
|
+
*
|
|
17
|
+
* <TypingIndicator />
|
|
18
|
+
*/
|
|
19
|
+
function TypingIndicator({ variant = "bubble", className, ...props }) {
|
|
20
|
+
const dots = DOT_DELAYS.map((delay) => /* @__PURE__ */ jsx("span", {
|
|
21
|
+
"aria-hidden": true,
|
|
22
|
+
className: "bg-surface-3 size-1.5 animate-bounce rounded-full motion-reduce:animate-none",
|
|
23
|
+
style: {
|
|
24
|
+
animationDelay: delay,
|
|
25
|
+
animationDuration: "1.1s"
|
|
26
|
+
}
|
|
27
|
+
}, delay));
|
|
28
|
+
if (variant === "bare") return /* @__PURE__ */ jsx("div", {
|
|
29
|
+
"data-slot": "typing-indicator",
|
|
30
|
+
"data-variant": "bare",
|
|
31
|
+
role: "status",
|
|
32
|
+
"aria-label": "Assistant is typing",
|
|
33
|
+
className: cn("flex gap-1", className),
|
|
34
|
+
...props,
|
|
35
|
+
children: dots
|
|
36
|
+
});
|
|
37
|
+
return /* @__PURE__ */ jsx("div", {
|
|
38
|
+
"data-slot": "typing-indicator",
|
|
39
|
+
"data-variant": "bubble",
|
|
40
|
+
className: cn(paper, "w-fit rounded-full px-4 py-3.5", className),
|
|
41
|
+
...props,
|
|
42
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
43
|
+
role: "status",
|
|
44
|
+
"aria-label": "Assistant is typing",
|
|
45
|
+
className: "flex gap-1",
|
|
46
|
+
children: dots
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { TypingIndicator };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { VerdictLabels } from "./vocabulary.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/elements/verdict-row.d.ts
|
|
4
|
+
/** One thing the scorer thinks is probably wrong, and how sure it is. */
|
|
5
|
+
interface VerdictIssue {
|
|
6
|
+
/** What the problem is, in the scorer's own words: `Missing error handling`. */
|
|
7
|
+
label: string;
|
|
8
|
+
/**
|
|
9
|
+
* How likely it is, `0`–`1`. Drawn as a whole percentage beside the label and
|
|
10
|
+
* normalised the same defensive way the score is.
|
|
11
|
+
*/
|
|
12
|
+
probability: number;
|
|
13
|
+
}
|
|
14
|
+
/** How a verdict reads: settled, doubtful, or bad. */
|
|
15
|
+
type VerdictTone = "ok" | "warn" | "danger";
|
|
16
|
+
/**
|
|
17
|
+
* How many of the five stars a score earns: `0`–`5`.
|
|
18
|
+
*
|
|
19
|
+
* OpenHands' own arithmetic, defences included. A score arrives from a model
|
|
20
|
+
* over a network, so `NaN`, `Infinity` and `-3` are all things that happen, and
|
|
21
|
+
* every one of them has to become a number of stars rather than a row that
|
|
22
|
+
* throws or a rating that renders `NaN`. Non-finite scores round to nothing:
|
|
23
|
+
* a caller with no score should draw no row at all rather than a row that says
|
|
24
|
+
* the work was bad.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* verdictStars(0.82); // 4
|
|
28
|
+
* verdictStars(1.5); // 5 — clamped, not trusted
|
|
29
|
+
* verdictStars(Number.NaN); // 0
|
|
30
|
+
*/
|
|
31
|
+
declare function verdictStars(score: number): number;
|
|
32
|
+
interface VerdictRowProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
|
|
33
|
+
/**
|
|
34
|
+
* What the scorer thought of the work, `0`–`1`. Clamped, and a non-finite
|
|
35
|
+
* score is worth no stars — see {@link verdictStars}.
|
|
36
|
+
*/
|
|
37
|
+
score: number;
|
|
38
|
+
/**
|
|
39
|
+
* What the scorer is called. Defaults to `VERDICT_LABELS.title`
|
|
40
|
+
* (`Verification`), which is deliberately not `Critic`: the same row fits a
|
|
41
|
+
* test run, a linter or a second model.
|
|
42
|
+
*/
|
|
43
|
+
title?: string;
|
|
44
|
+
/** One line of the scorer's own prose, under the rating. */
|
|
45
|
+
summary?: string;
|
|
46
|
+
/**
|
|
47
|
+
* What it thinks is probably wrong, drawn as chips with their probabilities
|
|
48
|
+
* and tinted by them. Order is the caller's — most likely first reads best.
|
|
49
|
+
*/
|
|
50
|
+
issues?: readonly VerdictIssue[];
|
|
51
|
+
/** The row's three strings, merged over `VERDICT_LABELS`. */
|
|
52
|
+
labels?: Partial<VerdictLabels>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* What the run thought of its own work, attached to the turn that did it.
|
|
56
|
+
*
|
|
57
|
+
* The second of the two elements nothing in the field ships. A finished turn
|
|
58
|
+
* says what it changed and how long it took; whether it is any *good* is the
|
|
59
|
+
* one question the reader actually has, and every agent runtime that runs a
|
|
60
|
+
* critic, a test suite or a self-review already has an answer to it. This is
|
|
61
|
+
* that answer as a row: a rating out of five, the exact score beside it, the
|
|
62
|
+
* scorer's sentence, and the problems it thinks are most likely, each with how
|
|
63
|
+
* sure it is.
|
|
64
|
+
*
|
|
65
|
+
* Every number is defended. Scores arrive from a model, so `NaN`, `Infinity`
|
|
66
|
+
* and out-of-range values are normal traffic and all of them clamp — a verdict
|
|
67
|
+
* row is worthless if a bad payload can make it render `NaN out of 5`.
|
|
68
|
+
*
|
|
69
|
+
* Tone is stated as `data-verdict` on the element, from OpenHands' own
|
|
70
|
+
* thresholds (`ok` at 0.6, `warn` at 0.4, `danger` below), and the chips take
|
|
71
|
+
* theirs from the probability (`danger` at 0.7, `warn` at 0.5). The stars are
|
|
72
|
+
* one `role="img"` with the rating as its name rather than five glyphs a screen
|
|
73
|
+
* reader would read out one at a time.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* import { VerdictRow } from "@cueplusplus/ui/elements";
|
|
77
|
+
*
|
|
78
|
+
* <VerdictRow
|
|
79
|
+
* score={0.82}
|
|
80
|
+
* summary="The patch matches the plot and the cue holds."
|
|
81
|
+
* issues={[{ label: "No fallback for a missing fixture", probability: 0.54 }]}
|
|
82
|
+
* />
|
|
83
|
+
* @example
|
|
84
|
+
* // A verdict that failed the work, from a test run rather than a model.
|
|
85
|
+
* <VerdictRow score={0.24} title="Test run" summary="3 of 41 checks failed." />
|
|
86
|
+
*/
|
|
87
|
+
declare const VerdictRow: React.ForwardRefExoticComponent<VerdictRowProps & React.RefAttributes<HTMLDivElement>>;
|
|
88
|
+
//#endregion
|
|
89
|
+
export { VerdictIssue, VerdictRow, VerdictRowProps, VerdictTone, verdictStars };
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { field, mono, paper } from "./surfaces.js";
|
|
4
|
+
import { VERDICT_LABELS } from "./vocabulary.js";
|
|
5
|
+
import { clamp } from "./range.js";
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { StarIcon } from "lucide-react";
|
|
9
|
+
//#region src/elements/verdict-row.tsx
|
|
10
|
+
/** What the stars and the chips paint at each tone. */
|
|
11
|
+
const TONE_INK = {
|
|
12
|
+
ok: "text-ok",
|
|
13
|
+
warn: "text-warn",
|
|
14
|
+
danger: "text-danger"
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* How many of the five stars a score earns: `0`–`5`.
|
|
18
|
+
*
|
|
19
|
+
* OpenHands' own arithmetic, defences included. A score arrives from a model
|
|
20
|
+
* over a network, so `NaN`, `Infinity` and `-3` are all things that happen, and
|
|
21
|
+
* every one of them has to become a number of stars rather than a row that
|
|
22
|
+
* throws or a rating that renders `NaN`. Non-finite scores round to nothing:
|
|
23
|
+
* a caller with no score should draw no row at all rather than a row that says
|
|
24
|
+
* the work was bad.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* verdictStars(0.82); // 4
|
|
28
|
+
* verdictStars(1.5); // 5 — clamped, not trusted
|
|
29
|
+
* verdictStars(Number.NaN); // 0
|
|
30
|
+
*/
|
|
31
|
+
function verdictStars(score) {
|
|
32
|
+
if (!Number.isFinite(score)) return 0;
|
|
33
|
+
return Math.round(clamp(score, 0, 1) * 5);
|
|
34
|
+
}
|
|
35
|
+
/** A probability as a verdict states it: whole percents. */
|
|
36
|
+
function percent(value) {
|
|
37
|
+
if (!Number.isFinite(value)) return 0;
|
|
38
|
+
return Math.round(clamp(value, 0, 1) * 100);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* What the run thought of its own work, attached to the turn that did it.
|
|
42
|
+
*
|
|
43
|
+
* The second of the two elements nothing in the field ships. A finished turn
|
|
44
|
+
* says what it changed and how long it took; whether it is any *good* is the
|
|
45
|
+
* one question the reader actually has, and every agent runtime that runs a
|
|
46
|
+
* critic, a test suite or a self-review already has an answer to it. This is
|
|
47
|
+
* that answer as a row: a rating out of five, the exact score beside it, the
|
|
48
|
+
* scorer's sentence, and the problems it thinks are most likely, each with how
|
|
49
|
+
* sure it is.
|
|
50
|
+
*
|
|
51
|
+
* Every number is defended. Scores arrive from a model, so `NaN`, `Infinity`
|
|
52
|
+
* and out-of-range values are normal traffic and all of them clamp — a verdict
|
|
53
|
+
* row is worthless if a bad payload can make it render `NaN out of 5`.
|
|
54
|
+
*
|
|
55
|
+
* Tone is stated as `data-verdict` on the element, from OpenHands' own
|
|
56
|
+
* thresholds (`ok` at 0.6, `warn` at 0.4, `danger` below), and the chips take
|
|
57
|
+
* theirs from the probability (`danger` at 0.7, `warn` at 0.5). The stars are
|
|
58
|
+
* one `role="img"` with the rating as its name rather than five glyphs a screen
|
|
59
|
+
* reader would read out one at a time.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* import { VerdictRow } from "@cueplusplus/ui/elements";
|
|
63
|
+
*
|
|
64
|
+
* <VerdictRow
|
|
65
|
+
* score={0.82}
|
|
66
|
+
* summary="The patch matches the plot and the cue holds."
|
|
67
|
+
* issues={[{ label: "No fallback for a missing fixture", probability: 0.54 }]}
|
|
68
|
+
* />
|
|
69
|
+
* @example
|
|
70
|
+
* // A verdict that failed the work, from a test run rather than a model.
|
|
71
|
+
* <VerdictRow score={0.24} title="Test run" summary="3 of 41 checks failed." />
|
|
72
|
+
*/
|
|
73
|
+
const VerdictRow = React.forwardRef(function VerdictRow({ score, title, summary, issues, labels, className, ...elementProps }, ref) {
|
|
74
|
+
const copy = {
|
|
75
|
+
...VERDICT_LABELS,
|
|
76
|
+
...labels
|
|
77
|
+
};
|
|
78
|
+
const stars = verdictStars(score);
|
|
79
|
+
const scored = Number.isFinite(score) ? clamp(score, 0, 1) : 0;
|
|
80
|
+
const tone = scored >= .6 ? "ok" : scored >= .4 ? "warn" : "danger";
|
|
81
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
82
|
+
ref,
|
|
83
|
+
"data-slot": "verdict-row",
|
|
84
|
+
"data-verdict": tone,
|
|
85
|
+
className: cn(paper, "flex w-full flex-col gap-2 rounded-(--radius-overlay) px-3 py-2.5", className),
|
|
86
|
+
...elementProps,
|
|
87
|
+
children: [
|
|
88
|
+
/* @__PURE__ */ jsxs("div", {
|
|
89
|
+
className: "flex items-center gap-2",
|
|
90
|
+
children: [
|
|
91
|
+
/* @__PURE__ */ jsx("span", {
|
|
92
|
+
className: "text-fg min-w-0 flex-1 truncate text-(length:--cue-text-ui) font-medium",
|
|
93
|
+
children: title ?? copy.title
|
|
94
|
+
}),
|
|
95
|
+
/* @__PURE__ */ jsx("span", {
|
|
96
|
+
role: "img",
|
|
97
|
+
"data-slot": "verdict-row-rating",
|
|
98
|
+
"aria-label": copy.rating.replace("{n}", String(stars)),
|
|
99
|
+
className: cn("flex shrink-0 items-center gap-0.5", TONE_INK[tone]),
|
|
100
|
+
children: [
|
|
101
|
+
0,
|
|
102
|
+
1,
|
|
103
|
+
2,
|
|
104
|
+
3,
|
|
105
|
+
4
|
|
106
|
+
].map((index) => /* @__PURE__ */ jsx(StarIcon, {
|
|
107
|
+
"aria-hidden": true,
|
|
108
|
+
className: cn("size-3.5", index < stars ? "fill-current" : "opacity-25")
|
|
109
|
+
}, index))
|
|
110
|
+
}),
|
|
111
|
+
/* @__PURE__ */ jsxs("span", {
|
|
112
|
+
className: cn(mono, "shrink-0 tabular-nums", TONE_INK[tone]),
|
|
113
|
+
children: [percent(scored), "%"]
|
|
114
|
+
})
|
|
115
|
+
]
|
|
116
|
+
}),
|
|
117
|
+
summary === void 0 ? null : /* @__PURE__ */ jsx("p", {
|
|
118
|
+
className: "text-fg-muted text-(length:--cue-text-ui)",
|
|
119
|
+
children: summary
|
|
120
|
+
}),
|
|
121
|
+
issues === void 0 || issues.length === 0 ? null : /* @__PURE__ */ jsxs("div", {
|
|
122
|
+
className: "flex flex-col gap-1.5",
|
|
123
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
124
|
+
className: cn(mono, "text-fg-subtle"),
|
|
125
|
+
children: copy.issues
|
|
126
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
127
|
+
"data-slot": "verdict-row-issues",
|
|
128
|
+
className: "flex flex-wrap gap-1.5",
|
|
129
|
+
children: issues.map((issue) => {
|
|
130
|
+
const odds = percent(issue.probability);
|
|
131
|
+
const chip = odds >= 70 ? "danger" : odds >= 50 ? "warn" : "neutral";
|
|
132
|
+
return /* @__PURE__ */ jsxs("li", {
|
|
133
|
+
"data-color": chip,
|
|
134
|
+
className: cn(field, "flex max-w-full items-baseline gap-1.5 rounded-(--radius-control) px-2 py-0.5 text-(length:--cue-text-ui)", chip === "danger" ? "text-danger" : chip === "warn" ? "text-warn" : "text-fg-muted"),
|
|
135
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
136
|
+
className: "min-w-0 truncate",
|
|
137
|
+
children: issue.label
|
|
138
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
139
|
+
className: cn(mono, "shrink-0 tabular-nums opacity-80"),
|
|
140
|
+
children: [odds, "%"]
|
|
141
|
+
})]
|
|
142
|
+
}, issue.label);
|
|
143
|
+
})
|
|
144
|
+
})]
|
|
145
|
+
})
|
|
146
|
+
]
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
//#endregion
|
|
150
|
+
export { VerdictRow, verdictStars };
|