@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,352 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { Input } from "../forms/input.js";
|
|
4
|
+
import { useDensities, useThemes } from "../system/theme-registry.js";
|
|
5
|
+
import { SectionHeader } from "../chrome/section-header.js";
|
|
6
|
+
import { SegmentedControl } from "../chrome/segmented-control.js";
|
|
7
|
+
import { Field, FieldLabel } from "../forms/field.js";
|
|
8
|
+
import { Slider } from "../forms/slider.js";
|
|
9
|
+
import { Kbd } from "../primitives/kbd.js";
|
|
10
|
+
import { useTheme } from "../system/use-theme.js";
|
|
11
|
+
import { tokenProperty } from "../theming/serialize.js";
|
|
12
|
+
import { COLOR_TOKENS, FONT_TOKENS, isSafeCssValue } from "./_overrides.js";
|
|
13
|
+
import { TokenEditor } from "./token-editor.js";
|
|
14
|
+
import * as React from "react";
|
|
15
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
16
|
+
import { resolve } from "@cueplusplus/theme-base";
|
|
17
|
+
//#region src/configurator/panel-sections.tsx
|
|
18
|
+
/** The five colours a preset is recognisable from, in reading order. */
|
|
19
|
+
const SWATCH_TOKENS = [
|
|
20
|
+
"bg",
|
|
21
|
+
"surface-2",
|
|
22
|
+
"fg",
|
|
23
|
+
"accent",
|
|
24
|
+
"danger"
|
|
25
|
+
];
|
|
26
|
+
const MODE_ITEMS = [
|
|
27
|
+
{
|
|
28
|
+
value: "dark",
|
|
29
|
+
label: "Dark"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
value: "light",
|
|
33
|
+
label: "Light"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
value: "system",
|
|
37
|
+
label: "System"
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* Labels for a 19rem panel. Five rungs will not fit as words — `Ultra-compact`
|
|
42
|
+
* and `Ultra-large` alone are 25 characters — so the segmented control wears
|
|
43
|
+
* the garment sizes and the value it sets is still the ladder's own name.
|
|
44
|
+
*/
|
|
45
|
+
const BASE_DENSITY_LABELS = {
|
|
46
|
+
"ultra-compact": "XS",
|
|
47
|
+
"compact": "S",
|
|
48
|
+
"normal": "M",
|
|
49
|
+
"large": "L",
|
|
50
|
+
"ultra-large": "XL"
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* What a rung is called in the panel.
|
|
54
|
+
*
|
|
55
|
+
* A lookup rather than a table, because the ladder is open now: a theme may add
|
|
56
|
+
* a rung, and this package has no garment size to give it. Its own name is the
|
|
57
|
+
* only label that is certainly true — longer than a letter, and honest about
|
|
58
|
+
* being the theme's rather than the ladder's. The base five keep their sizes,
|
|
59
|
+
* so nothing a user has learned moves.
|
|
60
|
+
*/
|
|
61
|
+
function densityLabel(rung) {
|
|
62
|
+
return BASE_DENSITY_LABELS[rung] ?? rung;
|
|
63
|
+
}
|
|
64
|
+
/** Bounds of the text-scale knob, from spec §6's `fontScale`. */
|
|
65
|
+
const FONT_SCALE = {
|
|
66
|
+
min: .8,
|
|
67
|
+
max: 1.3,
|
|
68
|
+
step: .05
|
|
69
|
+
};
|
|
70
|
+
/** Bounds of the corner-radius multiplier. Below 0.5 a control stops reading as a control. */
|
|
71
|
+
const RADIUS_SCALE = {
|
|
72
|
+
min: .5,
|
|
73
|
+
max: 2,
|
|
74
|
+
step: .05
|
|
75
|
+
};
|
|
76
|
+
/** Bounds of the density nudge, either side of the ladder's own 0.85 / 1 / 1.3. */
|
|
77
|
+
const DENSITY_NUDGE = {
|
|
78
|
+
min: .8,
|
|
79
|
+
max: 1.25,
|
|
80
|
+
step: .05
|
|
81
|
+
};
|
|
82
|
+
/** What each type stack is called in the panel. */
|
|
83
|
+
const FONT_LABELS = {
|
|
84
|
+
"font-sans": "Sans stack",
|
|
85
|
+
"font-mono": "Mono stack",
|
|
86
|
+
"font-display": "Display stack"
|
|
87
|
+
};
|
|
88
|
+
/** Base UI hands a range slider an array; every slider here has one thumb. */
|
|
89
|
+
const single = (value) => Array.isArray(value) ? value[0] ?? 0 : value;
|
|
90
|
+
/**
|
|
91
|
+
* A number knob wired to one token, live on drag and persisted on release.
|
|
92
|
+
*
|
|
93
|
+
* The three it is used for are `--cue-radius-scale` and `--cue-density`, both
|
|
94
|
+
* crossed with the density ladder when they are written, and `--cue-font-scale`,
|
|
95
|
+
* which the provider publishes inline. Naming them here is not decoration: the
|
|
96
|
+
* package manifest's token list is scraped for literal `--cue-*` spellings, and
|
|
97
|
+
* a token whose only spelling in this file is the bare `token="radius-scale"`
|
|
98
|
+
* prop is a token the docs page for this section does not list.
|
|
99
|
+
*/
|
|
100
|
+
function ScaleSlider({ label, token, edits, bounds }) {
|
|
101
|
+
const value = Number(edits.value(token));
|
|
102
|
+
return /* @__PURE__ */ jsx(Slider, {
|
|
103
|
+
label,
|
|
104
|
+
"aria-label": label,
|
|
105
|
+
showValue: true,
|
|
106
|
+
min: bounds.min,
|
|
107
|
+
max: bounds.max,
|
|
108
|
+
step: bounds.step,
|
|
109
|
+
value: Number.isFinite(value) ? value : 1,
|
|
110
|
+
onValueChange: (next) => edits.set(token, String(single(next))),
|
|
111
|
+
onCommit: () => edits.commit()
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/** A free-text token (a font stack, a tracking value) with a draft the user can fix. */
|
|
115
|
+
function TextTokenField({ label, token, edits, placeholder }) {
|
|
116
|
+
const value = edits.value(token);
|
|
117
|
+
const [draft, setDraft] = React.useState(value);
|
|
118
|
+
const [invalid, setInvalid] = React.useState(false);
|
|
119
|
+
React.useEffect(() => {
|
|
120
|
+
setDraft(value);
|
|
121
|
+
setInvalid(false);
|
|
122
|
+
}, [value]);
|
|
123
|
+
const commit = () => {
|
|
124
|
+
if (draft === value) return;
|
|
125
|
+
if (!isSafeCssValue(draft)) {
|
|
126
|
+
setInvalid(true);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
setInvalid(false);
|
|
130
|
+
edits.set(token, draft);
|
|
131
|
+
edits.commit();
|
|
132
|
+
};
|
|
133
|
+
return /* @__PURE__ */ jsxs(Field, {
|
|
134
|
+
className: "gap-(--cue-space-1)",
|
|
135
|
+
children: [/* @__PURE__ */ jsx(FieldLabel, {
|
|
136
|
+
className: "font-mono text-(length:--cue-text-micro) tracking-[0.15em] uppercase",
|
|
137
|
+
children: label
|
|
138
|
+
}), /* @__PURE__ */ jsx(Input, {
|
|
139
|
+
size: "sm",
|
|
140
|
+
value: draft,
|
|
141
|
+
placeholder,
|
|
142
|
+
spellCheck: false,
|
|
143
|
+
autoComplete: "off",
|
|
144
|
+
"aria-invalid": invalid ? "true" : void 0,
|
|
145
|
+
onValueChange: (next) => setDraft(next),
|
|
146
|
+
onBlur: commit,
|
|
147
|
+
onKeyDown: (event) => {
|
|
148
|
+
if (event.key !== "Enter") return;
|
|
149
|
+
event.preventDefault();
|
|
150
|
+
commit();
|
|
151
|
+
}
|
|
152
|
+
})]
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Section 1 — the four choices that are not token edits at all.
|
|
157
|
+
*
|
|
158
|
+
* Preset, mode and density are *provider* state: picking one restamps the
|
|
159
|
+
* document and every portal under it, which is why they live here rather than
|
|
160
|
+
* in the colour list. Text scale and zoom are the two relief valves the spec
|
|
161
|
+
* pairs with the density ladder — one scales the type ramp inside the layout,
|
|
162
|
+
* the other scales the finished layout itself.
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* <PresetSection edits={edits} zoom={zoom} />
|
|
166
|
+
*/
|
|
167
|
+
function PresetSection({ edits, zoom, className }) {
|
|
168
|
+
const { theme, density, mode, resolvedMode, setTheme, setDensity, setMode } = useTheme();
|
|
169
|
+
const themes = useThemes();
|
|
170
|
+
const densities = useDensities();
|
|
171
|
+
return /* @__PURE__ */ jsxs(SectionHeader, {
|
|
172
|
+
label: "Preset",
|
|
173
|
+
collapsible: true,
|
|
174
|
+
className,
|
|
175
|
+
children: [
|
|
176
|
+
themes.length === 0 ? /* @__PURE__ */ jsxs("p", {
|
|
177
|
+
className: "text-fg-muted text-ui",
|
|
178
|
+
children: [
|
|
179
|
+
"No themes registered — pass ",
|
|
180
|
+
/* @__PURE__ */ jsx("code", { children: "themes" }),
|
|
181
|
+
" to ",
|
|
182
|
+
/* @__PURE__ */ jsx("code", { children: "ThemeProvider" }),
|
|
183
|
+
"."
|
|
184
|
+
]
|
|
185
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
186
|
+
className: "grid grid-cols-2 gap-(--cue-space-2)",
|
|
187
|
+
children: themes.map((manifest) => {
|
|
188
|
+
const name = manifest.name;
|
|
189
|
+
const palette = resolve(manifest, { mode: resolvedMode }).colors;
|
|
190
|
+
const active = name === theme;
|
|
191
|
+
return /* @__PURE__ */ jsxs("button", {
|
|
192
|
+
type: "button",
|
|
193
|
+
"aria-pressed": active,
|
|
194
|
+
"data-slot": "configurator-preset",
|
|
195
|
+
onClick: () => setTheme(name),
|
|
196
|
+
className: cn("flex cursor-pointer flex-col gap-(--cue-space-2) rounded-(--radius-control) border p-(--cue-space-2) text-left outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent", active ? "border-accent text-accent" : "border-border text-fg-muted hover:border-border-strong hover:text-fg"),
|
|
197
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
198
|
+
className: "truncate font-mono text-(length:--cue-text-label)",
|
|
199
|
+
children: name
|
|
200
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
201
|
+
className: "flex h-(--cue-space-4) overflow-hidden rounded-[2px]",
|
|
202
|
+
children: SWATCH_TOKENS.map((token) => /* @__PURE__ */ jsx("span", {
|
|
203
|
+
"data-slot": "configurator-swatch",
|
|
204
|
+
className: "flex-1 bg-(--swatch)",
|
|
205
|
+
style: { "--swatch": palette[token] }
|
|
206
|
+
}, token))
|
|
207
|
+
})]
|
|
208
|
+
}, name);
|
|
209
|
+
})
|
|
210
|
+
}),
|
|
211
|
+
/* @__PURE__ */ jsx(SegmentedControl, {
|
|
212
|
+
"aria-label": "Mode",
|
|
213
|
+
size: "sm",
|
|
214
|
+
className: "w-full",
|
|
215
|
+
itemClassName: "flex-1",
|
|
216
|
+
value: mode,
|
|
217
|
+
onValueChange: (next) => setMode(next),
|
|
218
|
+
items: MODE_ITEMS.map((item) => ({
|
|
219
|
+
value: item.value,
|
|
220
|
+
label: item.label
|
|
221
|
+
}))
|
|
222
|
+
}),
|
|
223
|
+
/* @__PURE__ */ jsx(SegmentedControl, {
|
|
224
|
+
"aria-label": "Density",
|
|
225
|
+
size: "sm",
|
|
226
|
+
className: "w-full",
|
|
227
|
+
itemClassName: "flex-1",
|
|
228
|
+
value: density,
|
|
229
|
+
onValueChange: (next) => setDensity(next),
|
|
230
|
+
items: densities.map((rung) => ({
|
|
231
|
+
value: rung.name,
|
|
232
|
+
label: densityLabel(rung.name)
|
|
233
|
+
}))
|
|
234
|
+
}),
|
|
235
|
+
/* @__PURE__ */ jsx(ScaleSlider, {
|
|
236
|
+
label: "Text scale",
|
|
237
|
+
token: "font-scale",
|
|
238
|
+
edits,
|
|
239
|
+
bounds: FONT_SCALE
|
|
240
|
+
}),
|
|
241
|
+
/* @__PURE__ */ jsxs("div", {
|
|
242
|
+
className: "flex flex-col gap-(--cue-space-2)",
|
|
243
|
+
children: [/* @__PURE__ */ jsx(Slider, {
|
|
244
|
+
label: "Zoom",
|
|
245
|
+
"aria-label": "Zoom",
|
|
246
|
+
showValue: true,
|
|
247
|
+
min: zoom.min,
|
|
248
|
+
max: zoom.max,
|
|
249
|
+
step: zoom.step,
|
|
250
|
+
value: zoom.zoom,
|
|
251
|
+
onValueChange: (next) => zoom.setZoom(single(next))
|
|
252
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
253
|
+
className: "flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-micro) text-fg-subtle",
|
|
254
|
+
children: [
|
|
255
|
+
/* @__PURE__ */ jsx(Kbd, { children: "⌘" }),
|
|
256
|
+
/* @__PURE__ */ jsx(Kbd, { children: "+" }),
|
|
257
|
+
/* @__PURE__ */ jsx(Kbd, { children: "−" }),
|
|
258
|
+
/* @__PURE__ */ jsx(Kbd, { children: "0" }),
|
|
259
|
+
"scales the whole page, not the tokens"
|
|
260
|
+
]
|
|
261
|
+
})]
|
|
262
|
+
})
|
|
263
|
+
]
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Section 2 — every colour the active theme declares, one row each.
|
|
268
|
+
*
|
|
269
|
+
* The rows are grouped by what the colour does; the editing itself lives in
|
|
270
|
+
* {@link TokenEditor}, which is stateless and reusable.
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* <ColorsSection edits={edits} />
|
|
274
|
+
*/
|
|
275
|
+
function ColorsSection({ edits, className }) {
|
|
276
|
+
const values = Object.fromEntries(COLOR_TOKENS.map((token) => [tokenProperty(token), edits.value(token)]));
|
|
277
|
+
const overridden = new Set(COLOR_TOKENS.filter((token) => edits.overridden(token)).map(tokenProperty));
|
|
278
|
+
return /* @__PURE__ */ jsx(SectionHeader, {
|
|
279
|
+
label: "Colors",
|
|
280
|
+
collapsible: true,
|
|
281
|
+
count: overridden.size || void 0,
|
|
282
|
+
className,
|
|
283
|
+
children: /* @__PURE__ */ jsx(TokenEditor, {
|
|
284
|
+
values,
|
|
285
|
+
overridden,
|
|
286
|
+
onTokenChange: (token, value) => {
|
|
287
|
+
edits.set(token, value);
|
|
288
|
+
edits.commit();
|
|
289
|
+
},
|
|
290
|
+
onTokenReset: (token) => {
|
|
291
|
+
edits.reset(token);
|
|
292
|
+
edits.commit();
|
|
293
|
+
}
|
|
294
|
+
})
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Section 3 — the geometry and type knobs, which belong to the *density* axis
|
|
299
|
+
* rather than to the theme.
|
|
300
|
+
*
|
|
301
|
+
* Both multipliers are crossed with the density ladder when they are written, so
|
|
302
|
+
* nudging the radius keeps `ultra-compact` tighter than `large` instead of
|
|
303
|
+
* flattening the two. The density knob is the published `--cue-density` escape
|
|
304
|
+
* hatch (spec §6): the shipped control ladder is three hand-authored blocks, not
|
|
305
|
+
* a multiplier, so this scales bespoke app geometry — `calc(200px *
|
|
306
|
+
* var(--cue-density))` — and the picker above is what moves the controls.
|
|
307
|
+
*
|
|
308
|
+
* @example
|
|
309
|
+
* <ShapeSection edits={edits} />
|
|
310
|
+
*/
|
|
311
|
+
function ShapeSection({ edits, className }) {
|
|
312
|
+
return /* @__PURE__ */ jsxs(SectionHeader, {
|
|
313
|
+
label: "Shape & type",
|
|
314
|
+
collapsible: true,
|
|
315
|
+
className,
|
|
316
|
+
children: [
|
|
317
|
+
/* @__PURE__ */ jsx(ScaleSlider, {
|
|
318
|
+
label: "Corner radius",
|
|
319
|
+
token: "radius-scale",
|
|
320
|
+
edits,
|
|
321
|
+
bounds: RADIUS_SCALE
|
|
322
|
+
}),
|
|
323
|
+
/* @__PURE__ */ jsx(ScaleSlider, {
|
|
324
|
+
label: "Density factor",
|
|
325
|
+
token: "density",
|
|
326
|
+
edits,
|
|
327
|
+
bounds: DENSITY_NUDGE
|
|
328
|
+
}),
|
|
329
|
+
/* @__PURE__ */ jsxs("p", {
|
|
330
|
+
className: "font-mono text-(length:--cue-text-micro) leading-(--cue-leading-ui) text-fg-subtle",
|
|
331
|
+
children: [
|
|
332
|
+
"Density factor scales app geometry that reads ",
|
|
333
|
+
/* @__PURE__ */ jsx("code", { children: "var(--cue-density)" }),
|
|
334
|
+
". The control ladder itself is three authored blocks — use the density picker for it."
|
|
335
|
+
]
|
|
336
|
+
}),
|
|
337
|
+
FONT_TOKENS.map((token) => /* @__PURE__ */ jsx(TextTokenField, {
|
|
338
|
+
label: FONT_LABELS[token],
|
|
339
|
+
token,
|
|
340
|
+
edits
|
|
341
|
+
}, token)),
|
|
342
|
+
/* @__PURE__ */ jsx(TextTokenField, {
|
|
343
|
+
label: "Label tracking",
|
|
344
|
+
token: "tracking-label",
|
|
345
|
+
edits,
|
|
346
|
+
placeholder: "0.12em"
|
|
347
|
+
})
|
|
348
|
+
]
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
//#endregion
|
|
352
|
+
export { ColorsSection, PresetSection, ShapeSection };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { COLOR_TOKENS } from "./_overrides.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/configurator/token-editor.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* The colour half of the configurator: every token a theme block declares, as a
|
|
6
|
+
* row you can pick a colour into.
|
|
7
|
+
*
|
|
8
|
+
* Two decisions worth stating.
|
|
9
|
+
*
|
|
10
|
+
* **The row is named by its property, not by a friendly label.** `--cue-fg-muted`
|
|
11
|
+
* is uglier than "Secondary text" and far more useful: it is the string that
|
|
12
|
+
* goes into the export, the string an app overrides in its own stylesheet, and
|
|
13
|
+
* the string the docs index by. A configurator that teaches a second vocabulary
|
|
14
|
+
* would leave the user to translate it back by hand.
|
|
15
|
+
*
|
|
16
|
+
* **Every row is alpha-capable.** Half the shipped presets author their ink and
|
|
17
|
+
* their borders as `rgba(255,255,255,0.10)` — translucency is how a theme keeps
|
|
18
|
+
* a border tied to whatever surface it lands on — so a picker that quietly
|
|
19
|
+
* dropped alpha would break those themes on the first edit.
|
|
20
|
+
*/
|
|
21
|
+
/** One labelled run of token rows. */
|
|
22
|
+
interface TokenGroup {
|
|
23
|
+
/** Stable id, used as the React key. */
|
|
24
|
+
id: string;
|
|
25
|
+
/** What the group is called in the panel. */
|
|
26
|
+
label: string;
|
|
27
|
+
/** Bare token names, in display order. */
|
|
28
|
+
tokens: readonly string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The colour tokens, grouped the way the panel shows them.
|
|
32
|
+
*
|
|
33
|
+
* Grouped by *what the colour does* rather than by where it sits in the token
|
|
34
|
+
* file: a user opening the panel is looking for "the accent" or "the status
|
|
35
|
+
* colours", not for declaration seventeen. Covers `THEME_COLOR_TOKENS` exactly —
|
|
36
|
+
* a test enforces it, because a token missing from this list is a theme the
|
|
37
|
+
* configurator silently cannot express.
|
|
38
|
+
*/
|
|
39
|
+
declare const COLOR_TOKEN_GROUPS: readonly TokenGroup[];
|
|
40
|
+
interface TokenEditorProps {
|
|
41
|
+
/** Current values, keyed by `--cue-*` property. */
|
|
42
|
+
values: Record<string, string>;
|
|
43
|
+
/** Which properties carry an override rather than the preset's value. */
|
|
44
|
+
overridden: ReadonlySet<string>;
|
|
45
|
+
/** Called with the `--cue-*` property and its new value. */
|
|
46
|
+
onTokenChange: (token: string, value: string) => void;
|
|
47
|
+
/** Called with the `--cue-*` property to put back to the preset's value. */
|
|
48
|
+
onTokenReset: (token: string) => void;
|
|
49
|
+
/** Groups to render. Defaults to {@link COLOR_TOKEN_GROUPS}. */
|
|
50
|
+
groups?: readonly TokenGroup[];
|
|
51
|
+
/** Extra classes for the list. */
|
|
52
|
+
className?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The grouped colour rows.
|
|
56
|
+
*
|
|
57
|
+
* Stateless by design: it renders the values it is handed and reports edits
|
|
58
|
+
* back. The configurator owns the override model, and so does anything else
|
|
59
|
+
* that wants to reuse these rows.
|
|
60
|
+
*
|
|
61
|
+
* `react-aria-components` is an **optional peer** (it arrives with
|
|
62
|
+
* `ColorPicker`): import this from `@cueplusplus/ui/configurator`.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* <TokenEditor
|
|
66
|
+
* values={resolvedTokens(overrides, scope)}
|
|
67
|
+
* overridden={new Set(Object.keys(overrides.themes[scopeKey(scope)] ?? {}))}
|
|
68
|
+
* onTokenChange={(token, value) => setOverrides(setOverride(overrides, scope, token, value))}
|
|
69
|
+
* onTokenReset={(token) => setOverrides(clearOverride(overrides, scope, token))}
|
|
70
|
+
* />
|
|
71
|
+
*/
|
|
72
|
+
declare function TokenEditor({ values, overridden, onTokenChange, onTokenReset, groups, className }: TokenEditorProps): React.JSX.Element;
|
|
73
|
+
//#endregion
|
|
74
|
+
export { COLOR_TOKEN_GROUPS, TokenEditor, TokenEditorProps, TokenGroup };
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { IconButton } from "../primitives/icon-button.js";
|
|
4
|
+
import { tokenProperty } from "../theming/serialize.js";
|
|
5
|
+
import { ColorPicker } from "../color/color-picker.js";
|
|
6
|
+
import "./_overrides.js";
|
|
7
|
+
import { ResetGlyph } from "./_glyphs.js";
|
|
8
|
+
import "react";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
//#region src/configurator/token-editor.tsx
|
|
11
|
+
/**
|
|
12
|
+
* The colour tokens, grouped the way the panel shows them.
|
|
13
|
+
*
|
|
14
|
+
* Grouped by *what the colour does* rather than by where it sits in the token
|
|
15
|
+
* file: a user opening the panel is looking for "the accent" or "the status
|
|
16
|
+
* colours", not for declaration seventeen. Covers `THEME_COLOR_TOKENS` exactly —
|
|
17
|
+
* a test enforces it, because a token missing from this list is a theme the
|
|
18
|
+
* configurator silently cannot express.
|
|
19
|
+
*/
|
|
20
|
+
const COLOR_TOKEN_GROUPS = [
|
|
21
|
+
{
|
|
22
|
+
id: "ground",
|
|
23
|
+
label: "Ground & surfaces",
|
|
24
|
+
tokens: [
|
|
25
|
+
"bg",
|
|
26
|
+
"sunken",
|
|
27
|
+
"surface-1",
|
|
28
|
+
"surface-2",
|
|
29
|
+
"surface-3",
|
|
30
|
+
"data-ground",
|
|
31
|
+
"scrim"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: "ink",
|
|
36
|
+
label: "Ink",
|
|
37
|
+
tokens: [
|
|
38
|
+
"fg",
|
|
39
|
+
"fg-muted",
|
|
40
|
+
"fg-subtle"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "borders",
|
|
45
|
+
label: "Borders",
|
|
46
|
+
tokens: [
|
|
47
|
+
"border",
|
|
48
|
+
"border-strong",
|
|
49
|
+
"border-overlay"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: "accent",
|
|
54
|
+
label: "Accent",
|
|
55
|
+
tokens: [
|
|
56
|
+
"accent",
|
|
57
|
+
"accent-hover",
|
|
58
|
+
"accent-fg",
|
|
59
|
+
"focus",
|
|
60
|
+
"selection"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: "status",
|
|
65
|
+
label: "Status",
|
|
66
|
+
tokens: [
|
|
67
|
+
"ok",
|
|
68
|
+
"busy",
|
|
69
|
+
"warn",
|
|
70
|
+
"warn-fg",
|
|
71
|
+
"danger",
|
|
72
|
+
"danger-fg",
|
|
73
|
+
"info",
|
|
74
|
+
"stream"
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
];
|
|
78
|
+
/** One token: its name, its swatch, and — once it has moved — its way back. */
|
|
79
|
+
function TokenRow({ property, value, overridden, onTokenChange, onTokenReset }) {
|
|
80
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
81
|
+
"data-slot": "configurator-token",
|
|
82
|
+
"data-token": property,
|
|
83
|
+
"data-overridden": overridden ? "true" : void 0,
|
|
84
|
+
className: "flex items-center gap-(--cue-space-2)",
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ jsx("span", {
|
|
87
|
+
className: cn("min-w-0 flex-1 truncate font-mono text-(length:--cue-text-label)", overridden ? "text-accent" : "text-fg-muted"),
|
|
88
|
+
children: property
|
|
89
|
+
}),
|
|
90
|
+
/* @__PURE__ */ jsx(ColorPicker, {
|
|
91
|
+
label: property,
|
|
92
|
+
value,
|
|
93
|
+
onValueChange: (next) => onTokenChange(property, next),
|
|
94
|
+
size: "sm",
|
|
95
|
+
alpha: true,
|
|
96
|
+
className: "max-w-[9rem] shrink-0"
|
|
97
|
+
}),
|
|
98
|
+
overridden ? /* @__PURE__ */ jsx(IconButton, {
|
|
99
|
+
"aria-label": `Reset ${property}`,
|
|
100
|
+
icon: ResetGlyph,
|
|
101
|
+
size: "sm",
|
|
102
|
+
onClick: () => onTokenReset(property)
|
|
103
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
104
|
+
"aria-hidden": "true",
|
|
105
|
+
className: "size-control-sm shrink-0"
|
|
106
|
+
})
|
|
107
|
+
]
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* The grouped colour rows.
|
|
112
|
+
*
|
|
113
|
+
* Stateless by design: it renders the values it is handed and reports edits
|
|
114
|
+
* back. The configurator owns the override model, and so does anything else
|
|
115
|
+
* that wants to reuse these rows.
|
|
116
|
+
*
|
|
117
|
+
* `react-aria-components` is an **optional peer** (it arrives with
|
|
118
|
+
* `ColorPicker`): import this from `@cueplusplus/ui/configurator`.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* <TokenEditor
|
|
122
|
+
* values={resolvedTokens(overrides, scope)}
|
|
123
|
+
* overridden={new Set(Object.keys(overrides.themes[scopeKey(scope)] ?? {}))}
|
|
124
|
+
* onTokenChange={(token, value) => setOverrides(setOverride(overrides, scope, token, value))}
|
|
125
|
+
* onTokenReset={(token) => setOverrides(clearOverride(overrides, scope, token))}
|
|
126
|
+
* />
|
|
127
|
+
*/
|
|
128
|
+
function TokenEditor({ values, overridden, onTokenChange, onTokenReset, groups = COLOR_TOKEN_GROUPS, className }) {
|
|
129
|
+
return /* @__PURE__ */ jsx("div", {
|
|
130
|
+
"data-slot": "configurator-token-editor",
|
|
131
|
+
className: cn("flex flex-col gap-(--cue-space-4)", className),
|
|
132
|
+
children: groups.map((group) => /* @__PURE__ */ jsxs("div", {
|
|
133
|
+
"data-slot": "configurator-token-group",
|
|
134
|
+
className: "flex flex-col gap-(--cue-space-2)",
|
|
135
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
136
|
+
className: "font-mono text-(length:--cue-text-micro) tracking-[0.15em] text-fg-subtle uppercase",
|
|
137
|
+
children: group.label
|
|
138
|
+
}), group.tokens.map((token) => {
|
|
139
|
+
const property = tokenProperty(token);
|
|
140
|
+
return /* @__PURE__ */ jsx(TokenRow, {
|
|
141
|
+
property,
|
|
142
|
+
value: values[property] ?? "",
|
|
143
|
+
overridden: overridden.has(property),
|
|
144
|
+
onTokenChange,
|
|
145
|
+
onTokenReset
|
|
146
|
+
}, property);
|
|
147
|
+
})]
|
|
148
|
+
}, group.id))
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//#endregion
|
|
152
|
+
export { COLOR_TOKEN_GROUPS, TokenEditor };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
//#region src/configurator/use-zoom.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The root zoom valve — luma's relief mechanism, adopted system-wide.
|
|
4
|
+
*
|
|
5
|
+
* Density is a *design* decision made in discrete, hand-authored steps; zoom is
|
|
6
|
+
* a *comfort* decision the person at the keyboard makes, continuously, about
|
|
7
|
+
* this screen at this distance. Conflating the two is how systems end up with a
|
|
8
|
+
* naive multiplier and blurry half-pixel geometry, so this is deliberately not a
|
|
9
|
+
* token: it sets the CSS `zoom` property on one element and lets the browser
|
|
10
|
+
* scale the finished layout, which keeps every hairline crisp and every rem
|
|
11
|
+
* ratio intact.
|
|
12
|
+
*
|
|
13
|
+
* The range is 0.7–1.5 because that is the band luma's console shipped and the
|
|
14
|
+
* spec adopted: below 0.7 the 9px type stops being type, above 1.5 the
|
|
15
|
+
* ultra-compact ladder has stopped being ultra-compact and the density picker is
|
|
16
|
+
* the better tool.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const zoom = useZoom();
|
|
20
|
+
* <Slider aria-label="Zoom" min={zoom.min} max={zoom.max} value={zoom.zoom} onValueChange={zoom.setZoom} />
|
|
21
|
+
*/
|
|
22
|
+
/** Floor of the valve — below this the type ladder stops being legible. */
|
|
23
|
+
declare const MIN_ZOOM = 0.7;
|
|
24
|
+
/** Ceiling of the valve — above this, pick a larger density instead. */
|
|
25
|
+
declare const MAX_ZOOM = 1.5;
|
|
26
|
+
/** One notch of the valve, and of ⌘+ / ⌘−. */
|
|
27
|
+
declare const ZOOM_STEP = 0.1;
|
|
28
|
+
interface UseZoomOptions {
|
|
29
|
+
/** Current zoom, for a controlled valve. Pair with `onZoomChange`. */
|
|
30
|
+
zoom?: number;
|
|
31
|
+
/** Starting zoom for an uncontrolled valve. Defaults to `1`. */
|
|
32
|
+
defaultZoom?: number;
|
|
33
|
+
/** Called with every new value, clamped and rounded. */
|
|
34
|
+
onZoomChange?: (zoom: number) => void;
|
|
35
|
+
/** Floor. Defaults to {@link MIN_ZOOM}. */
|
|
36
|
+
min?: number;
|
|
37
|
+
/** Ceiling. Defaults to {@link MAX_ZOOM}. */
|
|
38
|
+
max?: number;
|
|
39
|
+
/** Size of one notch. Defaults to {@link ZOOM_STEP}. */
|
|
40
|
+
step?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Element to scale. Defaults to `<html>`, which is the point of a *root* zoom;
|
|
43
|
+
* pass `null` to run the valve as state only and apply it yourself.
|
|
44
|
+
*/
|
|
45
|
+
target?: HTMLElement | null;
|
|
46
|
+
/**
|
|
47
|
+
* Bind ⌘/Ctrl with `+`, `-` and `0`, taking those combinations away from the
|
|
48
|
+
* browser's own zoom. Defaults to `true`.
|
|
49
|
+
*/
|
|
50
|
+
shortcuts?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/** What {@link useZoom} hands back. */
|
|
53
|
+
interface ZoomValve {
|
|
54
|
+
/** Current zoom. */
|
|
55
|
+
zoom: number;
|
|
56
|
+
/** Set it, clamped into range and rounded to two decimals. */
|
|
57
|
+
setZoom: (zoom: number) => void;
|
|
58
|
+
/** One notch up. */
|
|
59
|
+
zoomIn: () => void;
|
|
60
|
+
/** One notch down. */
|
|
61
|
+
zoomOut: () => void;
|
|
62
|
+
/** Back to 1, which also takes the declaration out of the document. */
|
|
63
|
+
reset: () => void;
|
|
64
|
+
/** The floor in force. */
|
|
65
|
+
min: number;
|
|
66
|
+
/** The ceiling in force. */
|
|
67
|
+
max: number;
|
|
68
|
+
/** The notch in force. */
|
|
69
|
+
step: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A bounded, stepped root-zoom valve with the usual keyboard shortcuts.
|
|
73
|
+
*
|
|
74
|
+
* Controlled or uncontrolled, the same way every other control in this system
|
|
75
|
+
* is: pass `zoom` to own the value, `defaultZoom` to let the hook own it.
|
|
76
|
+
*
|
|
77
|
+
* The declaration belongs to the hook while it is mounted — unmounting takes it
|
|
78
|
+
* back off, so a configurator that is closed does not leave the page at 1.4.
|
|
79
|
+
*
|
|
80
|
+
* @param options - Range, target, controlled value, shortcut opt-out.
|
|
81
|
+
* @returns The valve: the value and the four ways to move it.
|
|
82
|
+
* @example
|
|
83
|
+
* const { zoom, zoomIn, zoomOut, reset } = useZoom({ shortcuts: false });
|
|
84
|
+
*/
|
|
85
|
+
declare function useZoom(options?: UseZoomOptions): ZoomValve;
|
|
86
|
+
//#endregion
|
|
87
|
+
export { MAX_ZOOM, MIN_ZOOM, UseZoomOptions, ZOOM_STEP, ZoomValve, useZoom };
|