@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,123 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { ghostButton, mono, paper } from "./surfaces.js";
|
|
4
|
+
import { clamp } from "./range.js";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { MicIcon, MicOffIcon, PhoneOffIcon } from "lucide-react";
|
|
7
|
+
//#region src/elements/voice-conversation.tsx
|
|
8
|
+
const CAPTION = {
|
|
9
|
+
connecting: "Connecting",
|
|
10
|
+
listening: "Listening",
|
|
11
|
+
thinking: "Thinking",
|
|
12
|
+
speaking: "Speaking"
|
|
13
|
+
};
|
|
14
|
+
const HINT = {
|
|
15
|
+
connecting: "Opening the mic",
|
|
16
|
+
listening: "Listening for you",
|
|
17
|
+
thinking: "Working on it",
|
|
18
|
+
speaking: "Playing the reply"
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* A live call: the orb tracks your voice, the caption names the turn, the transcript
|
|
22
|
+
* follows.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* import { VoiceConversation } from "@cueplusplus/ui/elements";
|
|
26
|
+
*
|
|
27
|
+
* <VoiceConversation
|
|
28
|
+
* mode="listening"
|
|
29
|
+
* amplitude={0.6}
|
|
30
|
+
* transcript={transcript}
|
|
31
|
+
* onToggleMute={toggleMute}
|
|
32
|
+
* onEnd={hangUp}
|
|
33
|
+
* />
|
|
34
|
+
*/
|
|
35
|
+
function VoiceConversation({ mode, amplitude, transcript, muted, onToggleMute, onInterrupt, onEnd, className, ...props }) {
|
|
36
|
+
const level = clamp(amplitude, 0, 1);
|
|
37
|
+
const active = mode === "listening" || mode === "speaking";
|
|
38
|
+
const canInterrupt = mode === "speaking" && onInterrupt !== void 0;
|
|
39
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
40
|
+
"data-slot": "voice-conversation",
|
|
41
|
+
className: cn(paper, "flex w-full max-w-xs flex-col items-center gap-4 rounded-(--radius-overlay) px-5 py-5", className),
|
|
42
|
+
...props,
|
|
43
|
+
children: [
|
|
44
|
+
/* @__PURE__ */ jsxs("button", {
|
|
45
|
+
type: "button",
|
|
46
|
+
onClick: onInterrupt,
|
|
47
|
+
disabled: !canInterrupt,
|
|
48
|
+
"aria-label": "Interrupt the assistant",
|
|
49
|
+
className: "focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent relative flex size-24 items-center justify-center rounded-full outline-none disabled:cursor-default",
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ jsx("span", {
|
|
52
|
+
"aria-hidden": true,
|
|
53
|
+
className: cn("absolute rounded-full transition-[transform,opacity] duration-200 ease-out motion-reduce:transition-none", mode === "speaking" ? "bg-stream/15" : "bg-surface-1"),
|
|
54
|
+
style: {
|
|
55
|
+
width: "6rem",
|
|
56
|
+
height: "6rem",
|
|
57
|
+
transform: `scale(${active ? .72 + level * .28 : .62})`,
|
|
58
|
+
opacity: active ? 1 : .5
|
|
59
|
+
}
|
|
60
|
+
}),
|
|
61
|
+
/* @__PURE__ */ jsx("span", {
|
|
62
|
+
"aria-hidden": true,
|
|
63
|
+
className: cn("absolute rounded-full transition-[transform,opacity] duration-150 ease-out motion-reduce:transition-none", mode === "speaking" ? "bg-stream/25" : "bg-surface-2"),
|
|
64
|
+
style: {
|
|
65
|
+
width: "4.25rem",
|
|
66
|
+
height: "4.25rem",
|
|
67
|
+
transform: `scale(${active ? .8 + level * .22 : .7})`
|
|
68
|
+
}
|
|
69
|
+
}),
|
|
70
|
+
/* @__PURE__ */ jsx("span", {
|
|
71
|
+
"aria-hidden": true,
|
|
72
|
+
className: cn("relative size-10 rounded-full transition-[transform,background-color] duration-150 ease-out motion-reduce:transition-none", mode === "connecting" && "bg-surface-3 animate-pulse", mode === "listening" && "bg-accent", mode === "thinking" && "bg-surface-3 animate-pulse", mode === "speaking" && "bg-stream"),
|
|
73
|
+
style: { transform: `scale(${active ? .9 + level * .2 : .85})` }
|
|
74
|
+
})
|
|
75
|
+
]
|
|
76
|
+
}),
|
|
77
|
+
/* @__PURE__ */ jsxs("div", {
|
|
78
|
+
className: "flex flex-col items-center gap-1",
|
|
79
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
80
|
+
className: "text-(length:--cue-text-body) font-medium",
|
|
81
|
+
children: CAPTION[mode]
|
|
82
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
83
|
+
className: cn(mono, "text-fg-subtle"),
|
|
84
|
+
children: muted ? "Mic off" : canInterrupt ? "Tap to interrupt" : HINT[mode]
|
|
85
|
+
})]
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ jsx("div", {
|
|
88
|
+
className: "flex min-h-[4.5rem] w-full flex-col gap-1.5",
|
|
89
|
+
children: transcript.map((turn) => /* @__PURE__ */ jsxs("div", {
|
|
90
|
+
className: "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in cue-elements-fill-mode-both flex gap-2 text-(length:--cue-text-ui) leading-(--cue-leading-ui) duration-300",
|
|
91
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
92
|
+
className: cn(mono, "w-8 shrink-0", turn.role === "user" ? "text-fg-subtle" : "text-stream/70"),
|
|
93
|
+
children: turn.role === "user" ? "you" : "ai"
|
|
94
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
95
|
+
className: cn("min-w-0 flex-1 break-words", turn.role === "user" ? "text-fg-muted" : "text-fg-muted"),
|
|
96
|
+
children: turn.text
|
|
97
|
+
})]
|
|
98
|
+
}, turn.id))
|
|
99
|
+
}),
|
|
100
|
+
/* @__PURE__ */ jsxs("div", {
|
|
101
|
+
className: "flex items-center gap-2",
|
|
102
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
103
|
+
type: "button",
|
|
104
|
+
"aria-label": muted ? "Turn the microphone on" : "Turn the microphone off",
|
|
105
|
+
"aria-pressed": muted,
|
|
106
|
+
onClick: onToggleMute,
|
|
107
|
+
disabled: !onToggleMute,
|
|
108
|
+
className: cn(ghostButton, "size-10 disabled:pointer-events-none disabled:opacity-30", muted && "bg-surface-2 text-fg"),
|
|
109
|
+
children: muted ? /* @__PURE__ */ jsx(MicOffIcon, { className: "size-4" }) : /* @__PURE__ */ jsx(MicIcon, { className: "size-4" })
|
|
110
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
111
|
+
type: "button",
|
|
112
|
+
"aria-label": "End the call",
|
|
113
|
+
onClick: onEnd,
|
|
114
|
+
disabled: !onEnd,
|
|
115
|
+
className: "flex size-10 items-center justify-center rounded-full bg-danger text-danger-fg transition-[opacity,scale] duration-150 hover:opacity-90 active:scale-[0.96] disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none",
|
|
116
|
+
children: /* @__PURE__ */ jsx(PhoneOffIcon, { className: "size-4" })
|
|
117
|
+
})]
|
|
118
|
+
})
|
|
119
|
+
]
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
//#endregion
|
|
123
|
+
export { VoiceConversation };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/elements/web-preview.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Chrome around a preview: a URL bar, reload, and open-in-new. It renders
|
|
5
|
+
* `children` as given and enforces no isolation of its own, so the caller is
|
|
6
|
+
* responsible for passing an already-sandboxed frame.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* import { WebPreview } from "@cueplusplus/ui/elements";
|
|
10
|
+
*
|
|
11
|
+
* <WebPreview origin="scf.auiusercontent.com" loading={false} onReload={reload}>
|
|
12
|
+
* <iframe title="Preview" src={sandboxUrl} sandbox="allow-scripts" />
|
|
13
|
+
* </WebPreview>
|
|
14
|
+
*/
|
|
15
|
+
declare function WebPreview({ origin, loading, children, onReload, onOpenExternal, className, ...props }: Omit<ComponentProps<"div">, "origin" | "loading" | "children" | "onReload" | "onOpenExternal"> & {
|
|
16
|
+
/**
|
|
17
|
+
* Host the content is served from. Show the sandbox origin, not your own, so the
|
|
18
|
+
* isolation is legible. Displaying it does not create the isolation; the frame you
|
|
19
|
+
* pass as children must already be sandboxed.
|
|
20
|
+
*/
|
|
21
|
+
origin: string;
|
|
22
|
+
/** Fades the frame out and shimmers a status while the sandbox is being set up. */
|
|
23
|
+
loading: boolean;
|
|
24
|
+
/** The frame itself. In production this is a sandboxed iframe, not inline markup. */
|
|
25
|
+
children: React.ReactNode;
|
|
26
|
+
/** Called from the reload control. */
|
|
27
|
+
onReload?: () => void;
|
|
28
|
+
/** Called from the open-in-new-tab control. */
|
|
29
|
+
onOpenExternal?: () => void;
|
|
30
|
+
}): import("react").JSX.Element;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { WebPreview };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { ShimmerLabel, field, ghostButton, mono, paper } from "./surfaces.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { ExternalLinkIcon, RotateCwIcon } from "lucide-react";
|
|
6
|
+
//#region src/elements/web-preview.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Chrome around a preview: a URL bar, reload, and open-in-new. It renders
|
|
9
|
+
* `children` as given and enforces no isolation of its own, so the caller is
|
|
10
|
+
* responsible for passing an already-sandboxed frame.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { WebPreview } from "@cueplusplus/ui/elements";
|
|
14
|
+
*
|
|
15
|
+
* <WebPreview origin="scf.auiusercontent.com" loading={false} onReload={reload}>
|
|
16
|
+
* <iframe title="Preview" src={sandboxUrl} sandbox="allow-scripts" />
|
|
17
|
+
* </WebPreview>
|
|
18
|
+
*/
|
|
19
|
+
function WebPreview({ origin, loading, children, onReload, onOpenExternal, className, ...props }) {
|
|
20
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
21
|
+
"data-slot": "web-preview",
|
|
22
|
+
className: cn(paper, "flex w-full max-w-md flex-col overflow-hidden rounded-(--radius-overlay)", className),
|
|
23
|
+
...props,
|
|
24
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
25
|
+
className: "flex items-center gap-1.5 px-2.5 py-2",
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ jsx("button", {
|
|
28
|
+
type: "button",
|
|
29
|
+
"aria-label": "Reload the preview",
|
|
30
|
+
onClick: onReload,
|
|
31
|
+
className: cn(ghostButton, "size-7 shrink-0"),
|
|
32
|
+
children: /* @__PURE__ */ jsx(RotateCwIcon, { className: cn("size-3.5", loading && "animate-spin motion-reduce:animate-none") })
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ jsx("span", {
|
|
35
|
+
className: cn(field, "flex min-w-0 flex-1 items-center gap-1.5 rounded-full px-2.5 py-1"),
|
|
36
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
37
|
+
className: cn(mono, "text-fg-muted min-w-0 truncate"),
|
|
38
|
+
children: origin
|
|
39
|
+
})
|
|
40
|
+
}),
|
|
41
|
+
/* @__PURE__ */ jsx("button", {
|
|
42
|
+
type: "button",
|
|
43
|
+
"aria-label": "Open the preview in a new tab",
|
|
44
|
+
onClick: onOpenExternal,
|
|
45
|
+
className: cn(ghostButton, "size-7 shrink-0"),
|
|
46
|
+
children: /* @__PURE__ */ jsx(ExternalLinkIcon, { className: "size-3.5" })
|
|
47
|
+
})
|
|
48
|
+
]
|
|
49
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
50
|
+
className: "border-border relative min-h-[9rem] border-t",
|
|
51
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
52
|
+
"aria-hidden": loading,
|
|
53
|
+
className: cn("transition-opacity duration-300 motion-reduce:transition-none", loading && "invisible opacity-0"),
|
|
54
|
+
children
|
|
55
|
+
}), loading && /* @__PURE__ */ jsx("div", {
|
|
56
|
+
className: "absolute inset-0 flex items-center justify-center",
|
|
57
|
+
children: /* @__PURE__ */ jsx(ShimmerLabel, {
|
|
58
|
+
className: "text-fg-subtle relative inline-block text-(length:--cue-text-ui) leading-none",
|
|
59
|
+
children: "Loading preview"
|
|
60
|
+
})
|
|
61
|
+
})]
|
|
62
|
+
})]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { WebPreview };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/elements/web-search.d.ts
|
|
3
|
+
/** One hit the agent read: the page's title and the site it sits on. */
|
|
4
|
+
interface WebSearchResult {
|
|
5
|
+
/** The page's title, truncated to the row. */
|
|
6
|
+
title: string;
|
|
7
|
+
/** The site, in mono at the end of the row. With `cycle`, it keys the row. */
|
|
8
|
+
domain: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A search query and its results landing one by one as the agent reads.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { WebSearch } from "@cueplusplus/ui/elements";
|
|
15
|
+
*
|
|
16
|
+
* <WebSearch
|
|
17
|
+
* query="assistant-ui composer"
|
|
18
|
+
* results={[{ title: "Composer guide", domain: "docs.example.com" }]}
|
|
19
|
+
* visibleResults={1}
|
|
20
|
+
* searching={false}
|
|
21
|
+
* cycle={0}
|
|
22
|
+
* />
|
|
23
|
+
*/
|
|
24
|
+
declare function WebSearch({ query, results, visibleResults, searching, cycle, className, ...props }: Omit<ComponentProps<"div">, "children" | "query" | "results" | "visibleResults" | "searching" | "cycle"> & {
|
|
25
|
+
/** Search query shown in the query pill. */
|
|
26
|
+
query: string;
|
|
27
|
+
/** Result cards available to reveal one by one. */
|
|
28
|
+
results: readonly WebSearchResult[];
|
|
29
|
+
/** How many results from the start are currently shown. */
|
|
30
|
+
visibleResults: number;
|
|
31
|
+
/** When true a shimmering Searching label replaces the result count. */
|
|
32
|
+
searching: boolean;
|
|
33
|
+
/** Identity key that remounts the list so entrance animation can replay. */
|
|
34
|
+
cycle: number;
|
|
35
|
+
}): import("react").JSX.Element;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { WebSearch, WebSearchResult };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { ShimmerLabel, field, mono } from "./surfaces.js";
|
|
4
|
+
import { take } from "./range.js";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { SearchIcon } from "lucide-react";
|
|
7
|
+
//#region src/elements/web-search.tsx
|
|
8
|
+
/**
|
|
9
|
+
* A search query and its results landing one by one as the agent reads.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { WebSearch } from "@cueplusplus/ui/elements";
|
|
13
|
+
*
|
|
14
|
+
* <WebSearch
|
|
15
|
+
* query="assistant-ui composer"
|
|
16
|
+
* results={[{ title: "Composer guide", domain: "docs.example.com" }]}
|
|
17
|
+
* visibleResults={1}
|
|
18
|
+
* searching={false}
|
|
19
|
+
* cycle={0}
|
|
20
|
+
* />
|
|
21
|
+
*/
|
|
22
|
+
function WebSearch({ query, results, visibleResults, searching, cycle, className, ...props }) {
|
|
23
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
24
|
+
"data-slot": "web-search",
|
|
25
|
+
className: cn("flex w-full max-w-sm flex-col gap-2.5", className),
|
|
26
|
+
...props,
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ jsxs("span", {
|
|
29
|
+
className: cn(field, "text-fg-muted inline-flex w-fit items-center gap-1.5 rounded-full px-3.5 py-2 text-(length:--cue-text-ui)"),
|
|
30
|
+
children: [/* @__PURE__ */ jsx(SearchIcon, { className: "text-fg-subtle size-3" }), query]
|
|
31
|
+
}),
|
|
32
|
+
/* @__PURE__ */ jsx("div", {
|
|
33
|
+
className: "text-fg-muted text-(length:--cue-text-ui)",
|
|
34
|
+
children: searching ? /* @__PURE__ */ jsx(ShimmerLabel, {
|
|
35
|
+
className: "relative inline-block leading-none",
|
|
36
|
+
children: "Searching"
|
|
37
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
38
|
+
className: "cue-elements-fade-in cue-elements-animate-in duration-300",
|
|
39
|
+
children: "Read 3 sources"
|
|
40
|
+
})
|
|
41
|
+
}),
|
|
42
|
+
/* @__PURE__ */ jsx("div", {
|
|
43
|
+
className: "flex min-h-[5.75rem] flex-col",
|
|
44
|
+
children: take(results, visibleResults).map((result) => /* @__PURE__ */ jsxs("div", {
|
|
45
|
+
className: "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in cue-elements-fill-mode-both hover:bg-surface-1 -mx-2.5 flex items-center gap-2.5 rounded-(--radius-surface) px-2.5 py-1.5 transition-colors duration-300",
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ jsx("span", {
|
|
48
|
+
className: "bg-surface-2 text-fg-muted flex size-4 shrink-0 items-center justify-center rounded-(--radius-control) text-(length:--cue-text-micro) font-medium",
|
|
49
|
+
children: result.domain.charAt(0).toUpperCase()
|
|
50
|
+
}),
|
|
51
|
+
/* @__PURE__ */ jsx("span", {
|
|
52
|
+
className: "text-fg min-w-0 flex-1 truncate text-(length:--cue-text-body)",
|
|
53
|
+
children: result.title
|
|
54
|
+
}),
|
|
55
|
+
/* @__PURE__ */ jsx("span", {
|
|
56
|
+
className: cn(mono, "text-fg-subtle shrink-0"),
|
|
57
|
+
children: result.domain
|
|
58
|
+
})
|
|
59
|
+
]
|
|
60
|
+
}, `${cycle}-${result.domain}`))
|
|
61
|
+
})
|
|
62
|
+
]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { WebSearch };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/elements/work-collapse.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* A duration as a run's summary line says it: `3s`, `4m 12s`, `1h 3m`.
|
|
5
|
+
*
|
|
6
|
+
* Cline's three shapes, and the rule behind them is that each keeps exactly two
|
|
7
|
+
* significant units — nobody reading "worked for" wants `1h 3m 12s`, and
|
|
8
|
+
* everybody wants the seconds when the whole run took eleven of them. Anything
|
|
9
|
+
* that is not a finite, positive number of milliseconds is `0s`, because this
|
|
10
|
+
* formats a caller's arithmetic and a run that has not started yet is a real
|
|
11
|
+
* state.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* formatWorkDuration(3_000); // "3s"
|
|
15
|
+
* formatWorkDuration(252_000); // "4m 12s"
|
|
16
|
+
* formatWorkDuration(3_780_000); // "1h 3m"
|
|
17
|
+
*/
|
|
18
|
+
declare function formatWorkDuration(durationMs: number): string;
|
|
19
|
+
/** What a collapsed run knows about itself. */
|
|
20
|
+
interface WorkSummary {
|
|
21
|
+
/** How long the run took, in milliseconds. Omit when it is not known. */
|
|
22
|
+
durationMs?: number;
|
|
23
|
+
/** How many tool calls it made. Omit when it is not counted. */
|
|
24
|
+
toolCalls?: number;
|
|
25
|
+
/** Whether the run is still going, which decides the tense. */
|
|
26
|
+
running?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The summary line: `Worked for 4m 12s and made 14 tool calls`.
|
|
30
|
+
*
|
|
31
|
+
* Every combination has an answer, including the two empty ones, because a
|
|
32
|
+
* collapsed run always has to say something: a trigger labelled `undefined` is
|
|
33
|
+
* a row a reader cannot decide whether to open. Cline's fallbacks are `Worked`
|
|
34
|
+
* and `Made 3 tool calls`; the present-tense half is Hermes's rule that a live
|
|
35
|
+
* run narrates in the present and settles into the past.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* formatWorkLabel({ durationMs: 252_000, toolCalls: 14 });
|
|
39
|
+
* // "Worked for 4m 12s and made 14 tool calls"
|
|
40
|
+
* @example
|
|
41
|
+
* formatWorkLabel({ durationMs: 252_000, toolCalls: 14, running: true });
|
|
42
|
+
* // "Working for 4m 12s, 14 tool calls so far"
|
|
43
|
+
*/
|
|
44
|
+
declare function formatWorkLabel({ durationMs, toolCalls, running }: WorkSummary): string;
|
|
45
|
+
interface WorkCollapseProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children" | "onToggle"> {
|
|
46
|
+
/** How long the run took, in milliseconds. Omit when it is not known. */
|
|
47
|
+
durationMs?: number;
|
|
48
|
+
/** How many tool calls it made. Omit when it is not counted. */
|
|
49
|
+
toolCalls?: number;
|
|
50
|
+
/**
|
|
51
|
+
* Whether the run is still going: the label goes present tense and the sweep
|
|
52
|
+
* runs. Hermes's rule, and the one that keeps a collapsed live run from
|
|
53
|
+
* claiming to be finished.
|
|
54
|
+
*/
|
|
55
|
+
running?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* The whole summary line, replacing the one {@link formatWorkLabel} would
|
|
58
|
+
* build. This is where a category summary goes — "Explored 3 files, ran 5
|
|
59
|
+
* commands", composed from `VERB_TRIADS` — which is a sentence no formatter
|
|
60
|
+
* over a duration and a count could produce.
|
|
61
|
+
*/
|
|
62
|
+
label?: string;
|
|
63
|
+
/** Whether the rows are showing. */
|
|
64
|
+
open: boolean;
|
|
65
|
+
/** Called when the row is expanded or collapsed. */
|
|
66
|
+
onOpenChange?: (open: boolean) => void;
|
|
67
|
+
/** The rows the run folded away: tool calls, reasoning, whatever ran. */
|
|
68
|
+
children?: React.ReactNode;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A finished run, folded into one row: `Worked for 4m 12s and made 14 tool calls`.
|
|
72
|
+
*
|
|
73
|
+
* The counterpart to {@link TailStatus}. That one says what is happening while
|
|
74
|
+
* it happens; this one is what fourteen rows of it become once nobody needs
|
|
75
|
+
* them — and it is the element that makes a long transcript readable at a
|
|
76
|
+
* glance without hiding anything, because the rows are still there, one click
|
|
77
|
+
* away, in their original order.
|
|
78
|
+
*
|
|
79
|
+
* The expanded body deliberately draws no rail, no indent and no border. That
|
|
80
|
+
* is Cline's decision and its reasoning is worth keeping: the rows inside a
|
|
81
|
+
* work group are tool disclosures and reasoning panels that already carry their
|
|
82
|
+
* own nesting when *they* open, and a second level of indent around them makes
|
|
83
|
+
* a transcript that steps rightwards every time it explains itself. So an open
|
|
84
|
+
* `WorkCollapse` looks exactly like the transcript would have looked, plus one
|
|
85
|
+
* summary line above it.
|
|
86
|
+
*
|
|
87
|
+
* Open state is a prop, like everything else here: a scripted replay of this
|
|
88
|
+
* component is a caller changing `open`, and a component that owned the
|
|
89
|
+
* disclosure could not be replayed at all.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* import { WorkCollapse } from "@cueplusplus/ui/elements";
|
|
93
|
+
*
|
|
94
|
+
* <WorkCollapse durationMs={252_000} toolCalls={14} open={open} onOpenChange={setOpen}>
|
|
95
|
+
* {rows}
|
|
96
|
+
* </WorkCollapse>
|
|
97
|
+
* @example
|
|
98
|
+
* // Live, in the present tense, with the label composed from the verb table.
|
|
99
|
+
* <WorkCollapse running toolCalls={5} label="Exploring 3 files, running 5 commands" open={false} />
|
|
100
|
+
*/
|
|
101
|
+
declare const WorkCollapse: React.ForwardRefExoticComponent<WorkCollapseProps & React.RefAttributes<HTMLDivElement>>;
|
|
102
|
+
//#endregion
|
|
103
|
+
export { WorkCollapse, WorkCollapseProps, WorkSummary, formatWorkDuration, formatWorkLabel };
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { ShimmerLabel } from "./surfaces.js";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { ChevronRightIcon } from "lucide-react";
|
|
7
|
+
//#region src/elements/work-collapse.tsx
|
|
8
|
+
/**
|
|
9
|
+
* A duration as a run's summary line says it: `3s`, `4m 12s`, `1h 3m`.
|
|
10
|
+
*
|
|
11
|
+
* Cline's three shapes, and the rule behind them is that each keeps exactly two
|
|
12
|
+
* significant units — nobody reading "worked for" wants `1h 3m 12s`, and
|
|
13
|
+
* everybody wants the seconds when the whole run took eleven of them. Anything
|
|
14
|
+
* that is not a finite, positive number of milliseconds is `0s`, because this
|
|
15
|
+
* formats a caller's arithmetic and a run that has not started yet is a real
|
|
16
|
+
* state.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* formatWorkDuration(3_000); // "3s"
|
|
20
|
+
* formatWorkDuration(252_000); // "4m 12s"
|
|
21
|
+
* formatWorkDuration(3_780_000); // "1h 3m"
|
|
22
|
+
*/
|
|
23
|
+
function formatWorkDuration(durationMs) {
|
|
24
|
+
if (!Number.isFinite(durationMs) || durationMs <= 0) return "0s";
|
|
25
|
+
const total = Math.round(durationMs / 1e3);
|
|
26
|
+
if (total < 60) return `${total}s`;
|
|
27
|
+
if (total < 3600) {
|
|
28
|
+
const minutes = Math.floor(total / 60);
|
|
29
|
+
const seconds = total % 60;
|
|
30
|
+
return seconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`;
|
|
31
|
+
}
|
|
32
|
+
const hours = Math.floor(total / 3600);
|
|
33
|
+
const minutes = Math.floor(total % 3600 / 60);
|
|
34
|
+
return minutes === 0 ? `${hours}h` : `${hours}h ${minutes}m`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The summary line: `Worked for 4m 12s and made 14 tool calls`.
|
|
38
|
+
*
|
|
39
|
+
* Every combination has an answer, including the two empty ones, because a
|
|
40
|
+
* collapsed run always has to say something: a trigger labelled `undefined` is
|
|
41
|
+
* a row a reader cannot decide whether to open. Cline's fallbacks are `Worked`
|
|
42
|
+
* and `Made 3 tool calls`; the present-tense half is Hermes's rule that a live
|
|
43
|
+
* run narrates in the present and settles into the past.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* formatWorkLabel({ durationMs: 252_000, toolCalls: 14 });
|
|
47
|
+
* // "Worked for 4m 12s and made 14 tool calls"
|
|
48
|
+
* @example
|
|
49
|
+
* formatWorkLabel({ durationMs: 252_000, toolCalls: 14, running: true });
|
|
50
|
+
* // "Working for 4m 12s, 14 tool calls so far"
|
|
51
|
+
*/
|
|
52
|
+
function formatWorkLabel({ durationMs, toolCalls, running = false }) {
|
|
53
|
+
const spent = durationMs === void 0 ? void 0 : formatWorkDuration(durationMs);
|
|
54
|
+
const calls = toolCalls === void 0 ? void 0 : `${toolCalls} tool call${toolCalls === 1 ? "" : "s"}`;
|
|
55
|
+
if (running) {
|
|
56
|
+
if (spent !== void 0 && calls !== void 0) return `Working for ${spent}, ${calls} so far`;
|
|
57
|
+
if (spent !== void 0) return `Working for ${spent}`;
|
|
58
|
+
if (calls !== void 0) return `${calls} so far`;
|
|
59
|
+
return "Working";
|
|
60
|
+
}
|
|
61
|
+
if (spent !== void 0 && calls !== void 0) return `Worked for ${spent} and made ${calls}`;
|
|
62
|
+
if (spent !== void 0) return `Worked for ${spent}`;
|
|
63
|
+
if (calls !== void 0) return `Made ${calls}`;
|
|
64
|
+
return "Worked";
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A finished run, folded into one row: `Worked for 4m 12s and made 14 tool calls`.
|
|
68
|
+
*
|
|
69
|
+
* The counterpart to {@link TailStatus}. That one says what is happening while
|
|
70
|
+
* it happens; this one is what fourteen rows of it become once nobody needs
|
|
71
|
+
* them — and it is the element that makes a long transcript readable at a
|
|
72
|
+
* glance without hiding anything, because the rows are still there, one click
|
|
73
|
+
* away, in their original order.
|
|
74
|
+
*
|
|
75
|
+
* The expanded body deliberately draws no rail, no indent and no border. That
|
|
76
|
+
* is Cline's decision and its reasoning is worth keeping: the rows inside a
|
|
77
|
+
* work group are tool disclosures and reasoning panels that already carry their
|
|
78
|
+
* own nesting when *they* open, and a second level of indent around them makes
|
|
79
|
+
* a transcript that steps rightwards every time it explains itself. So an open
|
|
80
|
+
* `WorkCollapse` looks exactly like the transcript would have looked, plus one
|
|
81
|
+
* summary line above it.
|
|
82
|
+
*
|
|
83
|
+
* Open state is a prop, like everything else here: a scripted replay of this
|
|
84
|
+
* component is a caller changing `open`, and a component that owned the
|
|
85
|
+
* disclosure could not be replayed at all.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* import { WorkCollapse } from "@cueplusplus/ui/elements";
|
|
89
|
+
*
|
|
90
|
+
* <WorkCollapse durationMs={252_000} toolCalls={14} open={open} onOpenChange={setOpen}>
|
|
91
|
+
* {rows}
|
|
92
|
+
* </WorkCollapse>
|
|
93
|
+
* @example
|
|
94
|
+
* // Live, in the present tense, with the label composed from the verb table.
|
|
95
|
+
* <WorkCollapse running toolCalls={5} label="Exploring 3 files, running 5 commands" open={false} />
|
|
96
|
+
*/
|
|
97
|
+
const WorkCollapse = React.forwardRef(function WorkCollapse({ durationMs, toolCalls, running = false, label, open, onOpenChange, children, className, ...elementProps }, ref) {
|
|
98
|
+
const summary = label ?? formatWorkLabel({
|
|
99
|
+
durationMs,
|
|
100
|
+
toolCalls,
|
|
101
|
+
running
|
|
102
|
+
});
|
|
103
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
104
|
+
ref,
|
|
105
|
+
"data-slot": "work-collapse",
|
|
106
|
+
"data-open": String(open),
|
|
107
|
+
"data-running": String(running),
|
|
108
|
+
className: cn("flex w-full flex-col gap-1.5", className),
|
|
109
|
+
...elementProps,
|
|
110
|
+
children: [/* @__PURE__ */ jsxs("button", {
|
|
111
|
+
type: "button",
|
|
112
|
+
"aria-expanded": open,
|
|
113
|
+
onClick: () => onOpenChange?.(!open),
|
|
114
|
+
className: "hover:bg-surface-1 -mx-2 flex items-center gap-2.5 rounded-(--radius-control) px-2 py-1 text-start transition-colors focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent motion-reduce:transition-none",
|
|
115
|
+
children: [/* @__PURE__ */ jsx(ChevronRightIcon, {
|
|
116
|
+
"aria-hidden": true,
|
|
117
|
+
className: cn("text-fg-subtle size-3 shrink-0 transition-transform duration-200 motion-reduce:transition-none", open && "rotate-90")
|
|
118
|
+
}), /* @__PURE__ */ jsx(ShimmerLabel, {
|
|
119
|
+
active: running,
|
|
120
|
+
className: "text-fg-muted min-w-0 flex-1 truncate text-(length:--cue-text-ui)",
|
|
121
|
+
children: summary
|
|
122
|
+
})]
|
|
123
|
+
}), open && children !== void 0 ? /* @__PURE__ */ jsx("div", {
|
|
124
|
+
"data-slot": "work-collapse-content",
|
|
125
|
+
className: "flex flex-col gap-2",
|
|
126
|
+
children
|
|
127
|
+
}) : null]
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
//#endregion
|
|
131
|
+
export { WorkCollapse, formatWorkDuration, formatWorkLabel };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
//#region src/flow/_frame.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* On a graph canvas the frame *is* the state.
|
|
4
|
+
*
|
|
5
|
+
* A node in a signal graph has to answer two questions from across the room:
|
|
6
|
+
* what kind of thing is this, and what is it doing right now. Text answers
|
|
7
|
+
* neither at 60% zoom. A coloured frame answers both, which is why every console
|
|
8
|
+
* this group is ported from — dmxhub's bridge above all — encodes node state as
|
|
9
|
+
* the colour of a one-pixel rim and nothing else.
|
|
10
|
+
*
|
|
11
|
+
* Two axes, resolved in one order:
|
|
12
|
+
*
|
|
13
|
+
* - **State wins over tone.** A selected node is a selected node whether it is an
|
|
14
|
+
* input or a merge; a node carrying live signal is the accent whatever it does
|
|
15
|
+
* with that signal. Identity only shows through when the node has nothing more
|
|
16
|
+
* urgent to say.
|
|
17
|
+
* - **Tone is the resting identity.** Input reads as `info` (it comes from
|
|
18
|
+
* elsewhere), output as `accent` (it is what this console emits), and anything
|
|
19
|
+
* in between as the quiet grey that also serves as the default.
|
|
20
|
+
*
|
|
21
|
+
* The colour is published as a custom property rather than painted directly, so
|
|
22
|
+
* a React Flow node wrapper can set it once (`useFlowTheme().nodeStyles`) and
|
|
23
|
+
* every card inside inherits it — and so a card that says nothing about tone or
|
|
24
|
+
* state stays inheritable instead of overriding its own graph.
|
|
25
|
+
*/
|
|
26
|
+
/** What kind of node this is: where it sits in the signal path. */
|
|
27
|
+
type FlowNodeTone = "input" | "output" | "processing";
|
|
28
|
+
/** What the node is doing right now. Outranks {@link FlowNodeTone}. */
|
|
29
|
+
type FlowNodeState = "idle" | "live" | "selected" | "disabled";
|
|
30
|
+
/** The custom property a node's frame colour travels on. */
|
|
31
|
+
declare const FLOW_NODE_FRAME_PROPERTY = "--cue-node-frame";
|
|
32
|
+
/** The frame of a node that has published no colour of its own. */
|
|
33
|
+
declare const FLOW_NODE_FRAME_FALLBACK = "var(--cue-fg-subtle)";
|
|
34
|
+
/** `outline-color` for any node frame: the published colour, else the grey. */
|
|
35
|
+
declare const FLOW_NODE_FRAME_COLOR = "var(--cue-node-frame, var(--cue-fg-subtle))";
|
|
36
|
+
/**
|
|
37
|
+
* The frame colour for a node, as a token reference.
|
|
38
|
+
*
|
|
39
|
+
* Returns `undefined` when neither axis says anything — the caller then leaves
|
|
40
|
+
* the property unset and inherits whatever the node wrapper published, which is
|
|
41
|
+
* what makes `nodeStyles` work.
|
|
42
|
+
*
|
|
43
|
+
* @param tone - Where the node sits in the signal path.
|
|
44
|
+
* @param state - What it is doing right now. Outranks `tone`.
|
|
45
|
+
* @returns A `var(--cue-*)` reference, or `undefined` to inherit.
|
|
46
|
+
* @example
|
|
47
|
+
* flowFrameColor("input"); // "var(--cue-info)"
|
|
48
|
+
* flowFrameColor("input", "selected"); // "var(--cue-fg)"
|
|
49
|
+
*/
|
|
50
|
+
declare function flowFrameColor(tone?: FlowNodeTone, state?: FlowNodeState): string | undefined;
|
|
51
|
+
//#endregion
|
|
52
|
+
export { FLOW_NODE_FRAME_COLOR, FLOW_NODE_FRAME_FALLBACK, FLOW_NODE_FRAME_PROPERTY, FlowNodeState, FlowNodeTone, flowFrameColor };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//#region src/flow/_frame.ts
|
|
2
|
+
/** The custom property a node's frame colour travels on. */
|
|
3
|
+
const FLOW_NODE_FRAME_PROPERTY = "--cue-node-frame";
|
|
4
|
+
/** The frame of a node that has published no colour of its own. */
|
|
5
|
+
const FLOW_NODE_FRAME_FALLBACK = "var(--cue-fg-subtle)";
|
|
6
|
+
/** `outline-color` for any node frame: the published colour, else the grey. */
|
|
7
|
+
const FLOW_NODE_FRAME_COLOR = `var(${FLOW_NODE_FRAME_PROPERTY}, ${FLOW_NODE_FRAME_FALLBACK})`;
|
|
8
|
+
const TONE_FRAMES = {
|
|
9
|
+
input: "var(--cue-info)",
|
|
10
|
+
output: "var(--cue-accent)",
|
|
11
|
+
processing: FLOW_NODE_FRAME_FALLBACK
|
|
12
|
+
};
|
|
13
|
+
/** `idle` is deliberately absent: an idle node falls through to its tone. */
|
|
14
|
+
const STATE_FRAMES = {
|
|
15
|
+
selected: "var(--cue-fg)",
|
|
16
|
+
live: "var(--cue-accent)",
|
|
17
|
+
disabled: FLOW_NODE_FRAME_FALLBACK
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The frame colour for a node, as a token reference.
|
|
21
|
+
*
|
|
22
|
+
* Returns `undefined` when neither axis says anything — the caller then leaves
|
|
23
|
+
* the property unset and inherits whatever the node wrapper published, which is
|
|
24
|
+
* what makes `nodeStyles` work.
|
|
25
|
+
*
|
|
26
|
+
* @param tone - Where the node sits in the signal path.
|
|
27
|
+
* @param state - What it is doing right now. Outranks `tone`.
|
|
28
|
+
* @returns A `var(--cue-*)` reference, or `undefined` to inherit.
|
|
29
|
+
* @example
|
|
30
|
+
* flowFrameColor("input"); // "var(--cue-info)"
|
|
31
|
+
* flowFrameColor("input", "selected"); // "var(--cue-fg)"
|
|
32
|
+
*/
|
|
33
|
+
function flowFrameColor(tone, state) {
|
|
34
|
+
if (state !== void 0 && state in STATE_FRAMES) return STATE_FRAMES[state];
|
|
35
|
+
return tone === void 0 ? void 0 : TONE_FRAMES[tone];
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { FLOW_NODE_FRAME_COLOR, FLOW_NODE_FRAME_FALLBACK, FLOW_NODE_FRAME_PROPERTY, flowFrameColor };
|