@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,100 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { cva } from "../lib/cva.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/layout/item.tsx
|
|
6
|
+
/**
|
|
7
|
+
* The media-object recipe: an optional leading glyph, two lines of text and a
|
|
8
|
+
* trailing slot, on the row padding rung.
|
|
9
|
+
*
|
|
10
|
+
* Framing and hover feedback are split across `variants` for the same reason as
|
|
11
|
+
* `chipVariants`: emitting a fill from one variant and cancelling it from
|
|
12
|
+
* another would leave two competing background utilities in the class string
|
|
13
|
+
* and lean on `tailwind-merge` to pick a winner.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <div className={itemVariants({ variant: "outline" })} />
|
|
17
|
+
*/
|
|
18
|
+
const itemVariants = cva("flex w-full items-center gap-(--cue-space-4) rounded-(--radius-control) px-(--cue-pad-row-x) py-(--cue-pad-row-y) text-left font-mono text-(length:--cue-text-ui) text-fg", {
|
|
19
|
+
variants: {
|
|
20
|
+
variant: {
|
|
21
|
+
plain: "",
|
|
22
|
+
outline: "border border-border",
|
|
23
|
+
soft: "bg-surface-2"
|
|
24
|
+
},
|
|
25
|
+
interactive: {
|
|
26
|
+
true: "cursor-pointer transition-colors duration-150 outline-none hover:bg-surface-2 focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-40",
|
|
27
|
+
false: ""
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
defaultVariants: {
|
|
31
|
+
variant: "plain",
|
|
32
|
+
interactive: false
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* One thing in a list, with room for a glyph, a name, a line of detail and a
|
|
37
|
+
* control — the shape a settings entry, a search hit and a device row all want.
|
|
38
|
+
*
|
|
39
|
+
* Where `Row` is a line of a hairline table, `Item` is a self-contained object
|
|
40
|
+
* that can stand alone, sit in a `Stack` or fill a `Grid` cell. It is a real
|
|
41
|
+
* `<button>` when interactive rather than a `<div>` with an `onClick`, so
|
|
42
|
+
* keyboard users get it for free.
|
|
43
|
+
*
|
|
44
|
+
* Static markup — no `"use client"`.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* <Item media={<StatusDot tone="ok" />} title="Node 12" description="10.0.0.12" />
|
|
48
|
+
* @example
|
|
49
|
+
* <Item interactive variant="outline" title="Front truss" onClick={open} />
|
|
50
|
+
*/
|
|
51
|
+
const Item = React.forwardRef(function Item({ className, media, title, description, actions, variant, interactive = false, disabled, children, ...elementProps }, ref) {
|
|
52
|
+
const classes = cn(itemVariants({
|
|
53
|
+
variant,
|
|
54
|
+
interactive
|
|
55
|
+
}), className);
|
|
56
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
57
|
+
media === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
58
|
+
"data-slot": "item-media",
|
|
59
|
+
className: "flex shrink-0 items-center text-fg-muted",
|
|
60
|
+
children: media
|
|
61
|
+
}),
|
|
62
|
+
title === void 0 && description === void 0 ? null : /* @__PURE__ */ jsxs("span", {
|
|
63
|
+
"data-slot": "item-text",
|
|
64
|
+
className: "flex min-w-0 flex-1 flex-col gap-(--cue-space-1)",
|
|
65
|
+
children: [title === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
66
|
+
"data-slot": "item-title",
|
|
67
|
+
className: "truncate text-fg",
|
|
68
|
+
children: title
|
|
69
|
+
}), description === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
70
|
+
"data-slot": "item-description",
|
|
71
|
+
className: "truncate text-(length:--cue-text-label) text-fg-muted",
|
|
72
|
+
children: description
|
|
73
|
+
})]
|
|
74
|
+
}),
|
|
75
|
+
children,
|
|
76
|
+
actions === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
77
|
+
"data-slot": "item-actions",
|
|
78
|
+
className: "flex shrink-0 items-center gap-(--cue-space-2)",
|
|
79
|
+
children: actions
|
|
80
|
+
})
|
|
81
|
+
] });
|
|
82
|
+
if (interactive) return /* @__PURE__ */ jsx("button", {
|
|
83
|
+
ref,
|
|
84
|
+
type: "button",
|
|
85
|
+
disabled,
|
|
86
|
+
"data-slot": "item",
|
|
87
|
+
className: classes,
|
|
88
|
+
...elementProps,
|
|
89
|
+
children: content
|
|
90
|
+
});
|
|
91
|
+
return /* @__PURE__ */ jsx("div", {
|
|
92
|
+
ref,
|
|
93
|
+
"data-slot": "item",
|
|
94
|
+
className: classes,
|
|
95
|
+
...elementProps,
|
|
96
|
+
children: content
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
//#endregion
|
|
100
|
+
export { Item, itemVariants };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ClassProp, VariantProps } from "../lib/cva.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
|
+
//#region src/layout/link.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* The link recipe.
|
|
7
|
+
*
|
|
8
|
+
* The house rule is that a link is **not** underlined: in a console, body copy
|
|
9
|
+
* is rare and links are mostly labels inside dense furniture, where a rule
|
|
10
|
+
* under every one of them turns a panel into a page of hyperlinks. Colour on
|
|
11
|
+
* hover carries the affordance instead. The `underline` variant exists for the
|
|
12
|
+
* one place the rule is right — links inside a paragraph of prose, where colour
|
|
13
|
+
* alone would fail WCAG 1.4.1 — and it offsets the rule by 4px so descenders
|
|
14
|
+
* are not struck through.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* <a className={linkVariants({ variant: "underline" })} href="/docs">Docs</a>
|
|
18
|
+
*/
|
|
19
|
+
declare const linkVariants: (props?: ({
|
|
20
|
+
variant?: "plain" | "underline" | null | undefined;
|
|
21
|
+
} & ClassProp) | undefined) => string;
|
|
22
|
+
interface LinkProps extends React.ComponentPropsWithoutRef<"a">, VariantProps<typeof linkVariants> {
|
|
23
|
+
/**
|
|
24
|
+
* Open in a new tab, mark the anchor `rel="noreferrer noopener"` and append a
|
|
25
|
+
* `↗`. The glyph is not decoration: a link that replaces the user's context
|
|
26
|
+
* without warning is a WCAG 3.2.5 failure, and the arrow is the warning.
|
|
27
|
+
*/
|
|
28
|
+
external?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Replace the rendered element (Base UI render prop). Accepts an element —
|
|
31
|
+
* `render={<NextLink href="/x" />}` — or a function returning one. This is
|
|
32
|
+
* how the design system composes with a router without depending on one.
|
|
33
|
+
*/
|
|
34
|
+
render?: useRender.RenderProp;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A text link: accent on hover, no rule unless you ask for one.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* <Link href="/patch">Patch</Link>
|
|
41
|
+
* @example
|
|
42
|
+
* <Link href="https://base-ui.com" external variant="underline">Base UI</Link>
|
|
43
|
+
* @example
|
|
44
|
+
* <Link render={<NextLink href="/cues" />}>Cues</Link>
|
|
45
|
+
*/
|
|
46
|
+
declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { Link, LinkProps, linkVariants };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { cva } from "../lib/cva.js";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
7
|
+
//#region src/layout/link.tsx
|
|
8
|
+
/**
|
|
9
|
+
* The link recipe.
|
|
10
|
+
*
|
|
11
|
+
* The house rule is that a link is **not** underlined: in a console, body copy
|
|
12
|
+
* is rare and links are mostly labels inside dense furniture, where a rule
|
|
13
|
+
* under every one of them turns a panel into a page of hyperlinks. Colour on
|
|
14
|
+
* hover carries the affordance instead. The `underline` variant exists for the
|
|
15
|
+
* one place the rule is right — links inside a paragraph of prose, where colour
|
|
16
|
+
* alone would fail WCAG 1.4.1 — and it offsets the rule by 4px so descenders
|
|
17
|
+
* are not struck through.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* <a className={linkVariants({ variant: "underline" })} href="/docs">Docs</a>
|
|
21
|
+
*/
|
|
22
|
+
const linkVariants = cva("cursor-pointer rounded-(--radius-control) font-mono text-fg transition-colors duration-150 outline-none hover:text-accent focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-accent", {
|
|
23
|
+
variants: { variant: {
|
|
24
|
+
plain: "no-underline",
|
|
25
|
+
underline: "underline decoration-border underline-offset-4 hover:decoration-accent"
|
|
26
|
+
} },
|
|
27
|
+
defaultVariants: { variant: "plain" }
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* A text link: accent on hover, no rule unless you ask for one.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* <Link href="/patch">Patch</Link>
|
|
34
|
+
* @example
|
|
35
|
+
* <Link href="https://base-ui.com" external variant="underline">Base UI</Link>
|
|
36
|
+
* @example
|
|
37
|
+
* <Link render={<NextLink href="/cues" />}>Cues</Link>
|
|
38
|
+
*/
|
|
39
|
+
const Link = React.forwardRef(function Link({ className, variant, external = false, render, children, ...elementProps }, ref) {
|
|
40
|
+
const externalProps = external ? {
|
|
41
|
+
target: "_blank",
|
|
42
|
+
rel: elementProps.rel ?? "noreferrer noopener"
|
|
43
|
+
} : null;
|
|
44
|
+
return useRender({
|
|
45
|
+
render,
|
|
46
|
+
ref,
|
|
47
|
+
defaultTagName: "a",
|
|
48
|
+
props: {
|
|
49
|
+
...elementProps,
|
|
50
|
+
...externalProps,
|
|
51
|
+
"data-slot": "link",
|
|
52
|
+
className: cn(linkVariants({ variant }), external ? "inline-flex items-center gap-(--cue-space-1)" : null, className),
|
|
53
|
+
children: /* @__PURE__ */ jsxs(Fragment, { children: [children, external ? /* @__PURE__ */ jsx("span", {
|
|
54
|
+
"data-slot": "link-external-glyph",
|
|
55
|
+
"aria-hidden": "true",
|
|
56
|
+
className: "shrink-0 text-(length:--cue-text-micro) leading-none select-none",
|
|
57
|
+
children: "↗"
|
|
58
|
+
}) : null] })
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
//#endregion
|
|
63
|
+
export { Link, linkVariants };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/layout/pagination.d.ts
|
|
3
|
+
/** A page number, or the ellipsis standing in for a run of hidden pages. */
|
|
4
|
+
type PaginationEntry = number | "gap";
|
|
5
|
+
/**
|
|
6
|
+
* Which page buttons to draw for a given position in a run of pages.
|
|
7
|
+
*
|
|
8
|
+
* Exported and pure so the layout rule can be unit-tested on its own — the
|
|
9
|
+
* awkward cases (a window that runs off either end, a gap standing in for one
|
|
10
|
+
* page) are arithmetic, not rendering, and every pager that gets them wrong
|
|
11
|
+
* gets them wrong here.
|
|
12
|
+
*
|
|
13
|
+
* The window keeps a constant width as it travels: near either end the missing
|
|
14
|
+
* siblings are spent on the near side instead, so the control does not change
|
|
15
|
+
* size as the user pages through. A gap that would hide exactly one page is
|
|
16
|
+
* replaced by that page, because an ellipsis costs the same room as the number
|
|
17
|
+
* it is hiding.
|
|
18
|
+
*
|
|
19
|
+
* @param page The current page, 1-based.
|
|
20
|
+
* @param pageCount How many pages there are in total.
|
|
21
|
+
* @param siblingCount How many pages to show either side of the current one.
|
|
22
|
+
* @returns Page numbers and `"gap"` markers, in display order.
|
|
23
|
+
* @example
|
|
24
|
+
* paginationRange(10, 20) // [1, "gap", 9, 10, 11, "gap", 20]
|
|
25
|
+
*/
|
|
26
|
+
declare function paginationRange(page: number, pageCount: number, siblingCount?: number): PaginationEntry[];
|
|
27
|
+
interface PaginationProps extends Omit<React.ComponentPropsWithoutRef<"nav">, "onChange" | "children"> {
|
|
28
|
+
/** The current page, 1-based. */
|
|
29
|
+
page: number;
|
|
30
|
+
/** How many pages there are in total. */
|
|
31
|
+
pageCount: number;
|
|
32
|
+
/** Called with the page a control asked for. Always within `1..pageCount`. */
|
|
33
|
+
onPageChange: (page: number) => void;
|
|
34
|
+
/** How many pages to show either side of the current one. Defaults to `1`. */
|
|
35
|
+
siblingCount?: number;
|
|
36
|
+
/** The nav's accessible name. Defaults to `"Pagination"`. */
|
|
37
|
+
label?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The pager: previous, a window of page numbers, next.
|
|
41
|
+
*
|
|
42
|
+
* Renders nothing at all when there is a single page — a control offering no
|
|
43
|
+
* choice is chrome that says "there is more here" when there is not.
|
|
44
|
+
*
|
|
45
|
+
* Every page number is a real button with a spoken name ("Page 3"), because the
|
|
46
|
+
* bare numeral is meaningless read aloud out of context; the ellipses are
|
|
47
|
+
* `aria-hidden` for the same reason breadcrumb separators are.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* <Pagination page={page} pageCount={12} onPageChange={setPage} />
|
|
51
|
+
*/
|
|
52
|
+
declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
|
|
53
|
+
//#endregion
|
|
54
|
+
export { Pagination, PaginationEntry, PaginationProps, paginationRange };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { IconButton } from "../primitives/icon-button.js";
|
|
4
|
+
import { ChevronLeftGlyph, ChevronRightGlyph } from "./_glyphs.js";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/layout/pagination.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Which page buttons to draw for a given position in a run of pages.
|
|
10
|
+
*
|
|
11
|
+
* Exported and pure so the layout rule can be unit-tested on its own — the
|
|
12
|
+
* awkward cases (a window that runs off either end, a gap standing in for one
|
|
13
|
+
* page) are arithmetic, not rendering, and every pager that gets them wrong
|
|
14
|
+
* gets them wrong here.
|
|
15
|
+
*
|
|
16
|
+
* The window keeps a constant width as it travels: near either end the missing
|
|
17
|
+
* siblings are spent on the near side instead, so the control does not change
|
|
18
|
+
* size as the user pages through. A gap that would hide exactly one page is
|
|
19
|
+
* replaced by that page, because an ellipsis costs the same room as the number
|
|
20
|
+
* it is hiding.
|
|
21
|
+
*
|
|
22
|
+
* @param page The current page, 1-based.
|
|
23
|
+
* @param pageCount How many pages there are in total.
|
|
24
|
+
* @param siblingCount How many pages to show either side of the current one.
|
|
25
|
+
* @returns Page numbers and `"gap"` markers, in display order.
|
|
26
|
+
* @example
|
|
27
|
+
* paginationRange(10, 20) // [1, "gap", 9, 10, 11, "gap", 20]
|
|
28
|
+
*/
|
|
29
|
+
function paginationRange(page, pageCount, siblingCount = 1) {
|
|
30
|
+
if (pageCount < 1) return [];
|
|
31
|
+
const run = (from, to) => Array.from({ length: Math.max(to - from + 1, 0) }, (_, index) => from + index);
|
|
32
|
+
if (pageCount <= siblingCount * 2 + 5) return run(1, pageCount);
|
|
33
|
+
const left = Math.max(page - siblingCount, 1);
|
|
34
|
+
const right = Math.min(page + siblingCount, pageCount);
|
|
35
|
+
const gapLeft = left > 2;
|
|
36
|
+
const gapRight = right < pageCount - 1;
|
|
37
|
+
const edgeRun = siblingCount * 2 + 3;
|
|
38
|
+
const entries = gapLeft ? gapRight ? [
|
|
39
|
+
1,
|
|
40
|
+
"gap",
|
|
41
|
+
...run(left, right),
|
|
42
|
+
"gap",
|
|
43
|
+
pageCount
|
|
44
|
+
] : [
|
|
45
|
+
1,
|
|
46
|
+
"gap",
|
|
47
|
+
...run(pageCount - edgeRun + 1, pageCount)
|
|
48
|
+
] : [
|
|
49
|
+
...run(1, edgeRun),
|
|
50
|
+
"gap",
|
|
51
|
+
pageCount
|
|
52
|
+
];
|
|
53
|
+
return entries.map((entry, index) => {
|
|
54
|
+
if (entry !== "gap") return entry;
|
|
55
|
+
const before = entries[index - 1];
|
|
56
|
+
const after = entries[index + 1];
|
|
57
|
+
return typeof before === "number" && typeof after === "number" && after - before === 2 ? before + 1 : entry;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* One page button: a square on the short rung of the control ladder, tinted
|
|
62
|
+
* with `accent-soft` when it is the page you are on — never a solid accent
|
|
63
|
+
* fill, which at console density reads as a second, louder button.
|
|
64
|
+
*/
|
|
65
|
+
const PAGE_BUTTON_CLASSES = "inline-flex h-control-sm min-w-control-sm cursor-pointer items-center justify-center rounded-(--radius-control) border-0 bg-transparent px-(--cue-space-2) font-mono text-(length:--cue-text-ui) tabular-nums text-fg-muted transition-colors duration-150 outline-none select-none hover:bg-surface-2 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-1 focus-visible:outline-accent";
|
|
66
|
+
/**
|
|
67
|
+
* The pager: previous, a window of page numbers, next.
|
|
68
|
+
*
|
|
69
|
+
* Renders nothing at all when there is a single page — a control offering no
|
|
70
|
+
* choice is chrome that says "there is more here" when there is not.
|
|
71
|
+
*
|
|
72
|
+
* Every page number is a real button with a spoken name ("Page 3"), because the
|
|
73
|
+
* bare numeral is meaningless read aloud out of context; the ellipses are
|
|
74
|
+
* `aria-hidden` for the same reason breadcrumb separators are.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* <Pagination page={page} pageCount={12} onPageChange={setPage} />
|
|
78
|
+
*/
|
|
79
|
+
const Pagination = React.forwardRef(function Pagination({ className, page, pageCount, onPageChange, siblingCount = 1, label = "Pagination", ...elementProps }, ref) {
|
|
80
|
+
if (pageCount <= 1) return null;
|
|
81
|
+
const entries = paginationRange(page, pageCount, siblingCount);
|
|
82
|
+
return /* @__PURE__ */ jsxs("nav", {
|
|
83
|
+
ref,
|
|
84
|
+
"data-slot": "pagination",
|
|
85
|
+
"aria-label": label,
|
|
86
|
+
className: cn("flex items-center gap-(--cue-space-1)", className),
|
|
87
|
+
...elementProps,
|
|
88
|
+
children: [
|
|
89
|
+
/* @__PURE__ */ jsx(IconButton, {
|
|
90
|
+
"aria-label": "Previous page",
|
|
91
|
+
icon: ChevronLeftGlyph,
|
|
92
|
+
size: "sm",
|
|
93
|
+
disabled: page <= 1,
|
|
94
|
+
onClick: () => onPageChange(page - 1)
|
|
95
|
+
}),
|
|
96
|
+
entries.map((entry, index) => entry === "gap" ? /* @__PURE__ */ jsx("span", {
|
|
97
|
+
"data-slot": "pagination-gap",
|
|
98
|
+
"aria-hidden": "true",
|
|
99
|
+
className: "inline-flex h-control-sm items-center justify-center px-(--cue-space-1) font-mono text-(length:--cue-text-ui) text-fg-subtle select-none",
|
|
100
|
+
children: "…"
|
|
101
|
+
}, `gap-${index}`) : /* @__PURE__ */ jsx("button", {
|
|
102
|
+
type: "button",
|
|
103
|
+
"data-slot": "pagination-page",
|
|
104
|
+
"aria-label": `Page ${entry}`,
|
|
105
|
+
"aria-current": entry === page ? "page" : void 0,
|
|
106
|
+
onClick: () => onPageChange(entry),
|
|
107
|
+
className: cn(PAGE_BUTTON_CLASSES, entry === page ? "bg-accent-soft text-accent" : null),
|
|
108
|
+
children: entry
|
|
109
|
+
}, entry)),
|
|
110
|
+
/* @__PURE__ */ jsx(IconButton, {
|
|
111
|
+
"aria-label": "Next page",
|
|
112
|
+
icon: ChevronRightGlyph,
|
|
113
|
+
size: "sm",
|
|
114
|
+
disabled: page >= pageCount,
|
|
115
|
+
onClick: () => onPageChange(page + 1)
|
|
116
|
+
})
|
|
117
|
+
]
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
//#endregion
|
|
121
|
+
export { Pagination, paginationRange };
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { PreviewGround } from "./_ground.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { StyleSet } from "@cueplusplus/tokens";
|
|
4
|
+
import { Density as Density$1, FontName, Mode, ThemeName } from "@cueplusplus/theme-base";
|
|
5
|
+
//#region src/layout/preview.d.ts
|
|
6
|
+
/** Where the chrome sits and what the stage's ground is. */
|
|
7
|
+
type PreviewPresentation = "panel" | "frame";
|
|
8
|
+
/** Which edges of the stage a reader may drag. */
|
|
9
|
+
type PreviewAxis = "x" | "y" | "both";
|
|
10
|
+
/** How far a resizable stage may go, in CSS pixels, and along which axes. */
|
|
11
|
+
interface PreviewResizeOptions {
|
|
12
|
+
/** Which axes resize. Defaults to `"both"`; `"x"` or `"y"` narrows it to one grip. */
|
|
13
|
+
axis?: PreviewAxis;
|
|
14
|
+
/** The narrowest the stage may be made, in px. Defaults to `160`. */
|
|
15
|
+
minWidth?: number;
|
|
16
|
+
/**
|
|
17
|
+
* The widest the stage may be made, in px. Defaults to `1280`. The bound in
|
|
18
|
+
* force is the smaller of this and the frame's own width, measured live, so a
|
|
19
|
+
* stage never outgrows the frame — or the grid track — it sits in.
|
|
20
|
+
*/
|
|
21
|
+
maxWidth?: number;
|
|
22
|
+
/** The shortest the stage may be made, in px. Defaults to `96`. */
|
|
23
|
+
minHeight?: number;
|
|
24
|
+
/** The tallest the stage may be made, in px. Defaults to `960`. */
|
|
25
|
+
maxHeight?: number;
|
|
26
|
+
}
|
|
27
|
+
interface PreviewProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
|
|
28
|
+
/** The specimen. It renders on the stage, inside whatever scope the stage sets. */
|
|
29
|
+
children: React.ReactNode;
|
|
30
|
+
/**
|
|
31
|
+
* The frame's accessible name — "Button preview". Required: a frame that holds
|
|
32
|
+
* controls and has no name is a group nobody can find.
|
|
33
|
+
*/
|
|
34
|
+
label: string;
|
|
35
|
+
/**
|
|
36
|
+
* A theme for the stage only. Unset, the stage inherits — no attribute is
|
|
37
|
+
* emitted at all. **Naming a theme does not load it**: the stage is scoped to
|
|
38
|
+
* `[data-theme="<name>"]`, and that theme's stylesheet must already be on the
|
|
39
|
+
* page (`@cueplusplus/theme-<name>/theme.css`). The tools, the footer and
|
|
40
|
+
* anything they open stay in the page's theme. With no `mode`, the stage
|
|
41
|
+
* repeats the page's mode beside the theme — `"system"` included — so a light
|
|
42
|
+
* page's stage paints the theme's light block, not its dark one, and agrees
|
|
43
|
+
* with every overlay opened on it.
|
|
44
|
+
*/
|
|
45
|
+
theme?: ThemeName;
|
|
46
|
+
/**
|
|
47
|
+
* Dark, light or system, for the stage only. A theme's light block is the
|
|
48
|
+
* compound selector `[data-theme][data-mode]`, so with no `theme` the stage
|
|
49
|
+
* restates the page's theme beside the mode; outside any `ThemeProvider` there
|
|
50
|
+
* is no theme to restate and the mode alone changes nothing. A stage
|
|
51
|
+
* `"system"` is stamped as it is, so the stylesheet's `[data-mode="system"]`
|
|
52
|
+
* block follows the OS; `useTheme().resolvedMode` read on the stage reports
|
|
53
|
+
* the page's resolved mode.
|
|
54
|
+
*/
|
|
55
|
+
mode?: Mode;
|
|
56
|
+
/** A rung of the density ladder for the stage only, as a `<Density>` island would set it. */
|
|
57
|
+
density?: Density$1;
|
|
58
|
+
/** A font pairing for the stage only, as `data-font`. Portals still follow the root's pairing. */
|
|
59
|
+
font?: FontName;
|
|
60
|
+
/**
|
|
61
|
+
* A style set for the stage only: `console`, `editorial` or `marketing`.
|
|
62
|
+
*
|
|
63
|
+
* Unset, the stage inherits and **no attribute is emitted at all** — the same
|
|
64
|
+
* rule the other four follow here. Unlike `theme`, naming one loads nothing
|
|
65
|
+
* and needs nothing: the three sets are emitted by `@cueplusplus/tokens` into
|
|
66
|
+
* the stylesheet every consumer already imports, so a stage is scoped to
|
|
67
|
+
* `[data-style="<name>"]` and the block is on the page by construction.
|
|
68
|
+
*
|
|
69
|
+
* The set is republished to React as well as stamped, so a popover opened on
|
|
70
|
+
* the stage follows the stage rather than the page — a portal mounts on
|
|
71
|
+
* `<body>` and inherits nothing from the stage's DOM.
|
|
72
|
+
*/
|
|
73
|
+
styleSet?: StyleSet;
|
|
74
|
+
/**
|
|
75
|
+
* Resize the stage by dragging or with the keyboard. `true` gives both axes
|
|
76
|
+
* inside the default bounds (160–1280 px wide, 96–960 px tall); an object
|
|
77
|
+
* narrows the axis or moves the bounds. The width never outgrows the frame:
|
|
78
|
+
* its bound in force is the smaller of `maxWidth` and the frame's own width,
|
|
79
|
+
* observed with a `ResizeObserver`, so a Preview in a grid track stays inside
|
|
80
|
+
* it as the viewport changes. The height is bounded by `maxHeight` alone, and
|
|
81
|
+
* a taller stage grows its frame. Unset, the stage is fixed: no grips, and
|
|
82
|
+
* nothing measured or observed.
|
|
83
|
+
*
|
|
84
|
+
* A resizable frame fills its container's width (`w-full`), because the room
|
|
85
|
+
* it measures has to be its container's. In a flex row or a centred column a
|
|
86
|
+
* frame sized by its content would measure its own stage, and a stage bounded
|
|
87
|
+
* by itself can only shrink, with each step lowering the ceiling. A fixed
|
|
88
|
+
* Preview keeps sizing to its content; `className` can still set a width.
|
|
89
|
+
*/
|
|
90
|
+
resizable?: boolean | PreviewResizeOptions;
|
|
91
|
+
/** The top-right slot — by convention a row of `IconButton`s. Drawn outside the stage. */
|
|
92
|
+
tools?: React.ReactNode;
|
|
93
|
+
/** The strip under the stage: the thin text and the way out. Drawn outside the stage. */
|
|
94
|
+
footer?: React.ReactNode;
|
|
95
|
+
/**
|
|
96
|
+
* `"panel"` (the default, and what every existing caller gets): a bordered
|
|
97
|
+
* card, `tools` floating at the stage's top right, `footer` under it.
|
|
98
|
+
* `"frame"`: a design-canvas frame — the label row drawn *above* the stage
|
|
99
|
+
* rather than over it, four crosshair corners at the stage's outer corners,
|
|
100
|
+
* and a transparent stage so whatever the frame sits on shows through.
|
|
101
|
+
*/
|
|
102
|
+
presentation?: PreviewPresentation;
|
|
103
|
+
/**
|
|
104
|
+
* The label row's leading slot, drawn only in `"frame"`. A plain node, or a
|
|
105
|
+
* control: apps/docs passes a `DropdownMenu` whose trigger is the frame's
|
|
106
|
+
* name. Unset, the row opens with `label` as text.
|
|
107
|
+
*
|
|
108
|
+
* A slot and not a built-in menu, because `Preview` imports no overlay today
|
|
109
|
+
* and `/` draws seventeen of it under a 766-byte headroom.
|
|
110
|
+
*/
|
|
111
|
+
name?: React.ReactNode;
|
|
112
|
+
/** The count drawn after the name — how many items this frame holds. Frame only. */
|
|
113
|
+
count?: number;
|
|
114
|
+
/**
|
|
115
|
+
* The stage's ground. Defaults to `"dots"` in `"panel"` and `"none"` in
|
|
116
|
+
* `"frame"`, where the canvas under it already carries a ground and two dot
|
|
117
|
+
* grids at different pitches read as a moiré.
|
|
118
|
+
*/
|
|
119
|
+
ground?: PreviewGround;
|
|
120
|
+
/**
|
|
121
|
+
* Whether `Frames.Item` captions are shown inside this stage. Defaults to
|
|
122
|
+
* `true`. Off is paint and nothing more: a hidden caption is still rendered,
|
|
123
|
+
* still in the tree and still read aloud (§4.1 Decision 4).
|
|
124
|
+
*/
|
|
125
|
+
captions?: boolean;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* A card for one component: a stage that is its own theme island, a slot for
|
|
129
|
+
* tools at the top right, and a footer.
|
|
130
|
+
*
|
|
131
|
+
* **Two presentations, one stage.** `"panel"`, the default and what every
|
|
132
|
+
* existing caller gets, is that card: a border, a fill, a dot grid under the
|
|
133
|
+
* specimen, and the tools floating over the stage's top right. `"frame"` is a
|
|
134
|
+
* design-canvas frame — no card, no border, no fill; the name, the count and
|
|
135
|
+
* the tools sit in a row *above* the stage rather than over it, four crosshairs
|
|
136
|
+
* mark the stage's outer corners, and the stage paints nothing by default, so
|
|
137
|
+
* whatever canvas the frame sits on shows through. Everything below holds in
|
|
138
|
+
* both.
|
|
139
|
+
*
|
|
140
|
+
* **The stage is the island; the chrome is not.** `theme`, `mode`, `density`,
|
|
141
|
+
* `font` and `styleSet` land on the stage element only, and the stage
|
|
142
|
+
* republishes the theme, density and style-set contexts so an overlay opened on
|
|
143
|
+
* it follows it. The tools, the footer, the grips and anything they open stay
|
|
144
|
+
* in the scope around the Preview — a `terminal` preview's own controls do not
|
|
145
|
+
* turn cyan. With none of the five set, the stage carries no attribute and
|
|
146
|
+
* costs what a `<div>` costs. A stage `theme` with no `mode` repeats the page's
|
|
147
|
+
* mode beside it.
|
|
148
|
+
*
|
|
149
|
+
* **`resizable` is handles of its own**, both axes by default: an edge grip per
|
|
150
|
+
* axis that is a keyboard-operable `separator` valued in pixels, and a corner
|
|
151
|
+
* grip for the pointer. Double-click resets an axis. The width never outgrows
|
|
152
|
+
* the frame: its bound in force is the frame's own width, observed live, when
|
|
153
|
+
* that is under `maxWidth`. Not `Resizable`, which is split panes on an
|
|
154
|
+
* optional peer.
|
|
155
|
+
*
|
|
156
|
+
* Props, not a compound: one stage and its slots, each saying what it is.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* <Preview label="Button preview" tools={<IconButton aria-label="Configure Button" icon={Wrench} />}>
|
|
160
|
+
* <Button variant="primary">Take cue</Button>
|
|
161
|
+
* </Preview>
|
|
162
|
+
* @example
|
|
163
|
+
* <Preview label="Chip preview" theme="terminal" density="compact" resizable>
|
|
164
|
+
* <Chip tone="accent">Standby</Chip>
|
|
165
|
+
* </Preview>
|
|
166
|
+
* @example
|
|
167
|
+
* <Preview label="Button" presentation="frame" count={3}>
|
|
168
|
+
* <Button variant="primary">Take cue</Button>
|
|
169
|
+
* </Preview>
|
|
170
|
+
* @example
|
|
171
|
+
* <Preview label="Editorial band" styleSet="editorial" presentation="frame">
|
|
172
|
+
* <Container className="max-w-(--cue-measure-prose)">…</Container>
|
|
173
|
+
* </Preview>
|
|
174
|
+
*/
|
|
175
|
+
declare const Preview: React.ForwardRefExoticComponent<PreviewProps & React.RefAttributes<HTMLDivElement>>;
|
|
176
|
+
//#endregion
|
|
177
|
+
export { Preview, PreviewAxis, type PreviewGround, PreviewPresentation, PreviewProps, PreviewResizeOptions };
|