@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,84 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { mono, paper } from "./surfaces.js";
|
|
4
|
+
import { take } from "./range.js";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { ChevronDownIcon, FileIcon, FolderIcon } from "lucide-react";
|
|
7
|
+
//#region src/elements/file-tree.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Everything a run touched, as a tree, with the churn spelled out per file.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { FileTree } from "@cueplusplus/ui/elements";
|
|
13
|
+
*
|
|
14
|
+
* <FileTree
|
|
15
|
+
* nodes={nodes}
|
|
16
|
+
* visibleCount={nodes.length}
|
|
17
|
+
* totalAdditions={78}
|
|
18
|
+
* totalDeletions={9}
|
|
19
|
+
* />
|
|
20
|
+
*/
|
|
21
|
+
function FileTree({ nodes, visibleCount, totalAdditions, totalDeletions, className, ...props }) {
|
|
22
|
+
const files = nodes.filter((node) => node.kind === "file").length;
|
|
23
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
24
|
+
"data-slot": "file-tree",
|
|
25
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-2 rounded-(--radius-overlay) p-3.5", className),
|
|
26
|
+
...props,
|
|
27
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
28
|
+
className: "flex items-baseline justify-between px-1",
|
|
29
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
30
|
+
className: "text-(length:--cue-text-body) font-medium",
|
|
31
|
+
children: [files, " files changed"]
|
|
32
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
33
|
+
className: cn(mono, "tabular-nums"),
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ jsxs("span", {
|
|
36
|
+
className: "text-ok",
|
|
37
|
+
children: ["+", totalAdditions]
|
|
38
|
+
}),
|
|
39
|
+
" ",
|
|
40
|
+
/* @__PURE__ */ jsxs("span", {
|
|
41
|
+
className: "text-danger",
|
|
42
|
+
children: ["−", totalDeletions]
|
|
43
|
+
})
|
|
44
|
+
]
|
|
45
|
+
})]
|
|
46
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
47
|
+
className: "flex flex-col",
|
|
48
|
+
children: take(nodes, visibleCount).map((node) => /* @__PURE__ */ jsx("div", {
|
|
49
|
+
className: "cue-elements-fade-in cue-elements-slide-in-from-left-1 cue-elements-animate-in cue-elements-fill-mode-both hover:bg-surface-1 flex items-center gap-2 rounded-(--radius-surface) px-1 py-1 text-(length:--cue-text-body) transition-colors duration-300",
|
|
50
|
+
style: { paddingInlineStart: `${.25 + node.depth * .85}rem` },
|
|
51
|
+
children: node.kind === "folder" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
52
|
+
/* @__PURE__ */ jsx(ChevronDownIcon, { className: "text-fg-subtle size-3 shrink-0" }),
|
|
53
|
+
/* @__PURE__ */ jsx(FolderIcon, { className: "text-fg-subtle size-3.5 shrink-0" }),
|
|
54
|
+
/* @__PURE__ */ jsx("span", {
|
|
55
|
+
className: "text-fg-muted min-w-0 flex-1 truncate",
|
|
56
|
+
children: node.name
|
|
57
|
+
})
|
|
58
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
|
+
/* @__PURE__ */ jsx(FileIcon, { className: "text-fg-subtle ms-3 size-3.5 shrink-0" }),
|
|
60
|
+
/* @__PURE__ */ jsx("span", {
|
|
61
|
+
className: "text-fg-muted min-w-0 flex-1 truncate",
|
|
62
|
+
children: node.name
|
|
63
|
+
}),
|
|
64
|
+
/* @__PURE__ */ jsxs("span", {
|
|
65
|
+
className: cn(mono, "shrink-0 tabular-nums"),
|
|
66
|
+
children: [
|
|
67
|
+
node.additions ? /* @__PURE__ */ jsxs("span", {
|
|
68
|
+
className: "text-ok",
|
|
69
|
+
children: ["+", node.additions]
|
|
70
|
+
}) : null,
|
|
71
|
+
" ",
|
|
72
|
+
node.deletions ? /* @__PURE__ */ jsxs("span", {
|
|
73
|
+
className: "text-danger",
|
|
74
|
+
children: ["−", node.deletions]
|
|
75
|
+
}) : null
|
|
76
|
+
]
|
|
77
|
+
})
|
|
78
|
+
] })
|
|
79
|
+
}, node.path))
|
|
80
|
+
})]
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
export { FileTree };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/elements/flow-graph.d.ts
|
|
3
|
+
/** Where one node of the graph got to: `done`, `active`, or still `pending`. */
|
|
4
|
+
type FlowNodeState = "done" | "active" | "pending";
|
|
5
|
+
/** One box of the graph: what it is, where it sits on the grid, and how it is going. */
|
|
6
|
+
interface FlowNode {
|
|
7
|
+
/**
|
|
8
|
+
* Stable identity for the row key, and how edges name their endpoints. FlowGraph
|
|
9
|
+
* exposes no callbacks, so nothing else reports it.
|
|
10
|
+
*/
|
|
11
|
+
id: string;
|
|
12
|
+
/** Text inside the node, rendered in mono and not wrapped. */
|
|
13
|
+
label: string;
|
|
14
|
+
/** Zero-based column. Drives horizontal position and the edge curves. */
|
|
15
|
+
column: number;
|
|
16
|
+
/** Zero-based row. */
|
|
17
|
+
row: number;
|
|
18
|
+
/** Done is filled and dim, active is tinted, pending is a dashed outline. */
|
|
19
|
+
state: FlowNodeState;
|
|
20
|
+
}
|
|
21
|
+
/** One arrow of the graph, drawn from the centre of one node to the centre of another. */
|
|
22
|
+
interface FlowEdge {
|
|
23
|
+
/** The `id` of the node the arrow leaves. */
|
|
24
|
+
from: string;
|
|
25
|
+
/** The `id` of the node it arrives at. A node may be the target of several. */
|
|
26
|
+
to: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Work as a graph rather than a list: branches that fan out and rejoin.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* import { FlowGraph } from "@cueplusplus/ui/elements";
|
|
33
|
+
*
|
|
34
|
+
* <FlowGraph nodes={nodes} edges={edges} visibleCount={nodes.length} />
|
|
35
|
+
*/
|
|
36
|
+
declare function FlowGraph({ nodes, edges, visibleCount, className, ...props }: Omit<ComponentProps<"div">, "children" | "nodes" | "edges" | "visibleCount"> & {
|
|
37
|
+
/** Every node with its grid position. Layout is explicit; the element runs no solver. */
|
|
38
|
+
nodes: readonly FlowNode[];
|
|
39
|
+
/** Connections by node id. An edge dims until both of its ends are visible. */
|
|
40
|
+
edges: readonly FlowEdge[];
|
|
41
|
+
/** How many nodes have been reached so far. */
|
|
42
|
+
visibleCount: number;
|
|
43
|
+
}): import("react").JSX.Element;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { FlowEdge, FlowGraph, FlowNode, FlowNodeState };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { mono, paper } from "./surfaces.js";
|
|
4
|
+
import { take } from "./range.js";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/elements/flow-graph.tsx
|
|
7
|
+
const COL_W = 96;
|
|
8
|
+
const ROW_H = 58;
|
|
9
|
+
const NODE_W = 78;
|
|
10
|
+
const NODE_H = 30;
|
|
11
|
+
/**
|
|
12
|
+
* Work as a graph rather than a list: branches that fan out and rejoin.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { FlowGraph } from "@cueplusplus/ui/elements";
|
|
16
|
+
*
|
|
17
|
+
* <FlowGraph nodes={nodes} edges={edges} visibleCount={nodes.length} />
|
|
18
|
+
*/
|
|
19
|
+
function FlowGraph({ nodes, edges, visibleCount, className, ...props }) {
|
|
20
|
+
const shown = take(nodes, visibleCount);
|
|
21
|
+
const shownIds = new Set(shown.map((node) => node.id));
|
|
22
|
+
const columns = Math.max(0, ...nodes.map((node) => node.column)) + 1;
|
|
23
|
+
const rows = Math.max(0, ...nodes.map((node) => node.row)) + 1;
|
|
24
|
+
const width = (columns - 1) * COL_W + NODE_W;
|
|
25
|
+
const height = (rows - 1) * ROW_H + NODE_H;
|
|
26
|
+
const center = (node) => ({
|
|
27
|
+
x: node.column * COL_W + NODE_W / 2,
|
|
28
|
+
y: node.row * ROW_H + NODE_H / 2
|
|
29
|
+
});
|
|
30
|
+
return /* @__PURE__ */ jsx("div", {
|
|
31
|
+
"data-slot": "flow-graph",
|
|
32
|
+
className: cn(paper, "w-full max-w-md overflow-x-auto rounded-(--radius-overlay) p-4", className),
|
|
33
|
+
...props,
|
|
34
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
35
|
+
className: "relative",
|
|
36
|
+
style: {
|
|
37
|
+
width,
|
|
38
|
+
height,
|
|
39
|
+
minWidth: width
|
|
40
|
+
},
|
|
41
|
+
children: [/* @__PURE__ */ jsx("svg", {
|
|
42
|
+
"aria-hidden": true,
|
|
43
|
+
className: "absolute inset-0 overflow-visible",
|
|
44
|
+
width,
|
|
45
|
+
height,
|
|
46
|
+
children: edges.map((edge) => {
|
|
47
|
+
const from = nodes.find((node) => node.id === edge.from);
|
|
48
|
+
const to = nodes.find((node) => node.id === edge.to);
|
|
49
|
+
if (!from || !to) return null;
|
|
50
|
+
const live = shownIds.has(edge.from) && shownIds.has(edge.to);
|
|
51
|
+
const a = center(from);
|
|
52
|
+
const b = center(to);
|
|
53
|
+
const midX = (a.x + b.x) / 2;
|
|
54
|
+
return /* @__PURE__ */ jsx("path", {
|
|
55
|
+
d: `M ${a.x + NODE_W / 2} ${a.y} C ${midX} ${a.y}, ${midX} ${b.y}, ${b.x - NODE_W / 2} ${b.y}`,
|
|
56
|
+
fill: "none",
|
|
57
|
+
strokeWidth: "1.5",
|
|
58
|
+
className: cn("transition-opacity duration-500 motion-reduce:transition-none", "stroke-fg-subtle", live ? "opacity-100" : "opacity-30")
|
|
59
|
+
}, `${edge.from}-${edge.to}`);
|
|
60
|
+
})
|
|
61
|
+
}), shown.map((node) => /* @__PURE__ */ jsx("div", {
|
|
62
|
+
className: cn("cue-elements-fade-in cue-elements-zoom-in-95 cue-elements-animate-in cue-elements-fill-mode-both absolute flex items-center justify-center rounded-(--radius-surface) border text-center text-(length:--cue-text-ui) leading-tight duration-300", node.state === "done" && "border-border bg-surface-1 text-fg-muted", node.state === "active" && "text-fg border-stream/30 bg-stream/10", node.state === "pending" && "border-border text-fg-subtle border-dashed"),
|
|
63
|
+
style: {
|
|
64
|
+
left: node.column * COL_W,
|
|
65
|
+
top: node.row * ROW_H,
|
|
66
|
+
width: NODE_W,
|
|
67
|
+
height: NODE_H
|
|
68
|
+
},
|
|
69
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
70
|
+
className: cn(mono, "px-2"),
|
|
71
|
+
children: node.label
|
|
72
|
+
})
|
|
73
|
+
}, node.id))]
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//#endregion
|
|
78
|
+
export { FlowGraph };
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { choice, flag, safeColor, seriesList, str, stringList } from "./spec.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/elements/generative/chart.tsx
|
|
6
|
+
/**
|
|
7
|
+
* The one intrinsic that has to draw rather than lay out.
|
|
8
|
+
*
|
|
9
|
+
* `Chart` is where a spec-driven vocabulary stops being a wrapper around HTML.
|
|
10
|
+
* Everything else in `intrinsics.tsx` is an element with attributes on it; this
|
|
11
|
+
* one takes a list of numbers whose range nobody declared and has to produce
|
|
12
|
+
* coordinates. That makes it the one file where a hostile spec can do something
|
|
13
|
+
* other than look wrong — a `NaN` in a `points` attribute is an SVG that fails
|
|
14
|
+
* to parse, and an unbounded value is a path that leaves the viewport and takes
|
|
15
|
+
* the layout with it.
|
|
16
|
+
*
|
|
17
|
+
* So the geometry is fixed and the data is fitted into it. The viewBox never
|
|
18
|
+
* changes, every coordinate is clamped to it, and a series whose numbers do not
|
|
19
|
+
* produce a finite span is drawn flat rather than not at all. The chart is
|
|
20
|
+
* `recharts`-free for the same reason the icons are `lucide`-free: this subpath
|
|
21
|
+
* declares no optional peer, and a widget a model composed has to render in a
|
|
22
|
+
* host that installed nothing.
|
|
23
|
+
*
|
|
24
|
+
* Colour is not decided here. Each series carries `data-aui-series="0…4"` and
|
|
25
|
+
* the stylesheet answers it, which is upstream's own arrangement — five rungs,
|
|
26
|
+
* cycled — so an island can restate five values instead of this file
|
|
27
|
+
* restating a palette.
|
|
28
|
+
*/
|
|
29
|
+
/** The drawing area, in user units. Fixed: the frame scales, the numbers do not. */
|
|
30
|
+
const W = 300;
|
|
31
|
+
const H = 120;
|
|
32
|
+
/** Room for a stroke's own width at the edges, so a peak is not clipped in half. */
|
|
33
|
+
const PAD = 4;
|
|
34
|
+
/** The gutter the y-axis labels sit in when `showAxis` is on. */
|
|
35
|
+
const GUTTER = 26;
|
|
36
|
+
/** How many colour rungs the stylesheet declares. The sixth series reuses the first. */
|
|
37
|
+
const SERIES_RUNGS = 5;
|
|
38
|
+
/** The four shapes a model may ask for. */
|
|
39
|
+
const VARIANTS = [
|
|
40
|
+
"bar",
|
|
41
|
+
"line",
|
|
42
|
+
"sparkline",
|
|
43
|
+
"area"
|
|
44
|
+
];
|
|
45
|
+
/** A number, forced into the drawable range. jsdom and SVG both dislike `NaN`. */
|
|
46
|
+
function fit(value, low, high) {
|
|
47
|
+
if (!Number.isFinite(value)) return low;
|
|
48
|
+
return Math.max(low, Math.min(high, value));
|
|
49
|
+
}
|
|
50
|
+
/** Two decimal places, without the trailing zeroes that triple a path's length. */
|
|
51
|
+
function round(value) {
|
|
52
|
+
return Math.round(value * 100) / 100;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The vertical extent to draw against.
|
|
56
|
+
*
|
|
57
|
+
* The floor is zero whenever the data is non-negative, which is what makes a
|
|
58
|
+
* bar chart read as a bar chart rather than as a magnified slice of one. A
|
|
59
|
+
* series that is all one value gets a span of 1 rather than 0, so it draws as a
|
|
60
|
+
* flat line halfway up instead of dividing by zero.
|
|
61
|
+
*/
|
|
62
|
+
function extentOf(series, stacked) {
|
|
63
|
+
const values = [];
|
|
64
|
+
if (stacked) {
|
|
65
|
+
const depth = Math.max(0, ...series.map((one) => one.data.length));
|
|
66
|
+
for (let at = 0; at < depth; at += 1) {
|
|
67
|
+
let positive = 0;
|
|
68
|
+
let negative = 0;
|
|
69
|
+
for (const one of series) {
|
|
70
|
+
const value = one.data[at] ?? 0;
|
|
71
|
+
if (value >= 0) positive += value;
|
|
72
|
+
else negative += value;
|
|
73
|
+
}
|
|
74
|
+
values.push(positive, negative);
|
|
75
|
+
}
|
|
76
|
+
} else for (const one of series) values.push(...one.data);
|
|
77
|
+
if (values.length === 0) return {
|
|
78
|
+
low: 0,
|
|
79
|
+
high: 1
|
|
80
|
+
};
|
|
81
|
+
const max = Math.max(...values);
|
|
82
|
+
const min = Math.min(...values);
|
|
83
|
+
const low = min > 0 ? 0 : min;
|
|
84
|
+
const high = max < 0 ? 0 : max;
|
|
85
|
+
return high - low === 0 ? {
|
|
86
|
+
low,
|
|
87
|
+
high: low + 1
|
|
88
|
+
} : {
|
|
89
|
+
low,
|
|
90
|
+
high
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function plotter(extent, left) {
|
|
94
|
+
const span = extent.high - extent.low;
|
|
95
|
+
return {
|
|
96
|
+
x: (at, count) => count <= 1 ? left + (W - left) / 2 : left + at * (W - left - PAD) / (count - 1),
|
|
97
|
+
y: (value) => fit(116 - (value - extent.low) / span * 112, PAD, 116)
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/** `x,y` pairs for a polyline or polygon. */
|
|
101
|
+
function points(data, plot) {
|
|
102
|
+
return data.map((value, at) => `${round(plot.x(at, data.length))},${round(plot.y(value))}`).join(" ");
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* A chart, from whatever the model sent.
|
|
106
|
+
*
|
|
107
|
+
* The four variants share one pass over the data and differ only in what each
|
|
108
|
+
* series draws: a polyline, a filled polygon under the same polyline, or one
|
|
109
|
+
* rect per point. `sparkline` is `line` with the axis and legend suppressed
|
|
110
|
+
* whatever the spec asked for — it is the variant that exists to sit inside a
|
|
111
|
+
* sentence, and an axis in a sentence is not a sparkline.
|
|
112
|
+
*/
|
|
113
|
+
function GenerativeChart({ node }) {
|
|
114
|
+
const variant = choice(node, "variant", VARIANTS) ?? "line";
|
|
115
|
+
const series = seriesList(node).slice(0, 24);
|
|
116
|
+
const bare = variant === "sparkline";
|
|
117
|
+
const stacked = flag(node, "stacked") && (variant === "bar" || variant === "area");
|
|
118
|
+
const showAxis = !bare && flag(node, "showAxis");
|
|
119
|
+
const showLegend = !bare && flag(node, "showLegend");
|
|
120
|
+
const labels = stringList(node["labels"]);
|
|
121
|
+
const override = safeColor(node, "color");
|
|
122
|
+
const extent = extentOf(series, stacked);
|
|
123
|
+
const left = showAxis ? GUTTER : PAD;
|
|
124
|
+
const plot = plotter(extent, left);
|
|
125
|
+
const zero = plot.y(Math.max(extent.low, Math.min(0, extent.high)));
|
|
126
|
+
const floors = [];
|
|
127
|
+
if (stacked) {
|
|
128
|
+
const running = [];
|
|
129
|
+
for (const one of series) {
|
|
130
|
+
const floor = one.data.map((_, at) => running[at] ?? 0);
|
|
131
|
+
floors.push(floor);
|
|
132
|
+
one.data.forEach((value, at) => {
|
|
133
|
+
running[at] = (running[at] ?? 0) + value;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return /* @__PURE__ */ jsxs("figure", {
|
|
138
|
+
"data-aui": "chart",
|
|
139
|
+
"data-aui-variant": variant,
|
|
140
|
+
children: [
|
|
141
|
+
/* @__PURE__ */ jsx("div", {
|
|
142
|
+
"data-aui": "chart-frame",
|
|
143
|
+
children: /* @__PURE__ */ jsxs("svg", {
|
|
144
|
+
viewBox: `0 0 ${W} ${H}`,
|
|
145
|
+
preserveAspectRatio: "none",
|
|
146
|
+
role: "presentation",
|
|
147
|
+
children: [showAxis ? /* @__PURE__ */ jsx("g", {
|
|
148
|
+
"data-aui": "chart-ticks",
|
|
149
|
+
children: [
|
|
150
|
+
extent.high,
|
|
151
|
+
(extent.high + extent.low) / 2,
|
|
152
|
+
extent.low
|
|
153
|
+
].map((value, at) => /* @__PURE__ */ jsxs(React.Fragment, { children: [/* @__PURE__ */ jsx("line", {
|
|
154
|
+
x1: left,
|
|
155
|
+
x2: 296,
|
|
156
|
+
y1: plot.y(value),
|
|
157
|
+
y2: plot.y(value)
|
|
158
|
+
}), /* @__PURE__ */ jsx("text", {
|
|
159
|
+
x: left - 4,
|
|
160
|
+
y: fit(plot.y(value) + 3, 8, 118),
|
|
161
|
+
textAnchor: "end",
|
|
162
|
+
children: round(value)
|
|
163
|
+
})] }, at))
|
|
164
|
+
}) : null, series.map((one, index) => /* @__PURE__ */ jsx("g", {
|
|
165
|
+
"data-aui": "chart-series",
|
|
166
|
+
"data-aui-series": String(index % SERIES_RUNGS),
|
|
167
|
+
style: override === void 0 ? void 0 : { ["--aui-series-color"]: override },
|
|
168
|
+
children: variant === "bar" ? one.data.map((value, at) => {
|
|
169
|
+
const width = Math.max(1, (W - left - PAD) / Math.max(one.data.length * 1.6, 1));
|
|
170
|
+
const base = stacked ? plot.y(floors[index]?.[at] ?? 0) : zero;
|
|
171
|
+
const top = stacked ? plot.y((floors[index]?.[at] ?? 0) + value) : plot.y(value);
|
|
172
|
+
return /* @__PURE__ */ jsx("rect", {
|
|
173
|
+
x: round(plot.x(at, one.data.length) - width / 2),
|
|
174
|
+
y: round(Math.min(base, top)),
|
|
175
|
+
width: round(width),
|
|
176
|
+
height: round(Math.max(1, Math.abs(base - top)))
|
|
177
|
+
}, at);
|
|
178
|
+
}) : /* @__PURE__ */ jsxs(Fragment, { children: [variant === "area" ? /* @__PURE__ */ jsx("polygon", { points: `${round(plot.x(0, one.data.length))},${round(zero)} ${points(stacked ? one.data.map((value, at) => (floors[index]?.[at] ?? 0) + value) : one.data, plot)} ${round(plot.x(one.data.length - 1, one.data.length))},${round(zero)}` }) : null, /* @__PURE__ */ jsx("polyline", { points: points(stacked ? one.data.map((value, at) => (floors[index]?.[at] ?? 0) + value) : one.data, plot) })] })
|
|
179
|
+
}, `${one.label}:${index}`))]
|
|
180
|
+
})
|
|
181
|
+
}),
|
|
182
|
+
labels.length > 0 && !bare ? /* @__PURE__ */ jsx("div", {
|
|
183
|
+
"data-aui": "chart-xlabels",
|
|
184
|
+
children: labels.map((label, at) => /* @__PURE__ */ jsx("span", { children: label }, `${label}:${at}`))
|
|
185
|
+
}) : null,
|
|
186
|
+
showLegend ? /* @__PURE__ */ jsx("figcaption", {
|
|
187
|
+
"data-aui": "chart-legend",
|
|
188
|
+
children: series.map((one, index) => /* @__PURE__ */ jsxs("span", {
|
|
189
|
+
"data-aui": "chart-legend-item",
|
|
190
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
191
|
+
"data-aui": "chart-legend-swatch",
|
|
192
|
+
"data-aui-series": String(index % SERIES_RUNGS)
|
|
193
|
+
}), one.label === "" ? str(node, "label") : one.label]
|
|
194
|
+
}, `${one.label}:${index}`))
|
|
195
|
+
}) : null
|
|
196
|
+
]
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
//#endregion
|
|
200
|
+
export { GenerativeChart };
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
//#region src/elements/generative/faults.tsx
|
|
5
|
+
/**
|
|
6
|
+
* What the renderer draws when it will not guess.
|
|
7
|
+
*
|
|
8
|
+
* Two shapes, and the difference between them is how much of the message
|
|
9
|
+
* survived. A **fallback** is one node the renderer could not draw — an unknown
|
|
10
|
+
* `$type`, a child that is not a node, a subtree past the depth cap — and it is
|
|
11
|
+
* drawn *in place*, so the nodes around it still render and the person still
|
|
12
|
+
* gets their answer with one hole in it. An **error state** is the whole spec
|
|
13
|
+
* failing at the root, where there is nothing to draw around.
|
|
14
|
+
*
|
|
15
|
+
* Neither is a thrown exception, and that is the whole design. A model composes
|
|
16
|
+
* this tree; a model is wrong sometimes; and a console that unmounts a
|
|
17
|
+
* conversation because a widget named a component that does not exist has
|
|
18
|
+
* turned a cosmetic problem into a lost session. The cost of never throwing is
|
|
19
|
+
* that a caller who wants to know has to be told another way, which is what
|
|
20
|
+
* `onFault` is for.
|
|
21
|
+
*/
|
|
22
|
+
/** What a reader is told, per kind of refusal. */
|
|
23
|
+
const HEADLINE = {
|
|
24
|
+
"unknown-type": "Unsupported component",
|
|
25
|
+
"not-a-node": "Malformed content",
|
|
26
|
+
"missing-prop": "Incomplete component",
|
|
27
|
+
"too-deep": "Nested too deeply"
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* The in-place notice for one node.
|
|
31
|
+
*
|
|
32
|
+
* Deliberately legible rather than discreet. The temptation with a fallback is
|
|
33
|
+
* to render nothing and keep the composition looking intact, and it is the
|
|
34
|
+
* wrong instinct twice over: a missing card is indistinguishable from a model
|
|
35
|
+
* that chose not to send one, so nobody ever reports it; and the person best
|
|
36
|
+
* placed to notice that this console is a version behind the model driving it
|
|
37
|
+
* is the person looking at the screen.
|
|
38
|
+
*
|
|
39
|
+
* `role="note"` rather than `alert`: several of these can appear in one
|
|
40
|
+
* message, and a screen reader announcing each interruption in the middle of a
|
|
41
|
+
* response is worse than the hole it is describing. The error state below is
|
|
42
|
+
* the one that interrupts.
|
|
43
|
+
*/
|
|
44
|
+
function GenerativeFallback({ fault }) {
|
|
45
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
46
|
+
"data-aui": "fallback",
|
|
47
|
+
"data-aui-fault": fault.kind,
|
|
48
|
+
role: "note",
|
|
49
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
50
|
+
"data-aui": "fallback-headline",
|
|
51
|
+
children: HEADLINE[fault.kind]
|
|
52
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
53
|
+
"data-aui": "fallback-detail",
|
|
54
|
+
children: fault.message
|
|
55
|
+
})]
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The root-level error state: what a spec that is not a spec looks like.
|
|
60
|
+
*
|
|
61
|
+
* The contract this exists for is "not a blank". A renderer handed a string, an
|
|
62
|
+
* array, `null`, or an object with no `$type` has nothing to walk, and the
|
|
63
|
+
* natural implementation returns `null` — which draws an empty box where a
|
|
64
|
+
* response should be, tells nobody anything, and looks exactly like a message
|
|
65
|
+
* that is still streaming. So the empty case is a *rendered* case, with words
|
|
66
|
+
* in it.
|
|
67
|
+
*
|
|
68
|
+
* `role="alert"` here and nowhere else: this one is the whole answer failing.
|
|
69
|
+
*/
|
|
70
|
+
function GenerativeError({ detail }) {
|
|
71
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
72
|
+
"data-aui": "error",
|
|
73
|
+
role: "alert",
|
|
74
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
75
|
+
"data-aui": "error-headline",
|
|
76
|
+
children: "This response could not be displayed"
|
|
77
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
78
|
+
"data-aui": "error-detail",
|
|
79
|
+
children: detail
|
|
80
|
+
})]
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* An error boundary around the walk, because every reader has a limit.
|
|
85
|
+
*
|
|
86
|
+
* The readers in `spec.ts` cover the shapes this renderer knows to expect, and
|
|
87
|
+
* an error boundary covers the ones it does not. Three things can still throw
|
|
88
|
+
* inside a node that read cleanly: a caller's own `renderMarkdown`, which is
|
|
89
|
+
* arbitrary code this module invokes with a model's string; a getter on a spec
|
|
90
|
+
* that arrived as a live object rather than parsed JSON; and any future
|
|
91
|
+
* intrinsic whose author was less careful than this file's. Without a boundary
|
|
92
|
+
* each of those unmounts the nearest ancestor that has one — in a chat console,
|
|
93
|
+
* usually the transcript.
|
|
94
|
+
*
|
|
95
|
+
* A class component, which is the only way React exposes this. It is also why
|
|
96
|
+
* the walk happens *inside* the boundary rather than in `GenerativeUI`'s own
|
|
97
|
+
* render: a throw during the parent's render is a throw the child's boundary
|
|
98
|
+
* never sees.
|
|
99
|
+
*/
|
|
100
|
+
var GenerativeBoundary = class extends React.Component {
|
|
101
|
+
state = { thrown: null };
|
|
102
|
+
static getDerivedStateFromError(error) {
|
|
103
|
+
return { thrown: error instanceof Error ? error.message : String(error) };
|
|
104
|
+
}
|
|
105
|
+
render() {
|
|
106
|
+
if (this.state.thrown === null) return this.props.children;
|
|
107
|
+
return /* @__PURE__ */ jsx(GenerativeError, { detail: `The renderer stopped: ${this.state.thrown}.` });
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
//#endregion
|
|
111
|
+
export { GenerativeBoundary, GenerativeError, GenerativeFallback };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
//#region src/elements/generative/icons.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* The 24 glyphs the vocabulary publishes, drawn here rather than imported.
|
|
5
|
+
*
|
|
6
|
+
* `Icon` takes a `name` from a fixed set — upstream's list, transcribed in the
|
|
7
|
+
* catalogue report §B — and every element in the elements family beside this
|
|
8
|
+
* one draws its icons with `lucide-react`, an optional peer of `./elements`.
|
|
9
|
+
* This subpath deliberately does not, and the reason is the same reason the
|
|
10
|
+
* stylesheet is plain CSS: a spec-driven widget has to render in a host that
|
|
11
|
+
* brought nothing. `./elements/generative` declares no optional peer at all, so
|
|
12
|
+
* an app can put a model's composition on the screen with `@cueplusplus/ui`
|
|
13
|
+
* installed and nothing else — and there is no package in the tree whose
|
|
14
|
+
* absence turns a weather card into a stack trace.
|
|
15
|
+
*
|
|
16
|
+
* It buys one more property, which the suite asserts: no element the renderer
|
|
17
|
+
* produces carries a `class` attribute. lucide stamps `class="lucide
|
|
18
|
+
* lucide-sun"` on every icon it draws, which is harmless and is still a name in
|
|
19
|
+
* the host app's global namespace that cue never asked for.
|
|
20
|
+
*
|
|
21
|
+
* The geometry is a 24×24 grid with a 2-unit margin, `currentColor` on the
|
|
22
|
+
* stroke and nothing on the fill, which is the convention every icon set in
|
|
23
|
+
* this repo already follows. Stroke weight is *not* an attribute here: the
|
|
24
|
+
* stylesheet sets it from `--aui-icon-stroke`, so it tracks the console's own
|
|
25
|
+
* `--cue-icon-stroke` and an island can change it without re-rendering.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Every name a model may put in `Icon.name`.
|
|
29
|
+
*
|
|
30
|
+
* The order is upstream's, which groups them by what they are for — weather,
|
|
31
|
+
* transport controls, marks, shapes, arrows, and the eight object glyphs — and
|
|
32
|
+
* that is worth keeping: it is the order the docs page lists, so a reader
|
|
33
|
+
* comparing the two is comparing like with like.
|
|
34
|
+
*/
|
|
35
|
+
declare const GENERATIVE_ICONS: readonly ["sun", "moon", "cloud", "rain", "snow", "wind", "play", "pause", "check", "x", "star", "heart", "arrow-right", "arrow-up-right", "chevron-right", "calendar", "clock", "map-pin", "plane", "truck", "credit-card", "user", "search", "bell"];
|
|
36
|
+
/** One of the 24 names {@link GENERATIVE_ICONS} lists. */
|
|
37
|
+
type GenerativeIconName = (typeof GENERATIVE_ICONS)[number];
|
|
38
|
+
/** Whether `name` is one of the 24 the vocabulary publishes. */
|
|
39
|
+
declare function isGenerativeIcon(name: string): name is GenerativeIconName;
|
|
40
|
+
//#endregion
|
|
41
|
+
export { GENERATIVE_ICONS, GenerativeIconName, isGenerativeIcon };
|