@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,88 @@
|
|
|
1
|
+
import { ContainerWidth } from "../layout/container.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/chrome/footer.d.ts
|
|
4
|
+
interface FooterProps extends React.ComponentPropsWithoutRef<"footer"> {
|
|
5
|
+
/**
|
|
6
|
+
* Which measure the footer's column takes. Defaults to `"broad"`.
|
|
7
|
+
*
|
|
8
|
+
* The same four rungs `Container` and `PageShell` offer, so a footer lines up
|
|
9
|
+
* with the page above it by naming the same width — `broad` rather than
|
|
10
|
+
* `narrow` by default because a footer is usually the widest thing on a page,
|
|
11
|
+
* and a row of columns inside a 42rem reading measure is four squeezed lists.
|
|
12
|
+
*/
|
|
13
|
+
width?: ContainerWidth;
|
|
14
|
+
/**
|
|
15
|
+
* The fine print, under a hairline of its own: copyright, a licence, a build
|
|
16
|
+
* number.
|
|
17
|
+
*
|
|
18
|
+
* A slot rather than a component, because that row is a sentence and a couple
|
|
19
|
+
* of links — but it is a *separated* sentence, and hand-rolling the rule and
|
|
20
|
+
* the space above it in every app is exactly the kind of repetition this
|
|
21
|
+
* component exists to end.
|
|
22
|
+
*/
|
|
23
|
+
meta?: React.ReactNode;
|
|
24
|
+
/** Extra classes for the centred column inside the landmark. */
|
|
25
|
+
columnClassName?: string;
|
|
26
|
+
/** The footer's body — normally a `Grid` of `Stack`s of `Link`s. */
|
|
27
|
+
children?: React.ReactNode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The `contentinfo` landmark at the bottom of a document: a hairline, a
|
|
31
|
+
* measure, and room for whatever a page ends with.
|
|
32
|
+
*
|
|
33
|
+
* Deliberately **not** a link-list component. A "complex footer" in this system
|
|
34
|
+
* is `Grid` + `Stack` + `Link` inside this one — components that already exist
|
|
35
|
+
* and already carry the density ladder — and a `Grid` with `minItemWidth` fills
|
|
36
|
+
* the row with as many columns as fit, so the footer is responsive without a
|
|
37
|
+
* breakpoint and without a prop for how many columns to draw. What is left over
|
|
38
|
+
* is what a footer actually needs and nothing else has: the landmark, the rule
|
|
39
|
+
* that separates it from the page, the measure that lines it up with the page,
|
|
40
|
+
* and the second rule above the fine print.
|
|
41
|
+
*
|
|
42
|
+
* The band is full-bleed and the column inside it is centred, which is why the
|
|
43
|
+
* hairline runs edge to edge while the links stop at the measure. The column is
|
|
44
|
+
* set in the bar's register — mono, at the UI size — because a footer is
|
|
45
|
+
* furniture. It paints no ground of its own: a footer is the end of the page,
|
|
46
|
+
* not a bar, and the seam is the hairline. Give it `className="bg-surface-1"`
|
|
47
|
+
* where a distinct band is wanted.
|
|
48
|
+
*
|
|
49
|
+
* Inside `AppShell` this is a child of `AppShell.Scroller`, at the end of the
|
|
50
|
+
* content column — so it scrolls with the page and its full bleed is the
|
|
51
|
+
* content column's width, not the window's. A footer placed *beside* the
|
|
52
|
+
* navigation column instead (after `AppShell.Body`) runs under the navigation
|
|
53
|
+
* and reads as chrome it is not. It coexists with `StatusBar`, which is the
|
|
54
|
+
* opposite object: a strip of the frame, always on screen, never scrolled.
|
|
55
|
+
*
|
|
56
|
+
* Under the skin this **is** `Band`'s recipe — `separation="rule"`, spent
|
|
57
|
+
* through `bandClasses` rather than through `<Band>` itself, because `Band`
|
|
58
|
+
* renders a `<section>` and this has to render the `<footer>` that makes it the
|
|
59
|
+
* `contentinfo` landmark. The two dimensions that recipe carries are the
|
|
60
|
+
* rhythm and the rule, and both are the style axis's now, the same as any other
|
|
61
|
+
* band: see `separation`'s table on `Band` for what each `[data-style]` set
|
|
62
|
+
* makes them paint. With no set active nothing changes from what this component
|
|
63
|
+
* always rendered. It does **not** reach `Band`'s other two style-owned
|
|
64
|
+
* spends — the ground and the reading measure — because `separation` is the
|
|
65
|
+
* literal `"rule"` here and `width` is a `ContainerWidth`; `_band.ts`'s
|
|
66
|
+
* docblock says why that is a fact about the published manifest and not only
|
|
67
|
+
* about the markup.
|
|
68
|
+
*
|
|
69
|
+
* Static markup — no `"use client"`.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* <Footer meta={<><span>© 2026 CUE++</span><Link href="/legal">Legal</Link></>}>
|
|
73
|
+
* <Grid minItemWidth="12rem" gap={5}>
|
|
74
|
+
* <Stack gap={2}>
|
|
75
|
+
* <Eyebrow>Docs</Eyebrow>
|
|
76
|
+
* <Link href="/docs">Getting started</Link>
|
|
77
|
+
* <Link href="/docs/theming">Theming</Link>
|
|
78
|
+
* </Stack>
|
|
79
|
+
* <Stack gap={2}>
|
|
80
|
+
* <Eyebrow>Surfaces</Eyebrow>
|
|
81
|
+
* <Link href="/kitchen-sink">Kitchen sink</Link>
|
|
82
|
+
* </Stack>
|
|
83
|
+
* </Grid>
|
|
84
|
+
* </Footer>
|
|
85
|
+
*/
|
|
86
|
+
declare const Footer: React.ForwardRefExoticComponent<FooterProps & React.RefAttributes<HTMLElement>>;
|
|
87
|
+
//#endregion
|
|
88
|
+
export { Footer, FooterProps };
|
|
@@ -0,0 +1,83 @@
|
|
|
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, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/chrome/footer.tsx
|
|
7
|
+
/**
|
|
8
|
+
* The `contentinfo` landmark at the bottom of a document: a hairline, a
|
|
9
|
+
* measure, and room for whatever a page ends with.
|
|
10
|
+
*
|
|
11
|
+
* Deliberately **not** a link-list component. A "complex footer" in this system
|
|
12
|
+
* is `Grid` + `Stack` + `Link` inside this one — components that already exist
|
|
13
|
+
* and already carry the density ladder — and a `Grid` with `minItemWidth` fills
|
|
14
|
+
* the row with as many columns as fit, so the footer is responsive without a
|
|
15
|
+
* breakpoint and without a prop for how many columns to draw. What is left over
|
|
16
|
+
* is what a footer actually needs and nothing else has: the landmark, the rule
|
|
17
|
+
* that separates it from the page, the measure that lines it up with the page,
|
|
18
|
+
* and the second rule above the fine print.
|
|
19
|
+
*
|
|
20
|
+
* The band is full-bleed and the column inside it is centred, which is why the
|
|
21
|
+
* hairline runs edge to edge while the links stop at the measure. The column is
|
|
22
|
+
* set in the bar's register — mono, at the UI size — because a footer is
|
|
23
|
+
* furniture. It paints no ground of its own: a footer is the end of the page,
|
|
24
|
+
* not a bar, and the seam is the hairline. Give it `className="bg-surface-1"`
|
|
25
|
+
* where a distinct band is wanted.
|
|
26
|
+
*
|
|
27
|
+
* Inside `AppShell` this is a child of `AppShell.Scroller`, at the end of the
|
|
28
|
+
* content column — so it scrolls with the page and its full bleed is the
|
|
29
|
+
* content column's width, not the window's. A footer placed *beside* the
|
|
30
|
+
* navigation column instead (after `AppShell.Body`) runs under the navigation
|
|
31
|
+
* and reads as chrome it is not. It coexists with `StatusBar`, which is the
|
|
32
|
+
* opposite object: a strip of the frame, always on screen, never scrolled.
|
|
33
|
+
*
|
|
34
|
+
* Under the skin this **is** `Band`'s recipe — `separation="rule"`, spent
|
|
35
|
+
* through `bandClasses` rather than through `<Band>` itself, because `Band`
|
|
36
|
+
* renders a `<section>` and this has to render the `<footer>` that makes it the
|
|
37
|
+
* `contentinfo` landmark. The two dimensions that recipe carries are the
|
|
38
|
+
* rhythm and the rule, and both are the style axis's now, the same as any other
|
|
39
|
+
* band: see `separation`'s table on `Band` for what each `[data-style]` set
|
|
40
|
+
* makes them paint. With no set active nothing changes from what this component
|
|
41
|
+
* always rendered. It does **not** reach `Band`'s other two style-owned
|
|
42
|
+
* spends — the ground and the reading measure — because `separation` is the
|
|
43
|
+
* literal `"rule"` here and `width` is a `ContainerWidth`; `_band.ts`'s
|
|
44
|
+
* docblock says why that is a fact about the published manifest and not only
|
|
45
|
+
* about the markup.
|
|
46
|
+
*
|
|
47
|
+
* Static markup — no `"use client"`.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* <Footer meta={<><span>© 2026 CUE++</span><Link href="/legal">Legal</Link></>}>
|
|
51
|
+
* <Grid minItemWidth="12rem" gap={5}>
|
|
52
|
+
* <Stack gap={2}>
|
|
53
|
+
* <Eyebrow>Docs</Eyebrow>
|
|
54
|
+
* <Link href="/docs">Getting started</Link>
|
|
55
|
+
* <Link href="/docs/theming">Theming</Link>
|
|
56
|
+
* </Stack>
|
|
57
|
+
* <Stack gap={2}>
|
|
58
|
+
* <Eyebrow>Surfaces</Eyebrow>
|
|
59
|
+
* <Link href="/kitchen-sink">Kitchen sink</Link>
|
|
60
|
+
* </Stack>
|
|
61
|
+
* </Grid>
|
|
62
|
+
* </Footer>
|
|
63
|
+
*/
|
|
64
|
+
const Footer = React.forwardRef(function Footer({ className, columnClassName, width = "broad", meta, children, ...elementProps }, ref) {
|
|
65
|
+
return /* @__PURE__ */ jsx("footer", {
|
|
66
|
+
ref,
|
|
67
|
+
"data-slot": "footer",
|
|
68
|
+
"data-separation": "rule",
|
|
69
|
+
className: cn(bandClasses("rule"), "border-border", className),
|
|
70
|
+
...elementProps,
|
|
71
|
+
children: /* @__PURE__ */ jsxs(Container, {
|
|
72
|
+
width,
|
|
73
|
+
className: cn("flex flex-col gap-(--cue-space-6) font-mono text-(length:--cue-text-ui)", columnClassName),
|
|
74
|
+
children: [children, meta === void 0 ? null : /* @__PURE__ */ jsx("div", {
|
|
75
|
+
"data-slot": "footer-meta",
|
|
76
|
+
className: "flex flex-wrap items-center justify-between gap-(--cue-space-3) border-t border-border pt-(--cue-space-5) font-mono text-(length:--cue-text-label) text-fg-subtle",
|
|
77
|
+
children: meta
|
|
78
|
+
})]
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
//#endregion
|
|
83
|
+
export { Footer };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ScrollEdges, TAB_FADE_PX, computeScrollEdges, edgeFadeMask } from "./_tabs-scroll.js";
|
|
2
|
+
import { BarOverflow } from "./_edge-scroller.js";
|
|
3
|
+
import { TREE_GUIDE_GLYPHS, TreeGuide, TreeItem, TreeRow, flattenTree } from "./_tree.js";
|
|
4
|
+
import { AppBar, AppBarActionsProps, AppBarBrandProps, AppBarLinkProps, AppBarNavProps, AppBarRegister, AppBarRootProps, AppBarSeparatorProps } from "./app-bar.js";
|
|
5
|
+
import { AppShell, AppShellAsideProps, AppShellBarProps, AppShellBodyProps, AppShellContentProps, AppShellNavTriggerProps, AppShellRootProps, AppShellScrollerProps, AppShellSidebarProps } from "./app-shell.js";
|
|
6
|
+
import { Band, BandProps, BandSeparation, BandWidth } from "./band.js";
|
|
7
|
+
import { EmptyState, EmptyStateProps } from "./empty-state.js";
|
|
8
|
+
import { Eyebrow, EyebrowProps } from "./eyebrow.js";
|
|
9
|
+
import { Footer, FooterProps } from "./footer.js";
|
|
10
|
+
import { Inspector, InspectorFooterProps, InspectorRootProps, InspectorRowProps, InspectorSectionProps } from "./inspector.js";
|
|
11
|
+
import { NavigationMenu, NavigationMenuContentProps, NavigationMenuItemProps, NavigationMenuLinkProps, NavigationMenuListProps, NavigationMenuRootProps, NavigationMenuTriggerProps, NavigationMenuViewportProps } from "./navigation-menu.js";
|
|
12
|
+
import { PageShell, PageShellProps, PageWidth } from "./page-shell.js";
|
|
13
|
+
import { Panel, PanelHeader, PanelHeaderProps, PanelProps } from "./panel.js";
|
|
14
|
+
import { Row, RowProps, SeamList, SeamListProps, rowVariants } from "./row.js";
|
|
15
|
+
import { ScrollArea, ScrollAreaOrientation, ScrollAreaProps } from "./scroll-area.js";
|
|
16
|
+
import { SectionHeader, SectionHeaderProps } from "./section-header.js";
|
|
17
|
+
import { SegmentedControl, SegmentedControlItem, SegmentedControlProps, SegmentedControlSize } from "./segmented-control.js";
|
|
18
|
+
import { StatusBarProminence } from "./_status-bar.js";
|
|
19
|
+
import { StatusBar, StatusBarGroupProps, StatusBarItemProps, StatusBarProps, StatusBarTone } from "./status-bar.js";
|
|
20
|
+
import { ScrollableTabsList, ScrollableTabsListProps, Tabs, TabsListProps, TabsPanelProps, TabsRootProps, TabsTabProps } from "./tabs.js";
|
|
21
|
+
import { TitleBar, TitleBarProps } from "./title-bar.js";
|
|
22
|
+
import { Tree, TreeProps, TreeVisibility, TreeVisibilityToggle, TreeVisibilityToggleProps } from "./tree.js";
|
|
23
|
+
import { Toolbar, ToolbarButtonProps, ToolbarGroupProps, ToolbarRootProps, ToolbarSeparatorProps } from "./toolbar.js";
|
|
24
|
+
export { AppBar, type AppBarActionsProps, type AppBarBrandProps, type AppBarLinkProps, type AppBarNavProps, type AppBarRegister, type AppBarRootProps, type AppBarSeparatorProps, AppShell, type AppShellAsideProps, type AppShellBarProps, type AppShellBodyProps, type AppShellContentProps, type AppShellNavTriggerProps, type AppShellRootProps, type AppShellScrollerProps, type AppShellSidebarProps, Band, type BandProps, type BandSeparation, type BandWidth, type BarOverflow, EmptyState, type EmptyStateProps, Eyebrow, type EyebrowProps, Footer, type FooterProps, Inspector, type InspectorFooterProps, type InspectorRootProps, type InspectorRowProps, type InspectorSectionProps, NavigationMenu, type NavigationMenuContentProps, type NavigationMenuItemProps, type NavigationMenuLinkProps, type NavigationMenuListProps, type NavigationMenuRootProps, type NavigationMenuTriggerProps, type NavigationMenuViewportProps, PageShell, type PageShellProps, type PageWidth, Panel, PanelHeader, type PanelHeaderProps, type PanelProps, Row, type RowProps, ScrollArea, type ScrollAreaOrientation, type ScrollAreaProps, type ScrollEdges, ScrollableTabsList, type ScrollableTabsListProps, SeamList, type SeamListProps, SectionHeader, type SectionHeaderProps, SegmentedControl, type SegmentedControlItem, type SegmentedControlProps, type SegmentedControlSize, StatusBar, type StatusBarGroupProps, type StatusBarItemProps, type StatusBarProminence, type StatusBarProps, type StatusBarTone, TAB_FADE_PX, TREE_GUIDE_GLYPHS, Tabs, type TabsListProps, type TabsPanelProps, type TabsRootProps, type TabsTabProps, TitleBar, type TitleBarProps, Toolbar, type ToolbarButtonProps, type ToolbarGroupProps, type ToolbarRootProps, type ToolbarSeparatorProps, Tree, type TreeGuide, type TreeItem, type TreeProps, type TreeRow, type TreeVisibility, TreeVisibilityToggle, type TreeVisibilityToggleProps, computeScrollEdges, edgeFadeMask, flattenTree, rowVariants };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TAB_FADE_PX, computeScrollEdges, edgeFadeMask } from "./_tabs-scroll.js";
|
|
2
|
+
import { TREE_GUIDE_GLYPHS, flattenTree } from "./_tree.js";
|
|
3
|
+
import { AppBar } from "./app-bar.js";
|
|
4
|
+
import { AppShell } from "./app-shell.js";
|
|
5
|
+
import { Band } from "./band.js";
|
|
6
|
+
import { EmptyState } from "./empty-state.js";
|
|
7
|
+
import { Eyebrow } from "./eyebrow.js";
|
|
8
|
+
import { Footer } from "./footer.js";
|
|
9
|
+
import { SectionHeader } from "./section-header.js";
|
|
10
|
+
import { Inspector } from "./inspector.js";
|
|
11
|
+
import { NavigationMenu } from "./navigation-menu.js";
|
|
12
|
+
import { PageShell } from "./page-shell.js";
|
|
13
|
+
import { Panel, PanelHeader } from "./panel.js";
|
|
14
|
+
import { Row, SeamList, rowVariants } from "./row.js";
|
|
15
|
+
import { ScrollArea } from "./scroll-area.js";
|
|
16
|
+
import { SegmentedControl } from "./segmented-control.js";
|
|
17
|
+
import { StatusBar } from "./status-bar.js";
|
|
18
|
+
import { ScrollableTabsList, Tabs } from "./tabs.js";
|
|
19
|
+
import { TitleBar } from "./title-bar.js";
|
|
20
|
+
import { Tree, TreeVisibilityToggle } from "./tree.js";
|
|
21
|
+
import { Toolbar } from "./toolbar.js";
|
|
22
|
+
export { AppBar, AppShell, Band, EmptyState, Eyebrow, Footer, Inspector, NavigationMenu, PageShell, Panel, PanelHeader, Row, ScrollArea, ScrollableTabsList, SeamList, SectionHeader, SegmentedControl, StatusBar, TAB_FADE_PX, TREE_GUIDE_GLYPHS, Tabs, TitleBar, Toolbar, Tree, TreeVisibilityToggle, computeScrollEdges, edgeFadeMask, flattenTree, rowVariants };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/chrome/inspector.d.ts
|
|
3
|
+
interface InspectorRootProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
4
|
+
/** The sections, then the footer. */
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
interface InspectorSectionProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
8
|
+
/** The section's title — "Variants", "Stage". Drawn by a `SectionHeader` and read as the group's name. */
|
|
9
|
+
label: string;
|
|
10
|
+
/** The section's rows. */
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
interface InspectorRowProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
14
|
+
/**
|
|
15
|
+
* What the control sets — "Size", "Theme". Drawn before it, and read as its
|
|
16
|
+
* name: a `<label>` for it when `htmlFor` is given, and otherwise laid on
|
|
17
|
+
* the control as `aria-label`, unless the control already names itself.
|
|
18
|
+
*/
|
|
19
|
+
label: string;
|
|
20
|
+
/** The control's `id`, when it takes one: the label then becomes a `<label>` for it. */
|
|
21
|
+
htmlFor?: string;
|
|
22
|
+
/** The control — one element, any of the library's own. A row names a single control. */
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
interface InspectorFooterProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
26
|
+
/** A quiet line on the left: which preset this is, or that none matches. */
|
|
27
|
+
note?: React.ReactNode;
|
|
28
|
+
/** The footer's one action, on the right — by convention a small `Button`. */
|
|
29
|
+
action?: React.ReactNode;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The shape a settings panel, a properties sidebar and a wrench menu share:
|
|
33
|
+
* titled sections of label-and-control rows, with a footer.
|
|
34
|
+
*
|
|
35
|
+
* Layout and nothing else — the controls are the library's own. A section is
|
|
36
|
+
* a group headed by a `SectionHeader`; a row is a label then its control, one
|
|
37
|
+
* column in a narrow container and two from 18rem; the footer holds a quiet
|
|
38
|
+
* note and one action.
|
|
39
|
+
*
|
|
40
|
+
* **Static markup — no hooks, no `"use client"`**, so a server page can draw
|
|
41
|
+
* one. Labels are strings for the same reason: a row with no `htmlFor` lays its
|
|
42
|
+
* label on its control as `aria-label`, rather than pointing at an id nobody
|
|
43
|
+
* has generated. The row itself carries no role.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* <Inspector.Root>
|
|
47
|
+
* <Inspector.Section label="Variants">
|
|
48
|
+
* <Inspector.Row label="Size"><SegmentedControl items={sizes} /></Inspector.Row>
|
|
49
|
+
* <Inspector.Row label="Label" htmlFor="label"><Input id="label" /></Inspector.Row>
|
|
50
|
+
* </Inspector.Section>
|
|
51
|
+
* <Inspector.Footer note="preset · button-hero" action={<Button size="sm">Reset</Button>} />
|
|
52
|
+
* </Inspector.Root>
|
|
53
|
+
*/
|
|
54
|
+
declare const Inspector: {
|
|
55
|
+
Root: React.ForwardRefExoticComponent<InspectorRootProps & React.RefAttributes<HTMLDivElement>>;
|
|
56
|
+
Section: React.ForwardRefExoticComponent<InspectorSectionProps & React.RefAttributes<HTMLDivElement>>;
|
|
57
|
+
Row: React.ForwardRefExoticComponent<InspectorRowProps & React.RefAttributes<HTMLDivElement>>;
|
|
58
|
+
Footer: React.ForwardRefExoticComponent<InspectorFooterProps & React.RefAttributes<HTMLDivElement>>;
|
|
59
|
+
};
|
|
60
|
+
//#endregion
|
|
61
|
+
export { Inspector, InspectorFooterProps, InspectorRootProps, InspectorRowProps, InspectorSectionProps };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { SectionHeader } from "./section-header.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/chrome/inspector.tsx
|
|
6
|
+
/** A size container, so a row's two columns depend on the inspector's width and not the page's. */
|
|
7
|
+
const ROOT_CLASS = "@container flex min-w-0 flex-col";
|
|
8
|
+
const SECTION_CLASS = "flex flex-col gap-(--cue-space-3) border-t border-border px-(--cue-space-4) py-(--cue-space-3) first:border-t-0";
|
|
9
|
+
/** Static literals: Tailwind scans source text, not computed strings. */
|
|
10
|
+
const ROW_CLASS = "grid grid-cols-1 gap-(--cue-space-2) @min-[18rem]:grid-cols-[6rem_minmax(0,1fr)] @min-[18rem]:items-center";
|
|
11
|
+
const LABEL_CLASS = "text-(length:--cue-text-ui) text-fg-muted";
|
|
12
|
+
const FOOTER_CLASS = "flex items-center justify-between gap-(--cue-space-3) border-t border-border px-(--cue-space-4) py-(--cue-space-3)";
|
|
13
|
+
const NOTE_CLASS = "min-w-0 truncate font-mono text-(length:--cue-text-label) text-fg-subtle";
|
|
14
|
+
/** `ms-auto` so a lone action still sits at the end edge: `space-between` alone puts a single flex child at the start. */
|
|
15
|
+
const FOOTER_ACTION_CLASS = "ms-auto";
|
|
16
|
+
/**
|
|
17
|
+
* A row's words, laid on its control as the control's own name.
|
|
18
|
+
*
|
|
19
|
+
* A row with no `htmlFor` has no id to point a `<label>` at, and generating one
|
|
20
|
+
* would take `useId` — a hook, and with it this module's place in a server
|
|
21
|
+
* component. So the control is cloned with `aria-label={label}`: cloning is not
|
|
22
|
+
* a hook, which is why `Bento.Tile` clones its `render` link the same way. A
|
|
23
|
+
* control that already names itself keeps its name. Anything that is not one
|
|
24
|
+
* element — text, a list, a fragment — is left as it is, because an
|
|
25
|
+
* `aria-label` on a fragment is an attribute on nothing.
|
|
26
|
+
*
|
|
27
|
+
* The row itself carries no role. A `SegmentedControl` is already a group, and
|
|
28
|
+
* a row that named itself a group with the same words would be two groups with
|
|
29
|
+
* one name, announced twice.
|
|
30
|
+
*/
|
|
31
|
+
function nameControl(control, label) {
|
|
32
|
+
if (!React.isValidElement(control) || control.type === React.Fragment) return control;
|
|
33
|
+
if (control.props["aria-label"] !== void 0 || control.props["aria-labelledby"] !== void 0) return control;
|
|
34
|
+
return React.cloneElement(control, { "aria-label": label });
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The shape a settings panel, a properties sidebar and a wrench menu share:
|
|
38
|
+
* titled sections of label-and-control rows, with a footer.
|
|
39
|
+
*
|
|
40
|
+
* Layout and nothing else — the controls are the library's own. A section is
|
|
41
|
+
* a group headed by a `SectionHeader`; a row is a label then its control, one
|
|
42
|
+
* column in a narrow container and two from 18rem; the footer holds a quiet
|
|
43
|
+
* note and one action.
|
|
44
|
+
*
|
|
45
|
+
* **Static markup — no hooks, no `"use client"`**, so a server page can draw
|
|
46
|
+
* one. Labels are strings for the same reason: a row with no `htmlFor` lays its
|
|
47
|
+
* label on its control as `aria-label`, rather than pointing at an id nobody
|
|
48
|
+
* has generated. The row itself carries no role.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* <Inspector.Root>
|
|
52
|
+
* <Inspector.Section label="Variants">
|
|
53
|
+
* <Inspector.Row label="Size"><SegmentedControl items={sizes} /></Inspector.Row>
|
|
54
|
+
* <Inspector.Row label="Label" htmlFor="label"><Input id="label" /></Inspector.Row>
|
|
55
|
+
* </Inspector.Section>
|
|
56
|
+
* <Inspector.Footer note="preset · button-hero" action={<Button size="sm">Reset</Button>} />
|
|
57
|
+
* </Inspector.Root>
|
|
58
|
+
*/
|
|
59
|
+
const Inspector = {
|
|
60
|
+
Root: React.forwardRef(function InspectorRoot({ className, children, ...elementProps }, ref) {
|
|
61
|
+
return /* @__PURE__ */ jsx("div", {
|
|
62
|
+
...elementProps,
|
|
63
|
+
ref,
|
|
64
|
+
"data-slot": "inspector",
|
|
65
|
+
className: cn(ROOT_CLASS, className),
|
|
66
|
+
children
|
|
67
|
+
});
|
|
68
|
+
}),
|
|
69
|
+
Section: React.forwardRef(function InspectorSection({ label, className, children, ...elementProps }, ref) {
|
|
70
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
71
|
+
...elementProps,
|
|
72
|
+
ref,
|
|
73
|
+
role: "group",
|
|
74
|
+
"aria-label": label,
|
|
75
|
+
"data-slot": "inspector-section",
|
|
76
|
+
className: cn(SECTION_CLASS, className),
|
|
77
|
+
children: [/* @__PURE__ */ jsx(SectionHeader, { label }), children]
|
|
78
|
+
});
|
|
79
|
+
}),
|
|
80
|
+
Row: React.forwardRef(function InspectorRow({ label, htmlFor, className, children, ...elementProps }, ref) {
|
|
81
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
82
|
+
...elementProps,
|
|
83
|
+
ref,
|
|
84
|
+
"data-slot": "inspector-row",
|
|
85
|
+
className: cn(ROW_CLASS, className),
|
|
86
|
+
children: [htmlFor === void 0 ? /* @__PURE__ */ jsx("span", {
|
|
87
|
+
"data-slot": "inspector-row-label",
|
|
88
|
+
className: LABEL_CLASS,
|
|
89
|
+
children: label
|
|
90
|
+
}) : /* @__PURE__ */ jsx("label", {
|
|
91
|
+
"data-slot": "inspector-row-label",
|
|
92
|
+
htmlFor,
|
|
93
|
+
className: LABEL_CLASS,
|
|
94
|
+
children: label
|
|
95
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
96
|
+
"data-slot": "inspector-row-control",
|
|
97
|
+
className: "min-w-0",
|
|
98
|
+
children: htmlFor === void 0 ? nameControl(children, label) : children
|
|
99
|
+
})]
|
|
100
|
+
});
|
|
101
|
+
}),
|
|
102
|
+
Footer: React.forwardRef(function InspectorFooter({ note, action, className, ...elementProps }, ref) {
|
|
103
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
104
|
+
...elementProps,
|
|
105
|
+
ref,
|
|
106
|
+
"data-slot": "inspector-footer",
|
|
107
|
+
className: cn(FOOTER_CLASS, className),
|
|
108
|
+
children: [note === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
109
|
+
"data-slot": "inspector-footer-note",
|
|
110
|
+
className: NOTE_CLASS,
|
|
111
|
+
children: note
|
|
112
|
+
}), action === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
113
|
+
"data-slot": "inspector-footer-action",
|
|
114
|
+
className: FOOTER_ACTION_CLASS,
|
|
115
|
+
children: action
|
|
116
|
+
})]
|
|
117
|
+
});
|
|
118
|
+
})
|
|
119
|
+
};
|
|
120
|
+
//#endregion
|
|
121
|
+
export { Inspector };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { NavigationMenu } from "@base-ui/react/navigation-menu";
|
|
3
|
+
//#region src/chrome/navigation-menu.d.ts
|
|
4
|
+
interface NavigationMenuRootProps extends Omit<NavigationMenu.Root.Props, "className"> {
|
|
5
|
+
/** Extra classes for the `<nav>`. */
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
interface NavigationMenuListProps extends Omit<NavigationMenu.List.Props, "className"> {
|
|
9
|
+
/** Extra classes for the strip of items. */
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
interface NavigationMenuItemProps extends NavigationMenu.Item.Props {}
|
|
13
|
+
interface NavigationMenuTriggerProps extends Omit<NavigationMenu.Trigger.Props, "className"> {
|
|
14
|
+
/** Extra classes for the trigger. */
|
|
15
|
+
className?: string;
|
|
16
|
+
/** Draw the caret that says a panel opens below. Defaults to `true`. */
|
|
17
|
+
caret?: boolean;
|
|
18
|
+
}
|
|
19
|
+
interface NavigationMenuContentProps extends Omit<NavigationMenu.Content.Props, "className"> {
|
|
20
|
+
/** Extra classes for the panel body. */
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
interface NavigationMenuLinkProps extends Omit<NavigationMenu.Link.Props, "className"> {
|
|
24
|
+
/** Extra classes for the link row. */
|
|
25
|
+
className?: string;
|
|
26
|
+
/** Supporting line under the label. */
|
|
27
|
+
description?: React.ReactNode;
|
|
28
|
+
/** Mark this link as the current destination. */
|
|
29
|
+
active?: boolean;
|
|
30
|
+
}
|
|
31
|
+
interface NavigationMenuViewportProps extends Omit<NavigationMenu.Popup.Props, "className"> {
|
|
32
|
+
/** Extra classes for the popup surface. */
|
|
33
|
+
className?: string;
|
|
34
|
+
/** Extra classes for the positioner that places the popup. */
|
|
35
|
+
positionerClassName?: string;
|
|
36
|
+
/** Gap in px between the strip and the popup. Defaults to `4`. */
|
|
37
|
+
sideOffset?: NavigationMenu.Positioner.Props["sideOffset"];
|
|
38
|
+
/** Alignment along the bottom of the active trigger. Defaults to `"start"`. */
|
|
39
|
+
align?: NavigationMenu.Positioner.Props["align"];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The marketing-shaped navigation header: a strip of words, each opening a panel
|
|
43
|
+
* of destinations.
|
|
44
|
+
*
|
|
45
|
+
* Wraps Base UI's `NavigationMenu`, which is the right primitive because a
|
|
46
|
+
* navigation menu is *not* a menu: its rows are links, not commands, so it must
|
|
47
|
+
* not take `role="menu"` (which tells a screen reader to expect commands and
|
|
48
|
+
* swallows the browser's own link affordances). Hover intent, the shared
|
|
49
|
+
* resizing popup, focus handling and the landmark are all the primitive's.
|
|
50
|
+
*
|
|
51
|
+
* Reach for {@link Menubar} when the entries run commands, `Tabs` when they
|
|
52
|
+
* switch a panel in place, and `Sidebar` when the console has more than about
|
|
53
|
+
* six destinations.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* <NavigationMenu.Root aria-label="Console">
|
|
57
|
+
* <NavigationMenu.List>
|
|
58
|
+
* <NavigationMenu.Item>
|
|
59
|
+
* <NavigationMenu.Trigger>Patch</NavigationMenu.Trigger>
|
|
60
|
+
* <NavigationMenu.Content>
|
|
61
|
+
* <NavigationMenu.Link href="/patch/fixtures" description="Everything addressed">
|
|
62
|
+
* Fixtures
|
|
63
|
+
* </NavigationMenu.Link>
|
|
64
|
+
* </NavigationMenu.Content>
|
|
65
|
+
* </NavigationMenu.Item>
|
|
66
|
+
* </NavigationMenu.List>
|
|
67
|
+
* <NavigationMenu.Viewport />
|
|
68
|
+
* </NavigationMenu.Root>
|
|
69
|
+
*/
|
|
70
|
+
declare const NavigationMenu$1: {
|
|
71
|
+
Root: React.ForwardRefExoticComponent<Omit<NavigationMenuRootProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
72
|
+
List: React.ForwardRefExoticComponent<Omit<NavigationMenuListProps, "ref"> & React.RefAttributes<HTMLUListElement>>;
|
|
73
|
+
Item: React.ForwardRefExoticComponent<Omit<NavigationMenuItemProps, "ref"> & React.RefAttributes<HTMLLIElement>>;
|
|
74
|
+
Trigger: React.ForwardRefExoticComponent<Omit<NavigationMenuTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
75
|
+
Content: React.ForwardRefExoticComponent<Omit<NavigationMenuContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
76
|
+
Link: React.ForwardRefExoticComponent<Omit<NavigationMenuLinkProps, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
|
|
77
|
+
Viewport: React.ForwardRefExoticComponent<Omit<NavigationMenuViewportProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
78
|
+
};
|
|
79
|
+
//#endregion
|
|
80
|
+
export { NavigationMenu$1 as NavigationMenu, NavigationMenuContentProps, NavigationMenuItemProps, NavigationMenuLinkProps, NavigationMenuListProps, NavigationMenuRootProps, NavigationMenuTriggerProps, NavigationMenuViewportProps };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { CaretDownGlyph } from "./_glyphs.js";
|
|
4
|
+
import { useCuePortalProps } from "../system/portal.js";
|
|
5
|
+
import { overlayPopupTransitionClasses, overlayPositionerClasses, overlaySurfaceClasses } from "../overlays/_surface.js";
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { NavigationMenu } from "@base-ui/react/navigation-menu";
|
|
9
|
+
/**
|
|
10
|
+
* The marketing-shaped navigation header: a strip of words, each opening a panel
|
|
11
|
+
* of destinations.
|
|
12
|
+
*
|
|
13
|
+
* Wraps Base UI's `NavigationMenu`, which is the right primitive because a
|
|
14
|
+
* navigation menu is *not* a menu: its rows are links, not commands, so it must
|
|
15
|
+
* not take `role="menu"` (which tells a screen reader to expect commands and
|
|
16
|
+
* swallows the browser's own link affordances). Hover intent, the shared
|
|
17
|
+
* resizing popup, focus handling and the landmark are all the primitive's.
|
|
18
|
+
*
|
|
19
|
+
* Reach for {@link Menubar} when the entries run commands, `Tabs` when they
|
|
20
|
+
* switch a panel in place, and `Sidebar` when the console has more than about
|
|
21
|
+
* six destinations.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* <NavigationMenu.Root aria-label="Console">
|
|
25
|
+
* <NavigationMenu.List>
|
|
26
|
+
* <NavigationMenu.Item>
|
|
27
|
+
* <NavigationMenu.Trigger>Patch</NavigationMenu.Trigger>
|
|
28
|
+
* <NavigationMenu.Content>
|
|
29
|
+
* <NavigationMenu.Link href="/patch/fixtures" description="Everything addressed">
|
|
30
|
+
* Fixtures
|
|
31
|
+
* </NavigationMenu.Link>
|
|
32
|
+
* </NavigationMenu.Content>
|
|
33
|
+
* </NavigationMenu.Item>
|
|
34
|
+
* </NavigationMenu.List>
|
|
35
|
+
* <NavigationMenu.Viewport />
|
|
36
|
+
* </NavigationMenu.Root>
|
|
37
|
+
*/
|
|
38
|
+
const NavigationMenu$1 = {
|
|
39
|
+
Root: React.forwardRef(function NavigationMenuRoot({ className, ...elementProps }, ref) {
|
|
40
|
+
return /* @__PURE__ */ jsx(NavigationMenu.Root, {
|
|
41
|
+
ref,
|
|
42
|
+
"data-slot": "navigation-menu",
|
|
43
|
+
className: cn("relative", className),
|
|
44
|
+
...elementProps
|
|
45
|
+
});
|
|
46
|
+
}),
|
|
47
|
+
List: React.forwardRef(function NavigationMenuList({ className, ...elementProps }, ref) {
|
|
48
|
+
return /* @__PURE__ */ jsx(NavigationMenu.List, {
|
|
49
|
+
ref,
|
|
50
|
+
"data-slot": "navigation-menu-list",
|
|
51
|
+
className: cn("flex items-center gap-(--cue-space-1)", className),
|
|
52
|
+
...elementProps
|
|
53
|
+
});
|
|
54
|
+
}),
|
|
55
|
+
Item: React.forwardRef(function NavigationMenuItem({ className, ...elementProps }, ref) {
|
|
56
|
+
return /* @__PURE__ */ jsx(NavigationMenu.Item, {
|
|
57
|
+
ref,
|
|
58
|
+
"data-slot": "navigation-menu-item",
|
|
59
|
+
className: cn(className),
|
|
60
|
+
...elementProps
|
|
61
|
+
});
|
|
62
|
+
}),
|
|
63
|
+
Trigger: React.forwardRef(function NavigationMenuTrigger({ className, caret = true, children, ...elementProps }, ref) {
|
|
64
|
+
return /* @__PURE__ */ jsxs(NavigationMenu.Trigger, {
|
|
65
|
+
ref,
|
|
66
|
+
"data-slot": "navigation-menu-trigger",
|
|
67
|
+
className: cn("inline-flex h-control-md cursor-default items-center gap-(--cue-space-2) rounded-(--radius-control) px-(--cue-space-3) font-mono text-(length:--cue-text-ui) whitespace-nowrap text-fg-muted no-underline transition-colors duration-150 outline-none select-none hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-accent data-[popup-open]:bg-accent-soft data-[popup-open]:text-fg", className),
|
|
68
|
+
...elementProps,
|
|
69
|
+
children: [children, caret ? /* @__PURE__ */ jsx(NavigationMenu.Icon, {
|
|
70
|
+
className: "flex items-center transition-transform duration-150 data-[popup-open]:rotate-180 motion-reduce:transition-none",
|
|
71
|
+
children: /* @__PURE__ */ jsx(CaretDownGlyph, { className: "size-icon-sm text-fg-subtle" })
|
|
72
|
+
}) : null]
|
|
73
|
+
});
|
|
74
|
+
}),
|
|
75
|
+
Content: React.forwardRef(function NavigationMenuContent({ className, ...elementProps }, ref) {
|
|
76
|
+
return /* @__PURE__ */ jsx(NavigationMenu.Content, {
|
|
77
|
+
ref,
|
|
78
|
+
"data-slot": "navigation-menu-content",
|
|
79
|
+
className: cn("flex w-[min(20rem,calc(100vw-2rem))] flex-col gap-(--cue-space-1) p-(--cue-space-2)", className),
|
|
80
|
+
...elementProps
|
|
81
|
+
});
|
|
82
|
+
}),
|
|
83
|
+
Link: React.forwardRef(function NavigationMenuLink({ className, description, active, children, ...elementProps }, ref) {
|
|
84
|
+
return /* @__PURE__ */ jsxs(NavigationMenu.Link, {
|
|
85
|
+
ref,
|
|
86
|
+
"data-slot": "navigation-menu-link",
|
|
87
|
+
"data-active": active === true ? "" : void 0,
|
|
88
|
+
"aria-current": active === true ? "page" : void 0,
|
|
89
|
+
className: cn("flex cursor-pointer flex-col gap-(--cue-space-1) rounded-(--radius-control) px-(--cue-space-3) py-(--cue-space-2) font-mono text-(length:--cue-text-ui) text-fg-muted no-underline transition-colors duration-150 outline-none select-none hover:bg-surface-3 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-accent data-[active]:text-accent", className),
|
|
90
|
+
...elementProps,
|
|
91
|
+
children: [/* @__PURE__ */ jsx("span", { children }), description === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
92
|
+
className: "text-(length:--cue-text-label) leading-(--cue-leading-ui) text-fg-subtle",
|
|
93
|
+
children: description
|
|
94
|
+
})]
|
|
95
|
+
});
|
|
96
|
+
}),
|
|
97
|
+
Viewport: React.forwardRef(function NavigationMenuViewport({ className, positionerClassName, sideOffset = 4, align = "start", ...popupProps }, ref) {
|
|
98
|
+
const portalProps = useCuePortalProps();
|
|
99
|
+
return /* @__PURE__ */ jsx(NavigationMenu.Portal, {
|
|
100
|
+
...portalProps,
|
|
101
|
+
children: /* @__PURE__ */ jsx(NavigationMenu.Positioner, {
|
|
102
|
+
className: cn(overlayPositionerClasses, "h-(--positioner-height) w-(--positioner-width) max-w-(--available-width)", positionerClassName),
|
|
103
|
+
side: "bottom",
|
|
104
|
+
align,
|
|
105
|
+
sideOffset,
|
|
106
|
+
children: /* @__PURE__ */ jsx(NavigationMenu.Popup, {
|
|
107
|
+
ref,
|
|
108
|
+
"data-slot": "navigation-menu-popup",
|
|
109
|
+
className: cn(overlaySurfaceClasses, overlayPopupTransitionClasses, "relative h-(--popup-height) w-(--popup-width) overflow-hidden outline-none", className),
|
|
110
|
+
...popupProps,
|
|
111
|
+
children: /* @__PURE__ */ jsx(NavigationMenu.Viewport, {
|
|
112
|
+
"data-slot": "navigation-menu-viewport",
|
|
113
|
+
className: "relative h-full w-full overflow-hidden"
|
|
114
|
+
})
|
|
115
|
+
})
|
|
116
|
+
})
|
|
117
|
+
});
|
|
118
|
+
})
|
|
119
|
+
};
|
|
120
|
+
//#endregion
|
|
121
|
+
export { NavigationMenu$1 as NavigationMenu };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/chrome/page-shell.d.ts
|
|
3
|
+
/** How wide the content column is allowed to get. */
|
|
4
|
+
type PageWidth = "narrow" | "wide" | "broad" | "full";
|
|
5
|
+
interface PageShellProps extends Omit<React.ComponentPropsWithoutRef<"div">, "title"> {
|
|
6
|
+
/** Which measure the content column takes. Defaults to `"narrow"`. */
|
|
7
|
+
width?: PageWidth;
|
|
8
|
+
/** The page heading. Rendered as the `<h1>`. */
|
|
9
|
+
title?: React.ReactNode;
|
|
10
|
+
/** One supporting line under the title. */
|
|
11
|
+
subtitle?: React.ReactNode;
|
|
12
|
+
/** Accent kicker above the title — normally an `<Eyebrow>`. */
|
|
13
|
+
eyebrow?: React.ReactNode;
|
|
14
|
+
/** Page-level actions, aligned with the title. */
|
|
15
|
+
actions?: React.ReactNode;
|
|
16
|
+
/** The page body. */
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A centred content column with a standard page header.
|
|
21
|
+
*
|
|
22
|
+
* The header is emitted only when something fills it, so a shell used purely
|
|
23
|
+
* for its measure adds no empty box and no stray vertical rhythm.
|
|
24
|
+
*
|
|
25
|
+
* Renders a plain `<div>` rather than a `<main>`: a page can hold more than one
|
|
26
|
+
* shell (a split view), and only one element per document may be `<main>`. Wrap
|
|
27
|
+
* it yourself where the semantics apply.
|
|
28
|
+
*
|
|
29
|
+
* Static markup — no `"use client"`.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* <PageShell title="Patch" subtitle="512 channels" eyebrow={<Eyebrow>Console</Eyebrow>}>
|
|
33
|
+
* <Panel>…</Panel>
|
|
34
|
+
* </PageShell>
|
|
35
|
+
*/
|
|
36
|
+
declare const PageShell: React.ForwardRefExoticComponent<PageShellProps & React.RefAttributes<HTMLDivElement>>;
|
|
37
|
+
//#endregion
|
|
38
|
+
export { PageShell, PageShellProps, PageWidth };
|