@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,165 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { overlaySurfaceClasses } from "../overlays/_surface.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/charts/theme.tsx
|
|
6
|
+
/**
|
|
7
|
+
* The recharts chrome, restated in this system's vocabulary.
|
|
8
|
+
*
|
|
9
|
+
* Recharts paints its grid, axes and ticks with presentation attributes baked
|
|
10
|
+
* into the SVG (`stroke="#ccc"`, `fill="#666"`). Those attributes lose to any
|
|
11
|
+
* CSS declaration, which is the whole opening: one scoped stylesheet on the
|
|
12
|
+
* chart's wrapper re-inks the entire chrome without a single prop threaded
|
|
13
|
+
* through the chart, and — because the declarations are token references — it
|
|
14
|
+
* re-inks again on a theme, mode or density switch with no React involved.
|
|
15
|
+
*
|
|
16
|
+
* The alternative, spreading a `{ stroke, fill, fontSize }` bundle onto every
|
|
17
|
+
* `CartesianGrid`, `XAxis` and `YAxis`, is the version of this that rots: the one
|
|
18
|
+
* axis somebody forgets to spread onto is grey forever, and nothing catches it.
|
|
19
|
+
*
|
|
20
|
+
* Deliberately recharts-free at the module level: only the container imports the
|
|
21
|
+
* library, so this file and the palette stay importable from groups that never
|
|
22
|
+
* render a chart.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Everything the chart wrapper needs to re-ink recharts' own SVG.
|
|
26
|
+
*
|
|
27
|
+
* Spread by `ChartContainer`; exported so an app that mounts a chart some other
|
|
28
|
+
* way (a recharts component outside the container, a printed export) gets the
|
|
29
|
+
* same chrome from the same source.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* <div className={cn(chartChromeClasses, "h-40")}><LineChart …/></div>
|
|
33
|
+
*/
|
|
34
|
+
const chartChromeClasses = [
|
|
35
|
+
"[&_.recharts-cartesian-grid_line]:stroke-border",
|
|
36
|
+
"[&_.recharts-cartesian-grid_line]:[stroke-opacity:0.45]",
|
|
37
|
+
"[&_.recharts-cartesian-axis-line]:stroke-border",
|
|
38
|
+
"[&_.recharts-cartesian-axis-tick-line]:stroke-border",
|
|
39
|
+
"[&_.recharts-cartesian-axis-tick-value]:font-mono",
|
|
40
|
+
"[&_.recharts-cartesian-axis-tick-value]:text-(length:--cue-text-label)",
|
|
41
|
+
"[&_.recharts-cartesian-axis-tick-value]:fill-fg-subtle",
|
|
42
|
+
"[&_.recharts-label]:font-mono",
|
|
43
|
+
"[&_.recharts-label]:text-(length:--cue-text-label)",
|
|
44
|
+
"[&_.recharts-label]:fill-fg-muted",
|
|
45
|
+
"[&_.recharts-legend-item-text]:font-mono",
|
|
46
|
+
"[&_.recharts-legend-item-text]:text-(length:--cue-text-label)",
|
|
47
|
+
"[&_.recharts-reference-line-line]:stroke-danger",
|
|
48
|
+
"[&_.recharts-active-dot_circle]:stroke-bg"
|
|
49
|
+
].join(" ");
|
|
50
|
+
/**
|
|
51
|
+
* The cursor recharts draws under the tooltip.
|
|
52
|
+
*
|
|
53
|
+
* One object for both shapes it can take: a `<line>` on a line or area chart,
|
|
54
|
+
* where only the stroke lands, and a `<rect>` on a bar chart, where the faint
|
|
55
|
+
* fill washes the hovered band and the dashed rim keeps its edges legible. The
|
|
56
|
+
* dash is the same `2 3` the rest of the system uses for "this is a guide, not
|
|
57
|
+
* data".
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* <Tooltip cursor={chartTooltipCursor} content={<ChartTooltipContent />} />
|
|
61
|
+
*/
|
|
62
|
+
const chartTooltipCursor = {
|
|
63
|
+
stroke: "var(--cue-fg)",
|
|
64
|
+
strokeOpacity: .5,
|
|
65
|
+
strokeWidth: 1,
|
|
66
|
+
strokeDasharray: "2 3",
|
|
67
|
+
fill: "var(--cue-fg)",
|
|
68
|
+
fillOpacity: .06
|
|
69
|
+
};
|
|
70
|
+
/** Identity and behaviour attributes a caller may still put on the surface. */
|
|
71
|
+
const DOM_PASSTHROUGH = /* @__PURE__ */ new Set([
|
|
72
|
+
"id",
|
|
73
|
+
"role",
|
|
74
|
+
"title",
|
|
75
|
+
"lang",
|
|
76
|
+
"dir",
|
|
77
|
+
"tabIndex"
|
|
78
|
+
]);
|
|
79
|
+
/**
|
|
80
|
+
* The subset of the incoming props that belongs on a `<div>`.
|
|
81
|
+
*
|
|
82
|
+
* recharts renders custom tooltip content with `cloneElement(content, props)`,
|
|
83
|
+
* so the entire `<Tooltip>` configuration — `cursor`, `wrapperStyle`,
|
|
84
|
+
* `animationEasing`, two dozen more — arrives here as props. Spread that onto a
|
|
85
|
+
* `<div>` and you get nineteen junk attributes in the DOM and a React warning
|
|
86
|
+
* for each one.
|
|
87
|
+
*
|
|
88
|
+
* An allowlist rather than a denylist, because the denylist would need editing
|
|
89
|
+
* every time recharts adds an option, and nothing would fail until someone
|
|
90
|
+
* noticed the attributes. What a DOM node can carry, by contrast, does not
|
|
91
|
+
* change: data and ARIA attributes, and a handful of identity ones. `className`
|
|
92
|
+
* and `style` skip this filter entirely — they are destructured and applied by
|
|
93
|
+
* name, so the two props a caller most wants are never at the allowlist's mercy.
|
|
94
|
+
*/
|
|
95
|
+
function domProps(props) {
|
|
96
|
+
const kept = {};
|
|
97
|
+
for (const [key, value] of Object.entries(props)) if (key.startsWith("data-") || key.startsWith("aria-") || DOM_PASSTHROUGH.has(key)) kept[key] = value;
|
|
98
|
+
return kept;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The tooltip surface: an overlay, styled like every other overlay.
|
|
102
|
+
*
|
|
103
|
+
* A chart tooltip *is* a floating surface, so it gets exactly what a Popover
|
|
104
|
+
* gets — `surface-2` fill, the overlay rim, one soft shadow — from
|
|
105
|
+
* `_surface.ts` rather than from a second, chart-only recipe that would drift.
|
|
106
|
+
* What it adds is the reading discipline the rest of the system uses for
|
|
107
|
+
* numbers: mono, tabular figures, values right-aligned so a column of them lines
|
|
108
|
+
* up under the pointer.
|
|
109
|
+
*
|
|
110
|
+
* Returns `null` when the pointer is off the plot or the payload is empty,
|
|
111
|
+
* because recharts keeps the content mounted between hovers.
|
|
112
|
+
*
|
|
113
|
+
* `formatter` and `labelFormatter` may equally be set on the `<Tooltip>` itself:
|
|
114
|
+
* recharts forwards its own configuration into cloned content, so both spellings
|
|
115
|
+
* land here. Everything else in that configuration is dropped rather than
|
|
116
|
+
* rendered — see {@link domProps} — which also means a handler passed to this
|
|
117
|
+
* component does not reach the surface. Nothing would fire on it anyway: the
|
|
118
|
+
* tooltip is drawn under the pointer, not in its path.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* <Tooltip cursor={chartTooltipCursor} content={<ChartTooltipContent />} />
|
|
122
|
+
*/
|
|
123
|
+
const ChartTooltipContent = React.forwardRef(function ChartTooltipContent({ className, style, active, payload, label, hideLabel = false, hideIndicator = false, labelFormatter, formatter, ...elementProps }, ref) {
|
|
124
|
+
const entries = payload ?? [];
|
|
125
|
+
if (active !== true || entries.length === 0) return null;
|
|
126
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
127
|
+
ref,
|
|
128
|
+
"data-slot": "chart-tooltip",
|
|
129
|
+
className: cn(overlaySurfaceClasses, "flex min-w-[8rem] flex-col gap-(--cue-space-2) px-(--cue-space-3) py-(--cue-space-2) font-mono text-(length:--cue-text-label)", className),
|
|
130
|
+
style,
|
|
131
|
+
...domProps(elementProps),
|
|
132
|
+
children: [hideLabel || label === void 0 || label === null ? null : /* @__PURE__ */ jsx("div", {
|
|
133
|
+
"data-slot": "chart-tooltip-label",
|
|
134
|
+
className: "text-fg-muted",
|
|
135
|
+
children: labelFormatter === void 0 ? label : labelFormatter(label, entries)
|
|
136
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
137
|
+
"data-slot": "chart-tooltip-items",
|
|
138
|
+
className: "flex flex-col gap-(--cue-space-1)",
|
|
139
|
+
children: entries.map((entry, index) => /* @__PURE__ */ jsxs("div", {
|
|
140
|
+
"data-slot": "chart-tooltip-item",
|
|
141
|
+
className: "flex items-center gap-(--cue-space-2)",
|
|
142
|
+
children: [
|
|
143
|
+
hideIndicator ? null : /* @__PURE__ */ jsx("span", {
|
|
144
|
+
"aria-hidden": "true",
|
|
145
|
+
"data-slot": "chart-tooltip-indicator",
|
|
146
|
+
className: "size-[0.375rem] shrink-0 rounded-[1px]",
|
|
147
|
+
style: { backgroundColor: entry.color }
|
|
148
|
+
}),
|
|
149
|
+
/* @__PURE__ */ jsx("span", {
|
|
150
|
+
"data-slot": "chart-tooltip-name",
|
|
151
|
+
className: "text-fg-muted",
|
|
152
|
+
children: entry.name ?? entry.dataKey
|
|
153
|
+
}),
|
|
154
|
+
/* @__PURE__ */ jsx("span", {
|
|
155
|
+
"data-slot": "chart-tooltip-value",
|
|
156
|
+
className: "ml-auto tabular-nums text-fg",
|
|
157
|
+
children: formatter === void 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [entry.value, entry.unit] }) : formatter(entry.value, entry.name ?? entry.dataKey, entry, index)
|
|
158
|
+
})
|
|
159
|
+
]
|
|
160
|
+
}, index))
|
|
161
|
+
})]
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
//#endregion
|
|
165
|
+
export { ChartTooltipContent, chartChromeClasses, chartTooltipCursor };
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
//#region src/charts/tones.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The categorical palette a chart assigns series from.
|
|
4
|
+
*
|
|
5
|
+
* It is two halves, and the seam between them is the whole design:
|
|
6
|
+
*
|
|
7
|
+
* - **The first six are the theme's own status vocabulary** — the same `accent`,
|
|
8
|
+
* `info`, `ok`, `warn`, `danger` and `fg-muted` a StatusDot and a Chip use. A
|
|
9
|
+
* chart of "requests vs errors" should draw errors in the colour the rest of
|
|
10
|
+
* the console already means *error* by, and it should re-hue with the theme
|
|
11
|
+
* like everything else. They are expressed as `var(--cue-*)` references so
|
|
12
|
+
* that happens in CSS, with no re-render.
|
|
13
|
+
* - **The next nine are generated and fixed** — nine oklch hues at one lightness
|
|
14
|
+
* and one chroma. Past six series the semantic vocabulary is exhausted, and
|
|
15
|
+
* inventing a seventh *meaning* would be a lie; what a seventh series needs is
|
|
16
|
+
* simply to be told apart from the sixth. Fixed literals also mean a legend
|
|
17
|
+
* screenshotted under one theme still matches the chart under another, which a
|
|
18
|
+
* theme-derived extension could not promise.
|
|
19
|
+
*
|
|
20
|
+
* Nothing here is a hard-coded brand colour, and nothing is a second spelling of
|
|
21
|
+
* a token: the semantic half *is* the token layer, seen from a chart.
|
|
22
|
+
*/
|
|
23
|
+
/** The six semantic tokens, in the order a chart consumes them. */
|
|
24
|
+
declare const CHART_TONE_TOKENS: readonly ["accent", "info", "ok", "warn", "danger", "fg-muted"];
|
|
25
|
+
/** One of the semantic series colours. */
|
|
26
|
+
type ChartToneToken = (typeof CHART_TONE_TOKENS)[number];
|
|
27
|
+
/**
|
|
28
|
+
* Lightness of every generated hue.
|
|
29
|
+
*
|
|
30
|
+
* One value for all nine, because a categorical palette whose members differ in
|
|
31
|
+
* lightness reads as an ordering — and a category list has no order. 0.7 is the
|
|
32
|
+
* rung that holds against this portfolio's dark grounds without glowing, and
|
|
33
|
+
* stays readable on the light ones.
|
|
34
|
+
*/
|
|
35
|
+
declare const CHART_EXTENDED_LIGHTNESS = 0.7;
|
|
36
|
+
/**
|
|
37
|
+
* Chroma of every generated hue.
|
|
38
|
+
*
|
|
39
|
+
* 0.12 is the largest chroma at which *all nine* hues fit inside sRGB — push it
|
|
40
|
+
* to 0.14 and the teal and cyan ends fall out of gamut, so the browser clips
|
|
41
|
+
* them and two neighbours converge on the same green. A palette whose members
|
|
42
|
+
* cannot be told apart is worse than no palette at all.
|
|
43
|
+
*/
|
|
44
|
+
declare const CHART_EXTENDED_CHROMA = 0.12;
|
|
45
|
+
/** The nine hue angles: evenly spaced 40° apart, starting at blue. */
|
|
46
|
+
declare const CHART_EXTENDED_HUES: readonly number[];
|
|
47
|
+
/** {@link CHART_EXTENDED_HUES} as `oklch()` literals. */
|
|
48
|
+
declare const CHART_EXTENDED_TONES: readonly string[];
|
|
49
|
+
/**
|
|
50
|
+
* The whole palette as CSS values — six token references, then nine literals.
|
|
51
|
+
*
|
|
52
|
+
* Safe to hand straight to a `stroke` or a `fill`: the references resolve in the
|
|
53
|
+
* theme the chart is stamped with, so the palette follows a theme switch without
|
|
54
|
+
* React hearing about it.
|
|
55
|
+
*/
|
|
56
|
+
declare const CHART_TONES: readonly string[];
|
|
57
|
+
/** Prefix of the per-series custom properties `ChartContainer` publishes. */
|
|
58
|
+
declare const CHART_TONE_PROPERTY_PREFIX = "--chart-";
|
|
59
|
+
/**
|
|
60
|
+
* The custom property carrying series `index`.
|
|
61
|
+
*
|
|
62
|
+
* One-based in CSS, zero-based in JS: `--chart-1` is the first series, because
|
|
63
|
+
* `nth-child`-style CSS counting starts at one and a stylesheet reading
|
|
64
|
+
* `--chart-0` would be the odd one out.
|
|
65
|
+
*
|
|
66
|
+
* @param index - Zero-based series index.
|
|
67
|
+
* @example
|
|
68
|
+
* chartToneProperty(0); // → "--chart-1"
|
|
69
|
+
*/
|
|
70
|
+
declare function chartToneProperty(index: number): string;
|
|
71
|
+
/**
|
|
72
|
+
* {@link chartToneProperty} wrapped in `var()`, ready for a recharts prop.
|
|
73
|
+
*
|
|
74
|
+
* @param index - Zero-based series index.
|
|
75
|
+
* @example
|
|
76
|
+
* <Line dataKey="requests" stroke={chartToneVar(0)} />
|
|
77
|
+
*/
|
|
78
|
+
declare function chartToneVar(index: number): string;
|
|
79
|
+
interface ChartTonesOptions {
|
|
80
|
+
/**
|
|
81
|
+
* Where the semantic tokens resolve. Defaults to the document element. Pass a
|
|
82
|
+
* node inside a portal or a nested theme to read that scope instead.
|
|
83
|
+
*/
|
|
84
|
+
element?: Element | null;
|
|
85
|
+
/**
|
|
86
|
+
* How many colours to return. Beyond the palette's own length it cycles, so a
|
|
87
|
+
* 20-series chart still gets 20 entries. Defaults to the whole palette.
|
|
88
|
+
*/
|
|
89
|
+
count?: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The palette with its semantic half resolved against the live theme.
|
|
93
|
+
*
|
|
94
|
+
* {@link CHART_TONES} is what you paint with; this is what you *compute* with —
|
|
95
|
+
* a legend that needs a real colour string, a canvas overlay, a downstream oklch
|
|
96
|
+
* derivation. Because it resolves at call time it is theme-reactive in the same
|
|
97
|
+
* sense the CSS is: call it during render and it reports the theme stamped right
|
|
98
|
+
* now.
|
|
99
|
+
*
|
|
100
|
+
* Tokens that nothing has defined fall back to their `var()` reference rather
|
|
101
|
+
* than to an invented colour — the value is then still correct in a browser,
|
|
102
|
+
* just not yet computable.
|
|
103
|
+
*
|
|
104
|
+
* @param options - Where to resolve, and how many colours to return.
|
|
105
|
+
* @returns Concrete CSS colours, one per series.
|
|
106
|
+
* @example
|
|
107
|
+
* const [first] = chartTones({ element: chartRef.current });
|
|
108
|
+
*/
|
|
109
|
+
declare function chartTones(options?: ChartTonesOptions): string[];
|
|
110
|
+
//#endregion
|
|
111
|
+
export { CHART_EXTENDED_CHROMA, CHART_EXTENDED_HUES, CHART_EXTENDED_LIGHTNESS, CHART_EXTENDED_TONES, CHART_TONES, CHART_TONE_PROPERTY_PREFIX, CHART_TONE_TOKENS, ChartToneToken, ChartTonesOptions, chartToneProperty, chartToneVar, chartTones };
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { resolveToken, tokenRef } from "./_token.js";
|
|
2
|
+
//#region src/charts/tones.ts
|
|
3
|
+
/**
|
|
4
|
+
* The categorical palette a chart assigns series from.
|
|
5
|
+
*
|
|
6
|
+
* It is two halves, and the seam between them is the whole design:
|
|
7
|
+
*
|
|
8
|
+
* - **The first six are the theme's own status vocabulary** — the same `accent`,
|
|
9
|
+
* `info`, `ok`, `warn`, `danger` and `fg-muted` a StatusDot and a Chip use. A
|
|
10
|
+
* chart of "requests vs errors" should draw errors in the colour the rest of
|
|
11
|
+
* the console already means *error* by, and it should re-hue with the theme
|
|
12
|
+
* like everything else. They are expressed as `var(--cue-*)` references so
|
|
13
|
+
* that happens in CSS, with no re-render.
|
|
14
|
+
* - **The next nine are generated and fixed** — nine oklch hues at one lightness
|
|
15
|
+
* and one chroma. Past six series the semantic vocabulary is exhausted, and
|
|
16
|
+
* inventing a seventh *meaning* would be a lie; what a seventh series needs is
|
|
17
|
+
* simply to be told apart from the sixth. Fixed literals also mean a legend
|
|
18
|
+
* screenshotted under one theme still matches the chart under another, which a
|
|
19
|
+
* theme-derived extension could not promise.
|
|
20
|
+
*
|
|
21
|
+
* Nothing here is a hard-coded brand colour, and nothing is a second spelling of
|
|
22
|
+
* a token: the semantic half *is* the token layer, seen from a chart.
|
|
23
|
+
*/
|
|
24
|
+
/** The six semantic tokens, in the order a chart consumes them. */
|
|
25
|
+
const CHART_TONE_TOKENS = [
|
|
26
|
+
"accent",
|
|
27
|
+
"info",
|
|
28
|
+
"ok",
|
|
29
|
+
"warn",
|
|
30
|
+
"danger",
|
|
31
|
+
"fg-muted"
|
|
32
|
+
];
|
|
33
|
+
/**
|
|
34
|
+
* Lightness of every generated hue.
|
|
35
|
+
*
|
|
36
|
+
* One value for all nine, because a categorical palette whose members differ in
|
|
37
|
+
* lightness reads as an ordering — and a category list has no order. 0.7 is the
|
|
38
|
+
* rung that holds against this portfolio's dark grounds without glowing, and
|
|
39
|
+
* stays readable on the light ones.
|
|
40
|
+
*/
|
|
41
|
+
const CHART_EXTENDED_LIGHTNESS = .7;
|
|
42
|
+
/**
|
|
43
|
+
* Chroma of every generated hue.
|
|
44
|
+
*
|
|
45
|
+
* 0.12 is the largest chroma at which *all nine* hues fit inside sRGB — push it
|
|
46
|
+
* to 0.14 and the teal and cyan ends fall out of gamut, so the browser clips
|
|
47
|
+
* them and two neighbours converge on the same green. A palette whose members
|
|
48
|
+
* cannot be told apart is worse than no palette at all.
|
|
49
|
+
*/
|
|
50
|
+
const CHART_EXTENDED_CHROMA = .12;
|
|
51
|
+
/** The nine hue angles: evenly spaced 40° apart, starting at blue. */
|
|
52
|
+
const CHART_EXTENDED_HUES = [
|
|
53
|
+
250,
|
|
54
|
+
290,
|
|
55
|
+
330,
|
|
56
|
+
10,
|
|
57
|
+
50,
|
|
58
|
+
90,
|
|
59
|
+
130,
|
|
60
|
+
170,
|
|
61
|
+
210
|
|
62
|
+
];
|
|
63
|
+
/** {@link CHART_EXTENDED_HUES} as `oklch()` literals. */
|
|
64
|
+
const CHART_EXTENDED_TONES = CHART_EXTENDED_HUES.map((hue) => `oklch(${CHART_EXTENDED_LIGHTNESS} ${CHART_EXTENDED_CHROMA} ${hue})`);
|
|
65
|
+
/**
|
|
66
|
+
* The whole palette as CSS values — six token references, then nine literals.
|
|
67
|
+
*
|
|
68
|
+
* Safe to hand straight to a `stroke` or a `fill`: the references resolve in the
|
|
69
|
+
* theme the chart is stamped with, so the palette follows a theme switch without
|
|
70
|
+
* React hearing about it.
|
|
71
|
+
*/
|
|
72
|
+
const CHART_TONES = [...CHART_TONE_TOKENS.map(tokenRef), ...CHART_EXTENDED_TONES];
|
|
73
|
+
/** Prefix of the per-series custom properties `ChartContainer` publishes. */
|
|
74
|
+
const CHART_TONE_PROPERTY_PREFIX = "--chart-";
|
|
75
|
+
/**
|
|
76
|
+
* The custom property carrying series `index`.
|
|
77
|
+
*
|
|
78
|
+
* One-based in CSS, zero-based in JS: `--chart-1` is the first series, because
|
|
79
|
+
* `nth-child`-style CSS counting starts at one and a stylesheet reading
|
|
80
|
+
* `--chart-0` would be the odd one out.
|
|
81
|
+
*
|
|
82
|
+
* @param index - Zero-based series index.
|
|
83
|
+
* @example
|
|
84
|
+
* chartToneProperty(0); // → "--chart-1"
|
|
85
|
+
*/
|
|
86
|
+
function chartToneProperty(index) {
|
|
87
|
+
return `${CHART_TONE_PROPERTY_PREFIX}${index + 1}`;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* {@link chartToneProperty} wrapped in `var()`, ready for a recharts prop.
|
|
91
|
+
*
|
|
92
|
+
* @param index - Zero-based series index.
|
|
93
|
+
* @example
|
|
94
|
+
* <Line dataKey="requests" stroke={chartToneVar(0)} />
|
|
95
|
+
*/
|
|
96
|
+
function chartToneVar(index) {
|
|
97
|
+
return `var(${chartToneProperty(index)})`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The palette with its semantic half resolved against the live theme.
|
|
101
|
+
*
|
|
102
|
+
* {@link CHART_TONES} is what you paint with; this is what you *compute* with —
|
|
103
|
+
* a legend that needs a real colour string, a canvas overlay, a downstream oklch
|
|
104
|
+
* derivation. Because it resolves at call time it is theme-reactive in the same
|
|
105
|
+
* sense the CSS is: call it during render and it reports the theme stamped right
|
|
106
|
+
* now.
|
|
107
|
+
*
|
|
108
|
+
* Tokens that nothing has defined fall back to their `var()` reference rather
|
|
109
|
+
* than to an invented colour — the value is then still correct in a browser,
|
|
110
|
+
* just not yet computable.
|
|
111
|
+
*
|
|
112
|
+
* @param options - Where to resolve, and how many colours to return.
|
|
113
|
+
* @returns Concrete CSS colours, one per series.
|
|
114
|
+
* @example
|
|
115
|
+
* const [first] = chartTones({ element: chartRef.current });
|
|
116
|
+
*/
|
|
117
|
+
function chartTones(options = {}) {
|
|
118
|
+
const { element, count } = options;
|
|
119
|
+
const palette = CHART_TONES.map((value, index) => {
|
|
120
|
+
const token = CHART_TONE_TOKENS[index];
|
|
121
|
+
return token === void 0 ? value : resolveToken(token, element) ?? value;
|
|
122
|
+
});
|
|
123
|
+
if (count === void 0) return palette;
|
|
124
|
+
return Array.from({ length: Math.max(0, count) }, (_unused, index) => palette[index % palette.length]);
|
|
125
|
+
}
|
|
126
|
+
//#endregion
|
|
127
|
+
export { CHART_EXTENDED_CHROMA, CHART_EXTENDED_HUES, CHART_EXTENDED_LIGHTNESS, CHART_EXTENDED_TONES, CHART_TONES, CHART_TONE_PROPERTY_PREFIX, CHART_TONE_TOKENS, chartToneProperty, chartToneVar, chartTones };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region src/chat/_glyphs.tsx
|
|
4
|
+
/**
|
|
5
|
+
* Shared chat glyphs.
|
|
6
|
+
*
|
|
7
|
+
* Drawn inline for the same reason as `overlays/_glyphs.tsx` and
|
|
8
|
+
* `instruments/_glyphs.tsx`: a crown on an avatar and a tick on an answered
|
|
9
|
+
* question should not put an icon dependency on the render path of a
|
|
10
|
+
* transcript, and hand-set strokes stay hairline-thin at the 8–12px sizes
|
|
11
|
+
* console density asks for. `currentColor` everywhere — the tone comes from the
|
|
12
|
+
* parent, which in this group is usually `var(--agent-color)`.
|
|
13
|
+
*
|
|
14
|
+
* @internal Not part of the public API.
|
|
15
|
+
*/
|
|
16
|
+
/** Three points and a band: the orchestrator's mark. */
|
|
17
|
+
function CrownGlyph(props) {
|
|
18
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
19
|
+
viewBox: "0 0 16 16",
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
"aria-hidden": "true",
|
|
22
|
+
...props,
|
|
23
|
+
children: /* @__PURE__ */ jsx("path", { d: "M2 5.5 4.75 8 8 3.5 11.25 8 14 5.5v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5Z" })
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/** The tick that says an answer landed. */
|
|
27
|
+
function CheckGlyph(props) {
|
|
28
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
29
|
+
viewBox: "0 0 16 16",
|
|
30
|
+
fill: "none",
|
|
31
|
+
stroke: "currentColor",
|
|
32
|
+
strokeWidth: "2",
|
|
33
|
+
strokeLinecap: "round",
|
|
34
|
+
strokeLinejoin: "round",
|
|
35
|
+
"aria-hidden": "true",
|
|
36
|
+
...props,
|
|
37
|
+
children: /* @__PURE__ */ jsx("path", { d: "m3 8.5 3.5 3.5L13 4.5" })
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/** A downward chevron — the direction the catch-up pill takes you. */
|
|
41
|
+
function ChevronDownGlyph(props) {
|
|
42
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
43
|
+
viewBox: "0 0 16 16",
|
|
44
|
+
fill: "none",
|
|
45
|
+
stroke: "currentColor",
|
|
46
|
+
strokeWidth: "2",
|
|
47
|
+
strokeLinecap: "round",
|
|
48
|
+
strokeLinejoin: "round",
|
|
49
|
+
"aria-hidden": "true",
|
|
50
|
+
...props,
|
|
51
|
+
children: /* @__PURE__ */ jsx("path", { d: "m3 6 5 5 5-5" })
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { CheckGlyph, ChevronDownGlyph, CrownGlyph };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/chat/agent-color.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Deterministic per-agent colour.
|
|
5
|
+
*
|
|
6
|
+
* In a multi-agent transcript the colour is not decoration — it is the only
|
|
7
|
+
* thing that lets a reader follow one agent's lane through a wall of nested
|
|
8
|
+
* cards. That makes two properties load-bearing:
|
|
9
|
+
*
|
|
10
|
+
* - **Deterministic.** The same slug is the same colour in every session, on
|
|
11
|
+
* every machine, in every screenshot. No allocation table, no state, no
|
|
12
|
+
* ordering dependency: just a hash of the slug, so two clients rendering the
|
|
13
|
+
* same thread agree without talking to each other.
|
|
14
|
+
* - **Theme-independent.** The hues are literal `oklch()` values rather than
|
|
15
|
+
* tokens, because a palette that re-hues per theme would break the first
|
|
16
|
+
* property. They sit at L ≈ 0.6 with moderate chroma, which is the band that
|
|
17
|
+
* stays legible against both the dark surfaces this portfolio defaults to and
|
|
18
|
+
* the light ones it supports.
|
|
19
|
+
*
|
|
20
|
+
* The orchestrator is the one exception: it borrows the theme accent, because
|
|
21
|
+
* "the lane everything delegates from" is exactly what the accent means
|
|
22
|
+
* everywhere else in the system.
|
|
23
|
+
*
|
|
24
|
+
* Ported from corale's `agentColor`, hash and palette order intact — existing
|
|
25
|
+
* transcripts keep their colours.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* The seven sub-agent hues, in the order the hash indexes them.
|
|
29
|
+
*
|
|
30
|
+
* Seven rather than a generated ramp: past about seven, adjacent hues stop
|
|
31
|
+
* being distinguishable at the 16–24px an avatar occupies, and a palette whose
|
|
32
|
+
* members cannot be told apart is worse than no palette at all.
|
|
33
|
+
*/
|
|
34
|
+
declare const AGENT_HUES: readonly string[];
|
|
35
|
+
/** What the orchestrator gets instead of a hue: the live theme accent. */
|
|
36
|
+
declare const AGENT_ROOT_COLOR = "var(--cue-accent)";
|
|
37
|
+
/**
|
|
38
|
+
* The custom property every chat part reads for its per-agent ink and rail.
|
|
39
|
+
*
|
|
40
|
+
* Published as a property rather than passed down as a prop so a caller can
|
|
41
|
+
* restyle a whole lane — a nested `DelegationCard`, the messages inside it, the
|
|
42
|
+
* rail down its side — by setting one value on the wrapper.
|
|
43
|
+
*/
|
|
44
|
+
declare const AGENT_COLOR_PROPERTY = "--agent-color";
|
|
45
|
+
interface AgentColorOptions {
|
|
46
|
+
/**
|
|
47
|
+
* Slug of the orchestrator. That one agent answers {@link AGENT_ROOT_COLOR}
|
|
48
|
+
* instead of a palette hue; everyone else is unaffected.
|
|
49
|
+
*/
|
|
50
|
+
root?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The colour for one agent: a stable palette hue, or the theme accent for the
|
|
54
|
+
* orchestrator.
|
|
55
|
+
*
|
|
56
|
+
* Pure and synchronous — safe to call during render, in a server component, or
|
|
57
|
+
* from a test asserting that yesterday's colour is still today's.
|
|
58
|
+
*
|
|
59
|
+
* @param slug - The agent's stable identifier.
|
|
60
|
+
* @param options - Pass `root` to hand the orchestrator the accent.
|
|
61
|
+
* @returns A CSS colour: an `oklch()` literal, or `var(--cue-accent)`.
|
|
62
|
+
* @example
|
|
63
|
+
* agentColor("researcher"); // → "oklch(0.62 0.19 20)"
|
|
64
|
+
* @example
|
|
65
|
+
* agentColor("chief", { root: "chief" }); // → "var(--cue-accent)"
|
|
66
|
+
*/
|
|
67
|
+
declare function agentColor(slug: string, options?: AgentColorOptions): string;
|
|
68
|
+
/**
|
|
69
|
+
* {@link agentColor} as an inline style, ready to spread onto an element.
|
|
70
|
+
*
|
|
71
|
+
* The cast is unavoidable: `React.CSSProperties` has no index signature for
|
|
72
|
+
* custom properties, and every alternative (a `Record<string, string>` the
|
|
73
|
+
* caller then casts, a `style` built inline at each site) moves the same cast
|
|
74
|
+
* somewhere less obvious.
|
|
75
|
+
*
|
|
76
|
+
* @param slug - The agent's stable identifier.
|
|
77
|
+
* @param options - Pass `root` to hand the orchestrator the accent.
|
|
78
|
+
* @returns `{ "--agent-color": … }`.
|
|
79
|
+
* @example
|
|
80
|
+
* <div style={agentColorStyle(slug, { root })} className="text-(--agent-color)" />
|
|
81
|
+
*/
|
|
82
|
+
declare function agentColorStyle(slug: string, options?: AgentColorOptions): React.CSSProperties;
|
|
83
|
+
//#endregion
|
|
84
|
+
export { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, AgentColorOptions, agentColor, agentColorStyle };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
//#region src/chat/agent-color.ts
|
|
2
|
+
/**
|
|
3
|
+
* Deterministic per-agent colour.
|
|
4
|
+
*
|
|
5
|
+
* In a multi-agent transcript the colour is not decoration — it is the only
|
|
6
|
+
* thing that lets a reader follow one agent's lane through a wall of nested
|
|
7
|
+
* cards. That makes two properties load-bearing:
|
|
8
|
+
*
|
|
9
|
+
* - **Deterministic.** The same slug is the same colour in every session, on
|
|
10
|
+
* every machine, in every screenshot. No allocation table, no state, no
|
|
11
|
+
* ordering dependency: just a hash of the slug, so two clients rendering the
|
|
12
|
+
* same thread agree without talking to each other.
|
|
13
|
+
* - **Theme-independent.** The hues are literal `oklch()` values rather than
|
|
14
|
+
* tokens, because a palette that re-hues per theme would break the first
|
|
15
|
+
* property. They sit at L ≈ 0.6 with moderate chroma, which is the band that
|
|
16
|
+
* stays legible against both the dark surfaces this portfolio defaults to and
|
|
17
|
+
* the light ones it supports.
|
|
18
|
+
*
|
|
19
|
+
* The orchestrator is the one exception: it borrows the theme accent, because
|
|
20
|
+
* "the lane everything delegates from" is exactly what the accent means
|
|
21
|
+
* everywhere else in the system.
|
|
22
|
+
*
|
|
23
|
+
* Ported from corale's `agentColor`, hash and palette order intact — existing
|
|
24
|
+
* transcripts keep their colours.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* The seven sub-agent hues, in the order the hash indexes them.
|
|
28
|
+
*
|
|
29
|
+
* Seven rather than a generated ramp: past about seven, adjacent hues stop
|
|
30
|
+
* being distinguishable at the 16–24px an avatar occupies, and a palette whose
|
|
31
|
+
* members cannot be told apart is worse than no palette at all.
|
|
32
|
+
*/
|
|
33
|
+
const AGENT_HUES = [
|
|
34
|
+
"oklch(0.62 0.17 150)",
|
|
35
|
+
"oklch(0.62 0.15 50)",
|
|
36
|
+
"oklch(0.6 0.18 300)",
|
|
37
|
+
"oklch(0.6 0.15 220)",
|
|
38
|
+
"oklch(0.62 0.19 20)",
|
|
39
|
+
"oklch(0.6 0.13 190)",
|
|
40
|
+
"oklch(0.62 0.16 330)"
|
|
41
|
+
];
|
|
42
|
+
/** What the orchestrator gets instead of a hue: the live theme accent. */
|
|
43
|
+
const AGENT_ROOT_COLOR = "var(--cue-accent)";
|
|
44
|
+
/**
|
|
45
|
+
* The custom property every chat part reads for its per-agent ink and rail.
|
|
46
|
+
*
|
|
47
|
+
* Published as a property rather than passed down as a prop so a caller can
|
|
48
|
+
* restyle a whole lane — a nested `DelegationCard`, the messages inside it, the
|
|
49
|
+
* rail down its side — by setting one value on the wrapper.
|
|
50
|
+
*/
|
|
51
|
+
const AGENT_COLOR_PROPERTY = "--agent-color";
|
|
52
|
+
/**
|
|
53
|
+
* djb2-style 31× hash, truncated to 32 bits each round.
|
|
54
|
+
*
|
|
55
|
+
* `value * 31` peaks below 2^37, so the multiply is exact in a double and the
|
|
56
|
+
* `>>> 0` is the only truncation — which is what makes this reproduce corale's
|
|
57
|
+
* assignments byte for byte.
|
|
58
|
+
*/
|
|
59
|
+
function hash(slug) {
|
|
60
|
+
let value = 0;
|
|
61
|
+
for (let index = 0; index < slug.length; index += 1) value = value * 31 + slug.charCodeAt(index) >>> 0;
|
|
62
|
+
return value;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The colour for one agent: a stable palette hue, or the theme accent for the
|
|
66
|
+
* orchestrator.
|
|
67
|
+
*
|
|
68
|
+
* Pure and synchronous — safe to call during render, in a server component, or
|
|
69
|
+
* from a test asserting that yesterday's colour is still today's.
|
|
70
|
+
*
|
|
71
|
+
* @param slug - The agent's stable identifier.
|
|
72
|
+
* @param options - Pass `root` to hand the orchestrator the accent.
|
|
73
|
+
* @returns A CSS colour: an `oklch()` literal, or `var(--cue-accent)`.
|
|
74
|
+
* @example
|
|
75
|
+
* agentColor("researcher"); // → "oklch(0.62 0.19 20)"
|
|
76
|
+
* @example
|
|
77
|
+
* agentColor("chief", { root: "chief" }); // → "var(--cue-accent)"
|
|
78
|
+
*/
|
|
79
|
+
function agentColor(slug, options) {
|
|
80
|
+
if (options?.root !== void 0 && slug === options.root) return AGENT_ROOT_COLOR;
|
|
81
|
+
return AGENT_HUES[hash(slug) % AGENT_HUES.length];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* {@link agentColor} as an inline style, ready to spread onto an element.
|
|
85
|
+
*
|
|
86
|
+
* The cast is unavoidable: `React.CSSProperties` has no index signature for
|
|
87
|
+
* custom properties, and every alternative (a `Record<string, string>` the
|
|
88
|
+
* caller then casts, a `style` built inline at each site) moves the same cast
|
|
89
|
+
* somewhere less obvious.
|
|
90
|
+
*
|
|
91
|
+
* @param slug - The agent's stable identifier.
|
|
92
|
+
* @param options - Pass `root` to hand the orchestrator the accent.
|
|
93
|
+
* @returns `{ "--agent-color": … }`.
|
|
94
|
+
* @example
|
|
95
|
+
* <div style={agentColorStyle(slug, { root })} className="text-(--agent-color)" />
|
|
96
|
+
*/
|
|
97
|
+
function agentColorStyle(slug, options) {
|
|
98
|
+
return { [AGENT_COLOR_PROPERTY]: agentColor(slug, options) };
|
|
99
|
+
}
|
|
100
|
+
//#endregion
|
|
101
|
+
export { AGENT_COLOR_PROPERTY, AGENT_HUES, AGENT_ROOT_COLOR, agentColor, agentColorStyle };
|