@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,57 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
//#region src/primitives/status-dot.tsx
|
|
5
|
+
const DOT_TONES = {
|
|
6
|
+
ok: "bg-ok",
|
|
7
|
+
busy: "bg-busy",
|
|
8
|
+
warn: "bg-warn",
|
|
9
|
+
danger: "bg-danger",
|
|
10
|
+
idle: "border border-fg-subtle bg-transparent"
|
|
11
|
+
};
|
|
12
|
+
/** Default diameter in px — the smallest dot that still reads as a shape. */
|
|
13
|
+
const DEFAULT_SIZE_PX = 6;
|
|
14
|
+
/** px at the reference 16px root, converted so the dot tracks browser zoom. */
|
|
15
|
+
const toRem = (px) => `${px / 16}rem`;
|
|
16
|
+
/**
|
|
17
|
+
* A 6px state dot — the densest possible status indicator.
|
|
18
|
+
*
|
|
19
|
+
* Colour alone never carries meaning here: the dot is `aria-hidden` and the
|
|
20
|
+
* component always emits an `sr-only` label inside a `role="status"` wrapper,
|
|
21
|
+
* so the state is announced as well as shown (WCAG 1.4.1).
|
|
22
|
+
*
|
|
23
|
+
* The wrapper is `relative` for that label's sake and no other reason.
|
|
24
|
+
* `.sr-only` is `position: absolute`; without a positioned ancestor its
|
|
25
|
+
* containing block is the initial one, so its scrollable overflow lands on
|
|
26
|
+
* `<html>` rather than on whatever scroller it is nested in. One dot is
|
|
27
|
+
* harmless and a table of two thousand rows is a document several thousand
|
|
28
|
+
* pixels taller than anything visible on it.
|
|
29
|
+
*
|
|
30
|
+
* Static markup — no `"use client"`.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* <StatusDot tone="ok" />
|
|
34
|
+
* @example
|
|
35
|
+
* <StatusDot tone="busy" pulse label="Rendering preview" size={8} />
|
|
36
|
+
*/
|
|
37
|
+
const StatusDot = React.forwardRef(function StatusDot({ className, tone, pulse = false, size = DEFAULT_SIZE_PX, label, ...elementProps }, ref) {
|
|
38
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
39
|
+
ref,
|
|
40
|
+
role: "status",
|
|
41
|
+
className: cn("relative inline-flex shrink-0 items-center justify-center", className),
|
|
42
|
+
...elementProps,
|
|
43
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
44
|
+
"aria-hidden": "true",
|
|
45
|
+
className: cn("block shrink-0 rounded-full", DOT_TONES[tone], pulse ? "animate-pulse motion-reduce:animate-none" : null),
|
|
46
|
+
style: {
|
|
47
|
+
width: toRem(size),
|
|
48
|
+
height: toRem(size)
|
|
49
|
+
}
|
|
50
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
51
|
+
className: "sr-only",
|
|
52
|
+
children: label ?? tone
|
|
53
|
+
})]
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//#endregion
|
|
57
|
+
export { StatusDot };
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/*! @cueplusplus/ui — lane A stylesheet (Tailwind v4 consumers).
|
|
2
|
+
*
|
|
3
|
+
* Consumer app CSS:
|
|
4
|
+
* @import "tailwindcss";
|
|
5
|
+
* @import "@cueplusplus/ui/styles.css";
|
|
6
|
+
* @import "@cueplusplus/theme-cue/theme.css"; (or any theme package)
|
|
7
|
+
*
|
|
8
|
+
* Tailwind v4 does not scan node_modules, so the library registers its own
|
|
9
|
+
* sources: `@source "./"` resolves relative to THIS file, i.e. the shipped
|
|
10
|
+
* dist/, which is where the class strings live after the build.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/* Two lines, and the first one is the release's whole behaviour change.
|
|
14
|
+
*
|
|
15
|
+
* It used to be `@cueplusplus/tokens/theme.css`, which carried ten palettes and
|
|
16
|
+
* painted `cue` on a bare `:root`. A palette is a package now, so what this
|
|
17
|
+
* library ships is the *blank* base: `theme-base/base.css` declares every colour
|
|
18
|
+
* token at a neutral default and imports `@cueplusplus/tokens/axes.css` for the
|
|
19
|
+
* geometry and type axes. That is why there is no third line — `base.css`
|
|
20
|
+
* carries the axes with it, and `tailwind.css` maps utilities onto token names
|
|
21
|
+
* and pulls nothing.
|
|
22
|
+
*
|
|
23
|
+
* An app that imports this and registers no theme therefore paints greys and one
|
|
24
|
+
* desaturated accent, rather than somebody's brand. To get a palette back:
|
|
25
|
+
* install a theme package, import its stylesheet after this one, and pass its
|
|
26
|
+
* manifest to the provider —
|
|
27
|
+
*
|
|
28
|
+
* @import "@cueplusplus/ui/styles.css";
|
|
29
|
+
* @import "@cueplusplus/theme-cue/theme.css";
|
|
30
|
+
*
|
|
31
|
+
* with `<ThemeProvider themes={[cue]} theme="cue">`. Order matters and is not an
|
|
32
|
+
* accident: `[data-theme]` and `:root` tie at (0,1,0), so a theme's block wins
|
|
33
|
+
* by being declared later. */
|
|
34
|
+
@import "@cueplusplus/theme-base/base.css";
|
|
35
|
+
@import "@cueplusplus/tokens/tailwind.css";
|
|
36
|
+
|
|
37
|
+
@source "./";
|
|
38
|
+
|
|
39
|
+
/* One variant per rung of the density ladder, each named after the rung it
|
|
40
|
+
* matches — so `density-large:` means the level a consumer writes as
|
|
41
|
+
* `density="large"`, and cannot drift from it.
|
|
42
|
+
*
|
|
43
|
+
* `density-ultra:` is gone with the five-rung rename of 2026-08-19: with an
|
|
44
|
+
* `ultra-large` rung in the ladder, "ultra" no longer names one level. Its
|
|
45
|
+
* replacement is `density-ultra-compact:`. `density-large:` survives the rename
|
|
46
|
+
* as a name and changes meaning with it — it matched the ladder's top rung
|
|
47
|
+
* before, and the ladder now has two rungs above that one. */
|
|
48
|
+
@custom-variant density-ultra-compact (&:where([data-density="ultra-compact"], [data-density="ultra-compact"] *));
|
|
49
|
+
@custom-variant density-compact (&:where([data-density="compact"], [data-density="compact"] *));
|
|
50
|
+
@custom-variant density-normal (&:where([data-density="normal"], [data-density="normal"] *));
|
|
51
|
+
@custom-variant density-large (&:where([data-density="large"], [data-density="large"] *));
|
|
52
|
+
@custom-variant density-ultra-large (&:where([data-density="ultra-large"], [data-density="ultra-large"] *));
|
|
53
|
+
@custom-variant mode-light {
|
|
54
|
+
&:where([data-mode="light"], [data-mode="light"] *) {
|
|
55
|
+
@slot;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@media (prefers-color-scheme: light) {
|
|
59
|
+
&:where([data-mode="system"], [data-mode="system"] *) {
|
|
60
|
+
@slot;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* The one keyframe this library's core needs, and the reason it cannot be a
|
|
66
|
+
* utility: `<Plussie idle />` blinks, and Tailwind has no `animate-*` for a
|
|
67
|
+
* two-frame squash about an SVG group's own centre.
|
|
68
|
+
*
|
|
69
|
+
* Same shape as the pulse in `flow.css`: a bespoke class, the keyframes beside
|
|
70
|
+
* it, and a `prefers-reduced-motion` block that switches it off. `fill-box`
|
|
71
|
+
* puts the transform origin at the eye's own centre rather than the SVG's
|
|
72
|
+
* corner, which is what makes the eye shut across its middle instead of sliding
|
|
73
|
+
* up. The class does nothing unless the prop asks for it — every other Plussie
|
|
74
|
+
* on the page is still. */
|
|
75
|
+
@keyframes cue-plussie-blink {
|
|
76
|
+
0%,
|
|
77
|
+
93%,
|
|
78
|
+
100% {
|
|
79
|
+
transform: scaleY(1);
|
|
80
|
+
}
|
|
81
|
+
95.5%,
|
|
82
|
+
96.5% {
|
|
83
|
+
transform: scaleY(0.05);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.cue-plussie-idle {
|
|
88
|
+
transform-box: fill-box;
|
|
89
|
+
transform-origin: center;
|
|
90
|
+
animation: cue-plussie-blink 5.2s ease-in-out infinite;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@media (prefers-reduced-motion: reduce) {
|
|
94
|
+
.cue-plussie-idle {
|
|
95
|
+
animation: none;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
//#region src/system/agent-skin.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Which value-set paints the elements family inside this subtree.
|
|
5
|
+
*
|
|
6
|
+
* - `cue` — the default, and the one that needs no stylesheet: the vendored
|
|
7
|
+
* elements were rewritten onto `--cue-*` tokens, so they are already this
|
|
8
|
+
* system's components.
|
|
9
|
+
* - `aui` — supersede mode. `@cueplusplus/ui/elements.css` re-points those same
|
|
10
|
+
* tokens to assistant-ui's own values under `[data-cue-skin="aui"]`, so one
|
|
11
|
+
* DOM paints two ways with no branching in any component.
|
|
12
|
+
*/
|
|
13
|
+
type AgentSkin = "cue" | "aui";
|
|
14
|
+
/**
|
|
15
|
+
* How far the supersede island goes: colour only, or colour and geometry.
|
|
16
|
+
*
|
|
17
|
+
* - `cue-metrics` — the default. Colour is re-pointed; cue's type scale, radius
|
|
18
|
+
* ladder and density ladder still apply, so an island tracks the density of
|
|
19
|
+
* the console around it.
|
|
20
|
+
* - `upstream` — assistant-ui's metrics too: their radii, their literal 13.5 /
|
|
21
|
+
* 12 / 11 px type, `--spacing` pinned at Tailwind's default. Density stops at
|
|
22
|
+
* the island edge, which is the point — this is the mode for showing an
|
|
23
|
+
* element exactly as its authors drew it.
|
|
24
|
+
*/
|
|
25
|
+
type AgentFidelity = "upstream" | "cue-metrics";
|
|
26
|
+
//#endregion
|
|
27
|
+
export { AgentFidelity, AgentSkin };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/system/agent-skin.ts
|
|
4
|
+
/**
|
|
5
|
+
* Nearest ambient skin island. `null` means there is none, which is the case
|
|
6
|
+
* for almost every tree — and is why the portal stamp *removes* these two
|
|
7
|
+
* attributes rather than defaulting them.
|
|
8
|
+
*
|
|
9
|
+
* It lives in `system/` rather than beside `AgentSurface` for one reason: the
|
|
10
|
+
* portal stamp reads its axes from React context, never from the DOM (a portal
|
|
11
|
+
* is mounted outside its owner's subtree, so DOM discovery would read the
|
|
12
|
+
* body's values). `system/portal.tsx` is in the core barrel's import graph and
|
|
13
|
+
* `elements/` is behind an optional peer, so the context has to sit on the side
|
|
14
|
+
* that both can reach.
|
|
15
|
+
*
|
|
16
|
+
* @internal Consumers use `<AgentSurface>` from `@cueplusplus/ui/elements`.
|
|
17
|
+
*/
|
|
18
|
+
const AgentSkinContext = React.createContext(null);
|
|
19
|
+
//#endregion
|
|
20
|
+
export { AgentSkinContext };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { StyleSet } from "@cueplusplus/tokens";
|
|
3
|
+
import { Density as Density$1 } from "@cueplusplus/theme-base";
|
|
4
|
+
//#region src/system/density.d.ts
|
|
5
|
+
interface DensityProps {
|
|
6
|
+
/**
|
|
7
|
+
* Level to apply to this subtree: `ultra-compact`, `compact`, `normal`,
|
|
8
|
+
* `large` or `ultra-large`.
|
|
9
|
+
*/
|
|
10
|
+
density: Density$1;
|
|
11
|
+
/**
|
|
12
|
+
* A style set for this subtree: `console`, `editorial` or `marketing`.
|
|
13
|
+
*
|
|
14
|
+
* Optional, and **absent means inherit** — an island that names none stamps no
|
|
15
|
+
* `data-style` and passes the ambient set straight through, exactly as a bare
|
|
16
|
+
* `<Density>` does today. Naming one is what makes this the library's island
|
|
17
|
+
* form of the fourth axis, and there are two reasons to reach for it:
|
|
18
|
+
*
|
|
19
|
+
* - `console` inside a page that is not console. That is the whole job of the
|
|
20
|
+
* default set: it restates the `:root` defaults, so a subtree stamped with
|
|
21
|
+
* it renders the ordinary look inside an editorial or marketing page.
|
|
22
|
+
* - Moving the band rhythm with the rung. `--cue-band-y` is
|
|
23
|
+
* `calc(var(--cue-space-7) * 2)` declared on the `[data-style]` element, and
|
|
24
|
+
* a custom property's `var()` references are substituted where they are
|
|
25
|
+
* declared — so a nested density island moves `--cue-space-*` but inherits
|
|
26
|
+
* the rhythm already resolved above it. Restating the set here re-resolves
|
|
27
|
+
* it against this island's rung, which is how a denser island gets a
|
|
28
|
+
* proportionally tighter band instead of the outer one's.
|
|
29
|
+
*/
|
|
30
|
+
styleSet?: StyleSet;
|
|
31
|
+
/** Subtree that should render at `density`. */
|
|
32
|
+
children: React.ReactNode;
|
|
33
|
+
/** Extra classes for the island element. It is an ordinary `<div>` — style it like one. */
|
|
34
|
+
className?: string;
|
|
35
|
+
/** Inline styles for the island element. */
|
|
36
|
+
style?: React.CSSProperties;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Re-scope any subtree to a different density level.
|
|
40
|
+
*
|
|
41
|
+
* Renders a plain `<div data-density="…" data-cue-theme="…">`: the geometry
|
|
42
|
+
* custom properties are re-declared by the attribute selector and inherit
|
|
43
|
+
* down, so nesting is free and needs no JS. The matching React context is
|
|
44
|
+
* published alongside for the rare JS reads (`useDensity()`,
|
|
45
|
+
* `useControlHeight()`, portal stamping) — the DOM attributes, not the
|
|
46
|
+
* context, are what actually restyle the tree.
|
|
47
|
+
*
|
|
48
|
+
* `data-cue-theme` carries the nearest `<ThemeProvider>`'s name, or is
|
|
49
|
+
* omitted where there is none. It is read by nothing this island does —
|
|
50
|
+
* theme and mode are deliberately *not* re-scoped here; density was for a long
|
|
51
|
+
* time the only axis an island could override (spec §6), and a named
|
|
52
|
+
* `styleSet` is the second and last — it exists so a theme's own
|
|
53
|
+
* generated CSS can address exactly this island regardless of how many
|
|
54
|
+
* *other* themed providers sit between it and the one it belongs to. A CSS
|
|
55
|
+
* ancestor selector can only ask "does some ancestor carry theme `x`", never
|
|
56
|
+
* "is `x` the *nearest* one"; this stamp answers that question the way
|
|
57
|
+
* `useContext` already does, at render time, and hands the answer to CSS as
|
|
58
|
+
* an attribute rather than leaving it unanswerable there.
|
|
59
|
+
*
|
|
60
|
+
* `data-style` joins them when — and only when — a `styleSet` is named. Absence
|
|
61
|
+
* is how the axis inherits: custom properties inherit down the DOM, so an island
|
|
62
|
+
* that stamped the ambient set would be restating an answer it already had, and
|
|
63
|
+
* an island that stamped a *default* set would silently re-point the rhythm of
|
|
64
|
+
* every page that nested one.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* <Density density="ultra-compact">
|
|
68
|
+
* <Toolbar />
|
|
69
|
+
* </Density>
|
|
70
|
+
*/
|
|
71
|
+
declare function Density$2({ density, styleSet, children, className, style }: DensityProps): React.JSX.Element;
|
|
72
|
+
//#endregion
|
|
73
|
+
export { Density$2 as Density, DensityProps };
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/system/density.tsx
|
|
5
|
+
/**
|
|
6
|
+
* Density level every unstamped subtree falls back to.
|
|
7
|
+
*
|
|
8
|
+
* `compact`, which is the second rung and not the middle one. This is console
|
|
9
|
+
* software: the ladder is symmetric about `normal` for the sake of its names,
|
|
10
|
+
* but the level a screen gets when nobody chose is the dense one.
|
|
11
|
+
*/
|
|
12
|
+
const DEFAULT_DENSITY = "compact";
|
|
13
|
+
/**
|
|
14
|
+
* Nearest ambient density. `null` means "nothing has stamped a level yet", which
|
|
15
|
+
* `useDensity()` reports as {@link DEFAULT_DENSITY}.
|
|
16
|
+
*
|
|
17
|
+
* Internal: consumers read it through `useDensity()`, never directly.
|
|
18
|
+
*/
|
|
19
|
+
const DensityContext = React.createContext(null);
|
|
20
|
+
/**
|
|
21
|
+
* Nearest ambient theme's name, published for exactly one reader: `Density`
|
|
22
|
+
* below, which stamps it onto its island as `data-cue-theme` so a theme's
|
|
23
|
+
* CSS can tell *nearest* theme from *any* theme in the ancestor chain (see
|
|
24
|
+
* `densityRules`/`themeSelector`'s comment). `use-density.ts`'s measuring
|
|
25
|
+
* probe stamps the same attribute from the identical value, read through
|
|
26
|
+
* `ThemeContext` there instead, because it already imports that module with
|
|
27
|
+
* no cycle.
|
|
28
|
+
*
|
|
29
|
+
* Defined here, not in `theme-provider.tsx`, and re-exported from nowhere
|
|
30
|
+
* else. `theme-provider.tsx` already imports `DensityContext` from this
|
|
31
|
+
* module; a context this small living over there and imported back here
|
|
32
|
+
* would cycle the two modules. `null` outside a provider, the same as
|
|
33
|
+
* `ThemeContext`'s own theme field would be if it existed with no provider
|
|
34
|
+
* to require — `Density` used bare, with nothing above it, stamps nothing.
|
|
35
|
+
*
|
|
36
|
+
* Internal: `Density` is the only reader. Not `useTheme()` — that throws
|
|
37
|
+
* outside a provider, and this island has no reason to.
|
|
38
|
+
*/
|
|
39
|
+
const AmbientThemeContext = React.createContext(null);
|
|
40
|
+
/**
|
|
41
|
+
* Nearest ambient style set. `null` means "nothing has stamped a set", which
|
|
42
|
+
* every reader reports as "no style set" rather than as the default one.
|
|
43
|
+
*
|
|
44
|
+
* Defined here, not in `theme-provider.tsx`, for the reason `AmbientThemeContext`
|
|
45
|
+
* above is: `theme-provider.tsx` already imports `DensityContext` from this
|
|
46
|
+
* module, and a context this small living over there and imported back here
|
|
47
|
+
* would cycle the two modules. Its readers are the provider, `Density` below,
|
|
48
|
+
* `Preview`'s `StageScope` and the portal stamp.
|
|
49
|
+
*
|
|
50
|
+
* Internal, and read directly rather than through `useTheme().styleSet`. A
|
|
51
|
+
* provider publishes this and its `ThemeContext.styleSet` from one value, so
|
|
52
|
+
* inside a provider the two agree; a `<Density styleSet>` island re-scopes this
|
|
53
|
+
* context without a `ThemeContext` of its own, so only this one answers "what
|
|
54
|
+
* set is stamped around me" everywhere. That is the question `Preview`'s stage
|
|
55
|
+
* and the portal stamp have to ask, because both leave the DOM they were
|
|
56
|
+
* written in and have to carry the answer with them.
|
|
57
|
+
*/
|
|
58
|
+
const StyleSetContext = React.createContext(null);
|
|
59
|
+
/**
|
|
60
|
+
* Re-scope any subtree to a different density level.
|
|
61
|
+
*
|
|
62
|
+
* Renders a plain `<div data-density="…" data-cue-theme="…">`: the geometry
|
|
63
|
+
* custom properties are re-declared by the attribute selector and inherit
|
|
64
|
+
* down, so nesting is free and needs no JS. The matching React context is
|
|
65
|
+
* published alongside for the rare JS reads (`useDensity()`,
|
|
66
|
+
* `useControlHeight()`, portal stamping) — the DOM attributes, not the
|
|
67
|
+
* context, are what actually restyle the tree.
|
|
68
|
+
*
|
|
69
|
+
* `data-cue-theme` carries the nearest `<ThemeProvider>`'s name, or is
|
|
70
|
+
* omitted where there is none. It is read by nothing this island does —
|
|
71
|
+
* theme and mode are deliberately *not* re-scoped here; density was for a long
|
|
72
|
+
* time the only axis an island could override (spec §6), and a named
|
|
73
|
+
* `styleSet` is the second and last — it exists so a theme's own
|
|
74
|
+
* generated CSS can address exactly this island regardless of how many
|
|
75
|
+
* *other* themed providers sit between it and the one it belongs to. A CSS
|
|
76
|
+
* ancestor selector can only ask "does some ancestor carry theme `x`", never
|
|
77
|
+
* "is `x` the *nearest* one"; this stamp answers that question the way
|
|
78
|
+
* `useContext` already does, at render time, and hands the answer to CSS as
|
|
79
|
+
* an attribute rather than leaving it unanswerable there.
|
|
80
|
+
*
|
|
81
|
+
* `data-style` joins them when — and only when — a `styleSet` is named. Absence
|
|
82
|
+
* is how the axis inherits: custom properties inherit down the DOM, so an island
|
|
83
|
+
* that stamped the ambient set would be restating an answer it already had, and
|
|
84
|
+
* an island that stamped a *default* set would silently re-point the rhythm of
|
|
85
|
+
* every page that nested one.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* <Density density="ultra-compact">
|
|
89
|
+
* <Toolbar />
|
|
90
|
+
* </Density>
|
|
91
|
+
*/
|
|
92
|
+
function Density({ density, styleSet, children, className, style }) {
|
|
93
|
+
const theme = React.useContext(AmbientThemeContext);
|
|
94
|
+
const ambientStyleSet = React.useContext(StyleSetContext);
|
|
95
|
+
return /* @__PURE__ */ jsx(DensityContext.Provider, {
|
|
96
|
+
value: density,
|
|
97
|
+
children: /* @__PURE__ */ jsx(StyleSetContext.Provider, {
|
|
98
|
+
value: styleSet ?? ambientStyleSet,
|
|
99
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
100
|
+
"data-density": density,
|
|
101
|
+
"data-cue-theme": theme ?? void 0,
|
|
102
|
+
"data-style": styleSet ?? void 0,
|
|
103
|
+
className,
|
|
104
|
+
style,
|
|
105
|
+
children
|
|
106
|
+
})
|
|
107
|
+
})
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//#endregion
|
|
111
|
+
export { AmbientThemeContext, DEFAULT_DENSITY, Density, DensityContext, StyleSetContext };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TokenOverrides, isSafeTokenValue } from "./overrides.js";
|
|
2
|
+
import { FontFamilies, ResolvedMode, ThemeContextValue, ThemeProvider, ThemeProviderProps } from "./theme-provider.js";
|
|
3
|
+
import { Density, DensityProps } from "./density.js";
|
|
4
|
+
import { CuePortalFrame, CuePortalFrameProps, useCuePortalProps } from "./portal.js";
|
|
5
|
+
import { DEFAULT_STORAGE_KEY, PersistedPreferences, PrepaintDefaults, PrepaintOptions, prepaintScript } from "./prepaint.js";
|
|
6
|
+
import { ThemeRegistry } from "./vocabulary.js";
|
|
7
|
+
import { useDensities, useFonts, useThemes } from "./theme-registry.js";
|
|
8
|
+
import { ControlSize, useControlHeight, useDensity } from "./use-density.js";
|
|
9
|
+
import { useTheme } from "./use-theme.js";
|
|
10
|
+
import { DEFAULT_STYLE_SET, STYLE_SETS, StyleSet } from "@cueplusplus/tokens";
|
|
11
|
+
import { Density as DensityLevel, DensityEntry, FontEntry, FontName, Mode, ThemeManifest, ThemeName } from "@cueplusplus/theme-base";
|
|
12
|
+
export { type ControlSize, CuePortalFrame, type CuePortalFrameProps, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, Density, type DensityEntry, type DensityLevel, type DensityProps, type FontEntry, type FontFamilies, type FontName, type Mode, type PersistedPreferences, type PrepaintDefaults, type PrepaintOptions, type ResolvedMode, STYLE_SETS, type StyleSet, type ThemeContextValue, type ThemeManifest, type ThemeName, ThemeProvider, type ThemeProviderProps, type ThemeRegistry, type TokenOverrides, isSafeTokenValue, prepaintScript, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useTheme, useThemes };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Density } from "./density.js";
|
|
2
|
+
import { isSafeTokenValue } from "./overrides.js";
|
|
3
|
+
import { DEFAULT_STORAGE_KEY, prepaintScript } from "./prepaint.js";
|
|
4
|
+
import { useDensities, useFonts, useThemes } from "./theme-registry.js";
|
|
5
|
+
import { ThemeProvider } from "./theme-provider.js";
|
|
6
|
+
import { CuePortalFrame, useCuePortalProps } from "./portal.js";
|
|
7
|
+
import { useControlHeight, useDensity } from "./use-density.js";
|
|
8
|
+
import { useTheme } from "./use-theme.js";
|
|
9
|
+
import { DEFAULT_STYLE_SET, STYLE_SETS } from "@cueplusplus/tokens";
|
|
10
|
+
export { CuePortalFrame, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, Density, STYLE_SETS, ThemeProvider, isSafeTokenValue, prepaintScript, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useTheme, useThemes };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import { ColorToken, GeometryToken, ThemeManifest } from "@cueplusplus/theme-base";
|
|
3
|
+
//#region src/system/overrides.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A typed edit over the active theme.
|
|
6
|
+
*
|
|
7
|
+
* Not `ThemeOverrides`: `@cueplusplus/ui/configurator` already exports a type
|
|
8
|
+
* by that name — the serialised edit snapshot its panel writes — and the root
|
|
9
|
+
* barrel re-exports `./system` wholesale, so two public types under one name in
|
|
10
|
+
* one package would be an alias every consumer of both subpaths has to write.
|
|
11
|
+
* This one overrides *tokens*, which is what it is named for.
|
|
12
|
+
*
|
|
13
|
+
* Every key is checked against the token contracts, so a typo is a compile
|
|
14
|
+
* error rather than a custom property nothing reads.
|
|
15
|
+
*/
|
|
16
|
+
interface TokenOverrides {
|
|
17
|
+
/**
|
|
18
|
+
* Colour tokens, per block. Only the block the resolved mode is in is
|
|
19
|
+
* emitted, so a provider under `mode="light"` never publishes the dark edit —
|
|
20
|
+
* which is what makes the two independent rather than a merge.
|
|
21
|
+
*/
|
|
22
|
+
colors?: {
|
|
23
|
+
dark?: Partial<Record<ColorToken, string>>;
|
|
24
|
+
light?: Partial<Record<ColorToken, string>>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Geometry, per rung. The key is a rung name — one of the base five, or one a
|
|
28
|
+
* registered theme adds — and the value only the tokens that move.
|
|
29
|
+
*/
|
|
30
|
+
densities?: Partial<Record<string, Partial<Record<GeometryToken, string>>>>;
|
|
31
|
+
/**
|
|
32
|
+
* Font stacks. These write `--cue-font-sans` / `--cue-font-mono` /
|
|
33
|
+
* `--cue-font-display` directly, and so shadow the pairing on `data-font` for
|
|
34
|
+
* the subtree — see `ThemeProviderProps.overrides`.
|
|
35
|
+
*/
|
|
36
|
+
fonts?: Partial<{
|
|
37
|
+
sans: string;
|
|
38
|
+
mono: string;
|
|
39
|
+
display: string;
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Whether a string may be written into the density stylesheet this module
|
|
44
|
+
* builds.
|
|
45
|
+
*
|
|
46
|
+
* The same rule {@link overridesCss} applies at `SAFE_VALUE`, exported because a
|
|
47
|
+
* caller that builds a {@link TokenOverrides} wants to refuse a value at the
|
|
48
|
+
* *input* rather than watch it be dropped, silently and one warning later, at
|
|
49
|
+
* the sheet. A panel that cannot ask the question has two bad answers open to
|
|
50
|
+
* it: keep a second copy of this regex, which stops being this regex the first
|
|
51
|
+
* time either moves, or write the value anyway and let a reader wonder why the
|
|
52
|
+
* picture did not change.
|
|
53
|
+
*
|
|
54
|
+
* `@cueplusplus/ui/configurator` exports `isSafeCssValue` (`configurator/_overrides.ts:239`)
|
|
55
|
+
* for the configurator's own snapshot, and this is deliberately **not** that
|
|
56
|
+
* function: same rule, asked from the module that owns it, without dragging in
|
|
57
|
+
* a subpath that also carries `ThemeConfigurator`, `ExportDialog` and an
|
|
58
|
+
* optional `react-aria-components` peer. Neither imports the other, and the
|
|
59
|
+
* test beside this file is what holds them to one answer.
|
|
60
|
+
*
|
|
61
|
+
* **The one thing the rule does not cover, said out loud: an unterminated
|
|
62
|
+
* `/*`.** It carries none of the five refused characters, so it is accepted and
|
|
63
|
+
* written, and everything after it in that stylesheet — the closing brace and
|
|
64
|
+
* any later declaration — is inside a comment. That is a value of the caller's
|
|
65
|
+
* own that stops their *other* overrides applying, not an injection: with `;`,
|
|
66
|
+
* `{`, `}`, `<` and `\` all refused, no second value can close the comment and
|
|
67
|
+
* open a rule. A caller that wants to refuse it as well can say so on top of
|
|
68
|
+
* this; tightening `SAFE_VALUE` itself would change what `overridesCss` writes,
|
|
69
|
+
* which is a different release note from this one.
|
|
70
|
+
*
|
|
71
|
+
* @param value - The proposed declaration value.
|
|
72
|
+
* @returns `true` when it cannot close its declaration, its block or the
|
|
73
|
+
* `<style>` element — see the comment case above for what that does not mean.
|
|
74
|
+
* @example
|
|
75
|
+
* isSafeTokenValue("Iosevka, monospace"); // → true
|
|
76
|
+
* isSafeTokenValue("red;}"); // → false
|
|
77
|
+
*/
|
|
78
|
+
declare function isSafeTokenValue(value: string): boolean;
|
|
79
|
+
//#endregion
|
|
80
|
+
export { TokenOverrides, isSafeTokenValue };
|