@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,266 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { MenuGlyph } from "./_glyphs.js";
|
|
4
|
+
import { Sidebar } from "../layout/sidebar.js";
|
|
5
|
+
import { CrossGlyph } from "../overlays/_glyphs.js";
|
|
6
|
+
import { Drawer } from "../overlays/drawer.js";
|
|
7
|
+
import { IconButton } from "../primitives/icon-button.js";
|
|
8
|
+
import { DRAG_CLASSES, NO_DRAG_CLASSES } from "./_drag.js";
|
|
9
|
+
import * as React from "react";
|
|
10
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
//#region src/chrome/app-shell.tsx
|
|
12
|
+
const AppShellContext = React.createContext({
|
|
13
|
+
navOpen: false,
|
|
14
|
+
setNavOpen: () => {},
|
|
15
|
+
rail: false,
|
|
16
|
+
setRail: () => {}
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* The navigation column's current width, written once on the frame and read by
|
|
20
|
+
* everything that has to line up with it.
|
|
21
|
+
*
|
|
22
|
+
* The prototype this came from put it best: collapsing the rail rewrites one
|
|
23
|
+
* length, and the bar's header cell and the column move together because
|
|
24
|
+
* neither of them holds a length of its own. A custom property rather than two
|
|
25
|
+
* inline widths because the two boxes are on opposite sides of the tree — the
|
|
26
|
+
* cell is a child of the bar, above `AppShell.Body`, and the column is inside
|
|
27
|
+
* it — and because it is then also the handle a consumer's own CSS aligns to.
|
|
28
|
+
*
|
|
29
|
+
* {@link AppShellBar} spells the name a second time, in a Tailwind utility,
|
|
30
|
+
* because the scanner reads class strings and not constants. The two spellings
|
|
31
|
+
* move together, and the shell's own suite fails if they stop matching.
|
|
32
|
+
*/
|
|
33
|
+
const NAV_WIDTH_PROPERTY = "--cue-nav-width";
|
|
34
|
+
/** What a box that spans the navigation column sets its width to. */
|
|
35
|
+
const NAV_WIDTH_VALUE = `var(${NAV_WIDTH_PROPERTY})`;
|
|
36
|
+
/**
|
|
37
|
+
* The console frame: title bar, navigation, work area, status bar — one
|
|
38
|
+
* viewport tall, with exactly one thing scrolling.
|
|
39
|
+
*
|
|
40
|
+
* Every console screen in this system is the same five parts in the same
|
|
41
|
+
* arrangement, and the value here is not the parts (they already exist as
|
|
42
|
+
* `TitleBar`, `Sidebar`, `Toolbar` and `StatusBar`) but the arithmetic between
|
|
43
|
+
* them: `h-dvh` on the frame rather than `min-h-dvh`, an unbroken `min-h-0`
|
|
44
|
+
* chain from the frame down to the scroller, `min-w-0` on the content column,
|
|
45
|
+
* and a scroller that is not the document. Get one of those wrong and the
|
|
46
|
+
* status bar leaves the screen or the navigation column gets shoved off the
|
|
47
|
+
* side; the shell exists so no page has to get them right again.
|
|
48
|
+
*
|
|
49
|
+
* The bars are ordinary children — `TitleBar` and `StatusBar` are already
|
|
50
|
+
* `shrink-0` and need no wrapper — so a shell reads as the page's outline. The
|
|
51
|
+
* one bar the shell does own is {@link AppShellBar}, and it owns it for one
|
|
52
|
+
* reason: it is divided by the navigation column, which means it has to be
|
|
53
|
+
* measured from the same length the column is.
|
|
54
|
+
*
|
|
55
|
+
* That length is `--cue-nav-width`, written on the frame. `rail` rewrites it,
|
|
56
|
+
* `data-rail` announces it, and the column and the header cell over it move
|
|
57
|
+
* together because neither holds a width of its own. Persistence and the
|
|
58
|
+
* toggle are the caller's — see {@link AppShellRootProps.rail}.
|
|
59
|
+
*
|
|
60
|
+
* This is also the only component in the library with a viewport breakpoint:
|
|
61
|
+
* below `md` the navigation column becomes a drawer and a trigger appears in
|
|
62
|
+
* the bar. See {@link AppShellSidebar} for the ruling.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* <AppShell.Root>
|
|
66
|
+
* <TitleBar center="main-stage.cue" actions={<Chip tone="ok">live</Chip>}>
|
|
67
|
+
* <AppShell.NavTrigger />
|
|
68
|
+
* <Eyebrow>CUE++</Eyebrow>
|
|
69
|
+
* </TitleBar>
|
|
70
|
+
* <AppShell.Body>
|
|
71
|
+
* <AppShell.Sidebar aria-label="Console" drawerTitle="Console">
|
|
72
|
+
* <Sidebar.Section label="Show">
|
|
73
|
+
* <Sidebar.Item icon={List} active>Cues</Sidebar.Item>
|
|
74
|
+
* </Sidebar.Section>
|
|
75
|
+
* </AppShell.Sidebar>
|
|
76
|
+
* <AppShell.Content>
|
|
77
|
+
* <Toolbar.Root aria-label="Playback"><Toolbar.Button icon={Play}>Go</Toolbar.Button></Toolbar.Root>
|
|
78
|
+
* <AppShell.Scroller><Panel>…</Panel></AppShell.Scroller>
|
|
79
|
+
* </AppShell.Content>
|
|
80
|
+
* <AppShell.Aside aria-label="Inspector">…</AppShell.Aside>
|
|
81
|
+
* </AppShell.Body>
|
|
82
|
+
* <StatusBar><StatusBar.Item tone="ok">Art-Net</StatusBar.Item></StatusBar>
|
|
83
|
+
* </AppShell.Root>
|
|
84
|
+
*/
|
|
85
|
+
const AppShell = {
|
|
86
|
+
Root: React.forwardRef(function AppShellRoot({ className, navOpen: navOpenProp, defaultNavOpen = false, onNavOpenChange, rail: railProp, defaultRail = false, onRailChange, navWidth = "14rem", railWidth = "3.5rem", style, ...elementProps }, ref) {
|
|
87
|
+
const [uncontrolled, setUncontrolled] = React.useState(defaultNavOpen);
|
|
88
|
+
const navOpen = navOpenProp ?? uncontrolled;
|
|
89
|
+
const setNavOpen = React.useCallback((open) => {
|
|
90
|
+
if (navOpenProp === void 0) setUncontrolled(open);
|
|
91
|
+
onNavOpenChange?.(open);
|
|
92
|
+
}, [navOpenProp, onNavOpenChange]);
|
|
93
|
+
const [uncontrolledRail, setUncontrolledRail] = React.useState(defaultRail);
|
|
94
|
+
const rail = railProp ?? uncontrolledRail;
|
|
95
|
+
const setRail = React.useCallback((next) => {
|
|
96
|
+
if (railProp === void 0) setUncontrolledRail(next);
|
|
97
|
+
onRailChange?.(next);
|
|
98
|
+
}, [railProp, onRailChange]);
|
|
99
|
+
const context = React.useMemo(() => ({
|
|
100
|
+
navOpen,
|
|
101
|
+
setNavOpen,
|
|
102
|
+
rail,
|
|
103
|
+
setRail
|
|
104
|
+
}), [
|
|
105
|
+
navOpen,
|
|
106
|
+
setNavOpen,
|
|
107
|
+
rail,
|
|
108
|
+
setRail
|
|
109
|
+
]);
|
|
110
|
+
return /* @__PURE__ */ jsx(AppShellContext.Provider, {
|
|
111
|
+
value: context,
|
|
112
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
113
|
+
ref,
|
|
114
|
+
"data-slot": "app-shell",
|
|
115
|
+
"data-rail": rail ? "" : void 0,
|
|
116
|
+
className: cn("group/app-shell relative flex h-dvh flex-col overflow-clip bg-bg text-fg", className),
|
|
117
|
+
style: {
|
|
118
|
+
[NAV_WIDTH_PROPERTY]: rail ? railWidth : navWidth,
|
|
119
|
+
...style
|
|
120
|
+
},
|
|
121
|
+
...elementProps
|
|
122
|
+
})
|
|
123
|
+
});
|
|
124
|
+
}),
|
|
125
|
+
Bar: React.forwardRef(function AppShellBar({ className, brand, brandClassName, platformDrag = false, center, actions, children, ...elementProps }, ref) {
|
|
126
|
+
const dragProps = platformDrag ? { "data-tauri-drag-region": "" } : void 0;
|
|
127
|
+
const dragClasses = platformDrag ? DRAG_CLASSES : void 0;
|
|
128
|
+
const clusterClasses = cn("flex min-w-0 items-center gap-(--cue-space-3)", platformDrag ? NO_DRAG_CLASSES : "grow");
|
|
129
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
130
|
+
ref,
|
|
131
|
+
"data-slot": "app-shell-bar",
|
|
132
|
+
...dragProps,
|
|
133
|
+
className: cn("relative flex h-(--cue-chrome-titlebar) w-full shrink-0 items-stretch border-b border-border bg-surface-1", dragClasses, platformDrag ? "select-none" : void 0, className),
|
|
134
|
+
...elementProps,
|
|
135
|
+
children: [
|
|
136
|
+
brand === void 0 ? null : /* @__PURE__ */ jsx("div", {
|
|
137
|
+
"data-slot": "app-shell-brand",
|
|
138
|
+
...dragProps,
|
|
139
|
+
className: cn("flex w-auto min-w-0 shrink-0 items-center gap-(--cue-space-3) border-r border-border px-(--cue-pad-row-x) transition-[width] duration-150 ease-out md:w-(--cue-nav-width) motion-reduce:transition-none", dragClasses, brandClassName),
|
|
140
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
141
|
+
"data-slot": "app-shell-brand-content",
|
|
142
|
+
className: clusterClasses,
|
|
143
|
+
children: brand
|
|
144
|
+
})
|
|
145
|
+
}),
|
|
146
|
+
center === void 0 ? null : /* @__PURE__ */ jsx("div", {
|
|
147
|
+
"data-slot": "app-shell-bar-center",
|
|
148
|
+
className: "pointer-events-none absolute top-1/2 left-1/2 max-w-[50%] -translate-x-1/2 -translate-y-1/2 truncate font-mono text-(length:--cue-text-label) text-fg-muted",
|
|
149
|
+
children: center
|
|
150
|
+
}),
|
|
151
|
+
/* @__PURE__ */ jsxs("div", {
|
|
152
|
+
"data-slot": "app-shell-bar-rest",
|
|
153
|
+
...dragProps,
|
|
154
|
+
className: cn("flex min-w-0 flex-1 items-center gap-(--cue-space-3) px-(--cue-pad-row-x)", dragClasses),
|
|
155
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
156
|
+
"data-slot": "app-shell-bar-leading",
|
|
157
|
+
className: clusterClasses,
|
|
158
|
+
children
|
|
159
|
+
}), actions === void 0 ? null : /* @__PURE__ */ jsx("div", {
|
|
160
|
+
"data-slot": "app-shell-bar-actions",
|
|
161
|
+
className: cn(clusterClasses, "grow-0 shrink-0", platformDrag ? "ms-auto" : void 0),
|
|
162
|
+
children: actions
|
|
163
|
+
})]
|
|
164
|
+
})
|
|
165
|
+
]
|
|
166
|
+
});
|
|
167
|
+
}),
|
|
168
|
+
Body: React.forwardRef(function AppShellBody({ className, ...elementProps }, ref) {
|
|
169
|
+
return /* @__PURE__ */ jsx("div", {
|
|
170
|
+
ref,
|
|
171
|
+
"data-slot": "app-shell-body",
|
|
172
|
+
className: cn("flex min-h-0 min-w-0 flex-1", className),
|
|
173
|
+
...elementProps
|
|
174
|
+
});
|
|
175
|
+
}),
|
|
176
|
+
Sidebar: React.forwardRef(function AppShellSidebar({ className, drawerClassName, drawerTitle = "Navigation", closeLabel = "Close navigation", collapsible = true, landmark = "navigation", "aria-label": ariaLabel = "Navigation", collapsed, defaultCollapsed, onCollapsedChange, width, collapsedWidth, children, ...sidebarProps }, ref) {
|
|
177
|
+
const { navOpen, setNavOpen, rail, setRail } = React.useContext(AppShellContext);
|
|
178
|
+
const DrawerLandmark = landmark === "complementary" ? "aside" : "nav";
|
|
179
|
+
const railed = collapsed === void 0 && defaultCollapsed === void 0;
|
|
180
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(Sidebar.Root, {
|
|
181
|
+
ref,
|
|
182
|
+
"data-slot": "app-shell-sidebar",
|
|
183
|
+
"aria-label": ariaLabel,
|
|
184
|
+
landmark,
|
|
185
|
+
className: cn("hidden md:flex", className),
|
|
186
|
+
collapsed: railed ? rail : collapsed,
|
|
187
|
+
defaultCollapsed,
|
|
188
|
+
onCollapsedChange: railed ? (next) => {
|
|
189
|
+
onCollapsedChange?.(next);
|
|
190
|
+
setRail(next);
|
|
191
|
+
} : onCollapsedChange,
|
|
192
|
+
width: width ?? (railed ? NAV_WIDTH_VALUE : void 0),
|
|
193
|
+
collapsedWidth: collapsedWidth ?? (railed ? NAV_WIDTH_VALUE : void 0),
|
|
194
|
+
...sidebarProps,
|
|
195
|
+
children: [children, collapsible ? /* @__PURE__ */ jsx(Sidebar.Rail, {}) : null]
|
|
196
|
+
}), /* @__PURE__ */ jsx(Drawer.Root, {
|
|
197
|
+
swipeDirection: "left",
|
|
198
|
+
open: navOpen,
|
|
199
|
+
onOpenChange: setNavOpen,
|
|
200
|
+
children: /* @__PURE__ */ jsxs(Drawer.Content, {
|
|
201
|
+
grabHandle: false,
|
|
202
|
+
className: cn("w-[min(18rem,calc(100vw-3rem))]", drawerClassName),
|
|
203
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
204
|
+
className: "flex shrink-0 items-center justify-between gap-(--cue-space-3)",
|
|
205
|
+
children: [/* @__PURE__ */ jsx(Drawer.Title, { children: drawerTitle }), /* @__PURE__ */ jsx(Drawer.Close, { render: /* @__PURE__ */ jsx(IconButton, {
|
|
206
|
+
"aria-label": closeLabel,
|
|
207
|
+
icon: CrossGlyph,
|
|
208
|
+
size: "sm"
|
|
209
|
+
}) })]
|
|
210
|
+
}), /* @__PURE__ */ jsx(DrawerLandmark, {
|
|
211
|
+
"data-slot": "app-shell-nav-drawer",
|
|
212
|
+
"aria-label": ariaLabel,
|
|
213
|
+
className: "flex min-h-0 flex-1 flex-col gap-(--cue-space-4) overflow-y-auto",
|
|
214
|
+
children
|
|
215
|
+
})]
|
|
216
|
+
})
|
|
217
|
+
})] });
|
|
218
|
+
}),
|
|
219
|
+
NavTrigger: React.forwardRef(function AppShellNavTrigger({ className, label = "Open navigation", icon = MenuGlyph, size = "md", onClick, ...elementProps }, ref) {
|
|
220
|
+
const { navOpen, setNavOpen } = React.useContext(AppShellContext);
|
|
221
|
+
return /* @__PURE__ */ jsx(IconButton, {
|
|
222
|
+
ref,
|
|
223
|
+
"data-slot": "app-shell-nav-trigger",
|
|
224
|
+
"aria-label": label,
|
|
225
|
+
"aria-expanded": navOpen,
|
|
226
|
+
icon,
|
|
227
|
+
size,
|
|
228
|
+
className: cn("shrink-0 md:hidden", className),
|
|
229
|
+
onClick: (event) => {
|
|
230
|
+
onClick?.(event);
|
|
231
|
+
if (!event.defaultPrevented) setNavOpen(true);
|
|
232
|
+
},
|
|
233
|
+
...elementProps
|
|
234
|
+
});
|
|
235
|
+
}),
|
|
236
|
+
Content: React.forwardRef(function AppShellContent({ className, main = true, ...elementProps }, ref) {
|
|
237
|
+
return /* @__PURE__ */ jsx(main ? "main" : "div", {
|
|
238
|
+
ref,
|
|
239
|
+
"data-slot": "app-shell-content",
|
|
240
|
+
className: cn("flex min-h-0 min-w-0 flex-1 flex-col", className),
|
|
241
|
+
...elementProps
|
|
242
|
+
});
|
|
243
|
+
}),
|
|
244
|
+
Scroller: React.forwardRef(function AppShellScroller({ className, padded = true, ...elementProps }, ref) {
|
|
245
|
+
return /* @__PURE__ */ jsx("div", {
|
|
246
|
+
ref,
|
|
247
|
+
"data-slot": "app-shell-scroller",
|
|
248
|
+
className: cn("min-h-0 min-w-0 flex-1 overflow-y-auto", padded ? "p-(--cue-space-5)" : null, className),
|
|
249
|
+
...elementProps
|
|
250
|
+
});
|
|
251
|
+
}),
|
|
252
|
+
Aside: React.forwardRef(function AppShellAside({ className, width = "18rem", style, ...elementProps }, ref) {
|
|
253
|
+
return /* @__PURE__ */ jsx("aside", {
|
|
254
|
+
ref,
|
|
255
|
+
"data-slot": "app-shell-aside",
|
|
256
|
+
className: cn("flex shrink-0 flex-col gap-(--cue-space-4) overflow-y-auto border-l border-border bg-surface-1 p-(--cue-space-4)", className),
|
|
257
|
+
style: {
|
|
258
|
+
width,
|
|
259
|
+
...style
|
|
260
|
+
},
|
|
261
|
+
...elementProps
|
|
262
|
+
});
|
|
263
|
+
})
|
|
264
|
+
};
|
|
265
|
+
//#endregion
|
|
266
|
+
export { AppShell };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ContainerWidth } from "../layout/container.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/chrome/band.d.ts
|
|
4
|
+
/** How a band separates itself from the section above it. */
|
|
5
|
+
type BandSeparation = "rule" | "ground" | "bleed" | "none";
|
|
6
|
+
/**
|
|
7
|
+
* Which measure a band's column takes: `Container`'s four fixed rungs, plus
|
|
8
|
+
* `"prose"` — the reading measure a style set owns.
|
|
9
|
+
*
|
|
10
|
+
* `"prose"` is the default and is the only one of the five that moves with
|
|
11
|
+
* `[data-style]`: 68ch with no set and under `console`, 74ch under `editorial`,
|
|
12
|
+
* 60ch under `marketing`. The four rungs are fixed aliases and a band that
|
|
13
|
+
* names one has opted out of the axis for its measure — which is the right
|
|
14
|
+
* answer for a band holding a `Bento` or a device frame, and the wrong one for
|
|
15
|
+
* a band holding a paragraph.
|
|
16
|
+
*/
|
|
17
|
+
type BandWidth = ContainerWidth | "prose";
|
|
18
|
+
interface BandProps extends React.ComponentPropsWithoutRef<"section"> {
|
|
19
|
+
/**
|
|
20
|
+
* How this band separates itself from the one above it. Defaults to `"rule"`.
|
|
21
|
+
*
|
|
22
|
+
* - **`"rule"`** — a line at the top edge, `--cue-band-rule` wide, in
|
|
23
|
+
* `border-border`. What `Footer` has always drawn.
|
|
24
|
+
* - **`"ground"`** — a ground, `--cue-band-ground`, edge to edge. The one
|
|
25
|
+
* value that touches colour, and it resolves through the single carve-out
|
|
26
|
+
* the token layer allows a style set.
|
|
27
|
+
* - **`"bleed"`** — neither, and **no column**: the children run the band's
|
|
28
|
+
* full width with no measure and no gutters. The separation is the change
|
|
29
|
+
* of scale, which is what a full-width image or strip does. `width` has
|
|
30
|
+
* nothing to apply to and is ignored.
|
|
31
|
+
* - **`"none"`** — neither, column kept. Sections separate by rhythm alone,
|
|
32
|
+
* which is `--cue-band-y` and is what `editorial` leads with.
|
|
33
|
+
*
|
|
34
|
+
* **What a style set makes each of these do, because two of them can come out
|
|
35
|
+
* to nothing and there is no way for this component to warn you.** The values
|
|
36
|
+
* are the token layer's; `packages/ui/test/chrome/band.test.tsx` holds this
|
|
37
|
+
* table to `packages/tokens/dist/axes.css`, so it cannot quietly stop being
|
|
38
|
+
* true.
|
|
39
|
+
*
|
|
40
|
+
* | set | `"rule"` draws | `"ground"` paints |
|
|
41
|
+
* |---|---|---|
|
|
42
|
+
* | *(no set)* and `console` | 1px | nothing — the ground is `transparent` |
|
|
43
|
+
* | `editorial` | a 0.5px hairline, **which Chromium paints at 1px at every DPR**; only retina WebKit draws it thinner | nothing — `transparent` |
|
|
44
|
+
* | `marketing` | **nothing — the rule is `0px`** | `--cue-surface-1` |
|
|
45
|
+
*
|
|
46
|
+
* Read the diagonal: `"ground"` is the marketing separation and `"rule"` is
|
|
47
|
+
* everyone else's. A band that wants to separate under *every* set separates
|
|
48
|
+
* by rhythm, which every set has.
|
|
49
|
+
*/
|
|
50
|
+
separation?: BandSeparation;
|
|
51
|
+
/** Which measure the band's centred column takes. Defaults to `"prose"`. */
|
|
52
|
+
width?: BandWidth;
|
|
53
|
+
/** Extra classes for the centred column. Ignored when `separation` is `"bleed"`. */
|
|
54
|
+
columnClassName?: string;
|
|
55
|
+
/** The band's contents. */
|
|
56
|
+
children?: React.ReactNode;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A full-bleed horizontal section: the page's rhythm, its separation, and a
|
|
60
|
+
* column at the measure.
|
|
61
|
+
*
|
|
62
|
+
* This is `Footer`'s recipe with the footer taken out of it — a `w-full`
|
|
63
|
+
* element, a rule running edge to edge, and a centred `Container` inside so the
|
|
64
|
+
* line reaches the window while the words stop at the measure. `Footer` is
|
|
65
|
+
* built on this rather than beside it; the recipe exists once.
|
|
66
|
+
*
|
|
67
|
+
* Every dimension it spends belongs to the style axis, so the same markup
|
|
68
|
+
* composes differently under `[data-style]` without a prop changing: the
|
|
69
|
+
* vertical rhythm is `--cue-band-y` (one `--cue-space-7` with no set, doubled
|
|
70
|
+
* under `editorial`, trebled under `marketing`), the column is
|
|
71
|
+
* `--cue-measure-prose` unless `width` names a fixed rung, and the rule and the
|
|
72
|
+
* ground are `--cue-band-rule` and `--cue-band-ground`. Read `separation`'s own
|
|
73
|
+
* documentation before choosing one, because two of the four can come out to
|
|
74
|
+
* nothing and they do not vanish symmetrically: `--cue-band-ground` is
|
|
75
|
+
* `transparent` on `:root` and on two of the three sets, so a `"ground"` paints
|
|
76
|
+
* nothing in three of the four states a page can be in, while `--cue-band-rule`
|
|
77
|
+
* is `0px` under `marketing` alone. Both are deliberate and nothing warns.
|
|
78
|
+
*
|
|
79
|
+
* **Two substitution boundaries, because `--cue-band-y` is a `calc()` resolved
|
|
80
|
+
* at the element that declares it.** A `<Density>` island nested inside a
|
|
81
|
+
* styled page moves every `--cue-space-*` and the band rhythm does **not**
|
|
82
|
+
* follow it — the island inherits the rhythm already resolved above. Restate
|
|
83
|
+
* the set on the island (`<Density density="compact" styleSet="editorial">`) to
|
|
84
|
+
* re-resolve it against that island's rung. Likewise a nested `[data-theme]`
|
|
85
|
+
* under a marketing band paints the **outer** theme's `--cue-surface-1` through
|
|
86
|
+
* an already-resolved `--cue-band-ground`.
|
|
87
|
+
*
|
|
88
|
+
* It renders a `<section>`, which is not a landmark until it has an accessible
|
|
89
|
+
* name — so a band with a heading should carry `aria-labelledby` pointing at
|
|
90
|
+
* it, and a band without one costs the document nothing.
|
|
91
|
+
*
|
|
92
|
+
* Static markup — no `"use client"`.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* <Band aria-labelledby="pitch">
|
|
96
|
+
* <h2 id="pitch">One import</h2>
|
|
97
|
+
* <p>Everything on one token layer.</p>
|
|
98
|
+
* </Band>
|
|
99
|
+
* @example
|
|
100
|
+
* <Band separation="ground" width="broad">
|
|
101
|
+
* <Bento.Root cols={3}>{tiles}</Bento.Root>
|
|
102
|
+
* </Band>
|
|
103
|
+
*/
|
|
104
|
+
declare const Band: React.ForwardRefExoticComponent<BandProps & React.RefAttributes<HTMLElement>>;
|
|
105
|
+
//#endregion
|
|
106
|
+
export { Band, BandProps, BandSeparation, BandWidth };
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { Container } from "../layout/container.js";
|
|
3
|
+
import { bandClasses } from "./_band.js";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/chrome/band.tsx
|
|
7
|
+
/**
|
|
8
|
+
* What each separation adds to the frame `bandClasses` draws, and the two
|
|
9
|
+
* `--cue-*` names that live in this file rather than in the chassis beside it.
|
|
10
|
+
*
|
|
11
|
+
* `_band.ts` holds only what `Footer` can also render — the rhythm and the
|
|
12
|
+
* rule — because docgen's token scanner reads a chassis file whole and cannot
|
|
13
|
+
* see that `Footer` calls `bandClasses` with the literal `"rule"`. The ground
|
|
14
|
+
* is reachable only from `<Band separation="ground">`, so it is written here,
|
|
15
|
+
* next to the prop whose value selects it. `_band.ts`'s own docblock carries
|
|
16
|
+
* the argument.
|
|
17
|
+
*
|
|
18
|
+
* `rule`'s entry is the colour and not the width: the width is
|
|
19
|
+
* `--cue-band-rule` and belongs to the chassis, and both elements name
|
|
20
|
+
* `border-border` in their own class list rather than inheriting it from the
|
|
21
|
+
* other.
|
|
22
|
+
*/
|
|
23
|
+
const SEPARATION_PAINT = {
|
|
24
|
+
rule: "border-border",
|
|
25
|
+
ground: "bg-(--cue-band-ground)",
|
|
26
|
+
bleed: null,
|
|
27
|
+
none: null
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* A full-bleed horizontal section: the page's rhythm, its separation, and a
|
|
31
|
+
* column at the measure.
|
|
32
|
+
*
|
|
33
|
+
* This is `Footer`'s recipe with the footer taken out of it — a `w-full`
|
|
34
|
+
* element, a rule running edge to edge, and a centred `Container` inside so the
|
|
35
|
+
* line reaches the window while the words stop at the measure. `Footer` is
|
|
36
|
+
* built on this rather than beside it; the recipe exists once.
|
|
37
|
+
*
|
|
38
|
+
* Every dimension it spends belongs to the style axis, so the same markup
|
|
39
|
+
* composes differently under `[data-style]` without a prop changing: the
|
|
40
|
+
* vertical rhythm is `--cue-band-y` (one `--cue-space-7` with no set, doubled
|
|
41
|
+
* under `editorial`, trebled under `marketing`), the column is
|
|
42
|
+
* `--cue-measure-prose` unless `width` names a fixed rung, and the rule and the
|
|
43
|
+
* ground are `--cue-band-rule` and `--cue-band-ground`. Read `separation`'s own
|
|
44
|
+
* documentation before choosing one, because two of the four can come out to
|
|
45
|
+
* nothing and they do not vanish symmetrically: `--cue-band-ground` is
|
|
46
|
+
* `transparent` on `:root` and on two of the three sets, so a `"ground"` paints
|
|
47
|
+
* nothing in three of the four states a page can be in, while `--cue-band-rule`
|
|
48
|
+
* is `0px` under `marketing` alone. Both are deliberate and nothing warns.
|
|
49
|
+
*
|
|
50
|
+
* **Two substitution boundaries, because `--cue-band-y` is a `calc()` resolved
|
|
51
|
+
* at the element that declares it.** A `<Density>` island nested inside a
|
|
52
|
+
* styled page moves every `--cue-space-*` and the band rhythm does **not**
|
|
53
|
+
* follow it — the island inherits the rhythm already resolved above. Restate
|
|
54
|
+
* the set on the island (`<Density density="compact" styleSet="editorial">`) to
|
|
55
|
+
* re-resolve it against that island's rung. Likewise a nested `[data-theme]`
|
|
56
|
+
* under a marketing band paints the **outer** theme's `--cue-surface-1` through
|
|
57
|
+
* an already-resolved `--cue-band-ground`.
|
|
58
|
+
*
|
|
59
|
+
* It renders a `<section>`, which is not a landmark until it has an accessible
|
|
60
|
+
* name — so a band with a heading should carry `aria-labelledby` pointing at
|
|
61
|
+
* it, and a band without one costs the document nothing.
|
|
62
|
+
*
|
|
63
|
+
* Static markup — no `"use client"`.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* <Band aria-labelledby="pitch">
|
|
67
|
+
* <h2 id="pitch">One import</h2>
|
|
68
|
+
* <p>Everything on one token layer.</p>
|
|
69
|
+
* </Band>
|
|
70
|
+
* @example
|
|
71
|
+
* <Band separation="ground" width="broad">
|
|
72
|
+
* <Bento.Root cols={3}>{tiles}</Bento.Root>
|
|
73
|
+
* </Band>
|
|
74
|
+
*/
|
|
75
|
+
const Band = React.forwardRef(function Band({ className, columnClassName, separation = "rule", width = "prose", children, ...elementProps }, ref) {
|
|
76
|
+
const column = width === "prose" ? {
|
|
77
|
+
width: "full",
|
|
78
|
+
className: "max-w-(--cue-measure-prose)"
|
|
79
|
+
} : {
|
|
80
|
+
width,
|
|
81
|
+
className: null
|
|
82
|
+
};
|
|
83
|
+
return /* @__PURE__ */ jsx("section", {
|
|
84
|
+
ref,
|
|
85
|
+
"data-slot": "band",
|
|
86
|
+
"data-separation": separation,
|
|
87
|
+
className: cn(bandClasses(separation), SEPARATION_PAINT[separation], className),
|
|
88
|
+
...elementProps,
|
|
89
|
+
children: separation === "bleed" ? children : /* @__PURE__ */ jsx(Container, {
|
|
90
|
+
width: column.width,
|
|
91
|
+
className: cn(column.className, columnClassName),
|
|
92
|
+
children
|
|
93
|
+
})
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//#endregion
|
|
97
|
+
export { Band };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/chrome/empty-state.d.ts
|
|
3
|
+
interface EmptyStateProps extends Omit<React.ComponentPropsWithoutRef<"div">, "title"> {
|
|
4
|
+
/** What is missing. One short line: "No cues yet". */
|
|
5
|
+
title: React.ReactNode;
|
|
6
|
+
/** How to fix it. One sentence, muted. */
|
|
7
|
+
hint?: React.ReactNode;
|
|
8
|
+
/** The way out — normally a single `Button`. */
|
|
9
|
+
action?: React.ReactNode;
|
|
10
|
+
/** Optional glyph above the title (e.g. a lucide icon), drawn `aria-hidden`. */
|
|
11
|
+
icon?: React.ElementType;
|
|
12
|
+
/** Extra content between the hint and the action — rarely needed. */
|
|
13
|
+
children?: React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The "there is nothing here" panel body.
|
|
17
|
+
*
|
|
18
|
+
* Centred and quiet: an empty state is a report, not an alarm, so it uses the
|
|
19
|
+
* muted ramp throughout and gets its emphasis from position rather than colour.
|
|
20
|
+
* The icon is decorative — the title carries the meaning, so a screen reader
|
|
21
|
+
* hears one sentence instead of a shrug emoji.
|
|
22
|
+
*
|
|
23
|
+
* Static markup — no `"use client"`.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* <Panel>
|
|
27
|
+
* <EmptyState
|
|
28
|
+
* icon={ListX}
|
|
29
|
+
* title="No cues yet"
|
|
30
|
+
* hint="Record one from the live look, or import a show file."
|
|
31
|
+
* action={<Button variant="primary">Record cue</Button>}
|
|
32
|
+
* />
|
|
33
|
+
* </Panel>
|
|
34
|
+
*/
|
|
35
|
+
declare const EmptyState: React.ForwardRefExoticComponent<EmptyStateProps & React.RefAttributes<HTMLDivElement>>;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { EmptyState, EmptyStateProps };
|
|
@@ -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/chrome/empty-state.tsx
|
|
5
|
+
/**
|
|
6
|
+
* The "there is nothing here" panel body.
|
|
7
|
+
*
|
|
8
|
+
* Centred and quiet: an empty state is a report, not an alarm, so it uses the
|
|
9
|
+
* muted ramp throughout and gets its emphasis from position rather than colour.
|
|
10
|
+
* The icon is decorative — the title carries the meaning, so a screen reader
|
|
11
|
+
* hears one sentence instead of a shrug emoji.
|
|
12
|
+
*
|
|
13
|
+
* Static markup — no `"use client"`.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <Panel>
|
|
17
|
+
* <EmptyState
|
|
18
|
+
* icon={ListX}
|
|
19
|
+
* title="No cues yet"
|
|
20
|
+
* hint="Record one from the live look, or import a show file."
|
|
21
|
+
* action={<Button variant="primary">Record cue</Button>}
|
|
22
|
+
* />
|
|
23
|
+
* </Panel>
|
|
24
|
+
*/
|
|
25
|
+
const EmptyState = React.forwardRef(function EmptyState({ className, title, hint, action, icon: Icon, children, ...elementProps }, ref) {
|
|
26
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
27
|
+
ref,
|
|
28
|
+
"data-slot": "empty-state",
|
|
29
|
+
className: cn("flex flex-col items-center justify-center gap-(--cue-space-3) px-(--cue-space-6) py-(--cue-space-7) text-center font-mono", className),
|
|
30
|
+
...elementProps,
|
|
31
|
+
children: [
|
|
32
|
+
Icon === void 0 ? null : /* @__PURE__ */ jsx(Icon, {
|
|
33
|
+
"aria-hidden": "true",
|
|
34
|
+
"data-slot": "empty-state-icon",
|
|
35
|
+
className: "size-(--cue-space-7) shrink-0 text-fg-subtle"
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ jsx("span", {
|
|
38
|
+
"data-slot": "empty-state-title",
|
|
39
|
+
className: "text-(length:--cue-text-emphasis) text-fg",
|
|
40
|
+
children: title
|
|
41
|
+
}),
|
|
42
|
+
hint === void 0 ? null : /* @__PURE__ */ jsx("p", {
|
|
43
|
+
"data-slot": "empty-state-hint",
|
|
44
|
+
className: "max-w-[36ch] text-(length:--cue-text-ui) leading-(--cue-leading-ui) text-fg-muted",
|
|
45
|
+
children: hint
|
|
46
|
+
}),
|
|
47
|
+
children,
|
|
48
|
+
action === void 0 ? null : /* @__PURE__ */ jsx("div", {
|
|
49
|
+
"data-slot": "empty-state-action",
|
|
50
|
+
className: "pt-(--cue-space-2)",
|
|
51
|
+
children: action
|
|
52
|
+
})
|
|
53
|
+
]
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//#endregion
|
|
57
|
+
export { EmptyState };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/chrome/eyebrow.d.ts
|
|
3
|
+
interface EyebrowProps extends React.ComponentPropsWithoutRef<"span"> {
|
|
4
|
+
/**
|
|
5
|
+
* Print the `//` motif ahead of the label. Defaults to `true` — the slashes
|
|
6
|
+
* are the brand mark of this system, and an eyebrow without them is just
|
|
7
|
+
* small uppercase text. Pass `false` for a plain kicker.
|
|
8
|
+
*/
|
|
9
|
+
slashes?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The small accent kicker that sits above a title: `// PATCH`.
|
|
13
|
+
*
|
|
14
|
+
* Mono, uppercase and widely tracked, in the theme's accent — the one place
|
|
15
|
+
* where the accent is used for pure typography rather than for a control. The
|
|
16
|
+
* slashes are marked `aria-hidden` and `select-none`, so a screen reader reads
|
|
17
|
+
* "patch" and a copy-paste of the page does not carry punctuation that was only
|
|
18
|
+
* ever decoration.
|
|
19
|
+
*
|
|
20
|
+
* Static markup — no `"use client"`.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* <Eyebrow>Patch</Eyebrow>
|
|
24
|
+
* @example
|
|
25
|
+
* <Eyebrow slashes={false}>Beta</Eyebrow>
|
|
26
|
+
*/
|
|
27
|
+
declare const Eyebrow: React.ForwardRefExoticComponent<EyebrowProps & React.RefAttributes<HTMLSpanElement>>;
|
|
28
|
+
//#endregion
|
|
29
|
+
export { Eyebrow, EyebrowProps };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
//#region src/chrome/eyebrow.tsx
|
|
5
|
+
/**
|
|
6
|
+
* The small accent kicker that sits above a title: `// PATCH`.
|
|
7
|
+
*
|
|
8
|
+
* Mono, uppercase and widely tracked, in the theme's accent — the one place
|
|
9
|
+
* where the accent is used for pure typography rather than for a control. The
|
|
10
|
+
* slashes are marked `aria-hidden` and `select-none`, so a screen reader reads
|
|
11
|
+
* "patch" and a copy-paste of the page does not carry punctuation that was only
|
|
12
|
+
* ever decoration.
|
|
13
|
+
*
|
|
14
|
+
* Static markup — no `"use client"`.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* <Eyebrow>Patch</Eyebrow>
|
|
18
|
+
* @example
|
|
19
|
+
* <Eyebrow slashes={false}>Beta</Eyebrow>
|
|
20
|
+
*/
|
|
21
|
+
const Eyebrow = React.forwardRef(function Eyebrow({ className, slashes = true, children, ...elementProps }, ref) {
|
|
22
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
23
|
+
ref,
|
|
24
|
+
"data-slot": "eyebrow",
|
|
25
|
+
className: cn("inline-flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-label) tracking-[0.2em] text-accent uppercase", className),
|
|
26
|
+
...elementProps,
|
|
27
|
+
children: [slashes ? /* @__PURE__ */ jsx("span", {
|
|
28
|
+
"data-slot": "eyebrow-glyph",
|
|
29
|
+
"aria-hidden": "true",
|
|
30
|
+
className: "select-none",
|
|
31
|
+
children: "//"
|
|
32
|
+
}) : null, children]
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//#endregion
|
|
36
|
+
export { Eyebrow };
|