@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,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { toAriaColor } from "./_value.js";
|
|
4
|
+
import { checkerClasses } from "./_checker.js";
|
|
5
|
+
import "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { ColorSwatch } from "react-aria-components";
|
|
8
|
+
//#region src/color/color-swatch.tsx
|
|
9
|
+
const SWATCH_SIZES = {
|
|
10
|
+
sm: "size-icon-sm",
|
|
11
|
+
md: "size-icon-md",
|
|
12
|
+
lg: "size-control-sm"
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A colour, shown as a chip.
|
|
16
|
+
*
|
|
17
|
+
* Two elements rather than one: the frame carries the rim, the radius and the
|
|
18
|
+
* transparency checkerboard, and React Aria's `ColorSwatch` paints the colour
|
|
19
|
+
* on top of it. One element cannot do both — the library writes the colour into
|
|
20
|
+
* the inline `background-color`, which paints *behind* a background image, so a
|
|
21
|
+
* checkerboard set on the same element would cover the colour instead of
|
|
22
|
+
* backing it.
|
|
23
|
+
*
|
|
24
|
+
* Takes any notation this suite reads, `oklch()` included.
|
|
25
|
+
*
|
|
26
|
+
* `react-aria-components` is an **optional peer**: import this from
|
|
27
|
+
* `@cueplusplus/ui/color`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* <ColorSwatch color="oklch(0.7 0.15 30)" />
|
|
31
|
+
*/
|
|
32
|
+
function ColorSwatch$1({ size = "md", className, color, ...swatchProps }) {
|
|
33
|
+
return /* @__PURE__ */ jsx("span", {
|
|
34
|
+
"data-slot": "color-swatch",
|
|
35
|
+
className: cn("relative inline-block shrink-0 overflow-hidden rounded-(--radius-control) border border-border", SWATCH_SIZES[size], checkerClasses, className),
|
|
36
|
+
children: /* @__PURE__ */ jsx(ColorSwatch, {
|
|
37
|
+
color: toAriaColor(color),
|
|
38
|
+
className: "block size-full",
|
|
39
|
+
...swatchProps
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { ColorSwatch$1 as ColorSwatch };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ColorFormat, detectColorFormat, formatColorString, toHexString } from "./_convert.js";
|
|
2
|
+
import { ColorArea, ColorAreaProps } from "./color-area.js";
|
|
3
|
+
import { ColorField, ColorFieldProps } from "./color-field.js";
|
|
4
|
+
import { ColorPicker, ColorPickerProps } from "./color-picker.js";
|
|
5
|
+
import { ColorSlider, ColorSliderProps } from "./color-slider.js";
|
|
6
|
+
import { ColorSwatch, ColorSwatchProps, ColorSwatchSize } from "./color-swatch.js";
|
|
7
|
+
export { ColorArea, type ColorAreaProps, ColorField, type ColorFieldProps, type ColorFormat, ColorPicker, type ColorPickerProps, ColorSlider, type ColorSliderProps, ColorSwatch, type ColorSwatchProps, type ColorSwatchSize, detectColorFormat, formatColorString, toHexString };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { detectColorFormat, formatColorString, toHexString } from "./_convert.js";
|
|
2
|
+
import { ColorArea } from "./color-area.js";
|
|
3
|
+
import { ColorField } from "./color-field.js";
|
|
4
|
+
import { ColorSlider } from "./color-slider.js";
|
|
5
|
+
import { ColorSwatch } from "./color-swatch.js";
|
|
6
|
+
import { ColorPicker } from "./color-picker.js";
|
|
7
|
+
export { ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, detectColorFormat, formatColorString, toHexString };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { ThemeOverrides, ThemeScope } from "./_overrides.js";
|
|
2
|
+
//#region src/configurator/_export.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* The four things a configured theme can leave the browser as.
|
|
5
|
+
*
|
|
6
|
+
* A panel that only changes the page in front of you is a demo. These are what
|
|
7
|
+
* make it a tool: the stylesheet you paste, the token file your build reads, the
|
|
8
|
+
* generator call you check in, and the registry item someone else installs. All
|
|
9
|
+
* four are derived from the same `ThemeOverrides` value the panel is applying —
|
|
10
|
+
* the CSS one is *literally* the applied stylesheet — so an export can never
|
|
11
|
+
* describe a theme the page is not already wearing.
|
|
12
|
+
*
|
|
13
|
+
* Two of the four are lossy in a way worth stating out loud:
|
|
14
|
+
*
|
|
15
|
+
* - `createTheme()` takes **anchors**, not tokens. Move the accent and the call
|
|
16
|
+
* reproduces it exactly; move `--cue-border` and there is no anchor to put it
|
|
17
|
+
* in, because borders are derived from the ground. Rather than drop those
|
|
18
|
+
* quietly the snippet lists them in a trailing comment and points at the CSS
|
|
19
|
+
* export, which is lossless by construction.
|
|
20
|
+
* - The DTCG file speaks the tokens package's vocabulary, which is not quite the
|
|
21
|
+
* CSS one: `--cue-density` is authored as `density-factor`, and
|
|
22
|
+
* `--cue-font-scale` has no source token at all (the provider publishes it
|
|
23
|
+
* inline, per render). The first is renamed, the second is omitted.
|
|
24
|
+
*
|
|
25
|
+
* @internal Not part of the public API.
|
|
26
|
+
*/
|
|
27
|
+
/** Which export a format id refers to. */
|
|
28
|
+
type ExportFormatId = "css" | "dtcg" | "create-theme" | "registry";
|
|
29
|
+
/** One export: what it is, what to call the file, and the text itself. */
|
|
30
|
+
interface ThemeExport {
|
|
31
|
+
/** Stable id, used as the tab value. */
|
|
32
|
+
id: ExportFormatId;
|
|
33
|
+
/** Tab label. */
|
|
34
|
+
label: string;
|
|
35
|
+
/** Suggested download filename. */
|
|
36
|
+
filename: string;
|
|
37
|
+
/** MIME type for the download. */
|
|
38
|
+
mediaType: string;
|
|
39
|
+
/** One line saying what a reader does with it. */
|
|
40
|
+
description: string;
|
|
41
|
+
/** The exported text. */
|
|
42
|
+
text: string;
|
|
43
|
+
}
|
|
44
|
+
interface BuildExportsOptions {
|
|
45
|
+
/** The overrides to export. */
|
|
46
|
+
overrides: ThemeOverrides;
|
|
47
|
+
/** The theme and mode the panel is editing. */
|
|
48
|
+
scope: ThemeScope;
|
|
49
|
+
/** Name for the generated theme. Falls back to `"<preset>-custom"` when unusable. */
|
|
50
|
+
name?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The name to put on a generated theme.
|
|
54
|
+
*
|
|
55
|
+
* The name lands inside `[data-theme="…"]`, a filename and a registry id, so
|
|
56
|
+
* anything that is not a CSS identifier is refused outright rather than escaped
|
|
57
|
+
* — and refusal means falling back to a name that always works, not throwing at
|
|
58
|
+
* a user who is halfway through typing one.
|
|
59
|
+
*
|
|
60
|
+
* @param scope - The theme being edited, used for the fallback.
|
|
61
|
+
* @param name - What the user typed, if anything.
|
|
62
|
+
* @returns A usable CSS identifier.
|
|
63
|
+
* @example
|
|
64
|
+
* exportName({ theme: "terminal", mode: "dark", manifest: terminal }); // → "terminal-custom"
|
|
65
|
+
*/
|
|
66
|
+
declare function exportName(scope: ThemeScope, name?: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* The four exports for the current state of the panel.
|
|
69
|
+
*
|
|
70
|
+
* @param options - The overrides, the scope they were made in, and a name.
|
|
71
|
+
* @returns One entry per format, in the order the dialog shows them.
|
|
72
|
+
* @example
|
|
73
|
+
* const [css] = buildExports({ overrides, scope, name: "acme" });
|
|
74
|
+
* await navigator.clipboard.writeText(css.text);
|
|
75
|
+
*/
|
|
76
|
+
declare function buildExports(options: BuildExportsOptions): ThemeExport[];
|
|
77
|
+
//#endregion
|
|
78
|
+
export { BuildExportsOptions, ExportFormatId, ThemeExport, buildExports, exportName };
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { THEME_NAME_PATTERN, tokenProperty } from "../theming/serialize.js";
|
|
2
|
+
import { COLOR_TOKENS, FONT_TOKENS, configuratorCss, isOverridden, resolveValue, scopeKey, tokenKind } from "./_overrides.js";
|
|
3
|
+
//#region src/configurator/_export.ts
|
|
4
|
+
/** The anchors `ThemeAnchors` exposes at the top level, and the token each maps to. */
|
|
5
|
+
const DIRECT_ANCHORS = [
|
|
6
|
+
["bg", "bg"],
|
|
7
|
+
["fg", "fg"],
|
|
8
|
+
["accent", "accent"]
|
|
9
|
+
];
|
|
10
|
+
/** The surface ladder, as `ThemeAnchors.surfaces` spells it. */
|
|
11
|
+
const SURFACE_ANCHORS = [
|
|
12
|
+
"sunken",
|
|
13
|
+
"surface-1",
|
|
14
|
+
"surface-2",
|
|
15
|
+
"surface-3"
|
|
16
|
+
];
|
|
17
|
+
/** The status tones and the live hue, as `ThemeAnchors.status` spells them. */
|
|
18
|
+
const STATUS_ANCHORS = [
|
|
19
|
+
"ok",
|
|
20
|
+
"busy",
|
|
21
|
+
"warn",
|
|
22
|
+
"danger",
|
|
23
|
+
"info",
|
|
24
|
+
"stream"
|
|
25
|
+
];
|
|
26
|
+
/** `--cue-font-mono` → the `fonts.mono` key `ThemeAnchors` uses. */
|
|
27
|
+
const FONT_ANCHORS = {
|
|
28
|
+
"font-sans": "sans",
|
|
29
|
+
"font-mono": "mono",
|
|
30
|
+
"font-display": "display"
|
|
31
|
+
};
|
|
32
|
+
/** The DTCG source key a token is authored under, where it differs from the CSS name. */
|
|
33
|
+
const DTCG_ALIASES = { density: "density-factor" };
|
|
34
|
+
/**
|
|
35
|
+
* The name to put on a generated theme.
|
|
36
|
+
*
|
|
37
|
+
* The name lands inside `[data-theme="…"]`, a filename and a registry id, so
|
|
38
|
+
* anything that is not a CSS identifier is refused outright rather than escaped
|
|
39
|
+
* — and refusal means falling back to a name that always works, not throwing at
|
|
40
|
+
* a user who is halfway through typing one.
|
|
41
|
+
*
|
|
42
|
+
* @param scope - The theme being edited, used for the fallback.
|
|
43
|
+
* @param name - What the user typed, if anything.
|
|
44
|
+
* @returns A usable CSS identifier.
|
|
45
|
+
* @example
|
|
46
|
+
* exportName({ theme: "terminal", mode: "dark", manifest: terminal }); // → "terminal-custom"
|
|
47
|
+
*/
|
|
48
|
+
function exportName(scope, name) {
|
|
49
|
+
const proposed = name?.trim() ?? "";
|
|
50
|
+
return THEME_NAME_PATTERN.test(proposed) ? proposed : `${scope.theme}-custom`;
|
|
51
|
+
}
|
|
52
|
+
/** A JSON string, printed the way a hand-written source file would print it. */
|
|
53
|
+
const json = (value) => `${JSON.stringify(value, null, 2)}\n`;
|
|
54
|
+
/**
|
|
55
|
+
* Both modes of a scope, so an export can carry the palette the user is not
|
|
56
|
+
* looking at.
|
|
57
|
+
*
|
|
58
|
+
* Spread rather than rebuilt: a fresh literal would have to restate `manifest`,
|
|
59
|
+
* and the shape of that mistake is a `null` that resolves the off-mode palette
|
|
60
|
+
* to the blank base — so the `dtcg` and `registry` exports would carry the right
|
|
61
|
+
* colours for the mode on screen and the neutral ramp for the other one, with
|
|
62
|
+
* nothing to see until somebody installed the theme.
|
|
63
|
+
*/
|
|
64
|
+
function bothModes(scope) {
|
|
65
|
+
return [{
|
|
66
|
+
...scope,
|
|
67
|
+
mode: "dark"
|
|
68
|
+
}, {
|
|
69
|
+
...scope,
|
|
70
|
+
mode: "light"
|
|
71
|
+
}];
|
|
72
|
+
}
|
|
73
|
+
/** The `--cue-*` properties of one kind that the user has actually moved. */
|
|
74
|
+
function movedTokens(overrides, scope, kind) {
|
|
75
|
+
const scoped = overrides.themes[scopeKey(scope)] ?? {};
|
|
76
|
+
const candidates = kind === "color" || kind === "font" ? scoped : overrides.global;
|
|
77
|
+
return Object.keys(candidates).filter((property) => tokenKind(property) === kind);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* ② The DTCG token file.
|
|
81
|
+
*
|
|
82
|
+
* A whole theme rather than a diff: the point of this format is that the result
|
|
83
|
+
* can be dropped into a theme package's `src/` — `cue-theme init` scaffolds one,
|
|
84
|
+
* and `packages/theme-<name>/src/<name>.dark.tokens.json` is the shape — or into
|
|
85
|
+
* anyone else's DTCG pipeline, and built, which a patch file cannot. (It used to
|
|
86
|
+
* say `packages/tokens/src/themes/`; that directory is gone, and a palette is a
|
|
87
|
+
* package now.) Groups follow the sources —
|
|
88
|
+
* `color` for the palette, `type` for the stacks, `density` for the multipliers
|
|
89
|
+
* — and appear only when they carry something.
|
|
90
|
+
*/
|
|
91
|
+
function dtcgFile(overrides, scope, name) {
|
|
92
|
+
const color = { $type: "color" };
|
|
93
|
+
for (const token of COLOR_TOKENS) color[token] = { $value: resolveValue(overrides, scope, token) };
|
|
94
|
+
const file = {
|
|
95
|
+
$description: `Theme: ${name} — exported from the CUE++ theme configurator, based on ${scope.theme} (${scope.mode}).`,
|
|
96
|
+
color
|
|
97
|
+
};
|
|
98
|
+
const fonts = movedTokens(overrides, scope, "font");
|
|
99
|
+
const tracking = movedTokens(overrides, scope, "flat");
|
|
100
|
+
if (fonts.length > 0 || tracking.length > 0) {
|
|
101
|
+
const type = { $type: "fontFamily" };
|
|
102
|
+
for (const property of fonts) type[property.slice(6)] = { $value: resolveValue(overrides, scope, property) };
|
|
103
|
+
for (const property of tracking) type[property.slice(6)] = {
|
|
104
|
+
$type: "dimension",
|
|
105
|
+
$value: resolveValue(overrides, scope, property)
|
|
106
|
+
};
|
|
107
|
+
file["type"] = type;
|
|
108
|
+
}
|
|
109
|
+
const multipliers = movedTokens(overrides, scope, "scaled");
|
|
110
|
+
if (multipliers.length > 0) {
|
|
111
|
+
const density = {
|
|
112
|
+
$description: "Multipliers only. They belong to the density axis, so they cross with every level rather than replacing one.",
|
|
113
|
+
$type: "dimension"
|
|
114
|
+
};
|
|
115
|
+
for (const property of multipliers) {
|
|
116
|
+
const bare = property.slice(6);
|
|
117
|
+
density[DTCG_ALIASES[bare] ?? bare] = {
|
|
118
|
+
$type: "number",
|
|
119
|
+
$value: Number(resolveValue(overrides, scope, property))
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
file["density"] = density;
|
|
123
|
+
}
|
|
124
|
+
return json(file);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* A string literal a human would have typed.
|
|
128
|
+
*
|
|
129
|
+
* Single quotes when the value carries double ones — a font stack is
|
|
130
|
+
* `"Berkeley Mono", monospace`, and `"\"Berkeley Mono\", monospace"` is a thing
|
|
131
|
+
* nobody writes on purpose.
|
|
132
|
+
*/
|
|
133
|
+
function quote(value) {
|
|
134
|
+
return value.includes("\"") && !value.includes("'") && !value.includes("\\") ? `'${value}'` : JSON.stringify(value);
|
|
135
|
+
}
|
|
136
|
+
/** What a JavaScript binding may be called, and what a printed key may go unquoted as. */
|
|
137
|
+
const IDENTIFIER = /^[A-Za-z_$][\w$]*$/;
|
|
138
|
+
/** One `key: "value"` line of an object literal, quoting the key only when it must. */
|
|
139
|
+
function property(key, value, indent) {
|
|
140
|
+
return `${indent}${IDENTIFIER.test(key) ? key : JSON.stringify(key)}: ${quote(value)},`;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* What to call the imported base manifest in the snippet.
|
|
144
|
+
*
|
|
145
|
+
* The theme's own name where that is a legal binding — `terminal` reads as what
|
|
146
|
+
* it is — and `base` where it is not (a theme may be called `acme-dark`, which
|
|
147
|
+
* is a fine `data-theme` value and not an identifier). The suffix exists for the
|
|
148
|
+
* one collision this can produce: a user who names their export exactly what the
|
|
149
|
+
* base theme is called would otherwise get `const terminal = createTheme({ base:
|
|
150
|
+
* terminal })`, which is a snippet that does not run.
|
|
151
|
+
*/
|
|
152
|
+
function baseIdentifier(theme, exported) {
|
|
153
|
+
const proposed = IDENTIFIER.test(theme) ? theme : "base";
|
|
154
|
+
return proposed === exported ? `${proposed}Base` : proposed;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* ③ The `createTheme()` call.
|
|
158
|
+
*
|
|
159
|
+
* Anchors in, stylesheet out — the same two lines a human would have written,
|
|
160
|
+
* with whatever the user moved filled in. Tokens the generator derives rather
|
|
161
|
+
* than accepts are listed underneath instead of being silently dropped, because
|
|
162
|
+
* a snippet that quietly loses half an edit is worse than no snippet.
|
|
163
|
+
*/
|
|
164
|
+
function createThemeSnippet(overrides, scope, name) {
|
|
165
|
+
const exported = IDENTIFIER.test(name) ? name : "theme";
|
|
166
|
+
const base = scope.manifest;
|
|
167
|
+
let baseImport = null;
|
|
168
|
+
let baseAnchor = null;
|
|
169
|
+
if (base !== null) {
|
|
170
|
+
const ident = baseIdentifier(scope.theme, exported);
|
|
171
|
+
baseImport = `import ${ident} from ${JSON.stringify(base.package)};`;
|
|
172
|
+
baseAnchor = ` base: ${ident},`;
|
|
173
|
+
}
|
|
174
|
+
const lines = [` name: ${JSON.stringify(name)},`];
|
|
175
|
+
if (baseAnchor !== null) lines.push(baseAnchor);
|
|
176
|
+
const unrepresentable = [];
|
|
177
|
+
for (const [anchor, token] of DIRECT_ANCHORS) if (isOverridden(overrides, scope, token)) lines.push(property(anchor, resolveValue(overrides, scope, token), " "));
|
|
178
|
+
const surfaces = SURFACE_ANCHORS.filter((token) => isOverridden(overrides, scope, token));
|
|
179
|
+
if (surfaces.length > 0) {
|
|
180
|
+
lines.push(" surfaces: {");
|
|
181
|
+
for (const token of surfaces) lines.push(property(token, resolveValue(overrides, scope, token), " "));
|
|
182
|
+
lines.push(" },");
|
|
183
|
+
}
|
|
184
|
+
const statuses = STATUS_ANCHORS.filter((token) => isOverridden(overrides, scope, token));
|
|
185
|
+
if (statuses.length > 0) {
|
|
186
|
+
lines.push(" status: {");
|
|
187
|
+
for (const token of statuses) lines.push(property(token, resolveValue(overrides, scope, token), " "));
|
|
188
|
+
lines.push(" },");
|
|
189
|
+
}
|
|
190
|
+
const fonts = FONT_TOKENS.filter((token) => isOverridden(overrides, scope, token));
|
|
191
|
+
if (fonts.length > 0) {
|
|
192
|
+
lines.push(" fonts: {");
|
|
193
|
+
for (const token of fonts) lines.push(property(FONT_ANCHORS[token], resolveValue(overrides, scope, token), " "));
|
|
194
|
+
lines.push(" },");
|
|
195
|
+
}
|
|
196
|
+
if (isOverridden(overrides, scope, "radius-scale")) lines.push(` radiusScale: ${Number(resolveValue(overrides, scope, "radius-scale"))},`);
|
|
197
|
+
const anchored = new Set([
|
|
198
|
+
...DIRECT_ANCHORS.map(([, token]) => token),
|
|
199
|
+
...SURFACE_ANCHORS,
|
|
200
|
+
...STATUS_ANCHORS,
|
|
201
|
+
...FONT_TOKENS,
|
|
202
|
+
"radius-scale"
|
|
203
|
+
].map(tokenProperty));
|
|
204
|
+
for (const moved of [...Object.keys(overrides.themes[scopeKey(scope)] ?? {}), ...Object.keys(overrides.global)]) {
|
|
205
|
+
if (anchored.has(moved)) continue;
|
|
206
|
+
unrepresentable.push(`${moved}: ${resolveValue(overrides, scope, moved)}`);
|
|
207
|
+
}
|
|
208
|
+
const notes = [];
|
|
209
|
+
if (base === null) notes.push(`// no manifest is registered for "${scope.theme}"; this call starts from the blank base.`);
|
|
210
|
+
if (unrepresentable.length > 0) notes.push("// createTheme() derives these rather than taking them as anchors, so they are not", "// in the call above. Ship the CSS export alongside it — that one is lossless.", ...unrepresentable.map((entry) => `// ${entry}`));
|
|
211
|
+
const footer = notes.length === 0 ? "" : [
|
|
212
|
+
"",
|
|
213
|
+
...notes,
|
|
214
|
+
""
|
|
215
|
+
].join("\n");
|
|
216
|
+
return [
|
|
217
|
+
"import { createTheme } from \"@cueplusplus/ui/theming\";",
|
|
218
|
+
...baseImport === null ? [] : [baseImport],
|
|
219
|
+
"",
|
|
220
|
+
`export const ${exported} = createTheme({`,
|
|
221
|
+
...lines,
|
|
222
|
+
"});",
|
|
223
|
+
footer
|
|
224
|
+
].join("\n");
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* ④ The shadcn registry item.
|
|
228
|
+
*
|
|
229
|
+
* `cssVars` is keyed the way shadcn keys it — no leading dashes, and a `theme`
|
|
230
|
+
* bucket for the variables that do not belong to a mode. Both palettes are
|
|
231
|
+
* written in full, including the one the user was not looking at, because an
|
|
232
|
+
* installer has no way to ask.
|
|
233
|
+
*/
|
|
234
|
+
function registryItem(overrides, scope, name) {
|
|
235
|
+
const strip = (property) => property.replace(/^--/, "");
|
|
236
|
+
const palette = (mode) => Object.fromEntries(COLOR_TOKENS.map((token) => [strip(tokenProperty(token)), resolveValue(overrides, mode, token)]));
|
|
237
|
+
const [dark, light] = bothModes(scope);
|
|
238
|
+
const shared = {};
|
|
239
|
+
for (const moved of [...FONT_TOKENS.map(tokenProperty), ...Object.keys(overrides.global)]) {
|
|
240
|
+
if (!isOverridden(overrides, scope, moved)) continue;
|
|
241
|
+
shared[strip(moved)] = resolveValue(overrides, scope, moved);
|
|
242
|
+
}
|
|
243
|
+
return json({
|
|
244
|
+
$schema: "https://ui.shadcn.com/schema/registry-item.json",
|
|
245
|
+
name,
|
|
246
|
+
type: "registry:theme",
|
|
247
|
+
cssVars: {
|
|
248
|
+
...Object.keys(shared).length === 0 ? null : { theme: shared },
|
|
249
|
+
light: palette(light),
|
|
250
|
+
dark: palette(dark)
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* The four exports for the current state of the panel.
|
|
256
|
+
*
|
|
257
|
+
* @param options - The overrides, the scope they were made in, and a name.
|
|
258
|
+
* @returns One entry per format, in the order the dialog shows them.
|
|
259
|
+
* @example
|
|
260
|
+
* const [css] = buildExports({ overrides, scope, name: "acme" });
|
|
261
|
+
* await navigator.clipboard.writeText(css.text);
|
|
262
|
+
*/
|
|
263
|
+
function buildExports(options) {
|
|
264
|
+
const { overrides, scope } = options;
|
|
265
|
+
const name = exportName(scope, options.name);
|
|
266
|
+
return [
|
|
267
|
+
{
|
|
268
|
+
id: "css",
|
|
269
|
+
label: "CSS",
|
|
270
|
+
filename: `${name}.css`,
|
|
271
|
+
mediaType: "text/css",
|
|
272
|
+
description: "The override stylesheet, exactly as the panel is applying it.",
|
|
273
|
+
text: configuratorCss(overrides)
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
id: "dtcg",
|
|
277
|
+
label: "Tokens",
|
|
278
|
+
filename: `${name}.tokens.json`,
|
|
279
|
+
mediaType: "application/json",
|
|
280
|
+
description: "A DTCG token file, in the shape packages/tokens builds from.",
|
|
281
|
+
text: dtcgFile(overrides, scope, name)
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
id: "create-theme",
|
|
285
|
+
label: "createTheme()",
|
|
286
|
+
filename: `${name}.theme.ts`,
|
|
287
|
+
mediaType: "text/plain",
|
|
288
|
+
description: "The generator call that reproduces the anchors you moved.",
|
|
289
|
+
text: createThemeSnippet(overrides, scope, name)
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
id: "registry",
|
|
293
|
+
label: "Registry",
|
|
294
|
+
filename: `${name}.registry.json`,
|
|
295
|
+
mediaType: "application/json",
|
|
296
|
+
description: "A shadcn registry:theme item, both modes resolved.",
|
|
297
|
+
text: registryItem(overrides, scope, name)
|
|
298
|
+
}
|
|
299
|
+
];
|
|
300
|
+
}
|
|
301
|
+
//#endregion
|
|
302
|
+
export { buildExports, exportName };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region src/configurator/_glyphs.tsx
|
|
4
|
+
/**
|
|
5
|
+
* The configurator's own glyphs.
|
|
6
|
+
*
|
|
7
|
+
* Drawn inline, like every other group's, so a panel that edits the design
|
|
8
|
+
* system does not put an icon package on its render path. `currentColor`
|
|
9
|
+
* throughout — the tone comes from the button underneath.
|
|
10
|
+
*
|
|
11
|
+
* @internal Not part of the public API.
|
|
12
|
+
*/
|
|
13
|
+
/** A counter-clockwise arrow: put this one token back. */
|
|
14
|
+
function ResetGlyph(props) {
|
|
15
|
+
return /* @__PURE__ */ jsxs("svg", {
|
|
16
|
+
viewBox: "0 0 16 16",
|
|
17
|
+
fill: "none",
|
|
18
|
+
stroke: "currentColor",
|
|
19
|
+
strokeWidth: "1.5",
|
|
20
|
+
strokeLinecap: "round",
|
|
21
|
+
strokeLinejoin: "round",
|
|
22
|
+
"aria-hidden": "true",
|
|
23
|
+
...props,
|
|
24
|
+
children: [/* @__PURE__ */ jsx("path", { d: "M3 8a5 5 0 1 0 1.6-3.7" }), /* @__PURE__ */ jsx("path", { d: "M3 3v3.2h3.2" })]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** Two short rules: the grab surface of the title bar. */
|
|
28
|
+
function GripGlyph(props) {
|
|
29
|
+
return /* @__PURE__ */ jsxs("svg", {
|
|
30
|
+
viewBox: "0 0 16 16",
|
|
31
|
+
fill: "none",
|
|
32
|
+
stroke: "currentColor",
|
|
33
|
+
strokeWidth: "1.5",
|
|
34
|
+
strokeLinecap: "round",
|
|
35
|
+
"aria-hidden": "true",
|
|
36
|
+
...props,
|
|
37
|
+
children: [/* @__PURE__ */ jsx("path", { d: "M3 6h10" }), /* @__PURE__ */ jsx("path", { d: "M3 10h10" })]
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/** A frame with a rail down its right edge: dock the panel. */
|
|
41
|
+
function DockGlyph(props) {
|
|
42
|
+
return /* @__PURE__ */ jsxs("svg", {
|
|
43
|
+
viewBox: "0 0 16 16",
|
|
44
|
+
fill: "none",
|
|
45
|
+
stroke: "currentColor",
|
|
46
|
+
strokeWidth: "1.5",
|
|
47
|
+
strokeLinejoin: "round",
|
|
48
|
+
"aria-hidden": "true",
|
|
49
|
+
...props,
|
|
50
|
+
children: [/* @__PURE__ */ jsx("rect", {
|
|
51
|
+
x: "2",
|
|
52
|
+
y: "3",
|
|
53
|
+
width: "12",
|
|
54
|
+
height: "10",
|
|
55
|
+
rx: "1.5"
|
|
56
|
+
}), /* @__PURE__ */ jsx("path", { d: "M10 3v10" })]
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/** A chevron, rotated by the caller to point at the state it will move to. */
|
|
60
|
+
function ChevronGlyph(props) {
|
|
61
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
62
|
+
viewBox: "0 0 16 16",
|
|
63
|
+
fill: "none",
|
|
64
|
+
stroke: "currentColor",
|
|
65
|
+
strokeWidth: "1.5",
|
|
66
|
+
strokeLinecap: "round",
|
|
67
|
+
strokeLinejoin: "round",
|
|
68
|
+
"aria-hidden": "true",
|
|
69
|
+
...props,
|
|
70
|
+
children: /* @__PURE__ */ jsx("path", { d: "M4 6.5 8 10.5l4-4" })
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/** An arrow into a tray: save this export to a file. */
|
|
74
|
+
function DownloadGlyph(props) {
|
|
75
|
+
return /* @__PURE__ */ jsxs("svg", {
|
|
76
|
+
viewBox: "0 0 16 16",
|
|
77
|
+
fill: "none",
|
|
78
|
+
stroke: "currentColor",
|
|
79
|
+
strokeWidth: "1.5",
|
|
80
|
+
strokeLinecap: "round",
|
|
81
|
+
strokeLinejoin: "round",
|
|
82
|
+
"aria-hidden": "true",
|
|
83
|
+
...props,
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ jsx("path", { d: "M8 2.5v7" }),
|
|
86
|
+
/* @__PURE__ */ jsx("path", { d: "M5 7l3 3 3-3" }),
|
|
87
|
+
/* @__PURE__ */ jsx("path", { d: "M3 12.5h10" })
|
|
88
|
+
]
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
export { ChevronGlyph, DockGlyph, DownloadGlyph, GripGlyph, ResetGlyph };
|