@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,37 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/layout/description-list.tsx
|
|
5
|
+
const LAYOUTS = {
|
|
6
|
+
inline: "grid grid-cols-[max-content_minmax(0,1fr)] gap-x-(--cue-space-5) gap-y-(--cue-space-2)",
|
|
7
|
+
stacked: "flex flex-col gap-(--cue-space-3)"
|
|
8
|
+
};
|
|
9
|
+
/** The `<dl>` family: {@link DescriptionListRoot}, `Term` and `Detail`. */
|
|
10
|
+
const DescriptionList = {
|
|
11
|
+
Root: React.forwardRef(function DescriptionListRoot({ className, layout = "inline", ...elementProps }, ref) {
|
|
12
|
+
return /* @__PURE__ */ jsx("dl", {
|
|
13
|
+
ref,
|
|
14
|
+
"data-slot": "description-list",
|
|
15
|
+
className: cn(LAYOUTS[layout], className),
|
|
16
|
+
...elementProps
|
|
17
|
+
});
|
|
18
|
+
}),
|
|
19
|
+
Term: React.forwardRef(function DescriptionListTerm({ className, ...elementProps }, ref) {
|
|
20
|
+
return /* @__PURE__ */ jsx("dt", {
|
|
21
|
+
ref,
|
|
22
|
+
"data-slot": "description-list-term",
|
|
23
|
+
className: cn("font-mono text-(length:--cue-text-label) tracking-[0.15em] text-fg-subtle uppercase", className),
|
|
24
|
+
...elementProps
|
|
25
|
+
});
|
|
26
|
+
}),
|
|
27
|
+
Detail: React.forwardRef(function DescriptionListDetail({ className, ...elementProps }, ref) {
|
|
28
|
+
return /* @__PURE__ */ jsx("dd", {
|
|
29
|
+
ref,
|
|
30
|
+
"data-slot": "description-list-detail",
|
|
31
|
+
className: cn("m-0 font-mono text-(length:--cue-text-ui) text-fg", className),
|
|
32
|
+
...elementProps
|
|
33
|
+
});
|
|
34
|
+
})
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
export { DescriptionList };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { PreviewGround } from "./_ground.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/layout/frames.d.ts
|
|
4
|
+
/** How tall the canvas stands. A design board is short and wide on purpose. */
|
|
5
|
+
type FramesHeight = "short" | "tall";
|
|
6
|
+
interface FramesRootProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
|
|
7
|
+
/** The frames. Anything — this never inspects them. */
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* The canvas's accessible name — "Button frames". Required: the canvas is a
|
|
11
|
+
* focusable scroll region, and a scroll region with no name is one a screen
|
|
12
|
+
* reader announces as nothing.
|
|
13
|
+
*/
|
|
14
|
+
label: string;
|
|
15
|
+
/** `"short"` is 18.5rem, `"tall"` 27rem. A CSS length in `style` overrides both. */
|
|
16
|
+
height?: FramesHeight;
|
|
17
|
+
/** The canvas ground. Defaults to `"dots"`. */
|
|
18
|
+
ground?: PreviewGround;
|
|
19
|
+
/** The line in the bottom-right corner — "drag to pan · 8 frames". Unset, none is drawn. */
|
|
20
|
+
hint?: React.ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Drag-to-pan with the pointer. Defaults to `true`. A drag that starts on a
|
|
23
|
+
* control is never a pan, so a frame's own controls stay usable — and "on a
|
|
24
|
+
* control" counts the control's own contents: the words inside a
|
|
25
|
+
* `role="menuitem"` row, the icon inside a `button`. A drag inside a
|
|
26
|
+
* role-bearing box that is not itself a control — a `role="group"` frame, a
|
|
27
|
+
* `role="region"` — still pans, because a frame is such a box and a board is
|
|
28
|
+
* mostly frames. Only the primary button drags; `false` binds no pointer
|
|
29
|
+
* listener at all; and the keyboard scrolls the canvas either way.
|
|
30
|
+
*/
|
|
31
|
+
pan?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface FramesItemProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
34
|
+
/** The specimen. */
|
|
35
|
+
children: React.ReactNode;
|
|
36
|
+
/** The line under it. Hidden — not removed — when the frame sets `captions={false}`. */
|
|
37
|
+
caption?: React.ReactNode;
|
|
38
|
+
/** Draws the selection outline the frame gives the item a reader is inspecting. */
|
|
39
|
+
selected?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A design canvas: frames side by side, each holding one axis of one component.
|
|
43
|
+
*
|
|
44
|
+
* `Frames.Root` is the canvas — short, wide, scrollable sideways, focusable,
|
|
45
|
+
* and pannable with the pointer. `Frames.Item` is one captioned cell, and it is
|
|
46
|
+
* used **inside a `Preview`** rather than inside the Root. The two are apart
|
|
47
|
+
* because that is how they are used, and a props-only API cannot say it.
|
|
48
|
+
*
|
|
49
|
+
* **The canvas knows nothing about its children.** It does not count them, does
|
|
50
|
+
* not index them and does not select one; `hint` is where a caller puts what it
|
|
51
|
+
* knows. A canvas that knew its frames would be a manifest API, and this is a
|
|
52
|
+
* slot API.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* <Frames.Root label="Button frames" hint="drag to pan · 3 frames">
|
|
56
|
+
* <Preview presentation="frame" label="Tone" count={3} name={<ToneMenu />}>
|
|
57
|
+
* <div className="flex flex-wrap items-end gap-(--cue-space-6)">
|
|
58
|
+
* <Frames.Item caption="accent"><Button tone="accent">Take cue</Button></Frames.Item>
|
|
59
|
+
* <Frames.Item caption="ok"><Button tone="ok">Take cue</Button></Frames.Item>
|
|
60
|
+
* <Frames.Item caption="warn"><Button tone="warn">Take cue</Button></Frames.Item>
|
|
61
|
+
* </div>
|
|
62
|
+
* </Preview>
|
|
63
|
+
* </Frames.Root>
|
|
64
|
+
*/
|
|
65
|
+
declare const Frames: {
|
|
66
|
+
Root: React.ForwardRefExoticComponent<FramesRootProps & React.RefAttributes<HTMLDivElement>>;
|
|
67
|
+
Item: React.ForwardRefExoticComponent<FramesItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
68
|
+
};
|
|
69
|
+
//#endregion
|
|
70
|
+
export { Frames, FramesHeight, FramesItemProps, FramesRootProps };
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { GROUND_CLASSES } from "./_ground.js";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/layout/frames.tsx
|
|
7
|
+
/** One arrow press where nothing on the page has declared the space ladder's top rung. */
|
|
8
|
+
const STEP_FALLBACK = 32;
|
|
9
|
+
/** What a rem is worth where no document can be asked — `use-density.ts`'s own assumption. */
|
|
10
|
+
const ASSUMED_ROOT_FONT_SIZE = 16;
|
|
11
|
+
/** The root's font size, for a rung declared in rem. */
|
|
12
|
+
function rootFontSize() {
|
|
13
|
+
if (typeof document === "undefined") return ASSUMED_ROOT_FONT_SIZE;
|
|
14
|
+
const size = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
15
|
+
return Number.isFinite(size) && size > 0 ? size : ASSUMED_ROOT_FONT_SIZE;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* One rung of `--cue-space-8` in CSS pixels, read off the canvas itself.
|
|
19
|
+
*
|
|
20
|
+
* Off the canvas and not off the root, because the rung is a density token and
|
|
21
|
+
* a canvas may sit inside a `<Density>` island — a compact board steps by a
|
|
22
|
+
* compact rung, which is the whole point of spending a token instead of a
|
|
23
|
+
* number. Read at the keypress rather than cached: the density under it can
|
|
24
|
+
* change between two presses and nothing re-renders when it does.
|
|
25
|
+
*
|
|
26
|
+
* `null` is not a return value here. A page that declared nothing — a consumer
|
|
27
|
+
* who imported no stylesheet, a server's first paint, jsdom — still has to move
|
|
28
|
+
* when a reader presses an arrow, so there is a fallback and it is a number
|
|
29
|
+
* this file owns.
|
|
30
|
+
*/
|
|
31
|
+
function rungOf(canvas) {
|
|
32
|
+
if (typeof window === "undefined") return STEP_FALLBACK;
|
|
33
|
+
const declared = window.getComputedStyle(canvas).getPropertyValue("--cue-space-8").trim();
|
|
34
|
+
const length = Number.parseFloat(declared);
|
|
35
|
+
if (!Number.isFinite(length) || length <= 0) return STEP_FALLBACK;
|
|
36
|
+
return declared.endsWith("rem") ? length * rootFontSize() : length;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Where a drag may not start: the elements whose whole job is to be pressed.
|
|
40
|
+
*
|
|
41
|
+
* Matched with `closest` and not on the target alone, because a control in this
|
|
42
|
+
* house is usually a box drawn round something else — an icon, a span, a label.
|
|
43
|
+
* A drag that starts on the icon started on the button, and a pan that began
|
|
44
|
+
* there would take the pointer capture with it and the press would never land.
|
|
45
|
+
*
|
|
46
|
+
* **The `[role=…]` half is the same sentence about controls this library draws
|
|
47
|
+
* out of a `div`.** A `DropdownMenu.Item` is a `<div role="menuitem">` whose
|
|
48
|
+
* label is a `<span>` inside it; an `option`, a `tab`, a `treeitem` are all that
|
|
49
|
+
* shape. Without them here a reader who clicked a menu row *on its words* had
|
|
50
|
+
* the canvas take the pointer capture and the `click` retargeted away — the row
|
|
51
|
+
* worked from the keyboard and worked on its padding, and did nothing where the
|
|
52
|
+
* text was. That was reported against the frame name menu and is a defect of
|
|
53
|
+
* this predicate rather than of that menu.
|
|
54
|
+
*
|
|
55
|
+
* The list is ARIA's **standalone widget roles** — the ones that *are* a control
|
|
56
|
+
* rather than a box holding controls, so a composite (`menu`, `listbox`,
|
|
57
|
+
* `tablist`, `tree`, `radiogroup`, `toolbar`, `grid`) is deliberately absent:
|
|
58
|
+
* those are chrome, and a drag on a menu's own padding is a pan. Three
|
|
59
|
+
* standalone ones are absent too, each for its own reason — `progressbar` is
|
|
60
|
+
* read and never operated, `tabpanel` is the content a `tab` switches to rather
|
|
61
|
+
* than the thing pressed, and `gridcell` is a box holding content, so a drag
|
|
62
|
+
* across a table inside a frame stays a pan.
|
|
63
|
+
*
|
|
64
|
+
* An allowlist and not a denylist of container roles, because the two fail in
|
|
65
|
+
* opposite directions: a role missing from this list leaves the old behaviour
|
|
66
|
+
* (the element itself is still matched by {@link ROLE_BEARING}), while a
|
|
67
|
+
* container role missing from a denylist would silently stop the board panning.
|
|
68
|
+
*/
|
|
69
|
+
const CONTROLS = "button, a, input, select, textarea, [role=button], [role=checkbox], [role=link], [role=menuitem], [role=menuitemcheckbox], [role=menuitemradio], [role=option], [role=radio], [role=scrollbar], [role=searchbox], [role=separator], [role=slider], [role=spinbutton], [role=switch], [role=tab], [role=textbox], [role=treeitem]";
|
|
70
|
+
/**
|
|
71
|
+
* And the element directly under the pointer, if it bears a role of its own.
|
|
72
|
+
*
|
|
73
|
+
* On the target alone — `matches` and never `closest` — and that is the whole
|
|
74
|
+
* difference between a canvas that pans and one that only offers to. A
|
|
75
|
+
* `Preview` in its frame presentation is a `role="group"` and this canvas is a
|
|
76
|
+
* `role="region"`, so nearly every point on a board has a role-bearing
|
|
77
|
+
* ancestor. A board is mostly frames, and "drag to pan" that worked only in the
|
|
78
|
+
* gaps between them would be a hint that lies. So a role-bearing *ancestor* is
|
|
79
|
+
* a frame's chrome and a drag there is a pan; only a role-bearing element under
|
|
80
|
+
* the pointer itself is something to press rather than something to grab.
|
|
81
|
+
*
|
|
82
|
+
* That is still true, and it is not the whole rule: the ancestors that are
|
|
83
|
+
* *controls* rather than chrome are named in {@link CONTROLS} and matched with
|
|
84
|
+
* `closest` there. This line stays `matches` for everything else, which is what
|
|
85
|
+
* keeps a `role="group"` frame a thing to grab.
|
|
86
|
+
*/
|
|
87
|
+
const ROLE_BEARING = "[role]";
|
|
88
|
+
/** Whether a pointer that went down here is pressing something rather than grabbing the board. */
|
|
89
|
+
function isControl(target, canvas) {
|
|
90
|
+
if (target === canvas) return false;
|
|
91
|
+
return target.closest(CONTROLS) !== null || target.matches(ROLE_BEARING);
|
|
92
|
+
}
|
|
93
|
+
/** Static class per height, off the two the spec measured. Tailwind scans text. */
|
|
94
|
+
const HEIGHT_CLASSES = {
|
|
95
|
+
short: "h-[18.5rem]",
|
|
96
|
+
tall: "h-[27rem]"
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* The box: the height, the ground, the border, and the positioning context the
|
|
100
|
+
* hint needs.
|
|
101
|
+
*
|
|
102
|
+
* Two elements and not one, because the hint has to stay in the corner while
|
|
103
|
+
* the frames move under it. A hint absolutely positioned inside the scroller
|
|
104
|
+
* would slide away with the first pan; one positioned against a box the
|
|
105
|
+
* scroller fills stays where a reader left it. The ground is on the box for the
|
|
106
|
+
* same reason — a board's grid does not move with its art.
|
|
107
|
+
*/
|
|
108
|
+
const ROOT_CLASS = "relative min-w-0 overflow-hidden rounded-(--radius-surface) border border-border";
|
|
109
|
+
/**
|
|
110
|
+
* The scroller: a row of frames, sideways only, with a rung of the space
|
|
111
|
+
* ladder's top between them.
|
|
112
|
+
*
|
|
113
|
+
* `overflow-y: hidden` is the design and not an oversight — the board is "not
|
|
114
|
+
* very high, not full screen", and a canvas that scrolled both ways would be a
|
|
115
|
+
* viewport a reader can get lost in. `scroll-smooth` pairs with
|
|
116
|
+
* `motion-reduce:scroll-auto` so the preference is honoured declaratively;
|
|
117
|
+
* there is no frame loop here for `reduced-motion.test.ts` to find, and there
|
|
118
|
+
* must not be.
|
|
119
|
+
*/
|
|
120
|
+
const CANVAS_CLASS = "flex h-full min-w-0 items-start gap-(--cue-space-8) overflow-x-auto overflow-y-hidden scroll-smooth p-(--cue-space-6) outline-none motion-reduce:scroll-auto focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent";
|
|
121
|
+
/** The affordance, and only where there is something to afford. */
|
|
122
|
+
const PANNABLE_CLASS = "cursor-grab";
|
|
123
|
+
/**
|
|
124
|
+
* While panning: the grabbing cursor, no text selection, and **no smooth
|
|
125
|
+
* scrolling**. `scroll-behavior: smooth` animates every `scrollLeft` write, and
|
|
126
|
+
* a drag writes one per pointer move — the canvas would lag the pointer by a
|
|
127
|
+
* whole animation. `twMerge` resolves this against `scroll-smooth` above,
|
|
128
|
+
* last one wins.
|
|
129
|
+
*/
|
|
130
|
+
const PANNING_CLASS = "cursor-grabbing scroll-auto select-none";
|
|
131
|
+
/** The line in the corner. `pointer-events-none`, or it would swallow the drag it describes. */
|
|
132
|
+
const HINT_CLASS = "pointer-events-none absolute right-(--cue-space-4) bottom-(--cue-space-3) z-10 font-mono text-(length:--cue-text-micro) text-fg-subtle";
|
|
133
|
+
/**
|
|
134
|
+
* The canvas: a short, wide, focusable scroll region that holds frames.
|
|
135
|
+
*
|
|
136
|
+
* **It knows nothing about its children.** It does not count them, index them
|
|
137
|
+
* or select one — a canvas that knew its frames would be a manifest API, and
|
|
138
|
+
* this is a slot API. `hint` is where a caller puts the count it knows and this
|
|
139
|
+
* does not.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* <Frames.Root label="Button frames" hint="drag to pan · 8 frames">
|
|
143
|
+
* <Preview presentation="frame" label="Tone" count={4}>…</Preview>
|
|
144
|
+
* </Frames.Root>
|
|
145
|
+
*/
|
|
146
|
+
const FramesRoot = React.forwardRef(function FramesRoot({ children, label, height = "short", ground = "dots", hint, pan = true, className, ...elementProps }, ref) {
|
|
147
|
+
const drag = React.useRef(null);
|
|
148
|
+
const canvasRef = React.useRef(null);
|
|
149
|
+
const [panning, setPanning] = React.useState(false);
|
|
150
|
+
React.useEffect(() => {
|
|
151
|
+
if (pan) return;
|
|
152
|
+
const started = drag.current;
|
|
153
|
+
if (started === null) return;
|
|
154
|
+
canvasRef.current?.releasePointerCapture?.(started.id);
|
|
155
|
+
drag.current = null;
|
|
156
|
+
setPanning(false);
|
|
157
|
+
}, [pan]);
|
|
158
|
+
const scroll = (event) => {
|
|
159
|
+
if (event.defaultPrevented || event.target !== event.currentTarget) return;
|
|
160
|
+
const canvas = event.currentTarget;
|
|
161
|
+
let next = null;
|
|
162
|
+
if (event.key === "ArrowRight") next = canvas.scrollLeft + rungOf(canvas);
|
|
163
|
+
else if (event.key === "ArrowLeft") next = canvas.scrollLeft - rungOf(canvas);
|
|
164
|
+
else if (event.key === "PageDown") next = canvas.scrollLeft + canvas.clientWidth;
|
|
165
|
+
else if (event.key === "PageUp") next = canvas.scrollLeft - canvas.clientWidth;
|
|
166
|
+
else if (event.key === "Home") next = 0;
|
|
167
|
+
else if (event.key === "End") next = canvas.scrollWidth;
|
|
168
|
+
if (next === null) return;
|
|
169
|
+
event.preventDefault();
|
|
170
|
+
canvas.scrollLeft = Math.max(0, next);
|
|
171
|
+
};
|
|
172
|
+
const pointer = {
|
|
173
|
+
onPointerDown: (event) => {
|
|
174
|
+
if (event.button !== 0) return;
|
|
175
|
+
const canvas = event.currentTarget;
|
|
176
|
+
const target = event.target;
|
|
177
|
+
if (target !== null && isControl(target, canvas)) return;
|
|
178
|
+
canvas.setPointerCapture?.(event.pointerId);
|
|
179
|
+
drag.current = {
|
|
180
|
+
x: event.clientX,
|
|
181
|
+
left: canvas.scrollLeft,
|
|
182
|
+
id: event.pointerId
|
|
183
|
+
};
|
|
184
|
+
setPanning(true);
|
|
185
|
+
},
|
|
186
|
+
onPointerMove: (event) => {
|
|
187
|
+
const started = drag.current;
|
|
188
|
+
if (started === null) return;
|
|
189
|
+
event.currentTarget.scrollLeft = Math.max(0, started.left - (event.clientX - started.x));
|
|
190
|
+
},
|
|
191
|
+
onPointerUp: (event) => {
|
|
192
|
+
if (drag.current === null) return;
|
|
193
|
+
event.currentTarget.releasePointerCapture?.(event.pointerId);
|
|
194
|
+
drag.current = null;
|
|
195
|
+
setPanning(false);
|
|
196
|
+
},
|
|
197
|
+
onPointerCancel: () => {
|
|
198
|
+
drag.current = null;
|
|
199
|
+
setPanning(false);
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
203
|
+
...elementProps,
|
|
204
|
+
ref,
|
|
205
|
+
"data-slot": "frames",
|
|
206
|
+
className: cn(ROOT_CLASS, HEIGHT_CLASSES[height], GROUND_CLASSES[ground], className),
|
|
207
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
208
|
+
ref: canvasRef,
|
|
209
|
+
role: "region",
|
|
210
|
+
tabIndex: 0,
|
|
211
|
+
"aria-label": label,
|
|
212
|
+
"data-slot": "frames-canvas",
|
|
213
|
+
"data-panning": panning ? "true" : void 0,
|
|
214
|
+
className: cn(CANVAS_CLASS, pan && PANNABLE_CLASS, panning && PANNING_CLASS),
|
|
215
|
+
onKeyDown: scroll,
|
|
216
|
+
...pan ? pointer : {},
|
|
217
|
+
children
|
|
218
|
+
}), hint === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
219
|
+
"data-slot": "frames-hint",
|
|
220
|
+
className: HINT_CLASS,
|
|
221
|
+
children: hint
|
|
222
|
+
})]
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
/** One cell: the specimen, and the line under it. */
|
|
226
|
+
const ITEM_CLASS = "flex min-w-0 shrink-0 flex-col items-center gap-(--cue-space-2) rounded-(--radius-control) p-(--cue-space-2)";
|
|
227
|
+
/** The one a reader is inspecting. An outline and not a border: a border would move the cell. */
|
|
228
|
+
const ITEM_SELECTED_CLASS = "outline-2 outline-solid -outline-offset-1 outline-accent";
|
|
229
|
+
const ITEM_BODY_CLASS = "flex min-w-0 items-center justify-center";
|
|
230
|
+
/**
|
|
231
|
+
* The caption, and the two properties that decide whether it is painted.
|
|
232
|
+
*
|
|
233
|
+
* Properties and not props threaded down from the frame: the switch belongs to
|
|
234
|
+
* the frame — a reader turns captions off for a whole frame from its settings
|
|
235
|
+
* popover, never for one item — and a property is how a switch reaches every
|
|
236
|
+
* descendant without every descendant declaring it.
|
|
237
|
+
*
|
|
238
|
+
* **`opacity`, never `visibility`.** Zero opacity keeps the box *and* keeps the
|
|
239
|
+
* node in the accessibility tree, which is exactly what §4.1 Decision 4
|
|
240
|
+
* refuses to give up; `visibility: hidden` would keep the box and drop the
|
|
241
|
+
* node. `pointer-events` rides with it so an unpainted caption cannot be
|
|
242
|
+
* clicked or dragged over — two properties because `opacity` wants a number
|
|
243
|
+
* and `pointer-events` wants a keyword, and a custom property is untyped text
|
|
244
|
+
* that cannot be both.
|
|
245
|
+
*
|
|
246
|
+
* The **fallbacks** are what make an item legal outside a Preview: nothing
|
|
247
|
+
* declares either property there, so the caption resolves to `1` and `auto` and
|
|
248
|
+
* behaves like any other line, rather than inheriting the empty string and
|
|
249
|
+
* vanishing.
|
|
250
|
+
*/
|
|
251
|
+
const ITEM_CAPTION_CLASS = "min-w-0 truncate text-center font-mono text-(length:--cue-text-micro) text-fg-subtle [opacity:var(--preview-captions,1)] [pointer-events:var(--preview-captions-pe,auto)]";
|
|
252
|
+
/**
|
|
253
|
+
* A design canvas: frames side by side, each holding one axis of one component.
|
|
254
|
+
*
|
|
255
|
+
* `Frames.Root` is the canvas — short, wide, scrollable sideways, focusable,
|
|
256
|
+
* and pannable with the pointer. `Frames.Item` is one captioned cell, and it is
|
|
257
|
+
* used **inside a `Preview`** rather than inside the Root. The two are apart
|
|
258
|
+
* because that is how they are used, and a props-only API cannot say it.
|
|
259
|
+
*
|
|
260
|
+
* **The canvas knows nothing about its children.** It does not count them, does
|
|
261
|
+
* not index them and does not select one; `hint` is where a caller puts what it
|
|
262
|
+
* knows. A canvas that knew its frames would be a manifest API, and this is a
|
|
263
|
+
* slot API.
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* <Frames.Root label="Button frames" hint="drag to pan · 3 frames">
|
|
267
|
+
* <Preview presentation="frame" label="Tone" count={3} name={<ToneMenu />}>
|
|
268
|
+
* <div className="flex flex-wrap items-end gap-(--cue-space-6)">
|
|
269
|
+
* <Frames.Item caption="accent"><Button tone="accent">Take cue</Button></Frames.Item>
|
|
270
|
+
* <Frames.Item caption="ok"><Button tone="ok">Take cue</Button></Frames.Item>
|
|
271
|
+
* <Frames.Item caption="warn"><Button tone="warn">Take cue</Button></Frames.Item>
|
|
272
|
+
* </div>
|
|
273
|
+
* </Preview>
|
|
274
|
+
* </Frames.Root>
|
|
275
|
+
*/
|
|
276
|
+
const Frames = {
|
|
277
|
+
Root: FramesRoot,
|
|
278
|
+
Item: React.forwardRef(function FramesItem({ children, caption, selected = false, className, ...elementProps }, ref) {
|
|
279
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
280
|
+
...elementProps,
|
|
281
|
+
ref,
|
|
282
|
+
"data-slot": "frames-item",
|
|
283
|
+
"data-selected": selected ? "true" : void 0,
|
|
284
|
+
className: cn(ITEM_CLASS, selected && ITEM_SELECTED_CLASS, className),
|
|
285
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
286
|
+
"data-slot": "frames-item-body",
|
|
287
|
+
className: ITEM_BODY_CLASS,
|
|
288
|
+
children
|
|
289
|
+
}), caption === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
290
|
+
"data-slot": "frames-item-caption",
|
|
291
|
+
className: ITEM_CAPTION_CLASS,
|
|
292
|
+
children: caption
|
|
293
|
+
})]
|
|
294
|
+
});
|
|
295
|
+
})
|
|
296
|
+
};
|
|
297
|
+
//#endregion
|
|
298
|
+
export { Frames };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { SpaceStep, StackAlign, StackJustify } from "./stack.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/layout/grid.d.ts
|
|
4
|
+
/** How many equal columns to lay out. */
|
|
5
|
+
type GridColumns = 1 | 2 | 3 | 4 | 5 | 6;
|
|
6
|
+
interface GridProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
7
|
+
/** How many equal columns. Defaults to `1`. Ignored when `minItemWidth` is set. */
|
|
8
|
+
cols?: GridColumns;
|
|
9
|
+
/** Which rung of the density space ladder to spend between cells. Defaults to `4`. */
|
|
10
|
+
gap?: SpaceStep;
|
|
11
|
+
/**
|
|
12
|
+
* Fill the row with as many columns of at least this width as fit, instead of
|
|
13
|
+
* a fixed count. Any CSS length (`"12rem"`, `"200px"`).
|
|
14
|
+
*
|
|
15
|
+
* Prefer this over a column count wherever the content has a natural minimum
|
|
16
|
+
* measure — it is responsive without a single breakpoint.
|
|
17
|
+
*/
|
|
18
|
+
minItemWidth?: string;
|
|
19
|
+
/** Cross-axis alignment of the cells. */
|
|
20
|
+
align?: StackAlign;
|
|
21
|
+
/** Main-axis distribution of the tracks. */
|
|
22
|
+
justify?: StackJustify;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Two-dimensional layout: equal columns, or as many as fit.
|
|
26
|
+
*
|
|
27
|
+
* Same bargain as `Stack` — the gap is a rung of the density ladder rather than
|
|
28
|
+
* a hand-picked pixel value, so a card grid tightens with the rest of the
|
|
29
|
+
* console when the user asks for ultra-compact.
|
|
30
|
+
*
|
|
31
|
+
* Static markup — no `"use client"`.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* <Grid cols={3} gap={5}>{cards}</Grid>
|
|
35
|
+
* @example
|
|
36
|
+
* <Grid minItemWidth="14rem" gap={4}>{cards}</Grid>
|
|
37
|
+
*/
|
|
38
|
+
declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLDivElement>>;
|
|
39
|
+
//#endregion
|
|
40
|
+
export { Grid, GridColumns, GridProps };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { ALIGN_CLASSES, GAP_CLASSES, JUSTIFY_CLASSES } from "./stack.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/layout/grid.tsx
|
|
6
|
+
/** Static class per count — Tailwind scans source text, not computed strings. */
|
|
7
|
+
const COLUMN_CLASSES = {
|
|
8
|
+
1: "grid-cols-1",
|
|
9
|
+
2: "grid-cols-2",
|
|
10
|
+
3: "grid-cols-3",
|
|
11
|
+
4: "grid-cols-4",
|
|
12
|
+
5: "grid-cols-5",
|
|
13
|
+
6: "grid-cols-6"
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* The auto-filling track. The measure travels as a custom property rather than
|
|
17
|
+
* as an arbitrary value, so the track definition is one static class the
|
|
18
|
+
* scanner always sees instead of a fresh one per call site.
|
|
19
|
+
*/
|
|
20
|
+
const AUTO_FILL_CLASS = "grid-cols-[repeat(auto-fill,minmax(var(--cue-grid-min),1fr))]";
|
|
21
|
+
/**
|
|
22
|
+
* Two-dimensional layout: equal columns, or as many as fit.
|
|
23
|
+
*
|
|
24
|
+
* Same bargain as `Stack` — the gap is a rung of the density ladder rather than
|
|
25
|
+
* a hand-picked pixel value, so a card grid tightens with the rest of the
|
|
26
|
+
* console when the user asks for ultra-compact.
|
|
27
|
+
*
|
|
28
|
+
* Static markup — no `"use client"`.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* <Grid cols={3} gap={5}>{cards}</Grid>
|
|
32
|
+
* @example
|
|
33
|
+
* <Grid minItemWidth="14rem" gap={4}>{cards}</Grid>
|
|
34
|
+
*/
|
|
35
|
+
const Grid = React.forwardRef(function Grid({ className, cols = 1, gap = 4, minItemWidth, align, justify, style, ...elementProps }, ref) {
|
|
36
|
+
return /* @__PURE__ */ jsx("div", {
|
|
37
|
+
ref,
|
|
38
|
+
"data-slot": "grid",
|
|
39
|
+
className: cn("grid", minItemWidth === void 0 ? COLUMN_CLASSES[cols] : AUTO_FILL_CLASS, GAP_CLASSES[gap], align === void 0 ? null : ALIGN_CLASSES[align], justify === void 0 ? null : JUSTIFY_CLASSES[justify], className),
|
|
40
|
+
style: minItemWidth === void 0 ? style : {
|
|
41
|
+
"--cue-grid-min": minItemWidth,
|
|
42
|
+
...style
|
|
43
|
+
},
|
|
44
|
+
...elementProps
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//#endregion
|
|
48
|
+
export { Grid };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Link, LinkProps, linkVariants } from "./link.js";
|
|
2
|
+
import { Sidebar, SidebarItemProps, SidebarRailProps, SidebarRootProps, SidebarSectionProps, useSidebar } from "./sidebar.js";
|
|
3
|
+
import { Container, ContainerProps, ContainerWidth } from "./container.js";
|
|
4
|
+
import { Accordion, AccordionHeaderProps, AccordionItemProps, AccordionPanelProps, AccordionRootProps, AccordionTriggerProps } from "./accordion.js";
|
|
5
|
+
import { SpaceStep, Stack, StackAlign, StackJustify, StackProps } from "./stack.js";
|
|
6
|
+
import { Bento, BentoColumns, BentoMinHeight, BentoRootProps, BentoRowSpan, BentoRows, BentoSpan, BentoTileProps } from "./bento.js";
|
|
7
|
+
import { Breadcrumb, BreadcrumbItem, BreadcrumbProps } from "./breadcrumb.js";
|
|
8
|
+
import { Card, CardContentProps, CardDescriptionProps, CardFooterProps, CardHeaderProps, CardRootProps, CardTitleProps } from "./card.js";
|
|
9
|
+
import { Collapsible, CollapsiblePanelProps, CollapsibleRootProps, CollapsibleTriggerProps, Disclosure, DisclosureProps } from "./collapsible.js";
|
|
10
|
+
import { DescriptionList, DescriptionListDetailProps, DescriptionListLayout, DescriptionListRootProps, DescriptionListTermProps } from "./description-list.js";
|
|
11
|
+
import { PreviewGround } from "./_ground.js";
|
|
12
|
+
import { Frames, FramesHeight, FramesItemProps, FramesRootProps } from "./frames.js";
|
|
13
|
+
import { Grid, GridColumns, GridProps } from "./grid.js";
|
|
14
|
+
import { Item, ItemProps, itemVariants } from "./item.js";
|
|
15
|
+
import { Pagination, PaginationEntry, PaginationProps, paginationRange } from "./pagination.js";
|
|
16
|
+
import { Preview, PreviewAxis, PreviewPresentation, PreviewProps, PreviewResizeOptions } from "./preview.js";
|
|
17
|
+
import { Stepper, StepperProps, StepperState, StepperStep } from "./stepper.js";
|
|
18
|
+
import { Timeline, TimelineContentProps, TimelineItemProps, TimelineMarkerProps, TimelineRootProps } from "./timeline.js";
|
|
19
|
+
export { Accordion, type AccordionHeaderProps, type AccordionItemProps, type AccordionPanelProps, type AccordionRootProps, type AccordionTriggerProps, Bento, type BentoColumns, type BentoMinHeight, type BentoRootProps, type BentoRowSpan, type BentoRows, type BentoSpan, type BentoTileProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Card, type CardContentProps, type CardDescriptionProps, type CardFooterProps, type CardHeaderProps, type CardRootProps, type CardTitleProps, Collapsible, type CollapsiblePanelProps, type CollapsibleRootProps, type CollapsibleTriggerProps, Container, type ContainerProps, type ContainerWidth, DescriptionList, type DescriptionListDetailProps, type DescriptionListLayout, type DescriptionListRootProps, type DescriptionListTermProps, Disclosure, type DisclosureProps, Frames, type FramesHeight, type FramesItemProps, type FramesRootProps, Grid, type GridColumns, type GridProps, Item, type ItemProps, Link, type LinkProps, Pagination, type PaginationEntry, type PaginationProps, Preview, type PreviewAxis, type PreviewGround, type PreviewPresentation, type PreviewProps, type PreviewResizeOptions, Sidebar, type SidebarItemProps, type SidebarRailProps, type SidebarRootProps, type SidebarSectionProps, type SpaceStep, Stack, type StackAlign, type StackJustify, type StackProps, Stepper, type StepperProps, type StepperState, type StepperStep, Timeline, type TimelineContentProps, type TimelineItemProps, type TimelineMarkerProps, type TimelineRootProps, itemVariants, linkVariants, paginationRange, useSidebar };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Link, linkVariants } from "./link.js";
|
|
2
|
+
import { Sidebar, useSidebar } from "./sidebar.js";
|
|
3
|
+
import { Container } from "./container.js";
|
|
4
|
+
import { Accordion } from "./accordion.js";
|
|
5
|
+
import { Stack } from "./stack.js";
|
|
6
|
+
import { Bento } from "./bento.js";
|
|
7
|
+
import { Breadcrumb } from "./breadcrumb.js";
|
|
8
|
+
import { Card } from "./card.js";
|
|
9
|
+
import { Collapsible, Disclosure } from "./collapsible.js";
|
|
10
|
+
import { DescriptionList } from "./description-list.js";
|
|
11
|
+
import { Frames } from "./frames.js";
|
|
12
|
+
import { Grid } from "./grid.js";
|
|
13
|
+
import { Item, itemVariants } from "./item.js";
|
|
14
|
+
import { Pagination, paginationRange } from "./pagination.js";
|
|
15
|
+
import { Preview } from "./preview.js";
|
|
16
|
+
import { Stepper } from "./stepper.js";
|
|
17
|
+
import { Timeline } from "./timeline.js";
|
|
18
|
+
export { Accordion, Bento, Breadcrumb, Card, Collapsible, Container, DescriptionList, Disclosure, Frames, Grid, Item, Link, Pagination, Preview, Sidebar, Stack, Stepper, Timeline, itemVariants, linkVariants, paginationRange, useSidebar };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ClassProp, VariantProps } from "../lib/cva.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/layout/item.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* The media-object recipe: an optional leading glyph, two lines of text and a
|
|
6
|
+
* trailing slot, on the row padding rung.
|
|
7
|
+
*
|
|
8
|
+
* Framing and hover feedback are split across `variants` for the same reason as
|
|
9
|
+
* `chipVariants`: emitting a fill from one variant and cancelling it from
|
|
10
|
+
* another would leave two competing background utilities in the class string
|
|
11
|
+
* and lean on `tailwind-merge` to pick a winner.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <div className={itemVariants({ variant: "outline" })} />
|
|
15
|
+
*/
|
|
16
|
+
declare const itemVariants: (props?: ({
|
|
17
|
+
variant?: "outline" | "plain" | "soft" | null | undefined;
|
|
18
|
+
interactive?: boolean | null | undefined;
|
|
19
|
+
} & ClassProp) | undefined) => string;
|
|
20
|
+
interface ItemProps extends Omit<React.HTMLAttributes<HTMLElement>, "title">, VariantProps<typeof itemVariants> {
|
|
21
|
+
/** Leading slot: an icon, an avatar, a status dot. */
|
|
22
|
+
media?: React.ReactNode;
|
|
23
|
+
/** The item's name — one line, truncated rather than wrapped. */
|
|
24
|
+
title?: React.ReactNode;
|
|
25
|
+
/** One supporting line under the title, a rung smaller and muted. */
|
|
26
|
+
description?: React.ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* Trailing slot: a value, a chip, a control.
|
|
29
|
+
*
|
|
30
|
+
* Do not combine with `interactive` — the whole item is then a `<button>`,
|
|
31
|
+
* and a button may not contain another one. Put the controls beside the item
|
|
32
|
+
* instead, or drop `interactive` and make the title itself the link.
|
|
33
|
+
*/
|
|
34
|
+
actions?: React.ReactNode;
|
|
35
|
+
/** Which framing to paint. Defaults to `"plain"`. */
|
|
36
|
+
variant?: "plain" | "outline" | "soft";
|
|
37
|
+
/**
|
|
38
|
+
* Render as a `<button>` with hover feedback and a focus ring instead of a
|
|
39
|
+
* static `<div>`. Use for items that select, open or toggle something.
|
|
40
|
+
*/
|
|
41
|
+
interactive?: boolean;
|
|
42
|
+
/** Disable the interactive form. Ignored when `interactive` is not set. */
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
/** Extra content between the text column and the action slot. */
|
|
45
|
+
children?: React.ReactNode;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* One thing in a list, with room for a glyph, a name, a line of detail and a
|
|
49
|
+
* control — the shape a settings entry, a search hit and a device row all want.
|
|
50
|
+
*
|
|
51
|
+
* Where `Row` is a line of a hairline table, `Item` is a self-contained object
|
|
52
|
+
* that can stand alone, sit in a `Stack` or fill a `Grid` cell. It is a real
|
|
53
|
+
* `<button>` when interactive rather than a `<div>` with an `onClick`, so
|
|
54
|
+
* keyboard users get it for free.
|
|
55
|
+
*
|
|
56
|
+
* Static markup — no `"use client"`.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* <Item media={<StatusDot tone="ok" />} title="Node 12" description="10.0.0.12" />
|
|
60
|
+
* @example
|
|
61
|
+
* <Item interactive variant="outline" title="Front truss" onClick={open} />
|
|
62
|
+
*/
|
|
63
|
+
declare const Item: React.ForwardRefExoticComponent<ItemProps & React.RefAttributes<HTMLElement>>;
|
|
64
|
+
//#endregion
|
|
65
|
+
export { Item, ItemProps, itemVariants };
|