@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,167 @@
|
|
|
1
|
+
import { Density } from "@cueplusplus/tokens";
|
|
2
|
+
import { RESOLVED_MONO, THEME_NAME_PATTERN as THEME_NAME_PATTERN$1 } from "@cueplusplus/theme-base";
|
|
3
|
+
//#region src/theming/serialize.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Turning a resolved token map back into the stylesheet the tokens build would
|
|
6
|
+
* have written.
|
|
7
|
+
*
|
|
8
|
+
* This module exists so there is exactly **one** spelling of the output format.
|
|
9
|
+
* The spec's whole third-party theming story is "tier 2 always compiles down to
|
|
10
|
+
* tier 1" — a generated theme has to be indistinguishable from a hand-authored
|
|
11
|
+
* `[data-theme]` block, or a consumer ends up with two vocabularies and the
|
|
12
|
+
* generator becomes a toy. So the shapes below mirror `build.mjs` deliberately,
|
|
13
|
+
* comments included: same selector form, same declaration order, same section
|
|
14
|
+
* breaks. The generator-versus-build parity that `test/theming/presets.test.ts`
|
|
15
|
+
* used to diff is unguarded for this plan — the shipped preset copy that test
|
|
16
|
+
* compared against was deleted with it — and Plan 4 restores the comparison
|
|
17
|
+
* once `@cueplusplus/tokens` stops emitting presets of its own.
|
|
18
|
+
*
|
|
19
|
+
* It is also the only place that touches raw strings, which makes it the place
|
|
20
|
+
* to stop injection. A theme name lands inside an attribute selector and a font
|
|
21
|
+
* stack lands inside a declaration; both are checked here rather than trusted.
|
|
22
|
+
*/
|
|
23
|
+
/** The one custom-property prefix this design system emits. */
|
|
24
|
+
declare const CUE_TOKEN_PREFIX = "--cue-";
|
|
25
|
+
/**
|
|
26
|
+
* Check a theme name and hand it back.
|
|
27
|
+
*
|
|
28
|
+
* @param name - The proposed theme name.
|
|
29
|
+
* @returns The same name, once it is known to be safe to interpolate.
|
|
30
|
+
* @throws TypeError if the name is not a CSS identifier.
|
|
31
|
+
* @example
|
|
32
|
+
* assertThemeName("acme-dark"); // → "acme-dark"
|
|
33
|
+
*/
|
|
34
|
+
declare function assertThemeName(name: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Check a free-text declaration value and hand it back.
|
|
37
|
+
*
|
|
38
|
+
* @param name - The token the value belongs to, for the error message.
|
|
39
|
+
* @param value - The proposed value.
|
|
40
|
+
* @returns The same value, once it is known to stay inside its declaration.
|
|
41
|
+
* @throws TypeError if the value could end the declaration or the block.
|
|
42
|
+
* @example
|
|
43
|
+
* assertCssValue("font-mono", '"Berkeley Mono", monospace');
|
|
44
|
+
*/
|
|
45
|
+
declare function assertCssValue(name: string, value: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* The custom property a token is emitted as.
|
|
48
|
+
*
|
|
49
|
+
* Idempotent, so code that already holds `--cue-bg` can pass it straight back
|
|
50
|
+
* through instead of stripping the prefix first.
|
|
51
|
+
*
|
|
52
|
+
* @param name - A bare token name, or an already-prefixed property.
|
|
53
|
+
* @returns The `--cue-*` custom property name.
|
|
54
|
+
* @example
|
|
55
|
+
* tokenProperty("surface-1"); // → "--cue-surface-1"
|
|
56
|
+
*/
|
|
57
|
+
declare function tokenProperty(name: string): string;
|
|
58
|
+
interface ThemeSelectorOptions {
|
|
59
|
+
/** Cross with the mode axis. Only `"light"` needs a selector; dark is the base block. */
|
|
60
|
+
mode?: "dark" | "light";
|
|
61
|
+
/** Cross with the density axis. Used only for the radius multiplier. */
|
|
62
|
+
density?: Density;
|
|
63
|
+
/**
|
|
64
|
+
* Emit the descendant form beside the compound one, as `"A, B"`.
|
|
65
|
+
*
|
|
66
|
+
* Only meaningful together with `density`, and it exists because the two axes
|
|
67
|
+
* do **not** always land on the same element. The compound
|
|
68
|
+
* `[data-theme="x"][data-density="y"]` matches only a node carrying both
|
|
69
|
+
* attributes — the provider root, and nothing else. A `<Density>` island
|
|
70
|
+
* stamps `data-density` on a `<div>` *inside* that root, and
|
|
71
|
+
* `useControlHeight`'s measuring probe hangs off `document.body`, outside it
|
|
72
|
+
* entirely; both therefore carry a density with no theme beside it, and both
|
|
73
|
+
* were silently missing the crossed value. The descendant form
|
|
74
|
+
* `[data-theme="x"] [data-density="y"]` covers exactly those, and the pair is
|
|
75
|
+
* emitted rather than the descendant alone because the descendant does not
|
|
76
|
+
* match the root itself.
|
|
77
|
+
*/
|
|
78
|
+
pair?: boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The selector a theme's declarations live under.
|
|
82
|
+
*
|
|
83
|
+
* Attribute selectors, not classes, because the two axes have to compose: a
|
|
84
|
+
* `[data-theme]` on the root and another on a portal, a `[data-mode]` crossed
|
|
85
|
+
* over either, all at the same specificity so later blocks win predictably.
|
|
86
|
+
*
|
|
87
|
+
* @param name - The theme name. Not re-checked — {@link assertThemeName} owns that.
|
|
88
|
+
* @param options - Which axes to cross with.
|
|
89
|
+
* @returns The CSS selector.
|
|
90
|
+
* @example
|
|
91
|
+
* themeSelector("acme", { mode: "light" }); // → '[data-theme="acme"][data-mode="light"]'
|
|
92
|
+
* themeSelector("acme", { density: "compact", pair: true });
|
|
93
|
+
* // → '[data-theme="acme"] [data-density="compact"]:where([data-cue-theme="acme"]), [data-theme="acme"] [data-density="compact"]:where(:not([data-cue-theme]):not([data-theme]:not([data-theme="acme"])):not([data-theme="acme"] [data-theme]:not([data-theme="acme"]) *)), [data-theme="acme"][data-density="compact"]'
|
|
94
|
+
*/
|
|
95
|
+
declare function themeSelector(name: string, options?: ThemeSelectorOptions): string;
|
|
96
|
+
/**
|
|
97
|
+
* The derived colours every theme block carries, as `[token, value]` pairs.
|
|
98
|
+
*
|
|
99
|
+
* They are `color-mix()` expressions over `var(--cue-*)` rather than resolved
|
|
100
|
+
* literals, and they are emitted **inside** the theme block rather than once on
|
|
101
|
+
* `:root`, for the same reason the build does it: a custom property's `var()`
|
|
102
|
+
* references are substituted at the element that declares it, so a `:root`-level
|
|
103
|
+
* mix would freeze the default theme's accent into every nested theme.
|
|
104
|
+
*
|
|
105
|
+
* This is deliberately a second copy of the `DERIVED` table in
|
|
106
|
+
* `packages/tokens/build.mjs`. It has to be one: that table runs at publish time
|
|
107
|
+
* over DTCG files under Style Dictionary, this one runs in a browser over a
|
|
108
|
+
* palette somebody just typed, and neither package can import the other's. What
|
|
109
|
+
* keeps a copy from drifting is not discipline but
|
|
110
|
+
* `test/theming/serialize.test.ts`, which compares this list against the
|
|
111
|
+
* compiled stylesheet in both directions — a derivation added to one side alone
|
|
112
|
+
* fails there rather than in a consumer's app six weeks later.
|
|
113
|
+
*/
|
|
114
|
+
declare const DERIVED_TOKEN_TEMPLATES: ReadonlyArray<readonly [string, string]>;
|
|
115
|
+
/**
|
|
116
|
+
* {@link DERIVED_TOKEN_TEMPLATES} as a property → value map.
|
|
117
|
+
*
|
|
118
|
+
* @returns The sixteen derived declarations, keyed by custom property.
|
|
119
|
+
* @example
|
|
120
|
+
* derivedTokens()["--cue-accent-soft"];
|
|
121
|
+
*/
|
|
122
|
+
declare function derivedTokens(): Record<string, string>;
|
|
123
|
+
/** One run of declarations, optionally introduced by a comment. */
|
|
124
|
+
interface ThemeBlockSection {
|
|
125
|
+
/** Comment printed above the run. Omit on the first section. */
|
|
126
|
+
comment?: string;
|
|
127
|
+
/** `[property, value]` pairs, in emission order. */
|
|
128
|
+
declarations: ReadonlyArray<readonly [string, string]>;
|
|
129
|
+
}
|
|
130
|
+
/** One CSS rule of a generated theme. */
|
|
131
|
+
interface ThemeBlock {
|
|
132
|
+
/** The selector the rule declares under. */
|
|
133
|
+
selector: string;
|
|
134
|
+
/** Emitted as `color-scheme`, ahead of the custom properties. Omit to skip it. */
|
|
135
|
+
colorScheme?: "dark" | "light" | "light dark";
|
|
136
|
+
/** The declarations, grouped into commented sections. */
|
|
137
|
+
sections: readonly ThemeBlockSection[];
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* One rule, printed.
|
|
141
|
+
*
|
|
142
|
+
* Empty sections vanish rather than leaving a comment with nothing under it —
|
|
143
|
+
* which is what makes "emit the fonts section only if there are fonts" a
|
|
144
|
+
* data decision instead of a branch at every call site.
|
|
145
|
+
*
|
|
146
|
+
* @param block - Selector, colour scheme and sections.
|
|
147
|
+
* @returns The rule, without a trailing newline.
|
|
148
|
+
* @example
|
|
149
|
+
* serializeThemeBlock({ selector: ":root", sections: [{ declarations: [["--cue-bg", "#000"]] }] });
|
|
150
|
+
*/
|
|
151
|
+
declare function serializeThemeBlock(block: ThemeBlock): string;
|
|
152
|
+
interface SerializeThemeCssOptions {
|
|
153
|
+
/** Text of the leading `/*! … *\/` banner. Omit for a bare stylesheet. */
|
|
154
|
+
banner?: string;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* A whole generated stylesheet: banner, then one rule per block.
|
|
158
|
+
*
|
|
159
|
+
* @param blocks - The rules, in cascade order — later blocks win ties.
|
|
160
|
+
* @param options - Banner text.
|
|
161
|
+
* @returns The stylesheet, newline-terminated.
|
|
162
|
+
* @example
|
|
163
|
+
* serializeThemeCss(blocks, { banner: "@cueplusplus/ui — createTheme()" });
|
|
164
|
+
*/
|
|
165
|
+
declare function serializeThemeCss(blocks: readonly ThemeBlock[], options?: SerializeThemeCssOptions): string;
|
|
166
|
+
//#endregion
|
|
167
|
+
export { CUE_TOKEN_PREFIX, DERIVED_TOKEN_TEMPLATES, RESOLVED_MONO, SerializeThemeCssOptions, THEME_NAME_PATTERN$1 as THEME_NAME_PATTERN, ThemeBlock, ThemeBlockSection, ThemeSelectorOptions, assertCssValue, assertThemeName, derivedTokens, serializeThemeBlock, serializeThemeCss, themeSelector, tokenProperty };
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { RESOLVED_MONO, THEME_NAME_PATTERN as THEME_NAME_PATTERN$1 } from "@cueplusplus/theme-base";
|
|
2
|
+
//#region src/theming/serialize.ts
|
|
3
|
+
/**
|
|
4
|
+
* Turning a resolved token map back into the stylesheet the tokens build would
|
|
5
|
+
* have written.
|
|
6
|
+
*
|
|
7
|
+
* This module exists so there is exactly **one** spelling of the output format.
|
|
8
|
+
* The spec's whole third-party theming story is "tier 2 always compiles down to
|
|
9
|
+
* tier 1" — a generated theme has to be indistinguishable from a hand-authored
|
|
10
|
+
* `[data-theme]` block, or a consumer ends up with two vocabularies and the
|
|
11
|
+
* generator becomes a toy. So the shapes below mirror `build.mjs` deliberately,
|
|
12
|
+
* comments included: same selector form, same declaration order, same section
|
|
13
|
+
* breaks. The generator-versus-build parity that `test/theming/presets.test.ts`
|
|
14
|
+
* used to diff is unguarded for this plan — the shipped preset copy that test
|
|
15
|
+
* compared against was deleted with it — and Plan 4 restores the comparison
|
|
16
|
+
* once `@cueplusplus/tokens` stops emitting presets of its own.
|
|
17
|
+
*
|
|
18
|
+
* It is also the only place that touches raw strings, which makes it the place
|
|
19
|
+
* to stop injection. A theme name lands inside an attribute selector and a font
|
|
20
|
+
* stack lands inside a declaration; both are checked here rather than trusted.
|
|
21
|
+
*/
|
|
22
|
+
/** The one custom-property prefix this design system emits. */
|
|
23
|
+
const CUE_TOKEN_PREFIX = "--cue-";
|
|
24
|
+
/**
|
|
25
|
+
* Characters a value may never contain: the ones that end a declaration, end a
|
|
26
|
+
* block, or open a comment.
|
|
27
|
+
*
|
|
28
|
+
* Colour anchors do not need this — they are parsed by culori and re-emitted, so
|
|
29
|
+
* a value that is not a colour never reaches the output. Font stacks are the
|
|
30
|
+
* exception: they are free text by nature, and pass through verbatim.
|
|
31
|
+
*/
|
|
32
|
+
const UNSAFE_VALUE = /[;{}]|\/\*/;
|
|
33
|
+
/**
|
|
34
|
+
* Check a theme name and hand it back.
|
|
35
|
+
*
|
|
36
|
+
* @param name - The proposed theme name.
|
|
37
|
+
* @returns The same name, once it is known to be safe to interpolate.
|
|
38
|
+
* @throws TypeError if the name is not a CSS identifier.
|
|
39
|
+
* @example
|
|
40
|
+
* assertThemeName("acme-dark"); // → "acme-dark"
|
|
41
|
+
*/
|
|
42
|
+
function assertThemeName(name) {
|
|
43
|
+
if (!THEME_NAME_PATTERN$1.test(name)) throw new TypeError(`theme name must be a CSS identifier (letters, digits and dashes, starting with a letter), got ${JSON.stringify(name)}`);
|
|
44
|
+
return name;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check a free-text declaration value and hand it back.
|
|
48
|
+
*
|
|
49
|
+
* @param name - The token the value belongs to, for the error message.
|
|
50
|
+
* @param value - The proposed value.
|
|
51
|
+
* @returns The same value, once it is known to stay inside its declaration.
|
|
52
|
+
* @throws TypeError if the value could end the declaration or the block.
|
|
53
|
+
* @example
|
|
54
|
+
* assertCssValue("font-mono", '"Berkeley Mono", monospace');
|
|
55
|
+
*/
|
|
56
|
+
function assertCssValue(name, value) {
|
|
57
|
+
if (UNSAFE_VALUE.test(value)) throw new TypeError(`${name} may not contain ";", "{", "}" or "/*" — got ${JSON.stringify(value)}`);
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The custom property a token is emitted as.
|
|
62
|
+
*
|
|
63
|
+
* Idempotent, so code that already holds `--cue-bg` can pass it straight back
|
|
64
|
+
* through instead of stripping the prefix first.
|
|
65
|
+
*
|
|
66
|
+
* @param name - A bare token name, or an already-prefixed property.
|
|
67
|
+
* @returns The `--cue-*` custom property name.
|
|
68
|
+
* @example
|
|
69
|
+
* tokenProperty("surface-1"); // → "--cue-surface-1"
|
|
70
|
+
*/
|
|
71
|
+
function tokenProperty(name) {
|
|
72
|
+
return name.startsWith("--cue-") ? name : `${CUE_TOKEN_PREFIX}${name}`;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The selector a theme's declarations live under.
|
|
76
|
+
*
|
|
77
|
+
* Attribute selectors, not classes, because the two axes have to compose: a
|
|
78
|
+
* `[data-theme]` on the root and another on a portal, a `[data-mode]` crossed
|
|
79
|
+
* over either, all at the same specificity so later blocks win predictably.
|
|
80
|
+
*
|
|
81
|
+
* @param name - The theme name. Not re-checked — {@link assertThemeName} owns that.
|
|
82
|
+
* @param options - Which axes to cross with.
|
|
83
|
+
* @returns The CSS selector.
|
|
84
|
+
* @example
|
|
85
|
+
* themeSelector("acme", { mode: "light" }); // → '[data-theme="acme"][data-mode="light"]'
|
|
86
|
+
* themeSelector("acme", { density: "compact", pair: true });
|
|
87
|
+
* // → '[data-theme="acme"] [data-density="compact"]:where([data-cue-theme="acme"]), [data-theme="acme"] [data-density="compact"]:where(:not([data-cue-theme]):not([data-theme]:not([data-theme="acme"])):not([data-theme="acme"] [data-theme]:not([data-theme="acme"]) *)), [data-theme="acme"][data-density="compact"]'
|
|
88
|
+
*/
|
|
89
|
+
function themeSelector(name, options = {}) {
|
|
90
|
+
const { mode, density, pair } = options;
|
|
91
|
+
const themeAttr = `[data-theme="${name}"]`;
|
|
92
|
+
const theme = `${themeAttr}${mode === "light" ? "[data-mode=\"light\"]" : ""}`;
|
|
93
|
+
if (density === void 0) return theme;
|
|
94
|
+
const crossed = `[data-density="${density}"]`;
|
|
95
|
+
if (pair !== true) return `${theme}${crossed}`;
|
|
96
|
+
return `${`${theme} ${crossed}:where([data-cue-theme="${name}"])`}, ${`${theme} ${crossed}:where(:not([data-cue-theme]):not([data-theme]:not(${themeAttr})):not(${themeAttr} [data-theme]:not(${themeAttr}) *))`}, ${theme}${crossed}`;
|
|
97
|
+
}
|
|
98
|
+
/** The tone vocabulary that gets a soft fill and a soft border in every theme. */
|
|
99
|
+
const STATUSES = [
|
|
100
|
+
"ok",
|
|
101
|
+
"busy",
|
|
102
|
+
"warn",
|
|
103
|
+
"danger",
|
|
104
|
+
"info"
|
|
105
|
+
];
|
|
106
|
+
/**
|
|
107
|
+
* The live hue — a token still arriving, a tool still running, a cursor that
|
|
108
|
+
* has not stopped.
|
|
109
|
+
*
|
|
110
|
+
* Not a member of {@link STATUSES}, because a status is something a `Chip` or a
|
|
111
|
+
* `StatusDot` can be *told to be* and "streaming" is not a tone a caller picks:
|
|
112
|
+
* it is a property of a surface while the model is talking. What it shares with
|
|
113
|
+
* the statuses is the shape of its family — a full-strength ink, a soft fill and
|
|
114
|
+
* a rim — so it derives alongside them. `packages/tokens/build.mjs` carries the
|
|
115
|
+
* same pair of constants for the same reason; see the note on
|
|
116
|
+
* {@link DERIVED_TOKEN_TEMPLATES}.
|
|
117
|
+
*/
|
|
118
|
+
const STREAM = "stream";
|
|
119
|
+
/** Every tone that earns a derived soft fill and a derived rim. */
|
|
120
|
+
const TINTED = [...STATUSES, STREAM];
|
|
121
|
+
/**
|
|
122
|
+
* The three shares of the foreground the list idioms are ruled with.
|
|
123
|
+
*
|
|
124
|
+
* `--cue-border` is an authored anchor, and what a preset authors is a *box
|
|
125
|
+
* edge* — the line around a card, an input, a panel. Repeated down thirty rows a
|
|
126
|
+
* box edge reads as a stack of boxes rather than as a list, so a rule between
|
|
127
|
+
* things is drawn lighter than the edge around a thing.
|
|
128
|
+
*
|
|
129
|
+
* Mixed from `--cue-fg` rather than authored, which is what makes them hold for
|
|
130
|
+
* a preset `createTheme()` produced from a palette nobody vetted: the rules keep
|
|
131
|
+
* their relationship to the type they separate whatever the palette turned out
|
|
132
|
+
* to be, in both modes, with nothing to get wrong.
|
|
133
|
+
*
|
|
134
|
+
* `row-hover` is the same measurement from the other side — the faintest wash
|
|
135
|
+
* that still reads as one row picked out of a list. It does not replace the
|
|
136
|
+
* surface ramp: a row sitting *on* a surface still lifts to the next rung
|
|
137
|
+
* (`hover:bg-surface-2`), which is what this library's own rows do. This is for
|
|
138
|
+
* rows drawn directly on `--cue-bg`, where the next rung is a visible step.
|
|
139
|
+
*/
|
|
140
|
+
const HAIRLINE_TEMPLATES = [
|
|
141
|
+
["hair", "color-mix(in oklch, var(--cue-fg) 6%, transparent)"],
|
|
142
|
+
["hair-strong", "color-mix(in oklch, var(--cue-fg) 12%, transparent)"],
|
|
143
|
+
["row-hover", "color-mix(in oklch, var(--cue-fg) 3.5%, transparent)"]
|
|
144
|
+
];
|
|
145
|
+
/**
|
|
146
|
+
* The derived colours every theme block carries, as `[token, value]` pairs.
|
|
147
|
+
*
|
|
148
|
+
* They are `color-mix()` expressions over `var(--cue-*)` rather than resolved
|
|
149
|
+
* literals, and they are emitted **inside** the theme block rather than once on
|
|
150
|
+
* `:root`, for the same reason the build does it: a custom property's `var()`
|
|
151
|
+
* references are substituted at the element that declares it, so a `:root`-level
|
|
152
|
+
* mix would freeze the default theme's accent into every nested theme.
|
|
153
|
+
*
|
|
154
|
+
* This is deliberately a second copy of the `DERIVED` table in
|
|
155
|
+
* `packages/tokens/build.mjs`. It has to be one: that table runs at publish time
|
|
156
|
+
* over DTCG files under Style Dictionary, this one runs in a browser over a
|
|
157
|
+
* palette somebody just typed, and neither package can import the other's. What
|
|
158
|
+
* keeps a copy from drifting is not discipline but
|
|
159
|
+
* `test/theming/serialize.test.ts`, which compares this list against the
|
|
160
|
+
* compiled stylesheet in both directions — a derivation added to one side alone
|
|
161
|
+
* fails there rather than in a consumer's app six weeks later.
|
|
162
|
+
*/
|
|
163
|
+
const DERIVED_TOKEN_TEMPLATES = [
|
|
164
|
+
["accent-soft", "color-mix(in oklch, var(--cue-accent) 14%, transparent)"],
|
|
165
|
+
...TINTED.flatMap((tone) => [[`${tone}-soft`, `color-mix(in oklch, var(--cue-${tone}) 12%, transparent)`], [`${tone}-border`, `color-mix(in oklch, var(--cue-${tone}) 35%, transparent)`]]),
|
|
166
|
+
...HAIRLINE_TEMPLATES
|
|
167
|
+
];
|
|
168
|
+
/**
|
|
169
|
+
* {@link DERIVED_TOKEN_TEMPLATES} as a property → value map.
|
|
170
|
+
*
|
|
171
|
+
* @returns The sixteen derived declarations, keyed by custom property.
|
|
172
|
+
* @example
|
|
173
|
+
* derivedTokens()["--cue-accent-soft"];
|
|
174
|
+
*/
|
|
175
|
+
function derivedTokens() {
|
|
176
|
+
return Object.fromEntries(DERIVED_TOKEN_TEMPLATES.map(([name, value]) => [tokenProperty(name), value]));
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* One rule, printed.
|
|
180
|
+
*
|
|
181
|
+
* Empty sections vanish rather than leaving a comment with nothing under it —
|
|
182
|
+
* which is what makes "emit the fonts section only if there are fonts" a
|
|
183
|
+
* data decision instead of a branch at every call site.
|
|
184
|
+
*
|
|
185
|
+
* @param block - Selector, colour scheme and sections.
|
|
186
|
+
* @returns The rule, without a trailing newline.
|
|
187
|
+
* @example
|
|
188
|
+
* serializeThemeBlock({ selector: ":root", sections: [{ declarations: [["--cue-bg", "#000"]] }] });
|
|
189
|
+
*/
|
|
190
|
+
function serializeThemeBlock(block) {
|
|
191
|
+
const lines = [];
|
|
192
|
+
if (block.colorScheme !== void 0) lines.push(` color-scheme: ${block.colorScheme};`);
|
|
193
|
+
for (const section of block.sections) {
|
|
194
|
+
if (section.declarations.length === 0) continue;
|
|
195
|
+
if (section.comment !== void 0) {
|
|
196
|
+
if (lines.length > 0) lines.push("");
|
|
197
|
+
lines.push(` /* ${section.comment} */`);
|
|
198
|
+
}
|
|
199
|
+
for (const [name, value] of section.declarations) lines.push(` ${name}: ${value};`);
|
|
200
|
+
}
|
|
201
|
+
return `${block.selector} {\n${lines.join("\n")}\n}`;
|
|
202
|
+
}
|
|
203
|
+
/** Indent a complete rule once so it can live inside an at-rule. */
|
|
204
|
+
function indentRule(rule) {
|
|
205
|
+
return rule.split("\n").map((line) => ` ${line}`).join("\n");
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Alias resolved dark/light palettes onto the preserved logical `system` mode.
|
|
209
|
+
*
|
|
210
|
+
* Both `createTheme()` and the configurator call this function. Keeping the
|
|
211
|
+
* selector and media-query spelling here prevents exported overrides from
|
|
212
|
+
* drifting away from generated custom themes.
|
|
213
|
+
*
|
|
214
|
+
* @internal Used by package-owned theme serializers; not part of the public
|
|
215
|
+
* `@cueplusplus/ui/theming` barrel.
|
|
216
|
+
*/
|
|
217
|
+
function serializeSystemModeAliases(theme, aliases) {
|
|
218
|
+
const name = assertThemeName(theme);
|
|
219
|
+
return aliases.map(({ mode, colorScheme, sections }) => {
|
|
220
|
+
return `@media (prefers-color-scheme: ${mode}) {\n${indentRule(serializeThemeBlock({
|
|
221
|
+
selector: `[data-theme="${name}"][data-mode="system"]`,
|
|
222
|
+
colorScheme,
|
|
223
|
+
sections
|
|
224
|
+
}))}\n}`;
|
|
225
|
+
}).join("\n\n");
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* A whole generated stylesheet: banner, then one rule per block.
|
|
229
|
+
*
|
|
230
|
+
* @param blocks - The rules, in cascade order — later blocks win ties.
|
|
231
|
+
* @param options - Banner text.
|
|
232
|
+
* @returns The stylesheet, newline-terminated.
|
|
233
|
+
* @example
|
|
234
|
+
* serializeThemeCss(blocks, { banner: "@cueplusplus/ui — createTheme()" });
|
|
235
|
+
*/
|
|
236
|
+
function serializeThemeCss(blocks, options = {}) {
|
|
237
|
+
const rules = blocks.map(serializeThemeBlock);
|
|
238
|
+
return `${[...options.banner === void 0 ? [] : [`/*! ${options.banner}\n * Generated by createTheme(). Do not edit by hand.\n */`], ...rules].join("\n\n")}\n`;
|
|
239
|
+
}
|
|
240
|
+
//#endregion
|
|
241
|
+
export { CUE_TOKEN_PREFIX, DERIVED_TOKEN_TEMPLATES, RESOLVED_MONO, THEME_NAME_PATTERN$1 as THEME_NAME_PATTERN, assertCssValue, assertThemeName, derivedTokens, serializeSystemModeAliases, serializeThemeBlock, serializeThemeCss, themeSelector, tokenProperty };
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Accordion",
|
|
3
|
+
"slug": "accordion",
|
|
4
|
+
"group": "layout",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A stack of sections, one (or several) open at a time.\n\nWraps Base UI's `Accordion`, so the disclosure ARIA, keyboard handling and\nopen-state bookkeeping are the primitive's. This layer adds the console skin:\nhairline separation, mono summary rows on the control ladder, and a height\ntransition that respects `prefers-reduced-motion`.",
|
|
9
|
+
"props": [],
|
|
10
|
+
"typeReferences": [],
|
|
11
|
+
"subcomponents": [
|
|
12
|
+
"Root",
|
|
13
|
+
"Item",
|
|
14
|
+
"Header",
|
|
15
|
+
"Trigger",
|
|
16
|
+
"Panel"
|
|
17
|
+
],
|
|
18
|
+
"parts": [
|
|
19
|
+
{
|
|
20
|
+
"name": "Root",
|
|
21
|
+
"usage": "Accordion.Root",
|
|
22
|
+
"description": "Groups the sections and owns which of them are open.",
|
|
23
|
+
"props": [
|
|
24
|
+
{
|
|
25
|
+
"name": "className",
|
|
26
|
+
"type": "string",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Extra classes for the accordion frame.",
|
|
30
|
+
"control": {
|
|
31
|
+
"kind": "string"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"typeReferences": [
|
|
36
|
+
"Omit<BaseAccordion.Root.Props, \"className\">"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "Item",
|
|
41
|
+
"usage": "Accordion.Item",
|
|
42
|
+
"description": "One section.\n\nSeparation is a hairline the section draws above itself, dropped on the first\none — so a stack shows rules *between* sections and none against the rim of\nwhatever contains them. Same rule as `Row`, for the same reason.",
|
|
43
|
+
"props": [
|
|
44
|
+
{
|
|
45
|
+
"name": "className",
|
|
46
|
+
"type": "string",
|
|
47
|
+
"required": false,
|
|
48
|
+
"defaultValue": null,
|
|
49
|
+
"description": "Extra classes for the section.",
|
|
50
|
+
"control": {
|
|
51
|
+
"kind": "string"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"typeReferences": [
|
|
56
|
+
"Omit<BaseAccordion.Item.Props, \"className\">"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "Header",
|
|
61
|
+
"usage": "Accordion.Header",
|
|
62
|
+
"description": "The heading that labels a section's panel. An `<h3>` with no type of its own.",
|
|
63
|
+
"props": [
|
|
64
|
+
{
|
|
65
|
+
"name": "className",
|
|
66
|
+
"type": "string",
|
|
67
|
+
"required": false,
|
|
68
|
+
"defaultValue": null,
|
|
69
|
+
"description": "Extra classes for the heading.",
|
|
70
|
+
"control": {
|
|
71
|
+
"kind": "string"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"typeReferences": [
|
|
76
|
+
"Omit<BaseAccordion.Header.Props, \"className\">"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "Trigger",
|
|
81
|
+
"usage": "Accordion.Trigger",
|
|
82
|
+
"description": "The summary row that opens a section.\n\nA mono row on the control ladder, padded to the same gutters as a `Row`, with\na caret that rotates off the trigger's own `data-panel-open` — nothing in\nReact has to know the section is open for the arrow to turn.",
|
|
83
|
+
"props": [
|
|
84
|
+
{
|
|
85
|
+
"name": "className",
|
|
86
|
+
"type": "string",
|
|
87
|
+
"required": false,
|
|
88
|
+
"defaultValue": null,
|
|
89
|
+
"description": "Extra classes for the summary row.",
|
|
90
|
+
"control": {
|
|
91
|
+
"kind": "string"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"typeReferences": [
|
|
96
|
+
"Omit<BaseAccordion.Trigger.Props, \"className\">"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "Panel",
|
|
101
|
+
"usage": "Accordion.Panel",
|
|
102
|
+
"description": "A section's body.\n\nHeight is animated from `--accordion-panel-height`, which Base UI measures.\nThe animating element carries no padding — padding is part of the box height,\nso it would be counted into the `0 → measured` transition and make the panel\njump at both ends — hence the inner body element.",
|
|
103
|
+
"props": [
|
|
104
|
+
{
|
|
105
|
+
"name": "className",
|
|
106
|
+
"type": "string",
|
|
107
|
+
"required": false,
|
|
108
|
+
"defaultValue": null,
|
|
109
|
+
"description": "Extra classes for the animating box. Padding belongs on `bodyClassName`.",
|
|
110
|
+
"control": {
|
|
111
|
+
"kind": "string"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "bodyClassName",
|
|
116
|
+
"type": "string",
|
|
117
|
+
"required": false,
|
|
118
|
+
"defaultValue": null,
|
|
119
|
+
"description": "Extra classes for the padded body inside it.",
|
|
120
|
+
"control": {
|
|
121
|
+
"kind": "string"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"typeReferences": [
|
|
126
|
+
"Omit<BaseAccordion.Panel.Props, \"className\">"
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"variants": {},
|
|
131
|
+
"defaultVariants": {},
|
|
132
|
+
"tokensUsed": [
|
|
133
|
+
"--cue-accent",
|
|
134
|
+
"--cue-border",
|
|
135
|
+
"--cue-control-md",
|
|
136
|
+
"--cue-fg",
|
|
137
|
+
"--cue-fg-muted",
|
|
138
|
+
"--cue-fg-subtle",
|
|
139
|
+
"--cue-font-mono",
|
|
140
|
+
"--cue-icon-sm",
|
|
141
|
+
"--cue-leading-ui",
|
|
142
|
+
"--cue-pad-row-x",
|
|
143
|
+
"--cue-space-1",
|
|
144
|
+
"--cue-space-3",
|
|
145
|
+
"--cue-space-4",
|
|
146
|
+
"--cue-text-ui"
|
|
147
|
+
],
|
|
148
|
+
"summary": "A stack of sections, one (or several) open at a time.",
|
|
149
|
+
"examples": [
|
|
150
|
+
{
|
|
151
|
+
"title": "Usage",
|
|
152
|
+
"code": "<Accordion.Root>\n <Accordion.Item value=\"routing\">\n <Accordion.Header><Accordion.Trigger>routing</Accordion.Trigger></Accordion.Header>\n <Accordion.Panel>…</Accordion.Panel>\n </Accordion.Item>\n</Accordion.Root>\n<Accordion.Root multiple defaultValue={[\"routing\"]}>…</Accordion.Root>",
|
|
153
|
+
"language": "tsx"
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
"status": "todo-docs",
|
|
157
|
+
"url": "/docs/components/accordion",
|
|
158
|
+
"mdUrl": "/docs/components/accordion.md",
|
|
159
|
+
"jsonUrl": "/r/components/accordion.json",
|
|
160
|
+
"specimens": [
|
|
161
|
+
{
|
|
162
|
+
"title": "Accordion",
|
|
163
|
+
"group": "layout",
|
|
164
|
+
"components": [
|
|
165
|
+
"Accordion"
|
|
166
|
+
],
|
|
167
|
+
"code": "<Accordion.Root className=\"w-full max-w-[36rem]\" defaultValue={[\"patch\"]}>\n <Accordion.Item value=\"patch\">\n <Accordion.Header>\n <Accordion.Trigger>Patch</Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Panel>48 fixtures across 4 universes.</Accordion.Panel>\n </Accordion.Item>\n <Accordion.Item value=\"cues\">\n <Accordion.Header>\n <Accordion.Trigger>Cues</Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Panel>12 cues, last edited 4 minutes ago.</Accordion.Panel>\n </Accordion.Item>\n <Accordion.Item value=\"network\" disabled>\n <Accordion.Header>\n <Accordion.Trigger>Network</Accordion.Trigger>\n </Accordion.Header>\n <Accordion.Panel>Art-Net on 10.0.0.42.</Accordion.Panel>\n </Accordion.Item>\n</Accordion.Root>",
|
|
168
|
+
"note": "Hairline-separated items with mono summary rows. Several can be open at once.",
|
|
169
|
+
"interaction": "the whole header row is the trigger; the panel animates its height and stills under prefers-reduced-motion."
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"todo": true
|
|
173
|
+
}
|